@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
@@ -39,23 +39,23 @@ class QuadstoreSparqlEngine {
39
39
  this.delegate = loadCompatibilityModule()
40
40
  .then(({ QuadstoreSparqlEngine }) => new QuadstoreSparqlEngine(endpoint));
41
41
  }
42
- async queryBindings(query, basePath) {
43
- return (await this.delegate).queryBindings(query, basePath);
42
+ async queryBindings(query, basePath, accessScope) {
43
+ return (await this.delegate).queryBindings(query, basePath, accessScope);
44
44
  }
45
- async queryQuads(query, basePath) {
46
- return (await this.delegate).queryQuads(query, basePath);
45
+ async queryQuads(query, basePath, accessScope) {
46
+ return (await this.delegate).queryQuads(query, basePath, accessScope);
47
47
  }
48
- async queryBoolean(query, basePath) {
49
- return (await this.delegate).queryBoolean(query, basePath);
48
+ async queryBoolean(query, basePath, accessScope) {
49
+ return (await this.delegate).queryBoolean(query, basePath, accessScope);
50
50
  }
51
- async queryVoid(query, basePath) {
52
- await (await this.delegate).queryVoid(query, basePath);
51
+ async queryVoid(query, basePath, accessScope, options) {
52
+ await (await this.delegate).queryVoid(query, basePath, accessScope, options);
53
53
  }
54
- async constructGraph(graph, basePath) {
55
- return (await this.delegate).constructGraph(graph, basePath);
54
+ async constructGraph(graph, basePath, accessScope) {
55
+ return (await this.delegate).constructGraph(graph, basePath, accessScope);
56
56
  }
57
- async listGraphs(basePath) {
58
- return (await this.delegate).listGraphs(basePath);
57
+ async listGraphs(basePath, accessScope) {
58
+ return (await this.delegate).listGraphs(basePath, accessScope);
59
59
  }
60
60
  async close() {
61
61
  await (await this.delegate).close();
@@ -70,23 +70,23 @@ class QuintstoreSparqlEngine {
70
70
  this.delegate = loadCompatibilityModule()
71
71
  .then(({ QuintstoreSparqlEngine }) => new QuintstoreSparqlEngine(store));
72
72
  }
73
- async queryBindings(query, basePath) {
74
- return (await this.delegate).queryBindings(query, basePath);
73
+ async queryBindings(query, basePath, accessScope) {
74
+ return (await this.delegate).queryBindings(query, basePath, accessScope);
75
75
  }
76
- async queryQuads(query, basePath) {
77
- return (await this.delegate).queryQuads(query, basePath);
76
+ async queryQuads(query, basePath, accessScope) {
77
+ return (await this.delegate).queryQuads(query, basePath, accessScope);
78
78
  }
79
- async queryBoolean(query, basePath) {
80
- return (await this.delegate).queryBoolean(query, basePath);
79
+ async queryBoolean(query, basePath, accessScope) {
80
+ return (await this.delegate).queryBoolean(query, basePath, accessScope);
81
81
  }
82
- async queryVoid(query, basePath) {
83
- await (await this.delegate).queryVoid(query, basePath);
82
+ async queryVoid(query, basePath, accessScope, options) {
83
+ await (await this.delegate).queryVoid(query, basePath, accessScope);
84
84
  }
85
- async constructGraph(graph, basePath) {
86
- return (await this.delegate).constructGraph(graph, basePath);
85
+ async constructGraph(graph, basePath, accessScope) {
86
+ return (await this.delegate).constructGraph(graph, basePath, accessScope);
87
87
  }
88
- async listGraphs(basePath) {
89
- return (await this.delegate).listGraphs(basePath);
88
+ async listGraphs(basePath, accessScope) {
89
+ return (await this.delegate).listGraphs(basePath, accessScope);
90
90
  }
91
91
  async close() {
92
92
  await (await this.delegate).close();
@@ -1 +1 @@
1
- {"version":3,"file":"CompatibilitySparqlEngine.js","sourceRoot":"","sources":["../../../src/storage/sparql/CompatibilitySparqlEngine.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Quad } from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport type { SparqlEngine } from './SubgraphQueryEngine';\nimport type { QuintStore } from '../quint/types';\n\ntype CompatibilityModule = typeof import('./CompatibilitySparqlEngineImpl');\n\nasync function loadCompatibilityModule(): Promise<CompatibilityModule> {\n return import('./CompatibilitySparqlEngineImpl');\n}\n\n/**\n * @deprecated Compatibility wrapper preserved for older call sites.\n * Mainline xpod uses SolidRdfEngine for server-owned Pod queries.\n *\n * This file intentionally avoids static Comunica imports so exposing the\n * component type does not load the compatibility implementation.\n */\nexport class QuadstoreSparqlEngine implements SparqlEngine {\n private readonly delegate: Promise<SparqlEngine>;\n\n public constructor(endpoint: string) {\n this.delegate = loadCompatibilityModule()\n .then(({ QuadstoreSparqlEngine }) => new QuadstoreSparqlEngine(endpoint));\n }\n\n public async queryBindings(query: string, basePath: string): Promise<any> {\n return (await this.delegate).queryBindings(query, basePath);\n }\n\n public async queryQuads(query: string, basePath: string): Promise<any> {\n return (await this.delegate).queryQuads(query, basePath);\n }\n\n public async queryBoolean(query: string, basePath: string): Promise<boolean> {\n return (await this.delegate).queryBoolean(query, basePath);\n }\n\n public async queryVoid(query: string, basePath: string): Promise<void> {\n await (await this.delegate).queryVoid(query, basePath);\n }\n\n public async constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>> {\n return (await this.delegate).constructGraph(graph, basePath);\n }\n\n public async listGraphs(basePath: string): Promise<Set<string>> {\n return (await this.delegate).listGraphs(basePath);\n }\n\n public async close(): Promise<void> {\n await (await this.delegate).close();\n }\n}\n\n/**\n * Comunica-backed compatibility engine component.\n */\nexport class QuintstoreSparqlEngine implements SparqlEngine {\n private readonly delegate: Promise<SparqlEngine>;\n\n public constructor(store: QuintStore) {\n this.delegate = loadCompatibilityModule()\n .then(({ QuintstoreSparqlEngine }) => new QuintstoreSparqlEngine(store));\n }\n\n public async queryBindings(query: string, basePath: string): Promise<any> {\n return (await this.delegate).queryBindings(query, basePath);\n }\n\n public async queryQuads(query: string, basePath: string): Promise<any> {\n return (await this.delegate).queryQuads(query, basePath);\n }\n\n public async queryBoolean(query: string, basePath: string): Promise<boolean> {\n return (await this.delegate).queryBoolean(query, basePath);\n }\n\n public async queryVoid(query: string, basePath: string): Promise<void> {\n await (await this.delegate).queryVoid(query, basePath);\n }\n\n public async constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>> {\n return (await this.delegate).constructGraph(graph, basePath);\n }\n\n public async listGraphs(basePath: string): Promise<Set<string>> {\n return (await this.delegate).listGraphs(basePath);\n }\n\n public async close(): Promise<void> {\n await (await this.delegate).close();\n }\n}\n"]}
1
+ {"version":3,"file":"CompatibilitySparqlEngine.js","sourceRoot":"","sources":["../../../src/storage/sparql/CompatibilitySparqlEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,KAAK,UAAU,uBAAuB;IACpC,yDAAc,iCAAiC,IAAE;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAa,qBAAqB;IAGhC,YAAmB,QAAgB;QACjC,IAAI,CAAC,QAAQ,GAAG,uBAAuB,EAAE;aACtC,IAAI,CAAC,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B;QACtF,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC3E,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B;QACnF,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B;QACrF,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC1E,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B,EAAE,OAA2B;QAC/G,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/E,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B;QACvF,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,WAA4B;QACpE,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;CACF;AAnCD,sDAmCC;AAED;;GAEG;AACH,MAAa,sBAAsB;IAGjC,YAAmB,KAAiB;QAClC,IAAI,CAAC,QAAQ,GAAG,uBAAuB,EAAE;aACtC,IAAI,CAAC,CAAC,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAAC,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B;QACtF,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC3E,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B;QACnF,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B;QACrF,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC1E,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B,EAAE,OAA2B;QAC/G,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACtE,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B;QACvF,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,WAA4B;QACpE,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;CACF;AAnCD,wDAmCC","sourcesContent":["import type { Quad } from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport type { SparqlEngine, SparqlVoidOptions } from './SubgraphQueryEngine';\nimport type { QuintStore } from '../quint/types';\nimport type { RdfAccessScope } from '../rdf/RdfAccessScope';\n\ntype CompatibilityModule = typeof import('./CompatibilitySparqlEngineImpl');\n\nasync function loadCompatibilityModule(): Promise<CompatibilityModule> {\n return import('./CompatibilitySparqlEngineImpl');\n}\n\n/**\n * @deprecated Compatibility wrapper preserved for older call sites.\n * Mainline xpod uses SolidRdfEngine for server-owned Pod queries.\n *\n * This file intentionally avoids static Comunica imports so exposing the\n * component type does not load the compatibility implementation.\n */\nexport class QuadstoreSparqlEngine implements SparqlEngine {\n private readonly delegate: Promise<SparqlEngine>;\n\n public constructor(endpoint: string) {\n this.delegate = loadCompatibilityModule()\n .then(({ QuadstoreSparqlEngine }) => new QuadstoreSparqlEngine(endpoint));\n }\n\n public async queryBindings(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any> {\n return (await this.delegate).queryBindings(query, basePath, accessScope);\n }\n\n public async queryQuads(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any> {\n return (await this.delegate).queryQuads(query, basePath, accessScope);\n }\n\n public async queryBoolean(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<boolean> {\n return (await this.delegate).queryBoolean(query, basePath, accessScope);\n }\n\n public async queryVoid(query: string, basePath: string, accessScope?: RdfAccessScope, options?: SparqlVoidOptions): Promise<void> {\n await (await this.delegate).queryVoid(query, basePath, accessScope, options);\n }\n\n public async constructGraph(graph: string, basePath: string, accessScope?: RdfAccessScope): Promise<AsyncIterator<Quad>> {\n return (await this.delegate).constructGraph(graph, basePath, accessScope);\n }\n\n public async listGraphs(basePath: string, accessScope?: RdfAccessScope): Promise<Set<string>> {\n return (await this.delegate).listGraphs(basePath, accessScope);\n }\n\n public async close(): Promise<void> {\n await (await this.delegate).close();\n }\n}\n\n/**\n * Comunica-backed compatibility engine component.\n */\nexport class QuintstoreSparqlEngine implements SparqlEngine {\n private readonly delegate: Promise<SparqlEngine>;\n\n public constructor(store: QuintStore) {\n this.delegate = loadCompatibilityModule()\n .then(({ QuintstoreSparqlEngine }) => new QuintstoreSparqlEngine(store));\n }\n\n public async queryBindings(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any> {\n return (await this.delegate).queryBindings(query, basePath, accessScope);\n }\n\n public async queryQuads(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any> {\n return (await this.delegate).queryQuads(query, basePath, accessScope);\n }\n\n public async queryBoolean(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<boolean> {\n return (await this.delegate).queryBoolean(query, basePath, accessScope);\n }\n\n public async queryVoid(query: string, basePath: string, accessScope?: RdfAccessScope, options?: SparqlVoidOptions): Promise<void> {\n await (await this.delegate).queryVoid(query, basePath, accessScope);\n }\n\n public async constructGraph(graph: string, basePath: string, accessScope?: RdfAccessScope): Promise<AsyncIterator<Quad>> {\n return (await this.delegate).constructGraph(graph, basePath, accessScope);\n }\n\n public async listGraphs(basePath: string, accessScope?: RdfAccessScope): Promise<Set<string>> {\n return (await this.delegate).listGraphs(basePath, accessScope);\n }\n\n public async close(): Promise<void> {\n await (await this.delegate).close();\n }\n}\n"]}
@@ -1,7 +1,8 @@
1
1
  import type { Quad } from '@rdfjs/types';
2
2
  import type { AsyncIterator } from 'asynciterator';
3
- import type { SparqlEngine } from './SubgraphQueryEngine';
3
+ import type { SparqlEngine, SparqlVoidOptions } from './SubgraphQueryEngine';
4
4
  import type { QuintStore } from '../quint/types';
5
+ import { type RdfAccessScope } from '../rdf/RdfAccessScope';
5
6
  /**
6
7
  * @deprecated Compatibility wrapper preserved for older call sites.
7
8
  * Mainline xpod uses SolidRdfEngine for server-owned Pod queries.
@@ -9,12 +10,12 @@ import type { QuintStore } from '../quint/types';
9
10
  export declare class QuadstoreSparqlEngine implements SparqlEngine {
10
11
  private readonly delegate;
11
12
  constructor(endpoint: string);
12
- queryBindings(query: string, basePath: string): Promise<any>;
13
- queryQuads(query: string, basePath: string): Promise<any>;
14
- queryBoolean(query: string, basePath: string): Promise<boolean>;
15
- queryVoid(query: string, basePath: string): Promise<void>;
16
- constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>>;
17
- listGraphs(basePath: string): Promise<Set<string>>;
13
+ queryBindings(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any>;
14
+ queryQuads(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any>;
15
+ queryBoolean(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<boolean>;
16
+ queryVoid(query: string, basePath: string, accessScope?: RdfAccessScope, options?: SparqlVoidOptions): Promise<void>;
17
+ constructGraph(graph: string, basePath: string, accessScope?: RdfAccessScope): Promise<AsyncIterator<Quad>>;
18
+ listGraphs(basePath: string, accessScope?: RdfAccessScope): Promise<Set<string>>;
18
19
  close(): Promise<void>;
19
20
  }
20
21
  /**
@@ -25,11 +26,11 @@ export declare class QuintstoreSparqlEngine implements SparqlEngine {
25
26
  private readonly engine;
26
27
  private readonly ready;
27
28
  constructor(store: QuintStore);
28
- queryBindings(query: string, basePath: string): Promise<any>;
29
- queryQuads(query: string, basePath: string): Promise<any>;
30
- queryBoolean(query: string, basePath: string): Promise<boolean>;
31
- queryVoid(query: string, basePath: string): Promise<void>;
32
- constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>>;
33
- listGraphs(basePath: string): Promise<Set<string>>;
29
+ queryBindings(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any>;
30
+ queryQuads(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any>;
31
+ queryBoolean(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<boolean>;
32
+ queryVoid(query: string, basePath: string, accessScope?: RdfAccessScope, options?: SparqlVoidOptions): Promise<void>;
33
+ constructGraph(graph: string, basePath: string, accessScope?: RdfAccessScope): Promise<AsyncIterator<Quad>>;
34
+ listGraphs(basePath: string, accessScope?: RdfAccessScope): Promise<Set<string>>;
34
35
  close(): Promise<void>;
35
36
  }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QuintstoreSparqlEngine = exports.QuadstoreSparqlEngine = void 0;
4
4
  const ComunicaQuintEngine_1 = require("./ComunicaQuintEngine");
5
5
  const QuintEngine_1 = require("./QuintEngine");
6
+ const RdfAccessScope_1 = require("../rdf/RdfAccessScope");
6
7
  /**
7
8
  * @deprecated Compatibility wrapper preserved for older call sites.
8
9
  * Mainline xpod uses SolidRdfEngine for server-owned Pod queries.
@@ -12,23 +13,23 @@ class QuadstoreSparqlEngine {
12
13
  const store = new QuintEngine_1.QuintEngine({ endpoint }).getStore();
13
14
  this.delegate = new QuintstoreSparqlEngine(store);
14
15
  }
15
- async queryBindings(query, basePath) {
16
- return this.delegate.queryBindings(query, basePath);
16
+ async queryBindings(query, basePath, accessScope) {
17
+ return this.delegate.queryBindings(query, basePath, accessScope);
17
18
  }
18
- async queryQuads(query, basePath) {
19
- return this.delegate.queryQuads(query, basePath);
19
+ async queryQuads(query, basePath, accessScope) {
20
+ return this.delegate.queryQuads(query, basePath, accessScope);
20
21
  }
21
- async queryBoolean(query, basePath) {
22
- return this.delegate.queryBoolean(query, basePath);
22
+ async queryBoolean(query, basePath, accessScope) {
23
+ return this.delegate.queryBoolean(query, basePath, accessScope);
23
24
  }
24
- async queryVoid(query, basePath) {
25
- await this.delegate.queryVoid(query, basePath);
25
+ async queryVoid(query, basePath, accessScope, options) {
26
+ await this.delegate.queryVoid(query, basePath, accessScope, options);
26
27
  }
27
- async constructGraph(graph, basePath) {
28
- return this.delegate.constructGraph(graph, basePath);
28
+ async constructGraph(graph, basePath, accessScope) {
29
+ return this.delegate.constructGraph(graph, basePath, accessScope);
29
30
  }
30
- async listGraphs(basePath) {
31
- return this.delegate.listGraphs(basePath);
31
+ async listGraphs(basePath, accessScope) {
32
+ return this.delegate.listGraphs(basePath, accessScope);
32
33
  }
33
34
  async close() {
34
35
  await this.delegate.close();
@@ -44,35 +45,40 @@ class QuintstoreSparqlEngine {
44
45
  this.engine = new ComunicaQuintEngine_1.ComunicaQuintEngine(this.store);
45
46
  this.ready = this.store.open();
46
47
  }
47
- async queryBindings(query, basePath) {
48
+ async queryBindings(query, basePath, accessScope) {
49
+ assertCompatibilityAccessScope(accessScope, 'queryBindings');
48
50
  await this.ready;
49
51
  return this.engine.queryBindings(query, {
50
52
  baseIRI: basePath,
51
53
  filters: { graph: { $startsWith: basePath } },
52
54
  });
53
55
  }
54
- async queryQuads(query, basePath) {
56
+ async queryQuads(query, basePath, accessScope) {
57
+ assertCompatibilityAccessScope(accessScope, 'queryQuads');
55
58
  await this.ready;
56
59
  return this.engine.queryQuads(query, {
57
60
  baseIRI: basePath,
58
61
  filters: { graph: { $startsWith: basePath } },
59
62
  });
60
63
  }
61
- async queryBoolean(query, basePath) {
64
+ async queryBoolean(query, basePath, accessScope) {
65
+ assertCompatibilityAccessScope(accessScope, 'queryBoolean');
62
66
  await this.ready;
63
67
  return this.engine.queryBoolean(query, {
64
68
  baseIRI: basePath,
65
69
  filters: { graph: { $startsWith: basePath } },
66
70
  });
67
71
  }
68
- async queryVoid(query, basePath) {
72
+ async queryVoid(query, basePath, accessScope, options) {
73
+ assertCompatibilityAccessScope(accessScope, 'queryVoid');
69
74
  await this.ready;
70
75
  return this.engine.queryVoid(query, {
71
76
  baseIRI: basePath,
72
77
  filters: { graph: { $startsWith: basePath } },
73
78
  });
74
79
  }
75
- async constructGraph(graph, basePath) {
80
+ async constructGraph(graph, basePath, accessScope) {
81
+ assertCompatibilityAccessScope(accessScope, 'constructGraph');
76
82
  await this.ready;
77
83
  const constructQuery = `CONSTRUCT { ?s ?p ?o } WHERE { GRAPH <${graph}> { ?s ?p ?o } }`;
78
84
  return this.engine.queryQuads(constructQuery, {
@@ -80,7 +86,8 @@ class QuintstoreSparqlEngine {
80
86
  filters: { graph: { $startsWith: basePath } },
81
87
  });
82
88
  }
83
- async listGraphs(basePath) {
89
+ async listGraphs(basePath, accessScope) {
90
+ assertCompatibilityAccessScope(accessScope, 'listGraphs');
84
91
  await this.ready;
85
92
  const graphs = new Set();
86
93
  const query = 'SELECT DISTINCT ?g WHERE { GRAPH ?g { ?s ?p ?o } }';
@@ -109,4 +116,9 @@ class QuintstoreSparqlEngine {
109
116
  }
110
117
  }
111
118
  exports.QuintstoreSparqlEngine = QuintstoreSparqlEngine;
119
+ function assertCompatibilityAccessScope(accessScope, operation) {
120
+ if ((0, RdfAccessScope_1.isRestrictiveRdfAccessScope)(accessScope)) {
121
+ throw new Error(`Compatibility SPARQL engine cannot safely execute ${operation} with ACL/ACR graph restrictions`);
122
+ }
123
+ }
112
124
  //# sourceMappingURL=CompatibilitySparqlEngineImpl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CompatibilitySparqlEngineImpl.js","sourceRoot":"","sources":["../../../src/storage/sparql/CompatibilitySparqlEngineImpl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Quad, Variable } from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { ComunicaQuintEngine } from './ComunicaQuintEngine';\nimport { QuintEngine } from './QuintEngine';\nimport type { SparqlEngine } from './SubgraphQueryEngine';\nimport type { QuintStore } from '../quint/types';\n\n/**\n * @deprecated Compatibility wrapper preserved for older call sites.\n * Mainline xpod uses SolidRdfEngine for server-owned Pod queries.\n */\nexport class QuadstoreSparqlEngine implements SparqlEngine {\n private readonly delegate: QuintstoreSparqlEngine;\n\n public constructor(endpoint: string) {\n const store = new QuintEngine({ endpoint }).getStore();\n this.delegate = new QuintstoreSparqlEngine(store);\n }\n\n public async queryBindings(query: string, basePath: string): Promise<any> {\n return this.delegate.queryBindings(query, basePath);\n }\n\n public async queryQuads(query: string, basePath: string): Promise<any> {\n return this.delegate.queryQuads(query, basePath);\n }\n\n public async queryBoolean(query: string, basePath: string): Promise<boolean> {\n return this.delegate.queryBoolean(query, basePath);\n }\n\n public async queryVoid(query: string, basePath: string): Promise<void> {\n await this.delegate.queryVoid(query, basePath);\n }\n\n public async constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>> {\n return this.delegate.constructGraph(graph, basePath);\n }\n\n public async listGraphs(basePath: string): Promise<Set<string>> {\n return this.delegate.listGraphs(basePath);\n }\n\n public async close(): Promise<void> {\n await this.delegate.close();\n }\n}\n\n/**\n * Comunica-backed compatibility engine.\n */\nexport class QuintstoreSparqlEngine implements SparqlEngine {\n private readonly store: QuintStore;\n private readonly engine: ComunicaQuintEngine;\n private readonly ready: Promise<void>;\n\n public constructor(store: QuintStore) {\n this.store = store;\n this.engine = new ComunicaQuintEngine(this.store);\n this.ready = this.store.open();\n }\n\n public async queryBindings(query: string, basePath: string): Promise<any> {\n await this.ready;\n return this.engine.queryBindings(query, {\n baseIRI: basePath,\n filters: { graph: { $startsWith: basePath } },\n });\n }\n\n public async queryQuads(query: string, basePath: string): Promise<any> {\n await this.ready;\n return this.engine.queryQuads(query, {\n baseIRI: basePath,\n filters: { graph: { $startsWith: basePath } },\n });\n }\n\n public async queryBoolean(query: string, basePath: string): Promise<boolean> {\n await this.ready;\n return this.engine.queryBoolean(query, {\n baseIRI: basePath,\n filters: { graph: { $startsWith: basePath } },\n });\n }\n\n public async queryVoid(query: string, basePath: string): Promise<void> {\n await this.ready;\n return this.engine.queryVoid(query, {\n baseIRI: basePath,\n filters: { graph: { $startsWith: basePath } },\n });\n }\n\n public async constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>> {\n await this.ready;\n const constructQuery = `CONSTRUCT { ?s ?p ?o } WHERE { GRAPH <${graph}> { ?s ?p ?o } }`;\n return this.engine.queryQuads(constructQuery, {\n baseIRI: basePath,\n filters: { graph: { $startsWith: basePath } },\n }) as unknown as AsyncIterator<Quad>;\n }\n\n public async listGraphs(basePath: string): Promise<Set<string>> {\n await this.ready;\n const graphs = new Set<string>();\n const query = 'SELECT DISTINCT ?g WHERE { GRAPH ?g { ?s ?p ?o } }';\n const stream = await this.engine.queryBindings(query, {\n baseIRI: basePath,\n filters: { graph: { $startsWith: basePath } },\n });\n\n try {\n for await (const binding of stream as unknown as AsyncIterator<Map<string | Variable, { termType?: string; value: string }>>) {\n const value = binding.get('g');\n if (value?.termType === 'NamedNode') {\n graphs.add(value.value);\n }\n }\n } finally {\n const close = (stream as unknown as { close?: () => void }).close;\n if (typeof close === 'function') {\n close();\n }\n }\n\n return graphs;\n }\n\n public async close(): Promise<void> {\n await this.store.close();\n }\n}\n"]}
1
+ {"version":3,"file":"CompatibilitySparqlEngineImpl.js","sourceRoot":"","sources":["../../../src/storage/sparql/CompatibilitySparqlEngineImpl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Quad, Variable } from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { ComunicaQuintEngine } from './ComunicaQuintEngine';\nimport { QuintEngine } from './QuintEngine';\nimport type { SparqlEngine, SparqlVoidOptions } from './SubgraphQueryEngine';\nimport type { QuintStore } from '../quint/types';\nimport { isRestrictiveRdfAccessScope, type RdfAccessScope } from '../rdf/RdfAccessScope';\n\n/**\n * @deprecated Compatibility wrapper preserved for older call sites.\n * Mainline xpod uses SolidRdfEngine for server-owned Pod queries.\n */\nexport class QuadstoreSparqlEngine implements SparqlEngine {\n private readonly delegate: QuintstoreSparqlEngine;\n\n public constructor(endpoint: string) {\n const store = new QuintEngine({ endpoint }).getStore();\n this.delegate = new QuintstoreSparqlEngine(store);\n }\n\n public async queryBindings(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any> {\n return this.delegate.queryBindings(query, basePath, accessScope);\n }\n\n public async queryQuads(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any> {\n return this.delegate.queryQuads(query, basePath, accessScope);\n }\n\n public async queryBoolean(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<boolean> {\n return this.delegate.queryBoolean(query, basePath, accessScope);\n }\n\n public async queryVoid(query: string, basePath: string, accessScope?: RdfAccessScope, options?: SparqlVoidOptions): Promise<void> {\n await this.delegate.queryVoid(query, basePath, accessScope, options);\n }\n\n public async constructGraph(graph: string, basePath: string, accessScope?: RdfAccessScope): Promise<AsyncIterator<Quad>> {\n return this.delegate.constructGraph(graph, basePath, accessScope);\n }\n\n public async listGraphs(basePath: string, accessScope?: RdfAccessScope): Promise<Set<string>> {\n return this.delegate.listGraphs(basePath, accessScope);\n }\n\n public async close(): Promise<void> {\n await this.delegate.close();\n }\n}\n\n/**\n * Comunica-backed compatibility engine.\n */\nexport class QuintstoreSparqlEngine implements SparqlEngine {\n private readonly store: QuintStore;\n private readonly engine: ComunicaQuintEngine;\n private readonly ready: Promise<void>;\n\n public constructor(store: QuintStore) {\n this.store = store;\n this.engine = new ComunicaQuintEngine(this.store);\n this.ready = this.store.open();\n }\n\n public async queryBindings(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any> {\n assertCompatibilityAccessScope(accessScope, 'queryBindings');\n await this.ready;\n return this.engine.queryBindings(query, {\n baseIRI: basePath,\n filters: { graph: { $startsWith: basePath } },\n });\n }\n\n public async queryQuads(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any> {\n assertCompatibilityAccessScope(accessScope, 'queryQuads');\n await this.ready;\n return this.engine.queryQuads(query, {\n baseIRI: basePath,\n filters: { graph: { $startsWith: basePath } },\n });\n }\n\n public async queryBoolean(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<boolean> {\n assertCompatibilityAccessScope(accessScope, 'queryBoolean');\n await this.ready;\n return this.engine.queryBoolean(query, {\n baseIRI: basePath,\n filters: { graph: { $startsWith: basePath } },\n });\n }\n\n public async queryVoid(query: string, basePath: string, accessScope?: RdfAccessScope, options?: SparqlVoidOptions): Promise<void> {\n assertCompatibilityAccessScope(accessScope, 'queryVoid');\n await this.ready;\n return this.engine.queryVoid(query, {\n baseIRI: basePath,\n filters: { graph: { $startsWith: basePath } },\n });\n }\n\n public async constructGraph(graph: string, basePath: string, accessScope?: RdfAccessScope): Promise<AsyncIterator<Quad>> {\n assertCompatibilityAccessScope(accessScope, 'constructGraph');\n await this.ready;\n const constructQuery = `CONSTRUCT { ?s ?p ?o } WHERE { GRAPH <${graph}> { ?s ?p ?o } }`;\n return this.engine.queryQuads(constructQuery, {\n baseIRI: basePath,\n filters: { graph: { $startsWith: basePath } },\n }) as unknown as AsyncIterator<Quad>;\n }\n\n public async listGraphs(basePath: string, accessScope?: RdfAccessScope): Promise<Set<string>> {\n assertCompatibilityAccessScope(accessScope, 'listGraphs');\n await this.ready;\n const graphs = new Set<string>();\n const query = 'SELECT DISTINCT ?g WHERE { GRAPH ?g { ?s ?p ?o } }';\n const stream = await this.engine.queryBindings(query, {\n baseIRI: basePath,\n filters: { graph: { $startsWith: basePath } },\n });\n\n try {\n for await (const binding of stream as unknown as AsyncIterator<Map<string | Variable, { termType?: string; value: string }>>) {\n const value = binding.get('g');\n if (value?.termType === 'NamedNode') {\n graphs.add(value.value);\n }\n }\n } finally {\n const close = (stream as unknown as { close?: () => void }).close;\n if (typeof close === 'function') {\n close();\n }\n }\n\n return graphs;\n }\n\n public async close(): Promise<void> {\n await this.store.close();\n }\n}\n\nfunction assertCompatibilityAccessScope(accessScope: RdfAccessScope | undefined, operation: string): void {\n if (isRestrictiveRdfAccessScope(accessScope)) {\n throw new Error(`Compatibility SPARQL engine cannot safely execute ${operation} with ACL/ACR graph restrictions`);\n }\n}\n"]}
@@ -1,15 +1,24 @@
1
1
  import type { Quad } from '@rdfjs/types';
2
2
  import type { AsyncIterator } from 'asynciterator';
3
+ import type { RdfAccessScope } from '../rdf/RdfAccessScope';
4
+ export interface SparqlLoadDocumentOptions {
5
+ sourceUri: string;
6
+ body: string;
7
+ mediaType?: string;
8
+ }
9
+ export interface SparqlVoidOptions {
10
+ loadDocument?: SparqlLoadDocumentOptions;
11
+ }
3
12
  /**
4
13
  * SPARQL Engine interface - common abstraction for SPARQL query engines
5
14
  */
6
15
  export interface SparqlEngine {
7
- queryBindings(query: string, basePath: string): Promise<any>;
8
- queryQuads(query: string, basePath: string): Promise<any>;
9
- queryBoolean(query: string, basePath: string): Promise<boolean>;
10
- queryVoid(query: string, basePath: string): Promise<void>;
11
- constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>>;
12
- listGraphs(basePath: string): Promise<Set<string>>;
16
+ queryBindings(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any>;
17
+ queryQuads(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any>;
18
+ queryBoolean(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<boolean>;
19
+ queryVoid(query: string, basePath: string, accessScope?: RdfAccessScope, options?: SparqlVoidOptions): Promise<void>;
20
+ constructGraph(graph: string, basePath: string, accessScope?: RdfAccessScope): Promise<AsyncIterator<Quad>>;
21
+ listGraphs(basePath: string, accessScope?: RdfAccessScope): Promise<Set<string>>;
13
22
  close(): Promise<void>;
14
23
  }
15
24
  /**
@@ -25,11 +34,11 @@ export declare class SubgraphQueryEngine {
25
34
  * @param engine - A SparqlEngine implementation
26
35
  */
27
36
  constructor(engine: SparqlEngine);
28
- queryBindings(query: string, basePath: string): Promise<any>;
29
- queryQuads(query: string, basePath: string): Promise<any>;
30
- queryBoolean(query: string, basePath: string): Promise<boolean>;
31
- queryVoid(query: string, basePath: string): Promise<void>;
32
- constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>>;
33
- listGraphs(basePath: string): Promise<Set<string>>;
37
+ queryBindings(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any>;
38
+ queryQuads(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any>;
39
+ queryBoolean(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<boolean>;
40
+ queryVoid(query: string, basePath: string, accessScope?: RdfAccessScope, options?: SparqlVoidOptions): Promise<void>;
41
+ constructGraph(graph: string, basePath: string, accessScope?: RdfAccessScope): Promise<AsyncIterator<Quad>>;
42
+ listGraphs(basePath: string, accessScope?: RdfAccessScope): Promise<Set<string>>;
34
43
  close(): Promise<void>;
35
44
  }
@@ -16,23 +16,23 @@ class SubgraphQueryEngine {
16
16
  this.logger = (0, global_logger_factory_1.getLoggerFor)(this);
17
17
  this.impl = engine;
18
18
  }
19
- async queryBindings(query, basePath) {
20
- return this.impl.queryBindings(query, basePath);
19
+ async queryBindings(query, basePath, accessScope) {
20
+ return this.impl.queryBindings(query, basePath, accessScope);
21
21
  }
22
- async queryQuads(query, basePath) {
23
- return this.impl.queryQuads(query, basePath);
22
+ async queryQuads(query, basePath, accessScope) {
23
+ return this.impl.queryQuads(query, basePath, accessScope);
24
24
  }
25
- async queryBoolean(query, basePath) {
26
- return this.impl.queryBoolean(query, basePath);
25
+ async queryBoolean(query, basePath, accessScope) {
26
+ return this.impl.queryBoolean(query, basePath, accessScope);
27
27
  }
28
- async queryVoid(query, basePath) {
29
- return this.impl.queryVoid(query, basePath);
28
+ async queryVoid(query, basePath, accessScope, options) {
29
+ return this.impl.queryVoid(query, basePath, accessScope, options);
30
30
  }
31
- async constructGraph(graph, basePath) {
32
- return this.impl.constructGraph(graph, basePath);
31
+ async constructGraph(graph, basePath, accessScope) {
32
+ return this.impl.constructGraph(graph, basePath, accessScope);
33
33
  }
34
- async listGraphs(basePath) {
35
- return this.impl.listGraphs(basePath);
34
+ async listGraphs(basePath, accessScope) {
35
+ return this.impl.listGraphs(basePath, accessScope);
36
36
  }
37
37
  async close() {
38
38
  return this.impl.close();
@@ -1 +1 @@
1
- {"version":3,"file":"SubgraphQueryEngine.js","sourceRoot":"","sources":["../../../src/storage/sparql/SubgraphQueryEngine.ts"],"names":[],"mappings":";;;AAEA,iEAAqD;AAerD;;;;GAIG;AACH,MAAa,mBAAmB;IAI9B;;;OAGG;IACH,YAAmB,MAAoB;QAPtB,WAAM,GAAG,IAAA,oCAAY,EAAC,IAAI,CAAC,CAAC;QAQ3C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,QAAgB;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,QAAgB;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,QAAgB;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,QAAgB;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,QAAgB;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,QAAgB;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF;AAvCD,kDAuCC","sourcesContent":["import type { Quad } from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { getLoggerFor } from 'global-logger-factory';\n\n/**\n * SPARQL Engine interface - common abstraction for SPARQL query engines\n */\nexport interface SparqlEngine {\n queryBindings(query: string, basePath: string): Promise<any>;\n queryQuads(query: string, basePath: string): Promise<any>;\n queryBoolean(query: string, basePath: string): Promise<boolean>;\n queryVoid(query: string, basePath: string): Promise<void>;\n constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>>;\n listGraphs(basePath: string): Promise<Set<string>>;\n close(): Promise<void>;\n}\n\n/**\n * SubgraphQueryEngine - SPARQL engine with subgraph (tenant) isolation\n * \n * Wraps a SparqlEngine implementation for use in the system.\n */\nexport class SubgraphQueryEngine {\n private readonly logger = getLoggerFor(this);\n private readonly impl: SparqlEngine;\n\n /**\n * Create a SubgraphQueryEngine\n * @param engine - A SparqlEngine implementation\n */\n public constructor(engine: SparqlEngine) {\n this.impl = engine;\n }\n\n public async queryBindings(query: string, basePath: string): Promise<any> {\n return this.impl.queryBindings(query, basePath);\n }\n\n public async queryQuads(query: string, basePath: string): Promise<any> {\n return this.impl.queryQuads(query, basePath);\n }\n\n public async queryBoolean(query: string, basePath: string): Promise<boolean> {\n return this.impl.queryBoolean(query, basePath);\n }\n\n public async queryVoid(query: string, basePath: string): Promise<void> {\n return this.impl.queryVoid(query, basePath);\n }\n\n public async constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>> {\n return this.impl.constructGraph(graph, basePath);\n }\n\n public async listGraphs(basePath: string): Promise<Set<string>> {\n return this.impl.listGraphs(basePath);\n }\n\n public async close(): Promise<void> {\n return this.impl.close();\n }\n}\n"]}
1
+ {"version":3,"file":"SubgraphQueryEngine.js","sourceRoot":"","sources":["../../../src/storage/sparql/SubgraphQueryEngine.ts"],"names":[],"mappings":";;;AAEA,iEAAqD;AA0BrD;;;;GAIG;AACH,MAAa,mBAAmB;IAI9B;;;OAGG;IACH,YAAmB,MAAoB;QAPtB,WAAM,GAAG,IAAA,oCAAY,EAAC,IAAI,CAAC,CAAC;QAQ3C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B;QACtF,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B;QACnF,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B;QACrF,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B,EAAE,OAA2B;QAC/G,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,QAAgB,EAAE,WAA4B;QACvF,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,WAA4B;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF;AAvCD,kDAuCC","sourcesContent":["import type { Quad } from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { RdfAccessScope } from '../rdf/RdfAccessScope';\n\nexport interface SparqlLoadDocumentOptions {\n sourceUri: string;\n body: string;\n mediaType?: string;\n}\n\nexport interface SparqlVoidOptions {\n loadDocument?: SparqlLoadDocumentOptions;\n}\n\n/**\n * SPARQL Engine interface - common abstraction for SPARQL query engines\n */\nexport interface SparqlEngine {\n queryBindings(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any>;\n queryQuads(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any>;\n queryBoolean(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<boolean>;\n queryVoid(query: string, basePath: string, accessScope?: RdfAccessScope, options?: SparqlVoidOptions): Promise<void>;\n constructGraph(graph: string, basePath: string, accessScope?: RdfAccessScope): Promise<AsyncIterator<Quad>>;\n listGraphs(basePath: string, accessScope?: RdfAccessScope): Promise<Set<string>>;\n close(): Promise<void>;\n}\n\n/**\n * SubgraphQueryEngine - SPARQL engine with subgraph (tenant) isolation\n * \n * Wraps a SparqlEngine implementation for use in the system.\n */\nexport class SubgraphQueryEngine {\n private readonly logger = getLoggerFor(this);\n private readonly impl: SparqlEngine;\n\n /**\n * Create a SubgraphQueryEngine\n * @param engine - A SparqlEngine implementation\n */\n public constructor(engine: SparqlEngine) {\n this.impl = engine;\n }\n\n public async queryBindings(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any> {\n return this.impl.queryBindings(query, basePath, accessScope);\n }\n\n public async queryQuads(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<any> {\n return this.impl.queryQuads(query, basePath, accessScope);\n }\n\n public async queryBoolean(query: string, basePath: string, accessScope?: RdfAccessScope): Promise<boolean> {\n return this.impl.queryBoolean(query, basePath, accessScope);\n }\n\n public async queryVoid(query: string, basePath: string, accessScope?: RdfAccessScope, options?: SparqlVoidOptions): Promise<void> {\n return this.impl.queryVoid(query, basePath, accessScope, options);\n }\n\n public async constructGraph(graph: string, basePath: string, accessScope?: RdfAccessScope): Promise<AsyncIterator<Quad>> {\n return this.impl.constructGraph(graph, basePath, accessScope);\n }\n\n public async listGraphs(basePath: string, accessScope?: RdfAccessScope): Promise<Set<string>> {\n return this.impl.listGraphs(basePath, accessScope);\n }\n\n public async close(): Promise<void> {\n return this.impl.close();\n }\n}\n"]}
@@ -12,6 +12,7 @@ const os_1 = require("os");
12
12
  const path_1 = require("path");
13
13
  const crypto_1 = require("crypto");
14
14
  const global_logger_factory_1 = require("global-logger-factory");
15
+ const safe_env_1 = require("../../runtime/safe-env");
15
16
  let sandboxExecAvailable;
16
17
  class MacOSSandbox {
17
18
  constructor() {
@@ -41,7 +42,7 @@ class MacOSSandbox {
41
42
  const childProcess = (0, child_process_1.spawn)('sandbox-exec', ['-f', profilePath, config.command, ...config.args], {
42
43
  cwd: config.workdir,
43
44
  env: {
44
- ...process.env,
45
+ ...(0, safe_env_1.sanitizeRuntimeEnv)(process.env),
45
46
  ...config.env,
46
47
  TERM: 'xterm-256color',
47
48
  },
@@ -1 +1 @@
1
- {"version":3,"file":"MacOSSandbox.js","sourceRoot":"","sources":["../../../src/terminal/sandbox/MacOSSandbox.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,iDAAgD;AAChD,2BAA+C;AAC/C,2BAA4B;AAC5B,+BAA4B;AAC5B,mCAAoC;AACpC,iEAAqD;AAGrD,IAAI,oBAAyC,CAAC;AAE9C,MAAa,YAAY;IAAzB;QACqB,WAAM,GAAG,IAAA,oCAAY,EAAC,IAAI,CAAC,CAAC;IA4GjD,CAAC;IA1GQ,WAAW;QAChB,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,kDAAkD;gBAClD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAClC,oBAAoB,GAAG,KAAK,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,IAAA,wBAAQ,EAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACpD,oBAAoB,GAAG,IAAI,CAAC;gBAC9B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,oBAAoB,GAAG,KAAK,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,MAAqB;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,IAAA,qBAAK,EAAC,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE;YAC9F,GAAG,EAAE,MAAM,CAAC,OAAO;YACnB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,GAAG,MAAM,CAAC,GAAG;gBACb,IAAI,EAAE,gBAAgB;aACvB;YACD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,uCAAuC;QACvC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC;gBACH,IAAA,eAAU,EAAC,WAAW,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,cAAc;SAC3B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACK,aAAa,CAAC,MAAqB;QACzC,MAAM,SAAS,GAAG,IAAA,mBAAU,GAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,gBAAgB,SAAS,KAAK,CAAC,CAAC;QAEnE,MAAM,KAAK,GAAa;YACtB,aAAa;YACb,EAAE;YACF,kEAAkE;YAClE,iBAAiB;YACjB,EAAE;YACF,mDAAmD;YACnD,kCAAkC;YAClC,EAAE;YACF,2BAA2B;YAC3B,gCAAgC,MAAM,CAAC,OAAO,KAAK;YACnD,EAAE;YACF,oCAAoC;YACpC,8CAA8C;YAC9C,sCAAsC;YACtC,gCAAgC,IAAA,WAAM,GAAE,KAAK;YAC7C,8CAA8C;YAC9C,sDAAsD;SACvD,CAAC;QAEF,oBAAoB;QACpB,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChC,CAAC;QAED,2DAA2D;QAC3D,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YACxE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAA,kBAAa,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;QAC7D,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AA7GD,oCA6GC","sourcesContent":["/**\n * macOS Sandbox (sandbox-exec / Seatbelt)\n *\n * Uses macOS sandbox-exec with Seatbelt profiles for process isolation.\n */\nimport { spawn, execSync } from 'child_process';\nimport { writeFileSync, unlinkSync } from 'fs';\nimport { tmpdir } from 'os';\nimport { join } from 'path';\nimport { randomUUID } from 'crypto';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { Sandbox, SandboxConfig, SandboxResult } from './types';\n\nlet sandboxExecAvailable: boolean | undefined;\n\nexport class MacOSSandbox implements Sandbox {\n protected readonly logger = getLoggerFor(this);\n\n public isAvailable(): boolean {\n if (sandboxExecAvailable === undefined) {\n try {\n // Check if we're on macOS and sandbox-exec exists\n if (process.platform !== 'darwin') {\n sandboxExecAvailable = false;\n } else {\n execSync('which sandbox-exec', { stdio: 'ignore' });\n sandboxExecAvailable = true;\n }\n } catch {\n sandboxExecAvailable = false;\n }\n }\n return sandboxExecAvailable;\n }\n\n public launch(config: SandboxConfig): SandboxResult {\n const profilePath = this.createProfile(config);\n\n this.logger.info(`Launching macOS sandbox: ${config.command}`);\n\n const childProcess = spawn('sandbox-exec', ['-f', profilePath, config.command, ...config.args], {\n cwd: config.workdir,\n env: {\n ...process.env,\n ...config.env,\n TERM: 'xterm-256color',\n },\n stdio: ['pipe', 'pipe', 'pipe'],\n });\n\n // Clean up profile after process exits\n childProcess.on('exit', () => {\n try {\n unlinkSync(profilePath);\n } catch {\n // Ignore cleanup errors\n }\n });\n\n return {\n process: childProcess,\n sandboxed: true,\n technology: 'sandbox-exec',\n };\n }\n\n /**\n * Create a Seatbelt profile for the sandbox.\n *\n * Strategy: Allow most operations by default, then deny writes outside workdir.\n * This is more robust than deny-by-default which breaks many macOS subsystems.\n *\n * Profile:\n * - Allow default (reading, processes, etc.)\n * - Deny writes to root filesystem\n * - Allow writes only to: workdir, temp dirs, var/folders\n * - Optionally deny network\n */\n private createProfile(config: SandboxConfig): string {\n const profileId = randomUUID().replace(/-/g, '').slice(0, 8);\n const profilePath = join(tmpdir(), `xpod-sandbox-${profileId}.sb`);\n\n const rules: string[] = [\n '(version 1)',\n '',\n '; Allow most operations by default (macOS needs many subsystems)',\n '(allow default)',\n '',\n '; Deny writes to the entire filesystem by default',\n '(deny file-write* (subpath \"/\"))',\n '',\n '; Allow writes to workdir',\n `(allow file-write* (subpath \"${config.workdir}\"))`,\n '',\n '; Allow writes to temp directories',\n '(allow file-write* (subpath \"/private/tmp\"))',\n '(allow file-write* (subpath \"/tmp\"))',\n `(allow file-write* (subpath \"${tmpdir()}\"))`,\n '(allow file-write* (subpath \"/var/folders\"))',\n '(allow file-write* (subpath \"/private/var/folders\"))',\n ];\n\n // Network isolation\n if (config.isolateNetwork) {\n rules.push('');\n rules.push('; Deny network access');\n rules.push('(deny network*)');\n }\n\n // Additional read-only paths (already readable by default)\n if (config.readonlyPaths) {\n rules.push('');\n rules.push('; Additional read-only paths (already allowed by default)');\n for (const p of config.readonlyPaths) {\n rules.push(`; readonly: ${p}`);\n }\n }\n\n const profile = rules.join('\\n');\n writeFileSync(profilePath, profile);\n\n this.logger.debug(`Created sandbox profile: ${profilePath}`);\n return profilePath;\n }\n}\n"]}
1
+ {"version":3,"file":"MacOSSandbox.js","sourceRoot":"","sources":["../../../src/terminal/sandbox/MacOSSandbox.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,iDAAgD;AAChD,2BAA+C;AAC/C,2BAA4B;AAC5B,+BAA4B;AAC5B,mCAAoC;AACpC,iEAAqD;AAErD,qDAA4D;AAE5D,IAAI,oBAAyC,CAAC;AAE9C,MAAa,YAAY;IAAzB;QACqB,WAAM,GAAG,IAAA,oCAAY,EAAC,IAAI,CAAC,CAAC;IA4GjD,CAAC;IA1GQ,WAAW;QAChB,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,kDAAkD;gBAClD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAClC,oBAAoB,GAAG,KAAK,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,IAAA,wBAAQ,EAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACpD,oBAAoB,GAAG,IAAI,CAAC;gBAC9B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,oBAAoB,GAAG,KAAK,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,MAAqB;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,IAAA,qBAAK,EAAC,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE;YAC9F,GAAG,EAAE,MAAM,CAAC,OAAO;YACnB,GAAG,EAAE;gBACH,GAAG,IAAA,6BAAkB,EAAC,OAAO,CAAC,GAAG,CAAC;gBAClC,GAAG,MAAM,CAAC,GAAG;gBACb,IAAI,EAAE,gBAAgB;aACvB;YACD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,uCAAuC;QACvC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC;gBACH,IAAA,eAAU,EAAC,WAAW,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,cAAc;SAC3B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACK,aAAa,CAAC,MAAqB;QACzC,MAAM,SAAS,GAAG,IAAA,mBAAU,GAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,gBAAgB,SAAS,KAAK,CAAC,CAAC;QAEnE,MAAM,KAAK,GAAa;YACtB,aAAa;YACb,EAAE;YACF,kEAAkE;YAClE,iBAAiB;YACjB,EAAE;YACF,mDAAmD;YACnD,kCAAkC;YAClC,EAAE;YACF,2BAA2B;YAC3B,gCAAgC,MAAM,CAAC,OAAO,KAAK;YACnD,EAAE;YACF,oCAAoC;YACpC,8CAA8C;YAC9C,sCAAsC;YACtC,gCAAgC,IAAA,WAAM,GAAE,KAAK;YAC7C,8CAA8C;YAC9C,sDAAsD;SACvD,CAAC;QAEF,oBAAoB;QACpB,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChC,CAAC;QAED,2DAA2D;QAC3D,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YACxE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAA,kBAAa,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;QAC7D,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AA7GD,oCA6GC","sourcesContent":["/**\n * macOS Sandbox (sandbox-exec / Seatbelt)\n *\n * Uses macOS sandbox-exec with Seatbelt profiles for process isolation.\n */\nimport { spawn, execSync } from 'child_process';\nimport { writeFileSync, unlinkSync } from 'fs';\nimport { tmpdir } from 'os';\nimport { join } from 'path';\nimport { randomUUID } from 'crypto';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { Sandbox, SandboxConfig, SandboxResult } from './types';\nimport { sanitizeRuntimeEnv } from '../../runtime/safe-env';\n\nlet sandboxExecAvailable: boolean | undefined;\n\nexport class MacOSSandbox implements Sandbox {\n protected readonly logger = getLoggerFor(this);\n\n public isAvailable(): boolean {\n if (sandboxExecAvailable === undefined) {\n try {\n // Check if we're on macOS and sandbox-exec exists\n if (process.platform !== 'darwin') {\n sandboxExecAvailable = false;\n } else {\n execSync('which sandbox-exec', { stdio: 'ignore' });\n sandboxExecAvailable = true;\n }\n } catch {\n sandboxExecAvailable = false;\n }\n }\n return sandboxExecAvailable;\n }\n\n public launch(config: SandboxConfig): SandboxResult {\n const profilePath = this.createProfile(config);\n\n this.logger.info(`Launching macOS sandbox: ${config.command}`);\n\n const childProcess = spawn('sandbox-exec', ['-f', profilePath, config.command, ...config.args], {\n cwd: config.workdir,\n env: {\n ...sanitizeRuntimeEnv(process.env),\n ...config.env,\n TERM: 'xterm-256color',\n },\n stdio: ['pipe', 'pipe', 'pipe'],\n });\n\n // Clean up profile after process exits\n childProcess.on('exit', () => {\n try {\n unlinkSync(profilePath);\n } catch {\n // Ignore cleanup errors\n }\n });\n\n return {\n process: childProcess,\n sandboxed: true,\n technology: 'sandbox-exec',\n };\n }\n\n /**\n * Create a Seatbelt profile for the sandbox.\n *\n * Strategy: Allow most operations by default, then deny writes outside workdir.\n * This is more robust than deny-by-default which breaks many macOS subsystems.\n *\n * Profile:\n * - Allow default (reading, processes, etc.)\n * - Deny writes to root filesystem\n * - Allow writes only to: workdir, temp dirs, var/folders\n * - Optionally deny network\n */\n private createProfile(config: SandboxConfig): string {\n const profileId = randomUUID().replace(/-/g, '').slice(0, 8);\n const profilePath = join(tmpdir(), `xpod-sandbox-${profileId}.sb`);\n\n const rules: string[] = [\n '(version 1)',\n '',\n '; Allow most operations by default (macOS needs many subsystems)',\n '(allow default)',\n '',\n '; Deny writes to the entire filesystem by default',\n '(deny file-write* (subpath \"/\"))',\n '',\n '; Allow writes to workdir',\n `(allow file-write* (subpath \"${config.workdir}\"))`,\n '',\n '; Allow writes to temp directories',\n '(allow file-write* (subpath \"/private/tmp\"))',\n '(allow file-write* (subpath \"/tmp\"))',\n `(allow file-write* (subpath \"${tmpdir()}\"))`,\n '(allow file-write* (subpath \"/var/folders\"))',\n '(allow file-write* (subpath \"/private/var/folders\"))',\n ];\n\n // Network isolation\n if (config.isolateNetwork) {\n rules.push('');\n rules.push('; Deny network access');\n rules.push('(deny network*)');\n }\n\n // Additional read-only paths (already readable by default)\n if (config.readonlyPaths) {\n rules.push('');\n rules.push('; Additional read-only paths (already allowed by default)');\n for (const p of config.readonlyPaths) {\n rules.push(`; readonly: ${p}`);\n }\n }\n\n const profile = rules.join('\\n');\n writeFileSync(profilePath, profile);\n\n this.logger.debug(`Created sandbox profile: ${profilePath}`);\n return profilePath;\n }\n}\n"]}
@@ -27,6 +27,7 @@ const child_process_1 = require("child_process");
27
27
  const global_logger_factory_1 = require("global-logger-factory");
28
28
  const BubblewrapSandbox_1 = require("./BubblewrapSandbox");
29
29
  const MacOSSandbox_1 = require("./MacOSSandbox");
30
+ const safe_env_1 = require("../../runtime/safe-env");
30
31
  __exportStar(require("./types"), exports);
31
32
  var BubblewrapSandbox_2 = require("./BubblewrapSandbox");
32
33
  Object.defineProperty(exports, "BubblewrapSandbox", { enumerable: true, get: function () { return BubblewrapSandbox_2.BubblewrapSandbox; } });
@@ -44,7 +45,7 @@ class NoSandbox {
44
45
  const childProcess = (0, child_process_1.spawn)(config.command, config.args, {
45
46
  cwd: config.workdir,
46
47
  env: {
47
- ...process.env,
48
+ ...(0, safe_env_1.sanitizeRuntimeEnv)(process.env),
48
49
  ...config.env,
49
50
  TERM: 'xterm-256color',
50
51
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/terminal/sandbox/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;;;;GAOG;AACH,iDAAsC;AACtC,iEAAqD;AAErD,2DAAwD;AACxD,iDAA8C;AAE9C,0CAAwB;AACxB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB;;;GAGG;AACH,MAAM,SAAS;IACN,WAAW;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,MAAqB;QACjC,MAAM,YAAY,GAAG,IAAA,qBAAK,EAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;YACtD,GAAG,EAAE,MAAM,CAAC,OAAO;YACnB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,GAAG,MAAM,CAAC,GAAG;gBACb,IAAI,EAAE,gBAAgB;aACvB;YACD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,MAAM;SACnB,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAa,cAAc;IAOzB;;OAEG;IACI,MAAM,CAAC,UAAU;QACtB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,MAAM,CAAC,MAAqB;QACxC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,WAAW;QACvB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,aAAa;QACzB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAClE,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9D,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;;AAtDH,wCAuDC;AAtD2B,qBAAM,GAAG,IAAA,oCAAY,EAAC,gBAAgB,CAAC,CAAC;AAEnD,yBAAU,GAAG,IAAI,qCAAiB,EAAE,CAAC;AACrC,oBAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;AAC3B,wBAAS,GAAG,IAAI,SAAS,EAAE,CAAC","sourcesContent":["/**\n * Cross-platform Sandbox Factory\n *\n * Automatically selects the appropriate sandbox technology for the current platform:\n * - Linux: bubblewrap (namespace isolation)\n * - macOS: sandbox-exec (Seatbelt)\n * - Windows: none (fallback)\n */\nimport { spawn } from 'child_process';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { Sandbox, SandboxConfig, SandboxResult } from './types';\nimport { BubblewrapSandbox } from './BubblewrapSandbox';\nimport { MacOSSandbox } from './MacOSSandbox';\n\nexport * from './types';\nexport { BubblewrapSandbox } from './BubblewrapSandbox';\nexport { MacOSSandbox } from './MacOSSandbox';\n\n/**\n * No-op sandbox that runs processes without isolation.\n * Used as fallback when no sandbox technology is available.\n */\nclass NoSandbox implements Sandbox {\n public isAvailable(): boolean {\n return true;\n }\n\n public launch(config: SandboxConfig): SandboxResult {\n const childProcess = spawn(config.command, config.args, {\n cwd: config.workdir,\n env: {\n ...process.env,\n ...config.env,\n TERM: 'xterm-256color',\n },\n stdio: ['pipe', 'pipe', 'pipe'],\n });\n\n return {\n process: childProcess,\n sandboxed: false,\n technology: 'none',\n };\n }\n}\n\n/**\n * Sandbox Factory\n */\nexport class SandboxFactory {\n protected static readonly logger = getLoggerFor('SandboxFactory');\n\n private static bubblewrap = new BubblewrapSandbox();\n private static macos = new MacOSSandbox();\n private static noSandbox = new NoSandbox();\n\n /**\n * Get the best available sandbox for the current platform.\n */\n public static getSandbox(): Sandbox {\n if (process.platform === 'linux' && this.bubblewrap.isAvailable()) {\n return this.bubblewrap;\n }\n\n if (process.platform === 'darwin' && this.macos.isAvailable()) {\n return this.macos;\n }\n\n this.logger.warn(`No sandbox available for platform ${process.platform}`);\n return this.noSandbox;\n }\n\n /**\n * Launch a sandboxed process.\n */\n public static launch(config: SandboxConfig): SandboxResult {\n return this.getSandbox().launch(config);\n }\n\n /**\n * Check if sandbox is available.\n */\n public static isAvailable(): boolean {\n if (process.platform === 'linux') {\n return this.bubblewrap.isAvailable();\n }\n if (process.platform === 'darwin') {\n return this.macos.isAvailable();\n }\n return false;\n }\n\n /**\n * Get the sandbox technology name.\n */\n public static getTechnology(): 'bubblewrap' | 'sandbox-exec' | 'none' {\n if (process.platform === 'linux' && this.bubblewrap.isAvailable()) {\n return 'bubblewrap';\n }\n if (process.platform === 'darwin' && this.macos.isAvailable()) {\n return 'sandbox-exec';\n }\n return 'none';\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/terminal/sandbox/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;;;;GAOG;AACH,iDAAsC;AACtC,iEAAqD;AAErD,2DAAwD;AACxD,iDAA8C;AAC9C,qDAA4D;AAE5D,0CAAwB;AACxB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB;;;GAGG;AACH,MAAM,SAAS;IACN,WAAW;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,MAAqB;QACjC,MAAM,YAAY,GAAG,IAAA,qBAAK,EAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;YACtD,GAAG,EAAE,MAAM,CAAC,OAAO;YACnB,GAAG,EAAE;gBACH,GAAG,IAAA,6BAAkB,EAAC,OAAO,CAAC,GAAG,CAAC;gBAClC,GAAG,MAAM,CAAC,GAAG;gBACb,IAAI,EAAE,gBAAgB;aACvB;YACD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,MAAM;SACnB,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAa,cAAc;IAOzB;;OAEG;IACI,MAAM,CAAC,UAAU;QACtB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,MAAM,CAAC,MAAqB;QACxC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,WAAW;QACvB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,aAAa;QACzB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAClE,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9D,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;;AAtDH,wCAuDC;AAtD2B,qBAAM,GAAG,IAAA,oCAAY,EAAC,gBAAgB,CAAC,CAAC;AAEnD,yBAAU,GAAG,IAAI,qCAAiB,EAAE,CAAC;AACrC,oBAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;AAC3B,wBAAS,GAAG,IAAI,SAAS,EAAE,CAAC","sourcesContent":["/**\n * Cross-platform Sandbox Factory\n *\n * Automatically selects the appropriate sandbox technology for the current platform:\n * - Linux: bubblewrap (namespace isolation)\n * - macOS: sandbox-exec (Seatbelt)\n * - Windows: none (fallback)\n */\nimport { spawn } from 'child_process';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { Sandbox, SandboxConfig, SandboxResult } from './types';\nimport { BubblewrapSandbox } from './BubblewrapSandbox';\nimport { MacOSSandbox } from './MacOSSandbox';\nimport { sanitizeRuntimeEnv } from '../../runtime/safe-env';\n\nexport * from './types';\nexport { BubblewrapSandbox } from './BubblewrapSandbox';\nexport { MacOSSandbox } from './MacOSSandbox';\n\n/**\n * No-op sandbox that runs processes without isolation.\n * Used as fallback when no sandbox technology is available.\n */\nclass NoSandbox implements Sandbox {\n public isAvailable(): boolean {\n return true;\n }\n\n public launch(config: SandboxConfig): SandboxResult {\n const childProcess = spawn(config.command, config.args, {\n cwd: config.workdir,\n env: {\n ...sanitizeRuntimeEnv(process.env),\n ...config.env,\n TERM: 'xterm-256color',\n },\n stdio: ['pipe', 'pipe', 'pipe'],\n });\n\n return {\n process: childProcess,\n sandboxed: false,\n technology: 'none',\n };\n }\n}\n\n/**\n * Sandbox Factory\n */\nexport class SandboxFactory {\n protected static readonly logger = getLoggerFor('SandboxFactory');\n\n private static bubblewrap = new BubblewrapSandbox();\n private static macos = new MacOSSandbox();\n private static noSandbox = new NoSandbox();\n\n /**\n * Get the best available sandbox for the current platform.\n */\n public static getSandbox(): Sandbox {\n if (process.platform === 'linux' && this.bubblewrap.isAvailable()) {\n return this.bubblewrap;\n }\n\n if (process.platform === 'darwin' && this.macos.isAvailable()) {\n return this.macos;\n }\n\n this.logger.warn(`No sandbox available for platform ${process.platform}`);\n return this.noSandbox;\n }\n\n /**\n * Launch a sandboxed process.\n */\n public static launch(config: SandboxConfig): SandboxResult {\n return this.getSandbox().launch(config);\n }\n\n /**\n * Check if sandbox is available.\n */\n public static isAvailable(): boolean {\n if (process.platform === 'linux') {\n return this.bubblewrap.isAvailable();\n }\n if (process.platform === 'darwin') {\n return this.macos.isAvailable();\n }\n return false;\n }\n\n /**\n * Get the sandbox technology name.\n */\n public static getTechnology(): 'bubblewrap' | 'sandbox-exec' | 'none' {\n if (process.platform === 'linux' && this.bubblewrap.isAvailable()) {\n return 'bubblewrap';\n }\n if (process.platform === 'darwin' && this.macos.isAvailable()) {\n return 'sandbox-exec';\n }\n return 'none';\n }\n}\n"]}
@@ -16,6 +16,9 @@ async function startNoAuthXpod(options = {}) {
16
16
  rootFilePath: options.rootFilePath,
17
17
  sparqlEndpoint: options.sparqlEndpoint,
18
18
  logLevel: options.logLevel,
19
+ env: {
20
+ XPOD_LOCAL_AUTO_PROVISION: 'false',
21
+ },
19
22
  });
20
23
  return {
21
24
  baseUrl: runtime.baseUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"no-auth-xpod.js","sourceRoot":"","sources":["../../src/test-utils/no-auth-xpod.ts"],"names":[],"mappings":";;AAcA,0CAmBC;AAjCD;;;GAGG;AACH,wDAA0D;AAUnD,KAAK,UAAU,eAAe,CAAC,UAA6B,EAAE;IAInE,MAAM,OAAO,GAAG,MAAM,IAAA,8BAAgB,EAAC;QACrC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACzC,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC","sourcesContent":["/**\n * 无鉴权版本的 xpod 启动器\n * 使用进程内 lib 方式启动完整 Xpod(CSS + API + Gateway)\n */\nimport { startXpodRuntime } from '../runtime/XpodRuntime';\n\nexport interface NoAuthXpodOptions {\n port?: number;\n baseUrl?: string;\n rootFilePath?: string;\n sparqlEndpoint?: string;\n logLevel?: string;\n}\n\nexport async function startNoAuthXpod(options: NoAuthXpodOptions = {}): Promise<{\n baseUrl: string;\n stop: () => Promise<void>;\n}> {\n const runtime = await startXpodRuntime({\n mode: 'local',\n open: true,\n transport: options.port ? 'port' : 'auto',\n gatewayPort: options.port,\n baseUrl: options.baseUrl,\n rootFilePath: options.rootFilePath,\n sparqlEndpoint: options.sparqlEndpoint,\n logLevel: options.logLevel,\n });\n\n return {\n baseUrl: runtime.baseUrl,\n stop: runtime.stop,\n };\n}\n"]}
1
+ {"version":3,"file":"no-auth-xpod.js","sourceRoot":"","sources":["../../src/test-utils/no-auth-xpod.ts"],"names":[],"mappings":";;AAcA,0CAsBC;AApCD;;;GAGG;AACH,wDAA0D;AAUnD,KAAK,UAAU,eAAe,CAAC,UAA6B,EAAE;IAInE,MAAM,OAAO,GAAG,MAAM,IAAA,8BAAgB,EAAC;QACrC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACzC,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,EAAE;YACH,yBAAyB,EAAE,OAAO;SACnC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC","sourcesContent":["/**\n * 无鉴权版本的 xpod 启动器\n * 使用进程内 lib 方式启动完整 Xpod(CSS + API + Gateway)\n */\nimport { startXpodRuntime } from '../runtime/XpodRuntime';\n\nexport interface NoAuthXpodOptions {\n port?: number;\n baseUrl?: string;\n rootFilePath?: string;\n sparqlEndpoint?: string;\n logLevel?: string;\n}\n\nexport async function startNoAuthXpod(options: NoAuthXpodOptions = {}): Promise<{\n baseUrl: string;\n stop: () => Promise<void>;\n}> {\n const runtime = await startXpodRuntime({\n mode: 'local',\n open: true,\n transport: options.port ? 'port' : 'auto',\n gatewayPort: options.port,\n baseUrl: options.baseUrl,\n rootFilePath: options.rootFilePath,\n sparqlEndpoint: options.sparqlEndpoint,\n logLevel: options.logLevel,\n env: {\n XPOD_LOCAL_AUTO_PROVISION: 'false',\n },\n });\n\n return {\n baseUrl: runtime.baseUrl,\n stop: runtime.stop,\n };\n}\n"]}
@@ -6,6 +6,8 @@ import type { TunnelProvider, TunnelConfig, TunnelSetupOptions, TunnelStatus } f
6
6
  export interface LocalTunnelProviderOptions {
7
7
  /** Cloudflare Tunnel Token (从环境变量 CLOUDFLARE_TUNNEL_TOKEN 获取) */
8
8
  tunnelToken: string;
9
+ /** Active profile public endpoint, shown in status and DDNS diagnostics. */
10
+ publicUrl?: string;
9
11
  /** cloudflared 可执行文件路径 (默认 'cloudflared') */
10
12
  cloudflaredPath?: string;
11
13
  }
@@ -24,6 +26,7 @@ export declare class LocalTunnelProvider implements TunnelProvider {
24
26
  readonly name = "cloudflare-local";
25
27
  private readonly logger;
26
28
  private readonly tunnelToken;
29
+ private readonly publicUrl?;
27
30
  private readonly cloudflaredPath;
28
31
  private process;
29
32
  private status;
@@ -29,6 +29,7 @@ class LocalTunnelProvider {
29
29
  /** 标记隧道进程是否由我们启动和管理 */
30
30
  this.managedByUs = false;
31
31
  this.tunnelToken = options.tunnelToken;
32
+ this.publicUrl = normalizePublicEndpoint(options.publicUrl);
32
33
  this.cloudflaredPath = options.cloudflaredPath ?? 'cloudflared';
33
34
  }
34
35
  /**
@@ -41,7 +42,7 @@ class LocalTunnelProvider {
41
42
  const config = {
42
43
  subdomain: 'local', // 占位符,实际域名由 Cloudflare Tunnel 配置决定
43
44
  provider: 'cloudflare',
44
- endpoint: '', // 实际 endpoint 由 Cloudflare Tunnel 配置决定
45
+ endpoint: this.publicUrl ?? '', // 实际 endpoint 由 Cloudflare Tunnel 配置决定
45
46
  originUrl: `${localProtocol}://127.0.0.1:${options.localPort}`,
46
47
  tunnelToken: this.tunnelToken,
47
48
  };
@@ -290,4 +291,19 @@ class LocalTunnelProvider {
290
291
  }
291
292
  }
292
293
  exports.LocalTunnelProvider = LocalTunnelProvider;
294
+ function normalizePublicEndpoint(value) {
295
+ if (!value?.trim()) {
296
+ return undefined;
297
+ }
298
+ try {
299
+ const url = new URL(value.trim());
300
+ if (url.protocol !== 'http:' && url.protocol !== 'https:') {
301
+ return undefined;
302
+ }
303
+ return url.toString().replace(/\/+$/u, '') + '/';
304
+ }
305
+ catch {
306
+ return value.trim();
307
+ }
308
+ }
293
309
  //# sourceMappingURL=LocalTunnelProvider.js.map