@undefineds.co/xpod 0.3.74 → 0.4.0-rc.139

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.
Files changed (363) hide show
  1. package/bin/xpod.js +43 -8
  2. package/config/bun.json +45 -48
  3. package/config/cloud.json +13 -90
  4. package/config/components-ignore.json +0 -1
  5. package/config/local.json +111 -63
  6. package/config/resolver.json +4 -2
  7. package/config/terminal.json +4 -1
  8. package/config/xpod.base.json +16 -8
  9. package/config/xpod.json +51 -54
  10. package/dist/acceptance/PublicCloudSemanticConformance.d.ts +4 -0
  11. package/dist/acceptance/PublicCloudSemanticConformance.js +214 -0
  12. package/dist/acceptance/QleverSearchConformance.d.ts +39 -0
  13. package/dist/acceptance/QleverSearchConformance.js +686 -0
  14. package/dist/acceptance/QleverSemanticConformance.d.ts +3 -0
  15. package/dist/acceptance/QleverSemanticConformance.js +178 -0
  16. package/dist/acceptance/RdfSemanticConformance.d.ts +114 -0
  17. package/dist/acceptance/RdfSemanticConformance.js +307 -0
  18. package/dist/acceptance/run-installed-qlever-conformance.d.ts +12 -0
  19. package/dist/acceptance/run-installed-qlever-conformance.js +87 -0
  20. package/dist/acceptance/run-installed-rdf-conformance.d.ts +12 -0
  21. package/dist/acceptance/run-installed-rdf-conformance.js +88 -0
  22. package/dist/ai/service/EmbeddingProviderError.d.ts +7 -0
  23. package/dist/ai/service/EmbeddingProviderError.js +42 -0
  24. package/dist/api/ai-gateway/connect/index.js +5 -2
  25. package/dist/api/auth/AuthContext.d.ts +5 -0
  26. package/dist/api/auth/AuthContext.js +10 -0
  27. package/dist/api/container/common.js +21 -8
  28. package/dist/api/container/rdf.d.ts +1 -0
  29. package/dist/api/container/rdf.js +43 -4
  30. package/dist/api/container/types.d.ts +4 -0
  31. package/dist/api/runs/InngestRunExecutionBackend.d.ts +2 -2
  32. package/dist/api/runs/PiAgentRuntimeDriver.d.ts +2 -0
  33. package/dist/api/runs/PiAgentRuntimeDriver.js +1 -0
  34. package/dist/api/runs/RdfRunContextRetriever.d.ts +8 -0
  35. package/dist/api/runs/RdfRunContextRetriever.js +23 -1
  36. package/dist/api/runtime.js +20 -6
  37. package/dist/api/service/RdfSearchIndexingService.d.ts +37 -3
  38. package/dist/api/service/RdfSearchIndexingService.js +130 -18
  39. package/dist/api/service/RdfSearchIndexingSolidFsSyncer.d.ts +8 -0
  40. package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js +102 -15
  41. package/dist/api/service/RdfSearchReconciliationWorker.d.ts +76 -0
  42. package/dist/api/service/RdfSearchReconciliationWorker.js +294 -0
  43. package/dist/api/tasks/InngestTaskScheduler.d.ts +4 -4
  44. package/dist/components/components.jsonld +9 -12
  45. package/dist/components/context.jsonld +227 -348
  46. package/dist/document/MarkdownRetrievalPointProjector.d.ts +33 -0
  47. package/dist/document/MarkdownRetrievalPointProjector.js +196 -0
  48. package/dist/document/MarkdownRetrievalPointProjector.jsonld +135 -0
  49. package/dist/document/ReaderMaterialization.d.ts +34 -0
  50. package/dist/document/ReaderMaterialization.js +3 -0
  51. package/dist/document/ReaderMaterialization.jsonld +151 -0
  52. package/dist/document/ReaderMaterializationRepository.d.ts +27 -0
  53. package/dist/document/ReaderMaterializationRepository.js +400 -0
  54. package/dist/document/ReaderMaterializationRepository.jsonld +84 -0
  55. package/dist/document/index.d.ts +3 -1
  56. package/dist/document/index.js +3 -1
  57. package/dist/http/SubgraphSparqlHttpHandler.js +34 -54
  58. package/dist/http/search/SearchHttpHandler.js +14 -12
  59. package/dist/http/terminal/TerminalHttpHandler.d.ts +3 -0
  60. package/dist/http/terminal/TerminalHttpHandler.js +1 -0
  61. package/dist/http/terminal/TerminalHttpHandler.jsonld +11 -0
  62. package/dist/identity/drizzle/DrizzleIndexedStorage.js +19 -39
  63. package/dist/identity/drizzle/db.d.ts +1 -0
  64. package/dist/identity/drizzle/db.js +35 -0
  65. package/dist/index.d.ts +9 -17
  66. package/dist/index.js +14 -22
  67. package/dist/provision/ProvisionPodCreator.d.ts +1 -1
  68. package/dist/provision/ProvisionPodCreator.js +4 -3
  69. package/dist/runtime/css-process.js +0 -1
  70. package/dist/search/RdfSearchIntentSink.d.ts +17 -0
  71. package/dist/search/RdfSearchIntentSink.js +46 -0
  72. package/dist/search/RdfSearchIntentSink.jsonld +47 -0
  73. package/dist/search/RdfSearchReconciliationRepository.d.ts +81 -0
  74. package/dist/search/RdfSearchReconciliationRepository.js +771 -0
  75. package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.d.ts +15 -0
  76. package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.js +48 -0
  77. package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.jsonld +99 -0
  78. package/dist/solidfs/RdfIndexSolidFsSyncer.js +22 -4
  79. package/dist/solidfs/SolidFsSyncJournal.d.ts +7 -1
  80. package/dist/solidfs/SolidFsSyncJournal.js +20 -5
  81. package/dist/solidfs/SolidFsSyncJournal.jsonld +43 -0
  82. package/dist/solidfs/index.d.ts +1 -0
  83. package/dist/solidfs/index.js +1 -0
  84. package/dist/storage/SparqlUpdateResourceStore.js +3 -3
  85. package/dist/storage/accessors/MixDataAccessor.d.ts +21 -29
  86. package/dist/storage/accessors/MixDataAccessor.js +182 -399
  87. package/dist/storage/accessors/MixDataAccessor.jsonld +109 -87
  88. package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +12 -8
  89. package/dist/storage/accessors/SolidRdfDataAccessor.js +189 -59
  90. package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +14 -29
  91. package/dist/storage/rdf/LocalQleverNativeSparqlClient.d.ts +55 -0
  92. package/dist/storage/rdf/LocalQleverNativeSparqlClient.js +519 -0
  93. package/dist/storage/rdf/LocalQleverNativeSparqlClient.jsonld +314 -0
  94. package/dist/storage/rdf/PostgresRdfEngine.d.ts +3 -1
  95. package/dist/storage/rdf/PostgresRdfEngine.js +111 -74
  96. package/dist/storage/rdf/PostgresRdfEngine.jsonld +12 -22
  97. package/dist/storage/rdf/PostgresRdfSchemaValidation.d.ts +8 -0
  98. package/dist/storage/rdf/PostgresRdfSchemaValidation.js +82 -0
  99. package/dist/storage/rdf/PostgresRdfTextIndex.d.ts +6 -3
  100. package/dist/storage/rdf/PostgresRdfTextIndex.js +158 -80
  101. package/dist/storage/rdf/PostgresRdfTextIndex.jsonld +16 -4
  102. package/dist/storage/rdf/PostgresRdfVectorIndex.d.ts +4 -5
  103. package/dist/storage/rdf/PostgresRdfVectorIndex.js +124 -120
  104. package/dist/storage/rdf/PostgresRdfVectorIndex.jsonld +14 -18
  105. package/dist/storage/rdf/QleverSparqlEngine.d.ts +35 -0
  106. package/dist/storage/rdf/QleverSparqlEngine.js +185 -0
  107. package/dist/storage/rdf/QleverSparqlEngine.jsonld +70 -0
  108. package/dist/storage/rdf/Rdf3xIndex.js +20 -16
  109. package/dist/storage/rdf/RdfAccessScope.d.ts +4 -0
  110. package/dist/storage/rdf/RdfAccessScope.js +74 -9
  111. package/dist/storage/rdf/RdfAccessScope.jsonld +16 -0
  112. package/dist/storage/rdf/RdfEngineRdfJsSource.d.ts +14 -0
  113. package/dist/storage/rdf/RdfEngineRdfJsSource.js +179 -0
  114. package/dist/storage/rdf/RdfQuadIndex.d.ts +13 -14
  115. package/dist/storage/rdf/RdfQuadIndex.js +286 -99
  116. package/dist/storage/rdf/RdfQuadIndex.jsonld +10 -22
  117. package/dist/storage/rdf/RdfQueryExecutor.js +10 -4
  118. package/dist/storage/rdf/RdfQuerySparqlEngine.d.ts +33 -0
  119. package/dist/storage/rdf/RdfQuerySparqlEngine.js +215 -0
  120. package/dist/storage/rdf/RdfQuerySparqlEngine.jsonld +78 -0
  121. package/dist/storage/rdf/RdfSparqlAdapter.d.ts +0 -4
  122. package/dist/storage/rdf/RdfSparqlAdapter.js +75 -173
  123. package/dist/storage/rdf/RdfSparqlBoundary.d.ts +37 -0
  124. package/dist/storage/rdf/RdfSparqlBoundary.js +247 -0
  125. package/dist/storage/rdf/RdfSparqlSerialization.d.ts +3 -0
  126. package/dist/storage/rdf/RdfSparqlSerialization.js +19 -0
  127. package/dist/storage/rdf/RdfSqliteConnection.d.ts +7 -0
  128. package/dist/storage/rdf/RdfSqliteConnection.js +23 -0
  129. package/dist/storage/rdf/RdfTermDictionary.d.ts +0 -8
  130. package/dist/storage/rdf/RdfTermDictionary.js +0 -136
  131. package/dist/storage/rdf/RdfTermDictionary.jsonld +0 -32
  132. package/dist/storage/rdf/RdfTermSemantics.d.ts +6 -0
  133. package/dist/storage/rdf/RdfTermSemantics.js +29 -0
  134. package/dist/storage/rdf/RdfTextIndex.d.ts +5 -6
  135. package/dist/storage/rdf/RdfTextIndex.js +187 -115
  136. package/dist/storage/rdf/RdfTextIndex.jsonld +10 -14
  137. package/dist/storage/rdf/RdfVectorIndex.d.ts +4 -4
  138. package/dist/storage/rdf/RdfVectorIndex.js +156 -233
  139. package/dist/storage/rdf/RdfVectorIndex.jsonld +10 -14
  140. package/dist/storage/rdf/SolidRdfEngine.d.ts +16 -21
  141. package/dist/storage/rdf/SolidRdfEngine.js +28 -308
  142. package/dist/storage/rdf/SolidRdfEngine.jsonld +26 -148
  143. package/dist/storage/rdf/XpodComunicaQueryEngine.d.ts +10 -0
  144. package/dist/storage/rdf/XpodComunicaQueryEngine.js +72 -0
  145. package/dist/storage/rdf/index.d.ts +7 -6
  146. package/dist/storage/rdf/index.js +17 -12
  147. package/dist/storage/rdf/models-benchmark.d.ts +5 -1
  148. package/dist/storage/rdf/models-benchmark.js +17 -19
  149. package/dist/storage/rdf/types.d.ts +68 -6
  150. package/dist/storage/rdf/types.jsonld +69 -0
  151. package/dist/storage/sparql/SubgraphQueryEngine.d.ts +13 -7
  152. package/dist/storage/sparql/SubgraphQueryEngine.js +6 -6
  153. package/dist/storage/vector/index.d.ts +0 -1
  154. package/dist/storage/vector/index.js +0 -1
  155. package/dist/terminal/AclPermissionService.d.ts +4 -5
  156. package/dist/terminal/AclPermissionService.js +55 -75
  157. package/dist/terminal/TerminalSessionManager.d.ts +3 -2
  158. package/dist/terminal/TerminalSessionManager.js +3 -3
  159. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts +1 -0
  160. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts.map +1 -1
  161. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js +29 -26
  162. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js.map +1 -1
  163. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.d.ts.map +1 -1
  164. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js +9 -4
  165. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js.map +1 -1
  166. package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.d.ts +1 -0
  167. package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.d.ts.map +1 -1
  168. package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.js +6 -3
  169. package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.js.map +1 -1
  170. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js +3 -3
  171. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js.map +1 -1
  172. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts +6 -0
  173. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts.map +1 -1
  174. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js +13 -3
  175. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js.map +1 -1
  176. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.d.ts +1 -0
  177. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.d.ts.map +1 -1
  178. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js +31 -0
  179. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js.map +1 -1
  180. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.d.ts.map +1 -1
  181. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.js +5 -0
  182. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.js.map +1 -1
  183. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.d.ts +1 -0
  184. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.d.ts.map +1 -1
  185. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.js +45 -0
  186. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.js.map +1 -1
  187. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts +1 -0
  188. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts.map +1 -1
  189. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js +29 -26
  190. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js.map +1 -1
  191. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -1
  192. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js +9 -4
  193. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js.map +1 -1
  194. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts +1 -0
  195. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts.map +1 -1
  196. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.js +6 -3
  197. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.js.map +1 -1
  198. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js +3 -3
  199. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js.map +1 -1
  200. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts +6 -0
  201. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -1
  202. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js +14 -4
  203. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js.map +1 -1
  204. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts +1 -0
  205. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts.map +1 -1
  206. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js +30 -0
  207. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js.map +1 -1
  208. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.d.ts.map +1 -1
  209. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.js +5 -0
  210. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.js.map +1 -1
  211. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts +1 -0
  212. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts.map +1 -1
  213. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.js +45 -0
  214. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.js.map +1 -1
  215. package/node_modules/@undefineds.co/drizzle-solid/package.json +5 -4
  216. package/package.json +19 -8
  217. package/static/app/assets/{index-36TJKN-3.js → index-BikOyGPu.js} +34 -34
  218. package/static/app/assets/inrupt-smoke.js +2 -2
  219. package/static/app/assets/main.css +1 -1
  220. package/static/app/assets/main.js +11 -11
  221. package/static/auth-callback/assets/{AiConfigContext-DNfRNaZQ.js → AiConfigContext-iQ74JmRZ.js} +1 -1
  222. package/static/auth-callback/assets/{AiConfigPage-BBiTOm3o.js → AiConfigPage-BBDKE1gJ.js} +1 -1
  223. package/static/auth-callback/assets/{DocumentProcessingPanel-BzpEwqKT.js → DocumentProcessingPanel-D9NntIEK.js} +1 -1
  224. package/static/auth-callback/assets/{IndexLifecyclePanel-CvXMwooQ.js → IndexLifecyclePanel-BG07yBdA.js} +1 -1
  225. package/static/auth-callback/assets/{IndexSubjectPanel-CayA221L.js → IndexSubjectPanel-B-bUnU3G.js} +1 -1
  226. package/static/auth-callback/assets/{ModelAssignmentsPanel-Iew2QgtR.js → ModelAssignmentsPanel-C7I-Nqy-.js} +1 -1
  227. package/static/auth-callback/assets/{ModelsPage-CTJKAUA3.js → ModelsPage-C2hxyrmI.js} +1 -1
  228. package/static/auth-callback/assets/{NetworkPage--8ZCjIHB.js → NetworkPage-IGIc2q1Y.js} +1 -1
  229. package/static/auth-callback/assets/{PaneListHeader-BT-OGKL7.js → PaneListHeader-CebuPl_g.js} +1 -1
  230. package/static/auth-callback/assets/{SearchIndexingPanel-CFjjk1-C.js → SearchIndexingPanel-6HnZSg00.js} +1 -1
  231. package/static/auth-callback/assets/{StatusSubjectPanel-DAN5Ej9q.js → StatusSubjectPanel-votxBkr5.js} +1 -1
  232. package/static/auth-callback/assets/{StatusWorkspace-CEgmKJcX.js → StatusWorkspace-Cksl61zX.js} +1 -1
  233. package/static/auth-callback/assets/{SystemSettingsPage-Bk0TB4RU.js → SystemSettingsPage-CKZFUaZT.js} +1 -1
  234. package/static/auth-callback/assets/{SystemSettingsSubjectPanel-CKl8ukiz.js → SystemSettingsSubjectPanel-pzfUcCf4.js} +1 -1
  235. package/static/auth-callback/assets/{activity-BOtct9Ie.js → activity-DQL6kZHZ.js} +1 -1
  236. package/static/auth-callback/assets/auth-callback-B_s8Ye5Z.css +1 -0
  237. package/static/auth-callback/assets/{auth-callback-ai6OMe6C.js → auth-callback-BxQMd_Mc.js} +39 -39
  238. package/static/auth-callback/assets/{badge-DGSg5wio.js → badge-DvW4LUHH.js} +1 -1
  239. package/static/auth-callback/assets/{download-4eVPmxQ_.js → download-Cx_uaCR1.js} +1 -1
  240. package/static/auth-callback/assets/{external-link-BlD92fAM.js → external-link-D6L6ExH1.js} +1 -1
  241. package/static/auth-callback/assets/{index-FrugCRsJ.js → index-BAS_hxGu.js} +1 -1
  242. package/static/auth-callback/assets/{index-7ppych8q.js → index-BmBjpCoD.js} +1 -1
  243. package/static/auth-callback/assets/{index-browser-dwpJ2mdT.js → index-browser-pdn4D3M4.js} +1 -1
  244. package/static/auth-callback/assets/{key-round-BFOQbNNp.js → key-round-BTBzOggq.js} +1 -1
  245. package/static/auth-callback/assets/{rotate-ccw-BySVgaAP.js → rotate-ccw-eV7Cx8sB.js} +1 -1
  246. package/static/auth-callback/assets/{skeleton-CgcxPTqc.js → skeleton-Bg4GYgBM.js} +1 -1
  247. package/static/auth-callback/assets/{waypoints-DM902DhB.js → waypoints-CJbydf0B.js} +1 -1
  248. package/static/auth-callback/assets/{workspace-layout-DlZlN49Q.js → workspace-layout-C6Hh8Xf-.js} +1 -1
  249. package/static/auth-callback/auth-callback.html +2 -2
  250. package/static/dashboard/assets/{AiConfigContext-VnWI7bOR.js → AiConfigContext-BkJj28vK.js} +1 -1
  251. package/static/dashboard/assets/{AiConfigPage-Dn3oxXcA.js → AiConfigPage-Cs9B4uyp.js} +1 -1
  252. package/static/dashboard/assets/{DocumentProcessingPanel-CAF1uLi3.js → DocumentProcessingPanel-BBWmM7mS.js} +1 -1
  253. package/static/dashboard/assets/{IndexLifecyclePanel-D9zVZwu8.js → IndexLifecyclePanel-D5xGTT_i.js} +1 -1
  254. package/static/dashboard/assets/{IndexSubjectPanel-_JCGwJmO.js → IndexSubjectPanel-d-mjDthn.js} +1 -1
  255. package/static/dashboard/assets/{ModelAssignmentsPanel-DtlxQxFa.js → ModelAssignmentsPanel-C-OLNbqf.js} +1 -1
  256. package/static/dashboard/assets/{ModelsPage-CCNTpXM5.js → ModelsPage-CBrLjuUn.js} +1 -1
  257. package/static/dashboard/assets/{NetworkPage-BAKv9unq.js → NetworkPage-BlYk8L1z.js} +1 -1
  258. package/static/dashboard/assets/{PaneListHeader-Dr1jq2Ii.js → PaneListHeader-A5oZJQC0.js} +1 -1
  259. package/static/dashboard/assets/{SearchIndexingPanel-BW0pPrQB.js → SearchIndexingPanel-Bs1j8ZP2.js} +1 -1
  260. package/static/dashboard/assets/{StatusSubjectPanel-c9iebk4M.js → StatusSubjectPanel-Qao3orvi.js} +1 -1
  261. package/static/dashboard/assets/{StatusWorkspace-KZ7zrrmB.js → StatusWorkspace-rDM0yDtk.js} +1 -1
  262. package/static/dashboard/assets/{SystemSettingsPage-fVSfJMi9.js → SystemSettingsPage-FPRPkKaR.js} +1 -1
  263. package/static/dashboard/assets/{SystemSettingsSubjectPanel-DUSxcVT8.js → SystemSettingsSubjectPanel-CjlJAxnX.js} +1 -1
  264. package/static/dashboard/assets/{activity-Dg4XxJA8.js → activity-CJ5K6hYC.js} +1 -1
  265. package/static/dashboard/assets/{badge-OHMG7sYk.js → badge-L-NMOi1P.js} +1 -1
  266. package/static/dashboard/assets/dashboard-B_s8Ye5Z.css +1 -0
  267. package/static/dashboard/assets/{dashboard-UuQZ5g0B.js → dashboard-DyjAyYxx.js} +34 -34
  268. package/static/dashboard/assets/{download-CkbQhuL2.js → download-Bi4u5K5B.js} +1 -1
  269. package/static/dashboard/assets/{external-link-C15frgwD.js → external-link-jmhLDfvT.js} +1 -1
  270. package/static/dashboard/assets/{index-BiU8tNWd.js → index-BoaGJBxf.js} +1 -1
  271. package/static/dashboard/assets/{index-JUkJUI4K.js → index-C22TAEi4.js} +1 -1
  272. package/static/dashboard/assets/{key-round-BVREfX5D.js → key-round-Dk1VmMrn.js} +1 -1
  273. package/static/dashboard/assets/{rotate-ccw-cPEquKE_.js → rotate-ccw-DIfLsSwi.js} +1 -1
  274. package/static/dashboard/assets/{skeleton-BPM2LdA5.js → skeleton-BGPJMHb-.js} +1 -1
  275. package/static/dashboard/assets/{waypoints-Cd3kODMk.js → waypoints-CY53egpu.js} +1 -1
  276. package/static/dashboard/assets/{workspace-layout-BP3gLLXb.js → workspace-layout-CoHkcx70.js} +1 -1
  277. package/static/dashboard/dashboard.html +2 -2
  278. package/static/settings/assets/{AiConfigContext-B-D3riwG.js → AiConfigContext-BcEPlEJe.js} +1 -1
  279. package/static/settings/assets/{AiConfigPage-CAYT-CgT.js → AiConfigPage-D-t3ZUhg.js} +1 -1
  280. package/static/settings/assets/{DocumentProcessingPanel-D__vS86O.js → DocumentProcessingPanel-m2SasiMO.js} +1 -1
  281. package/static/settings/assets/{IndexLifecyclePanel-CuYEAG62.js → IndexLifecyclePanel-BNmAvx8V.js} +1 -1
  282. package/static/settings/assets/{IndexSubjectPanel-Do71gQQC.js → IndexSubjectPanel-C5-L2AcW.js} +1 -1
  283. package/static/settings/assets/{ModelAssignmentsPanel-Cn3kSze7.js → ModelAssignmentsPanel-Cfpkf02Y.js} +1 -1
  284. package/static/settings/assets/{ModelsPage-BKO0ARYt.js → ModelsPage-DZrACwVN.js} +1 -1
  285. package/static/settings/assets/{NetworkPage-XPYrdyVd.js → NetworkPage-BlrGGfqL.js} +1 -1
  286. package/static/settings/assets/{PaneListHeader-BAiQcCss.js → PaneListHeader-C3TCs1RI.js} +1 -1
  287. package/static/settings/assets/{SearchIndexingPanel-Bx3Fco0x.js → SearchIndexingPanel-Cyp3CUzX.js} +1 -1
  288. package/static/settings/assets/{StatusSubjectPanel-BzKzXmSL.js → StatusSubjectPanel-gRkb8WEX.js} +1 -1
  289. package/static/settings/assets/{StatusWorkspace-NjLpo9xp.js → StatusWorkspace-Dptx4Ec2.js} +1 -1
  290. package/static/settings/assets/{SystemSettingsPage-CclI_Lpv.js → SystemSettingsPage-BWgGUQbs.js} +1 -1
  291. package/static/settings/assets/{SystemSettingsSubjectPanel-CMnSE-8N.js → SystemSettingsSubjectPanel-VflUvpgC.js} +1 -1
  292. package/static/settings/assets/{activity-DYpNPFzG.js → activity-D7iNhTkQ.js} +1 -1
  293. package/static/settings/assets/{badge-C7Vhmg28.js → badge-DO0r_RT4.js} +1 -1
  294. package/static/settings/assets/{download-DdXcAiwj.js → download-CsJlNSbd.js} +1 -1
  295. package/static/settings/assets/{external-link-D7thdQae.js → external-link-BCR7SHme.js} +1 -1
  296. package/static/settings/assets/{index-CwBKvDQZ.js → index-Cgq16ekN.js} +1 -1
  297. package/static/settings/assets/{index-BnYbrf5s.js → index-SrhQvcrU.js} +1 -1
  298. package/static/settings/assets/{index-browser-DYzi1DO1.js → index-browser-THpcMCnz.js} +1 -1
  299. package/static/settings/assets/{key-round-BXErodZA.js → key-round-Dd3jk1BT.js} +1 -1
  300. package/static/settings/assets/{rotate-ccw-DPyOBmDD.js → rotate-ccw-tiL14i1d.js} +1 -1
  301. package/static/settings/assets/settings-B_s8Ye5Z.css +1 -0
  302. package/static/settings/assets/{settings-BGpEf8nx.js → settings-CVLDPejo.js} +34 -34
  303. package/static/settings/assets/{skeleton-S9l3JIr9.js → skeleton-DBxLuNgU.js} +1 -1
  304. package/static/settings/assets/{waypoints-C5By7zWc.js → waypoints-DS3e3hv7.js} +1 -1
  305. package/static/settings/assets/{workspace-layout-Bb6RVAEx.js → workspace-layout-mucrxyTK.js} +1 -1
  306. package/static/settings/settings.html +2 -2
  307. package/config/search.json +0 -66
  308. package/dist/document/HeadingChunker.jsonld +0 -41
  309. package/dist/security/secret-cell/DeploymentRootKeyProvider.jsonld +0 -124
  310. package/dist/security/secret-cell/SecretCellVault.jsonld +0 -207
  311. package/dist/storage/PostgresDerivedIndexJournal.d.ts +0 -47
  312. package/dist/storage/PostgresDerivedIndexJournal.js +0 -408
  313. package/dist/storage/PostgresDerivedIndexJournal.jsonld +0 -303
  314. package/dist/storage/RdfDerivedIndexingListener.d.ts +0 -32
  315. package/dist/storage/RdfDerivedIndexingListener.js +0 -135
  316. package/dist/storage/RdfDerivedIndexingListener.jsonld +0 -228
  317. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.d.ts +0 -148
  318. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js +0 -436
  319. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.jsonld +0 -172
  320. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.d.ts +0 -102
  321. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js +0 -474
  322. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.jsonld +0 -192
  323. package/dist/storage/rdf/RdfSparqlAdapter.jsonld +0 -486
  324. package/dist/storage/rdf/ShadowRdfQuintStore.d.ts +0 -59
  325. package/dist/storage/rdf/ShadowRdfQuintStore.js +0 -216
  326. package/dist/storage/rdf/ShadowRdfQuintStore.jsonld +0 -312
  327. package/dist/storage/rdf/SolidRdfSparqlEngine.d.ts +0 -107
  328. package/dist/storage/rdf/SolidRdfSparqlEngine.js +0 -1117
  329. package/dist/storage/rdf/SolidRdfSparqlEngine.jsonld +0 -312
  330. package/dist/storage/sparql/AlgebraUtils.d.ts +0 -48
  331. package/dist/storage/sparql/AlgebraUtils.js +0 -118
  332. package/dist/storage/sparql/CompatibilitySparqlEngine.d.ts +0 -37
  333. package/dist/storage/sparql/CompatibilitySparqlEngine.js +0 -96
  334. package/dist/storage/sparql/CompatibilitySparqlEngine.jsonld +0 -123
  335. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.d.ts +0 -36
  336. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js +0 -124
  337. package/dist/storage/sparql/ComunicaOptimizedEngine.d.ts +0 -59
  338. package/dist/storage/sparql/ComunicaOptimizedEngine.js +0 -254
  339. package/dist/storage/sparql/ComunicaQuintEngine.d.ts +0 -143
  340. package/dist/storage/sparql/ComunicaQuintEngine.js +0 -781
  341. package/dist/storage/sparql/ExpressionEvaluator.d.ts +0 -54
  342. package/dist/storage/sparql/ExpressionEvaluator.js +0 -340
  343. package/dist/storage/sparql/FilterPushdownExtractor.d.ts +0 -74
  344. package/dist/storage/sparql/FilterPushdownExtractor.js +0 -421
  345. package/dist/storage/sparql/OptimizedQuadstoreEngine.d.ts +0 -65
  346. package/dist/storage/sparql/OptimizedQuadstoreEngine.js +0 -327
  347. package/dist/storage/sparql/OptimizedQuadstoreSource.d.ts +0 -46
  348. package/dist/storage/sparql/OptimizedQuadstoreSource.js +0 -118
  349. package/dist/storage/sparql/PatternBuilder.d.ts +0 -41
  350. package/dist/storage/sparql/PatternBuilder.js +0 -118
  351. package/dist/storage/sparql/QueryOptimizer.d.ts +0 -125
  352. package/dist/storage/sparql/QueryOptimizer.js +0 -375
  353. package/dist/storage/sparql/QuintEngine.d.ts +0 -92
  354. package/dist/storage/sparql/QuintEngine.js +0 -150
  355. package/dist/storage/sparql/QuintQuerySource.d.ts +0 -241
  356. package/dist/storage/sparql/QuintQuerySource.js +0 -1069
  357. package/dist/storage/sparql/SimpleSparqlExecutor.d.ts +0 -40
  358. package/dist/storage/sparql/SimpleSparqlExecutor.js +0 -131
  359. package/dist/storage/vector/VectorIndexingListener.d.ts +0 -114
  360. package/dist/storage/vector/VectorIndexingListener.js +0 -346
  361. package/static/auth-callback/assets/auth-callback-rWdEQY5f.css +0 -1
  362. package/static/dashboard/assets/dashboard-rWdEQY5f.css +0 -1
  363. package/static/settings/assets/settings-rWdEQY5f.css +0 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RdfVectorIndex = void 0;
3
+ exports.RdfVectorIndex = exports.RDF_VECTOR_SCHEMA_VERSION = void 0;
4
4
  exports.vectorScoreComponents = vectorScoreComponents;
5
5
  exports.normalizeEmbedding = normalizeEmbedding;
6
6
  exports.parseEmbedding = parseEmbedding;
@@ -17,10 +17,22 @@ exports.vectorSquaredDistanceSql = vectorSquaredDistanceSql;
17
17
  exports.vectorThresholdSql = vectorThresholdSql;
18
18
  exports.applyResultWindow = applyResultWindow;
19
19
  exports.sqlNumber = sqlNumber;
20
- const node_fs_1 = require("node:fs");
21
- const node_path_1 = require("node:path");
22
20
  const SqliteRuntime_1 = require("../SqliteRuntime");
23
21
  const RdfSearchSourceFilter_1 = require("./RdfSearchSourceFilter");
22
+ const RdfSqliteConnection_1 = require("./RdfSqliteConnection");
23
+ exports.RDF_VECTOR_SCHEMA_VERSION = 2;
24
+ const RDF_VECTOR_DOMAIN_TABLES = [
25
+ 'rdf_vector_metadata',
26
+ 'rdf_vector_sources',
27
+ 'rdf_vector_chunks',
28
+ 'rdf_vector_components',
29
+ ];
30
+ const RDF_VECTOR_REQUIRED_COLUMNS = {
31
+ rdf_vector_metadata: ['key', 'value'],
32
+ rdf_vector_sources: ['id', 'source_key', 'source', 'workspace', 'local_path', 'content_type', 'source_version', 'source_hash', 'updated_at'],
33
+ rdf_vector_chunks: ['id', 'source_id', 'chunk_key', 'ordinal', 'level', 'heading', 'path', 'content', 'start_offset', 'end_offset', 'embedding_json', 'summary_metadata', 'dimensions', 'magnitude', 'provider', 'model', 'model_version', 'input_kind', 'input_hash', 'projection_policy_version', 'updated_at'],
34
+ rdf_vector_components: ['chunk_id', 'dimension', 'value', 'updated_at'],
35
+ };
24
36
  class RdfVectorIndex {
25
37
  constructor(options) {
26
38
  this.options = options;
@@ -31,13 +43,7 @@ class RdfVectorIndex {
31
43
  if (this.db) {
32
44
  return;
33
45
  }
34
- if (this.options.path !== ':memory:') {
35
- const dir = (0, node_path_1.dirname)(this.options.path);
36
- if (!(0, node_fs_1.existsSync)(dir)) {
37
- (0, node_fs_1.mkdirSync)(dir, { recursive: true });
38
- }
39
- }
40
- this.db = this.sqliteRuntime.openDatabase(this.options.path);
46
+ this.db = (0, RdfSqliteConnection_1.openRdfSqliteDatabase)(this.sqliteRuntime, this.options.path);
41
47
  this.initializeSchema();
42
48
  }
43
49
  close() {
@@ -47,9 +53,14 @@ class RdfVectorIndex {
47
53
  clear() {
48
54
  this.requireDb().exec('DELETE FROM rdf_vector_components; DELETE FROM rdf_vector_chunks; DELETE FROM rdf_vector_sources;');
49
55
  }
56
+ schemaVersion() {
57
+ const row = this.requireDb()
58
+ .prepare("SELECT value FROM rdf_vector_metadata WHERE key = 'schema_version'")
59
+ .get();
60
+ return Number(row?.value ?? 0) || 0;
61
+ }
50
62
  indexVector(source, chunks) {
51
63
  const db = this.requireDb();
52
- const sourceId = this.upsertSource(source);
53
64
  const insertChunk = db.prepare(`
54
65
  INSERT INTO rdf_vector_chunks (
55
66
  source_id,
@@ -85,6 +96,7 @@ class RdfVectorIndex {
85
96
  VALUES (?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
86
97
  `);
87
98
  db.transaction(() => {
99
+ const sourceId = this.upsertSource(source);
88
100
  if (chunks.length === 0) {
89
101
  db.prepare(`
90
102
  DELETE FROM rdf_vector_components
@@ -149,6 +161,49 @@ class RdfVectorIndex {
149
161
  return deletedChunks;
150
162
  })();
151
163
  }
164
+ moveSource(oldSource, next) {
165
+ const db = this.requireDb();
166
+ let affectedRows = 0;
167
+ db.transaction(() => {
168
+ const oldRow = db.prepare('SELECT * FROM rdf_vector_sources WHERE source = ?').get(oldSource);
169
+ if (!oldRow) {
170
+ return;
171
+ }
172
+ const sourceKey = oldRow.source_key;
173
+ if (next.sourceKey && next.sourceKey !== sourceKey) {
174
+ throw new Error(`RDF vector source key mismatch for source ${oldSource}: expected ${sourceKey}, got ${next.sourceKey}`);
175
+ }
176
+ const chunkCount = db
177
+ .prepare('SELECT COUNT(*) AS count FROM rdf_vector_chunks WHERE source_id = ?')
178
+ .get(oldRow.id)?.count ?? 0;
179
+ const targetRow = db.prepare('SELECT * FROM rdf_vector_sources WHERE source = ?').get(next.source);
180
+ if (targetRow && targetRow.id !== oldRow.id) {
181
+ db.prepare(`
182
+ DELETE FROM rdf_vector_components
183
+ WHERE chunk_id IN (
184
+ SELECT id FROM rdf_vector_chunks WHERE source_id = ?
185
+ )
186
+ `).run(targetRow.id);
187
+ db.prepare('DELETE FROM rdf_vector_chunks WHERE source_id = ?').run(targetRow.id);
188
+ db.prepare('DELETE FROM rdf_vector_sources WHERE id = ?').run(targetRow.id);
189
+ }
190
+ db.prepare(`
191
+ UPDATE rdf_vector_sources
192
+ SET
193
+ source_key = ?,
194
+ source = ?,
195
+ workspace = ?,
196
+ local_path = ?,
197
+ content_type = ?,
198
+ source_version = ?,
199
+ source_hash = ?,
200
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
201
+ WHERE id = ?
202
+ `).run(sourceKey, next.source, next.workspace, next.localPath ?? null, next.contentType ?? null, next.sourceVersion ?? null, next.sourceHash ?? oldRow.source_hash ?? null, oldRow.id);
203
+ affectedRows = Math.max(chunkCount, 1);
204
+ })();
205
+ return affectedRows;
206
+ }
152
207
  search(options) {
153
208
  const embedding = normalizeEmbedding(options.embedding);
154
209
  if (embedding.length === 0) {
@@ -311,10 +366,20 @@ class RdfVectorIndex {
311
366
  }));
312
367
  }
313
368
  initializeSchema() {
314
- this.requireDb().exec(`
315
- CREATE TABLE IF NOT EXISTS rdf_vector_sources (
369
+ const db = this.requireDb();
370
+ if (hasAnyTable(db, RDF_VECTOR_DOMAIN_TABLES)) {
371
+ this.validateSchema();
372
+ return;
373
+ }
374
+ db.exec(`
375
+ CREATE TABLE rdf_vector_metadata (
376
+ key TEXT PRIMARY KEY,
377
+ value TEXT NOT NULL
378
+ );
379
+
380
+ CREATE TABLE rdf_vector_sources (
316
381
  id INTEGER PRIMARY KEY AUTOINCREMENT,
317
- source_key TEXT,
382
+ source_key TEXT NOT NULL UNIQUE,
318
383
  source TEXT NOT NULL UNIQUE,
319
384
  workspace TEXT NOT NULL,
320
385
  local_path TEXT,
@@ -324,7 +389,7 @@ class RdfVectorIndex {
324
389
  updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
325
390
  );
326
391
 
327
- CREATE TABLE IF NOT EXISTS rdf_vector_chunks (
392
+ CREATE TABLE rdf_vector_chunks (
328
393
  id INTEGER PRIMARY KEY AUTOINCREMENT,
329
394
  source_id INTEGER NOT NULL,
330
395
  chunk_key TEXT NOT NULL,
@@ -359,7 +424,7 @@ class RdfVectorIndex {
359
424
  FOREIGN KEY (source_id) REFERENCES rdf_vector_sources(id)
360
425
  );
361
426
 
362
- CREATE TABLE IF NOT EXISTS rdf_vector_components (
427
+ CREATE TABLE rdf_vector_components (
363
428
  chunk_id INTEGER NOT NULL,
364
429
  dimension INTEGER NOT NULL,
365
430
  value REAL NOT NULL,
@@ -372,213 +437,35 @@ class RdfVectorIndex {
372
437
  CREATE INDEX IF NOT EXISTS rdf_vector_sources_source ON rdf_vector_sources(source);
373
438
  CREATE INDEX IF NOT EXISTS rdf_vector_chunks_source ON rdf_vector_chunks(source_id, ordinal);
374
439
  CREATE INDEX IF NOT EXISTS rdf_vector_components_dimension ON rdf_vector_components(dimension, chunk_id);
375
- `);
376
- this.ensureSourceKeyColumn();
377
- this.ensureVectorIdentityColumns();
378
- this.backfillVectorComponents();
379
- }
380
- ensureSourceKeyColumn() {
381
- const db = this.requireDb();
382
- const columns = db.prepare('PRAGMA table_info(rdf_vector_sources)').all();
383
- if (!columns.some((column) => column.name === 'source_key')) {
384
- db.exec('ALTER TABLE rdf_vector_sources ADD COLUMN source_key TEXT');
385
- }
386
- db.exec('UPDATE rdf_vector_sources SET source_key = source WHERE source_key IS NULL OR source_key = \'\';');
387
- }
388
- ensureVectorIdentityColumns() {
389
- const db = this.requireDb();
390
- const columns = db.prepare('PRAGMA table_info(rdf_vector_chunks)').all();
391
- const names = new Set(columns.map((column) => column.name));
392
- for (const [name, definition] of [
393
- ['provider', 'TEXT NOT NULL DEFAULT \'\''],
394
- ['model_version', 'TEXT NOT NULL DEFAULT \'\''],
395
- ['input_kind', 'TEXT NOT NULL DEFAULT \'\''],
396
- ['input_hash', 'TEXT NOT NULL DEFAULT \'\''],
397
- ['projection_policy_version', 'TEXT NOT NULL DEFAULT \'\''],
398
- ['summary_metadata', 'TEXT'],
399
- ]) {
400
- if (!names.has(name)) {
401
- db.exec(`ALTER TABLE rdf_vector_chunks ADD COLUMN ${name} ${definition}`);
402
- }
403
- }
404
- db.exec(`
405
- UPDATE rdf_vector_chunks
406
- SET
407
- provider = COALESCE(provider, ''),
408
- model_version = COALESCE(model_version, ''),
409
- input_kind = COALESCE(input_kind, ''),
410
- input_hash = COALESCE(input_hash, ''),
411
- projection_policy_version = COALESCE(projection_policy_version, '')
412
- `);
413
- this.ensureVectorChunkIdentityUniqueConstraint();
414
- db.exec(`
415
440
  CREATE INDEX IF NOT EXISTS rdf_vector_chunks_model_dimensions
416
- ON rdf_vector_chunks(provider, model, model_version, input_kind, projection_policy_version, dimensions)
441
+ ON rdf_vector_chunks(provider, model, model_version, input_kind, projection_policy_version, dimensions);
442
+
443
+ INSERT INTO rdf_vector_metadata (key, value)
444
+ VALUES ('schema_version', '${exports.RDF_VECTOR_SCHEMA_VERSION}');
417
445
  `);
418
446
  }
419
- ensureVectorChunkIdentityUniqueConstraint() {
447
+ validateSchema() {
420
448
  const db = this.requireDb();
421
- const indexes = db.prepare('PRAGMA index_list(rdf_vector_chunks)').all();
422
- const hasLegacyUnique = indexes.some((index) => {
423
- if (!index.unique) {
424
- return false;
449
+ for (const table of RDF_VECTOR_DOMAIN_TABLES) {
450
+ if (!hasTable(db, table)) {
451
+ throw new Error(`Unsupported RDF vector index schema: missing table ${table}`);
425
452
  }
426
- const columns = db.prepare(`PRAGMA index_info(${sqliteStringLiteral(index.name)})`).all();
427
- return columns.map((column) => column.name).join(',') === 'source_id,chunk_key';
428
- });
429
- if (!hasLegacyUnique) {
430
- return;
453
+ assertRequiredColumns(db, table, RDF_VECTOR_REQUIRED_COLUMNS[table]);
431
454
  }
432
- db.exec(`
433
- ALTER TABLE rdf_vector_components RENAME TO rdf_vector_components_legacy_unique;
434
- ALTER TABLE rdf_vector_chunks RENAME TO rdf_vector_chunks_legacy_unique;
435
-
436
- CREATE TABLE rdf_vector_chunks (
437
- id INTEGER PRIMARY KEY AUTOINCREMENT,
438
- source_id INTEGER NOT NULL,
439
- chunk_key TEXT NOT NULL,
440
- ordinal INTEGER NOT NULL,
441
- level INTEGER NOT NULL,
442
- heading TEXT,
443
- path TEXT,
444
- content TEXT NOT NULL,
445
- start_offset INTEGER NOT NULL,
446
- end_offset INTEGER NOT NULL,
447
- embedding_json TEXT NOT NULL,
448
- summary_metadata TEXT,
449
- dimensions INTEGER NOT NULL,
450
- magnitude REAL NOT NULL,
451
- provider TEXT NOT NULL DEFAULT '',
452
- model TEXT NOT NULL,
453
- model_version TEXT NOT NULL DEFAULT '',
454
- input_kind TEXT NOT NULL DEFAULT '',
455
- input_hash TEXT NOT NULL DEFAULT '',
456
- projection_policy_version TEXT NOT NULL DEFAULT '',
457
- updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
458
- UNIQUE (
459
- source_id,
460
- chunk_key,
461
- provider,
462
- model,
463
- model_version,
464
- input_kind,
465
- projection_policy_version,
466
- input_hash
467
- ),
468
- FOREIGN KEY (source_id) REFERENCES rdf_vector_sources(id)
469
- );
470
-
471
- CREATE TABLE rdf_vector_components (
472
- chunk_id INTEGER NOT NULL,
473
- dimension INTEGER NOT NULL,
474
- value REAL NOT NULL,
475
- updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
476
- PRIMARY KEY (chunk_id, dimension),
477
- FOREIGN KEY (chunk_id) REFERENCES rdf_vector_chunks(id)
478
- );
479
-
480
- INSERT INTO rdf_vector_chunks (
481
- id,
482
- source_id,
483
- chunk_key,
484
- ordinal,
485
- level,
486
- heading,
487
- path,
488
- content,
489
- start_offset,
490
- end_offset,
491
- embedding_json,
492
- summary_metadata,
493
- dimensions,
494
- magnitude,
495
- provider,
496
- model,
497
- model_version,
498
- input_kind,
499
- input_hash,
500
- projection_policy_version,
501
- updated_at
502
- )
503
- SELECT
504
- id,
505
- source_id,
506
- chunk_key,
507
- ordinal,
508
- level,
509
- heading,
510
- path,
511
- content,
512
- start_offset,
513
- end_offset,
514
- embedding_json,
515
- NULL AS summary_metadata,
516
- dimensions,
517
- magnitude,
518
- COALESCE(provider, ''),
519
- model,
520
- COALESCE(model_version, ''),
521
- COALESCE(input_kind, ''),
522
- COALESCE(input_hash, ''),
523
- COALESCE(projection_policy_version, ''),
524
- updated_at
525
- FROM rdf_vector_chunks_legacy_unique;
526
-
527
- INSERT INTO rdf_vector_components (
528
- chunk_id,
529
- dimension,
530
- value,
531
- updated_at
532
- )
533
- SELECT
534
- chunk_id,
535
- dimension,
536
- value,
537
- updated_at
538
- FROM rdf_vector_components_legacy_unique;
539
-
540
- DROP TABLE rdf_vector_components_legacy_unique;
541
- DROP TABLE rdf_vector_chunks_legacy_unique;
542
- CREATE INDEX IF NOT EXISTS rdf_vector_chunks_source ON rdf_vector_chunks(source_id, ordinal);
543
- CREATE INDEX IF NOT EXISTS rdf_vector_components_dimension ON rdf_vector_components(dimension, chunk_id);
544
- `);
545
- }
546
- backfillVectorComponents() {
547
- const db = this.requireDb();
548
- const rows = db.prepare(`
549
- SELECT
550
- chunk.id,
551
- chunk.dimensions,
552
- chunk.embedding_json,
553
- COUNT(component.dimension) AS component_count
554
- FROM rdf_vector_chunks chunk
555
- LEFT JOIN rdf_vector_components component ON component.chunk_id = chunk.id
556
- WHERE chunk.dimensions > 0
557
- GROUP BY chunk.id
558
- HAVING component_count <> chunk.dimensions
559
- `).all();
560
- if (rows.length === 0) {
561
- return;
455
+ const version = this.schemaVersion();
456
+ if (version !== exports.RDF_VECTOR_SCHEMA_VERSION) {
457
+ throw new Error(`Unsupported RDF vector index schema version: expected ${exports.RDF_VECTOR_SCHEMA_VERSION}, got ${version}`);
562
458
  }
563
- const deleteComponents = db.prepare('DELETE FROM rdf_vector_components WHERE chunk_id = ?');
564
- const insertComponent = db.prepare(`
565
- INSERT INTO rdf_vector_components (
566
- chunk_id,
567
- dimension,
568
- value,
569
- updated_at
570
- )
571
- VALUES (?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
572
- `);
573
- db.transaction(() => {
574
- for (const row of rows) {
575
- deleteComponents.run(row.id);
576
- insertVectorComponents(insertComponent, row.id, parseEmbedding(row.embedding_json));
577
- }
578
- })();
459
+ assertNotNullColumn(db, 'rdf_vector_sources', 'source_key');
460
+ assertUniqueColumn(db, 'rdf_vector_sources', 'source_key');
579
461
  }
580
462
  upsertSource(source) {
581
463
  const db = this.requireDb();
464
+ const existing = db.prepare('SELECT * FROM rdf_vector_sources WHERE source = ?').get(source.source);
465
+ if (existing && source.sourceKey && existing.source_key !== source.sourceKey) {
466
+ throw new Error(`RDF vector source key mismatch for source ${source.source}: expected ${existing.source_key}, got ${source.sourceKey}`);
467
+ }
468
+ const sourceKey = existing?.source_key ?? source.sourceKey ?? source.source;
582
469
  db.prepare(`
583
470
  INSERT INTO rdf_vector_sources (
584
471
  source_key,
@@ -593,14 +480,13 @@ class RdfVectorIndex {
593
480
  VALUES (?, ?, ?, ?, ?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
594
481
  ON CONFLICT (source)
595
482
  DO UPDATE SET
596
- source_key = COALESCE(excluded.source_key, rdf_vector_sources.source_key, excluded.source),
597
483
  workspace = excluded.workspace,
598
484
  local_path = excluded.local_path,
599
485
  content_type = excluded.content_type,
600
486
  source_version = excluded.source_version,
601
487
  source_hash = excluded.source_hash,
602
488
  updated_at = excluded.updated_at
603
- `).run(source.sourceKey ?? source.source, source.source, source.workspace, source.localPath ?? null, source.contentType ?? null, source.sourceVersion ?? null, source.sourceHash ?? null);
489
+ `).run(sourceKey, source.source, source.workspace, source.localPath ?? null, source.contentType ?? null, source.sourceVersion ?? null, source.sourceHash ?? null);
604
490
  const row = db.prepare('SELECT * FROM rdf_vector_sources WHERE source = ?').get(source.source);
605
491
  if (!row) {
606
492
  throw new Error(`Failed to upsert RDF vector source: ${source.source}`);
@@ -657,6 +543,24 @@ class RdfVectorIndex {
657
543
  }
658
544
  }
659
545
  exports.RdfVectorIndex = RdfVectorIndex;
546
+ function normalizeVectorIdentity(chunk) {
547
+ return {
548
+ provider: chunk.provider ?? '',
549
+ model: chunk.model ?? '',
550
+ modelVersion: chunk.modelVersion ?? '',
551
+ inputKind: chunk.inputKind ?? '',
552
+ projectionPolicyVersion: chunk.projectionPolicyVersion ?? '',
553
+ };
554
+ }
555
+ function vectorIdentityKey(identity) {
556
+ return [
557
+ identity.provider,
558
+ identity.model,
559
+ identity.modelVersion,
560
+ identity.inputKind,
561
+ identity.projectionPolicyVersion,
562
+ ].join('\u0000');
563
+ }
660
564
  function vectorScoreComponents(row, metric, queryMagnitude, score, distance, backend) {
661
565
  const distanceSquared = row.vector_distance_squared ?? undefined;
662
566
  return {
@@ -759,26 +663,45 @@ function parseSummaryMetadata(value) {
759
663
  return undefined;
760
664
  }
761
665
  }
762
- function normalizeVectorIdentity(chunk) {
763
- return {
764
- provider: chunk.provider ?? '',
765
- model: chunk.model ?? '',
766
- modelVersion: chunk.modelVersion ?? '',
767
- inputKind: chunk.inputKind ?? '',
768
- projectionPolicyVersion: chunk.projectionPolicyVersion ?? '',
769
- };
666
+ function hasAnyTable(db, tables) {
667
+ return tables.some((table) => hasTable(db, table));
770
668
  }
771
- function vectorIdentityKey(identity) {
772
- return [
773
- identity.provider,
774
- identity.model,
775
- identity.modelVersion,
776
- identity.inputKind,
777
- identity.projectionPolicyVersion,
778
- ].join('\u0000');
669
+ function hasTable(db, table) {
670
+ return db.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?").get(table) != null;
671
+ }
672
+ function assertRequiredColumns(db, table, requiredColumns) {
673
+ const columns = new Set(db.prepare(`PRAGMA table_info(${table})`)
674
+ .all()
675
+ .map((column) => column.name));
676
+ for (const column of requiredColumns) {
677
+ if (!columns.has(column)) {
678
+ throw new Error(`Unsupported RDF vector index schema: missing column ${table}.${column}`);
679
+ }
680
+ }
681
+ }
682
+ function assertNotNullColumn(db, table, column) {
683
+ const row = db.prepare(`PRAGMA table_info(${quoteSqliteIdentifier(table)})`)
684
+ .all()
685
+ .find((entry) => entry.name === column);
686
+ if (!row || row.notnull !== 1) {
687
+ throw new Error(`Unsupported RDF vector index schema: column ${table}.${column} must be NOT NULL`);
688
+ }
689
+ }
690
+ function assertUniqueColumn(db, table, column) {
691
+ const indexes = db.prepare(`PRAGMA index_list(${quoteSqliteIdentifier(table)})`).all();
692
+ for (const index of indexes) {
693
+ if (index.unique !== 1) {
694
+ continue;
695
+ }
696
+ const columns = db.prepare(`PRAGMA index_info(${quoteSqliteIdentifier(index.name)})`).all();
697
+ if (columns.length === 1 && columns[0].name === column) {
698
+ return;
699
+ }
700
+ }
701
+ throw new Error(`Unsupported RDF vector index schema: column ${table}.${column} must be UNIQUE`);
779
702
  }
780
- function sqliteStringLiteral(value) {
781
- return `'${value.replace(/'/g, '\'\'')}'`;
703
+ function quoteSqliteIdentifier(value) {
704
+ return `"${value.replace(/"/g, '""')}"`;
782
705
  }
783
706
  function appendVectorIdentityFilters(options, conditions, params) {
784
707
  if (options.provider !== undefined) {
@@ -74,6 +74,10 @@
74
74
  "@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_clear",
75
75
  "memberFieldName": "clear"
76
76
  },
77
+ {
78
+ "@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_schemaVersion",
79
+ "memberFieldName": "schemaVersion"
80
+ },
77
81
  {
78
82
  "@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_indexVector",
79
83
  "memberFieldName": "indexVector"
@@ -82,6 +86,10 @@
82
86
  "@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_deleteSource",
83
87
  "memberFieldName": "deleteSource"
84
88
  },
89
+ {
90
+ "@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_moveSource",
91
+ "memberFieldName": "moveSource"
92
+ },
85
93
  {
86
94
  "@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_search",
87
95
  "memberFieldName": "search"
@@ -107,20 +115,8 @@
107
115
  "memberFieldName": "initializeSchema"
108
116
  },
109
117
  {
110
- "@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_ensureSourceKeyColumn",
111
- "memberFieldName": "ensureSourceKeyColumn"
112
- },
113
- {
114
- "@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_ensureVectorIdentityColumns",
115
- "memberFieldName": "ensureVectorIdentityColumns"
116
- },
117
- {
118
- "@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_ensureVectorChunkIdentityUniqueConstraint",
119
- "memberFieldName": "ensureVectorChunkIdentityUniqueConstraint"
120
- },
121
- {
122
- "@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_backfillVectorComponents",
123
- "memberFieldName": "backfillVectorComponents"
118
+ "@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_validateSchema",
119
+ "memberFieldName": "validateSchema"
124
120
  },
125
121
  {
126
122
  "@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_upsertSource",
@@ -1,36 +1,32 @@
1
1
  import type { Quad } from '@rdfjs/types';
2
- import type { QuintPattern, QuintStore } from '../quint/types';
3
- import type { Rdf3xShadowJoinResult, Rdf3xShadowScanResult, Rdf3xIndexOptions, RdfDerivedIndexProfile, RdfDerivedIndexRefreshOptions, RdfDerivedIndexRefreshResult, RdfEngineStorageStats, RdfIndexPutOptions, RdfPatternQuery, RdfQuadJoinOptions, RdfQuadJoinPattern, RdfQuadIndexOptions, RdfQuadIndexScanResult, RdfSourceInput, RdfShadowScanResult, RdfTextChunkInput, RdfTextIndexOptions, RdfTextIndexSyncLike, RdfTextSearchOptions, RdfTextSearchResult, RdfTextSourceInput, RdfTermRewriteInput, RdfTermRewriteResult, RdfVectorChunkInput, RdfVectorIndexOptions, RdfVectorIndexSyncLike, RdfVectorSearchOptions, RdfVectorSearchResult, RdfVectorSourceInput, RdfEngineLike, RdfStorageStatsOptions } from './types';
2
+ import type { QuintPattern } from '../quint/types';
3
+ import type { RdfDerivedIndexRefreshOptions, RdfDerivedIndexRefreshResult, RdfEngineStorageStats, RdfIndexPutOptions, RdfPatternQuery, RdfQuadIndexOptions, RdfQuadIndexScanResult, RdfSourceInput, RdfTextChunkInput, RdfTextIndexOptions, RdfTextIndexSyncLike, RdfTextSourceListOptions, RdfTextSourceMetadata, RdfTextSearchOptions, RdfTextSearchResult, RdfTextSourceInput, RdfTermRewriteInput, RdfTermRewriteResult, RdfVectorChunkInput, RdfVectorIndexOptions, RdfVectorIndexSyncLike, RdfVectorSearchOptions, RdfVectorSearchResult, RdfVectorSourceInput, RdfEngineLike, RdfNativeSparqlQueryOptions, RdfNativeSparqlResult, RdfStorageStatsOptions } from './types';
4
4
  import { RdfQuadIndex } from './RdfQuadIndex';
5
- import { Rdf3xIndex } from './Rdf3xIndex';
6
5
  import type { RdfQuery, RdfQueryResult } from './types';
7
6
  type RdfTextIndexInput = RdfTextIndexSyncLike | RdfTextIndexOptions;
8
7
  type RdfVectorIndexInput = RdfVectorIndexSyncLike | RdfVectorIndexOptions;
8
+ export interface LocalNativeSparqlClientLike {
9
+ start(): void | Promise<void>;
10
+ query(query: string, options: RdfNativeSparqlQueryOptions): RdfNativeSparqlResult | Promise<RdfNativeSparqlResult>;
11
+ close(): void | Promise<void>;
12
+ }
9
13
  export interface SolidRdfEngineOptions {
10
14
  index: RdfQuadIndex | RdfQuadIndexOptions;
11
- derivedIndexProfile?: RdfDerivedIndexProfile;
12
15
  textIndex?: RdfTextIndexInput;
13
16
  vectorIndex?: RdfVectorIndexInput;
14
- rdf3xIndex?: Rdf3xIndex | Rdf3xIndexOptions;
15
- rdf3xPrimary?: boolean;
16
- compatibilityStore?: QuintStore;
17
+ nativeSparqlClient?: LocalNativeSparqlClientLike;
17
18
  autoOpen?: boolean;
18
19
  }
19
20
  export declare class SolidRdfEngine implements RdfEngineLike {
20
21
  readonly index: RdfQuadIndex;
21
22
  readonly textIndex?: RdfTextIndexSyncLike;
22
23
  readonly vectorIndex?: RdfVectorIndexSyncLike;
23
- readonly rdf3xIndex?: Rdf3xIndex;
24
- readonly derivedIndexProfile: RdfDerivedIndexProfile;
25
24
  private readonly ownsIndex;
26
25
  private readonly ownsTextIndex;
27
26
  private readonly ownsVectorIndex;
28
- private readonly ownsRdf3xIndex;
29
- private readonly rdf3xPrimary;
30
- private readonly compatibilityStore?;
31
- private shadowComparator?;
27
+ private readonly nativeSparqlClient?;
32
28
  constructor(options: SolidRdfEngineOptions);
33
- open(): void;
29
+ open(): Promise<void>;
34
30
  close(): Promise<void>;
35
31
  put(quads: Quad | Quad[], options?: RdfIndexPutOptions): void;
36
32
  replaceSource(quads: Quad[], source: RdfSourceInput): void;
@@ -44,22 +40,21 @@ export declare class SolidRdfEngine implements RdfEngineLike {
44
40
  rewriteTerms(input: RdfTermRewriteInput): RdfTermRewriteResult;
45
41
  scan(query: RdfPatternQuery): RdfQuadIndexScanResult;
46
42
  query(query: RdfQuery): RdfQueryResult;
47
- refreshDerivedIndexes(options?: RdfDerivedIndexRefreshOptions): RdfDerivedIndexRefreshResult;
43
+ sparqlQuery(query: string, options: RdfNativeSparqlQueryOptions): Promise<RdfNativeSparqlResult>;
44
+ refreshDerivedIndexes(_options?: RdfDerivedIndexRefreshOptions): RdfDerivedIndexRefreshResult;
48
45
  indexTextSource(source: RdfTextSourceInput, text: string, chunks?: RdfTextChunkInput[]): void;
49
46
  deleteTextSource(source: string): number;
47
+ moveTextSource(oldSource: string, next: RdfTextSourceInput): number;
48
+ listTextSources(options?: RdfTextSourceListOptions): RdfTextSourceMetadata[];
50
49
  searchText(options: RdfTextSearchOptions | string): RdfTextSearchResult[];
50
+ listTextSourceChunks(sourceKey: string): RdfTextSearchResult[];
51
51
  indexVectorSource(source: RdfVectorSourceInput, chunks: RdfVectorChunkInput[]): void;
52
52
  deleteVectorSource(source: string): number;
53
+ moveVectorSource(oldSource: string, next: RdfVectorSourceInput): number;
53
54
  searchVector(options: RdfVectorSearchOptions): RdfVectorSearchResult[];
54
- shadowScan(query: RdfPatternQuery): Promise<RdfShadowScanResult>;
55
- shadowRdf3xScan(query: RdfPatternQuery): Rdf3xShadowScanResult;
56
- shadowRdf3xJoin(patterns: RdfQuadJoinPattern[], options?: RdfQuadJoinOptions): Rdf3xShadowJoinResult;
57
55
  supportsPrimary(query: RdfPatternQuery): boolean;
58
56
  storageStats(_options?: RdfStorageStatsOptions): RdfEngineStorageStats;
59
57
  private requireTextIndex;
60
58
  private requireVectorIndex;
61
- private requireRdf3xIndex;
62
- private isRdf3xPrimaryReady;
63
- private refreshRdf3xDerivedIndex;
64
59
  }
65
60
  export {};