@undefineds.co/xpod 0.3.57 → 0.3.61

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 (779) hide show
  1. package/README.md +3 -0
  2. package/config/cli.json +88 -0
  3. package/config/cloud.json +32 -1
  4. package/config/components-ignore.json +3 -0
  5. package/config/extensions.local.initializer.json +44 -0
  6. package/config/resolver.json +86 -0
  7. package/config/xpod.base.json +4 -0
  8. package/dist/agents/AgentExecutorFactory.d.ts +3 -3
  9. package/dist/agents/AgentExecutorFactory.js +28 -15
  10. package/dist/agents/AgentExecutorFactory.js.map +1 -1
  11. package/dist/agents/BaseAgentExecutor.d.ts +2 -1
  12. package/dist/agents/BaseAgentExecutor.js +1 -0
  13. package/dist/agents/BaseAgentExecutor.js.map +1 -1
  14. package/dist/agents/ClaudeExecutor.d.ts +3 -1
  15. package/dist/agents/ClaudeExecutor.js +18 -12
  16. package/dist/agents/ClaudeExecutor.js.map +1 -1
  17. package/dist/agents/config/resolve.js +0 -21
  18. package/dist/agents/config/resolve.js.map +1 -1
  19. package/dist/agents/config/types.d.ts +2 -7
  20. package/dist/agents/config/types.js +2 -1
  21. package/dist/agents/config/types.js.map +1 -1
  22. package/dist/agents/types.d.ts +18 -0
  23. package/dist/agents/types.js.map +1 -1
  24. package/dist/ai/schema/types.d.ts +2 -1
  25. package/dist/ai/schema/types.js +1 -0
  26. package/dist/ai/schema/types.js.map +1 -1
  27. package/dist/ai/service/CredentialReader.d.ts +3 -1
  28. package/dist/ai/service/CredentialReader.js.map +1 -1
  29. package/dist/ai/service/CredentialReaderImpl.d.ts +3 -1
  30. package/dist/ai/service/CredentialReaderImpl.js +24 -2
  31. package/dist/ai/service/CredentialReaderImpl.js.map +1 -1
  32. package/dist/ai/service/EmbeddingServiceImpl.js +13 -2
  33. package/dist/ai/service/EmbeddingServiceImpl.js.map +1 -1
  34. package/dist/ai/service/ProviderRegistry.d.ts +4 -0
  35. package/dist/ai/service/ProviderRegistry.js.map +1 -1
  36. package/dist/ai/service/ProviderRegistry.jsonld +4 -0
  37. package/dist/ai/service/ProviderRegistryImpl.d.ts +4 -1
  38. package/dist/ai/service/ProviderRegistryImpl.js +26 -4
  39. package/dist/ai/service/ProviderRegistryImpl.js.map +1 -1
  40. package/dist/ai/service/ProviderRegistryImpl.jsonld +12 -0
  41. package/dist/ai/service/defaultEmbeddingProfile.d.ts +5 -0
  42. package/dist/ai/service/defaultEmbeddingProfile.js +31 -0
  43. package/dist/ai/service/defaultEmbeddingProfile.js.map +1 -0
  44. package/dist/ai/service/index.d.ts +1 -0
  45. package/dist/ai/service/index.js +1 -0
  46. package/dist/ai/service/index.js.map +1 -1
  47. package/dist/ai/service/types.d.ts +1 -0
  48. package/dist/ai/service/types.js.map +1 -1
  49. package/dist/api/ApiServer.js +17 -2
  50. package/dist/api/ApiServer.js.map +1 -1
  51. package/dist/api/ai-gateway/AiGatewayService.d.ts +106 -0
  52. package/dist/api/ai-gateway/AiGatewayService.js +527 -0
  53. package/dist/api/ai-gateway/AiGatewayService.js.map +1 -0
  54. package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.d.ts +38 -0
  55. package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.js +128 -0
  56. package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.js.map +1 -0
  57. package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.d.ts +25 -0
  58. package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.js +91 -0
  59. package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.js.map +1 -0
  60. package/dist/api/ai-gateway/auth/GatewayApiKey.d.ts +28 -0
  61. package/dist/api/ai-gateway/auth/GatewayApiKey.js +162 -0
  62. package/dist/api/ai-gateway/auth/GatewayApiKey.js.map +1 -0
  63. package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.d.ts +56 -0
  64. package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.js +143 -0
  65. package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.js.map +1 -0
  66. package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.d.ts +26 -0
  67. package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.js +97 -0
  68. package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.js.map +1 -0
  69. package/dist/api/ai-gateway/auth/GatewayPrincipal.d.ts +20 -0
  70. package/dist/api/ai-gateway/auth/GatewayPrincipal.js +37 -0
  71. package/dist/api/ai-gateway/auth/GatewayPrincipal.js.map +1 -0
  72. package/dist/api/ai-gateway/auth/InvocationTokenCodec.d.ts +41 -0
  73. package/dist/api/ai-gateway/auth/InvocationTokenCodec.js +221 -0
  74. package/dist/api/ai-gateway/auth/InvocationTokenCodec.js.map +1 -0
  75. package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.d.ts +54 -0
  76. package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.js +152 -0
  77. package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.js.map +1 -0
  78. package/dist/api/ai-gateway/connect/index.d.ts +367 -0
  79. package/dist/api/ai-gateway/connect/index.js +1061 -0
  80. package/dist/api/ai-gateway/connect/index.js.map +1 -0
  81. package/dist/api/ai-gateway/credentials/CloudKmsWrapper.d.ts +40 -0
  82. package/dist/api/ai-gateway/credentials/CloudKmsWrapper.js +59 -0
  83. package/dist/api/ai-gateway/credentials/CloudKmsWrapper.js.map +1 -0
  84. package/dist/api/ai-gateway/credentials/CredentialVault.d.ts +14 -0
  85. package/dist/api/ai-gateway/credentials/CredentialVault.js +11 -0
  86. package/dist/api/ai-gateway/credentials/CredentialVault.js.map +1 -0
  87. package/dist/api/ai-gateway/credentials/KeyWrapper.d.ts +27 -0
  88. package/dist/api/ai-gateway/credentials/KeyWrapper.js +3 -0
  89. package/dist/api/ai-gateway/credentials/KeyWrapper.js.map +1 -0
  90. package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.d.ts +27 -0
  91. package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.js +145 -0
  92. package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.js.map +1 -0
  93. package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.d.ts +13 -0
  94. package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.js +133 -0
  95. package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.js.map +1 -0
  96. package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.d.ts +23 -0
  97. package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.js +62 -0
  98. package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.js.map +1 -0
  99. package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.d.ts +23 -0
  100. package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.js +173 -0
  101. package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.js.map +1 -0
  102. package/dist/api/ai-gateway/errors.d.ts +21 -0
  103. package/dist/api/ai-gateway/errors.js +50 -0
  104. package/dist/api/ai-gateway/errors.js.map +1 -0
  105. package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.d.ts +6 -0
  106. package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.js +111 -0
  107. package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.js.map +1 -0
  108. package/dist/api/ai-gateway/protocol/MessagesFrontend.d.ts +6 -0
  109. package/dist/api/ai-gateway/protocol/MessagesFrontend.js +99 -0
  110. package/dist/api/ai-gateway/protocol/MessagesFrontend.js.map +1 -0
  111. package/dist/api/ai-gateway/protocol/ResponsesFrontend.d.ts +6 -0
  112. package/dist/api/ai-gateway/protocol/ResponsesFrontend.js +232 -0
  113. package/dist/api/ai-gateway/protocol/ResponsesFrontend.js.map +1 -0
  114. package/dist/api/ai-gateway/protocol/index.d.ts +3 -0
  115. package/dist/api/ai-gateway/protocol/index.js +10 -0
  116. package/dist/api/ai-gateway/protocol/index.js.map +1 -0
  117. package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.d.ts +7 -0
  118. package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.js +37 -0
  119. package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.js.map +1 -0
  120. package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.d.ts +9 -0
  121. package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.js +127 -0
  122. package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.js.map +1 -0
  123. package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.d.ts +8 -0
  124. package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.js +47 -0
  125. package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.js.map +1 -0
  126. package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.d.ts +8 -0
  127. package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.js +57 -0
  128. package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.js.map +1 -0
  129. package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.d.ts +1 -0
  130. package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.js +6 -0
  131. package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.js.map +1 -0
  132. package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.d.ts +13 -0
  133. package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.js +34 -0
  134. package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.js.map +1 -0
  135. package/dist/api/ai-gateway/providers/ProviderRegistry.d.ts +68 -0
  136. package/dist/api/ai-gateway/providers/ProviderRegistry.js +288 -0
  137. package/dist/api/ai-gateway/providers/ProviderRegistry.js.map +1 -0
  138. package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.d.ts +88 -0
  139. package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.js +645 -0
  140. package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.js.map +1 -0
  141. package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.d.ts +13 -0
  142. package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.js +48 -0
  143. package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.js.map +1 -0
  144. package/dist/api/ai-gateway/providers/index.d.ts +9 -0
  145. package/dist/api/ai-gateway/providers/index.js +26 -0
  146. package/dist/api/ai-gateway/providers/index.js.map +1 -0
  147. package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.d.ts +5 -0
  148. package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.js +21 -0
  149. package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.js.map +1 -0
  150. package/dist/api/ai-gateway/quota/BailianQuotaAdapter.d.ts +5 -0
  151. package/dist/api/ai-gateway/quota/BailianQuotaAdapter.js +21 -0
  152. package/dist/api/ai-gateway/quota/BailianQuotaAdapter.js.map +1 -0
  153. package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.d.ts +10 -0
  154. package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.js +83 -0
  155. package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.js.map +1 -0
  156. package/dist/api/ai-gateway/quota/KimiQuotaAdapter.d.ts +10 -0
  157. package/dist/api/ai-gateway/quota/KimiQuotaAdapter.js +70 -0
  158. package/dist/api/ai-gateway/quota/KimiQuotaAdapter.js.map +1 -0
  159. package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.d.ts +5 -0
  160. package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.js +21 -0
  161. package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.js.map +1 -0
  162. package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.d.ts +214 -0
  163. package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.js +511 -0
  164. package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.js.map +1 -0
  165. package/dist/api/ai-gateway/quota/index.d.ts +6 -0
  166. package/dist/api/ai-gateway/quota/index.js +23 -0
  167. package/dist/api/ai-gateway/quota/index.js.map +1 -0
  168. package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.d.ts +26 -0
  169. package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.js +67 -0
  170. package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.js.map +1 -0
  171. package/dist/api/ai-gateway/routing/ModelRouter.d.ts +84 -0
  172. package/dist/api/ai-gateway/routing/ModelRouter.js +274 -0
  173. package/dist/api/ai-gateway/routing/ModelRouter.js.map +1 -0
  174. package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.d.ts +39 -0
  175. package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.js +122 -0
  176. package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.js.map +1 -0
  177. package/dist/api/ai-gateway/routing/SessionAffinityStore.d.ts +49 -0
  178. package/dist/api/ai-gateway/routing/SessionAffinityStore.js +66 -0
  179. package/dist/api/ai-gateway/routing/SessionAffinityStore.js.map +1 -0
  180. package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.d.ts +25 -0
  181. package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.js +50 -0
  182. package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.js.map +1 -0
  183. package/dist/api/ai-gateway/types.d.ts +112 -0
  184. package/dist/api/ai-gateway/types.js +305 -0
  185. package/dist/api/ai-gateway/types.js.map +1 -0
  186. package/dist/api/auth/AuthContext.d.ts +18 -3
  187. package/dist/api/auth/AuthContext.js +13 -2
  188. package/dist/api/auth/AuthContext.js.map +1 -1
  189. package/dist/api/auth/Authenticator.d.ts +3 -0
  190. package/dist/api/auth/Authenticator.js.map +1 -1
  191. package/dist/api/auth/ClientCredentialsAuthenticator.d.ts +2 -6
  192. package/dist/api/auth/ClientCredentialsAuthenticator.js +12 -30
  193. package/dist/api/auth/ClientCredentialsAuthenticator.js.map +1 -1
  194. package/dist/api/auth/SolidTokenAuthenticator.d.ts +2 -0
  195. package/dist/api/auth/SolidTokenAuthenticator.js +88 -2
  196. package/dist/api/auth/SolidTokenAuthenticator.js.map +1 -1
  197. package/dist/api/auth/TokenIdentity.d.ts +6 -0
  198. package/dist/api/auth/TokenIdentity.js +31 -0
  199. package/dist/api/auth/TokenIdentity.js.map +1 -0
  200. package/dist/api/chatkit/ai-provider.d.ts +9 -23
  201. package/dist/api/chatkit/ai-provider.js +30 -153
  202. package/dist/api/chatkit/ai-provider.js.map +1 -1
  203. package/dist/api/chatkit/default-agent.d.ts +24 -15
  204. package/dist/api/chatkit/default-agent.js +24 -83
  205. package/dist/api/chatkit/default-agent.js.map +1 -1
  206. package/dist/api/chatkit/index.d.ts +2 -1
  207. package/dist/api/chatkit/index.js +3 -1
  208. package/dist/api/chatkit/index.js.map +1 -1
  209. package/dist/api/chatkit/pod-store.d.ts +13 -1
  210. package/dist/api/chatkit/pod-store.js +127 -7
  211. package/dist/api/chatkit/pod-store.js.map +1 -1
  212. package/dist/api/chatkit/runtime/AcpAgentRuntime.d.ts +0 -1
  213. package/dist/api/chatkit/runtime/AcpAgentRuntime.js +14 -51
  214. package/dist/api/chatkit/runtime/AcpAgentRuntime.js.map +1 -1
  215. package/dist/api/chatkit/runtime/AcpRunner.js +2 -1
  216. package/dist/api/chatkit/runtime/AcpRunner.js.map +1 -1
  217. package/dist/api/chatkit/runtime/CodexRuntimeProjector.d.ts +15 -1
  218. package/dist/api/chatkit/runtime/CodexRuntimeProjector.js +52 -34
  219. package/dist/api/chatkit/runtime/CodexRuntimeProjector.js.map +1 -1
  220. package/dist/api/chatkit/service.d.ts +8 -1
  221. package/dist/api/chatkit/service.js +46 -5
  222. package/dist/api/chatkit/service.js.map +1 -1
  223. package/dist/api/chatkit/store.d.ts +23 -1
  224. package/dist/api/chatkit/store.js +56 -0
  225. package/dist/api/chatkit/store.js.map +1 -1
  226. package/dist/api/chatkit/types.d.ts +1 -0
  227. package/dist/api/chatkit/types.js.map +1 -1
  228. package/dist/api/container/common.js +286 -13
  229. package/dist/api/container/common.js.map +1 -1
  230. package/dist/api/container/index.js +126 -6
  231. package/dist/api/container/index.js.map +1 -1
  232. package/dist/api/container/local.js +50 -6
  233. package/dist/api/container/local.js.map +1 -1
  234. package/dist/api/container/rdf.d.ts +15 -0
  235. package/dist/api/container/rdf.js +90 -0
  236. package/dist/api/container/rdf.js.map +1 -0
  237. package/dist/api/container/routes.js +151 -11
  238. package/dist/api/container/routes.js.map +1 -1
  239. package/dist/api/container/types.d.ts +96 -0
  240. package/dist/api/container/types.js.map +1 -1
  241. package/dist/api/handlers/AdminHandler.d.ts +25 -2
  242. package/dist/api/handlers/AdminHandler.js +60 -10
  243. package/dist/api/handlers/AdminHandler.js.map +1 -1
  244. package/dist/api/handlers/AiClientConfigurationHandler.d.ts +7 -0
  245. package/dist/api/handlers/AiClientConfigurationHandler.js +202 -0
  246. package/dist/api/handlers/AiClientConfigurationHandler.js.map +1 -0
  247. package/dist/api/handlers/AiGatewayHandler.d.ts +23 -0
  248. package/dist/api/handlers/AiGatewayHandler.js +231 -0
  249. package/dist/api/handlers/AiGatewayHandler.js.map +1 -0
  250. package/dist/api/handlers/AiGatewayManagementHandler.d.ts +24 -0
  251. package/dist/api/handlers/AiGatewayManagementHandler.js +503 -0
  252. package/dist/api/handlers/AiGatewayManagementHandler.js.map +1 -0
  253. package/dist/api/handlers/ChatHandler.d.ts +11 -12
  254. package/dist/api/handlers/ChatHandler.js +12 -219
  255. package/dist/api/handlers/ChatHandler.js.map +1 -1
  256. package/dist/api/handlers/DashboardHandler.js +22 -116
  257. package/dist/api/handlers/DashboardHandler.js.map +1 -1
  258. package/dist/api/handlers/NetworkSettingsHandler.d.ts +97 -0
  259. package/dist/api/handlers/NetworkSettingsHandler.js +511 -0
  260. package/dist/api/handlers/NetworkSettingsHandler.js.map +1 -0
  261. package/dist/api/handlers/PodSettingsHandler.d.ts +79 -0
  262. package/dist/api/handlers/PodSettingsHandler.js +162 -0
  263. package/dist/api/handlers/PodSettingsHandler.js.map +1 -0
  264. package/dist/api/handlers/ProvisionHandler.d.ts +3 -1
  265. package/dist/api/handlers/ProvisionHandler.js +22 -87
  266. package/dist/api/handlers/ProvisionHandler.js.map +1 -1
  267. package/dist/api/handlers/RdfStatsHandler.d.ts +6 -0
  268. package/dist/api/handlers/RdfStatsHandler.js +85 -0
  269. package/dist/api/handlers/RdfStatsHandler.js.map +1 -0
  270. package/dist/api/handlers/SettingsHandler.d.ts +5 -0
  271. package/dist/api/handlers/SettingsHandler.js +13 -0
  272. package/dist/api/handlers/SettingsHandler.js.map +1 -0
  273. package/dist/api/handlers/StaticSpaHandler.d.ts +8 -0
  274. package/dist/api/handlers/StaticSpaHandler.js +102 -0
  275. package/dist/api/handlers/StaticSpaHandler.js.map +1 -0
  276. package/dist/api/handlers/index.d.ts +1 -0
  277. package/dist/api/handlers/index.js +1 -0
  278. package/dist/api/handlers/index.js.map +1 -1
  279. package/dist/api/http/readBoundedJsonBody.d.ts +14 -0
  280. package/dist/api/http/readBoundedJsonBody.js +58 -0
  281. package/dist/api/http/readBoundedJsonBody.js.map +1 -0
  282. package/dist/api/middleware/AuthMiddleware.d.ts +1 -0
  283. package/dist/api/middleware/AuthMiddleware.js +33 -4
  284. package/dist/api/middleware/AuthMiddleware.js.map +1 -1
  285. package/dist/api/runs/AgentRuntimeTypes.d.ts +18 -3
  286. package/dist/api/runs/AgentRuntimeTypes.js +61 -0
  287. package/dist/api/runs/AgentRuntimeTypes.js.map +1 -1
  288. package/dist/api/runs/InngestRunExecutionBackend.d.ts +28 -3
  289. package/dist/api/runs/InngestRunExecutionBackend.js +26 -3
  290. package/dist/api/runs/InngestRunExecutionBackend.js.map +1 -1
  291. package/dist/api/runs/ManagedRunWorker.d.ts +4 -1
  292. package/dist/api/runs/ManagedRunWorker.js +39 -8
  293. package/dist/api/runs/ManagedRunWorker.js.map +1 -1
  294. package/dist/api/runs/PiAgentRuntimeDriver.d.ts +5 -1
  295. package/dist/api/runs/PiAgentRuntimeDriver.js +94 -57
  296. package/dist/api/runs/PiAgentRuntimeDriver.js.map +1 -1
  297. package/dist/api/runs/RdfRunContextRetriever.d.ts +46 -0
  298. package/dist/api/runs/RdfRunContextRetriever.js +277 -0
  299. package/dist/api/runs/RdfRunContextRetriever.js.map +1 -0
  300. package/dist/api/runs/RunExecutionBackend.d.ts +38 -0
  301. package/dist/api/runs/RunExecutionBackend.js.map +1 -1
  302. package/dist/api/runs/RunStateCenter.d.ts +18 -3
  303. package/dist/api/runs/RunStateCenter.js +85 -24
  304. package/dist/api/runs/RunStateCenter.js.map +1 -1
  305. package/dist/api/runtime.js +163 -3
  306. package/dist/api/runtime.js.map +1 -1
  307. package/dist/api/service/AiClientConfigurationService.d.ts +97 -0
  308. package/dist/api/service/AiClientConfigurationService.js +379 -0
  309. package/dist/api/service/AiClientConfigurationService.js.map +1 -0
  310. package/dist/api/service/RdfBenchmarkReportCatalog.d.ts +86 -0
  311. package/dist/api/service/RdfBenchmarkReportCatalog.js +349 -0
  312. package/dist/api/service/RdfBenchmarkReportCatalog.js.map +1 -0
  313. package/dist/api/service/RdfBenchmarkReportGate.d.ts +78 -0
  314. package/dist/api/service/RdfBenchmarkReportGate.js +197 -0
  315. package/dist/api/service/RdfBenchmarkReportGate.js.map +1 -0
  316. package/dist/api/service/RdfSearchIndexingService.d.ts +113 -0
  317. package/dist/api/service/RdfSearchIndexingService.js +272 -0
  318. package/dist/api/service/RdfSearchIndexingService.js.map +1 -0
  319. package/dist/api/service/RdfSearchIndexingSolidFsSyncer.d.ts +27 -0
  320. package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js +90 -0
  321. package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js.map +1 -0
  322. package/dist/api/service/RdfStorageStatsService.d.ts +31 -0
  323. package/dist/api/service/RdfStorageStatsService.js +97 -0
  324. package/dist/api/service/RdfStorageStatsService.js.map +1 -0
  325. package/dist/api/service/VectorStoreService.d.ts +2 -0
  326. package/dist/api/service/VectorStoreService.js +70 -2
  327. package/dist/api/service/VectorStoreService.js.map +1 -1
  328. package/dist/api/service/VercelChatService.d.ts +27 -38
  329. package/dist/api/service/VercelChatService.js +153 -505
  330. package/dist/api/service/VercelChatService.js.map +1 -1
  331. package/dist/api/service/provider-http-transport.d.ts +21 -0
  332. package/dist/api/service/provider-http-transport.js +108 -2
  333. package/dist/api/service/provider-http-transport.js.map +1 -1
  334. package/dist/api/service/provider-registry.d.ts +5 -7
  335. package/dist/api/service/provider-registry.js +81 -64
  336. package/dist/api/service/provider-registry.js.map +1 -1
  337. package/dist/api/tasks/InngestTaskScheduler.d.ts +44 -4
  338. package/dist/api/tasks/TaskMaterializer.d.ts +10 -1
  339. package/dist/api/tasks/TaskMaterializer.js +39 -4
  340. package/dist/api/tasks/TaskMaterializer.js.map +1 -1
  341. package/dist/api/tasks/TaskService.d.ts +5 -1
  342. package/dist/api/tasks/TaskService.js +3 -0
  343. package/dist/api/tasks/TaskService.js.map +1 -1
  344. package/dist/cli/commands/obj.d.ts +9 -0
  345. package/dist/cli/commands/obj.js +74 -3
  346. package/dist/cli/commands/obj.js.map +1 -1
  347. package/dist/cli/commands/rdf.d.ts +9 -0
  348. package/dist/cli/commands/rdf.js +66 -1
  349. package/dist/cli/commands/rdf.js.map +1 -1
  350. package/dist/cli/commands/start.js +3 -0
  351. package/dist/cli/commands/start.js.map +1 -1
  352. package/dist/cli/lib/solid-auth.d.ts +3 -3
  353. package/dist/cli/lib/solid-auth.js +4 -4
  354. package/dist/cli/lib/solid-auth.js.map +1 -1
  355. package/dist/components/components.jsonld +16 -0
  356. package/dist/components/context.jsonld +815 -28
  357. package/dist/document/Chunker.jsonld +110 -0
  358. package/dist/document/{DocumentParser.d.ts → DocumentReader.d.ts} +23 -11
  359. package/dist/document/{DocumentParser.js → DocumentReader.js} +2 -2
  360. package/dist/document/DocumentReader.js.map +1 -0
  361. package/dist/document/DocumentReader.jsonld +82 -0
  362. package/dist/document/HeadingChunker.jsonld +41 -0
  363. package/dist/document/{JinaDocumentParser.d.ts → JinaReader.d.ts} +7 -7
  364. package/dist/document/{JinaDocumentParser.js → JinaReader.js} +12 -12
  365. package/dist/document/JinaReader.js.map +1 -0
  366. package/dist/document/JinaReader.jsonld +133 -0
  367. package/dist/document/L0SourceSummary.d.ts +103 -0
  368. package/dist/document/L0SourceSummary.js +157 -0
  369. package/dist/document/L0SourceSummary.js.map +1 -0
  370. package/dist/document/L0SourceSummary.jsonld +326 -0
  371. package/dist/document/PaddleOcrReader.d.ts +40 -0
  372. package/dist/document/PaddleOcrReader.js +53 -0
  373. package/dist/document/PaddleOcrReader.js.map +1 -0
  374. package/dist/document/PaddleOcrReader.jsonld +234 -0
  375. package/dist/document/ReaderAiConfig.d.ts +50 -0
  376. package/dist/document/ReaderAiConfig.js +109 -0
  377. package/dist/document/ReaderAiConfig.js.map +1 -0
  378. package/dist/document/ReaderAiConfig.jsonld +185 -0
  379. package/dist/document/ReaderPolicy.d.ts +89 -0
  380. package/dist/document/ReaderPolicy.js +158 -0
  381. package/dist/document/ReaderPolicy.js.map +1 -0
  382. package/dist/document/ReaderPolicy.jsonld +218 -0
  383. package/dist/document/index.d.ts +6 -2
  384. package/dist/document/index.js +6 -2
  385. package/dist/document/index.js.map +1 -1
  386. package/dist/edge/DdnsManager.d.ts +1 -1
  387. package/dist/edge/DdnsManager.js.map +1 -1
  388. package/dist/edge/EdgeNodeAgent.d.ts +4 -0
  389. package/dist/edge/EdgeNodeAgent.js +6 -0
  390. package/dist/edge/EdgeNodeAgent.js.map +1 -1
  391. package/dist/edge/EdgeNodeAgent.jsonld +8 -0
  392. package/dist/edge/EdgeNodeAgentInitializer.d.ts +16 -0
  393. package/dist/edge/EdgeNodeAgentInitializer.js +51 -0
  394. package/dist/edge/EdgeNodeAgentInitializer.js.map +1 -1
  395. package/dist/edge/EdgeNodeAgentInitializer.jsonld +250 -0
  396. package/dist/edge/EdgeNodeCertificateCapabilityBridge.d.ts +34 -0
  397. package/dist/edge/EdgeNodeCertificateCapabilityBridge.js +111 -0
  398. package/dist/edge/EdgeNodeCertificateCapabilityBridge.js.map +1 -0
  399. package/dist/edge/acme/AcmeCertificateManager.d.ts +14 -1
  400. package/dist/edge/acme/AcmeCertificateManager.js +67 -7
  401. package/dist/edge/acme/AcmeCertificateManager.js.map +1 -1
  402. package/dist/edge/acme/AcmeCertificateManager.jsonld +22 -2
  403. package/dist/edge/acme/ClusterCertificateManager.d.ts +12 -0
  404. package/dist/edge/acme/ClusterCertificateManager.js +38 -0
  405. package/dist/edge/acme/ClusterCertificateManager.js.map +1 -1
  406. package/dist/extensions/ExtensionRuntime.d.ts +17 -0
  407. package/dist/extensions/ExtensionRuntime.js +171 -0
  408. package/dist/extensions/ExtensionRuntime.js.map +1 -0
  409. package/dist/extensions/PodCredentialResolver.d.ts +23 -0
  410. package/dist/extensions/PodCredentialResolver.js +139 -0
  411. package/dist/extensions/PodCredentialResolver.js.map +1 -0
  412. package/dist/extensions/index.d.ts +3 -0
  413. package/dist/extensions/index.js +20 -0
  414. package/dist/extensions/index.js.map +1 -0
  415. package/dist/extensions/types.d.ts +73 -0
  416. package/dist/extensions/types.js +3 -0
  417. package/dist/extensions/types.js.map +1 -0
  418. package/dist/http/SubgraphSparqlHttpHandler.d.ts +20 -1
  419. package/dist/http/SubgraphSparqlHttpHandler.js +324 -43
  420. package/dist/http/SubgraphSparqlHttpHandler.js.map +1 -1
  421. package/dist/http/SubgraphSparqlHttpHandler.jsonld +87 -0
  422. package/dist/identity/drizzle/EdgeNodeRepository.js +3 -2
  423. package/dist/identity/drizzle/EdgeNodeRepository.js.map +1 -1
  424. package/dist/identity/drizzle/schema.pg.js +1 -1
  425. package/dist/identity/drizzle/schema.pg.js.map +1 -1
  426. package/dist/identity/drizzle/schema.sqlite.js +1 -1
  427. package/dist/identity/drizzle/schema.sqlite.js.map +1 -1
  428. package/dist/identity/oidc/ScopedPickWebIdHandler.js +5 -5
  429. package/dist/identity/oidc/ScopedPickWebIdHandler.js.map +1 -1
  430. package/dist/index.d.ts +12 -2
  431. package/dist/index.js +13 -1
  432. package/dist/index.js.map +1 -1
  433. package/dist/main.js +3 -0
  434. package/dist/main.js.map +1 -1
  435. package/dist/provision/LocalProvisionState.d.ts +28 -0
  436. package/dist/provision/LocalProvisionState.js +124 -0
  437. package/dist/provision/LocalProvisionState.js.map +1 -0
  438. package/dist/provision/ProvisionCodeCodec.d.ts +7 -3
  439. package/dist/provision/ProvisionCodeCodec.js +10 -3
  440. package/dist/provision/ProvisionCodeCodec.js.map +1 -1
  441. package/dist/provision/ProvisionPodCreator.d.ts +15 -1
  442. package/dist/provision/ProvisionPodCreator.js +68 -1
  443. package/dist/provision/ProvisionPodCreator.js.map +1 -1
  444. package/dist/provision/ProvisionPodCreator.jsonld +31 -0
  445. package/dist/provision/ServiceAccessTokenCodec.d.ts +45 -0
  446. package/dist/provision/ServiceAccessTokenCodec.js +86 -0
  447. package/dist/provision/ServiceAccessTokenCodec.js.map +1 -0
  448. package/dist/runtime/GatewayAdminProxyAuth.d.ts +29 -0
  449. package/dist/runtime/GatewayAdminProxyAuth.js +108 -0
  450. package/dist/runtime/GatewayAdminProxyAuth.js.map +1 -0
  451. package/dist/runtime/Proxy.d.ts +10 -0
  452. package/dist/runtime/Proxy.js +64 -6
  453. package/dist/runtime/Proxy.js.map +1 -1
  454. package/dist/runtime/XpodRuntime.js +1 -0
  455. package/dist/runtime/XpodRuntime.js.map +1 -1
  456. package/dist/runtime/bootstrap.d.ts +1 -0
  457. package/dist/runtime/bootstrap.js +29 -0
  458. package/dist/runtime/bootstrap.js.map +1 -1
  459. package/dist/runtime/css-process.d.ts +1 -0
  460. package/dist/runtime/css-process.js +1 -0
  461. package/dist/runtime/css-process.js.map +1 -1
  462. package/dist/runtime/index.d.ts +1 -0
  463. package/dist/runtime/index.js +3 -1
  464. package/dist/runtime/index.js.map +1 -1
  465. package/dist/runtime/lifecycle.d.ts +3 -1
  466. package/dist/runtime/lifecycle.js +3 -1
  467. package/dist/runtime/lifecycle.js.map +1 -1
  468. package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js +2 -0
  469. package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js.map +1 -1
  470. package/dist/runtime/runner/types.d.ts +3 -0
  471. package/dist/runtime/runner/types.js.map +1 -1
  472. package/dist/runtime/runtime-types.d.ts +2 -0
  473. package/dist/runtime/runtime-types.js.map +1 -1
  474. package/dist/runtime/safe-env.d.ts +15 -0
  475. package/dist/runtime/safe-env.js +109 -0
  476. package/dist/runtime/safe-env.js.map +1 -0
  477. package/dist/security/index.d.ts +1 -0
  478. package/dist/security/index.js +18 -0
  479. package/dist/security/index.js.map +1 -0
  480. package/dist/security/secret-cell/DeploymentRootKeyProvider.d.ts +17 -0
  481. package/dist/security/secret-cell/DeploymentRootKeyProvider.js +61 -0
  482. package/dist/security/secret-cell/DeploymentRootKeyProvider.js.map +1 -0
  483. package/dist/security/secret-cell/DeploymentRootKeyProvider.jsonld +124 -0
  484. package/dist/security/secret-cell/SecretCellVault.d.ts +55 -0
  485. package/dist/security/secret-cell/SecretCellVault.js +242 -0
  486. package/dist/security/secret-cell/SecretCellVault.js.map +1 -0
  487. package/dist/security/secret-cell/SecretCellVault.jsonld +207 -0
  488. package/dist/security/secret-cell/index.d.ts +2 -0
  489. package/dist/security/secret-cell/index.js +11 -0
  490. package/dist/security/secret-cell/index.js.map +1 -0
  491. package/dist/solidfs/CompositeSolidFsSyncer.d.ts +18 -0
  492. package/dist/solidfs/CompositeSolidFsSyncer.js +32 -0
  493. package/dist/solidfs/CompositeSolidFsSyncer.js.map +1 -0
  494. package/dist/solidfs/LocalSolidFS.js +25 -1
  495. package/dist/solidfs/LocalSolidFS.js.map +1 -1
  496. package/dist/solidfs/RdfIndexSolidFsSyncer.d.ts +41 -2
  497. package/dist/solidfs/RdfIndexSolidFsSyncer.js +331 -21
  498. package/dist/solidfs/RdfIndexSolidFsSyncer.js.map +1 -1
  499. package/dist/solidfs/SolidFsMetaNotes.d.ts +25 -0
  500. package/dist/solidfs/SolidFsMetaNotes.js +103 -0
  501. package/dist/solidfs/SolidFsMetaNotes.js.map +1 -0
  502. package/dist/solidfs/SolidFsSyncJournal.d.ts +2 -2
  503. package/dist/solidfs/SolidFsSyncJournal.js +9 -4
  504. package/dist/solidfs/SolidFsSyncJournal.js.map +1 -1
  505. package/dist/solidfs/SolidFsSyncJournal.jsonld +119 -0
  506. package/dist/solidfs/WorkspacePrompt.d.ts +13 -0
  507. package/dist/solidfs/WorkspacePrompt.js +42 -0
  508. package/dist/solidfs/WorkspacePrompt.js.map +1 -0
  509. package/dist/solidfs/index.d.ts +3 -0
  510. package/dist/solidfs/index.js +3 -0
  511. package/dist/solidfs/index.js.map +1 -1
  512. package/dist/solidfs/types.d.ts +12 -2
  513. package/dist/solidfs/types.js.map +1 -1
  514. package/dist/storage/accessors/MixDataAccessor.d.ts +36 -4
  515. package/dist/storage/accessors/MixDataAccessor.js +222 -23
  516. package/dist/storage/accessors/MixDataAccessor.js.map +1 -1
  517. package/dist/storage/accessors/MixDataAccessor.jsonld +89 -0
  518. package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +6 -1
  519. package/dist/storage/accessors/SolidRdfDataAccessor.js +35 -0
  520. package/dist/storage/accessors/SolidRdfDataAccessor.js.map +1 -1
  521. package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +20 -0
  522. package/dist/storage/database/PostgresPoolManager.d.ts +1 -0
  523. package/dist/storage/database/PostgresPoolManager.js +2 -2
  524. package/dist/storage/database/PostgresPoolManager.js.map +1 -1
  525. package/dist/storage/locking/UrlAwareRedisLocker.d.ts +2 -0
  526. package/dist/storage/locking/UrlAwareRedisLocker.js +65 -0
  527. package/dist/storage/locking/UrlAwareRedisLocker.js.map +1 -1
  528. package/dist/storage/locking/UrlAwareRedisLocker.jsonld +19 -0
  529. package/dist/storage/rdf/PostgresRdfEngine.d.ts +286 -9
  530. package/dist/storage/rdf/PostgresRdfEngine.js +10773 -2084
  531. package/dist/storage/rdf/PostgresRdfEngine.js.map +1 -1
  532. package/dist/storage/rdf/PostgresRdfEngine.jsonld +1693 -89
  533. package/dist/storage/rdf/PostgresRdfSqlExecutor.d.ts +24 -0
  534. package/dist/storage/rdf/PostgresRdfSqlExecutor.js +131 -0
  535. package/dist/storage/rdf/PostgresRdfSqlExecutor.js.map +1 -0
  536. package/dist/storage/rdf/PostgresRdfTextIndex.d.ts +54 -0
  537. package/dist/storage/rdf/PostgresRdfTextIndex.js +1255 -0
  538. package/dist/storage/rdf/PostgresRdfTextIndex.js.map +1 -0
  539. package/dist/storage/rdf/PostgresRdfTextIndex.jsonld +487 -0
  540. package/dist/storage/rdf/PostgresRdfVectorIndex.d.ts +46 -0
  541. package/dist/storage/rdf/PostgresRdfVectorIndex.js +1165 -0
  542. package/dist/storage/rdf/PostgresRdfVectorIndex.js.map +1 -0
  543. package/dist/storage/rdf/PostgresRdfVectorIndex.jsonld +423 -0
  544. package/dist/storage/rdf/Rdf3xIndex.d.ts +14 -1
  545. package/dist/storage/rdf/Rdf3xIndex.js +286 -2
  546. package/dist/storage/rdf/Rdf3xIndex.js.map +1 -1
  547. package/dist/storage/rdf/Rdf3xIndex.jsonld +36 -0
  548. package/dist/storage/rdf/Rdf3xSchema.d.ts +5 -1
  549. package/dist/storage/rdf/Rdf3xSchema.js +17 -3
  550. package/dist/storage/rdf/Rdf3xSchema.js.map +1 -1
  551. package/dist/storage/rdf/RdfAccessScope.d.ts +22 -0
  552. package/dist/storage/rdf/RdfAccessScope.js +345 -0
  553. package/dist/storage/rdf/RdfAccessScope.js.map +1 -0
  554. package/dist/storage/rdf/RdfAccessScope.jsonld +45 -0
  555. package/dist/storage/rdf/RdfFusionRankPlan.d.ts +2 -0
  556. package/dist/storage/rdf/RdfFusionRankPlan.js +186 -0
  557. package/dist/storage/rdf/RdfFusionRankPlan.js.map +1 -0
  558. package/dist/storage/rdf/RdfJoinShape.d.ts +8 -0
  559. package/dist/storage/rdf/RdfJoinShape.js +31 -0
  560. package/dist/storage/rdf/RdfJoinShape.js.map +1 -0
  561. package/dist/storage/rdf/RdfQuadIndex.d.ts +5 -2
  562. package/dist/storage/rdf/RdfQuadIndex.js +94 -6
  563. package/dist/storage/rdf/RdfQuadIndex.js.map +1 -1
  564. package/dist/storage/rdf/RdfQuadIndex.jsonld +12 -0
  565. package/dist/storage/rdf/RdfQueryExecutor.d.ts +3 -4
  566. package/dist/storage/rdf/RdfQueryExecutor.js +235 -8
  567. package/dist/storage/rdf/RdfQueryExecutor.js.map +1 -1
  568. package/dist/storage/rdf/RdfSearchSourceFilter.d.ts +10 -0
  569. package/dist/storage/rdf/RdfSearchSourceFilter.js +83 -0
  570. package/dist/storage/rdf/RdfSearchSourceFilter.js.map +1 -0
  571. package/dist/storage/rdf/RdfSparqlAdapter.d.ts +27 -1
  572. package/dist/storage/rdf/RdfSparqlAdapter.js +265 -3
  573. package/dist/storage/rdf/RdfSparqlAdapter.js.map +1 -1
  574. package/dist/storage/rdf/RdfSparqlAdapter.jsonld +8 -0
  575. package/dist/storage/rdf/RdfTermDictionary.d.ts +7 -1
  576. package/dist/storage/rdf/RdfTermDictionary.js +139 -0
  577. package/dist/storage/rdf/RdfTermDictionary.js.map +1 -1
  578. package/dist/storage/rdf/RdfTermDictionary.jsonld +4 -0
  579. package/dist/storage/rdf/RdfTextIndex.d.ts +45 -2
  580. package/dist/storage/rdf/RdfTextIndex.js +810 -114
  581. package/dist/storage/rdf/RdfTextIndex.js.map +1 -1
  582. package/dist/storage/rdf/RdfTextIndex.jsonld +193 -0
  583. package/dist/storage/rdf/RdfTextProjection.d.ts +10 -0
  584. package/dist/storage/rdf/RdfTextProjection.js +258 -0
  585. package/dist/storage/rdf/RdfTextProjection.js.map +1 -0
  586. package/dist/storage/rdf/RdfVectorIndex.d.ts +30 -2
  587. package/dist/storage/rdf/RdfVectorIndex.js +461 -38
  588. package/dist/storage/rdf/RdfVectorIndex.js.map +1 -1
  589. package/dist/storage/rdf/RdfVectorIndex.jsonld +163 -0
  590. package/dist/storage/rdf/SolidRdfEngine.d.ts +12 -9
  591. package/dist/storage/rdf/SolidRdfEngine.js +48 -22
  592. package/dist/storage/rdf/SolidRdfEngine.js.map +1 -1
  593. package/dist/storage/rdf/SolidRdfEngine.jsonld +33 -43
  594. package/dist/storage/rdf/SolidRdfSparqlEngine.d.ts +19 -8
  595. package/dist/storage/rdf/SolidRdfSparqlEngine.js +674 -44
  596. package/dist/storage/rdf/SolidRdfSparqlEngine.js.map +1 -1
  597. package/dist/storage/rdf/SolidRdfSparqlEngine.jsonld +51 -0
  598. package/dist/storage/rdf/index.d.ts +9 -5
  599. package/dist/storage/rdf/index.js +42 -1
  600. package/dist/storage/rdf/index.js.map +1 -1
  601. package/dist/storage/rdf/models-benchmark.d.ts +264 -2
  602. package/dist/storage/rdf/models-benchmark.js +4207 -155
  603. package/dist/storage/rdf/models-benchmark.js.map +1 -1
  604. package/dist/storage/rdf/types.d.ts +833 -4
  605. package/dist/storage/rdf/types.js.map +1 -1
  606. package/dist/storage/rdf/types.jsonld +348 -0
  607. package/dist/storage/sparql/CompatibilitySparqlEngine.d.ts +14 -13
  608. package/dist/storage/sparql/CompatibilitySparqlEngine.js +24 -24
  609. package/dist/storage/sparql/CompatibilitySparqlEngine.js.map +1 -1
  610. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.d.ts +14 -13
  611. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js +30 -18
  612. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js.map +1 -1
  613. package/dist/storage/sparql/SubgraphQueryEngine.d.ts +21 -12
  614. package/dist/storage/sparql/SubgraphQueryEngine.js +12 -12
  615. package/dist/storage/sparql/SubgraphQueryEngine.js.map +1 -1
  616. package/dist/terminal/sandbox/MacOSSandbox.js +2 -1
  617. package/dist/terminal/sandbox/MacOSSandbox.js.map +1 -1
  618. package/dist/terminal/sandbox/index.js +2 -1
  619. package/dist/terminal/sandbox/index.js.map +1 -1
  620. package/dist/test-utils/no-auth-xpod.js +3 -0
  621. package/dist/test-utils/no-auth-xpod.js.map +1 -1
  622. package/dist/tunnel/LocalTunnelProvider.d.ts +3 -0
  623. package/dist/tunnel/LocalTunnelProvider.js +17 -1
  624. package/dist/tunnel/LocalTunnelProvider.js.map +1 -1
  625. package/dist/tunnel/LocalTunnelProvider.jsonld +23 -0
  626. package/dist/tunnel/SakuraFrpTunnelProvider.d.ts +3 -0
  627. package/dist/tunnel/SakuraFrpTunnelProvider.js +18 -2
  628. package/dist/tunnel/SakuraFrpTunnelProvider.js.map +1 -1
  629. package/dist/tunnel/TunnelProfiles.d.ts +22 -0
  630. package/dist/tunnel/TunnelProfiles.js +208 -0
  631. package/dist/tunnel/TunnelProfiles.js.map +1 -0
  632. package/dist/tunnel/index.d.ts +2 -0
  633. package/dist/tunnel/index.js +4 -1
  634. package/dist/tunnel/index.js.map +1 -1
  635. package/dist/util/identifiers/ClusterIdentifierStrategy.d.ts +3 -0
  636. package/dist/util/identifiers/ClusterIdentifierStrategy.js +18 -2
  637. package/dist/util/identifiers/ClusterIdentifierStrategy.js.map +1 -1
  638. package/dist/util/identifiers/ClusterIdentifierStrategy.jsonld +5 -1
  639. package/node_modules/@undefineds.co/ai-connection/dist/AiClientConfigurationSection.d.ts +55 -0
  640. package/node_modules/@undefineds.co/ai-connection/dist/AiClientConfigurationSection.js +167 -0
  641. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionHeader.d.ts +3 -0
  642. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionHeader.js +8 -0
  643. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionList.d.ts +4 -0
  644. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionList.js +36 -0
  645. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMain.d.ts +4 -0
  646. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMain.js +37 -0
  647. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMainHeader.d.ts +3 -0
  648. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMainHeader.js +7 -0
  649. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionPanel.d.ts +14 -0
  650. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionPanel.js +333 -0
  651. package/node_modules/@undefineds.co/ai-connection/dist/AiProviderCard.d.ts +22 -0
  652. package/node_modules/@undefineds.co/ai-connection/dist/AiProviderCard.js +43 -0
  653. package/node_modules/@undefineds.co/ai-connection/dist/AiQuotaCard.d.ts +8 -0
  654. package/node_modules/@undefineds.co/ai-connection/dist/AiQuotaCard.js +6 -0
  655. package/node_modules/@undefineds.co/ai-connection/dist/ai-connection-client.d.ts +120 -0
  656. package/node_modules/@undefineds.co/ai-connection/dist/ai-connection-client.js +414 -0
  657. package/node_modules/@undefineds.co/ai-connection/dist/client-config/base-adapter.d.ts +32 -0
  658. package/node_modules/@undefineds.co/ai-connection/dist/client-config/base-adapter.js +212 -0
  659. package/node_modules/@undefineds.co/ai-connection/dist/client-config/codex.d.ts +14 -0
  660. package/node_modules/@undefineds.co/ai-connection/dist/client-config/codex.js +90 -0
  661. package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.cjs +668 -0
  662. package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.d.ts +6 -0
  663. package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.js +6 -0
  664. package/node_modules/@undefineds.co/ai-connection/dist/client-config/json-env-adapter.d.ts +21 -0
  665. package/node_modules/@undefineds.co/ai-connection/dist/client-config/json-env-adapter.js +82 -0
  666. package/node_modules/@undefineds.co/ai-connection/dist/client-config/pi.d.ts +13 -0
  667. package/node_modules/@undefineds.co/ai-connection/dist/client-config/pi.js +83 -0
  668. package/node_modules/@undefineds.co/ai-connection/dist/client-config/transaction.d.ts +17 -0
  669. package/node_modules/@undefineds.co/ai-connection/dist/client-config/transaction.js +153 -0
  670. package/node_modules/@undefineds.co/ai-connection/dist/client-config/types.d.ts +40 -0
  671. package/node_modules/@undefineds.co/ai-connection/dist/client-config/types.js +1 -0
  672. package/node_modules/@undefineds.co/ai-connection/dist/controller.d.ts +42 -0
  673. package/node_modules/@undefineds.co/ai-connection/dist/controller.js +289 -0
  674. package/node_modules/@undefineds.co/ai-connection/dist/index.d.ts +16 -0
  675. package/node_modules/@undefineds.co/ai-connection/dist/index.js +41 -0
  676. package/node_modules/@undefineds.co/ai-connection/dist/manifest.d.ts +1 -0
  677. package/node_modules/@undefineds.co/ai-connection/dist/manifest.js +18 -0
  678. package/node_modules/@undefineds.co/ai-connection/dist/service-access.d.ts +3 -0
  679. package/node_modules/@undefineds.co/ai-connection/dist/service-access.js +133 -0
  680. package/node_modules/@undefineds.co/ai-connection/package.json +50 -0
  681. package/node_modules/@undefineds.co/extension-sdk/README.md +299 -0
  682. package/node_modules/@undefineds.co/extension-sdk/dist/index.d.ts +5 -0
  683. package/node_modules/@undefineds.co/extension-sdk/dist/index.js +5 -0
  684. package/node_modules/@undefineds.co/extension-sdk/dist/layout.d.ts +16 -0
  685. package/node_modules/@undefineds.co/extension-sdk/dist/layout.js +36 -0
  686. package/node_modules/@undefineds.co/extension-sdk/dist/manifest.d.ts +27 -0
  687. package/node_modules/@undefineds.co/extension-sdk/dist/manifest.js +79 -0
  688. package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.d.ts +7 -0
  689. package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.js +8 -0
  690. package/node_modules/@undefineds.co/extension-sdk/dist/react/auth-boundary.d.ts +27 -0
  691. package/node_modules/@undefineds.co/extension-sdk/dist/react/auth-boundary.js +49 -0
  692. package/node_modules/@undefineds.co/extension-sdk/dist/react/layout-context.d.ts +11 -0
  693. package/node_modules/@undefineds.co/extension-sdk/dist/react/layout-context.js +9 -0
  694. package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.d.ts +38 -0
  695. package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.js +132 -0
  696. package/node_modules/@undefineds.co/extension-sdk/dist/react.d.ts +12 -0
  697. package/node_modules/@undefineds.co/extension-sdk/dist/react.js +19 -0
  698. package/node_modules/@undefineds.co/extension-sdk/dist/testing.d.ts +7 -0
  699. package/node_modules/@undefineds.co/extension-sdk/dist/testing.js +27 -0
  700. package/node_modules/@undefineds.co/extension-sdk/dist/web.d.ts +225 -0
  701. package/node_modules/@undefineds.co/extension-sdk/dist/web.js +142 -0
  702. package/node_modules/@undefineds.co/extension-sdk/package.json +49 -0
  703. package/node_modules/@undefineds.co/shared-ui/dist/badge.d.ts +8 -0
  704. package/node_modules/@undefineds.co/shared-ui/dist/badge.js +17 -0
  705. package/node_modules/@undefineds.co/shared-ui/dist/button.d.ts +10 -0
  706. package/node_modules/@undefineds.co/shared-ui/dist/button.js +30 -0
  707. package/node_modules/@undefineds.co/shared-ui/dist/card.d.ts +7 -0
  708. package/node_modules/@undefineds.co/shared-ui/dist/card.js +15 -0
  709. package/node_modules/@undefineds.co/shared-ui/dist/index.d.ts +6 -0
  710. package/node_modules/@undefineds.co/shared-ui/dist/index.js +6 -0
  711. package/node_modules/@undefineds.co/shared-ui/dist/input.d.ts +4 -0
  712. package/node_modules/@undefineds.co/shared-ui/dist/input.js +5 -0
  713. package/node_modules/@undefineds.co/shared-ui/dist/theme.css +121 -0
  714. package/node_modules/@undefineds.co/shared-ui/dist/utils.d.ts +2 -0
  715. package/node_modules/@undefineds.co/shared-ui/dist/utils.js +5 -0
  716. package/node_modules/@undefineds.co/shared-ui/dist/workspace.d.ts +23 -0
  717. package/node_modules/@undefineds.co/shared-ui/dist/workspace.js +38 -0
  718. package/node_modules/@undefineds.co/shared-ui/package.json +39 -0
  719. package/node_modules/@undefineds.co/solid-sdk/dist/index.d.ts +3 -0
  720. package/node_modules/@undefineds.co/solid-sdk/dist/index.js +3 -0
  721. package/node_modules/@undefineds.co/solid-sdk/dist/pod-runtime.d.ts +45 -0
  722. package/node_modules/@undefineds.co/solid-sdk/dist/pod-runtime.js +147 -0
  723. package/node_modules/@undefineds.co/solid-sdk/dist/react.d.ts +15 -0
  724. package/node_modules/@undefineds.co/solid-sdk/dist/react.js +15 -0
  725. package/node_modules/@undefineds.co/solid-sdk/dist/session.d.ts +42 -0
  726. package/node_modules/@undefineds.co/solid-sdk/dist/session.js +127 -0
  727. package/node_modules/@undefineds.co/solid-sdk/package.json +45 -0
  728. package/package.json +32 -12
  729. package/static/app/assets/index-BoYHJ6si.js +230 -0
  730. package/static/app/assets/inrupt-smoke.js +2 -2
  731. package/static/app/assets/main.css +1 -1
  732. package/static/app/assets/main.js +9 -9
  733. package/static/dashboard/assets/NetworkPage-Brt79fuQ.js +2 -0
  734. package/static/dashboard/assets/PaneListHeader-57nvMwH6.js +1 -0
  735. package/static/dashboard/assets/PodPage-CM6do1vB.js +2 -0
  736. package/static/dashboard/assets/ServicesPage-BUNxGJRz.js +1 -0
  737. package/static/dashboard/assets/card-B9Zjf_2p.js +1 -0
  738. package/static/dashboard/assets/dashboard-8C6o666W.js +305 -0
  739. package/static/dashboard/assets/dashboard-CSdewNeA.css +1 -0
  740. package/static/dashboard/assets/database-DPh9wDY9.js +1 -0
  741. package/static/dashboard/assets/external-link-VbMQvVMz.js +1 -0
  742. package/static/dashboard/assets/index-RfiFckzb.js +51 -0
  743. package/static/dashboard/assets/refresh-cw-BxVxNxNr.js +1 -0
  744. package/static/dashboard/assets/services-status-context-DKmJ7ISr.js +1 -0
  745. package/static/dashboard/dashboard.html +2 -2
  746. package/static/settings/assets/ModelsPage-D_IH7AH3.js +1 -0
  747. package/static/settings/assets/PaneListHeader-Bgaze006.js +1 -0
  748. package/static/settings/assets/PodPage-Cy1VNObw.js +2 -0
  749. package/static/settings/assets/ServicesPage-BsFaxVWC.js +1 -0
  750. package/static/settings/assets/SettingsPage-UafNWE_p.js +48 -0
  751. package/static/settings/assets/card-B_bXSIn-.js +1 -0
  752. package/static/settings/assets/services-status-context-DiX-AbrP.js +1 -0
  753. package/static/settings/assets/settings-B30oMfZq.js +305 -0
  754. package/static/settings/assets/settings-CSdewNeA.css +1 -0
  755. package/static/settings/assets/workspace-layout-Dv1Yn9Ci.js +1 -0
  756. package/static/settings/auth.html +21 -0
  757. package/static/settings/reachability.html +221 -0
  758. package/static/settings/reachability.svg +7 -0
  759. package/static/settings/reachability.webmanifest +18 -0
  760. package/static/settings/settings.html +13 -0
  761. package/static/settings/signal-pod.html +293 -0
  762. package/static/settings/vite.svg +1 -0
  763. package/dist/api/service/ai-gateway-transport.d.ts +0 -25
  764. package/dist/api/service/ai-gateway-transport.js +0 -136
  765. package/dist/api/service/ai-gateway-transport.js.map +0 -1
  766. package/dist/api/service/chat-protocol-adapters.d.ts +0 -5
  767. package/dist/api/service/chat-protocol-adapters.js +0 -146
  768. package/dist/api/service/chat-protocol-adapters.js.map +0 -1
  769. package/dist/api/service/chat-routing.d.ts +0 -8
  770. package/dist/api/service/chat-routing.js +0 -16
  771. package/dist/api/service/chat-routing.js.map +0 -1
  772. package/dist/api/service/platform-ai-config.d.ts +0 -10
  773. package/dist/api/service/platform-ai-config.js +0 -76
  774. package/dist/api/service/platform-ai-config.js.map +0 -1
  775. package/dist/document/DocumentParser.js.map +0 -1
  776. package/dist/document/JinaDocumentParser.js.map +0 -1
  777. package/static/app/assets/index-C1yksyT4.js +0 -171
  778. package/static/dashboard/assets/dashboard-BssaVKTn.css +0 -1
  779. package/static/dashboard/assets/dashboard-Ckuadl3C.js +0 -54
@@ -63,6 +63,14 @@
63
63
  "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_rebuildFromCurrentQuads",
64
64
  "memberFieldName": "rebuildFromCurrentQuads"
65
65
  },
66
+ {
67
+ "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_rebuildAllProjectionTables",
68
+ "memberFieldName": "rebuildAllProjectionTables"
69
+ },
70
+ {
71
+ "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_refreshDirtyProjectionTables",
72
+ "memberFieldName": "refreshDirtyProjectionTables"
73
+ },
66
74
  {
67
75
  "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_factsDataVersion",
68
76
  "memberFieldName": "factsDataVersion"
@@ -139,6 +147,10 @@
139
147
  "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_initializeSchema",
140
148
  "memberFieldName": "initializeSchema"
141
149
  },
150
+ {
151
+ "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_initializeDirtyTrackingTriggers",
152
+ "memberFieldName": "initializeDirtyTrackingTriggers"
153
+ },
142
154
  {
143
155
  "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_dropMaterializedFactCopies",
144
156
  "memberFieldName": "dropMaterializedFactCopies"
@@ -151,6 +163,10 @@
151
163
  "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_clearRdf3xTables",
152
164
  "memberFieldName": "clearRdf3xTables"
153
165
  },
166
+ {
167
+ "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_clearDirtyProjectionTables",
168
+ "memberFieldName": "clearDirtyProjectionTables"
169
+ },
154
170
  {
155
171
  "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_prepareSchemaVersion",
156
172
  "memberFieldName": "prepareSchemaVersion"
@@ -175,18 +191,38 @@
175
191
  "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_setMetadataValue",
176
192
  "memberFieldName": "setMetadataValue"
177
193
  },
194
+ {
195
+ "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_dirtyProjectionStats",
196
+ "memberFieldName": "dirtyProjectionStats"
197
+ },
198
+ {
199
+ "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_countDirtyProjectionQuads",
200
+ "memberFieldName": "countDirtyProjectionQuads"
201
+ },
178
202
  {
179
203
  "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_rebuildPairProjection",
180
204
  "memberFieldName": "rebuildPairProjection"
181
205
  },
206
+ {
207
+ "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_refreshDirtyPairProjection",
208
+ "memberFieldName": "refreshDirtyPairProjection"
209
+ },
182
210
  {
183
211
  "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_rebuildTermProjection",
184
212
  "memberFieldName": "rebuildTermProjection"
185
213
  },
214
+ {
215
+ "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_refreshDirtyTermProjection",
216
+ "memberFieldName": "refreshDirtyTermProjection"
217
+ },
186
218
  {
187
219
  "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_rebuildGraphProjection",
188
220
  "memberFieldName": "rebuildGraphProjection"
189
221
  },
222
+ {
223
+ "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_refreshDirtyGraphProjection",
224
+ "memberFieldName": "refreshDirtyGraphProjection"
225
+ },
190
226
  {
191
227
  "@id": "undefineds:dist/storage/rdf/Rdf3xIndex.jsonld#Rdf3xIndex__member_compileScanSql",
192
228
  "memberFieldName": "compileScanSql"
@@ -1,5 +1,8 @@
1
1
  import type { SqliteDatabase } from '../SqliteRuntime';
2
2
  export declare const RDF3X_GRAPH_PROJECTION_TABLE = "rdf3x_stat_g";
3
+ export declare const RDF3X_DIRTY_GRAPH_TABLE = "rdf3x_dirty_graphs";
4
+ export declare const RDF3X_DIRTY_PAIR_TABLE = "rdf3x_dirty_pairs";
5
+ export declare const RDF3X_DIRTY_TERM_TABLE = "rdf3x_dirty_terms";
3
6
  export declare const RDF3X_PAIR_PROJECTION_TABLE_BY_NAME: {
4
7
  readonly SP: "rdf3x_stat_sp";
5
8
  readonly SO: "rdf3x_stat_so";
@@ -13,8 +16,9 @@ export declare const RDF3X_TERM_PROJECTION_TABLE_BY_NAME: {
13
16
  readonly P: "rdf3x_stat_p";
14
17
  readonly O: "rdf3x_stat_o";
15
18
  };
16
- export declare const RDF3X_DERIVED_TABLES: readonly ["rdf3x_metadata", "rdf3x_stat_g", ...("rdf3x_stat_sp" | "rdf3x_stat_so" | "rdf3x_stat_ps" | "rdf3x_stat_po" | "rdf3x_stat_os" | "rdf3x_stat_op" | "rdf3x_stat_s" | "rdf3x_stat_p" | "rdf3x_stat_o")[]];
19
+ export declare const RDF3X_DERIVED_TABLES: readonly ["rdf3x_metadata", "rdf3x_stat_g", ...("rdf3x_stat_sp" | "rdf3x_stat_so" | "rdf3x_stat_ps" | "rdf3x_stat_po" | "rdf3x_stat_os" | "rdf3x_stat_op" | "rdf3x_stat_s" | "rdf3x_stat_p" | "rdf3x_stat_o")[], "rdf3x_dirty_graphs", "rdf3x_dirty_pairs", "rdf3x_dirty_terms"];
17
20
  export declare const RDF3X_MATERIALIZED_FACT_COPY_TABLES: readonly ["rdf3x_triple_membership", "rdf3x_spo", "rdf3x_sop", "rdf3x_pso", "rdf3x_pos", "rdf3x_osp", "rdf3x_ops"];
18
21
  export declare const RDF3X_DERIVED_INDEXES: readonly ["rdf3x_membership_gspo", "rdf3x_membership_spo", "rdf3x_membership_source"];
22
+ export declare const RDF3X_DIRTY_TRIGGERS: readonly ["rdf3x_dirty_quads_insert", "rdf3x_dirty_quads_delete", "rdf3x_dirty_quads_update"];
19
23
  export declare function dropRdf3xMaterializedFactCopies(db: SqliteDatabase): void;
20
24
  export declare function dropRdf3xDerivedSchemaObjects(db: SqliteDatabase): void;
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RDF3X_DERIVED_INDEXES = exports.RDF3X_MATERIALIZED_FACT_COPY_TABLES = exports.RDF3X_DERIVED_TABLES = exports.RDF3X_TERM_PROJECTION_TABLE_BY_NAME = exports.RDF3X_PAIR_PROJECTION_TABLE_BY_NAME = exports.RDF3X_GRAPH_PROJECTION_TABLE = void 0;
3
+ exports.RDF3X_DIRTY_TRIGGERS = exports.RDF3X_DERIVED_INDEXES = exports.RDF3X_MATERIALIZED_FACT_COPY_TABLES = exports.RDF3X_DERIVED_TABLES = exports.RDF3X_TERM_PROJECTION_TABLE_BY_NAME = exports.RDF3X_PAIR_PROJECTION_TABLE_BY_NAME = exports.RDF3X_DIRTY_TERM_TABLE = exports.RDF3X_DIRTY_PAIR_TABLE = exports.RDF3X_DIRTY_GRAPH_TABLE = exports.RDF3X_GRAPH_PROJECTION_TABLE = void 0;
4
4
  exports.dropRdf3xMaterializedFactCopies = dropRdf3xMaterializedFactCopies;
5
5
  exports.dropRdf3xDerivedSchemaObjects = dropRdf3xDerivedSchemaObjects;
6
6
  exports.RDF3X_GRAPH_PROJECTION_TABLE = 'rdf3x_stat_g';
7
+ exports.RDF3X_DIRTY_GRAPH_TABLE = 'rdf3x_dirty_graphs';
8
+ exports.RDF3X_DIRTY_PAIR_TABLE = 'rdf3x_dirty_pairs';
9
+ exports.RDF3X_DIRTY_TERM_TABLE = 'rdf3x_dirty_terms';
7
10
  exports.RDF3X_PAIR_PROJECTION_TABLE_BY_NAME = {
8
11
  SP: 'rdf3x_stat_sp',
9
12
  SO: 'rdf3x_stat_so',
@@ -22,6 +25,9 @@ exports.RDF3X_DERIVED_TABLES = [
22
25
  exports.RDF3X_GRAPH_PROJECTION_TABLE,
23
26
  ...Object.values(exports.RDF3X_PAIR_PROJECTION_TABLE_BY_NAME),
24
27
  ...Object.values(exports.RDF3X_TERM_PROJECTION_TABLE_BY_NAME),
28
+ exports.RDF3X_DIRTY_GRAPH_TABLE,
29
+ exports.RDF3X_DIRTY_PAIR_TABLE,
30
+ exports.RDF3X_DIRTY_TERM_TABLE,
25
31
  ];
26
32
  exports.RDF3X_MATERIALIZED_FACT_COPY_TABLES = [
27
33
  'rdf3x_triple_membership',
@@ -37,13 +43,21 @@ exports.RDF3X_DERIVED_INDEXES = [
37
43
  'rdf3x_membership_spo',
38
44
  'rdf3x_membership_source',
39
45
  ];
46
+ exports.RDF3X_DIRTY_TRIGGERS = [
47
+ 'rdf3x_dirty_quads_insert',
48
+ 'rdf3x_dirty_quads_delete',
49
+ 'rdf3x_dirty_quads_update',
50
+ ];
40
51
  function dropRdf3xMaterializedFactCopies(db) {
41
52
  dropRdf3xObjects(db, exports.RDF3X_MATERIALIZED_FACT_COPY_TABLES, exports.RDF3X_DERIVED_INDEXES);
42
53
  }
43
54
  function dropRdf3xDerivedSchemaObjects(db) {
44
- dropRdf3xObjects(db, [...exports.RDF3X_DERIVED_TABLES, ...exports.RDF3X_MATERIALIZED_FACT_COPY_TABLES], exports.RDF3X_DERIVED_INDEXES);
55
+ dropRdf3xObjects(db, [...exports.RDF3X_DERIVED_TABLES, ...exports.RDF3X_MATERIALIZED_FACT_COPY_TABLES], exports.RDF3X_DERIVED_INDEXES, exports.RDF3X_DIRTY_TRIGGERS);
45
56
  }
46
- function dropRdf3xObjects(db, names, indexes) {
57
+ function dropRdf3xObjects(db, names, indexes, triggers = []) {
58
+ if (triggers.length > 0) {
59
+ db.exec(triggers.map((trigger) => `DROP TRIGGER IF EXISTS ${trigger};`).join('\n'));
60
+ }
47
61
  db.exec(indexes.map((index) => `DROP INDEX IF EXISTS ${index};`).join('\n'));
48
62
  if (names.length === 0) {
49
63
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"Rdf3xSchema.js","sourceRoot":"","sources":["../../../src/storage/rdf/Rdf3xSchema.ts"],"names":[],"mappings":";;;AA0CA,0EAEC;AAED,sEAMC;AAlDY,QAAA,4BAA4B,GAAG,cAAc,CAAC;AAE9C,QAAA,mCAAmC,GAAG;IACjD,EAAE,EAAE,eAAe;IACnB,EAAE,EAAE,eAAe;IACnB,EAAE,EAAE,eAAe;IACnB,EAAE,EAAE,eAAe;IACnB,EAAE,EAAE,eAAe;IACnB,EAAE,EAAE,eAAe;CACX,CAAC;AAEE,QAAA,mCAAmC,GAAG;IACjD,CAAC,EAAE,cAAc;IACjB,CAAC,EAAE,cAAc;IACjB,CAAC,EAAE,cAAc;CACT,CAAC;AAEE,QAAA,oBAAoB,GAAG;IAClC,gBAAgB;IAChB,oCAA4B;IAC5B,GAAG,MAAM,CAAC,MAAM,CAAC,2CAAmC,CAAC;IACrD,GAAG,MAAM,CAAC,MAAM,CAAC,2CAAmC,CAAC;CAC7C,CAAC;AAEE,QAAA,mCAAmC,GAAG;IACjD,yBAAyB;IACzB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;CACH,CAAC;AAEE,QAAA,qBAAqB,GAAG;IACnC,uBAAuB;IACvB,sBAAsB;IACtB,yBAAyB;CACjB,CAAC;AAEX,SAAgB,+BAA+B,CAAC,EAAkB;IAChE,gBAAgB,CAAC,EAAE,EAAE,2CAAmC,EAAE,6BAAqB,CAAC,CAAC;AACnF,CAAC;AAED,SAAgB,6BAA6B,CAAC,EAAkB;IAC9D,gBAAgB,CACd,EAAE,EACF,CAAC,GAAG,4BAAoB,EAAE,GAAG,2CAAmC,CAAC,EACjE,6BAAqB,CACtB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,EAAkB,EAClB,KAAwB,EACxB,OAA0B;IAE1B,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,wBAAwB,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAiC;;;qBAGrC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;GACjD,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAEjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,EAAE,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,EAAE,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import type { SqliteDatabase } from '../SqliteRuntime';\n\nexport const RDF3X_GRAPH_PROJECTION_TABLE = 'rdf3x_stat_g';\n\nexport const RDF3X_PAIR_PROJECTION_TABLE_BY_NAME = {\n SP: 'rdf3x_stat_sp',\n SO: 'rdf3x_stat_so',\n PS: 'rdf3x_stat_ps',\n PO: 'rdf3x_stat_po',\n OS: 'rdf3x_stat_os',\n OP: 'rdf3x_stat_op',\n} as const;\n\nexport const RDF3X_TERM_PROJECTION_TABLE_BY_NAME = {\n S: 'rdf3x_stat_s',\n P: 'rdf3x_stat_p',\n O: 'rdf3x_stat_o',\n} as const;\n\nexport const RDF3X_DERIVED_TABLES = [\n 'rdf3x_metadata',\n RDF3X_GRAPH_PROJECTION_TABLE,\n ...Object.values(RDF3X_PAIR_PROJECTION_TABLE_BY_NAME),\n ...Object.values(RDF3X_TERM_PROJECTION_TABLE_BY_NAME),\n] as const;\n\nexport const RDF3X_MATERIALIZED_FACT_COPY_TABLES = [\n 'rdf3x_triple_membership',\n 'rdf3x_spo',\n 'rdf3x_sop',\n 'rdf3x_pso',\n 'rdf3x_pos',\n 'rdf3x_osp',\n 'rdf3x_ops',\n] as const;\n\nexport const RDF3X_DERIVED_INDEXES = [\n 'rdf3x_membership_gspo',\n 'rdf3x_membership_spo',\n 'rdf3x_membership_source',\n] as const;\n\nexport function dropRdf3xMaterializedFactCopies(db: SqliteDatabase): void {\n dropRdf3xObjects(db, RDF3X_MATERIALIZED_FACT_COPY_TABLES, RDF3X_DERIVED_INDEXES);\n}\n\nexport function dropRdf3xDerivedSchemaObjects(db: SqliteDatabase): void {\n dropRdf3xObjects(\n db,\n [...RDF3X_DERIVED_TABLES, ...RDF3X_MATERIALIZED_FACT_COPY_TABLES],\n RDF3X_DERIVED_INDEXES,\n );\n}\n\nfunction dropRdf3xObjects(\n db: SqliteDatabase,\n names: readonly string[],\n indexes: readonly string[],\n): void {\n db.exec(indexes.map((index) => `DROP INDEX IF EXISTS ${index};`).join('\\n'));\n if (names.length === 0) {\n return;\n }\n\n const rows = db.prepare<{ name: string; type: string }>(`\n SELECT name, type\n FROM sqlite_schema\n WHERE name IN (${names.map(() => '?').join(', ')})\n `).all(...names);\n\n for (const row of rows) {\n if (row.type === 'view') {\n db.exec(`DROP VIEW IF EXISTS ${row.name};`);\n } else if (row.type === 'table') {\n db.exec(`DROP TABLE IF EXISTS ${row.name};`);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"Rdf3xSchema.js","sourceRoot":"","sources":["../../../src/storage/rdf/Rdf3xSchema.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SqliteDatabase } from '../SqliteRuntime';\n\nexport const RDF3X_GRAPH_PROJECTION_TABLE = 'rdf3x_stat_g';\nexport const RDF3X_DIRTY_GRAPH_TABLE = 'rdf3x_dirty_graphs';\nexport const RDF3X_DIRTY_PAIR_TABLE = 'rdf3x_dirty_pairs';\nexport const RDF3X_DIRTY_TERM_TABLE = 'rdf3x_dirty_terms';\n\nexport const RDF3X_PAIR_PROJECTION_TABLE_BY_NAME = {\n SP: 'rdf3x_stat_sp',\n SO: 'rdf3x_stat_so',\n PS: 'rdf3x_stat_ps',\n PO: 'rdf3x_stat_po',\n OS: 'rdf3x_stat_os',\n OP: 'rdf3x_stat_op',\n} as const;\n\nexport const RDF3X_TERM_PROJECTION_TABLE_BY_NAME = {\n S: 'rdf3x_stat_s',\n P: 'rdf3x_stat_p',\n O: 'rdf3x_stat_o',\n} as const;\n\nexport const RDF3X_DERIVED_TABLES = [\n 'rdf3x_metadata',\n RDF3X_GRAPH_PROJECTION_TABLE,\n ...Object.values(RDF3X_PAIR_PROJECTION_TABLE_BY_NAME),\n ...Object.values(RDF3X_TERM_PROJECTION_TABLE_BY_NAME),\n RDF3X_DIRTY_GRAPH_TABLE,\n RDF3X_DIRTY_PAIR_TABLE,\n RDF3X_DIRTY_TERM_TABLE,\n] as const;\n\nexport const RDF3X_MATERIALIZED_FACT_COPY_TABLES = [\n 'rdf3x_triple_membership',\n 'rdf3x_spo',\n 'rdf3x_sop',\n 'rdf3x_pso',\n 'rdf3x_pos',\n 'rdf3x_osp',\n 'rdf3x_ops',\n] as const;\n\nexport const RDF3X_DERIVED_INDEXES = [\n 'rdf3x_membership_gspo',\n 'rdf3x_membership_spo',\n 'rdf3x_membership_source',\n] as const;\n\nexport const RDF3X_DIRTY_TRIGGERS = [\n 'rdf3x_dirty_quads_insert',\n 'rdf3x_dirty_quads_delete',\n 'rdf3x_dirty_quads_update',\n] as const;\n\nexport function dropRdf3xMaterializedFactCopies(db: SqliteDatabase): void {\n dropRdf3xObjects(db, RDF3X_MATERIALIZED_FACT_COPY_TABLES, RDF3X_DERIVED_INDEXES);\n}\n\nexport function dropRdf3xDerivedSchemaObjects(db: SqliteDatabase): void {\n dropRdf3xObjects(\n db,\n [...RDF3X_DERIVED_TABLES, ...RDF3X_MATERIALIZED_FACT_COPY_TABLES],\n RDF3X_DERIVED_INDEXES,\n RDF3X_DIRTY_TRIGGERS,\n );\n}\n\nfunction dropRdf3xObjects(\n db: SqliteDatabase,\n names: readonly string[],\n indexes: readonly string[],\n triggers: readonly string[] = [],\n): void {\n if (triggers.length > 0) {\n db.exec(triggers.map((trigger) => `DROP TRIGGER IF EXISTS ${trigger};`).join('\\n'));\n }\n db.exec(indexes.map((index) => `DROP INDEX IF EXISTS ${index};`).join('\\n'));\n if (names.length === 0) {\n return;\n }\n\n const rows = db.prepare<{ name: string; type: string }>(`\n SELECT name, type\n FROM sqlite_schema\n WHERE name IN (${names.map(() => '?').join(', ')})\n `).all(...names);\n\n for (const row of rows) {\n if (row.type === 'view') {\n db.exec(`DROP VIEW IF EXISTS ${row.name};`);\n } else if (row.type === 'table') {\n db.exec(`DROP TABLE IF EXISTS ${row.name};`);\n }\n }\n}\n"]}
@@ -0,0 +1,22 @@
1
+ import type { RdfQuery, RdfQueryCacheScope } from './types';
2
+ export declare const RdfAccessMode: {
3
+ readonly READ: "read";
4
+ readonly APPEND: "append";
5
+ readonly DELETE: "delete";
6
+ readonly WRITE: "write";
7
+ };
8
+ export type RdfAccessMode = typeof RdfAccessMode[keyof typeof RdfAccessMode];
9
+ export interface RdfAccessScope {
10
+ basePath: string;
11
+ mode: RdfAccessMode;
12
+ principal?: string;
13
+ allowedGraphUrls?: string[];
14
+ deniedGraphUrls?: string[];
15
+ deniedGraphPrefixes?: string[];
16
+ version?: string;
17
+ }
18
+ export declare function isRestrictiveRdfAccessScope(scope?: RdfAccessScope): boolean;
19
+ export declare function rdfAccessCacheScope(scope?: RdfAccessScope): RdfQueryCacheScope | undefined;
20
+ export declare function applyRdfAccessScope(query: RdfQuery, scope?: RdfAccessScope): RdfQuery;
21
+ export declare function filterRdfAccessGraphs(graphs: Iterable<string>, scope?: RdfAccessScope): Set<string>;
22
+ export declare function rdfAccessGraphAllowed(graph: string, scope: RdfAccessScope): boolean;
@@ -0,0 +1,345 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RdfAccessMode = void 0;
4
+ exports.isRestrictiveRdfAccessScope = isRestrictiveRdfAccessScope;
5
+ exports.rdfAccessCacheScope = rdfAccessCacheScope;
6
+ exports.applyRdfAccessScope = applyRdfAccessScope;
7
+ exports.filterRdfAccessGraphs = filterRdfAccessGraphs;
8
+ exports.rdfAccessGraphAllowed = rdfAccessGraphAllowed;
9
+ const n3_1 = require("n3");
10
+ const types_1 = require("../quint/types");
11
+ exports.RdfAccessMode = {
12
+ READ: 'read',
13
+ APPEND: 'append',
14
+ DELETE: 'delete',
15
+ WRITE: 'write',
16
+ };
17
+ function isRestrictiveRdfAccessScope(scope) {
18
+ return Boolean(scope
19
+ && ((scope.allowedGraphUrls?.length ?? 0) > 0
20
+ || (scope.deniedGraphUrls?.length ?? 0) > 0
21
+ || (scope.deniedGraphPrefixes?.length ?? 0) > 0));
22
+ }
23
+ function rdfAccessCacheScope(scope) {
24
+ if (!scope) {
25
+ return undefined;
26
+ }
27
+ return {
28
+ mode: scope.mode,
29
+ principal: scope.principal ?? 'anonymous',
30
+ basePath: scope.basePath,
31
+ permissionVersion: scope.version ?? 'unversioned',
32
+ allowedGraphUrls: scope.allowedGraphUrls,
33
+ deniedGraphUrls: scope.deniedGraphUrls,
34
+ deniedGraphPrefixes: scope.deniedGraphPrefixes,
35
+ };
36
+ }
37
+ function applyRdfAccessScope(query, scope) {
38
+ const cacheScope = rdfAccessCacheScope(scope);
39
+ if (!scope) {
40
+ return query;
41
+ }
42
+ const state = {
43
+ impossibleGraph: n3_1.DataFactory.namedNode('urn:xpod:rdf-access-denied'),
44
+ };
45
+ const scoped = applyScopeToQuery(query, scope, state);
46
+ return {
47
+ ...scoped,
48
+ cache: {
49
+ ...scoped.cache,
50
+ scope: mergeRdfQueryCacheScopes(scoped.cache?.scope, cacheScope),
51
+ },
52
+ };
53
+ }
54
+ function mergeRdfQueryCacheScopes(existing, access) {
55
+ if (!existing) {
56
+ return access;
57
+ }
58
+ if (!access) {
59
+ return existing;
60
+ }
61
+ return [existing, access];
62
+ }
63
+ function filterRdfAccessGraphs(graphs, scope) {
64
+ if (!scope) {
65
+ return new Set(graphs);
66
+ }
67
+ const filtered = new Set();
68
+ for (const graph of graphs) {
69
+ if (rdfAccessGraphAllowed(graph, scope)) {
70
+ filtered.add(graph);
71
+ }
72
+ }
73
+ return filtered;
74
+ }
75
+ function rdfAccessGraphAllowed(graph, scope) {
76
+ if (!graph.startsWith(scope.basePath)) {
77
+ return false;
78
+ }
79
+ if (scope.allowedGraphUrls?.length && !scope.allowedGraphUrls.includes(graph)) {
80
+ return false;
81
+ }
82
+ if (scope.deniedGraphUrls?.includes(graph)) {
83
+ return false;
84
+ }
85
+ return !(scope.deniedGraphPrefixes ?? []).some((prefix) => graph.startsWith(prefix));
86
+ }
87
+ function applyScopeToQuery(query, scope, state) {
88
+ const rootFilters = [...(query.filters ?? [])];
89
+ const patterns = (query.patterns ?? []).map((pattern) => scopePattern(pattern, rootFilters, scope, state));
90
+ return {
91
+ ...query,
92
+ patterns,
93
+ filters: rootFilters.length > 0 ? rootFilters : undefined,
94
+ unions: query.unions?.map((group) => scopeUnionGroup(group, scope, state)),
95
+ minus: query.minus?.map((group) => scopeMinusGroup(group, scope, state)),
96
+ exists: query.exists?.map((group) => scopeExistsGroup(group, scope, state)),
97
+ optional: query.optional?.map((group) => scopeOptionalGroup(group, scope, state)),
98
+ textSearch: query.textSearch?.map((pattern) => scopeTextSearch(pattern, scope)),
99
+ vectorSearch: query.vectorSearch?.map((pattern) => scopeVectorSearch(pattern, scope)),
100
+ };
101
+ }
102
+ function scopeTextSearch(pattern, scope) {
103
+ return {
104
+ ...pattern,
105
+ scope: scopeSearchSources(pattern.scope, scope),
106
+ };
107
+ }
108
+ function scopeVectorSearch(pattern, scope) {
109
+ return {
110
+ ...pattern,
111
+ scope: scopeSearchSources(pattern.scope, scope),
112
+ };
113
+ }
114
+ function scopeUnionGroup(group, scope, state) {
115
+ return {
116
+ branches: group.branches.map((branch) => scopeUnionBranch(branch, scope, state)),
117
+ };
118
+ }
119
+ function scopeUnionBranch(branch, scope, state) {
120
+ const filters = [...(branch.filters ?? [])];
121
+ return {
122
+ ...branch,
123
+ patterns: branch.patterns.map((pattern) => scopePattern(pattern, filters, scope, state)),
124
+ filters: filters.length > 0 ? filters : undefined,
125
+ unions: branch.unions?.map((group) => scopeUnionGroup(group, scope, state)),
126
+ optional: branch.optional?.map((group) => scopeOptionalGroup(group, scope, state)),
127
+ };
128
+ }
129
+ function scopeMinusGroup(group, scope, state) {
130
+ const filters = [...(group.filters ?? [])];
131
+ return {
132
+ ...group,
133
+ patterns: group.patterns.map((pattern) => scopePattern(pattern, filters, scope, state)),
134
+ filters: filters.length > 0 ? filters : undefined,
135
+ unions: group.unions?.map((union) => scopeUnionGroup(union, scope, state)),
136
+ };
137
+ }
138
+ function scopeExistsGroup(group, scope, state) {
139
+ const filters = [...(group.filters ?? [])];
140
+ return {
141
+ ...group,
142
+ patterns: group.patterns.map((pattern) => scopePattern(pattern, filters, scope, state)),
143
+ filters: filters.length > 0 ? filters : undefined,
144
+ unions: group.unions?.map((union) => scopeUnionGroup(union, scope, state)),
145
+ };
146
+ }
147
+ function scopeOptionalGroup(group, scope, state) {
148
+ if (Array.isArray(group)) {
149
+ const ignoredFilters = [];
150
+ return group.map((pattern) => scopePattern(pattern, ignoredFilters, scope, state));
151
+ }
152
+ const filters = [...(group.filters ?? [])];
153
+ return {
154
+ ...group,
155
+ patterns: group.patterns.map((pattern) => scopePattern(pattern, filters, scope, state)),
156
+ filters: filters.length > 0 ? filters : undefined,
157
+ unions: group.unions?.map((union) => scopeUnionGroup(union, scope, state)),
158
+ optional: group.optional?.map((optional) => scopeOptionalGroup(optional, scope, state)),
159
+ minus: group.minus?.map((minus) => scopeMinusGroup(minus, scope, state)),
160
+ exists: group.exists?.map((exists) => scopeExistsGroup(exists, scope, state)),
161
+ };
162
+ }
163
+ function scopePattern(pattern, filters, scope, state) {
164
+ const graph = pattern.graph ?? { $startsWith: scope.basePath };
165
+ if (isVariable(graph)) {
166
+ addGraphAccessFilters(filters, graph.variable, scope);
167
+ return pattern.graph ? pattern : { ...pattern, graph };
168
+ }
169
+ if ((0, types_1.isTerm)(graph)) {
170
+ return rdfAccessGraphAllowed(graph.value, scope)
171
+ ? pattern
172
+ : { ...pattern, graph: state.impossibleGraph };
173
+ }
174
+ return {
175
+ ...pattern,
176
+ graph: scopeGraphOperators(graph, scope, state.impossibleGraph),
177
+ };
178
+ }
179
+ function scopeGraphOperators(graph, scope, impossibleGraph) {
180
+ const operators = { ...graph };
181
+ const prefix = intersectSourcePrefix(typeof operators.$startsWith === 'string' ? operators.$startsWith : undefined, scope.basePath);
182
+ if (prefix === false) {
183
+ return impossibleGraph;
184
+ }
185
+ if (prefix) {
186
+ operators.$startsWith = prefix;
187
+ }
188
+ if (scope.allowedGraphUrls?.length) {
189
+ const allowedTerms = scope.allowedGraphUrls
190
+ .filter((url) => graphOperatorsMayMatch(operators, url))
191
+ .map((url) => n3_1.DataFactory.namedNode(url));
192
+ if (allowedTerms.length === 0) {
193
+ return impossibleGraph;
194
+ }
195
+ operators.$in = intersectTermArrays(operators.$in, allowedTerms);
196
+ if (operators.$in.length === 0) {
197
+ return impossibleGraph;
198
+ }
199
+ }
200
+ if (scope.deniedGraphUrls?.length) {
201
+ const deniedTerms = scope.deniedGraphUrls.map((url) => n3_1.DataFactory.namedNode(url));
202
+ operators.$notIn = unionTermArrays(operators.$notIn, deniedTerms);
203
+ }
204
+ return operators;
205
+ }
206
+ function graphOperatorsMayMatch(graph, graphUrl) {
207
+ if (isVariable(graph)) {
208
+ return true;
209
+ }
210
+ if ((0, types_1.isTerm)(graph)) {
211
+ return graph.value === graphUrl;
212
+ }
213
+ const operators = graph;
214
+ if (operators.$startsWith !== undefined && typeof operators.$startsWith === 'string' && !graphUrl.startsWith(operators.$startsWith)) {
215
+ return false;
216
+ }
217
+ if (Array.isArray(operators.$in) && !operators.$in.some((value) => (0, types_1.isTerm)(value) && value.value === graphUrl)) {
218
+ return false;
219
+ }
220
+ if (Array.isArray(operators.$notIn) && operators.$notIn.some((value) => (0, types_1.isTerm)(value) && value.value === graphUrl)) {
221
+ return false;
222
+ }
223
+ return true;
224
+ }
225
+ function addGraphAccessFilters(filters, variable, scope) {
226
+ filters.push({
227
+ variable,
228
+ operator: '$startsWith',
229
+ value: scope.basePath,
230
+ });
231
+ if (scope.allowedGraphUrls?.length) {
232
+ filters.push({
233
+ variable,
234
+ operator: '$in',
235
+ values: scope.allowedGraphUrls.map((url) => n3_1.DataFactory.namedNode(url)),
236
+ });
237
+ }
238
+ if (scope.deniedGraphUrls?.length) {
239
+ filters.push({
240
+ variable,
241
+ operator: '$notIn',
242
+ values: scope.deniedGraphUrls.map((url) => n3_1.DataFactory.namedNode(url)),
243
+ });
244
+ }
245
+ for (const prefix of scope.deniedGraphPrefixes ?? []) {
246
+ filters.push({
247
+ variable,
248
+ operator: '$notStartsWith',
249
+ value: prefix,
250
+ });
251
+ }
252
+ }
253
+ function isVariable(value) {
254
+ return Boolean(value && typeof value === 'object' && 'variable' in value);
255
+ }
256
+ function intersectTermArrays(existing, incoming) {
257
+ if (!Array.isArray(existing)) {
258
+ return incoming;
259
+ }
260
+ const incomingValues = new Set(incoming.map((term) => term.value));
261
+ return existing.filter((value) => (0, types_1.isTerm)(value) && incomingValues.has(value.value));
262
+ }
263
+ function unionTermArrays(existing, incoming) {
264
+ const byValue = new Map();
265
+ if (Array.isArray(existing)) {
266
+ for (const value of existing) {
267
+ if ((0, types_1.isTerm)(value)) {
268
+ byValue.set(value.value, value);
269
+ }
270
+ }
271
+ }
272
+ for (const term of incoming) {
273
+ byValue.set(term.value, term);
274
+ }
275
+ return [...byValue.values()];
276
+ }
277
+ function scopeSearchSources(existing, scope) {
278
+ const prefix = intersectSourcePrefix(existing?.sourcePrefix, scope.basePath);
279
+ const deniedPrefixes = unionStringArrays(existing?.deniedSourcePrefixes, scope.deniedGraphPrefixes);
280
+ const deniedSources = unionStringArrays(existing?.deniedSources, scope.deniedGraphUrls);
281
+ if (prefix === false) {
282
+ return {
283
+ ...existing,
284
+ allowedSources: [],
285
+ deniedSources,
286
+ deniedSourcePrefixes: deniedPrefixes,
287
+ };
288
+ }
289
+ const allowedFromScope = scope.allowedGraphUrls
290
+ ? scope.allowedGraphUrls.filter((source) => sourceMatchesPrefix(source, prefix))
291
+ : undefined;
292
+ const allowedSources = filterStringsByPrefix(intersectStringArrays(existing?.allowedSources, allowedFromScope), prefix);
293
+ return {
294
+ ...existing,
295
+ accessBasePath: scope.basePath,
296
+ ...(prefix ? { sourcePrefix: prefix } : {}),
297
+ ...(allowedSources ? { allowedSources } : {}),
298
+ ...(deniedSources ? { deniedSources } : {}),
299
+ ...(deniedPrefixes ? { deniedSourcePrefixes: deniedPrefixes } : {}),
300
+ };
301
+ }
302
+ function intersectSourcePrefix(left, right) {
303
+ if (!left) {
304
+ return right;
305
+ }
306
+ if (!right) {
307
+ return left;
308
+ }
309
+ if (left.startsWith(right)) {
310
+ return left;
311
+ }
312
+ if (right.startsWith(left)) {
313
+ return right;
314
+ }
315
+ return false;
316
+ }
317
+ function intersectStringArrays(left, right) {
318
+ if (!left) {
319
+ return right ? uniqueStrings(right) : undefined;
320
+ }
321
+ if (!right) {
322
+ return uniqueStrings(left);
323
+ }
324
+ const rightSet = new Set(right);
325
+ return uniqueStrings(left.filter((value) => rightSet.has(value)));
326
+ }
327
+ function unionStringArrays(left, right) {
328
+ if (!left && !right) {
329
+ return undefined;
330
+ }
331
+ return uniqueStrings([...(left ?? []), ...(right ?? [])]);
332
+ }
333
+ function filterStringsByPrefix(values, prefix) {
334
+ if (!values || !prefix) {
335
+ return values;
336
+ }
337
+ return values.filter((value) => value.startsWith(prefix));
338
+ }
339
+ function sourceMatchesPrefix(source, prefix) {
340
+ return !prefix || source.startsWith(prefix);
341
+ }
342
+ function uniqueStrings(values) {
343
+ return [...new Set(values.filter((value) => value.length > 0))].sort();
344
+ }
345
+ //# sourceMappingURL=RdfAccessScope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RdfAccessScope.js","sourceRoot":"","sources":["../../../src/storage/rdf/RdfAccessScope.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataFactory } from 'n3';\nimport type { Term } from '@rdfjs/types';\nimport { isTerm } from '../quint/types';\nimport type {\n RdfQuery,\n RdfQueryFilter,\n RdfQueryPattern,\n RdfQueryTermPattern,\n RdfUnionQueryBranch,\n RdfUnionQueryGroup,\n RdfMinusQueryGroup,\n RdfExistsQueryGroup,\n RdfOptionalQueryGroup,\n RdfQueryVariable,\n RdfQueryCacheScope,\n RdfSearchScope,\n RdfTextSearchPattern,\n RdfVectorSearchPattern,\n} from './types';\n\nexport const RdfAccessMode = {\n READ: 'read',\n APPEND: 'append',\n DELETE: 'delete',\n WRITE: 'write',\n} as const;\n\nexport type RdfAccessMode = typeof RdfAccessMode[keyof typeof RdfAccessMode];\n\nexport interface RdfAccessScope {\n basePath: string;\n mode: RdfAccessMode;\n principal?: string;\n allowedGraphUrls?: string[];\n deniedGraphUrls?: string[];\n deniedGraphPrefixes?: string[];\n version?: string;\n}\n\ninterface ApplyState {\n impossibleGraph: Term;\n}\n\nexport function isRestrictiveRdfAccessScope(scope?: RdfAccessScope): boolean {\n return Boolean(\n scope\n && (\n (scope.allowedGraphUrls?.length ?? 0) > 0\n || (scope.deniedGraphUrls?.length ?? 0) > 0\n || (scope.deniedGraphPrefixes?.length ?? 0) > 0\n ),\n );\n}\n\nexport function rdfAccessCacheScope(scope?: RdfAccessScope): RdfQueryCacheScope | undefined {\n if (!scope) {\n return undefined;\n }\n return {\n mode: scope.mode,\n principal: scope.principal ?? 'anonymous',\n basePath: scope.basePath,\n permissionVersion: scope.version ?? 'unversioned',\n allowedGraphUrls: scope.allowedGraphUrls,\n deniedGraphUrls: scope.deniedGraphUrls,\n deniedGraphPrefixes: scope.deniedGraphPrefixes,\n };\n}\n\nexport function applyRdfAccessScope(query: RdfQuery, scope?: RdfAccessScope): RdfQuery {\n const cacheScope = rdfAccessCacheScope(scope);\n if (!scope) {\n return query;\n }\n\n const state: ApplyState = {\n impossibleGraph: DataFactory.namedNode('urn:xpod:rdf-access-denied') as unknown as Term,\n };\n const scoped = applyScopeToQuery(query, scope, state);\n return {\n ...scoped,\n cache: {\n ...scoped.cache,\n scope: mergeRdfQueryCacheScopes(scoped.cache?.scope, cacheScope),\n },\n };\n}\n\nfunction mergeRdfQueryCacheScopes(\n existing: RdfQueryCacheScope | undefined,\n access: RdfQueryCacheScope | undefined,\n): RdfQueryCacheScope | undefined {\n if (!existing) {\n return access;\n }\n if (!access) {\n return existing;\n }\n return [existing, access];\n}\n\nexport function filterRdfAccessGraphs(graphs: Iterable<string>, scope?: RdfAccessScope): Set<string> {\n if (!scope) {\n return new Set(graphs);\n }\n const filtered = new Set<string>();\n for (const graph of graphs) {\n if (rdfAccessGraphAllowed(graph, scope)) {\n filtered.add(graph);\n }\n }\n return filtered;\n}\n\nexport function rdfAccessGraphAllowed(graph: string, scope: RdfAccessScope): boolean {\n if (!graph.startsWith(scope.basePath)) {\n return false;\n }\n if (scope.allowedGraphUrls?.length && !scope.allowedGraphUrls.includes(graph)) {\n return false;\n }\n if (scope.deniedGraphUrls?.includes(graph)) {\n return false;\n }\n return !(scope.deniedGraphPrefixes ?? []).some((prefix) => graph.startsWith(prefix));\n}\n\nfunction applyScopeToQuery(query: RdfQuery, scope: RdfAccessScope, state: ApplyState): RdfQuery {\n const rootFilters: RdfQueryFilter[] = [...(query.filters ?? [])];\n const patterns = (query.patterns ?? []).map((pattern) => scopePattern(pattern, rootFilters, scope, state));\n return {\n ...query,\n patterns,\n filters: rootFilters.length > 0 ? rootFilters : undefined,\n unions: query.unions?.map((group) => scopeUnionGroup(group, scope, state)),\n minus: query.minus?.map((group) => scopeMinusGroup(group, scope, state)),\n exists: query.exists?.map((group) => scopeExistsGroup(group, scope, state)),\n optional: query.optional?.map((group) => scopeOptionalGroup(group, scope, state)),\n textSearch: query.textSearch?.map((pattern) => scopeTextSearch(pattern, scope)),\n vectorSearch: query.vectorSearch?.map((pattern) => scopeVectorSearch(pattern, scope)),\n };\n}\n\nfunction scopeTextSearch(pattern: RdfTextSearchPattern, scope: RdfAccessScope): RdfTextSearchPattern {\n return {\n ...pattern,\n scope: scopeSearchSources(pattern.scope, scope),\n };\n}\n\nfunction scopeVectorSearch(pattern: RdfVectorSearchPattern, scope: RdfAccessScope): RdfVectorSearchPattern {\n return {\n ...pattern,\n scope: scopeSearchSources(pattern.scope, scope),\n };\n}\n\nfunction scopeUnionGroup(group: RdfUnionQueryGroup, scope: RdfAccessScope, state: ApplyState): RdfUnionQueryGroup {\n return {\n branches: group.branches.map((branch) => scopeUnionBranch(branch, scope, state)),\n };\n}\n\nfunction scopeUnionBranch(branch: RdfUnionQueryBranch, scope: RdfAccessScope, state: ApplyState): RdfUnionQueryBranch {\n const filters: RdfQueryFilter[] = [...(branch.filters ?? [])];\n return {\n ...branch,\n patterns: branch.patterns.map((pattern) => scopePattern(pattern, filters, scope, state)),\n filters: filters.length > 0 ? filters : undefined,\n unions: branch.unions?.map((group) => scopeUnionGroup(group, scope, state)),\n optional: branch.optional?.map((group) => scopeOptionalGroup(group, scope, state)),\n };\n}\n\nfunction scopeMinusGroup(group: RdfMinusQueryGroup, scope: RdfAccessScope, state: ApplyState): RdfMinusQueryGroup {\n const filters: RdfQueryFilter[] = [...(group.filters ?? [])];\n return {\n ...group,\n patterns: group.patterns.map((pattern) => scopePattern(pattern, filters, scope, state)),\n filters: filters.length > 0 ? filters : undefined,\n unions: group.unions?.map((union) => scopeUnionGroup(union, scope, state)),\n };\n}\n\nfunction scopeExistsGroup(group: RdfExistsQueryGroup, scope: RdfAccessScope, state: ApplyState): RdfExistsQueryGroup {\n const filters: RdfQueryFilter[] = [...(group.filters ?? [])];\n return {\n ...group,\n patterns: group.patterns.map((pattern) => scopePattern(pattern, filters, scope, state)),\n filters: filters.length > 0 ? filters : undefined,\n unions: group.unions?.map((union) => scopeUnionGroup(union, scope, state)),\n };\n}\n\nfunction scopeOptionalGroup(\n group: RdfQueryPattern[] | RdfOptionalQueryGroup,\n scope: RdfAccessScope,\n state: ApplyState,\n): RdfQueryPattern[] | RdfOptionalQueryGroup {\n if (Array.isArray(group)) {\n const ignoredFilters: RdfQueryFilter[] = [];\n return group.map((pattern) => scopePattern(pattern, ignoredFilters, scope, state));\n }\n\n const filters: RdfQueryFilter[] = [...(group.filters ?? [])];\n return {\n ...group,\n patterns: group.patterns.map((pattern) => scopePattern(pattern, filters, scope, state)),\n filters: filters.length > 0 ? filters : undefined,\n unions: group.unions?.map((union) => scopeUnionGroup(union, scope, state)),\n optional: group.optional?.map((optional) => scopeOptionalGroup(optional, scope, state)),\n minus: group.minus?.map((minus) => scopeMinusGroup(minus, scope, state)),\n exists: group.exists?.map((exists) => scopeExistsGroup(exists, scope, state)),\n };\n}\n\nfunction scopePattern(\n pattern: RdfQueryPattern,\n filters: RdfQueryFilter[],\n scope: RdfAccessScope,\n state: ApplyState,\n): RdfQueryPattern {\n const graph = pattern.graph ?? { $startsWith: scope.basePath };\n if (isVariable(graph)) {\n addGraphAccessFilters(filters, graph.variable, scope);\n return pattern.graph ? pattern : { ...pattern, graph };\n }\n if (isTerm(graph as any)) {\n return rdfAccessGraphAllowed((graph as Term).value, scope)\n ? pattern\n : { ...pattern, graph: state.impossibleGraph };\n }\n return {\n ...pattern,\n graph: scopeGraphOperators(graph, scope, state.impossibleGraph),\n };\n}\n\nfunction scopeGraphOperators(\n graph: RdfQueryTermPattern,\n scope: RdfAccessScope,\n impossibleGraph: Term,\n): RdfQueryTermPattern {\n const operators = { ...(graph as Record<string, unknown>) };\n const prefix = intersectSourcePrefix(\n typeof operators.$startsWith === 'string' ? operators.$startsWith : undefined,\n scope.basePath,\n );\n if (prefix === false) {\n return impossibleGraph;\n }\n if (prefix) {\n operators.$startsWith = prefix;\n }\n if (scope.allowedGraphUrls?.length) {\n const allowedTerms = scope.allowedGraphUrls\n .filter((url) => graphOperatorsMayMatch(operators as RdfQueryTermPattern, url))\n .map((url) => DataFactory.namedNode(url) as unknown as Term);\n if (allowedTerms.length === 0) {\n return impossibleGraph;\n }\n operators.$in = intersectTermArrays(operators.$in, allowedTerms);\n if ((operators.$in as Term[]).length === 0) {\n return impossibleGraph;\n }\n }\n if (scope.deniedGraphUrls?.length) {\n const deniedTerms = scope.deniedGraphUrls.map((url) => DataFactory.namedNode(url) as unknown as Term);\n operators.$notIn = unionTermArrays(operators.$notIn, deniedTerms);\n }\n return operators as RdfQueryTermPattern;\n}\n\nfunction graphOperatorsMayMatch(graph: RdfQueryTermPattern, graphUrl: string): boolean {\n if (isVariable(graph)) {\n return true;\n }\n if (isTerm(graph as any)) {\n return (graph as Term).value === graphUrl;\n }\n const operators = graph as Record<string, unknown>;\n if (operators.$startsWith !== undefined && typeof operators.$startsWith === 'string' && !graphUrl.startsWith(operators.$startsWith)) {\n return false;\n }\n if (Array.isArray(operators.$in) && !operators.$in.some((value) => isTerm(value as any) && (value as Term).value === graphUrl)) {\n return false;\n }\n if (Array.isArray(operators.$notIn) && operators.$notIn.some((value) => isTerm(value as any) && (value as Term).value === graphUrl)) {\n return false;\n }\n return true;\n}\n\nfunction addGraphAccessFilters(filters: RdfQueryFilter[], variable: string, scope: RdfAccessScope): void {\n filters.push({\n variable,\n operator: '$startsWith',\n value: scope.basePath,\n });\n if (scope.allowedGraphUrls?.length) {\n filters.push({\n variable,\n operator: '$in',\n values: scope.allowedGraphUrls.map((url) => DataFactory.namedNode(url) as unknown as Term),\n });\n }\n if (scope.deniedGraphUrls?.length) {\n filters.push({\n variable,\n operator: '$notIn',\n values: scope.deniedGraphUrls.map((url) => DataFactory.namedNode(url) as unknown as Term),\n });\n }\n for (const prefix of scope.deniedGraphPrefixes ?? []) {\n filters.push({\n variable,\n operator: '$notStartsWith',\n value: prefix,\n });\n }\n}\n\nfunction isVariable(value: RdfQueryTermPattern): value is RdfQueryVariable {\n return Boolean(value && typeof value === 'object' && 'variable' in value);\n}\n\nfunction intersectTermArrays(existing: unknown, incoming: Term[]): Term[] {\n if (!Array.isArray(existing)) {\n return incoming;\n }\n const incomingValues = new Set(incoming.map((term) => term.value));\n return existing.filter((value): value is Term => isTerm(value as any) && incomingValues.has((value as Term).value));\n}\n\nfunction unionTermArrays(existing: unknown, incoming: Term[]): Term[] {\n const byValue = new Map<string, Term>();\n if (Array.isArray(existing)) {\n for (const value of existing) {\n if (isTerm(value as any)) {\n byValue.set((value as Term).value, value as Term);\n }\n }\n }\n for (const term of incoming) {\n byValue.set(term.value, term);\n }\n return [...byValue.values()];\n}\n\nfunction scopeSearchSources(existing: RdfSearchScope | undefined, scope: RdfAccessScope): RdfSearchScope {\n const prefix = intersectSourcePrefix(existing?.sourcePrefix, scope.basePath);\n const deniedPrefixes = unionStringArrays(existing?.deniedSourcePrefixes, scope.deniedGraphPrefixes);\n const deniedSources = unionStringArrays(existing?.deniedSources, scope.deniedGraphUrls);\n\n if (prefix === false) {\n return {\n ...existing,\n allowedSources: [],\n deniedSources,\n deniedSourcePrefixes: deniedPrefixes,\n };\n }\n\n const allowedFromScope = scope.allowedGraphUrls\n ? scope.allowedGraphUrls.filter((source) => sourceMatchesPrefix(source, prefix))\n : undefined;\n const allowedSources = filterStringsByPrefix(\n intersectStringArrays(existing?.allowedSources, allowedFromScope),\n prefix,\n );\n\n return {\n ...existing,\n accessBasePath: scope.basePath,\n ...(prefix ? { sourcePrefix: prefix } : {}),\n ...(allowedSources ? { allowedSources } : {}),\n ...(deniedSources ? { deniedSources } : {}),\n ...(deniedPrefixes ? { deniedSourcePrefixes: deniedPrefixes } : {}),\n };\n}\n\nfunction intersectSourcePrefix(left: string | undefined, right: string | undefined): string | false | undefined {\n if (!left) {\n return right;\n }\n if (!right) {\n return left;\n }\n if (left.startsWith(right)) {\n return left;\n }\n if (right.startsWith(left)) {\n return right;\n }\n return false;\n}\n\nfunction intersectStringArrays(left: string[] | undefined, right: string[] | undefined): string[] | undefined {\n if (!left) {\n return right ? uniqueStrings(right) : undefined;\n }\n if (!right) {\n return uniqueStrings(left);\n }\n const rightSet = new Set(right);\n return uniqueStrings(left.filter((value) => rightSet.has(value)));\n}\n\nfunction unionStringArrays(left: string[] | undefined, right: string[] | undefined): string[] | undefined {\n if (!left && !right) {\n return undefined;\n }\n return uniqueStrings([...(left ?? []), ...(right ?? [])]);\n}\n\nfunction filterStringsByPrefix(values: string[] | undefined, prefix: string | undefined): string[] | undefined {\n if (!values || !prefix) {\n return values;\n }\n return values.filter((value) => value.startsWith(prefix));\n}\n\nfunction sourceMatchesPrefix(source: string, prefix: string | undefined): boolean {\n return !prefix || source.startsWith(prefix);\n}\n\nfunction uniqueStrings(values: string[]): string[] {\n return [...new Set(values.filter((value) => value.length > 0))].sort();\n}\n"]}
@@ -0,0 +1,45 @@
1
+ {
2
+ "@context": [
3
+ "https://linkedsoftwaredependencies.org/bundles/npm/@undefineds.co/xpod/^0.0.0/components/context.jsonld"
4
+ ],
5
+ "@id": "npmd:@undefineds.co/xpod",
6
+ "components": [
7
+ {
8
+ "@id": "undefineds:dist/storage/rdf/RdfAccessScope.jsonld#RdfAccessScope",
9
+ "@type": "AbstractClass",
10
+ "requireElement": "RdfAccessScope",
11
+ "parameters": [],
12
+ "memberFields": [
13
+ {
14
+ "@id": "undefineds:dist/storage/rdf/RdfAccessScope.jsonld#RdfAccessScope__member_basePath",
15
+ "memberFieldName": "basePath"
16
+ },
17
+ {
18
+ "@id": "undefineds:dist/storage/rdf/RdfAccessScope.jsonld#RdfAccessScope__member_mode",
19
+ "memberFieldName": "mode"
20
+ },
21
+ {
22
+ "@id": "undefineds:dist/storage/rdf/RdfAccessScope.jsonld#RdfAccessScope__member_principal",
23
+ "memberFieldName": "principal"
24
+ },
25
+ {
26
+ "@id": "undefineds:dist/storage/rdf/RdfAccessScope.jsonld#RdfAccessScope__member_allowedGraphUrls",
27
+ "memberFieldName": "allowedGraphUrls"
28
+ },
29
+ {
30
+ "@id": "undefineds:dist/storage/rdf/RdfAccessScope.jsonld#RdfAccessScope__member_deniedGraphUrls",
31
+ "memberFieldName": "deniedGraphUrls"
32
+ },
33
+ {
34
+ "@id": "undefineds:dist/storage/rdf/RdfAccessScope.jsonld#RdfAccessScope__member_deniedGraphPrefixes",
35
+ "memberFieldName": "deniedGraphPrefixes"
36
+ },
37
+ {
38
+ "@id": "undefineds:dist/storage/rdf/RdfAccessScope.jsonld#RdfAccessScope__member_version",
39
+ "memberFieldName": "version"
40
+ }
41
+ ],
42
+ "constructorArguments": []
43
+ }
44
+ ]
45
+ }
@@ -0,0 +1,2 @@
1
+ import type { RdfQuery } from './types';
2
+ export declare function describeFusionRankPlan(query: RdfQuery): string[];