@undefineds.co/xpod 0.3.58 → 0.3.62

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 (806) 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/rdf.d.ts +9 -0
  345. package/dist/cli/commands/rdf.js +66 -1
  346. package/dist/cli/commands/rdf.js.map +1 -1
  347. package/dist/cli/commands/start.js +3 -0
  348. package/dist/cli/commands/start.js.map +1 -1
  349. package/dist/cli/lib/solid-auth.d.ts +3 -3
  350. package/dist/cli/lib/solid-auth.js +4 -4
  351. package/dist/cli/lib/solid-auth.js.map +1 -1
  352. package/dist/components/components.jsonld +16 -0
  353. package/dist/components/context.jsonld +815 -28
  354. package/dist/document/Chunker.jsonld +110 -0
  355. package/dist/document/{DocumentParser.d.ts → DocumentReader.d.ts} +23 -11
  356. package/dist/document/{DocumentParser.js → DocumentReader.js} +2 -2
  357. package/dist/document/DocumentReader.js.map +1 -0
  358. package/dist/document/DocumentReader.jsonld +82 -0
  359. package/dist/document/HeadingChunker.jsonld +41 -0
  360. package/dist/document/{JinaDocumentParser.d.ts → JinaReader.d.ts} +7 -7
  361. package/dist/document/{JinaDocumentParser.js → JinaReader.js} +12 -12
  362. package/dist/document/JinaReader.js.map +1 -0
  363. package/dist/document/JinaReader.jsonld +133 -0
  364. package/dist/document/L0SourceSummary.d.ts +103 -0
  365. package/dist/document/L0SourceSummary.js +157 -0
  366. package/dist/document/L0SourceSummary.js.map +1 -0
  367. package/dist/document/L0SourceSummary.jsonld +326 -0
  368. package/dist/document/PaddleOcrReader.d.ts +40 -0
  369. package/dist/document/PaddleOcrReader.js +53 -0
  370. package/dist/document/PaddleOcrReader.js.map +1 -0
  371. package/dist/document/PaddleOcrReader.jsonld +234 -0
  372. package/dist/document/ReaderAiConfig.d.ts +50 -0
  373. package/dist/document/ReaderAiConfig.js +109 -0
  374. package/dist/document/ReaderAiConfig.js.map +1 -0
  375. package/dist/document/ReaderAiConfig.jsonld +185 -0
  376. package/dist/document/ReaderPolicy.d.ts +89 -0
  377. package/dist/document/ReaderPolicy.js +158 -0
  378. package/dist/document/ReaderPolicy.js.map +1 -0
  379. package/dist/document/ReaderPolicy.jsonld +218 -0
  380. package/dist/document/index.d.ts +6 -2
  381. package/dist/document/index.js +6 -2
  382. package/dist/document/index.js.map +1 -1
  383. package/dist/edge/DdnsManager.d.ts +1 -1
  384. package/dist/edge/DdnsManager.js.map +1 -1
  385. package/dist/edge/EdgeNodeAgent.d.ts +4 -0
  386. package/dist/edge/EdgeNodeAgent.js +6 -0
  387. package/dist/edge/EdgeNodeAgent.js.map +1 -1
  388. package/dist/edge/EdgeNodeAgent.jsonld +8 -0
  389. package/dist/edge/EdgeNodeAgentInitializer.d.ts +16 -0
  390. package/dist/edge/EdgeNodeAgentInitializer.js +51 -0
  391. package/dist/edge/EdgeNodeAgentInitializer.js.map +1 -1
  392. package/dist/edge/EdgeNodeAgentInitializer.jsonld +250 -0
  393. package/dist/edge/EdgeNodeCertificateCapabilityBridge.d.ts +34 -0
  394. package/dist/edge/EdgeNodeCertificateCapabilityBridge.js +111 -0
  395. package/dist/edge/EdgeNodeCertificateCapabilityBridge.js.map +1 -0
  396. package/dist/edge/acme/AcmeCertificateManager.d.ts +14 -1
  397. package/dist/edge/acme/AcmeCertificateManager.js +67 -7
  398. package/dist/edge/acme/AcmeCertificateManager.js.map +1 -1
  399. package/dist/edge/acme/AcmeCertificateManager.jsonld +22 -2
  400. package/dist/edge/acme/ClusterCertificateManager.d.ts +12 -0
  401. package/dist/edge/acme/ClusterCertificateManager.js +38 -0
  402. package/dist/edge/acme/ClusterCertificateManager.js.map +1 -1
  403. package/dist/extensions/ExtensionRuntime.d.ts +17 -0
  404. package/dist/extensions/ExtensionRuntime.js +171 -0
  405. package/dist/extensions/ExtensionRuntime.js.map +1 -0
  406. package/dist/extensions/PodCredentialResolver.d.ts +23 -0
  407. package/dist/extensions/PodCredentialResolver.js +139 -0
  408. package/dist/extensions/PodCredentialResolver.js.map +1 -0
  409. package/dist/extensions/index.d.ts +3 -0
  410. package/dist/extensions/index.js +20 -0
  411. package/dist/extensions/index.js.map +1 -0
  412. package/dist/extensions/types.d.ts +73 -0
  413. package/dist/extensions/types.js +3 -0
  414. package/dist/extensions/types.js.map +1 -0
  415. package/dist/http/SubgraphSparqlHttpHandler.d.ts +20 -1
  416. package/dist/http/SubgraphSparqlHttpHandler.js +324 -43
  417. package/dist/http/SubgraphSparqlHttpHandler.js.map +1 -1
  418. package/dist/http/SubgraphSparqlHttpHandler.jsonld +87 -0
  419. package/dist/identity/drizzle/EdgeNodeRepository.js +3 -2
  420. package/dist/identity/drizzle/EdgeNodeRepository.js.map +1 -1
  421. package/dist/identity/drizzle/schema.pg.js +1 -1
  422. package/dist/identity/drizzle/schema.pg.js.map +1 -1
  423. package/dist/identity/drizzle/schema.sqlite.js +1 -1
  424. package/dist/identity/drizzle/schema.sqlite.js.map +1 -1
  425. package/dist/identity/oidc/ScopedPickWebIdHandler.js +5 -5
  426. package/dist/identity/oidc/ScopedPickWebIdHandler.js.map +1 -1
  427. package/dist/index.d.ts +12 -2
  428. package/dist/index.js +13 -1
  429. package/dist/index.js.map +1 -1
  430. package/dist/main.js +3 -0
  431. package/dist/main.js.map +1 -1
  432. package/dist/provision/LocalProvisionState.d.ts +28 -0
  433. package/dist/provision/LocalProvisionState.js +124 -0
  434. package/dist/provision/LocalProvisionState.js.map +1 -0
  435. package/dist/provision/ProvisionCodeCodec.d.ts +7 -3
  436. package/dist/provision/ProvisionCodeCodec.js +10 -3
  437. package/dist/provision/ProvisionCodeCodec.js.map +1 -1
  438. package/dist/provision/ProvisionPodCreator.d.ts +15 -1
  439. package/dist/provision/ProvisionPodCreator.js +68 -1
  440. package/dist/provision/ProvisionPodCreator.js.map +1 -1
  441. package/dist/provision/ProvisionPodCreator.jsonld +31 -0
  442. package/dist/provision/ServiceAccessTokenCodec.d.ts +45 -0
  443. package/dist/provision/ServiceAccessTokenCodec.js +86 -0
  444. package/dist/provision/ServiceAccessTokenCodec.js.map +1 -0
  445. package/dist/runtime/GatewayAdminProxyAuth.d.ts +29 -0
  446. package/dist/runtime/GatewayAdminProxyAuth.js +108 -0
  447. package/dist/runtime/GatewayAdminProxyAuth.js.map +1 -0
  448. package/dist/runtime/Proxy.d.ts +10 -0
  449. package/dist/runtime/Proxy.js +64 -6
  450. package/dist/runtime/Proxy.js.map +1 -1
  451. package/dist/runtime/XpodRuntime.js +1 -0
  452. package/dist/runtime/XpodRuntime.js.map +1 -1
  453. package/dist/runtime/bootstrap.d.ts +1 -0
  454. package/dist/runtime/bootstrap.js +29 -0
  455. package/dist/runtime/bootstrap.js.map +1 -1
  456. package/dist/runtime/css-process.d.ts +1 -0
  457. package/dist/runtime/css-process.js +1 -0
  458. package/dist/runtime/css-process.js.map +1 -1
  459. package/dist/runtime/index.d.ts +1 -0
  460. package/dist/runtime/index.js +3 -1
  461. package/dist/runtime/index.js.map +1 -1
  462. package/dist/runtime/lifecycle.d.ts +3 -1
  463. package/dist/runtime/lifecycle.js +3 -1
  464. package/dist/runtime/lifecycle.js.map +1 -1
  465. package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js +2 -0
  466. package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js.map +1 -1
  467. package/dist/runtime/runner/types.d.ts +3 -0
  468. package/dist/runtime/runner/types.js.map +1 -1
  469. package/dist/runtime/runtime-types.d.ts +2 -0
  470. package/dist/runtime/runtime-types.js.map +1 -1
  471. package/dist/runtime/safe-env.d.ts +15 -0
  472. package/dist/runtime/safe-env.js +109 -0
  473. package/dist/runtime/safe-env.js.map +1 -0
  474. package/dist/security/index.d.ts +1 -0
  475. package/dist/security/index.js +18 -0
  476. package/dist/security/index.js.map +1 -0
  477. package/dist/security/secret-cell/DeploymentRootKeyProvider.d.ts +17 -0
  478. package/dist/security/secret-cell/DeploymentRootKeyProvider.js +61 -0
  479. package/dist/security/secret-cell/DeploymentRootKeyProvider.js.map +1 -0
  480. package/dist/security/secret-cell/DeploymentRootKeyProvider.jsonld +124 -0
  481. package/dist/security/secret-cell/SecretCellVault.d.ts +55 -0
  482. package/dist/security/secret-cell/SecretCellVault.js +242 -0
  483. package/dist/security/secret-cell/SecretCellVault.js.map +1 -0
  484. package/dist/security/secret-cell/SecretCellVault.jsonld +207 -0
  485. package/dist/security/secret-cell/index.d.ts +2 -0
  486. package/dist/security/secret-cell/index.js +11 -0
  487. package/dist/security/secret-cell/index.js.map +1 -0
  488. package/dist/solidfs/CompositeSolidFsSyncer.d.ts +18 -0
  489. package/dist/solidfs/CompositeSolidFsSyncer.js +32 -0
  490. package/dist/solidfs/CompositeSolidFsSyncer.js.map +1 -0
  491. package/dist/solidfs/LocalSolidFS.js +25 -1
  492. package/dist/solidfs/LocalSolidFS.js.map +1 -1
  493. package/dist/solidfs/RdfIndexSolidFsSyncer.d.ts +41 -2
  494. package/dist/solidfs/RdfIndexSolidFsSyncer.js +331 -21
  495. package/dist/solidfs/RdfIndexSolidFsSyncer.js.map +1 -1
  496. package/dist/solidfs/SolidFsMetaNotes.d.ts +25 -0
  497. package/dist/solidfs/SolidFsMetaNotes.js +103 -0
  498. package/dist/solidfs/SolidFsMetaNotes.js.map +1 -0
  499. package/dist/solidfs/SolidFsSyncJournal.d.ts +2 -2
  500. package/dist/solidfs/SolidFsSyncJournal.js +9 -4
  501. package/dist/solidfs/SolidFsSyncJournal.js.map +1 -1
  502. package/dist/solidfs/SolidFsSyncJournal.jsonld +119 -0
  503. package/dist/solidfs/WorkspacePrompt.d.ts +13 -0
  504. package/dist/solidfs/WorkspacePrompt.js +42 -0
  505. package/dist/solidfs/WorkspacePrompt.js.map +1 -0
  506. package/dist/solidfs/index.d.ts +3 -0
  507. package/dist/solidfs/index.js +3 -0
  508. package/dist/solidfs/index.js.map +1 -1
  509. package/dist/solidfs/types.d.ts +12 -2
  510. package/dist/solidfs/types.js.map +1 -1
  511. package/dist/storage/accessors/MixDataAccessor.d.ts +36 -4
  512. package/dist/storage/accessors/MixDataAccessor.js +222 -23
  513. package/dist/storage/accessors/MixDataAccessor.js.map +1 -1
  514. package/dist/storage/accessors/MixDataAccessor.jsonld +89 -0
  515. package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +6 -1
  516. package/dist/storage/accessors/SolidRdfDataAccessor.js +35 -0
  517. package/dist/storage/accessors/SolidRdfDataAccessor.js.map +1 -1
  518. package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +20 -0
  519. package/dist/storage/database/PostgresPoolManager.d.ts +1 -0
  520. package/dist/storage/database/PostgresPoolManager.js +2 -2
  521. package/dist/storage/database/PostgresPoolManager.js.map +1 -1
  522. package/dist/storage/locking/UrlAwareRedisLocker.d.ts +2 -0
  523. package/dist/storage/locking/UrlAwareRedisLocker.js +65 -0
  524. package/dist/storage/locking/UrlAwareRedisLocker.js.map +1 -1
  525. package/dist/storage/locking/UrlAwareRedisLocker.jsonld +19 -0
  526. package/dist/storage/rdf/PostgresRdfEngine.d.ts +286 -9
  527. package/dist/storage/rdf/PostgresRdfEngine.js +10773 -2084
  528. package/dist/storage/rdf/PostgresRdfEngine.js.map +1 -1
  529. package/dist/storage/rdf/PostgresRdfEngine.jsonld +1693 -89
  530. package/dist/storage/rdf/PostgresRdfSqlExecutor.d.ts +24 -0
  531. package/dist/storage/rdf/PostgresRdfSqlExecutor.js +131 -0
  532. package/dist/storage/rdf/PostgresRdfSqlExecutor.js.map +1 -0
  533. package/dist/storage/rdf/PostgresRdfTextIndex.d.ts +54 -0
  534. package/dist/storage/rdf/PostgresRdfTextIndex.js +1255 -0
  535. package/dist/storage/rdf/PostgresRdfTextIndex.js.map +1 -0
  536. package/dist/storage/rdf/PostgresRdfTextIndex.jsonld +487 -0
  537. package/dist/storage/rdf/PostgresRdfVectorIndex.d.ts +46 -0
  538. package/dist/storage/rdf/PostgresRdfVectorIndex.js +1165 -0
  539. package/dist/storage/rdf/PostgresRdfVectorIndex.js.map +1 -0
  540. package/dist/storage/rdf/PostgresRdfVectorIndex.jsonld +423 -0
  541. package/dist/storage/rdf/Rdf3xIndex.d.ts +14 -1
  542. package/dist/storage/rdf/Rdf3xIndex.js +286 -2
  543. package/dist/storage/rdf/Rdf3xIndex.js.map +1 -1
  544. package/dist/storage/rdf/Rdf3xIndex.jsonld +36 -0
  545. package/dist/storage/rdf/Rdf3xSchema.d.ts +5 -1
  546. package/dist/storage/rdf/Rdf3xSchema.js +17 -3
  547. package/dist/storage/rdf/Rdf3xSchema.js.map +1 -1
  548. package/dist/storage/rdf/RdfAccessScope.d.ts +22 -0
  549. package/dist/storage/rdf/RdfAccessScope.js +345 -0
  550. package/dist/storage/rdf/RdfAccessScope.js.map +1 -0
  551. package/dist/storage/rdf/RdfAccessScope.jsonld +45 -0
  552. package/dist/storage/rdf/RdfFusionRankPlan.d.ts +2 -0
  553. package/dist/storage/rdf/RdfFusionRankPlan.js +186 -0
  554. package/dist/storage/rdf/RdfFusionRankPlan.js.map +1 -0
  555. package/dist/storage/rdf/RdfJoinShape.d.ts +8 -0
  556. package/dist/storage/rdf/RdfJoinShape.js +31 -0
  557. package/dist/storage/rdf/RdfJoinShape.js.map +1 -0
  558. package/dist/storage/rdf/RdfQuadIndex.d.ts +5 -2
  559. package/dist/storage/rdf/RdfQuadIndex.js +94 -6
  560. package/dist/storage/rdf/RdfQuadIndex.js.map +1 -1
  561. package/dist/storage/rdf/RdfQuadIndex.jsonld +12 -0
  562. package/dist/storage/rdf/RdfQueryExecutor.d.ts +3 -4
  563. package/dist/storage/rdf/RdfQueryExecutor.js +235 -8
  564. package/dist/storage/rdf/RdfQueryExecutor.js.map +1 -1
  565. package/dist/storage/rdf/RdfSearchSourceFilter.d.ts +10 -0
  566. package/dist/storage/rdf/RdfSearchSourceFilter.js +83 -0
  567. package/dist/storage/rdf/RdfSearchSourceFilter.js.map +1 -0
  568. package/dist/storage/rdf/RdfSparqlAdapter.d.ts +27 -1
  569. package/dist/storage/rdf/RdfSparqlAdapter.js +265 -3
  570. package/dist/storage/rdf/RdfSparqlAdapter.js.map +1 -1
  571. package/dist/storage/rdf/RdfSparqlAdapter.jsonld +8 -0
  572. package/dist/storage/rdf/RdfTermDictionary.d.ts +7 -1
  573. package/dist/storage/rdf/RdfTermDictionary.js +139 -0
  574. package/dist/storage/rdf/RdfTermDictionary.js.map +1 -1
  575. package/dist/storage/rdf/RdfTermDictionary.jsonld +4 -0
  576. package/dist/storage/rdf/RdfTextIndex.d.ts +45 -2
  577. package/dist/storage/rdf/RdfTextIndex.js +810 -114
  578. package/dist/storage/rdf/RdfTextIndex.js.map +1 -1
  579. package/dist/storage/rdf/RdfTextIndex.jsonld +193 -0
  580. package/dist/storage/rdf/RdfTextProjection.d.ts +10 -0
  581. package/dist/storage/rdf/RdfTextProjection.js +258 -0
  582. package/dist/storage/rdf/RdfTextProjection.js.map +1 -0
  583. package/dist/storage/rdf/RdfVectorIndex.d.ts +30 -2
  584. package/dist/storage/rdf/RdfVectorIndex.js +461 -38
  585. package/dist/storage/rdf/RdfVectorIndex.js.map +1 -1
  586. package/dist/storage/rdf/RdfVectorIndex.jsonld +163 -0
  587. package/dist/storage/rdf/SolidRdfEngine.d.ts +12 -9
  588. package/dist/storage/rdf/SolidRdfEngine.js +48 -22
  589. package/dist/storage/rdf/SolidRdfEngine.js.map +1 -1
  590. package/dist/storage/rdf/SolidRdfEngine.jsonld +33 -43
  591. package/dist/storage/rdf/SolidRdfSparqlEngine.d.ts +19 -8
  592. package/dist/storage/rdf/SolidRdfSparqlEngine.js +674 -44
  593. package/dist/storage/rdf/SolidRdfSparqlEngine.js.map +1 -1
  594. package/dist/storage/rdf/SolidRdfSparqlEngine.jsonld +51 -0
  595. package/dist/storage/rdf/index.d.ts +9 -5
  596. package/dist/storage/rdf/index.js +42 -1
  597. package/dist/storage/rdf/index.js.map +1 -1
  598. package/dist/storage/rdf/models-benchmark.d.ts +264 -2
  599. package/dist/storage/rdf/models-benchmark.js +4207 -155
  600. package/dist/storage/rdf/models-benchmark.js.map +1 -1
  601. package/dist/storage/rdf/types.d.ts +833 -4
  602. package/dist/storage/rdf/types.js.map +1 -1
  603. package/dist/storage/rdf/types.jsonld +348 -0
  604. package/dist/storage/sparql/CompatibilitySparqlEngine.d.ts +14 -13
  605. package/dist/storage/sparql/CompatibilitySparqlEngine.js +24 -24
  606. package/dist/storage/sparql/CompatibilitySparqlEngine.js.map +1 -1
  607. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.d.ts +14 -13
  608. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js +30 -18
  609. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js.map +1 -1
  610. package/dist/storage/sparql/SubgraphQueryEngine.d.ts +21 -12
  611. package/dist/storage/sparql/SubgraphQueryEngine.js +12 -12
  612. package/dist/storage/sparql/SubgraphQueryEngine.js.map +1 -1
  613. package/dist/terminal/sandbox/MacOSSandbox.js +2 -1
  614. package/dist/terminal/sandbox/MacOSSandbox.js.map +1 -1
  615. package/dist/terminal/sandbox/index.js +2 -1
  616. package/dist/terminal/sandbox/index.js.map +1 -1
  617. package/dist/test-utils/no-auth-xpod.js +3 -0
  618. package/dist/test-utils/no-auth-xpod.js.map +1 -1
  619. package/dist/tunnel/LocalTunnelProvider.d.ts +3 -0
  620. package/dist/tunnel/LocalTunnelProvider.js +17 -1
  621. package/dist/tunnel/LocalTunnelProvider.js.map +1 -1
  622. package/dist/tunnel/LocalTunnelProvider.jsonld +23 -0
  623. package/dist/tunnel/SakuraFrpTunnelProvider.d.ts +3 -0
  624. package/dist/tunnel/SakuraFrpTunnelProvider.js +18 -2
  625. package/dist/tunnel/SakuraFrpTunnelProvider.js.map +1 -1
  626. package/dist/tunnel/TunnelProfiles.d.ts +22 -0
  627. package/dist/tunnel/TunnelProfiles.js +208 -0
  628. package/dist/tunnel/TunnelProfiles.js.map +1 -0
  629. package/dist/tunnel/index.d.ts +2 -0
  630. package/dist/tunnel/index.js +4 -1
  631. package/dist/tunnel/index.js.map +1 -1
  632. package/dist/util/identifiers/ClusterIdentifierStrategy.d.ts +3 -0
  633. package/dist/util/identifiers/ClusterIdentifierStrategy.js +18 -2
  634. package/dist/util/identifiers/ClusterIdentifierStrategy.js.map +1 -1
  635. package/dist/util/identifiers/ClusterIdentifierStrategy.jsonld +5 -1
  636. package/node_modules/@undefineds.co/ai-connection/dist/AiClientConfigurationSection.d.ts +55 -0
  637. package/node_modules/@undefineds.co/ai-connection/dist/AiClientConfigurationSection.js +167 -0
  638. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionHeader.d.ts +3 -0
  639. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionHeader.js +8 -0
  640. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionList.d.ts +4 -0
  641. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionList.js +36 -0
  642. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMain.d.ts +4 -0
  643. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMain.js +37 -0
  644. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMainHeader.d.ts +3 -0
  645. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMainHeader.js +7 -0
  646. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionPanel.d.ts +14 -0
  647. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionPanel.js +333 -0
  648. package/node_modules/@undefineds.co/ai-connection/dist/AiProviderCard.d.ts +22 -0
  649. package/node_modules/@undefineds.co/ai-connection/dist/AiProviderCard.js +43 -0
  650. package/node_modules/@undefineds.co/ai-connection/dist/AiQuotaCard.d.ts +8 -0
  651. package/node_modules/@undefineds.co/ai-connection/dist/AiQuotaCard.js +6 -0
  652. package/node_modules/@undefineds.co/ai-connection/dist/ai-connection-client.d.ts +120 -0
  653. package/node_modules/@undefineds.co/ai-connection/dist/ai-connection-client.js +414 -0
  654. package/node_modules/@undefineds.co/ai-connection/dist/client-config/base-adapter.d.ts +32 -0
  655. package/node_modules/@undefineds.co/ai-connection/dist/client-config/base-adapter.js +212 -0
  656. package/node_modules/@undefineds.co/ai-connection/dist/client-config/codex.d.ts +14 -0
  657. package/node_modules/@undefineds.co/ai-connection/dist/client-config/codex.js +90 -0
  658. package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.cjs +668 -0
  659. package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.d.ts +6 -0
  660. package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.js +6 -0
  661. package/node_modules/@undefineds.co/ai-connection/dist/client-config/json-env-adapter.d.ts +21 -0
  662. package/node_modules/@undefineds.co/ai-connection/dist/client-config/json-env-adapter.js +82 -0
  663. package/node_modules/@undefineds.co/ai-connection/dist/client-config/pi.d.ts +13 -0
  664. package/node_modules/@undefineds.co/ai-connection/dist/client-config/pi.js +83 -0
  665. package/node_modules/@undefineds.co/ai-connection/dist/client-config/transaction.d.ts +17 -0
  666. package/node_modules/@undefineds.co/ai-connection/dist/client-config/transaction.js +153 -0
  667. package/node_modules/@undefineds.co/ai-connection/dist/client-config/types.d.ts +40 -0
  668. package/node_modules/@undefineds.co/ai-connection/dist/client-config/types.js +1 -0
  669. package/node_modules/@undefineds.co/ai-connection/dist/controller.d.ts +42 -0
  670. package/node_modules/@undefineds.co/ai-connection/dist/controller.js +289 -0
  671. package/node_modules/@undefineds.co/ai-connection/dist/index.d.ts +16 -0
  672. package/node_modules/@undefineds.co/ai-connection/dist/index.js +41 -0
  673. package/node_modules/@undefineds.co/ai-connection/dist/manifest.d.ts +1 -0
  674. package/node_modules/@undefineds.co/ai-connection/dist/manifest.js +18 -0
  675. package/node_modules/@undefineds.co/ai-connection/dist/service-access.d.ts +3 -0
  676. package/node_modules/@undefineds.co/ai-connection/dist/service-access.js +133 -0
  677. package/node_modules/@undefineds.co/ai-connection/package.json +50 -0
  678. package/node_modules/@undefineds.co/extension-sdk/README.md +299 -0
  679. package/node_modules/@undefineds.co/extension-sdk/dist/index.d.ts +5 -0
  680. package/node_modules/@undefineds.co/extension-sdk/dist/index.js +5 -0
  681. package/node_modules/@undefineds.co/extension-sdk/dist/layout.d.ts +16 -0
  682. package/node_modules/@undefineds.co/extension-sdk/dist/layout.js +36 -0
  683. package/node_modules/@undefineds.co/extension-sdk/dist/manifest.d.ts +27 -0
  684. package/node_modules/@undefineds.co/extension-sdk/dist/manifest.js +79 -0
  685. package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.d.ts +7 -0
  686. package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.js +8 -0
  687. package/node_modules/@undefineds.co/extension-sdk/dist/react/auth-boundary.d.ts +27 -0
  688. package/node_modules/@undefineds.co/extension-sdk/dist/react/auth-boundary.js +49 -0
  689. package/node_modules/@undefineds.co/extension-sdk/dist/react/layout-context.d.ts +11 -0
  690. package/node_modules/@undefineds.co/extension-sdk/dist/react/layout-context.js +9 -0
  691. package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.d.ts +38 -0
  692. package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.js +132 -0
  693. package/node_modules/@undefineds.co/extension-sdk/dist/react.d.ts +12 -0
  694. package/node_modules/@undefineds.co/extension-sdk/dist/react.js +19 -0
  695. package/node_modules/@undefineds.co/extension-sdk/dist/testing.d.ts +7 -0
  696. package/node_modules/@undefineds.co/extension-sdk/dist/testing.js +27 -0
  697. package/node_modules/@undefineds.co/extension-sdk/dist/web.d.ts +225 -0
  698. package/node_modules/@undefineds.co/extension-sdk/dist/web.js +142 -0
  699. package/node_modules/@undefineds.co/extension-sdk/package.json +49 -0
  700. package/node_modules/@undefineds.co/extensions/README.md +101 -0
  701. package/node_modules/@undefineds.co/extensions/dist/adapters/langchain.d.ts +25 -0
  702. package/node_modules/@undefineds.co/extensions/dist/adapters/langchain.d.ts.map +1 -0
  703. package/node_modules/@undefineds.co/extensions/dist/adapters/langchain.js +45 -0
  704. package/node_modules/@undefineds.co/extensions/dist/adapters/langchain.js.map +1 -0
  705. package/node_modules/@undefineds.co/extensions/dist/adapters/llamaindex.d.ts +31 -0
  706. package/node_modules/@undefineds.co/extensions/dist/adapters/llamaindex.d.ts.map +1 -0
  707. package/node_modules/@undefineds.co/extensions/dist/adapters/llamaindex.js +50 -0
  708. package/node_modules/@undefineds.co/extensions/dist/adapters/llamaindex.js.map +1 -0
  709. package/node_modules/@undefineds.co/extensions/dist/index.d.ts +7 -0
  710. package/node_modules/@undefineds.co/extensions/dist/index.d.ts.map +1 -0
  711. package/node_modules/@undefineds.co/extensions/dist/index.js +7 -0
  712. package/node_modules/@undefineds.co/extensions/dist/index.js.map +1 -0
  713. package/node_modules/@undefineds.co/extensions/dist/paddleocr.d.ts +16 -0
  714. package/node_modules/@undefineds.co/extensions/dist/paddleocr.d.ts.map +1 -0
  715. package/node_modules/@undefineds.co/extensions/dist/paddleocr.js +267 -0
  716. package/node_modules/@undefineds.co/extensions/dist/paddleocr.js.map +1 -0
  717. package/node_modules/@undefineds.co/extensions/dist/reader.d.ts +18 -0
  718. package/node_modules/@undefineds.co/extensions/dist/reader.d.ts.map +1 -0
  719. package/node_modules/@undefineds.co/extensions/dist/reader.js +39 -0
  720. package/node_modules/@undefineds.co/extensions/dist/reader.js.map +1 -0
  721. package/node_modules/@undefineds.co/extensions/dist/registry.d.ts +16 -0
  722. package/node_modules/@undefineds.co/extensions/dist/registry.d.ts.map +1 -0
  723. package/node_modules/@undefineds.co/extensions/dist/registry.js +97 -0
  724. package/node_modules/@undefineds.co/extensions/dist/registry.js.map +1 -0
  725. package/node_modules/@undefineds.co/extensions/dist/types.d.ts +141 -0
  726. package/node_modules/@undefineds.co/extensions/dist/types.d.ts.map +1 -0
  727. package/node_modules/@undefineds.co/extensions/dist/types.js +2 -0
  728. package/node_modules/@undefineds.co/extensions/dist/types.js.map +1 -0
  729. package/node_modules/@undefineds.co/extensions/package.json +38 -0
  730. package/node_modules/@undefineds.co/shared-ui/dist/badge.d.ts +8 -0
  731. package/node_modules/@undefineds.co/shared-ui/dist/badge.js +17 -0
  732. package/node_modules/@undefineds.co/shared-ui/dist/button.d.ts +10 -0
  733. package/node_modules/@undefineds.co/shared-ui/dist/button.js +30 -0
  734. package/node_modules/@undefineds.co/shared-ui/dist/card.d.ts +7 -0
  735. package/node_modules/@undefineds.co/shared-ui/dist/card.js +15 -0
  736. package/node_modules/@undefineds.co/shared-ui/dist/index.d.ts +6 -0
  737. package/node_modules/@undefineds.co/shared-ui/dist/index.js +6 -0
  738. package/node_modules/@undefineds.co/shared-ui/dist/input.d.ts +4 -0
  739. package/node_modules/@undefineds.co/shared-ui/dist/input.js +5 -0
  740. package/node_modules/@undefineds.co/shared-ui/dist/theme.css +121 -0
  741. package/node_modules/@undefineds.co/shared-ui/dist/utils.d.ts +2 -0
  742. package/node_modules/@undefineds.co/shared-ui/dist/utils.js +5 -0
  743. package/node_modules/@undefineds.co/shared-ui/dist/workspace.d.ts +23 -0
  744. package/node_modules/@undefineds.co/shared-ui/dist/workspace.js +38 -0
  745. package/node_modules/@undefineds.co/shared-ui/package.json +39 -0
  746. package/node_modules/@undefineds.co/solid-sdk/dist/index.d.ts +3 -0
  747. package/node_modules/@undefineds.co/solid-sdk/dist/index.js +3 -0
  748. package/node_modules/@undefineds.co/solid-sdk/dist/pod-runtime.d.ts +45 -0
  749. package/node_modules/@undefineds.co/solid-sdk/dist/pod-runtime.js +147 -0
  750. package/node_modules/@undefineds.co/solid-sdk/dist/react.d.ts +15 -0
  751. package/node_modules/@undefineds.co/solid-sdk/dist/react.js +15 -0
  752. package/node_modules/@undefineds.co/solid-sdk/dist/session.d.ts +42 -0
  753. package/node_modules/@undefineds.co/solid-sdk/dist/session.js +127 -0
  754. package/node_modules/@undefineds.co/solid-sdk/package.json +45 -0
  755. package/package.json +31 -13
  756. package/static/app/assets/index-BoYHJ6si.js +230 -0
  757. package/static/app/assets/inrupt-smoke.js +2 -2
  758. package/static/app/assets/main.css +1 -1
  759. package/static/app/assets/main.js +9 -9
  760. package/static/dashboard/assets/NetworkPage-Brt79fuQ.js +2 -0
  761. package/static/dashboard/assets/PaneListHeader-57nvMwH6.js +1 -0
  762. package/static/dashboard/assets/PodPage-CM6do1vB.js +2 -0
  763. package/static/dashboard/assets/ServicesPage-BUNxGJRz.js +1 -0
  764. package/static/dashboard/assets/card-B9Zjf_2p.js +1 -0
  765. package/static/dashboard/assets/dashboard-8C6o666W.js +305 -0
  766. package/static/dashboard/assets/dashboard-CSdewNeA.css +1 -0
  767. package/static/dashboard/assets/database-DPh9wDY9.js +1 -0
  768. package/static/dashboard/assets/external-link-VbMQvVMz.js +1 -0
  769. package/static/dashboard/assets/index-RfiFckzb.js +51 -0
  770. package/static/dashboard/assets/refresh-cw-BxVxNxNr.js +1 -0
  771. package/static/dashboard/assets/services-status-context-DKmJ7ISr.js +1 -0
  772. package/static/dashboard/dashboard.html +2 -2
  773. package/static/settings/assets/ModelsPage-D_IH7AH3.js +1 -0
  774. package/static/settings/assets/PaneListHeader-Bgaze006.js +1 -0
  775. package/static/settings/assets/PodPage-Cy1VNObw.js +2 -0
  776. package/static/settings/assets/ServicesPage-BsFaxVWC.js +1 -0
  777. package/static/settings/assets/SettingsPage-UafNWE_p.js +48 -0
  778. package/static/settings/assets/card-B_bXSIn-.js +1 -0
  779. package/static/settings/assets/services-status-context-DiX-AbrP.js +1 -0
  780. package/static/settings/assets/settings-B30oMfZq.js +305 -0
  781. package/static/settings/assets/settings-CSdewNeA.css +1 -0
  782. package/static/settings/assets/workspace-layout-Dv1Yn9Ci.js +1 -0
  783. package/static/settings/auth.html +21 -0
  784. package/static/settings/reachability.html +221 -0
  785. package/static/settings/reachability.svg +7 -0
  786. package/static/settings/reachability.webmanifest +18 -0
  787. package/static/settings/settings.html +13 -0
  788. package/static/settings/signal-pod.html +293 -0
  789. package/static/settings/vite.svg +1 -0
  790. package/dist/api/service/ai-gateway-transport.d.ts +0 -25
  791. package/dist/api/service/ai-gateway-transport.js +0 -136
  792. package/dist/api/service/ai-gateway-transport.js.map +0 -1
  793. package/dist/api/service/chat-protocol-adapters.d.ts +0 -5
  794. package/dist/api/service/chat-protocol-adapters.js +0 -146
  795. package/dist/api/service/chat-protocol-adapters.js.map +0 -1
  796. package/dist/api/service/chat-routing.d.ts +0 -8
  797. package/dist/api/service/chat-routing.js +0 -16
  798. package/dist/api/service/chat-routing.js.map +0 -1
  799. package/dist/api/service/platform-ai-config.d.ts +0 -10
  800. package/dist/api/service/platform-ai-config.js +0 -76
  801. package/dist/api/service/platform-ai-config.js.map +0 -1
  802. package/dist/document/DocumentParser.js.map +0 -1
  803. package/dist/document/JinaDocumentParser.js.map +0 -1
  804. package/static/app/assets/index-C1yksyT4.js +0 -171
  805. package/static/dashboard/assets/dashboard-BssaVKTn.css +0 -1
  806. package/static/dashboard/assets/dashboard-Ckuadl3C.js +0 -54
@@ -0,0 +1,349 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.RdfBenchmarkReportCatalog = void 0;
27
+ const path = __importStar(require("node:path"));
28
+ const promises_1 = require("node:fs/promises");
29
+ const package_root_1 = require("../../runtime/package-root");
30
+ const DEFAULT_MAX_REPORTS = 20;
31
+ const DEFAULT_MAX_DEPTH = 4;
32
+ const DEFAULT_CACHE_TTL_MS = 30_000;
33
+ const MAX_REPORT_BYTES = 25 * 1024 * 1024;
34
+ class RdfBenchmarkReportCatalog {
35
+ constructor(options = {}) {
36
+ this.packageRoot = options.packageRoot ?? package_root_1.PACKAGE_ROOT;
37
+ this.roots = options.roots ?? [path.join(this.packageRoot, '.test-data')];
38
+ this.maxReports = options.maxReports ?? DEFAULT_MAX_REPORTS;
39
+ this.maxDepth = options.maxDepth ?? DEFAULT_MAX_DEPTH;
40
+ this.cacheTtlMs = options.cacheTtlMs ?? DEFAULT_CACHE_TTL_MS;
41
+ }
42
+ async snapshot() {
43
+ const now = Date.now();
44
+ if (this.cachedSnapshot && now - this.cachedSnapshot.capturedAt < this.cacheTtlMs) {
45
+ return this.cachedSnapshot.snapshot;
46
+ }
47
+ const errors = [];
48
+ const files = [];
49
+ let skippedFiles = 0;
50
+ for (const root of this.roots) {
51
+ const normalizedRoot = path.resolve(root);
52
+ try {
53
+ const found = await this.findReportFiles(normalizedRoot, normalizedRoot, 0);
54
+ files.push(...found);
55
+ }
56
+ catch (error) {
57
+ errors.push({ path: this.displayPath(normalizedRoot), message: errorMessage(error) });
58
+ }
59
+ }
60
+ const reports = [];
61
+ const candidates = await this.sortNewestFirst(files, errors);
62
+ for (const file of candidates) {
63
+ if (reports.length >= this.maxReports) {
64
+ skippedFiles += 1;
65
+ continue;
66
+ }
67
+ const parsed = await this.readReport(file);
68
+ if (parsed.ok) {
69
+ reports.push(parsed.report);
70
+ }
71
+ else {
72
+ skippedFiles += 1;
73
+ errors.push({ path: this.displayPath(file), message: parsed.error });
74
+ }
75
+ }
76
+ const snapshot = {
77
+ roots: this.roots.map((root) => this.displayPath(path.resolve(root))),
78
+ reportCount: reports.length,
79
+ skippedFiles,
80
+ errors,
81
+ reports,
82
+ };
83
+ this.cachedSnapshot = { capturedAt: now, snapshot };
84
+ return snapshot;
85
+ }
86
+ async findReportFiles(root, current, depth) {
87
+ const entries = await (0, promises_1.readdir)(current, { withFileTypes: true });
88
+ const files = [];
89
+ for (const entry of entries) {
90
+ const entryPath = path.join(current, entry.name);
91
+ if (entry.isFile() && isBenchmarkReportFile(entry.name)) {
92
+ files.push(entryPath);
93
+ continue;
94
+ }
95
+ if (!entry.isDirectory() || depth >= this.maxDepth) {
96
+ continue;
97
+ }
98
+ if (depth === 0 && isTestDataRoot(root) && !isRdfBenchmarkDirectory(entry.name)) {
99
+ continue;
100
+ }
101
+ files.push(...await this.findReportFiles(root, entryPath, depth + 1));
102
+ }
103
+ return files;
104
+ }
105
+ async sortNewestFirst(files, errors) {
106
+ const entries = [];
107
+ for (const file of files) {
108
+ try {
109
+ entries.push({ file, mtimeMs: (await (0, promises_1.stat)(file)).mtimeMs });
110
+ }
111
+ catch (error) {
112
+ errors.push({ path: this.displayPath(file), message: errorMessage(error) });
113
+ }
114
+ }
115
+ return entries
116
+ .sort((left, right) => right.mtimeMs - left.mtimeMs)
117
+ .map((entry) => entry.file);
118
+ }
119
+ async readReport(file) {
120
+ try {
121
+ const info = await (0, promises_1.stat)(file);
122
+ if (info.size > MAX_REPORT_BYTES) {
123
+ return { ok: false, error: `Report exceeds ${MAX_REPORT_BYTES} bytes` };
124
+ }
125
+ const raw = await (0, promises_1.readFile)(file, 'utf8');
126
+ const parsed = JSON.parse(raw);
127
+ const report = summarizeBenchmarkReport(parsed, this.displayPath(file));
128
+ if (!report) {
129
+ return { ok: false, error: 'Unsupported RDF benchmark report shape' };
130
+ }
131
+ return { ok: true, report };
132
+ }
133
+ catch (error) {
134
+ return { ok: false, error: errorMessage(error) };
135
+ }
136
+ }
137
+ displayPath(file) {
138
+ const relative = path.relative(this.packageRoot, file);
139
+ return relative && !relative.startsWith('..') && !path.isAbsolute(relative) ? relative : file;
140
+ }
141
+ }
142
+ exports.RdfBenchmarkReportCatalog = RdfBenchmarkReportCatalog;
143
+ function summarizeBenchmarkReport(input, reportPath) {
144
+ if (!isRecord(input)) {
145
+ return undefined;
146
+ }
147
+ const seed = recordValue(input.seed);
148
+ const report = recordValue(input.report) ?? input;
149
+ if (!isRecord(report)) {
150
+ return undefined;
151
+ }
152
+ const generatedAt = stringValue(report.generatedAt) ?? timestampFromReportPath(reportPath);
153
+ const engine = stringValue(report.engine);
154
+ if (!engine || !generatedAt) {
155
+ return undefined;
156
+ }
157
+ const storage = recordValue(report.storage);
158
+ const pgAcceleration = recordValue(storage?.pgAcceleration);
159
+ const refresh = recordValue(report.refreshBenchmark) ?? recordValue(report.refresh);
160
+ const rdf3xRefresh = recordValue(recordValue(report.refresh)?.rdf3x);
161
+ const plannerStats = recordValue(rdf3xRefresh?.plannerStats);
162
+ const coldStart = recordValue(report.coldStartBenchmark);
163
+ const startup = recordValue(coldStart?.startup);
164
+ const firstQuery = recordValue(coldStart?.firstQueryAfterRefresh);
165
+ const warmSteadyState = recordValue(coldStart?.warmSteadyState);
166
+ const concurrencyGate = recordValue(report.concurrencyGate);
167
+ const servingRegressionGate = recordValue(report.servingRegressionGate);
168
+ const fusionBenchmarkGate = recordValue(report.fusionBenchmarkGate);
169
+ const failedFusionBaselineComparisonCases = failedBaselineComparisonCases(fusionBenchmarkGate);
170
+ const benchmarkGateConfigSources = recordArrayValue(seed?.benchmarkGateConfigSources);
171
+ const driver = stringValue(seed?.driver);
172
+ const scale = stringValue(report.scale) ?? stringValue(seed?.scale);
173
+ const caseProfile = stringValue(report.caseProfile) ?? stringValue(seed?.caseProfile);
174
+ const targetQuadCount = numberValue(seed?.targetQuadCount);
175
+ const bulkLoad = recordValue(seed?.bulkLoad);
176
+ const copyFromRows = recordValue(bulkLoad?.copyFromRows);
177
+ return {
178
+ id: path.basename(reportPath, '.json'),
179
+ path: reportPath,
180
+ generatedAt,
181
+ engine,
182
+ driver,
183
+ scale,
184
+ caseProfile,
185
+ rdfAccelerationProfile: stringValue(seed?.rdfAccelerationProfile) ?? stringValue(pgAcceleration?.profile),
186
+ textSearchBackend: stringValue(seed?.textSearchBackend),
187
+ seedQuadCount: numberValue(seed?.seedQuadCount),
188
+ targetQuadCount,
189
+ fullScale: booleanValue(seed?.fullScale),
190
+ iterations: numberValue(report.iterations) ?? numberValue(seed?.iterations),
191
+ warmupIterations: numberValue(report.warmupIterations) ?? numberValue(seed?.warmupIterations),
192
+ concurrency: numberValue(report.concurrency) ?? numberValue(seed?.concurrency),
193
+ planMatched: booleanValue(report.planMatched),
194
+ failedPlanCases: stringArrayValue(report.failedPlanCases),
195
+ concurrencyMatched: booleanValue(concurrencyGate?.matched),
196
+ failedConcurrencyCases: stringArrayValue(concurrencyGate?.failedCases),
197
+ servingRegressionMatched: booleanValue(servingRegressionGate?.matched),
198
+ servingRegressionThresholdsConfigured: hasThresholds(servingRegressionGate),
199
+ failedServingRegressionCases: stringArrayValue(servingRegressionGate?.failedCases),
200
+ fusionBenchmarkMatched: booleanValue(fusionBenchmarkGate?.matched),
201
+ fusionBenchmarkThresholdsConfigured: hasThresholds(fusionBenchmarkGate),
202
+ failedFusionBenchmarkCases: stringArrayValue(fusionBenchmarkGate?.failedCases),
203
+ fusionBaselineComparisonMatched: baselineComparisonMatched(fusionBenchmarkGate, failedFusionBaselineComparisonCases),
204
+ failedFusionBaselineComparisonCases,
205
+ benchmarkGateConfigSourcesConfigured: benchmarkGateConfigSources.length > 0,
206
+ fusionBaselineReportSourceConfigured: hasFusionBaselineReportSource(benchmarkGateConfigSources),
207
+ benchmarkGateConfigSourceShapeMismatches: benchmarkGateConfigSourceShapeMismatches(benchmarkGateConfigSources, {
208
+ driver,
209
+ scale,
210
+ targetQuads: targetQuadCount,
211
+ caseProfile,
212
+ textSearchBackend: stringValue(seed?.textSearchBackend),
213
+ }),
214
+ fusionBaselineReportSourceBaselineProfileConfigured: hasFusionBaselineReportSourceBaselineProfile(benchmarkGateConfigSources),
215
+ fusionHardFiltersBeforeRankCaseCount: countFusionCases(fusionBenchmarkGate, 'hardFiltersBeforeRank'),
216
+ fusionBatchedBroadCandidateJoinCaseCount: countFusionCases(fusionBenchmarkGate, 'batchedBroadCandidateJoin'),
217
+ nativeTextFtsCaseCount: countQueryCasesWithPlan(report, 'PostgresNativeFts('),
218
+ nativeVectorCaseCount: countQueryCasesWithPlan(report, 'PostgresNativeVector('),
219
+ ingestDurationMs: numberValue(seed?.ingestDurationMs),
220
+ copyRows: numberValue(copyFromRows?.rows),
221
+ copyFallbacks: numberValue(copyFromRows?.fallbacks),
222
+ refreshDurationMs: numberValue(refresh?.durationMs),
223
+ plannerStatsDurationMs: numberValue(refresh?.plannerStatsDurationMs),
224
+ plannerStatsAnalyzedTables: stringArrayValue(plannerStats?.analyzedTables),
225
+ coldStartDurationMs: numberValue(startup?.durationMs),
226
+ firstQueryDurationMs: numberValue(firstQuery?.durationMs),
227
+ warmP50DurationMs: numberValue(warmSteadyState?.p50DurationMs),
228
+ warmP95DurationMs: numberValue(warmSteadyState?.p95DurationMs),
229
+ storageFactsBytes: numberValue(storage?.factsBytes),
230
+ storageDerivedBytes: numberValue(storage?.derivedBytes),
231
+ storageTotalBytes: numberValue(storage?.totalBytes),
232
+ storageTotalToFactsRatio: numberValue(storage?.totalToFactsRatio),
233
+ pgAccelerationEnabled: booleanValue(pgAcceleration?.enabled),
234
+ pgAccelerationFallbackReason: stringValue(pgAcceleration?.fallbackReason),
235
+ pgActiveOperators: stringArrayValue(pgAcceleration?.activeOperators),
236
+ };
237
+ }
238
+ function isBenchmarkReportFile(name) {
239
+ return /^models-(postgres|rdf3x-shadow|baseline|shadow)-.+\.json$/.test(name);
240
+ }
241
+ function isTestDataRoot(root) {
242
+ return path.basename(root) === '.test-data';
243
+ }
244
+ function isRdfBenchmarkDirectory(name) {
245
+ return name === 'rdf-engine' || name.startsWith('rdf-');
246
+ }
247
+ function timestampFromReportPath(reportPath) {
248
+ const match = reportPath.match(/models-[^-]+-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2}-\d{3}Z)/);
249
+ if (!match) {
250
+ return undefined;
251
+ }
252
+ return match[1].replace(/T(\d{2})-(\d{2})-(\d{2})-(\d{3})Z$/, 'T$1:$2:$3.$4Z');
253
+ }
254
+ function isRecord(value) {
255
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
256
+ }
257
+ function recordValue(value) {
258
+ return isRecord(value) ? value : undefined;
259
+ }
260
+ function stringValue(value) {
261
+ return typeof value === 'string' ? value : undefined;
262
+ }
263
+ function numberValue(value) {
264
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
265
+ }
266
+ function booleanValue(value) {
267
+ return typeof value === 'boolean' ? value : undefined;
268
+ }
269
+ function stringArrayValue(value) {
270
+ return Array.isArray(value) ? value.filter((item) => typeof item === 'string') : [];
271
+ }
272
+ function recordArrayValue(value) {
273
+ return Array.isArray(value) ? value.filter(isRecord) : [];
274
+ }
275
+ function failedBaselineComparisonCases(fusionBenchmarkGate) {
276
+ if (!fusionBenchmarkGate) {
277
+ return [];
278
+ }
279
+ const failedCases = [];
280
+ for (const item of recordArrayValue(fusionBenchmarkGate.cases)) {
281
+ const baselineComparison = recordValue(item.baselineComparison);
282
+ if (!baselineComparison) {
283
+ continue;
284
+ }
285
+ if (booleanValue(baselineComparison.matched) !== true) {
286
+ failedCases.push(stringValue(item.name) ?? 'unnamed fusion case');
287
+ }
288
+ }
289
+ return failedCases;
290
+ }
291
+ function hasFusionBaselineReportSource(sources) {
292
+ return sources.some((source) => source.kind === 'report-config' || source.kind === 'baseline-report');
293
+ }
294
+ function hasFusionBaselineReportSourceBaselineProfile(sources) {
295
+ return sources.some((source) => {
296
+ if (source.kind !== 'report-config' && source.kind !== 'baseline-report') {
297
+ return false;
298
+ }
299
+ return stringValue(recordValue(source.seed)?.rdfAccelerationProfile) === 'baseline';
300
+ });
301
+ }
302
+ function countFusionCases(gate, field) {
303
+ return recordArrayValue(gate?.cases).filter((testCase) => booleanValue(testCase[field]) === true).length;
304
+ }
305
+ function countQueryCasesWithPlan(report, marker) {
306
+ return recordArrayValue(report.queryCases).filter((testCase) => (stringArrayValue(testCase.physicalPlan).some((entry) => entry.includes(marker)))).length;
307
+ }
308
+ function benchmarkGateConfigSourceShapeMismatches(sources, expected) {
309
+ const mismatches = [];
310
+ sources.forEach((source, index) => {
311
+ const seed = recordValue(source.seed);
312
+ if (!seed) {
313
+ if (source.kind === 'report-config' || source.kind === 'baseline-report') {
314
+ mismatches.push(`source[${index}].seed is missing`);
315
+ }
316
+ return;
317
+ }
318
+ const prefix = `source[${index}]`;
319
+ appendShapeMismatch(mismatches, `${prefix}.driver`, expected.driver, stringValue(seed.driver));
320
+ appendShapeMismatch(mismatches, `${prefix}.scale`, expected.scale, stringValue(seed.scale));
321
+ appendShapeMismatch(mismatches, `${prefix}.targetQuads`, expected.targetQuads, numberValue(seed.targetQuads));
322
+ appendShapeMismatch(mismatches, `${prefix}.caseProfile`, expected.caseProfile, stringValue(seed.caseProfile));
323
+ appendShapeMismatch(mismatches, `${prefix}.textSearchBackend`, expected.textSearchBackend, stringValue(seed.textSearchBackend));
324
+ });
325
+ return mismatches;
326
+ }
327
+ function appendShapeMismatch(mismatches, label, expected, actual) {
328
+ if (expected !== undefined && actual !== undefined && expected !== actual) {
329
+ mismatches.push(`${label} expected ${expected}, got ${actual}`);
330
+ }
331
+ }
332
+ function hasThresholds(gate) {
333
+ const thresholds = recordValue(gate?.thresholds);
334
+ return numberValue(thresholds?.maxScannedRows) !== undefined
335
+ || numberValue(thresholds?.maxP95DurationMs) !== undefined
336
+ || Object.keys(recordValue(thresholds?.cases) ?? {}).length > 0;
337
+ }
338
+ function baselineComparisonMatched(fusionBenchmarkGate, failedCases) {
339
+ if (!fusionBenchmarkGate) {
340
+ return undefined;
341
+ }
342
+ const hasBaselineComparison = recordArrayValue(fusionBenchmarkGate.cases)
343
+ .some((item) => Boolean(recordValue(item.baselineComparison)));
344
+ return hasBaselineComparison ? failedCases.length === 0 : undefined;
345
+ }
346
+ function errorMessage(error) {
347
+ return error instanceof Error ? error.message : String(error);
348
+ }
349
+ //# sourceMappingURL=RdfBenchmarkReportCatalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RdfBenchmarkReportCatalog.js","sourceRoot":"","sources":["../../../src/api/service/RdfBenchmarkReportCatalog.ts"],"names":[],"mappings":"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","sourcesContent":["import * as path from 'node:path';\nimport { readFile, readdir, stat } from 'node:fs/promises';\nimport { PACKAGE_ROOT } from '../../runtime/package-root';\n\nconst DEFAULT_MAX_REPORTS = 20;\nconst DEFAULT_MAX_DEPTH = 4;\nconst DEFAULT_CACHE_TTL_MS = 30_000;\nconst MAX_REPORT_BYTES = 25 * 1024 * 1024;\n\nexport interface RdfBenchmarkReportCatalogOptions {\n roots?: string[];\n packageRoot?: string;\n maxReports?: number;\n maxDepth?: number;\n cacheTtlMs?: number;\n}\n\nexport interface RdfBenchmarkReportCatalogSnapshot {\n roots: string[];\n reportCount: number;\n skippedFiles: number;\n errors: RdfBenchmarkReportCatalogError[];\n reports: RdfBenchmarkReportSummary[];\n}\n\nexport interface RdfBenchmarkReportCatalogError {\n path: string;\n message: string;\n}\n\nexport interface RdfBenchmarkReportSummary {\n id: string;\n path: string;\n generatedAt: string;\n engine: string;\n driver?: string;\n scale?: string;\n caseProfile?: string;\n rdfAccelerationProfile?: string;\n textSearchBackend?: string;\n seedQuadCount?: number;\n targetQuadCount?: number;\n fullScale?: boolean;\n iterations?: number;\n warmupIterations?: number;\n concurrency?: number;\n planMatched?: boolean;\n failedPlanCases: string[];\n concurrencyMatched?: boolean;\n failedConcurrencyCases: string[];\n servingRegressionMatched?: boolean;\n servingRegressionThresholdsConfigured?: boolean;\n failedServingRegressionCases: string[];\n fusionBenchmarkMatched?: boolean;\n fusionBenchmarkThresholdsConfigured?: boolean;\n failedFusionBenchmarkCases: string[];\n fusionBaselineComparisonMatched?: boolean;\n failedFusionBaselineComparisonCases: string[];\n benchmarkGateConfigSourcesConfigured?: boolean;\n fusionBaselineReportSourceConfigured?: boolean;\n benchmarkGateConfigSourceShapeMismatches: string[];\n fusionBaselineReportSourceBaselineProfileConfigured?: boolean;\n fusionHardFiltersBeforeRankCaseCount?: number;\n fusionBatchedBroadCandidateJoinCaseCount?: number;\n nativeTextFtsCaseCount?: number;\n nativeVectorCaseCount?: number;\n ingestDurationMs?: number;\n copyRows?: number;\n copyFallbacks?: number;\n refreshDurationMs?: number;\n plannerStatsDurationMs?: number;\n plannerStatsAnalyzedTables: string[];\n coldStartDurationMs?: number;\n firstQueryDurationMs?: number;\n warmP50DurationMs?: number;\n warmP95DurationMs?: number;\n storageFactsBytes?: number;\n storageDerivedBytes?: number;\n storageTotalBytes?: number;\n storageTotalToFactsRatio?: number;\n pgAccelerationEnabled?: boolean;\n pgAccelerationFallbackReason?: string;\n pgActiveOperators: string[];\n}\n\nexport class RdfBenchmarkReportCatalog {\n private readonly roots: string[];\n private readonly packageRoot: string;\n private readonly maxReports: number;\n private readonly maxDepth: number;\n private readonly cacheTtlMs: number;\n private cachedSnapshot?: {\n capturedAt: number;\n snapshot: RdfBenchmarkReportCatalogSnapshot;\n };\n\n public constructor(options: RdfBenchmarkReportCatalogOptions = {}) {\n this.packageRoot = options.packageRoot ?? PACKAGE_ROOT;\n this.roots = options.roots ?? [path.join(this.packageRoot, '.test-data')];\n this.maxReports = options.maxReports ?? DEFAULT_MAX_REPORTS;\n this.maxDepth = options.maxDepth ?? DEFAULT_MAX_DEPTH;\n this.cacheTtlMs = options.cacheTtlMs ?? DEFAULT_CACHE_TTL_MS;\n }\n\n public async snapshot(): Promise<RdfBenchmarkReportCatalogSnapshot> {\n const now = Date.now();\n if (this.cachedSnapshot && now - this.cachedSnapshot.capturedAt < this.cacheTtlMs) {\n return this.cachedSnapshot.snapshot;\n }\n\n const errors: RdfBenchmarkReportCatalogError[] = [];\n const files: string[] = [];\n let skippedFiles = 0;\n\n for (const root of this.roots) {\n const normalizedRoot = path.resolve(root);\n try {\n const found = await this.findReportFiles(normalizedRoot, normalizedRoot, 0);\n files.push(...found);\n } catch (error) {\n errors.push({ path: this.displayPath(normalizedRoot), message: errorMessage(error) });\n }\n }\n\n const reports: RdfBenchmarkReportSummary[] = [];\n const candidates = await this.sortNewestFirst(files, errors);\n for (const file of candidates) {\n if (reports.length >= this.maxReports) {\n skippedFiles += 1;\n continue;\n }\n const parsed = await this.readReport(file);\n if (parsed.ok) {\n reports.push(parsed.report);\n } else {\n skippedFiles += 1;\n errors.push({ path: this.displayPath(file), message: parsed.error });\n }\n }\n\n const snapshot = {\n roots: this.roots.map((root) => this.displayPath(path.resolve(root))),\n reportCount: reports.length,\n skippedFiles,\n errors,\n reports,\n };\n this.cachedSnapshot = { capturedAt: now, snapshot };\n return snapshot;\n }\n\n private async findReportFiles(root: string, current: string, depth: number): Promise<string[]> {\n const entries = await readdir(current, { withFileTypes: true });\n const files: string[] = [];\n for (const entry of entries) {\n const entryPath = path.join(current, entry.name);\n if (entry.isFile() && isBenchmarkReportFile(entry.name)) {\n files.push(entryPath);\n continue;\n }\n if (!entry.isDirectory() || depth >= this.maxDepth) {\n continue;\n }\n if (depth === 0 && isTestDataRoot(root) && !isRdfBenchmarkDirectory(entry.name)) {\n continue;\n }\n files.push(...await this.findReportFiles(root, entryPath, depth + 1));\n }\n return files;\n }\n\n private async sortNewestFirst(files: string[], errors: RdfBenchmarkReportCatalogError[]): Promise<string[]> {\n const entries: Array<{ file: string; mtimeMs: number }> = [];\n for (const file of files) {\n try {\n entries.push({ file, mtimeMs: (await stat(file)).mtimeMs });\n } catch (error) {\n errors.push({ path: this.displayPath(file), message: errorMessage(error) });\n }\n }\n return entries\n .sort((left, right) => right.mtimeMs - left.mtimeMs)\n .map((entry) => entry.file);\n }\n\n private async readReport(file: string): Promise<\n | { ok: true; report: RdfBenchmarkReportSummary }\n | { ok: false; error: string }\n > {\n try {\n const info = await stat(file);\n if (info.size > MAX_REPORT_BYTES) {\n return { ok: false, error: `Report exceeds ${MAX_REPORT_BYTES} bytes` };\n }\n const raw = await readFile(file, 'utf8');\n const parsed = JSON.parse(raw) as unknown;\n const report = summarizeBenchmarkReport(parsed, this.displayPath(file));\n if (!report) {\n return { ok: false, error: 'Unsupported RDF benchmark report shape' };\n }\n return { ok: true, report };\n } catch (error) {\n return { ok: false, error: errorMessage(error) };\n }\n }\n\n private displayPath(file: string): string {\n const relative = path.relative(this.packageRoot, file);\n return relative && !relative.startsWith('..') && !path.isAbsolute(relative) ? relative : file;\n }\n}\n\nfunction summarizeBenchmarkReport(input: unknown, reportPath: string): RdfBenchmarkReportSummary | undefined {\n if (!isRecord(input)) {\n return undefined;\n }\n const seed = recordValue(input.seed);\n const report = recordValue(input.report) ?? input;\n if (!isRecord(report)) {\n return undefined;\n }\n\n const generatedAt = stringValue(report.generatedAt) ?? timestampFromReportPath(reportPath);\n const engine = stringValue(report.engine);\n if (!engine || !generatedAt) {\n return undefined;\n }\n\n const storage = recordValue(report.storage);\n const pgAcceleration = recordValue(storage?.pgAcceleration);\n const refresh = recordValue(report.refreshBenchmark) ?? recordValue(report.refresh);\n const rdf3xRefresh = recordValue(recordValue(report.refresh)?.rdf3x);\n const plannerStats = recordValue(rdf3xRefresh?.plannerStats);\n const coldStart = recordValue(report.coldStartBenchmark);\n const startup = recordValue(coldStart?.startup);\n const firstQuery = recordValue(coldStart?.firstQueryAfterRefresh);\n const warmSteadyState = recordValue(coldStart?.warmSteadyState);\n const concurrencyGate = recordValue(report.concurrencyGate);\n const servingRegressionGate = recordValue(report.servingRegressionGate);\n const fusionBenchmarkGate = recordValue(report.fusionBenchmarkGate);\n const failedFusionBaselineComparisonCases = failedBaselineComparisonCases(fusionBenchmarkGate);\n const benchmarkGateConfigSources = recordArrayValue(seed?.benchmarkGateConfigSources);\n const driver = stringValue(seed?.driver);\n const scale = stringValue(report.scale) ?? stringValue(seed?.scale);\n const caseProfile = stringValue(report.caseProfile) ?? stringValue(seed?.caseProfile);\n const targetQuadCount = numberValue(seed?.targetQuadCount);\n const bulkLoad = recordValue(seed?.bulkLoad);\n const copyFromRows = recordValue(bulkLoad?.copyFromRows);\n\n return {\n id: path.basename(reportPath, '.json'),\n path: reportPath,\n generatedAt,\n engine,\n driver,\n scale,\n caseProfile,\n rdfAccelerationProfile: stringValue(seed?.rdfAccelerationProfile) ?? stringValue(pgAcceleration?.profile),\n textSearchBackend: stringValue(seed?.textSearchBackend),\n seedQuadCount: numberValue(seed?.seedQuadCount),\n targetQuadCount,\n fullScale: booleanValue(seed?.fullScale),\n iterations: numberValue(report.iterations) ?? numberValue(seed?.iterations),\n warmupIterations: numberValue(report.warmupIterations) ?? numberValue(seed?.warmupIterations),\n concurrency: numberValue(report.concurrency) ?? numberValue(seed?.concurrency),\n planMatched: booleanValue(report.planMatched),\n failedPlanCases: stringArrayValue(report.failedPlanCases),\n concurrencyMatched: booleanValue(concurrencyGate?.matched),\n failedConcurrencyCases: stringArrayValue(concurrencyGate?.failedCases),\n servingRegressionMatched: booleanValue(servingRegressionGate?.matched),\n servingRegressionThresholdsConfigured: hasThresholds(servingRegressionGate),\n failedServingRegressionCases: stringArrayValue(servingRegressionGate?.failedCases),\n fusionBenchmarkMatched: booleanValue(fusionBenchmarkGate?.matched),\n fusionBenchmarkThresholdsConfigured: hasThresholds(fusionBenchmarkGate),\n failedFusionBenchmarkCases: stringArrayValue(fusionBenchmarkGate?.failedCases),\n fusionBaselineComparisonMatched: baselineComparisonMatched(fusionBenchmarkGate, failedFusionBaselineComparisonCases),\n failedFusionBaselineComparisonCases,\n benchmarkGateConfigSourcesConfigured: benchmarkGateConfigSources.length > 0,\n fusionBaselineReportSourceConfigured: hasFusionBaselineReportSource(benchmarkGateConfigSources),\n benchmarkGateConfigSourceShapeMismatches: benchmarkGateConfigSourceShapeMismatches(benchmarkGateConfigSources, {\n driver,\n scale,\n targetQuads: targetQuadCount,\n caseProfile,\n textSearchBackend: stringValue(seed?.textSearchBackend),\n }),\n fusionBaselineReportSourceBaselineProfileConfigured: hasFusionBaselineReportSourceBaselineProfile(benchmarkGateConfigSources),\n fusionHardFiltersBeforeRankCaseCount: countFusionCases(fusionBenchmarkGate, 'hardFiltersBeforeRank'),\n fusionBatchedBroadCandidateJoinCaseCount: countFusionCases(fusionBenchmarkGate, 'batchedBroadCandidateJoin'),\n nativeTextFtsCaseCount: countQueryCasesWithPlan(report, 'PostgresNativeFts('),\n nativeVectorCaseCount: countQueryCasesWithPlan(report, 'PostgresNativeVector('),\n ingestDurationMs: numberValue(seed?.ingestDurationMs),\n copyRows: numberValue(copyFromRows?.rows),\n copyFallbacks: numberValue(copyFromRows?.fallbacks),\n refreshDurationMs: numberValue(refresh?.durationMs),\n plannerStatsDurationMs: numberValue(refresh?.plannerStatsDurationMs),\n plannerStatsAnalyzedTables: stringArrayValue(plannerStats?.analyzedTables),\n coldStartDurationMs: numberValue(startup?.durationMs),\n firstQueryDurationMs: numberValue(firstQuery?.durationMs),\n warmP50DurationMs: numberValue(warmSteadyState?.p50DurationMs),\n warmP95DurationMs: numberValue(warmSteadyState?.p95DurationMs),\n storageFactsBytes: numberValue(storage?.factsBytes),\n storageDerivedBytes: numberValue(storage?.derivedBytes),\n storageTotalBytes: numberValue(storage?.totalBytes),\n storageTotalToFactsRatio: numberValue(storage?.totalToFactsRatio),\n pgAccelerationEnabled: booleanValue(pgAcceleration?.enabled),\n pgAccelerationFallbackReason: stringValue(pgAcceleration?.fallbackReason),\n pgActiveOperators: stringArrayValue(pgAcceleration?.activeOperators),\n };\n}\n\nfunction isBenchmarkReportFile(name: string): boolean {\n return /^models-(postgres|rdf3x-shadow|baseline|shadow)-.+\\.json$/.test(name);\n}\n\nfunction isTestDataRoot(root: string): boolean {\n return path.basename(root) === '.test-data';\n}\n\nfunction isRdfBenchmarkDirectory(name: string): boolean {\n return name === 'rdf-engine' || name.startsWith('rdf-');\n}\n\nfunction timestampFromReportPath(reportPath: string): string | undefined {\n const match = reportPath.match(/models-[^-]+-(\\d{4}-\\d{2}-\\d{2}T\\d{2}-\\d{2}-\\d{2}-\\d{3}Z)/);\n if (!match) {\n return undefined;\n }\n return match[1].replace(/T(\\d{2})-(\\d{2})-(\\d{2})-(\\d{3})Z$/, 'T$1:$2:$3.$4Z');\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction recordValue(value: unknown): Record<string, unknown> | undefined {\n return isRecord(value) ? value : undefined;\n}\n\nfunction stringValue(value: unknown): string | undefined {\n return typeof value === 'string' ? value : undefined;\n}\n\nfunction numberValue(value: unknown): number | undefined {\n return typeof value === 'number' && Number.isFinite(value) ? value : undefined;\n}\n\nfunction booleanValue(value: unknown): boolean | undefined {\n return typeof value === 'boolean' ? value : undefined;\n}\n\nfunction stringArrayValue(value: unknown): string[] {\n return Array.isArray(value) ? value.filter((item): item is string => typeof item === 'string') : [];\n}\n\nfunction recordArrayValue(value: unknown): Record<string, unknown>[] {\n return Array.isArray(value) ? value.filter(isRecord) : [];\n}\n\nfunction failedBaselineComparisonCases(fusionBenchmarkGate: Record<string, unknown> | undefined): string[] {\n if (!fusionBenchmarkGate) {\n return [];\n }\n const failedCases: string[] = [];\n for (const item of recordArrayValue(fusionBenchmarkGate.cases)) {\n const baselineComparison = recordValue(item.baselineComparison);\n if (!baselineComparison) {\n continue;\n }\n if (booleanValue(baselineComparison.matched) !== true) {\n failedCases.push(stringValue(item.name) ?? 'unnamed fusion case');\n }\n }\n return failedCases;\n}\n\nfunction hasFusionBaselineReportSource(sources: readonly Record<string, unknown>[]): boolean {\n return sources.some((source) => source.kind === 'report-config' || source.kind === 'baseline-report');\n}\n\nfunction hasFusionBaselineReportSourceBaselineProfile(sources: readonly Record<string, unknown>[]): boolean {\n return sources.some((source) => {\n if (source.kind !== 'report-config' && source.kind !== 'baseline-report') {\n return false;\n }\n return stringValue(recordValue(source.seed)?.rdfAccelerationProfile) === 'baseline';\n });\n}\n\nfunction countFusionCases(gate: Record<string, unknown> | undefined, field: string): number {\n return recordArrayValue(gate?.cases).filter((testCase) => booleanValue(testCase[field]) === true).length;\n}\n\nfunction countQueryCasesWithPlan(report: Record<string, unknown>, marker: string): number {\n return recordArrayValue(report.queryCases).filter((testCase) => (\n stringArrayValue(testCase.physicalPlan).some((entry) => entry.includes(marker))\n )).length;\n}\n\nfunction benchmarkGateConfigSourceShapeMismatches(\n sources: readonly Record<string, unknown>[],\n expected: {\n driver?: string;\n scale?: string;\n targetQuads?: number;\n caseProfile?: string;\n textSearchBackend?: string;\n },\n): string[] {\n const mismatches: string[] = [];\n sources.forEach((source, index) => {\n const seed = recordValue(source.seed);\n if (!seed) {\n if (source.kind === 'report-config' || source.kind === 'baseline-report') {\n mismatches.push(`source[${index}].seed is missing`);\n }\n return;\n }\n const prefix = `source[${index}]`;\n appendShapeMismatch(mismatches, `${prefix}.driver`, expected.driver, stringValue(seed.driver));\n appendShapeMismatch(mismatches, `${prefix}.scale`, expected.scale, stringValue(seed.scale));\n appendShapeMismatch(mismatches, `${prefix}.targetQuads`, expected.targetQuads, numberValue(seed.targetQuads));\n appendShapeMismatch(mismatches, `${prefix}.caseProfile`, expected.caseProfile, stringValue(seed.caseProfile));\n appendShapeMismatch(mismatches, `${prefix}.textSearchBackend`, expected.textSearchBackend, stringValue(seed.textSearchBackend));\n });\n return mismatches;\n}\n\nfunction appendShapeMismatch<T extends string | number>(\n mismatches: string[],\n label: string,\n expected: T | undefined,\n actual: T | undefined,\n): void {\n if (expected !== undefined && actual !== undefined && expected !== actual) {\n mismatches.push(`${label} expected ${expected}, got ${actual}`);\n }\n}\n\nfunction hasThresholds(gate: Record<string, unknown> | undefined): boolean {\n const thresholds = recordValue(gate?.thresholds);\n return numberValue(thresholds?.maxScannedRows) !== undefined\n || numberValue(thresholds?.maxP95DurationMs) !== undefined\n || Object.keys(recordValue(thresholds?.cases) ?? {}).length > 0;\n}\n\nfunction baselineComparisonMatched(\n fusionBenchmarkGate: Record<string, unknown> | undefined,\n failedCases: string[],\n): boolean | undefined {\n if (!fusionBenchmarkGate) {\n return undefined;\n }\n const hasBaselineComparison = recordArrayValue(fusionBenchmarkGate.cases)\n .some((item) => Boolean(recordValue(item.baselineComparison)));\n return hasBaselineComparison ? failedCases.length === 0 : undefined;\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n"]}
@@ -0,0 +1,78 @@
1
+ import type { RdfBenchmarkReportCatalogSnapshot, RdfBenchmarkReportSummary } from './RdfBenchmarkReportCatalog';
2
+ export interface RdfBenchmarkReportGateOptions {
3
+ requiredScale?: string;
4
+ requiredDriver?: string;
5
+ requiredCaseProfile?: string;
6
+ requiredRdfAccelerationProfile?: string;
7
+ requiredTextSearchBackend?: string;
8
+ minTargetQuadCount?: number;
9
+ minSeedQuadCount?: number;
10
+ minIterations?: number;
11
+ minWarmupIterations?: number;
12
+ minConcurrency?: number;
13
+ requireFullScale?: boolean;
14
+ requireCopyIngest?: boolean;
15
+ allowCopyFallbacks?: boolean;
16
+ requirePlannerStats?: boolean;
17
+ requireColdWarmTimings?: boolean;
18
+ requireStorageRatio?: boolean;
19
+ requireServingRegressionGate?: boolean;
20
+ requireServingRegressionThresholds?: boolean;
21
+ requireFusionBenchmarkGate?: boolean;
22
+ requireFusionBenchmarkThresholds?: boolean;
23
+ requireFusionBaselineComparison?: boolean;
24
+ requireBenchmarkGateConfigSources?: boolean;
25
+ requireFusionBaselineReportSource?: boolean;
26
+ requireFusionBaselineSourceBaselineProfile?: boolean;
27
+ requireFusionHardFilterEvidence?: boolean;
28
+ requireFusionBatchedBroadCandidateJoinEvidence?: boolean;
29
+ requireNativeTextFtsEvidence?: boolean;
30
+ requireNativeVectorEvidence?: boolean;
31
+ }
32
+ export interface RdfBenchmarkReportGateResult {
33
+ matched: boolean;
34
+ evaluatedAt: string;
35
+ checkedReportCount: number;
36
+ required: RequiredRdfBenchmarkReportGateOptions;
37
+ matchedReport?: RdfBenchmarkReportSummary;
38
+ failedReasons: string[];
39
+ candidates: RdfBenchmarkReportGateCandidate[];
40
+ }
41
+ export interface RdfBenchmarkReportGateCandidate {
42
+ id: string;
43
+ path: string;
44
+ generatedAt: string;
45
+ matched: boolean;
46
+ failedReasons: string[];
47
+ }
48
+ export interface RequiredRdfBenchmarkReportGateOptions {
49
+ requiredScale: string;
50
+ requiredDriver: string;
51
+ requiredCaseProfile?: string;
52
+ requiredRdfAccelerationProfile?: string;
53
+ requiredTextSearchBackend?: string;
54
+ minTargetQuadCount: number;
55
+ minSeedQuadCount: number;
56
+ minIterations: number;
57
+ minWarmupIterations: number;
58
+ minConcurrency: number;
59
+ requireFullScale: boolean;
60
+ requireCopyIngest: boolean;
61
+ allowCopyFallbacks: boolean;
62
+ requirePlannerStats: boolean;
63
+ requireColdWarmTimings: boolean;
64
+ requireStorageRatio: boolean;
65
+ requireServingRegressionGate: boolean;
66
+ requireServingRegressionThresholds: boolean;
67
+ requireFusionBenchmarkGate: boolean;
68
+ requireFusionBenchmarkThresholds: boolean;
69
+ requireFusionBaselineComparison: boolean;
70
+ requireBenchmarkGateConfigSources: boolean;
71
+ requireFusionBaselineReportSource: boolean;
72
+ requireFusionBaselineSourceBaselineProfile: boolean;
73
+ requireFusionHardFilterEvidence: boolean;
74
+ requireFusionBatchedBroadCandidateJoinEvidence: boolean;
75
+ requireNativeTextFtsEvidence: boolean;
76
+ requireNativeVectorEvidence: boolean;
77
+ }
78
+ export declare function evaluateRdfBenchmarkReportGate(snapshot: RdfBenchmarkReportCatalogSnapshot, options?: RdfBenchmarkReportGateOptions): RdfBenchmarkReportGateResult;