@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresRdfTextIndex.js","sourceRoot":"","sources":["../../../src/storage/rdf/PostgresRdfTextIndex.ts"],"names":[],"mappings":"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","sourcesContent":["import { PGlite } from '@electric-sql/pglite';\nimport { getSharedPool, releaseSharedPool } from '../database/PostgresPoolManager';\nimport type {\n RdfSearchCardinalityEstimate,\n RdfTextChunkInput,\n RdfTextChunkRow,\n RdfTextEntityMention,\n RdfTextIndexLike,\n RdfTextIndexStats,\n RdfTextRebuildStatus,\n RdfTextRebuildStatusInput,\n RdfTextSearchOptions,\n RdfTextSearchOrder,\n RdfTextSearchResult,\n RdfTextScoreComponents,\n RdfTextSourceMetadata,\n RdfTextSourceInput,\n RdfTextTermDocumentFrequency,\n} from './types';\nimport { appendPgRdfSearchSourceFilters } from './RdfSearchSourceFilter';\nimport {\n PgPoolRdfSqlExecutor,\n PgliteRdfSqlExecutor,\n type PostgresRdfSqlExecutor,\n} from './PostgresRdfSqlExecutor';\nimport {\n RDF_TEXT_TERM_MAX_INDEX_LENGTH,\n RDF_TEXT_SCHEMA_VERSION,\n applyRdfTextResultWindow,\n chunkRdfTextSource,\n escapeRdfTextLikePattern,\n normalizeRdfText,\n normalizeRdfTextPerSourceLimit,\n normalizeRdfTextRetrievalKind,\n normalizedRdfTextTokenCount,\n parseRdfTextPath,\n rdfTextIndexBudgetSkip,\n rdfTextIndexChunkCap,\n rdfTextOccurrenceCount,\n rdfTextSha256,\n rdfTextTermOccurrences,\n tokenizeNormalizedRdfText,\n} from './RdfTextIndex';\n\nexport type PostgresRdfTextSearchBackend = 'posting' | 'pg-native-fts' | 'auto';\n\nconst PG_NATIVE_FTS_BACKEND_VERSION = 1;\n\nexport interface PostgresRdfTextIndexOptions {\n driver?: 'pglite' | 'pg';\n dataDir?: string;\n connectionString?: string;\n host?: string;\n port?: number;\n database?: string;\n user?: string;\n password?: string;\n pool?: any;\n autoOpen?: boolean;\n maxSourceBytes?: number;\n maxChunksPerSource?: number;\n textSearchBackend?: PostgresRdfTextSearchBackend;\n}\n\ninterface RdfTextSourceRow {\n id: number | string;\n source_key: string | null;\n source: string;\n workspace: string;\n local_path: string | null;\n content_type: string | null;\n source_version: string | null;\n source_hash: string | null;\n updated_at: string;\n}\n\ninterface RdfTextRebuildStatusRow extends RdfTextSourceRow {\n status: RdfTextRebuildStatus['status'];\n reason: string | null;\n message: string | null;\n}\n\ninterface RdfTextTermFrequencyRow {\n term: string;\n source_count: number | string;\n chunk_count: number | string;\n total_occurrences: number | string;\n}\n\ninterface RdfTextEntityRow {\n chunk_id?: number | string;\n entity: string;\n predicate: string | null;\n label: string | null;\n value: string | null;\n datatype: string | null;\n language: string | null;\n policy_role: string | null;\n occurrences: number | string;\n}\n\ninterface PgTextSearchRow extends RdfTextChunkRow {\n score: number | string;\n}\n\ninterface PgTextSearchPredicate {\n sql: string;\n indexChoice: 'text-normalized-scan' | 'text-term-posting';\n}\n\nexport class PostgresRdfTextIndex implements RdfTextIndexLike {\n private readonly options: PostgresRdfTextIndexOptions;\n private executor: PostgresRdfSqlExecutor | null = null;\n private pglite: PGlite | null = null;\n private pgPool: any = null;\n private sharedPoolConfig: Omit<PostgresRdfTextIndexOptions, 'driver' | 'pool' | 'autoOpen' | 'dataDir' | 'textSearchBackend'> | null = null;\n private initializing: Promise<void> | null = null;\n\n public constructor(options: PostgresRdfTextIndexOptions = {}) {\n this.options = {\n ...options,\n driver: options.driver ?? (options.connectionString || options.pool ? 'pg' : 'pglite'),\n textSearchBackend: options.textSearchBackend ?? 'posting',\n };\n if (options.autoOpen) {\n void this.open();\n }\n }\n\n public async open(): Promise<void> {\n if (this.executor) {\n return;\n }\n this.initializing ??= this.openInternal();\n await this.initializing;\n }\n\n public async close(): Promise<void> {\n const executor = this.executor;\n this.executor = null;\n this.initializing = null;\n if (this.sharedPoolConfig) {\n releaseSharedPool(this.sharedPoolConfig);\n this.sharedPoolConfig = null;\n this.pgPool = null;\n return;\n }\n if (executor) {\n await executor.close();\n }\n this.pglite = null;\n this.pgPool = null;\n }\n\n public async clear(): Promise<void> {\n await this.requireExecutor().exec('DELETE FROM rdf_text_rebuild_status; DELETE FROM rdf_text_entities; DELETE FROM rdf_text_terms; DELETE FROM rdf_text_chunks; DELETE FROM rdf_text_sources;');\n }\n\n public async schemaVersion(): Promise<number> {\n const row = await this.requireExecutor()\n .query<{ value: string }>(\"SELECT value FROM rdf_text_metadata WHERE key = 'schema_version'\");\n return Number(row[0]?.value ?? 0) || 0;\n }\n\n public async sourceMetadata(source: string): Promise<RdfTextSourceMetadata | undefined> {\n const rows = await this.requireExecutor()\n .query<RdfTextSourceRow>('SELECT * FROM rdf_text_sources WHERE source = $1', [source]);\n return rows[0] ? rdfTextSourceMetadata(rows[0]) : undefined;\n }\n\n public async recordRebuildStatus(input: RdfTextRebuildStatusInput): Promise<void> {\n await this.requireExecutor().exec(`\n INSERT INTO rdf_text_rebuild_status (\n source,\n workspace,\n local_path,\n content_type,\n source_version,\n source_hash,\n status,\n reason,\n message,\n updated_at\n )\n VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, now())\n ON CONFLICT (source)\n DO UPDATE SET\n workspace = EXCLUDED.workspace,\n local_path = EXCLUDED.local_path,\n content_type = EXCLUDED.content_type,\n source_version = EXCLUDED.source_version,\n source_hash = EXCLUDED.source_hash,\n status = EXCLUDED.status,\n reason = EXCLUDED.reason,\n message = EXCLUDED.message,\n updated_at = EXCLUDED.updated_at\n `, [\n input.source,\n input.workspace,\n input.localPath ?? null,\n input.contentType ?? null,\n input.sourceVersion ?? null,\n input.sourceHash ?? null,\n input.status,\n input.reason ?? null,\n input.message ?? null,\n ]);\n }\n\n public async rebuildStatus(source: string): Promise<RdfTextRebuildStatus | undefined> {\n const rows = await this.requireExecutor()\n .query<RdfTextRebuildStatusRow>('SELECT * FROM rdf_text_rebuild_status WHERE source = $1', [source]);\n return rows[0] ? rdfTextRebuildStatus(rows[0]) : undefined;\n }\n\n public async indexText(source: RdfTextSourceInput, text: string, chunks?: RdfTextChunkInput[]): Promise<void> {\n const executor = this.requireExecutor();\n const sourceHash = source.sourceHash ?? rdfTextSha256(text);\n const budgetSkip = rdfTextIndexBudgetSkip(this.options.maxSourceBytes, text);\n if (budgetSkip) {\n await this.deleteSource(source.source);\n await this.recordRebuildStatus({\n ...source,\n sourceHash,\n status: 'skipped',\n reason: budgetSkip.reason,\n message: budgetSkip.message,\n });\n return;\n }\n const chunkCap = rdfTextIndexChunkCap(this.options.maxChunksPerSource, chunks ?? chunkRdfTextSource(source, text));\n const indexedChunks = chunkCap.chunks;\n await executor.transaction(async (tx) => {\n const sourceId = await this.upsertSource(tx, {\n ...source,\n sourceHash,\n });\n await tx.exec('DELETE FROM rdf_text_entities WHERE source_id = $1', [sourceId]);\n await tx.exec('DELETE FROM rdf_text_terms WHERE source_id = $1', [sourceId]);\n await tx.exec('DELETE FROM rdf_text_chunks WHERE source_id = $1', [sourceId]);\n for (const chunk of indexedChunks) {\n const normalizedText = normalizeRdfText(chunk.content);\n const chunkRows = await tx.query<{ id: number | string }>(`\n INSERT INTO rdf_text_chunks (\n source_id,\n chunk_key,\n retrieval_kind,\n ordinal,\n level,\n heading,\n path,\n content,\n start_offset,\n end_offset,\n normalized_text,\n token_count,\n updated_at\n )\n VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, now())\n RETURNING id\n `, [\n sourceId,\n chunk.chunkKey,\n chunk.retrievalKind ?? 'file-chunk',\n chunk.ordinal,\n chunk.level,\n chunk.heading || null,\n JSON.stringify(chunk.path ?? []),\n chunk.content,\n chunk.startOffset,\n chunk.endOffset,\n normalizedText,\n normalizedRdfTextTokenCount(normalizedText),\n ]);\n const chunkId = Number(chunkRows[0]?.id);\n if (!Number.isFinite(chunkId)) {\n throw new Error(`Failed to insert RDF text chunk for source: ${source.source}`);\n }\n await insertTermOccurrences(tx, sourceId, chunkId, normalizedText);\n await insertEntityMentions(tx, sourceId, chunkId, chunk.entities);\n if (this.nativeFtsEnabled()) {\n await upsertNativeFtsChunk(tx, chunkId, chunk);\n }\n }\n });\n if (chunkCap.capped) {\n await this.recordRebuildStatus({\n ...source,\n sourceHash,\n status: 'capped',\n reason: chunkCap.capped.reason,\n message: chunkCap.capped.message,\n });\n }\n }\n\n public async moveSource(oldSource: string, next: RdfTextSourceInput): Promise<number> {\n const executor = this.requireExecutor();\n return await executor.transaction(async (tx) => {\n const oldRows = await tx.query<RdfTextSourceRow>('SELECT * FROM rdf_text_sources WHERE source = $1', [oldSource]);\n const oldRow = oldRows[0];\n if (!oldRow) {\n return 0;\n }\n const oldId = Number(oldRow.id);\n const countRows = await tx.query<{ count: number | string }>(\n 'SELECT COUNT(*) AS count FROM rdf_text_chunks WHERE source_id = $1',\n [oldId],\n );\n const targetRows = await tx.query<RdfTextSourceRow>('SELECT * FROM rdf_text_sources WHERE source = $1', [next.source]);\n const targetRow = targetRows[0];\n if (targetRow && Number(targetRow.id) !== oldId) {\n const targetId = Number(targetRow.id);\n await tx.exec('DELETE FROM rdf_text_entities WHERE source_id = $1', [targetId]);\n await tx.exec('DELETE FROM rdf_text_terms WHERE source_id = $1', [targetId]);\n await tx.exec('DELETE FROM rdf_text_chunks WHERE source_id = $1', [targetId]);\n await tx.exec('DELETE FROM rdf_text_sources WHERE id = $1', [targetId]);\n }\n\n await tx.exec(`\n UPDATE rdf_text_sources\n SET\n source_key = $1,\n source = $2,\n workspace = $3,\n local_path = $4,\n content_type = $5,\n source_version = $6,\n source_hash = $7,\n updated_at = now()\n WHERE id = $8\n `, [\n next.sourceKey ?? oldRow.source_key ?? oldRow.source,\n next.source,\n next.workspace,\n next.localPath ?? null,\n next.contentType ?? null,\n next.sourceVersion ?? null,\n next.sourceHash ?? null,\n oldId,\n ]);\n await tx.exec(`\n UPDATE rdf_text_rebuild_status\n SET\n source = $1,\n workspace = $2,\n local_path = $3,\n content_type = $4,\n source_version = $5,\n source_hash = $6,\n updated_at = now()\n WHERE source = $7\n `, [\n next.source,\n next.workspace,\n next.localPath ?? null,\n next.contentType ?? null,\n next.sourceVersion ?? null,\n next.sourceHash ?? null,\n oldSource,\n ]);\n return Math.max(Number(countRows[0]?.count ?? 0), 1);\n });\n }\n\n public async deleteSource(source: string): Promise<number> {\n const executor = this.requireExecutor();\n const rows = await executor.query<{ id: number | string }>('SELECT id FROM rdf_text_sources WHERE source = $1', [source]);\n const id = Number(rows[0]?.id);\n if (!Number.isFinite(id)) {\n return 0;\n }\n\n return await executor.transaction(async (tx) => {\n await tx.exec('DELETE FROM rdf_text_entities WHERE source_id = $1', [id]);\n await tx.exec('DELETE FROM rdf_text_terms WHERE source_id = $1', [id]);\n const deletedRows = await tx.query<{ count: number | string }>('SELECT COUNT(*) AS count FROM rdf_text_chunks WHERE source_id = $1', [id]);\n await tx.exec('DELETE FROM rdf_text_chunks WHERE source_id = $1', [id]);\n await tx.exec('DELETE FROM rdf_text_sources WHERE id = $1', [id]);\n return Number(deletedRows[0]?.count ?? 0);\n });\n }\n\n public async search(options: RdfTextSearchOptions): Promise<RdfTextSearchResult[]> {\n const query = normalizeRdfText(options.query);\n const entityFilter = normalizeEntityFilter(options.entities);\n if (!query && entityFilter.length === 0) {\n return [];\n }\n if (this.canUseNativeFts(query)) {\n return await this.searchNativeFts(options, query, entityFilter);\n }\n\n const params: unknown[] = [];\n const predicate = query ? buildTextSearchPredicate(query, params) : undefined;\n const conditions = predicate ? [predicate.sql] : ['1 = 1'];\n appendEntitySearchFilter(entityFilter, conditions, params);\n if (options.workspace) {\n conditions.push(`source.workspace = ${addParam(params, options.workspace)}`);\n }\n appendPgRdfSearchSourceFilters(options, conditions, params);\n const scoreExpression = pgTextSearchScoreExpression(query, params);\n const orderBy = pgTextSearchOrderBy(options.orderBy);\n const perSourceLimit = normalizeRdfTextPerSourceLimit(options.perSourceLimit);\n const perSourceCondition = perSourceLimit === undefined\n ? ''\n : `WHERE source_rank <= ${addParam(params, perSourceLimit)}`;\n const window = pgTextSearchWindow(options, params);\n const sql = perSourceLimit === undefined\n ? `\n SELECT\n chunk.id,\n chunk.source_id,\n source.source_key,\n source.source,\n source.workspace,\n source.local_path,\n source.content_type,\n source.source_version,\n source.source_hash,\n chunk.chunk_key,\n chunk.retrieval_kind,\n chunk.ordinal,\n chunk.level,\n chunk.heading,\n chunk.path,\n chunk.content,\n chunk.start_offset,\n chunk.end_offset,\n chunk.normalized_text,\n chunk.token_count,\n chunk.updated_at,\n ${scoreExpression} AS score\n FROM rdf_text_chunks chunk\n JOIN rdf_text_sources source ON source.id = chunk.source_id\n WHERE ${conditions.join(' AND ')}\n ORDER BY ${orderBy}, chunk.source_id ASC, chunk.ordinal ASC\n ${window}\n `\n : `\n WITH matched AS (\n SELECT\n chunk.id,\n chunk.source_id,\n source.source_key,\n source.source,\n source.workspace,\n source.local_path,\n source.content_type,\n source.source_version,\n source.source_hash,\n chunk.chunk_key,\n chunk.retrieval_kind,\n chunk.ordinal,\n chunk.level,\n chunk.heading,\n chunk.path,\n chunk.content,\n chunk.start_offset,\n chunk.end_offset,\n chunk.normalized_text,\n chunk.token_count,\n chunk.updated_at,\n ${scoreExpression} AS score\n FROM rdf_text_chunks chunk\n JOIN rdf_text_sources source ON source.id = chunk.source_id\n WHERE ${conditions.join(' AND ')}\n ),\n ranked AS (\n SELECT\n matched.*,\n ROW_NUMBER() OVER (\n PARTITION BY source\n ORDER BY ${pgTextSearchResultOrderBy(options.orderBy)}, source_id ASC, ordinal ASC\n ) AS source_rank\n FROM matched\n )\n SELECT\n id,\n source_id,\n source_key,\n source,\n workspace,\n local_path,\n content_type,\n source_version,\n source_hash,\n chunk_key,\n retrieval_kind,\n ordinal,\n level,\n heading,\n path,\n content,\n start_offset,\n end_offset,\n normalized_text,\n token_count,\n updated_at,\n score\n FROM ranked\n ${perSourceCondition}\n ORDER BY ${pgTextSearchResultOrderBy(options.orderBy)}, source_id ASC, ordinal ASC\n ${window}\n `;\n\n const rows = await this.requireExecutor().query<PgTextSearchRow>(sql, params);\n\n const normalizedRows = rows.map((row) => ({\n row: normalizeTextChunkRow(row),\n score: Number(row.score),\n }));\n const entities = await this.entitiesForChunks(normalizedRows.map((result) => result.row.id));\n return normalizedRows.map((result) => toSearchResult(\n result.row,\n query,\n result.score,\n entities.get(result.row.id) ?? [],\n ));\n }\n\n public async estimateSearchCardinality(options: RdfTextSearchOptions): Promise<RdfSearchCardinalityEstimate> {\n const query = normalizeRdfText(options.query);\n const entityFilter = normalizeEntityFilter(options.entities);\n if (!query && entityFilter.length === 0) {\n return {\n rows: 0,\n source: 'text-normalized-scan',\n indexChoice: 'text-normalized-scan',\n };\n }\n if (this.canUseNativeFts(query)) {\n return await this.estimateNativeFtsSearchCardinality(options, query, entityFilter);\n }\n\n const params: unknown[] = [];\n const predicate = query ? buildTextSearchPredicate(query, params) : undefined;\n const conditions = predicate ? [predicate.sql] : ['1 = 1'];\n appendEntitySearchFilter(entityFilter, conditions, params);\n if (options.workspace) {\n conditions.push(`source.workspace = ${addParam(params, options.workspace)}`);\n }\n appendPgRdfSearchSourceFilters(options, conditions, params);\n\n const perSourceLimit = normalizeRdfTextPerSourceLimit(options.perSourceLimit);\n const rows = perSourceLimit === undefined\n ? await this.requireExecutor().query<{ count: number | string }>(`\n SELECT COUNT(*) AS count\n FROM rdf_text_chunks chunk\n JOIN rdf_text_sources source ON source.id = chunk.source_id\n WHERE ${conditions.join(' AND ')}\n `, params)\n : await this.requireExecutor().query<{ count: number | string }>(`\n SELECT COALESCE(SUM(CASE WHEN source_count > ${addParam(params, perSourceLimit)} THEN ${addParam(params, perSourceLimit)} ELSE source_count END), 0) AS count\n FROM (\n SELECT chunk.source_id, COUNT(*) AS source_count\n FROM rdf_text_chunks chunk\n JOIN rdf_text_sources source ON source.id = chunk.source_id\n WHERE ${conditions.join(' AND ')}\n GROUP BY chunk.source_id\n ) capped\n `, params);\n\n return {\n rows: applyRdfTextResultWindow(Number(rows[0]?.count ?? 0), options.offset, options.limit),\n source: predicate?.indexChoice ?? 'text-term-posting',\n indexChoice: predicate?.indexChoice ?? 'text-entity-posting',\n };\n }\n\n private async searchNativeFts(\n options: RdfTextSearchOptions,\n query: string,\n entityFilter: string[],\n ): Promise<RdfTextSearchResult[]> {\n const params: unknown[] = [];\n const tsQuery = `websearch_to_tsquery('simple', ${addParam(params, query)})`;\n const conditions = [`fts.fts_vector @@ ${tsQuery}`];\n appendEntitySearchFilter(entityFilter, conditions, params);\n if (options.workspace) {\n conditions.push(`source.workspace = ${addParam(params, options.workspace)}`);\n }\n appendPgRdfSearchSourceFilters(options, conditions, params);\n const scoreExpression = `ts_rank_cd(fts.fts_vector, ${tsQuery})`;\n const orderBy = pgTextSearchOrderBy(options.orderBy);\n const perSourceLimit = normalizeRdfTextPerSourceLimit(options.perSourceLimit);\n const perSourceCondition = perSourceLimit === undefined\n ? ''\n : `WHERE source_rank <= ${addParam(params, perSourceLimit)}`;\n const window = pgTextSearchWindow(options, params);\n const matchedSelect = `\n SELECT\n chunk.id,\n chunk.source_id,\n source.source_key,\n source.source,\n source.workspace,\n source.local_path,\n source.content_type,\n source.source_version,\n source.source_hash,\n chunk.chunk_key,\n chunk.retrieval_kind,\n chunk.ordinal,\n chunk.level,\n chunk.heading,\n chunk.path,\n chunk.content,\n chunk.start_offset,\n chunk.end_offset,\n chunk.normalized_text,\n chunk.token_count,\n chunk.updated_at,\n ${scoreExpression} AS score\n FROM rdf_text_fts_pg fts\n JOIN rdf_text_chunks chunk ON chunk.id = fts.chunk_id\n JOIN rdf_text_sources source ON source.id = chunk.source_id\n WHERE ${conditions.join(' AND ')}\n `;\n const sql = perSourceLimit === undefined\n ? `\n ${matchedSelect}\n ORDER BY ${orderBy}, chunk.source_id ASC, chunk.ordinal ASC\n ${window}\n `\n : `\n WITH matched AS (\n ${matchedSelect}\n ),\n ranked AS (\n SELECT\n matched.*,\n ROW_NUMBER() OVER (\n PARTITION BY source\n ORDER BY ${pgTextSearchResultOrderBy(options.orderBy)}, source_id ASC, ordinal ASC\n ) AS source_rank\n FROM matched\n )\n SELECT\n id,\n source_id,\n source_key,\n source,\n workspace,\n local_path,\n content_type,\n source_version,\n source_hash,\n chunk_key,\n retrieval_kind,\n ordinal,\n level,\n heading,\n path,\n content,\n start_offset,\n end_offset,\n normalized_text,\n token_count,\n updated_at,\n score\n FROM ranked\n ${perSourceCondition}\n ORDER BY ${pgTextSearchResultOrderBy(options.orderBy)}, source_id ASC, ordinal ASC\n ${window}\n `;\n\n const rows = await this.requireExecutor().query<PgTextSearchRow>(sql, params);\n const normalizedRows = rows.map((row) => ({\n row: normalizeTextChunkRow(row),\n score: Number(row.score),\n }));\n const entities = await this.entitiesForChunks(normalizedRows.map((result) => result.row.id));\n return normalizedRows.map((result) => toSearchResult(\n result.row,\n query,\n result.score,\n entities.get(result.row.id) ?? [],\n 'pg-ts-rank-cd',\n ));\n }\n\n private async estimateNativeFtsSearchCardinality(\n options: RdfTextSearchOptions,\n query: string,\n entityFilter: string[],\n ): Promise<RdfSearchCardinalityEstimate> {\n const params: unknown[] = [];\n const tsQuery = `websearch_to_tsquery('simple', ${addParam(params, query)})`;\n const conditions = [`fts.fts_vector @@ ${tsQuery}`];\n appendEntitySearchFilter(entityFilter, conditions, params);\n if (options.workspace) {\n conditions.push(`source.workspace = ${addParam(params, options.workspace)}`);\n }\n appendPgRdfSearchSourceFilters(options, conditions, params);\n\n const perSourceLimit = normalizeRdfTextPerSourceLimit(options.perSourceLimit);\n const rows = perSourceLimit === undefined\n ? await this.requireExecutor().query<{ count: number | string }>(`\n SELECT COUNT(*) AS count\n FROM rdf_text_fts_pg fts\n JOIN rdf_text_chunks chunk ON chunk.id = fts.chunk_id\n JOIN rdf_text_sources source ON source.id = chunk.source_id\n WHERE ${conditions.join(' AND ')}\n `, params)\n : await this.requireExecutor().query<{ count: number | string }>(`\n SELECT COALESCE(SUM(CASE WHEN source_count > ${addParam(params, perSourceLimit)} THEN ${addParam(params, perSourceLimit)} ELSE source_count END), 0) AS count\n FROM (\n SELECT chunk.source_id, COUNT(*) AS source_count\n FROM rdf_text_fts_pg fts\n JOIN rdf_text_chunks chunk ON chunk.id = fts.chunk_id\n JOIN rdf_text_sources source ON source.id = chunk.source_id\n WHERE ${conditions.join(' AND ')}\n GROUP BY chunk.source_id\n ) capped\n `, params);\n\n return {\n rows: applyRdfTextResultWindow(Number(rows[0]?.count ?? 0), options.offset, options.limit),\n source: 'pg-native-fts',\n indexChoice: 'pg-native-fts',\n };\n }\n\n public async stats(): Promise<RdfTextIndexStats> {\n const [sourceRows, chunkRows, entityRows] = await Promise.all([\n this.requireExecutor().query<{ count: number | string }>('SELECT COUNT(*) AS count FROM rdf_text_sources'),\n this.requireExecutor().query<{ count: number | string }>('SELECT COUNT(*) AS count FROM rdf_text_chunks'),\n this.requireExecutor().query<{ count: number | string }>('SELECT COUNT(*) AS count FROM rdf_text_entities'),\n ]);\n return {\n sourceCount: Number(sourceRows[0]?.count ?? 0),\n chunkCount: Number(chunkRows[0]?.count ?? 0),\n entityMentionCount: Number(entityRows[0]?.count ?? 0),\n databaseBytes: await this.estimateDatabaseBytes(),\n termDocumentFrequency: await this.termDocumentFrequency(),\n };\n }\n\n public async termDocumentFrequency(limit = 100): Promise<RdfTextTermDocumentFrequency[]> {\n const rows = await this.requireExecutor().query<RdfTextTermFrequencyRow>(`\n SELECT\n term,\n COUNT(DISTINCT source_id) AS source_count,\n COUNT(*) AS chunk_count,\n COALESCE(SUM(occurrences), 0) AS total_occurrences\n FROM rdf_text_terms\n GROUP BY term\n ORDER BY source_count DESC, chunk_count DESC, total_occurrences DESC, term ASC\n LIMIT $1\n `, [Math.max(0, limit)]);\n\n return rows.map((row) => ({\n term: row.term,\n sourceCount: Number(row.source_count),\n chunkCount: Number(row.chunk_count),\n totalOccurrences: Number(row.total_occurrences),\n }));\n }\n\n private async openInternal(): Promise<void> {\n if (this.options.driver === 'pglite') {\n this.pglite = new PGlite(this.options.dataDir);\n this.executor = new PgliteRdfSqlExecutor(this.pglite);\n } else if (this.options.pool) {\n this.pgPool = this.options.pool;\n this.executor = new PgPoolRdfSqlExecutor(this.pgPool);\n } else {\n this.sharedPoolConfig = {\n connectionString: this.options.connectionString,\n host: this.options.host,\n port: this.options.port,\n database: this.options.database,\n user: this.options.user,\n password: this.options.password,\n };\n this.pgPool = getSharedPool(this.sharedPoolConfig);\n this.executor = new PgPoolRdfSqlExecutor(this.pgPool);\n }\n await this.initializeSchema();\n }\n\n private async initializeSchema(): Promise<void> {\n await this.requireExecutor().exec(`\n CREATE TABLE IF NOT EXISTS rdf_text_metadata (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS rdf_text_sources (\n id BIGSERIAL PRIMARY KEY,\n source_key TEXT,\n source TEXT NOT NULL UNIQUE,\n workspace TEXT NOT NULL,\n local_path TEXT,\n content_type TEXT,\n source_version TEXT,\n source_hash TEXT,\n updated_at TIMESTAMPTZ NOT NULL DEFAULT now()\n );\n\n CREATE TABLE IF NOT EXISTS rdf_text_rebuild_status (\n source TEXT PRIMARY KEY,\n workspace TEXT NOT NULL,\n local_path TEXT,\n content_type TEXT,\n source_version TEXT,\n source_hash TEXT,\n status TEXT NOT NULL,\n reason TEXT,\n message TEXT,\n updated_at TIMESTAMPTZ NOT NULL DEFAULT now()\n );\n\n CREATE TABLE IF NOT EXISTS rdf_text_chunks (\n id BIGSERIAL PRIMARY KEY,\n source_id BIGINT NOT NULL REFERENCES rdf_text_sources(id) ON DELETE CASCADE,\n chunk_key TEXT NOT NULL,\n retrieval_kind TEXT NOT NULL DEFAULT 'file-chunk',\n ordinal INTEGER NOT NULL,\n level INTEGER NOT NULL,\n heading TEXT,\n path TEXT,\n content TEXT NOT NULL,\n start_offset INTEGER NOT NULL,\n end_offset INTEGER NOT NULL,\n normalized_text TEXT NOT NULL,\n token_count INTEGER NOT NULL,\n updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),\n UNIQUE (source_id, chunk_key)\n );\n\n CREATE TABLE IF NOT EXISTS rdf_text_terms (\n id BIGSERIAL PRIMARY KEY,\n term TEXT NOT NULL CHECK (length(term) <= ${RDF_TEXT_TERM_MAX_INDEX_LENGTH}),\n source_id BIGINT NOT NULL REFERENCES rdf_text_sources(id) ON DELETE CASCADE,\n chunk_id BIGINT NOT NULL REFERENCES rdf_text_chunks(id) ON DELETE CASCADE,\n occurrences INTEGER NOT NULL,\n updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),\n UNIQUE (term, chunk_id)\n );\n\n CREATE TABLE IF NOT EXISTS rdf_text_entities (\n id BIGSERIAL PRIMARY KEY,\n entity TEXT NOT NULL,\n source_id BIGINT NOT NULL REFERENCES rdf_text_sources(id) ON DELETE CASCADE,\n chunk_id BIGINT NOT NULL REFERENCES rdf_text_chunks(id) ON DELETE CASCADE,\n predicate TEXT,\n label TEXT,\n value TEXT,\n datatype TEXT,\n language TEXT,\n policy_role TEXT,\n occurrences INTEGER NOT NULL DEFAULT 1,\n updated_at TIMESTAMPTZ NOT NULL DEFAULT now()\n );\n\n ALTER TABLE rdf_text_sources ADD COLUMN IF NOT EXISTS source_key TEXT;\n UPDATE rdf_text_sources SET source_key = source WHERE source_key IS NULL;\n ALTER TABLE rdf_text_chunks ADD COLUMN IF NOT EXISTS retrieval_kind TEXT NOT NULL DEFAULT 'file-chunk';\n ALTER TABLE rdf_text_entities ADD COLUMN IF NOT EXISTS value TEXT;\n ALTER TABLE rdf_text_entities ADD COLUMN IF NOT EXISTS datatype TEXT;\n ALTER TABLE rdf_text_entities ADD COLUMN IF NOT EXISTS language TEXT;\n ALTER TABLE rdf_text_entities ADD COLUMN IF NOT EXISTS policy_role TEXT;\n\n CREATE INDEX IF NOT EXISTS rdf_text_sources_workspace ON rdf_text_sources(workspace);\n CREATE INDEX IF NOT EXISTS rdf_text_sources_source ON rdf_text_sources(source);\n CREATE INDEX IF NOT EXISTS rdf_text_sources_local_path ON rdf_text_sources(local_path);\n CREATE INDEX IF NOT EXISTS rdf_text_sources_workspace_local_path ON rdf_text_sources(workspace, local_path);\n CREATE INDEX IF NOT EXISTS rdf_text_chunks_source ON rdf_text_chunks(source_id, ordinal);\n DELETE FROM rdf_text_terms WHERE length(term) > ${RDF_TEXT_TERM_MAX_INDEX_LENGTH};\n CREATE INDEX IF NOT EXISTS rdf_text_terms_term ON rdf_text_terms(term);\n CREATE INDEX IF NOT EXISTS rdf_text_terms_source_term ON rdf_text_terms(source_id, term);\n CREATE INDEX IF NOT EXISTS rdf_text_terms_chunk ON rdf_text_terms(chunk_id);\n CREATE INDEX IF NOT EXISTS rdf_text_entities_entity ON rdf_text_entities(entity);\n CREATE INDEX IF NOT EXISTS rdf_text_entities_source_entity ON rdf_text_entities(source_id, entity);\n CREATE INDEX IF NOT EXISTS rdf_text_entities_chunk ON rdf_text_entities(chunk_id);\n\n INSERT INTO rdf_text_metadata (key, value)\n VALUES ('schema_version', '${RDF_TEXT_SCHEMA_VERSION}')\n ON CONFLICT (key) DO UPDATE SET value = EXCLUDED.value;\n `);\n await this.backfillTermPostings();\n if (this.nativeFtsEnabled()) {\n await this.initializeNativeFtsSchema();\n await this.backfillNativeFtsRows();\n }\n }\n\n private async initializeNativeFtsSchema(): Promise<void> {\n await this.requireExecutor().exec(`\n CREATE TABLE IF NOT EXISTS rdf_text_fts_pg (\n chunk_id BIGINT PRIMARY KEY REFERENCES rdf_text_chunks(id) ON DELETE CASCADE,\n backend_version INTEGER NOT NULL,\n config REGCONFIG NOT NULL,\n projection_hash TEXT NOT NULL,\n fts_vector TSVECTOR NOT NULL,\n updated_at TIMESTAMPTZ NOT NULL DEFAULT now()\n );\n\n CREATE INDEX IF NOT EXISTS rdf_text_fts_pg_vector_gin\n ON rdf_text_fts_pg USING GIN (fts_vector);\n\n CREATE INDEX IF NOT EXISTS rdf_text_fts_pg_config\n ON rdf_text_fts_pg (backend_version, config);\n `);\n }\n\n private async backfillTermPostings(): Promise<void> {\n const rows = await this.requireExecutor().query<{\n id: number | string;\n source_id: number | string;\n normalized_text: string;\n }>(`\n SELECT chunk.id, chunk.source_id, chunk.normalized_text\n FROM rdf_text_chunks chunk\n LEFT JOIN rdf_text_terms term ON term.chunk_id = chunk.id\n WHERE term.chunk_id IS NULL AND chunk.normalized_text <> ''\n `);\n if (rows.length === 0) {\n return;\n }\n\n await this.requireExecutor().transaction(async (tx) => {\n for (const row of rows) {\n await insertTermOccurrences(tx, Number(row.source_id), Number(row.id), row.normalized_text);\n }\n });\n }\n\n private async backfillNativeFtsRows(): Promise<void> {\n const rows = await this.requireExecutor().query<{\n id: number | string;\n heading: string | null;\n path: string | null;\n content: string;\n }>(`\n SELECT chunk.id, chunk.heading, chunk.path, chunk.content\n FROM rdf_text_chunks chunk\n LEFT JOIN rdf_text_fts_pg fts ON fts.chunk_id = chunk.id\n WHERE fts.chunk_id IS NULL OR fts.backend_version <> $1\n `, [PG_NATIVE_FTS_BACKEND_VERSION]);\n if (rows.length === 0) {\n return;\n }\n\n await this.requireExecutor().transaction(async (tx) => {\n for (const row of rows) {\n await upsertNativeFtsProjection(tx, Number(row.id), {\n heading: row.heading ?? undefined,\n path: parseRdfTextPath(row.path),\n content: row.content,\n });\n }\n });\n }\n\n private nativeFtsEnabled(): boolean {\n return this.options.textSearchBackend === 'pg-native-fts' || this.options.textSearchBackend === 'auto';\n }\n\n private canUseNativeFts(query: string): boolean {\n return this.nativeFtsEnabled() && Boolean(query) && !containsNoSpaceCjk(query);\n }\n\n private async upsertSource(tx: PostgresRdfSqlExecutor, source: RdfTextSourceInput): Promise<number> {\n const rows = await tx.query<RdfTextSourceRow>(`\n INSERT INTO rdf_text_sources (\n source_key,\n source,\n workspace,\n local_path,\n content_type,\n source_version,\n source_hash,\n updated_at\n )\n VALUES ($1, $2, $3, $4, $5, $6, $7, now())\n ON CONFLICT (source)\n DO UPDATE SET\n source_key = EXCLUDED.source_key,\n workspace = EXCLUDED.workspace,\n local_path = EXCLUDED.local_path,\n content_type = EXCLUDED.content_type,\n source_version = EXCLUDED.source_version,\n source_hash = EXCLUDED.source_hash,\n updated_at = EXCLUDED.updated_at\n RETURNING id\n `, [\n source.sourceKey ?? source.source,\n source.source,\n source.workspace,\n source.localPath ?? null,\n source.contentType ?? null,\n source.sourceVersion ?? null,\n source.sourceHash ?? null,\n ]);\n const id = Number(rows[0]?.id);\n if (!Number.isFinite(id)) {\n throw new Error(`Failed to upsert RDF text source: ${source.source}`);\n }\n return id;\n }\n\n private async estimateDatabaseBytes(): Promise<number> {\n try {\n const rows = await this.requireExecutor().query<{ bytes: number | string }>(`\n SELECT COALESCE(SUM(pg_total_relation_size(('\"' || schemaname || '\".\"' || tablename || '\"')::regclass)), 0)::bigint AS bytes\n FROM pg_tables\n WHERE tablename IN ('rdf_text_sources', 'rdf_text_chunks', 'rdf_text_terms', 'rdf_text_entities', 'rdf_text_fts_pg')\n `);\n return Number(rows[0]?.bytes ?? 0);\n } catch {\n return 0;\n }\n }\n\n private async entitiesForChunk(chunkId: number): Promise<RdfTextEntityMention[]> {\n const rows = await this.requireExecutor().query<RdfTextEntityRow>(`\n SELECT entity, predicate, label, value, datatype, language, policy_role, occurrences\n FROM rdf_text_entities\n WHERE chunk_id = $1\n ORDER BY entity ASC, predicate ASC, label ASC\n `, [chunkId]);\n return rows.map((row) => ({\n entity: row.entity,\n predicate: row.predicate ?? undefined,\n label: row.label ?? undefined,\n value: row.value ?? undefined,\n datatype: row.datatype ?? undefined,\n language: row.language ?? undefined,\n policyRole: row.policy_role ?? undefined,\n occurrences: Number(row.occurrences),\n }));\n }\n\n private async entitiesForChunks(chunkIds: number[]): Promise<Map<number, RdfTextEntityMention[]>> {\n const uniqueIds = [...new Set(chunkIds)];\n const mentions = new Map<number, RdfTextEntityMention[]>();\n if (uniqueIds.length === 0) {\n return mentions;\n }\n const params: unknown[] = [];\n const rows = await this.requireExecutor().query<RdfTextEntityRow>(`\n SELECT chunk_id, entity, predicate, label, value, datatype, language, policy_role, occurrences\n FROM rdf_text_entities\n WHERE chunk_id IN (${uniqueIds.map((id) => addParam(params, id)).join(', ')})\n ORDER BY chunk_id ASC, entity ASC, predicate ASC, label ASC\n `, params);\n for (const row of rows) {\n const chunkId = Number(row.chunk_id);\n if (!Number.isFinite(chunkId)) {\n continue;\n }\n const chunkMentions = mentions.get(chunkId) ?? [];\n chunkMentions.push({\n entity: row.entity,\n predicate: row.predicate ?? undefined,\n label: row.label ?? undefined,\n value: row.value ?? undefined,\n datatype: row.datatype ?? undefined,\n language: row.language ?? undefined,\n policyRole: row.policy_role ?? undefined,\n occurrences: Number(row.occurrences),\n });\n mentions.set(chunkId, chunkMentions);\n }\n return mentions;\n }\n\n private requireExecutor(): PostgresRdfSqlExecutor {\n if (!this.executor) {\n throw new Error('PostgresRdfTextIndex is not open');\n }\n return this.executor;\n }\n}\n\nfunction buildTextSearchPredicate(query: string, params: unknown[]): PgTextSearchPredicate {\n const terms = [...new Set(tokenizeNormalizedRdfText(query))]\n .filter((term) => term.length <= RDF_TEXT_TERM_MAX_INDEX_LENGTH);\n const phraseCondition = `chunk.normalized_text LIKE ${addParam(params, `%${escapeRdfTextLikePattern(query)}%`)} ESCAPE '\\\\'`;\n if (terms.length === 0) {\n return {\n sql: phraseCondition,\n indexChoice: 'text-normalized-scan',\n };\n }\n\n const unionQueries = terms.map((term) => `\n SELECT term.chunk_id, ${addParam(params, term)} AS query_term\n FROM rdf_text_terms term\n WHERE term.term = ${addParam(params, term)}\n `);\n return {\n sql: `\n chunk.id IN (\n SELECT candidate.chunk_id\n FROM (\n ${unionQueries.join(' UNION ALL ')}\n ) candidate\n GROUP BY candidate.chunk_id\n HAVING COUNT(DISTINCT candidate.query_term) = ${addParam(params, terms.length)}\n )\n AND ${phraseCondition}\n `,\n indexChoice: 'text-term-posting',\n };\n}\n\nasync function insertTermOccurrences(\n executor: PostgresRdfSqlExecutor,\n sourceId: number,\n chunkId: number,\n normalizedText: string,\n): Promise<void> {\n for (const [term, occurrences] of rdfTextTermOccurrences(normalizedText)) {\n if (term.length > RDF_TEXT_TERM_MAX_INDEX_LENGTH) {\n continue;\n }\n await executor.exec(`\n INSERT INTO rdf_text_terms (\n term,\n source_id,\n chunk_id,\n occurrences,\n updated_at\n )\n VALUES ($1, $2, $3, $4, now())\n `, [term, sourceId, chunkId, occurrences]);\n }\n}\n\nasync function upsertNativeFtsChunk(\n executor: PostgresRdfSqlExecutor,\n chunkId: number,\n chunk: RdfTextChunkInput,\n): Promise<void> {\n await upsertNativeFtsProjection(executor, chunkId, {\n heading: chunk.heading,\n path: chunk.path ?? [],\n content: chunk.content,\n });\n}\n\nasync function upsertNativeFtsProjection(\n executor: PostgresRdfSqlExecutor,\n chunkId: number,\n projection: {\n heading?: string;\n path?: string[];\n content: string;\n },\n): Promise<void> {\n const heading = projection.heading ?? '';\n const pathText = (projection.path ?? []).join(' ');\n const content = projection.content;\n const projectionHash = rdfTextSha256(JSON.stringify({\n version: PG_NATIVE_FTS_BACKEND_VERSION,\n heading,\n path: pathText,\n content,\n }));\n await executor.exec(`\n INSERT INTO rdf_text_fts_pg (\n chunk_id,\n backend_version,\n config,\n projection_hash,\n fts_vector,\n updated_at\n )\n VALUES (\n $1,\n $2,\n 'simple'::regconfig,\n $3,\n setweight(to_tsvector('simple', COALESCE($4, '')), 'A')\n || setweight(to_tsvector('simple', COALESCE($5, '')), 'B')\n || setweight(to_tsvector('simple', COALESCE($6, '')), 'C'),\n now()\n )\n ON CONFLICT (chunk_id)\n DO UPDATE SET\n backend_version = EXCLUDED.backend_version,\n config = EXCLUDED.config,\n projection_hash = EXCLUDED.projection_hash,\n fts_vector = EXCLUDED.fts_vector,\n updated_at = CASE\n WHEN rdf_text_fts_pg.backend_version <> EXCLUDED.backend_version\n OR rdf_text_fts_pg.projection_hash <> EXCLUDED.projection_hash\n THEN EXCLUDED.updated_at\n ELSE rdf_text_fts_pg.updated_at\n END\n `, [\n chunkId,\n PG_NATIVE_FTS_BACKEND_VERSION,\n projectionHash,\n heading,\n pathText,\n content,\n ]);\n}\n\nfunction appendEntitySearchFilter(entities: string[], conditions: string[], params: unknown[]): void {\n if (entities.length === 0) {\n return;\n }\n conditions.push(`\n chunk.id IN (\n SELECT entity.chunk_id\n FROM rdf_text_entities entity\n WHERE entity.entity IN (${entities.map((entity) => addParam(params, entity)).join(', ')})\n GROUP BY entity.chunk_id\n HAVING COUNT(DISTINCT entity.entity) = ${addParam(params, entities.length)}\n )\n `);\n}\n\nasync function insertEntityMentions(\n executor: PostgresRdfSqlExecutor,\n sourceId: number,\n chunkId: number,\n entities: RdfTextChunkInput['entities'] | undefined,\n): Promise<void> {\n for (const entity of normalizeEntityMentions(entities)) {\n await executor.exec(`\n INSERT INTO rdf_text_entities (\n entity,\n source_id,\n chunk_id,\n predicate,\n label,\n value,\n datatype,\n language,\n policy_role,\n occurrences,\n updated_at\n )\n VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, now())\n `, [\n entity.entity,\n sourceId,\n chunkId,\n entity.predicate ?? null,\n entity.label ?? null,\n entity.value ?? null,\n entity.datatype ?? null,\n entity.language ?? null,\n entity.policyRole ?? null,\n entity.occurrences,\n ]);\n }\n}\n\nfunction normalizeEntityFilter(entities: string[] | undefined): string[] {\n return [...new Set((entities ?? []).map((entity) => entity.trim()).filter(Boolean))].sort();\n}\n\nfunction containsNoSpaceCjk(query: string): boolean {\n return /[\\u3400-\\u9fff\\uf900-\\ufaff]/u.test(query);\n}\n\nfunction normalizeEntityMentions(entities: RdfTextChunkInput['entities'] | undefined): RdfTextEntityMention[] {\n const mentions = new Map<string, RdfTextEntityMention>();\n for (const entity of entities ?? []) {\n const iri = entity.entity.trim();\n if (!iri) {\n continue;\n }\n const predicate = entity.predicate?.trim() || undefined;\n const label = entity.label?.trim() || undefined;\n const value = entity.value;\n const datatype = entity.datatype?.trim() || undefined;\n const language = entity.language?.trim() || undefined;\n const policyRole = entity.policyRole?.trim() || undefined;\n const key = JSON.stringify([iri, predicate ?? '', label ?? '', value ?? '', datatype ?? '', language ?? '', policyRole ?? '']);\n const existing = mentions.get(key);\n const occurrences = Math.max(1, Math.trunc(entity.occurrences ?? 1));\n if (existing) {\n existing.occurrences += occurrences;\n } else {\n mentions.set(key, { entity: iri, predicate, label, value, datatype, language, policyRole, occurrences });\n }\n }\n return [...mentions.values()].sort((left, right) => left.entity.localeCompare(right.entity) || (left.predicate ?? '').localeCompare(right.predicate ?? '') || (left.label ?? '').localeCompare(right.label ?? ''));\n}\n\nfunction pgTextSearchScoreExpression(query: string, params: unknown[]): string {\n if (!query) {\n return '1';\n }\n const replacementNeedle = addParam(params, query);\n const lengthNeedle = addParam(params, query);\n const headingNeedle = addParam(params, `%${escapeRdfTextLikePattern(query)}%`);\n return `\n CAST((length(chunk.normalized_text) - length(replace(chunk.normalized_text, ${replacementNeedle}, ''))) / GREATEST(length(${lengthNeedle}), 1) AS integer)\n + CASE\n WHEN lower(COALESCE(chunk.heading, '')) LIKE ${headingNeedle} ESCAPE '\\\\' THEN 100\n ELSE 0\n END\n `;\n}\n\nfunction pgTextSearchOrderBy(orderBy: RdfTextSearchOrder[] | undefined): string {\n const order = orderBy?.length ? orderBy : [{ field: 'score' as const, direction: 'desc' as const }];\n return order.map((entry) => `${pgTextSearchOrderField(entry.field)} ${entry.direction === 'desc' ? 'DESC' : 'ASC'}`).join(', ');\n}\n\nfunction pgTextSearchOrderField(field: RdfTextSearchOrder['field']): string {\n switch (field) {\n case 'score':\n return 'score';\n case 'source':\n return 'source.source';\n case 'localPath':\n return \"COALESCE(source.local_path, '')\";\n case 'ordinal':\n return 'chunk.ordinal';\n case 'startOffset':\n return 'chunk.start_offset';\n case 'endOffset':\n return 'chunk.end_offset';\n default: {\n const exhaustive: never = field;\n throw new Error(`Unsupported RDF text search order field: ${exhaustive}`);\n }\n }\n}\n\nfunction pgTextSearchResultOrderBy(orderBy: RdfTextSearchOrder[] | undefined): string {\n const order = orderBy?.length ? orderBy : [{ field: 'score' as const, direction: 'desc' as const }];\n return order.map((entry) => `${pgTextSearchResultOrderField(entry.field)} ${entry.direction === 'desc' ? 'DESC' : 'ASC'}`).join(', ');\n}\n\nfunction pgTextSearchResultOrderField(field: RdfTextSearchOrder['field']): string {\n switch (field) {\n case 'score':\n return 'score';\n case 'source':\n return 'source';\n case 'localPath':\n return \"COALESCE(local_path, '')\";\n case 'ordinal':\n return 'ordinal';\n case 'startOffset':\n return 'start_offset';\n case 'endOffset':\n return 'end_offset';\n default: {\n const exhaustive: never = field;\n throw new Error(`Unsupported RDF text search order field: ${exhaustive}`);\n }\n }\n}\n\nfunction pgTextSearchWindow(options: RdfTextSearchOptions, params: unknown[]): string {\n const offset = Math.max(0, options.offset ?? 0);\n if (options.limit === undefined) {\n return offset > 0 ? `OFFSET ${addParam(params, offset)}` : '';\n }\n return `LIMIT ${addParam(params, Math.max(0, options.limit))} OFFSET ${addParam(params, offset)}`;\n}\n\nfunction addParam(params: unknown[], value: unknown): string {\n params.push(value);\n return `$${params.length}`;\n}\n\nfunction toSearchResult(\n row: RdfTextChunkRow,\n normalizedQuery: string,\n score: number,\n entities: RdfTextEntityMention[],\n algorithm: RdfTextScoreComponents['algorithm'] = 'occurrence-heading-boost',\n): RdfTextSearchResult {\n return {\n source: row.source,\n workspace: row.workspace,\n localPath: row.local_path ?? undefined,\n contentType: row.content_type ?? undefined,\n sourceVersion: row.source_version ?? undefined,\n sourceHash: row.source_hash ?? undefined,\n sourceKey: row.source_key ?? row.source,\n chunkKey: row.chunk_key,\n retrievalPointKey: row.chunk_key,\n retrievalKind: normalizeRdfTextRetrievalKind(row.retrieval_kind),\n ordinal: row.ordinal,\n level: row.level,\n heading: row.heading ?? undefined,\n path: parseRdfTextPath(row.path),\n content: row.content,\n startOffset: row.start_offset,\n endOffset: row.end_offset,\n scoreComponents: textScoreComponents(row, normalizedQuery, score, algorithm),\n score,\n entities,\n };\n}\n\nfunction textScoreComponents(\n row: Pick<RdfTextChunkRow, 'normalized_text' | 'heading'>,\n normalizedQuery: string,\n score: number,\n algorithm: RdfTextScoreComponents['algorithm'] = 'occurrence-heading-boost',\n): RdfTextScoreComponents {\n if (algorithm === 'pg-ts-rank-cd') {\n return {\n sourceType: 'text',\n algorithm,\n normalizedQuery,\n occurrenceScore: 0,\n headingBoost: 0,\n nativeRank: score,\n score,\n };\n }\n if (!normalizedQuery) {\n return {\n sourceType: 'text',\n algorithm,\n normalizedQuery,\n occurrenceScore: 1,\n headingBoost: 0,\n score,\n };\n }\n const occurrenceScore = rdfTextOccurrenceCount(row.normalized_text, normalizedQuery);\n const headingBoost = normalizeRdfText(row.heading ?? '').includes(normalizedQuery) ? 100 : 0;\n return {\n sourceType: 'text',\n algorithm,\n normalizedQuery,\n occurrenceScore,\n headingBoost,\n score,\n };\n}\n\nfunction rdfTextSourceMetadata(row: RdfTextSourceRow): RdfTextSourceMetadata {\n return {\n sourceKey: row.source_key ?? row.source,\n source: row.source,\n workspace: row.workspace,\n localPath: row.local_path ?? undefined,\n contentType: row.content_type ?? undefined,\n sourceVersion: row.source_version ?? undefined,\n sourceHash: row.source_hash ?? undefined,\n updatedAt: row.updated_at,\n };\n}\n\nfunction rdfTextRebuildStatus(row: RdfTextRebuildStatusRow): RdfTextRebuildStatus {\n return {\n source: row.source,\n workspace: row.workspace,\n localPath: row.local_path ?? undefined,\n contentType: row.content_type ?? undefined,\n sourceVersion: row.source_version ?? undefined,\n sourceHash: row.source_hash ?? undefined,\n status: row.status,\n reason: row.reason ?? undefined,\n message: row.message ?? undefined,\n updatedAt: row.updated_at,\n };\n}\n\nfunction normalizeTextChunkRow(row: RdfTextChunkRow): RdfTextChunkRow {\n return {\n ...row,\n id: Number(row.id),\n source_id: Number(row.source_id),\n ordinal: Number(row.ordinal),\n level: Number(row.level),\n start_offset: Number(row.start_offset),\n end_offset: Number(row.end_offset),\n token_count: Number(row.token_count),\n };\n}\n"]}