@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.
Files changed (362) 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 +20 -1
  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/search/RdfSearchIntentSink.d.ts +17 -0
  70. package/dist/search/RdfSearchIntentSink.js +46 -0
  71. package/dist/search/RdfSearchIntentSink.jsonld +47 -0
  72. package/dist/search/RdfSearchReconciliationRepository.d.ts +81 -0
  73. package/dist/search/RdfSearchReconciliationRepository.js +771 -0
  74. package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.d.ts +15 -0
  75. package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.js +48 -0
  76. package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.jsonld +99 -0
  77. package/dist/solidfs/RdfIndexSolidFsSyncer.js +22 -4
  78. package/dist/solidfs/SolidFsSyncJournal.d.ts +7 -1
  79. package/dist/solidfs/SolidFsSyncJournal.js +20 -5
  80. package/dist/solidfs/SolidFsSyncJournal.jsonld +43 -0
  81. package/dist/solidfs/index.d.ts +1 -0
  82. package/dist/solidfs/index.js +1 -0
  83. package/dist/storage/SparqlUpdateResourceStore.js +3 -3
  84. package/dist/storage/accessors/MixDataAccessor.d.ts +21 -29
  85. package/dist/storage/accessors/MixDataAccessor.js +182 -399
  86. package/dist/storage/accessors/MixDataAccessor.jsonld +109 -87
  87. package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +12 -8
  88. package/dist/storage/accessors/SolidRdfDataAccessor.js +189 -59
  89. package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +14 -29
  90. package/dist/storage/rdf/LocalQleverNativeSparqlClient.d.ts +55 -0
  91. package/dist/storage/rdf/LocalQleverNativeSparqlClient.js +519 -0
  92. package/dist/storage/rdf/LocalQleverNativeSparqlClient.jsonld +314 -0
  93. package/dist/storage/rdf/PostgresRdfEngine.d.ts +3 -1
  94. package/dist/storage/rdf/PostgresRdfEngine.js +111 -74
  95. package/dist/storage/rdf/PostgresRdfEngine.jsonld +12 -22
  96. package/dist/storage/rdf/PostgresRdfSchemaValidation.d.ts +8 -0
  97. package/dist/storage/rdf/PostgresRdfSchemaValidation.js +82 -0
  98. package/dist/storage/rdf/PostgresRdfTextIndex.d.ts +6 -3
  99. package/dist/storage/rdf/PostgresRdfTextIndex.js +158 -80
  100. package/dist/storage/rdf/PostgresRdfTextIndex.jsonld +16 -4
  101. package/dist/storage/rdf/PostgresRdfVectorIndex.d.ts +4 -5
  102. package/dist/storage/rdf/PostgresRdfVectorIndex.js +124 -120
  103. package/dist/storage/rdf/PostgresRdfVectorIndex.jsonld +14 -18
  104. package/dist/storage/rdf/QleverSparqlEngine.d.ts +35 -0
  105. package/dist/storage/rdf/QleverSparqlEngine.js +185 -0
  106. package/dist/storage/rdf/QleverSparqlEngine.jsonld +70 -0
  107. package/dist/storage/rdf/Rdf3xIndex.js +20 -16
  108. package/dist/storage/rdf/RdfAccessScope.d.ts +4 -0
  109. package/dist/storage/rdf/RdfAccessScope.js +74 -9
  110. package/dist/storage/rdf/RdfAccessScope.jsonld +16 -0
  111. package/dist/storage/rdf/RdfEngineRdfJsSource.d.ts +14 -0
  112. package/dist/storage/rdf/RdfEngineRdfJsSource.js +179 -0
  113. package/dist/storage/rdf/RdfQuadIndex.d.ts +13 -14
  114. package/dist/storage/rdf/RdfQuadIndex.js +286 -99
  115. package/dist/storage/rdf/RdfQuadIndex.jsonld +10 -22
  116. package/dist/storage/rdf/RdfQueryExecutor.js +10 -4
  117. package/dist/storage/rdf/RdfQuerySparqlEngine.d.ts +33 -0
  118. package/dist/storage/rdf/RdfQuerySparqlEngine.js +215 -0
  119. package/dist/storage/rdf/RdfQuerySparqlEngine.jsonld +78 -0
  120. package/dist/storage/rdf/RdfSparqlAdapter.d.ts +0 -4
  121. package/dist/storage/rdf/RdfSparqlAdapter.js +75 -173
  122. package/dist/storage/rdf/RdfSparqlBoundary.d.ts +37 -0
  123. package/dist/storage/rdf/RdfSparqlBoundary.js +247 -0
  124. package/dist/storage/rdf/RdfSparqlSerialization.d.ts +3 -0
  125. package/dist/storage/rdf/RdfSparqlSerialization.js +19 -0
  126. package/dist/storage/rdf/RdfSqliteConnection.d.ts +7 -0
  127. package/dist/storage/rdf/RdfSqliteConnection.js +23 -0
  128. package/dist/storage/rdf/RdfTermDictionary.d.ts +0 -8
  129. package/dist/storage/rdf/RdfTermDictionary.js +0 -136
  130. package/dist/storage/rdf/RdfTermDictionary.jsonld +0 -32
  131. package/dist/storage/rdf/RdfTermSemantics.d.ts +6 -0
  132. package/dist/storage/rdf/RdfTermSemantics.js +29 -0
  133. package/dist/storage/rdf/RdfTextIndex.d.ts +5 -6
  134. package/dist/storage/rdf/RdfTextIndex.js +187 -115
  135. package/dist/storage/rdf/RdfTextIndex.jsonld +10 -14
  136. package/dist/storage/rdf/RdfVectorIndex.d.ts +4 -4
  137. package/dist/storage/rdf/RdfVectorIndex.js +156 -233
  138. package/dist/storage/rdf/RdfVectorIndex.jsonld +10 -14
  139. package/dist/storage/rdf/SolidRdfEngine.d.ts +16 -21
  140. package/dist/storage/rdf/SolidRdfEngine.js +28 -308
  141. package/dist/storage/rdf/SolidRdfEngine.jsonld +26 -148
  142. package/dist/storage/rdf/XpodComunicaQueryEngine.d.ts +10 -0
  143. package/dist/storage/rdf/XpodComunicaQueryEngine.js +72 -0
  144. package/dist/storage/rdf/index.d.ts +7 -6
  145. package/dist/storage/rdf/index.js +17 -12
  146. package/dist/storage/rdf/models-benchmark.d.ts +5 -1
  147. package/dist/storage/rdf/models-benchmark.js +17 -19
  148. package/dist/storage/rdf/types.d.ts +68 -6
  149. package/dist/storage/rdf/types.jsonld +69 -0
  150. package/dist/storage/sparql/SubgraphQueryEngine.d.ts +13 -7
  151. package/dist/storage/sparql/SubgraphQueryEngine.js +6 -6
  152. package/dist/storage/vector/index.d.ts +0 -1
  153. package/dist/storage/vector/index.js +0 -1
  154. package/dist/terminal/AclPermissionService.d.ts +4 -5
  155. package/dist/terminal/AclPermissionService.js +55 -75
  156. package/dist/terminal/TerminalSessionManager.d.ts +3 -2
  157. package/dist/terminal/TerminalSessionManager.js +3 -3
  158. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts +1 -0
  159. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts.map +1 -1
  160. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js +29 -26
  161. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js.map +1 -1
  162. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.d.ts.map +1 -1
  163. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js +9 -4
  164. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js.map +1 -1
  165. package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.d.ts +1 -0
  166. package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.d.ts.map +1 -1
  167. package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.js +6 -3
  168. package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.js.map +1 -1
  169. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js +3 -3
  170. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js.map +1 -1
  171. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts +6 -0
  172. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts.map +1 -1
  173. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js +13 -3
  174. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js.map +1 -1
  175. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.d.ts +1 -0
  176. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.d.ts.map +1 -1
  177. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js +31 -0
  178. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js.map +1 -1
  179. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.d.ts.map +1 -1
  180. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.js +5 -0
  181. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.js.map +1 -1
  182. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.d.ts +1 -0
  183. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.d.ts.map +1 -1
  184. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.js +45 -0
  185. package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.js.map +1 -1
  186. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts +1 -0
  187. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts.map +1 -1
  188. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js +29 -26
  189. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js.map +1 -1
  190. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -1
  191. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js +9 -4
  192. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js.map +1 -1
  193. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts +1 -0
  194. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts.map +1 -1
  195. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.js +6 -3
  196. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.js.map +1 -1
  197. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js +3 -3
  198. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js.map +1 -1
  199. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts +6 -0
  200. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -1
  201. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js +14 -4
  202. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js.map +1 -1
  203. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts +1 -0
  204. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts.map +1 -1
  205. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js +30 -0
  206. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js.map +1 -1
  207. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.d.ts.map +1 -1
  208. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.js +5 -0
  209. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.js.map +1 -1
  210. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts +1 -0
  211. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts.map +1 -1
  212. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.js +45 -0
  213. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.js.map +1 -1
  214. package/node_modules/@undefineds.co/drizzle-solid/package.json +5 -4
  215. package/package.json +22 -8
  216. package/static/app/assets/{index-36TJKN-3.js → index-BikOyGPu.js} +34 -34
  217. package/static/app/assets/inrupt-smoke.js +2 -2
  218. package/static/app/assets/main.css +1 -1
  219. package/static/app/assets/main.js +11 -11
  220. package/static/auth-callback/assets/{AiConfigContext-BvBdu_A3.js → AiConfigContext-iQ74JmRZ.js} +1 -1
  221. package/static/auth-callback/assets/{AiConfigPage-BpDw4jco.js → AiConfigPage-BBDKE1gJ.js} +1 -1
  222. package/static/auth-callback/assets/{DocumentProcessingPanel-BmZ_jzRr.js → DocumentProcessingPanel-D9NntIEK.js} +1 -1
  223. package/static/auth-callback/assets/{IndexLifecyclePanel-BfQBjN4z.js → IndexLifecyclePanel-BG07yBdA.js} +1 -1
  224. package/static/auth-callback/assets/{IndexSubjectPanel-BlsnatPt.js → IndexSubjectPanel-B-bUnU3G.js} +1 -1
  225. package/static/auth-callback/assets/{ModelAssignmentsPanel-KA6Mdndz.js → ModelAssignmentsPanel-C7I-Nqy-.js} +1 -1
  226. package/static/auth-callback/assets/{ModelsPage-C7jymyIY.js → ModelsPage-C2hxyrmI.js} +1 -1
  227. package/static/auth-callback/assets/{NetworkPage-k2ShktNm.js → NetworkPage-IGIc2q1Y.js} +1 -1
  228. package/static/auth-callback/assets/{PaneListHeader-mLMe_dvU.js → PaneListHeader-CebuPl_g.js} +1 -1
  229. package/static/auth-callback/assets/{SearchIndexingPanel-CqV9um_t.js → SearchIndexingPanel-6HnZSg00.js} +1 -1
  230. package/static/auth-callback/assets/{StatusSubjectPanel-BgMBTbr2.js → StatusSubjectPanel-votxBkr5.js} +1 -1
  231. package/static/auth-callback/assets/{StatusWorkspace-zbSyhdG2.js → StatusWorkspace-Cksl61zX.js} +1 -1
  232. package/static/auth-callback/assets/{SystemSettingsPage-CtW79nW6.js → SystemSettingsPage-CKZFUaZT.js} +1 -1
  233. package/static/auth-callback/assets/{SystemSettingsSubjectPanel-ZOPKYUtZ.js → SystemSettingsSubjectPanel-pzfUcCf4.js} +1 -1
  234. package/static/auth-callback/assets/{activity-BQ-CQE3O.js → activity-DQL6kZHZ.js} +1 -1
  235. package/static/auth-callback/assets/auth-callback-B_s8Ye5Z.css +1 -0
  236. package/static/auth-callback/assets/{auth-callback-Htr_CB_g.js → auth-callback-BxQMd_Mc.js} +39 -39
  237. package/static/auth-callback/assets/{badge-D5SGTJeO.js → badge-DvW4LUHH.js} +1 -1
  238. package/static/auth-callback/assets/{download-DK183Ldo.js → download-Cx_uaCR1.js} +1 -1
  239. package/static/auth-callback/assets/{external-link-LDHy_4bn.js → external-link-D6L6ExH1.js} +1 -1
  240. package/static/auth-callback/assets/{index-BWrvgHqK.js → index-BAS_hxGu.js} +1 -1
  241. package/static/auth-callback/assets/{index-2WmlePQ9.js → index-BmBjpCoD.js} +1 -1
  242. package/static/auth-callback/assets/{index-browser-DUd4E4-x.js → index-browser-pdn4D3M4.js} +1 -1
  243. package/static/auth-callback/assets/{key-round-ibX79Kr-.js → key-round-BTBzOggq.js} +1 -1
  244. package/static/auth-callback/assets/{rotate-ccw-B2_VMaiX.js → rotate-ccw-eV7Cx8sB.js} +1 -1
  245. package/static/auth-callback/assets/{skeleton-F4nrpycc.js → skeleton-Bg4GYgBM.js} +1 -1
  246. package/static/auth-callback/assets/{waypoints-DImIq93f.js → waypoints-CJbydf0B.js} +1 -1
  247. package/static/auth-callback/assets/{workspace-layout-IVCSYU21.js → workspace-layout-C6Hh8Xf-.js} +1 -1
  248. package/static/auth-callback/auth-callback.html +2 -2
  249. package/static/dashboard/assets/{AiConfigContext-cjjfYTo9.js → AiConfigContext-BkJj28vK.js} +1 -1
  250. package/static/dashboard/assets/{AiConfigPage-CO0DSD_j.js → AiConfigPage-Cs9B4uyp.js} +1 -1
  251. package/static/dashboard/assets/{DocumentProcessingPanel-DMGnH8Oj.js → DocumentProcessingPanel-BBWmM7mS.js} +1 -1
  252. package/static/dashboard/assets/{IndexLifecyclePanel-DSkIOCL5.js → IndexLifecyclePanel-D5xGTT_i.js} +1 -1
  253. package/static/dashboard/assets/{IndexSubjectPanel-qWN_DbAp.js → IndexSubjectPanel-d-mjDthn.js} +1 -1
  254. package/static/dashboard/assets/{ModelAssignmentsPanel-DCf83uM3.js → ModelAssignmentsPanel-C-OLNbqf.js} +1 -1
  255. package/static/dashboard/assets/{ModelsPage-CMnvSrl5.js → ModelsPage-CBrLjuUn.js} +1 -1
  256. package/static/dashboard/assets/{NetworkPage-C8Gkwclb.js → NetworkPage-BlYk8L1z.js} +1 -1
  257. package/static/dashboard/assets/{PaneListHeader-BtU_8cDK.js → PaneListHeader-A5oZJQC0.js} +1 -1
  258. package/static/dashboard/assets/{SearchIndexingPanel-DEn12pNU.js → SearchIndexingPanel-Bs1j8ZP2.js} +1 -1
  259. package/static/dashboard/assets/{StatusSubjectPanel-B1_ILg2d.js → StatusSubjectPanel-Qao3orvi.js} +1 -1
  260. package/static/dashboard/assets/{StatusWorkspace-BG6nMNCo.js → StatusWorkspace-rDM0yDtk.js} +1 -1
  261. package/static/dashboard/assets/{SystemSettingsPage-BnWYIXaM.js → SystemSettingsPage-FPRPkKaR.js} +1 -1
  262. package/static/dashboard/assets/{SystemSettingsSubjectPanel-C_mYVPWb.js → SystemSettingsSubjectPanel-CjlJAxnX.js} +1 -1
  263. package/static/dashboard/assets/{activity-DYJ7PdRl.js → activity-CJ5K6hYC.js} +1 -1
  264. package/static/dashboard/assets/{badge-BIaZco1P.js → badge-L-NMOi1P.js} +1 -1
  265. package/static/dashboard/assets/dashboard-B_s8Ye5Z.css +1 -0
  266. package/static/dashboard/assets/{dashboard-Dl40_MEa.js → dashboard-DyjAyYxx.js} +34 -34
  267. package/static/dashboard/assets/{download-By16k9VK.js → download-Bi4u5K5B.js} +1 -1
  268. package/static/dashboard/assets/{external-link-B92xOG_d.js → external-link-jmhLDfvT.js} +1 -1
  269. package/static/dashboard/assets/{index-BajZpJ48.js → index-BoaGJBxf.js} +1 -1
  270. package/static/dashboard/assets/{index-wsVPom_x.js → index-C22TAEi4.js} +1 -1
  271. package/static/dashboard/assets/{key-round-Clo5FOwA.js → key-round-Dk1VmMrn.js} +1 -1
  272. package/static/dashboard/assets/{rotate-ccw-smWSfi1L.js → rotate-ccw-DIfLsSwi.js} +1 -1
  273. package/static/dashboard/assets/{skeleton-BrTaGeJw.js → skeleton-BGPJMHb-.js} +1 -1
  274. package/static/dashboard/assets/{waypoints-DGPQInE7.js → waypoints-CY53egpu.js} +1 -1
  275. package/static/dashboard/assets/{workspace-layout-CPU4XRmb.js → workspace-layout-CoHkcx70.js} +1 -1
  276. package/static/dashboard/dashboard.html +2 -2
  277. package/static/settings/assets/{AiConfigContext-CT29_OyW.js → AiConfigContext-BcEPlEJe.js} +1 -1
  278. package/static/settings/assets/{AiConfigPage-WIE95S28.js → AiConfigPage-D-t3ZUhg.js} +1 -1
  279. package/static/settings/assets/{DocumentProcessingPanel-KG8Sq999.js → DocumentProcessingPanel-m2SasiMO.js} +1 -1
  280. package/static/settings/assets/{IndexLifecyclePanel-iKvtHDXY.js → IndexLifecyclePanel-BNmAvx8V.js} +1 -1
  281. package/static/settings/assets/{IndexSubjectPanel-BQdSCkk4.js → IndexSubjectPanel-C5-L2AcW.js} +1 -1
  282. package/static/settings/assets/{ModelAssignmentsPanel-P8QcVB0F.js → ModelAssignmentsPanel-Cfpkf02Y.js} +1 -1
  283. package/static/settings/assets/{ModelsPage-UZkZGqor.js → ModelsPage-DZrACwVN.js} +1 -1
  284. package/static/settings/assets/{NetworkPage-Dcpcvg15.js → NetworkPage-BlrGGfqL.js} +1 -1
  285. package/static/settings/assets/{PaneListHeader--gHtZws5.js → PaneListHeader-C3TCs1RI.js} +1 -1
  286. package/static/settings/assets/{SearchIndexingPanel-DdgJSJYQ.js → SearchIndexingPanel-Cyp3CUzX.js} +1 -1
  287. package/static/settings/assets/{StatusSubjectPanel-UOxp_XVL.js → StatusSubjectPanel-gRkb8WEX.js} +1 -1
  288. package/static/settings/assets/{StatusWorkspace-CPNXuD12.js → StatusWorkspace-Dptx4Ec2.js} +1 -1
  289. package/static/settings/assets/{SystemSettingsPage-B6ySeVPw.js → SystemSettingsPage-BWgGUQbs.js} +1 -1
  290. package/static/settings/assets/{SystemSettingsSubjectPanel-I7zWmpiI.js → SystemSettingsSubjectPanel-VflUvpgC.js} +1 -1
  291. package/static/settings/assets/{activity-CFhmzahP.js → activity-D7iNhTkQ.js} +1 -1
  292. package/static/settings/assets/{badge-BBdUc5B-.js → badge-DO0r_RT4.js} +1 -1
  293. package/static/settings/assets/{download-WJE9-yxQ.js → download-CsJlNSbd.js} +1 -1
  294. package/static/settings/assets/{external-link-RKoYyCp_.js → external-link-BCR7SHme.js} +1 -1
  295. package/static/settings/assets/{index-Bq2o0Bif.js → index-Cgq16ekN.js} +1 -1
  296. package/static/settings/assets/{index-DvxneI5O.js → index-SrhQvcrU.js} +1 -1
  297. package/static/settings/assets/{index-browser-Qmo6EsFT.js → index-browser-THpcMCnz.js} +1 -1
  298. package/static/settings/assets/{key-round-r-D9sQUK.js → key-round-Dd3jk1BT.js} +1 -1
  299. package/static/settings/assets/{rotate-ccw-D3IIhbPH.js → rotate-ccw-tiL14i1d.js} +1 -1
  300. package/static/settings/assets/settings-B_s8Ye5Z.css +1 -0
  301. package/static/settings/assets/{settings-D8oDBXWg.js → settings-CVLDPejo.js} +34 -34
  302. package/static/settings/assets/{skeleton-DrL4RQuw.js → skeleton-DBxLuNgU.js} +1 -1
  303. package/static/settings/assets/{waypoints-C5sRhpJw.js → waypoints-DS3e3hv7.js} +1 -1
  304. package/static/settings/assets/{workspace-layout-B4ALmWsM.js → workspace-layout-mucrxyTK.js} +1 -1
  305. package/static/settings/settings.html +2 -2
  306. package/config/search.json +0 -66
  307. package/dist/document/HeadingChunker.jsonld +0 -41
  308. package/dist/security/secret-cell/DeploymentRootKeyProvider.jsonld +0 -124
  309. package/dist/security/secret-cell/SecretCellVault.jsonld +0 -207
  310. package/dist/storage/PostgresDerivedIndexJournal.d.ts +0 -47
  311. package/dist/storage/PostgresDerivedIndexJournal.js +0 -408
  312. package/dist/storage/PostgresDerivedIndexJournal.jsonld +0 -303
  313. package/dist/storage/RdfDerivedIndexingListener.d.ts +0 -32
  314. package/dist/storage/RdfDerivedIndexingListener.js +0 -135
  315. package/dist/storage/RdfDerivedIndexingListener.jsonld +0 -228
  316. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.d.ts +0 -148
  317. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js +0 -436
  318. package/dist/storage/accessors/QuadstoreSparqlDataAccessor.jsonld +0 -172
  319. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.d.ts +0 -102
  320. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js +0 -474
  321. package/dist/storage/accessors/QuintStoreSparqlDataAccessor.jsonld +0 -192
  322. package/dist/storage/rdf/RdfSparqlAdapter.jsonld +0 -486
  323. package/dist/storage/rdf/ShadowRdfQuintStore.d.ts +0 -59
  324. package/dist/storage/rdf/ShadowRdfQuintStore.js +0 -216
  325. package/dist/storage/rdf/ShadowRdfQuintStore.jsonld +0 -312
  326. package/dist/storage/rdf/SolidRdfSparqlEngine.d.ts +0 -107
  327. package/dist/storage/rdf/SolidRdfSparqlEngine.js +0 -1117
  328. package/dist/storage/rdf/SolidRdfSparqlEngine.jsonld +0 -312
  329. package/dist/storage/sparql/AlgebraUtils.d.ts +0 -48
  330. package/dist/storage/sparql/AlgebraUtils.js +0 -118
  331. package/dist/storage/sparql/CompatibilitySparqlEngine.d.ts +0 -37
  332. package/dist/storage/sparql/CompatibilitySparqlEngine.js +0 -96
  333. package/dist/storage/sparql/CompatibilitySparqlEngine.jsonld +0 -123
  334. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.d.ts +0 -36
  335. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js +0 -124
  336. package/dist/storage/sparql/ComunicaOptimizedEngine.d.ts +0 -59
  337. package/dist/storage/sparql/ComunicaOptimizedEngine.js +0 -254
  338. package/dist/storage/sparql/ComunicaQuintEngine.d.ts +0 -143
  339. package/dist/storage/sparql/ComunicaQuintEngine.js +0 -781
  340. package/dist/storage/sparql/ExpressionEvaluator.d.ts +0 -54
  341. package/dist/storage/sparql/ExpressionEvaluator.js +0 -340
  342. package/dist/storage/sparql/FilterPushdownExtractor.d.ts +0 -74
  343. package/dist/storage/sparql/FilterPushdownExtractor.js +0 -421
  344. package/dist/storage/sparql/OptimizedQuadstoreEngine.d.ts +0 -65
  345. package/dist/storage/sparql/OptimizedQuadstoreEngine.js +0 -327
  346. package/dist/storage/sparql/OptimizedQuadstoreSource.d.ts +0 -46
  347. package/dist/storage/sparql/OptimizedQuadstoreSource.js +0 -118
  348. package/dist/storage/sparql/PatternBuilder.d.ts +0 -41
  349. package/dist/storage/sparql/PatternBuilder.js +0 -118
  350. package/dist/storage/sparql/QueryOptimizer.d.ts +0 -125
  351. package/dist/storage/sparql/QueryOptimizer.js +0 -375
  352. package/dist/storage/sparql/QuintEngine.d.ts +0 -92
  353. package/dist/storage/sparql/QuintEngine.js +0 -150
  354. package/dist/storage/sparql/QuintQuerySource.d.ts +0 -241
  355. package/dist/storage/sparql/QuintQuerySource.js +0 -1069
  356. package/dist/storage/sparql/SimpleSparqlExecutor.d.ts +0 -40
  357. package/dist/storage/sparql/SimpleSparqlExecutor.js +0 -131
  358. package/dist/storage/vector/VectorIndexingListener.d.ts +0 -114
  359. package/dist/storage/vector/VectorIndexingListener.js +0 -346
  360. package/static/auth-callback/assets/auth-callback-rWdEQY5f.css +0 -1
  361. package/static/dashboard/assets/dashboard-rWdEQY5f.css +0 -1
  362. package/static/settings/assets/settings-rWdEQY5f.css +0 -1
@@ -1,408 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PostgresDerivedIndexJournal = exports.LEGACY_DERIVED_INDEX_CONSUMER_ID = void 0;
4
- const PostgresRdfSqlExecutor_1 = require("./rdf/PostgresRdfSqlExecutor");
5
- const PostgresPoolManager_1 = require("./database/PostgresPoolManager");
6
- exports.LEGACY_DERIVED_INDEX_CONSUMER_ID = 'legacy-resource-change-listener-v1';
7
- /** PostgreSQL outbox for CSS subscribe events consumed by FTS/VEC derivations. */
8
- class PostgresDerivedIndexJournal {
9
- constructor(connectionString, executor, resolvePodScope, retryDelayMs = 1_000, leaseMs = 60_000, consumers = [], pollIntervalMs = 1_000) {
10
- this.replaying = new Map();
11
- const durableConsumers = [];
12
- const consumerIds = new Set();
13
- for (const consumer of consumers) {
14
- const consumerId = consumer.consumerId;
15
- if (typeof consumerId !== 'string' || !consumerId.trim()) {
16
- throw new Error('Derived-index consumer requires a non-empty consumerId');
17
- }
18
- if (consumerIds.has(consumerId)) {
19
- throw new Error(`Duplicate derived-index consumerId: ${consumerId}`);
20
- }
21
- consumerIds.add(consumerId);
22
- durableConsumers.push(consumer);
23
- }
24
- const resolvedOptions = {
25
- connectionString,
26
- executor,
27
- resolvePodScope,
28
- retryDelayMs,
29
- leaseMs,
30
- consumers: durableConsumers,
31
- pollIntervalMs,
32
- };
33
- this.options = resolvedOptions;
34
- if (!resolvedOptions.executor && !resolvedOptions.connectionString) {
35
- throw new Error('PostgresDerivedIndexJournal requires executor or connectionString');
36
- }
37
- this.consumers = new Map(durableConsumers.map((consumer) => [consumer.consumerId, consumer]));
38
- this.activeConsumerIds = new Set(durableConsumers.length > 0
39
- ? durableConsumers.map((consumer) => consumer.consumerId)
40
- : [exports.LEGACY_DERIVED_INDEX_CONSUMER_ID]);
41
- this.executor = resolvedOptions.executor
42
- ?? new PostgresRdfSqlExecutor_1.PgPoolRdfSqlExecutor((0, PostgresPoolManager_1.getSharedPool)({ connectionString: resolvedOptions.connectionString }));
43
- this.ownsSharedPool = !resolvedOptions.executor;
44
- this.retryDelayMs = resolvedOptions.retryDelayMs ?? 1_000;
45
- this.leaseMs = resolvedOptions.leaseMs ?? 60_000;
46
- if (resolvedOptions.consumers?.length) {
47
- this.pollTimer = setInterval(() => this.scheduleReplay(), pollIntervalMs);
48
- this.pollTimer.unref?.();
49
- setImmediate(() => this.scheduleReplay());
50
- }
51
- }
52
- async open() {
53
- this.opening ??= this.initialize();
54
- await this.opening;
55
- }
56
- async initialize() {
57
- await this.executor.exec(`
58
- CREATE TABLE IF NOT EXISTS derived_index_change_journal (
59
- id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
60
- pod_scope_id TEXT NOT NULL,
61
- resource_path TEXT NOT NULL,
62
- action TEXT NOT NULL CHECK (action IN ('create', 'update', 'delete')),
63
- is_container BOOLEAN NOT NULL,
64
- occurred_at BIGINT NOT NULL,
65
- stage TEXT NOT NULL DEFAULT 'pending' CHECK (stage IN ('pending', 'processing', 'done')),
66
- attempts INTEGER NOT NULL DEFAULT 0,
67
- available_at BIGINT NOT NULL DEFAULT 0,
68
- lease_until BIGINT,
69
- last_error TEXT
70
- );
71
- CREATE INDEX IF NOT EXISTS derived_index_change_journal_pending
72
- ON derived_index_change_journal (stage, available_at, pod_scope_id, id);
73
- CREATE TABLE IF NOT EXISTS derived_index_journal_metadata (
74
- key TEXT PRIMARY KEY,
75
- value TEXT NOT NULL
76
- );
77
- CREATE TABLE IF NOT EXISTS derived_index_consumers (
78
- consumer_id TEXT PRIMARY KEY,
79
- created_at BIGINT NOT NULL
80
- );
81
- CREATE TABLE IF NOT EXISTS derived_index_event_deliveries (
82
- consumer_id TEXT NOT NULL REFERENCES derived_index_consumers(consumer_id),
83
- event_id BIGINT NOT NULL REFERENCES derived_index_change_journal(id) ON DELETE CASCADE,
84
- stage TEXT NOT NULL DEFAULT 'pending' CHECK (stage IN ('pending', 'processing', 'done')),
85
- attempts INTEGER NOT NULL DEFAULT 0,
86
- available_at BIGINT NOT NULL DEFAULT 0,
87
- lease_until BIGINT,
88
- last_error TEXT,
89
- PRIMARY KEY (consumer_id, event_id)
90
- );
91
- CREATE INDEX IF NOT EXISTS derived_index_event_deliveries_pending
92
- ON derived_index_event_deliveries (consumer_id, stage, available_at, event_id);
93
- CREATE TABLE IF NOT EXISTS derived_index_resource_checkpoints (
94
- consumer_id TEXT NOT NULL REFERENCES derived_index_consumers(consumer_id),
95
- pod_scope_id TEXT NOT NULL,
96
- resource_path TEXT NOT NULL,
97
- last_event_id BIGINT NOT NULL REFERENCES derived_index_change_journal(id),
98
- last_action TEXT NOT NULL CHECK (last_action IN ('create', 'update', 'delete')),
99
- updated_at BIGINT NOT NULL,
100
- deleted_at BIGINT,
101
- PRIMARY KEY (consumer_id, pod_scope_id, resource_path)
102
- );
103
- `);
104
- await this.executor.transaction(async (tx) => {
105
- const sourceTable = await tx.query(`
106
- SELECT to_regclass('rdf_sources')::text AS relation
107
- `);
108
- if (!sourceTable[0]?.relation)
109
- return;
110
- const inserted = await tx.query(`
111
- INSERT INTO derived_index_journal_metadata (key, value)
112
- VALUES ('rdf_sources_bootstrap_v1', 'complete')
113
- ON CONFLICT (key) DO NOTHING
114
- RETURNING key
115
- `);
116
- if (!inserted.length)
117
- return;
118
- await tx.exec(`
119
- INSERT INTO derived_index_change_journal
120
- (pod_scope_id, resource_path, action, is_container, occurred_at)
121
- SELECT workspace, source, 'update', FALSE,
122
- (EXTRACT(EPOCH FROM clock_timestamp()) * 1000)::bigint
123
- FROM rdf_sources
124
- ORDER BY id
125
- `);
126
- });
127
- const configuredConsumers = this.options.consumers ?? [];
128
- if (configuredConsumers.length === 0) {
129
- await this.registerConsumer(exports.LEGACY_DERIVED_INDEX_CONSUMER_ID, true);
130
- }
131
- else {
132
- for (const consumer of configuredConsumers) {
133
- await this.registerConsumer(consumer.consumerId, false);
134
- }
135
- }
136
- }
137
- async registerConsumer(consumerId, legacy) {
138
- await this.executor.transaction(async (tx) => {
139
- const now = Date.now();
140
- await tx.exec(`
141
- INSERT INTO derived_index_consumers (consumer_id, created_at)
142
- VALUES ($1, $2)
143
- ON CONFLICT (consumer_id) DO NOTHING
144
- `, [consumerId, now]);
145
- await tx.exec(`
146
- INSERT INTO derived_index_event_deliveries
147
- (consumer_id, event_id, stage, attempts, available_at, lease_until, last_error)
148
- SELECT $1, id,
149
- CASE WHEN $2::boolean AND stage = 'done' THEN 'done' ELSE 'pending' END,
150
- CASE WHEN $2::boolean THEN attempts ELSE 0 END,
151
- CASE WHEN $2::boolean THEN available_at ELSE 0 END,
152
- NULL,
153
- CASE WHEN $2::boolean THEN last_error ELSE NULL END
154
- FROM derived_index_change_journal
155
- ON CONFLICT (consumer_id, event_id) DO NOTHING
156
- `, [consumerId, legacy]);
157
- if (legacy) {
158
- await tx.exec(`
159
- INSERT INTO derived_index_resource_checkpoints
160
- (consumer_id, pod_scope_id, resource_path, last_event_id,
161
- last_action, updated_at, deleted_at)
162
- SELECT $1, latest.pod_scope_id, latest.resource_path, latest.id,
163
- latest.action, latest.occurred_at,
164
- CASE WHEN latest.action = 'delete' THEN latest.occurred_at ELSE NULL END
165
- FROM (
166
- SELECT DISTINCT ON (pod_scope_id, resource_path)
167
- id, pod_scope_id, resource_path, action, occurred_at
168
- FROM derived_index_change_journal
169
- WHERE stage = 'done'
170
- ORDER BY pod_scope_id, resource_path, id DESC
171
- ) latest
172
- ON CONFLICT (consumer_id, pod_scope_id, resource_path) DO UPDATE
173
- SET last_event_id = EXCLUDED.last_event_id,
174
- last_action = EXCLUDED.last_action,
175
- updated_at = EXCLUDED.updated_at,
176
- deleted_at = EXCLUDED.deleted_at
177
- WHERE derived_index_resource_checkpoints.last_event_id < EXCLUDED.last_event_id
178
- `, [consumerId]);
179
- }
180
- });
181
- }
182
- async recordResourceChange(event) {
183
- await this.open();
184
- const podScopeId = await (this.options.resolvePodScope?.(event) ?? defaultPodScope(event.path));
185
- if (!podScopeId) {
186
- throw new Error(`Cannot journal derived-index change without Pod scope: ${event.path}`);
187
- }
188
- await this.append(podScopeId, event);
189
- this.scheduleReplay();
190
- }
191
- async append(podScopeId, event) {
192
- await this.executor.transaction(async (tx) => {
193
- const inserted = await tx.query(`
194
- INSERT INTO derived_index_change_journal
195
- (pod_scope_id, resource_path, action, is_container, occurred_at)
196
- VALUES ($1, $2, $3, $4, $5)
197
- RETURNING id
198
- `, [podScopeId, event.path, event.action, event.isContainer, event.timestamp]);
199
- const eventId = inserted[0]?.id;
200
- if (eventId === undefined) {
201
- throw new Error(`Failed to append derived-index event: ${event.path}`);
202
- }
203
- for (const consumerId of this.activeConsumerIds) {
204
- await tx.exec(`
205
- INSERT INTO derived_index_event_deliveries (consumer_id, event_id)
206
- VALUES ($1, $2)
207
- ON CONFLICT (consumer_id, event_id) DO NOTHING
208
- `, [consumerId, eventId]);
209
- }
210
- });
211
- }
212
- async replayPending(listener, limit = 100) {
213
- await this.open();
214
- this.activeConsumerIds.add(exports.LEGACY_DERIVED_INDEX_CONSUMER_ID);
215
- await this.registerConsumer(exports.LEGACY_DERIVED_INDEX_CONSUMER_ID, true);
216
- return this.replayDelivery(exports.LEGACY_DERIVED_INDEX_CONSUMER_ID, listener, limit);
217
- }
218
- async replayConsumer(consumerId, limit = 100) {
219
- await this.open();
220
- const consumer = this.consumers.get(consumerId);
221
- if (!consumer) {
222
- throw new Error(`Unknown derived-index consumerId: ${consumerId}`);
223
- }
224
- return this.replayDelivery(consumerId, consumer, limit);
225
- }
226
- async replayDelivery(consumerId, listener, limit) {
227
- let delivered = 0;
228
- let failed = 0;
229
- for (let index = 0; index < limit; index += 1) {
230
- const row = await this.claimNext(consumerId);
231
- if (!row)
232
- break;
233
- const event = {
234
- path: row.resource_path,
235
- action: row.action,
236
- isContainer: row.is_container,
237
- timestamp: Number(row.occurred_at),
238
- };
239
- try {
240
- await listener.onResourceChanged(event);
241
- await this.completeDelivery(consumerId, row);
242
- delivered += 1;
243
- }
244
- catch (error) {
245
- await this.executor.exec(`
246
- UPDATE derived_index_event_deliveries
247
- SET stage = 'pending', attempts = attempts + 1,
248
- available_at = $3, lease_until = NULL, last_error = $4
249
- WHERE consumer_id = $1 AND event_id = $2
250
- `, [consumerId, row.id, Date.now() + this.retryDelayMs, errorMessage(error)]);
251
- failed += 1;
252
- }
253
- }
254
- return { delivered, failed };
255
- }
256
- async reconcilePod(podScopeId, resourcePaths) {
257
- await this.open();
258
- const authorityPaths = [...new Set(resourcePaths)];
259
- for (const resourcePath of authorityPaths) {
260
- await this.append(podScopeId, {
261
- path: resourcePath,
262
- action: 'update',
263
- isContainer: resourcePath.endsWith('/'),
264
- timestamp: Date.now(),
265
- });
266
- }
267
- const missing = await this.executor.query(`
268
- SELECT resource_path, MAX(last_event_id) AS last_event_id
269
- FROM derived_index_resource_checkpoints
270
- WHERE pod_scope_id = $1
271
- AND deleted_at IS NULL
272
- AND NOT (resource_path = ANY($2::text[]))
273
- GROUP BY resource_path
274
- ORDER BY resource_path
275
- `, [podScopeId, authorityPaths]);
276
- for (const { resource_path: resourcePath, last_event_id: lastEventId } of missing) {
277
- const covered = await this.executor.query(`
278
- SELECT EXISTS (
279
- SELECT 1
280
- FROM derived_index_change_journal event
281
- WHERE event.pod_scope_id = $1
282
- AND event.resource_path = $2
283
- AND event.action = 'delete'
284
- AND event.id > $3
285
- ) AS covered
286
- `, [podScopeId, resourcePath, lastEventId]);
287
- if (covered[0]?.covered)
288
- continue;
289
- await this.append(podScopeId, {
290
- path: resourcePath,
291
- action: 'delete',
292
- isContainer: resourcePath.endsWith('/'),
293
- timestamp: Date.now(),
294
- });
295
- }
296
- }
297
- async completeDelivery(consumerId, row) {
298
- const completedAt = Date.now();
299
- await this.executor.transaction(async (tx) => {
300
- await tx.exec(`
301
- UPDATE derived_index_event_deliveries
302
- SET stage = 'done', lease_until = NULL, last_error = NULL
303
- WHERE consumer_id = $1 AND event_id = $2
304
- `, [consumerId, row.id]);
305
- await tx.exec(`
306
- INSERT INTO derived_index_resource_checkpoints
307
- (consumer_id, pod_scope_id, resource_path, last_event_id,
308
- last_action, updated_at, deleted_at)
309
- VALUES ($1, $2, $3, $4, $5::text, $6::bigint,
310
- CASE WHEN $5::text = 'delete' THEN $6::bigint ELSE NULL::bigint END)
311
- ON CONFLICT (consumer_id, pod_scope_id, resource_path) DO UPDATE
312
- SET last_event_id = EXCLUDED.last_event_id,
313
- last_action = EXCLUDED.last_action,
314
- updated_at = EXCLUDED.updated_at,
315
- deleted_at = EXCLUDED.deleted_at
316
- WHERE derived_index_resource_checkpoints.last_event_id < EXCLUDED.last_event_id
317
- `, [consumerId, row.pod_scope_id, row.resource_path, row.id, row.action, completedAt]);
318
- });
319
- }
320
- async pendingCount(podScopeId, consumerId) {
321
- await this.open();
322
- const rows = await this.executor.query(`
323
- SELECT COUNT(DISTINCT delivery.event_id) AS count
324
- FROM derived_index_event_deliveries delivery
325
- JOIN derived_index_change_journal event ON event.id = delivery.event_id
326
- WHERE delivery.stage <> 'done'
327
- AND ($1::text IS NULL OR event.pod_scope_id = $1)
328
- AND ($2::text IS NULL OR delivery.consumer_id = $2)
329
- `, [podScopeId ?? null, consumerId ?? null]);
330
- return Number(rows[0]?.count ?? 0);
331
- }
332
- async claimNext(consumerId) {
333
- return this.executor.transaction(async (tx) => {
334
- const now = Date.now();
335
- await tx.exec(`
336
- UPDATE derived_index_event_deliveries
337
- SET stage = 'pending', lease_until = NULL
338
- WHERE consumer_id = $1 AND stage = 'processing' AND lease_until < $2
339
- `, [consumerId, now]);
340
- const rows = await tx.query(`
341
- SELECT event.id, event.pod_scope_id, event.resource_path, event.action,
342
- event.is_container, event.occurred_at
343
- FROM derived_index_event_deliveries delivery
344
- JOIN derived_index_change_journal event ON event.id = delivery.event_id
345
- WHERE delivery.consumer_id = $1
346
- AND delivery.stage = 'pending'
347
- AND delivery.available_at <= $2
348
- AND NOT EXISTS (
349
- SELECT 1
350
- FROM derived_index_event_deliveries earlier_delivery
351
- JOIN derived_index_change_journal earlier_event
352
- ON earlier_event.id = earlier_delivery.event_id
353
- WHERE earlier_delivery.consumer_id = delivery.consumer_id
354
- AND earlier_event.pod_scope_id = event.pod_scope_id
355
- AND earlier_event.id < event.id
356
- AND earlier_delivery.stage <> 'done'
357
- )
358
- ORDER BY event.id
359
- LIMIT 1
360
- FOR UPDATE SKIP LOCKED
361
- `, [consumerId, now]);
362
- const row = rows[0];
363
- if (!row)
364
- return undefined;
365
- await tx.exec(`
366
- UPDATE derived_index_event_deliveries
367
- SET stage = 'processing', lease_until = $3
368
- WHERE consumer_id = $1 AND event_id = $2
369
- `, [consumerId, row.id, now + this.leaseMs]);
370
- return row;
371
- });
372
- }
373
- async close() {
374
- if (this.pollTimer)
375
- clearInterval(this.pollTimer);
376
- await Promise.all(this.replaying.values());
377
- if (this.ownsSharedPool && this.options.connectionString) {
378
- (0, PostgresPoolManager_1.releaseSharedPool)({ connectionString: this.options.connectionString });
379
- }
380
- }
381
- scheduleReplay() {
382
- for (const consumerId of this.consumers.keys()) {
383
- if (this.replaying.has(consumerId))
384
- continue;
385
- const replay = this.replayConsumer(consumerId)
386
- .then(() => undefined)
387
- .catch(() => undefined)
388
- .finally(() => { this.replaying.delete(consumerId); });
389
- this.replaying.set(consumerId, replay);
390
- }
391
- }
392
- }
393
- exports.PostgresDerivedIndexJournal = PostgresDerivedIndexJournal;
394
- function errorMessage(error) {
395
- return error instanceof Error ? error.message : String(error);
396
- }
397
- function defaultPodScope(resourcePath) {
398
- try {
399
- const url = new URL(resourcePath);
400
- const firstSegment = url.pathname.split('/').filter(Boolean)[0];
401
- return firstSegment ? `${url.origin}/${firstSegment}/` : `${url.origin}/`;
402
- }
403
- catch {
404
- const firstSegment = resourcePath.split('/').filter(Boolean)[0];
405
- return firstSegment ?? resourcePath;
406
- }
407
- }
408
- //# sourceMappingURL=PostgresDerivedIndexJournal.js.map