@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
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/chatkit/types.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ChatKit Types\n * \n * Type definitions for OpenAI ChatKit protocol.\n * Based on https://github.com/openai/chatkit-python\n */\n\nimport type { ReconcilerOwner } from '../reconciler';\nimport type { WorkspaceRef } from '../workspace/types';\n\n// ============================================================================\n// Generic Types\n// ============================================================================\n\nexport interface Page<T> {\n data: T[];\n has_more: boolean;\n after?: string;\n}\n\n// ============================================================================\n// Thread Types\n// ============================================================================\n\nexport type ThreadStatusType = 'active' | 'locked' | 'closed';\n\nexport interface ActiveStatus {\n type: 'active';\n}\n\nexport interface LockedStatus {\n type: 'locked';\n reason?: string;\n}\n\nexport interface ClosedStatus {\n type: 'closed';\n}\n\nexport type ThreadStatus = ActiveStatus | LockedStatus | ClosedStatus;\n\nexport interface ThreadMetadata {\n id: string;\n /**\n * RDF Thread owner relation (`sioc:has_parent`).\n * Chat parent: `chat/{chatKey}/index.ttl#this`.\n * Task parent: `task/index.ttl#{taskKey}`.\n */\n parent?: string;\n title?: string;\n status: ThreadStatus;\n /**\n * Workspace Container selected for this thread.\n * The Solid schema stores this as the `workspace` RDF relation.\n */\n workspace?: WorkspaceRef;\n /** Runtime coordination owner for this Thread; not a durable conversation topology field. */\n reconcilerOwner?: ReconcilerOwner;\n created_at: number;\n updated_at: number;\n metadata?: Record<string, unknown>;\n}\n\nexport interface Thread extends ThreadMetadata {\n items: Page<ThreadItem>;\n}\n\nexport type HttpResource = `http://${string}` | `https://${string}`;\n\nexport interface ThreadRef {\n thread_id: string;\n}\n\nexport interface ThreadParentRef {\n kind: 'chat' | 'task';\n key: string;\n parent: string;\n}\n\nexport function isHttpResource(value: string): value is HttpResource {\n return value.startsWith('http://') || value.startsWith('https://');\n}\n\nexport function isBaseRelativeThreadResourceId(value: string): boolean {\n return /^(chat|task)\\/[^/]+\\/index\\.ttl#[^#]+$/.test(value);\n}\n\nexport function toThreadRef(params: { thread_id: string }): ThreadRef {\n if (isHttpResource(params.thread_id)) {\n return { thread_id: params.thread_id };\n }\n if (isBaseRelativeThreadResourceId(params.thread_id)) {\n return { thread_id: params.thread_id };\n }\n throw new Error(`complete thread resource id is required, got \"${params.thread_id}\"`);\n}\n\nexport function getThreadIdFromRef(thread: ThreadRef): string {\n if (isBaseRelativeThreadResourceId(thread.thread_id)) {\n return thread.thread_id;\n }\n try {\n const url = new URL(thread.thread_id);\n const dataIndex = url.pathname.indexOf('/.data/');\n if (dataIndex >= 0 && url.hash) {\n return `${url.pathname.slice(dataIndex + '/.data/'.length)}${url.hash}`;\n }\n return url.hash.startsWith('#') ? decodeURIComponent(url.hash.slice(1)) : thread.thread_id;\n } catch {\n return thread.thread_id;\n }\n}\n\nexport function threadParentFromThreadId(threadId: string): ThreadParentRef | undefined {\n const parseRelative = (relative: string): ThreadParentRef | undefined => {\n const withoutLeadingSlash = relative.replace(/^\\/+/, '');\n const dataIndex = withoutLeadingSlash.indexOf('.data/');\n const dataRelative = dataIndex >= 0\n ? withoutLeadingSlash.slice(dataIndex + '.data/'.length)\n : withoutLeadingSlash;\n const pathOnly = dataRelative.split('#', 1)[0];\n\n let match = pathOnly.match(/^chat\\/([^/]+)\\/index\\.ttl$/);\n if (match) {\n const key = decodeURIComponent(match[1]);\n return {\n kind: 'chat',\n key,\n parent: `chat/${key}/index.ttl#this`,\n };\n }\n\n match = pathOnly.match(/^task\\/([^/]+)\\/index\\.ttl$/);\n if (match) {\n const key = decodeURIComponent(match[1]);\n return {\n kind: 'task',\n key,\n parent: `task/index.ttl#${key}`,\n };\n }\n\n return undefined;\n };\n\n if (isHttpResource(threadId)) {\n try {\n const url = new URL(threadId);\n const marker = '/.data/';\n const markerIndex = url.pathname.indexOf(marker);\n const relative = markerIndex >= 0 ? url.pathname.slice(markerIndex + marker.length) : url.pathname;\n const parsed = parseRelative(relative);\n if (!parsed) {\n return undefined;\n }\n if (parsed.kind === 'chat') {\n url.pathname = url.pathname.replace(/\\/\\.data\\/chat\\/[^/]+\\/index\\.ttl$/, `/.data/chat/${encodeURIComponent(parsed.key)}/index.ttl`);\n url.hash = '#this';\n } else {\n url.pathname = url.pathname.replace(/\\/\\.data\\/task\\/[^/]+\\/index\\.ttl$/, '/.data/task/index.ttl');\n url.hash = `#${encodeURIComponent(parsed.key)}`;\n }\n url.search = '';\n return { ...parsed, parent: url.toString() };\n } catch {\n return undefined;\n }\n }\n\n return parseRelative(threadId);\n}\n\nexport function threadParentFromParentRef(parent: string | undefined): ThreadParentRef | undefined {\n if (!parent) {\n return undefined;\n }\n const parseRelative = (relative: string, hash?: string): ThreadParentRef | undefined => {\n const withoutLeadingSlash = relative.replace(/^\\/+/, '');\n const dataIndex = withoutLeadingSlash.indexOf('.data/');\n const dataRelative = dataIndex >= 0\n ? withoutLeadingSlash.slice(dataIndex + '.data/'.length)\n : withoutLeadingSlash;\n const [pathPart, fragmentPart] = dataRelative.split('#', 2);\n const fragment = decodeURIComponent((hash?.startsWith('#') ? hash.slice(1) : hash) || fragmentPart || '');\n\n let match = pathPart.match(/^chat\\/([^/]+)\\/index\\.ttl$/);\n if (match && (!fragment || fragment === 'this')) {\n const key = decodeURIComponent(match[1]);\n return { kind: 'chat', key, parent };\n }\n\n match = pathPart.match(/^task\\/index\\.ttl$/);\n if (match && fragment) {\n return { kind: 'task', key: fragment, parent };\n }\n\n return undefined;\n };\n\n if (isHttpResource(parent)) {\n try {\n const url = new URL(parent);\n return parseRelative(url.pathname, url.hash);\n } catch {\n return undefined;\n }\n }\n\n return parseRelative(parent);\n}\n\nexport function getThreadParent(thread: Pick<ThreadMetadata, 'id' | 'parent'>): ThreadParentRef | undefined {\n return threadParentFromParentRef(thread.parent) ?? threadParentFromThreadId(thread.id);\n}\n\n// ============================================================================\n// Thread Item Types\n// ============================================================================\n\nexport interface ThreadItemBase {\n id: string;\n thread_id: string;\n created_at: number;\n}\n\n// User Message\nexport interface UserMessageTextContent {\n type: 'input_text';\n text: string;\n}\n\nexport interface UserMessageTagContent {\n type: 'input_tag';\n tag: string;\n label?: string;\n}\n\nexport type UserMessageContent = UserMessageTextContent | UserMessageTagContent;\n\nexport interface InferenceOptions {\n model?: string;\n temperature?: number;\n max_tokens?: number;\n tools?: unknown[];\n tool_choice?: ToolChoice;\n}\n\nexport interface ToolChoice {\n type: 'function';\n function: {\n name: string;\n };\n}\n\nexport interface UserMessageItem extends ThreadItemBase {\n type: 'user_message';\n content: UserMessageContent[];\n inference_options?: InferenceOptions;\n}\n\n// Assistant Message\nexport interface Annotation {\n type: string;\n text: string;\n start_index?: number;\n end_index?: number;\n file_citation?: {\n file_id: string;\n quote?: string;\n };\n file_path?: {\n file_id: string;\n };\n url_citation?: {\n url: string;\n title?: string;\n };\n}\n\nexport interface AssistantMessageContent {\n type: 'output_text';\n text: string;\n annotations?: Annotation[];\n}\n\nexport interface AssistantMessageItem extends ThreadItemBase {\n type: 'assistant_message';\n content: AssistantMessageContent[];\n status?: 'in_progress' | 'completed' | 'incomplete';\n}\n\n// Client Tool Call\nexport interface ClientToolCallItem extends ThreadItemBase {\n type: 'client_tool_call';\n name: string;\n arguments: string;\n call_id: string;\n status?: 'pending' | 'completed';\n output?: string;\n metadata?: Record<string, unknown>;\n}\n\n// Widget\nexport interface WidgetItem extends ThreadItemBase {\n type: 'widget';\n widget_type: string;\n data: unknown;\n}\n\n// Generated Image\nexport interface GeneratedImage {\n id: string;\n url?: string;\n b64_json?: string;\n}\n\nexport interface GeneratedImageItem extends ThreadItemBase {\n type: 'generated_image';\n image: GeneratedImage;\n prompt?: string;\n status?: 'in_progress' | 'completed' | 'failed';\n}\n\n// Task\nexport interface BaseTask {\n id: string;\n status: 'pending' | 'in_progress' | 'completed' | 'failed';\n}\n\nexport interface CustomTask extends BaseTask {\n type: 'custom';\n title: string;\n description?: string;\n}\n\nexport interface SearchTask extends BaseTask {\n type: 'web_search';\n query: string;\n}\n\nexport interface ThoughtTask extends BaseTask {\n type: 'thought';\n content: string;\n}\n\nexport interface FileTask extends BaseTask {\n type: 'file';\n file_id: string;\n filename?: string;\n}\n\nexport interface ImageTask extends BaseTask {\n type: 'image';\n image_id: string;\n}\n\nexport type Task = CustomTask | SearchTask | ThoughtTask | FileTask | ImageTask;\n\nexport interface TaskItem extends ThreadItemBase {\n type: 'task';\n task: Task;\n}\n\n// Workflow\nexport interface CustomSummary {\n type: 'custom';\n title: string;\n icon?: string;\n}\n\nexport interface DurationSummary {\n type: 'duration';\n duration_ms: number;\n}\n\nexport type WorkflowSummary = CustomSummary | DurationSummary;\n\nexport interface Workflow {\n tasks: Task[];\n summary?: WorkflowSummary;\n}\n\nexport interface WorkflowItem extends ThreadItemBase {\n type: 'workflow';\n workflow: Workflow;\n}\n\n// End of Turn\nexport interface EndOfTurnItem extends ThreadItemBase {\n type: 'end_of_turn';\n}\n\n// Hidden Context\nexport interface HiddenContextItem extends ThreadItemBase {\n type: 'hidden_context_item';\n context: unknown;\n}\n\nexport interface SDKHiddenContextItem extends ThreadItemBase {\n type: 'sdk_hidden_context';\n data: unknown;\n}\n\n// Union of all thread items\nexport type ThreadItem =\n | UserMessageItem\n | AssistantMessageItem\n | ClientToolCallItem\n | WidgetItem\n | GeneratedImageItem\n | TaskItem\n | WorkflowItem\n | EndOfTurnItem\n | HiddenContextItem\n | SDKHiddenContextItem;\n\nexport type StoreItemType = ThreadItem['type'];\n\n// ============================================================================\n// Attachment Types\n// ============================================================================\n\nexport interface AttachmentBase {\n id: string;\n name: string;\n size: number;\n mime_type: string;\n created_at: number;\n}\n\nexport interface FileAttachment extends AttachmentBase {\n type: 'file';\n url?: string;\n}\n\nexport interface ImageAttachment extends AttachmentBase {\n type: 'image';\n url?: string;\n width?: number;\n height?: number;\n}\n\nexport type Attachment = FileAttachment | ImageAttachment;\n\nexport interface AttachmentUploadDescriptor {\n attachment_id: string;\n upload_url: string;\n upload_headers?: Record<string, string>;\n}\n\n// ============================================================================\n// Request Types\n// ============================================================================\n\nexport interface BaseReq {\n metadata?: Record<string, unknown>;\n}\n\n// Thread Requests\nexport type ThreadGetByIdParams = ThreadRef;\n\nexport interface ThreadsGetByIdReq extends BaseReq {\n type: 'threads.get_by_id';\n params: ThreadGetByIdParams;\n}\n\nexport interface ThreadCreateParams {\n workspace?: WorkspaceRef;\n input?: UserMessageInput;\n}\n\nexport interface UserMessageInput {\n content: UserMessageContent[];\n inference_options?: InferenceOptions;\n attachments?: string[];\n}\n\nexport interface ThreadsCreateReq extends BaseReq {\n type: 'threads.create';\n params: ThreadCreateParams;\n}\n\nexport interface ThreadListParams {\n limit?: number;\n order?: 'asc' | 'desc';\n after?: string;\n}\n\nexport interface ThreadsListReq extends BaseReq {\n type: 'threads.list';\n params: ThreadListParams;\n}\n\nexport type ThreadAddUserMessageParams = ThreadRef & {\n input: UserMessageInput;\n};\n\nexport interface ThreadsAddUserMessageReq extends BaseReq {\n type: 'threads.add_user_message';\n params: ThreadAddUserMessageParams;\n}\n\nexport type ThreadAddClientToolOutputParams = ThreadRef & {\n item_id: string;\n output: string;\n};\n\nexport interface ThreadsAddClientToolOutputReq extends BaseReq {\n type: 'threads.add_client_tool_output';\n params: ThreadAddClientToolOutputParams;\n}\n\nexport type ThreadCustomActionParams = ThreadRef & {\n item_id: string;\n action: string;\n data?: unknown;\n};\n\nexport interface ThreadsCustomActionReq extends BaseReq {\n type: 'threads.custom_action';\n params: ThreadCustomActionParams;\n}\n\nexport type ThreadRetryAfterItemParams = ThreadRef & {\n item_id: string;\n};\n\nexport interface ThreadsRetryAfterItemReq extends BaseReq {\n type: 'threads.retry_after_item';\n params: ThreadRetryAfterItemParams;\n}\n\nexport type ThreadUpdateParams = ThreadRef & {\n title?: string;\n workspace?: WorkspaceRef;\n};\n\nexport interface ThreadsUpdateReq extends BaseReq {\n type: 'threads.update';\n params: ThreadUpdateParams;\n}\n\nexport type ThreadDeleteParams = ThreadRef;\n\nexport interface ThreadsDeleteReq extends BaseReq {\n type: 'threads.delete';\n params: ThreadDeleteParams;\n}\n\n// Items Requests\nexport type ItemsListParams = ThreadRef & {\n limit?: number;\n order?: 'asc' | 'desc';\n after?: string;\n};\n\nexport interface ItemsListReq extends BaseReq {\n type: 'items.list';\n params: ItemsListParams;\n}\n\nexport type ItemFeedbackParams = ThreadRef & {\n item_ids: string[];\n feedback: FeedbackKind;\n};\n\nexport type FeedbackKind = 'positive' | 'negative';\n\nexport interface ItemsFeedbackReq extends BaseReq {\n type: 'items.feedback';\n params: ItemFeedbackParams;\n}\n\n// Attachment Requests\nexport interface AttachmentCreateParams {\n name: string;\n size: number;\n mime_type: string;\n}\n\nexport interface AttachmentsCreateReq extends BaseReq {\n type: 'attachments.create';\n params: AttachmentCreateParams;\n}\n\nexport interface AttachmentDeleteParams {\n attachment_id: string;\n}\n\nexport interface AttachmentsDeleteReq extends BaseReq {\n type: 'attachments.delete';\n params: AttachmentDeleteParams;\n}\n\n// Request Union Types\nexport type StreamingReq =\n | ThreadsCreateReq\n | ThreadsAddUserMessageReq\n | ThreadsAddClientToolOutputReq\n | ThreadsRetryAfterItemReq\n | ThreadsCustomActionReq;\n\nexport type NonStreamingReq =\n | ThreadsGetByIdReq\n | ThreadsListReq\n | ItemsListReq\n | ItemsFeedbackReq\n | AttachmentsCreateReq\n | AttachmentsDeleteReq\n | ThreadsUpdateReq\n | ThreadsDeleteReq;\n\nexport type ChatKitReq = StreamingReq | NonStreamingReq;\n\n// ============================================================================\n// Stream Event Types\n// ============================================================================\n\nexport interface ThreadCreatedEvent {\n type: 'thread.created';\n thread: ThreadMetadata;\n}\n\nexport interface ThreadUpdatedEvent {\n type: 'thread.updated';\n thread: ThreadMetadata;\n}\n\nexport interface ThreadItemAddedEvent {\n type: 'thread.item.added';\n item: ThreadItem;\n}\n\nexport interface ThreadItemUpdatedEvent {\n type: 'thread.item.updated';\n item_id: string;\n update: ThreadItemUpdate;\n}\n\nexport interface ThreadItemDoneEvent {\n type: 'thread.item.done';\n item: ThreadItem;\n}\n\nexport interface ThreadItemRemovedEvent {\n type: 'thread.item.removed';\n item_id: string;\n}\n\nexport interface ThreadItemReplacedEvent {\n type: 'thread.item.replaced';\n item: ThreadItem;\n}\n\nexport interface StreamOptions {\n allow_cancel?: boolean;\n}\n\nexport interface StreamOptionsEvent {\n type: 'stream_options';\n options: StreamOptions;\n}\n\nexport interface ProgressUpdate {\n progress: number;\n message?: string;\n}\n\nexport interface ProgressUpdateEvent {\n type: 'progress_update';\n update: ProgressUpdate;\n}\n\nexport interface ClientEffect {\n effect_type: string;\n data?: unknown;\n}\n\nexport interface ClientEffectEvent {\n type: 'client_effect';\n effect: ClientEffect;\n}\n\nexport interface ErrorEvent {\n type: 'error';\n error: {\n code: string;\n message: string;\n details?: unknown;\n };\n}\n\nexport interface NoticeEvent {\n type: 'notice';\n notice: {\n level: 'info' | 'warning' | 'error';\n message: string;\n };\n}\n\nexport type ThreadStreamEvent =\n | ThreadCreatedEvent\n | ThreadUpdatedEvent\n | ThreadItemAddedEvent\n | ThreadItemUpdatedEvent\n | ThreadItemDoneEvent\n | ThreadItemRemovedEvent\n | ThreadItemReplacedEvent\n | StreamOptionsEvent\n | ProgressUpdateEvent\n | ClientEffectEvent\n | ErrorEvent\n | NoticeEvent;\n\n// ============================================================================\n// Thread Item Update Types (for streaming)\n// ============================================================================\n\nexport interface AssistantMessageContentPartAdded {\n type: 'assistant_message.content_part.added';\n part_index: number;\n part: AssistantMessageContent;\n}\n\nexport interface AssistantMessageContentPartTextDelta {\n type: 'assistant_message.content_part.text_delta';\n part_index: number;\n delta: string;\n}\n\nexport interface AssistantMessageContentPartAnnotationAdded {\n type: 'assistant_message.content_part.annotation_added';\n part_index: number;\n annotation: Annotation;\n}\n\nexport interface AssistantMessageContentPartDone {\n type: 'assistant_message.content_part.done';\n part_index: number;\n}\n\nexport interface WidgetStreamingTextValueDelta {\n type: 'widget.streaming_text.value_delta';\n path: string;\n delta: string;\n}\n\nexport interface WidgetRootUpdated {\n type: 'widget.root.updated';\n data: unknown;\n}\n\nexport interface WidgetComponentUpdated {\n type: 'widget.component.updated';\n component_id: string;\n data: unknown;\n}\n\nexport interface WorkflowTaskAdded {\n type: 'workflow.task.added';\n task: Task;\n}\n\nexport interface WorkflowTaskUpdated {\n type: 'workflow.task.updated';\n task_id: string;\n task: Partial<Task>;\n}\n\nexport interface GeneratedImageUpdated {\n type: 'generated_image.updated';\n image: GeneratedImage;\n}\n\nexport type ThreadItemUpdate =\n | AssistantMessageContentPartAdded\n | AssistantMessageContentPartTextDelta\n | AssistantMessageContentPartAnnotationAdded\n | AssistantMessageContentPartDone\n | WidgetStreamingTextValueDelta\n | WidgetRootUpdated\n | WidgetComponentUpdated\n | WorkflowTaskAdded\n | WorkflowTaskUpdated\n | GeneratedImageUpdated;\n\n// ============================================================================\n// Response Types\n// ============================================================================\n\nexport interface StreamingResult {\n type: 'streaming';\n stream: AsyncIterable<ThreadStreamEvent>;\n}\n\nexport interface NonStreamingResult {\n type: 'non_streaming';\n data: unknown;\n}\n\nexport type ChatKitResult = StreamingResult | NonStreamingResult;\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\nexport function isStreamingReq(req: ChatKitReq): req is StreamingReq {\n return (\n req.type === 'threads.create' ||\n req.type === 'threads.add_user_message' ||\n req.type === 'threads.add_client_tool_output' ||\n req.type === 'threads.retry_after_item' ||\n req.type === 'threads.custom_action'\n );\n}\n\nexport function isNonStreamingReq(req: ChatKitReq): req is NonStreamingReq {\n return !isStreamingReq(req);\n}\n\n/**\n * Generate a unique ID with prefix\n */\nexport function generateId(prefix: string): string {\n const timestamp = Date.now().toString(36);\n const random = Math.random().toString(36).substring(2, 10);\n return `${prefix}_${timestamp}${random}`;\n}\n\n/**\n * Get current timestamp in seconds\n */\nexport function nowTimestamp(): number {\n return Math.floor(Date.now() / 1000);\n}\n\n/**\n * Extract text content from user message\n */\nexport function extractUserMessageText(content: UserMessageContent[]): string {\n return content\n .filter((c): c is UserMessageTextContent => c.type === 'input_text')\n .map((c) => c.text)\n .join('\\n');\n}\n\n/**\n * Extract text content from assistant message\n */\nexport function extractAssistantMessageText(content: AssistantMessageContent[]): string {\n return content\n .filter((c): c is AssistantMessageContent => c.type === 'output_text')\n .map((c) => c.text)\n .join('\\n');\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/chatkit/types.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ChatKit Types\n * \n * Type definitions for OpenAI ChatKit protocol.\n * Based on https://github.com/openai/chatkit-python\n */\n\nimport type { ReconcilerOwner } from '../reconciler';\nimport type { WorkspaceRef } from '../workspace/types';\n\n// ============================================================================\n// Generic Types\n// ============================================================================\n\nexport interface Page<T> {\n data: T[];\n has_more: boolean;\n after?: string;\n}\n\n// ============================================================================\n// Thread Types\n// ============================================================================\n\nexport type ThreadStatusType = 'active' | 'locked' | 'closed';\n\nexport interface ActiveStatus {\n type: 'active';\n}\n\nexport interface LockedStatus {\n type: 'locked';\n reason?: string;\n}\n\nexport interface ClosedStatus {\n type: 'closed';\n}\n\nexport type ThreadStatus = ActiveStatus | LockedStatus | ClosedStatus;\n\nexport interface ThreadMetadata {\n id: string;\n /**\n * RDF Thread owner relation (`sioc:has_parent`).\n * Chat parent: `chat/{chatKey}/index.ttl#this`.\n * Task parent: `task/index.ttl#{taskKey}`.\n */\n parent?: string;\n title?: string;\n status: ThreadStatus;\n /**\n * Workspace Container selected for this thread.\n * The Solid schema stores this as the `workspace` RDF relation.\n */\n workspace?: WorkspaceRef;\n /** Runtime coordination owner for this Thread; not a durable conversation topology field. */\n reconcilerOwner?: ReconcilerOwner;\n created_at: number;\n updated_at: number;\n metadata?: Record<string, unknown>;\n}\n\nexport interface Thread extends ThreadMetadata {\n items: Page<ThreadItem>;\n}\n\nexport type HttpResource = `http://${string}` | `https://${string}`;\n\nexport interface ThreadRef {\n thread_id: string;\n chat_id?: string;\n}\n\nexport interface ThreadParentRef {\n kind: 'chat' | 'task';\n key: string;\n parent: string;\n}\n\nexport function isHttpResource(value: string): value is HttpResource {\n return value.startsWith('http://') || value.startsWith('https://');\n}\n\nexport function isBaseRelativeThreadResourceId(value: string): boolean {\n return /^(chat|task)\\/[^/]+\\/index\\.ttl#[^#]+$/.test(value);\n}\n\nexport function toThreadRef(params: { thread_id: string }): ThreadRef {\n if (isHttpResource(params.thread_id)) {\n return { thread_id: params.thread_id };\n }\n if (isBaseRelativeThreadResourceId(params.thread_id)) {\n return { thread_id: params.thread_id };\n }\n throw new Error(`complete thread resource id is required, got \"${params.thread_id}\"`);\n}\n\nexport function getThreadIdFromRef(thread: ThreadRef): string {\n if (isBaseRelativeThreadResourceId(thread.thread_id)) {\n return thread.thread_id;\n }\n try {\n const url = new URL(thread.thread_id);\n const dataIndex = url.pathname.indexOf('/.data/');\n if (dataIndex >= 0 && url.hash) {\n return `${url.pathname.slice(dataIndex + '/.data/'.length)}${url.hash}`;\n }\n return url.hash.startsWith('#') ? decodeURIComponent(url.hash.slice(1)) : thread.thread_id;\n } catch {\n return thread.thread_id;\n }\n}\n\nexport function threadParentFromThreadId(threadId: string): ThreadParentRef | undefined {\n const parseRelative = (relative: string): ThreadParentRef | undefined => {\n const withoutLeadingSlash = relative.replace(/^\\/+/, '');\n const dataIndex = withoutLeadingSlash.indexOf('.data/');\n const dataRelative = dataIndex >= 0\n ? withoutLeadingSlash.slice(dataIndex + '.data/'.length)\n : withoutLeadingSlash;\n const pathOnly = dataRelative.split('#', 1)[0];\n\n let match = pathOnly.match(/^chat\\/([^/]+)\\/index\\.ttl$/);\n if (match) {\n const key = decodeURIComponent(match[1]);\n return {\n kind: 'chat',\n key,\n parent: `chat/${key}/index.ttl#this`,\n };\n }\n\n match = pathOnly.match(/^task\\/([^/]+)\\/index\\.ttl$/);\n if (match) {\n const key = decodeURIComponent(match[1]);\n return {\n kind: 'task',\n key,\n parent: `task/index.ttl#${key}`,\n };\n }\n\n return undefined;\n };\n\n if (isHttpResource(threadId)) {\n try {\n const url = new URL(threadId);\n const marker = '/.data/';\n const markerIndex = url.pathname.indexOf(marker);\n const relative = markerIndex >= 0 ? url.pathname.slice(markerIndex + marker.length) : url.pathname;\n const parsed = parseRelative(relative);\n if (!parsed) {\n return undefined;\n }\n if (parsed.kind === 'chat') {\n url.pathname = url.pathname.replace(/\\/\\.data\\/chat\\/[^/]+\\/index\\.ttl$/, `/.data/chat/${encodeURIComponent(parsed.key)}/index.ttl`);\n url.hash = '#this';\n } else {\n url.pathname = url.pathname.replace(/\\/\\.data\\/task\\/[^/]+\\/index\\.ttl$/, '/.data/task/index.ttl');\n url.hash = `#${encodeURIComponent(parsed.key)}`;\n }\n url.search = '';\n return { ...parsed, parent: url.toString() };\n } catch {\n return undefined;\n }\n }\n\n return parseRelative(threadId);\n}\n\nexport function threadParentFromParentRef(parent: string | undefined): ThreadParentRef | undefined {\n if (!parent) {\n return undefined;\n }\n const parseRelative = (relative: string, hash?: string): ThreadParentRef | undefined => {\n const withoutLeadingSlash = relative.replace(/^\\/+/, '');\n const dataIndex = withoutLeadingSlash.indexOf('.data/');\n const dataRelative = dataIndex >= 0\n ? withoutLeadingSlash.slice(dataIndex + '.data/'.length)\n : withoutLeadingSlash;\n const [pathPart, fragmentPart] = dataRelative.split('#', 2);\n const fragment = decodeURIComponent((hash?.startsWith('#') ? hash.slice(1) : hash) || fragmentPart || '');\n\n let match = pathPart.match(/^chat\\/([^/]+)\\/index\\.ttl$/);\n if (match && (!fragment || fragment === 'this')) {\n const key = decodeURIComponent(match[1]);\n return { kind: 'chat', key, parent };\n }\n\n match = pathPart.match(/^task\\/index\\.ttl$/);\n if (match && fragment) {\n return { kind: 'task', key: fragment, parent };\n }\n\n return undefined;\n };\n\n if (isHttpResource(parent)) {\n try {\n const url = new URL(parent);\n return parseRelative(url.pathname, url.hash);\n } catch {\n return undefined;\n }\n }\n\n return parseRelative(parent);\n}\n\nexport function getThreadParent(thread: Pick<ThreadMetadata, 'id' | 'parent'>): ThreadParentRef | undefined {\n return threadParentFromParentRef(thread.parent) ?? threadParentFromThreadId(thread.id);\n}\n\n// ============================================================================\n// Thread Item Types\n// ============================================================================\n\nexport interface ThreadItemBase {\n id: string;\n thread_id: string;\n created_at: number;\n}\n\n// User Message\nexport interface UserMessageTextContent {\n type: 'input_text';\n text: string;\n}\n\nexport interface UserMessageTagContent {\n type: 'input_tag';\n tag: string;\n label?: string;\n}\n\nexport type UserMessageContent = UserMessageTextContent | UserMessageTagContent;\n\nexport interface InferenceOptions {\n model?: string;\n temperature?: number;\n max_tokens?: number;\n tools?: unknown[];\n tool_choice?: ToolChoice;\n}\n\nexport interface ToolChoice {\n type: 'function';\n function: {\n name: string;\n };\n}\n\nexport interface UserMessageItem extends ThreadItemBase {\n type: 'user_message';\n content: UserMessageContent[];\n inference_options?: InferenceOptions;\n}\n\n// Assistant Message\nexport interface Annotation {\n type: string;\n text: string;\n start_index?: number;\n end_index?: number;\n file_citation?: {\n file_id: string;\n quote?: string;\n };\n file_path?: {\n file_id: string;\n };\n url_citation?: {\n url: string;\n title?: string;\n };\n}\n\nexport interface AssistantMessageContent {\n type: 'output_text';\n text: string;\n annotations?: Annotation[];\n}\n\nexport interface AssistantMessageItem extends ThreadItemBase {\n type: 'assistant_message';\n content: AssistantMessageContent[];\n status?: 'in_progress' | 'completed' | 'incomplete';\n}\n\n// Client Tool Call\nexport interface ClientToolCallItem extends ThreadItemBase {\n type: 'client_tool_call';\n name: string;\n arguments: string;\n call_id: string;\n status?: 'pending' | 'completed';\n output?: string;\n metadata?: Record<string, unknown>;\n}\n\n// Widget\nexport interface WidgetItem extends ThreadItemBase {\n type: 'widget';\n widget_type: string;\n data: unknown;\n}\n\n// Generated Image\nexport interface GeneratedImage {\n id: string;\n url?: string;\n b64_json?: string;\n}\n\nexport interface GeneratedImageItem extends ThreadItemBase {\n type: 'generated_image';\n image: GeneratedImage;\n prompt?: string;\n status?: 'in_progress' | 'completed' | 'failed';\n}\n\n// Task\nexport interface BaseTask {\n id: string;\n status: 'pending' | 'in_progress' | 'completed' | 'failed';\n}\n\nexport interface CustomTask extends BaseTask {\n type: 'custom';\n title: string;\n description?: string;\n}\n\nexport interface SearchTask extends BaseTask {\n type: 'web_search';\n query: string;\n}\n\nexport interface ThoughtTask extends BaseTask {\n type: 'thought';\n content: string;\n}\n\nexport interface FileTask extends BaseTask {\n type: 'file';\n file_id: string;\n filename?: string;\n}\n\nexport interface ImageTask extends BaseTask {\n type: 'image';\n image_id: string;\n}\n\nexport type Task = CustomTask | SearchTask | ThoughtTask | FileTask | ImageTask;\n\nexport interface TaskItem extends ThreadItemBase {\n type: 'task';\n task: Task;\n}\n\n// Workflow\nexport interface CustomSummary {\n type: 'custom';\n title: string;\n icon?: string;\n}\n\nexport interface DurationSummary {\n type: 'duration';\n duration_ms: number;\n}\n\nexport type WorkflowSummary = CustomSummary | DurationSummary;\n\nexport interface Workflow {\n tasks: Task[];\n summary?: WorkflowSummary;\n}\n\nexport interface WorkflowItem extends ThreadItemBase {\n type: 'workflow';\n workflow: Workflow;\n}\n\n// End of Turn\nexport interface EndOfTurnItem extends ThreadItemBase {\n type: 'end_of_turn';\n}\n\n// Hidden Context\nexport interface HiddenContextItem extends ThreadItemBase {\n type: 'hidden_context_item';\n context: unknown;\n}\n\nexport interface SDKHiddenContextItem extends ThreadItemBase {\n type: 'sdk_hidden_context';\n data: unknown;\n}\n\n// Union of all thread items\nexport type ThreadItem =\n | UserMessageItem\n | AssistantMessageItem\n | ClientToolCallItem\n | WidgetItem\n | GeneratedImageItem\n | TaskItem\n | WorkflowItem\n | EndOfTurnItem\n | HiddenContextItem\n | SDKHiddenContextItem;\n\nexport type StoreItemType = ThreadItem['type'];\n\n// ============================================================================\n// Attachment Types\n// ============================================================================\n\nexport interface AttachmentBase {\n id: string;\n name: string;\n size: number;\n mime_type: string;\n created_at: number;\n}\n\nexport interface FileAttachment extends AttachmentBase {\n type: 'file';\n url?: string;\n}\n\nexport interface ImageAttachment extends AttachmentBase {\n type: 'image';\n url?: string;\n width?: number;\n height?: number;\n}\n\nexport type Attachment = FileAttachment | ImageAttachment;\n\nexport interface AttachmentUploadDescriptor {\n attachment_id: string;\n upload_url: string;\n upload_headers?: Record<string, string>;\n}\n\n// ============================================================================\n// Request Types\n// ============================================================================\n\nexport interface BaseReq {\n metadata?: Record<string, unknown>;\n}\n\n// Thread Requests\nexport type ThreadGetByIdParams = ThreadRef;\n\nexport interface ThreadsGetByIdReq extends BaseReq {\n type: 'threads.get_by_id';\n params: ThreadGetByIdParams;\n}\n\nexport interface ThreadCreateParams {\n workspace?: WorkspaceRef;\n input?: UserMessageInput;\n}\n\nexport interface UserMessageInput {\n content: UserMessageContent[];\n inference_options?: InferenceOptions;\n attachments?: string[];\n}\n\nexport interface ThreadsCreateReq extends BaseReq {\n type: 'threads.create';\n params: ThreadCreateParams;\n}\n\nexport interface ThreadListParams {\n limit?: number;\n order?: 'asc' | 'desc';\n after?: string;\n}\n\nexport interface ThreadsListReq extends BaseReq {\n type: 'threads.list';\n params: ThreadListParams;\n}\n\nexport type ThreadAddUserMessageParams = ThreadRef & {\n input: UserMessageInput;\n};\n\nexport interface ThreadsAddUserMessageReq extends BaseReq {\n type: 'threads.add_user_message';\n params: ThreadAddUserMessageParams;\n}\n\nexport type ThreadAddClientToolOutputParams = ThreadRef & {\n item_id: string;\n output: string;\n};\n\nexport interface ThreadsAddClientToolOutputReq extends BaseReq {\n type: 'threads.add_client_tool_output';\n params: ThreadAddClientToolOutputParams;\n}\n\nexport type ThreadCustomActionParams = ThreadRef & {\n item_id: string;\n action: string;\n data?: unknown;\n};\n\nexport interface ThreadsCustomActionReq extends BaseReq {\n type: 'threads.custom_action';\n params: ThreadCustomActionParams;\n}\n\nexport type ThreadRetryAfterItemParams = ThreadRef & {\n item_id: string;\n};\n\nexport interface ThreadsRetryAfterItemReq extends BaseReq {\n type: 'threads.retry_after_item';\n params: ThreadRetryAfterItemParams;\n}\n\nexport type ThreadUpdateParams = ThreadRef & {\n title?: string;\n workspace?: WorkspaceRef;\n};\n\nexport interface ThreadsUpdateReq extends BaseReq {\n type: 'threads.update';\n params: ThreadUpdateParams;\n}\n\nexport type ThreadDeleteParams = ThreadRef;\n\nexport interface ThreadsDeleteReq extends BaseReq {\n type: 'threads.delete';\n params: ThreadDeleteParams;\n}\n\n// Items Requests\nexport type ItemsListParams = ThreadRef & {\n limit?: number;\n order?: 'asc' | 'desc';\n after?: string;\n};\n\nexport interface ItemsListReq extends BaseReq {\n type: 'items.list';\n params: ItemsListParams;\n}\n\nexport type ItemFeedbackParams = ThreadRef & {\n item_ids: string[];\n feedback: FeedbackKind;\n};\n\nexport type FeedbackKind = 'positive' | 'negative';\n\nexport interface ItemsFeedbackReq extends BaseReq {\n type: 'items.feedback';\n params: ItemFeedbackParams;\n}\n\n// Attachment Requests\nexport interface AttachmentCreateParams {\n name: string;\n size: number;\n mime_type: string;\n}\n\nexport interface AttachmentsCreateReq extends BaseReq {\n type: 'attachments.create';\n params: AttachmentCreateParams;\n}\n\nexport interface AttachmentDeleteParams {\n attachment_id: string;\n}\n\nexport interface AttachmentsDeleteReq extends BaseReq {\n type: 'attachments.delete';\n params: AttachmentDeleteParams;\n}\n\n// Request Union Types\nexport type StreamingReq =\n | ThreadsCreateReq\n | ThreadsAddUserMessageReq\n | ThreadsAddClientToolOutputReq\n | ThreadsRetryAfterItemReq\n | ThreadsCustomActionReq;\n\nexport type NonStreamingReq =\n | ThreadsGetByIdReq\n | ThreadsListReq\n | ItemsListReq\n | ItemsFeedbackReq\n | AttachmentsCreateReq\n | AttachmentsDeleteReq\n | ThreadsUpdateReq\n | ThreadsDeleteReq;\n\nexport type ChatKitReq = StreamingReq | NonStreamingReq;\n\n// ============================================================================\n// Stream Event Types\n// ============================================================================\n\nexport interface ThreadCreatedEvent {\n type: 'thread.created';\n thread: ThreadMetadata;\n}\n\nexport interface ThreadUpdatedEvent {\n type: 'thread.updated';\n thread: ThreadMetadata;\n}\n\nexport interface ThreadItemAddedEvent {\n type: 'thread.item.added';\n item: ThreadItem;\n}\n\nexport interface ThreadItemUpdatedEvent {\n type: 'thread.item.updated';\n item_id: string;\n update: ThreadItemUpdate;\n}\n\nexport interface ThreadItemDoneEvent {\n type: 'thread.item.done';\n item: ThreadItem;\n}\n\nexport interface ThreadItemRemovedEvent {\n type: 'thread.item.removed';\n item_id: string;\n}\n\nexport interface ThreadItemReplacedEvent {\n type: 'thread.item.replaced';\n item: ThreadItem;\n}\n\nexport interface StreamOptions {\n allow_cancel?: boolean;\n}\n\nexport interface StreamOptionsEvent {\n type: 'stream_options';\n options: StreamOptions;\n}\n\nexport interface ProgressUpdate {\n progress: number;\n message?: string;\n}\n\nexport interface ProgressUpdateEvent {\n type: 'progress_update';\n update: ProgressUpdate;\n}\n\nexport interface ClientEffect {\n effect_type: string;\n data?: unknown;\n}\n\nexport interface ClientEffectEvent {\n type: 'client_effect';\n effect: ClientEffect;\n}\n\nexport interface ErrorEvent {\n type: 'error';\n error: {\n code: string;\n message: string;\n details?: unknown;\n };\n}\n\nexport interface NoticeEvent {\n type: 'notice';\n notice: {\n level: 'info' | 'warning' | 'error';\n message: string;\n };\n}\n\nexport type ThreadStreamEvent =\n | ThreadCreatedEvent\n | ThreadUpdatedEvent\n | ThreadItemAddedEvent\n | ThreadItemUpdatedEvent\n | ThreadItemDoneEvent\n | ThreadItemRemovedEvent\n | ThreadItemReplacedEvent\n | StreamOptionsEvent\n | ProgressUpdateEvent\n | ClientEffectEvent\n | ErrorEvent\n | NoticeEvent;\n\n// ============================================================================\n// Thread Item Update Types (for streaming)\n// ============================================================================\n\nexport interface AssistantMessageContentPartAdded {\n type: 'assistant_message.content_part.added';\n part_index: number;\n part: AssistantMessageContent;\n}\n\nexport interface AssistantMessageContentPartTextDelta {\n type: 'assistant_message.content_part.text_delta';\n part_index: number;\n delta: string;\n}\n\nexport interface AssistantMessageContentPartAnnotationAdded {\n type: 'assistant_message.content_part.annotation_added';\n part_index: number;\n annotation: Annotation;\n}\n\nexport interface AssistantMessageContentPartDone {\n type: 'assistant_message.content_part.done';\n part_index: number;\n}\n\nexport interface WidgetStreamingTextValueDelta {\n type: 'widget.streaming_text.value_delta';\n path: string;\n delta: string;\n}\n\nexport interface WidgetRootUpdated {\n type: 'widget.root.updated';\n data: unknown;\n}\n\nexport interface WidgetComponentUpdated {\n type: 'widget.component.updated';\n component_id: string;\n data: unknown;\n}\n\nexport interface WorkflowTaskAdded {\n type: 'workflow.task.added';\n task: Task;\n}\n\nexport interface WorkflowTaskUpdated {\n type: 'workflow.task.updated';\n task_id: string;\n task: Partial<Task>;\n}\n\nexport interface GeneratedImageUpdated {\n type: 'generated_image.updated';\n image: GeneratedImage;\n}\n\nexport type ThreadItemUpdate =\n | AssistantMessageContentPartAdded\n | AssistantMessageContentPartTextDelta\n | AssistantMessageContentPartAnnotationAdded\n | AssistantMessageContentPartDone\n | WidgetStreamingTextValueDelta\n | WidgetRootUpdated\n | WidgetComponentUpdated\n | WorkflowTaskAdded\n | WorkflowTaskUpdated\n | GeneratedImageUpdated;\n\n// ============================================================================\n// Response Types\n// ============================================================================\n\nexport interface StreamingResult {\n type: 'streaming';\n stream: AsyncIterable<ThreadStreamEvent>;\n}\n\nexport interface NonStreamingResult {\n type: 'non_streaming';\n data: unknown;\n}\n\nexport type ChatKitResult = StreamingResult | NonStreamingResult;\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\nexport function isStreamingReq(req: ChatKitReq): req is StreamingReq {\n return (\n req.type === 'threads.create' ||\n req.type === 'threads.add_user_message' ||\n req.type === 'threads.add_client_tool_output' ||\n req.type === 'threads.retry_after_item' ||\n req.type === 'threads.custom_action'\n );\n}\n\nexport function isNonStreamingReq(req: ChatKitReq): req is NonStreamingReq {\n return !isStreamingReq(req);\n}\n\n/**\n * Generate a unique ID with prefix\n */\nexport function generateId(prefix: string): string {\n const timestamp = Date.now().toString(36);\n const random = Math.random().toString(36).substring(2, 10);\n return `${prefix}_${timestamp}${random}`;\n}\n\n/**\n * Get current timestamp in seconds\n */\nexport function nowTimestamp(): number {\n return Math.floor(Date.now() / 1000);\n}\n\n/**\n * Extract text content from user message\n */\nexport function extractUserMessageText(content: UserMessageContent[]): string {\n return content\n .filter((c): c is UserMessageTextContent => c.type === 'input_text')\n .map((c) => c.text)\n .join('\\n');\n}\n\n/**\n * Extract text content from assistant message\n */\nexport function extractAssistantMessageText(content: AssistantMessageContent[]): string {\n return content\n .filter((c): c is AssistantMessageContent => c.type === 'output_text')\n .map((c) => c.text)\n .join('\\n');\n}\n"]}
@@ -9,6 +9,7 @@ exports.registerCommonServices = registerCommonServices;
9
9
  const awilix_1 = require("awilix");
10
10
  const db_1 = require("../../identity/drizzle/db");
11
11
  const EdgeNodeRepository_1 = require("../../identity/drizzle/EdgeNodeRepository");
12
+ const AccountRoleRepository_1 = require("../../identity/drizzle/AccountRoleRepository");
12
13
  const ServiceTokenRepository_1 = require("../../identity/drizzle/ServiceTokenRepository");
13
14
  const LocalSetupServiceTokenRepository_1 = require("../../setup/LocalSetupServiceTokenRepository");
14
15
  const SolidTokenAuthenticator_1 = require("../auth/SolidTokenAuthenticator");
@@ -16,9 +17,24 @@ const ClientCredentialsAuthenticator_1 = require("../auth/ClientCredentialsAuthe
16
17
  const NodeTokenAuthenticator_1 = require("../auth/NodeTokenAuthenticator");
17
18
  const ServiceTokenAuthenticator_1 = require("../auth/ServiceTokenAuthenticator");
18
19
  const MultiAuthenticator_1 = require("../auth/MultiAuthenticator");
20
+ const GatewayApiKeyAuthenticator_1 = require("../ai-gateway/auth/GatewayApiKeyAuthenticator");
21
+ const PodGatewayAccessKeyRepository_1 = require("../ai-gateway/auth/PodGatewayAccessKeyRepository");
22
+ const GatewayKeyLocatorCodec_1 = require("../ai-gateway/auth/GatewayKeyLocatorCodec");
23
+ const ClientCredentialsInternalPodAccessTokenProvider_1 = require("../ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider");
24
+ const AiConnectionInvocationKeyIssuer_1 = require("../ai-gateway/auth/AiConnectionInvocationKeyIssuer");
25
+ const InvocationTokenCodec_1 = require("../ai-gateway/auth/InvocationTokenCodec");
26
+ const AiGatewayService_1 = require("../ai-gateway/AiGatewayService");
27
+ const connect_1 = require("../ai-gateway/connect");
28
+ const ProviderRegistry_1 = require("../ai-gateway/providers/ProviderRegistry");
29
+ const ProviderRuntimeRegistry_1 = require("../ai-gateway/providers/ProviderRuntimeRegistry");
30
+ const ModelRouter_1 = require("../ai-gateway/routing/ModelRouter");
31
+ const InMemorySessionAffinityStore_1 = require("../ai-gateway/routing/InMemorySessionAffinityStore");
32
+ const RedisSessionAffinityStore_1 = require("../ai-gateway/routing/RedisSessionAffinityStore");
33
+ const quota_1 = require("../ai-gateway/quota");
19
34
  const AuthMiddleware_1 = require("../middleware/AuthMiddleware");
20
35
  const VercelChatService_1 = require("../service/VercelChatService");
21
36
  const VectorService_1 = require("../service/VectorService");
37
+ const RdfStorageStatsService_1 = require("../service/RdfStorageStatsService");
22
38
  const ApiServer_1 = require("../ApiServer");
23
39
  const chatkit_1 = require("../chatkit");
24
40
  const matrix_1 = require("../matrix");
@@ -28,6 +44,8 @@ const PiAgentRuntimeDriver_1 = require("../runs/PiAgentRuntimeDriver");
28
44
  const RunAuthContextRegistry_1 = require("../runs/RunAuthContextRegistry");
29
45
  const tasks_1 = require("../tasks");
30
46
  const service_1 = require("../../ai/service");
47
+ const rdf_1 = require("./rdf");
48
+ const EdgeNodeCertificateCapabilityBridge_1 = require("../../edge/EdgeNodeCertificateCapabilityBridge");
31
49
  function resolveCssServiceBaseUrl() {
32
50
  if (process.env.CSS_INTERNAL_URL) {
33
51
  return process.env.CSS_INTERNAL_URL;
@@ -37,6 +55,16 @@ function resolveCssServiceBaseUrl() {
37
55
  }
38
56
  return 'http://localhost:3000/';
39
57
  }
58
+ function resolveAiConnectionBaseUrl(config) {
59
+ const origin = config.publicUrl
60
+ ?? process.env.XPOD_PUBLIC_URL
61
+ ?? process.env.CSS_BASE_URL
62
+ ?? `http://${config.host === '0.0.0.0' ? '127.0.0.1' : config.host}:${config.port}`;
63
+ return new URL('/v1', origin.endsWith('/') ? origin : `${origin}/`).toString().replace(/\/$/u, '');
64
+ }
65
+ function resolveAiConnectionAudience(config) {
66
+ return new URL(resolveAiConnectionBaseUrl(config)).origin;
67
+ }
40
68
  /**
41
69
  * 注册共享服务到容器
42
70
  */
@@ -46,27 +74,241 @@ function registerCommonServices(container) {
46
74
  db: (0, awilix_1.asFunction)(({ config }) => {
47
75
  return (0, db_1.getIdentityDatabase)(config.databaseUrl);
48
76
  }).singleton(),
77
+ edgeNodeCertificateCapabilityBridge: (0, awilix_1.asFunction)(({ config }) => {
78
+ const bridgeId = (0, EdgeNodeCertificateCapabilityBridge_1.resolveEdgeNodeCertificateCapabilityBridgeId)({
79
+ nodeId: config.nodeId,
80
+ baseUrl: config.solidBaseUrl ?? config.publicUrl,
81
+ });
82
+ return bridgeId ? (0, EdgeNodeCertificateCapabilityBridge_1.getEdgeNodeCertificateCapabilityBridge)(bridgeId) : undefined;
83
+ }).singleton(),
49
84
  // 仓库
50
85
  nodeRepo: (0, awilix_1.asFunction)(({ db, config }) => {
51
86
  return new EdgeNodeRepository_1.EdgeNodeRepository(db, {
52
87
  ensureClusterTables: config.edition === 'cloud',
53
88
  });
54
89
  }).singleton(),
90
+ accountRoleRepo: (0, awilix_1.asFunction)(({ db }) => {
91
+ return new AccountRoleRepository_1.AccountRoleRepository(db);
92
+ }).singleton(),
55
93
  // 认证
56
94
  serviceTokenRepo: (0, awilix_1.asFunction)(({ db, config }) => {
57
95
  if (config.edition === 'cloud') {
58
96
  return new ServiceTokenRepository_1.ServiceTokenRepository(db);
59
97
  }
60
98
  return new LocalSetupServiceTokenRepository_1.LocalSetupServiceTokenRepository({
61
- token: process.env.XPOD_SERVICE_TOKEN,
99
+ token: config.serviceToken,
62
100
  serviceType: 'local',
63
101
  serviceId: config.nodeId ?? 'local-1',
64
- scopes: ['quota:write', 'usage:read', 'account:manage'],
102
+ scopes: ['quota:write', 'usage:read', 'account:manage', 'network:read', 'network:write'],
103
+ });
104
+ }).singleton(),
105
+ gatewayInternalPodAccess: (0, awilix_1.asFunction)(({ config }) => {
106
+ if (!config.gatewayInternalClientId || !config.gatewayInternalClientSecret) {
107
+ throw new Error('XPOD_GATEWAY_INTERNAL_CLIENT_ID and XPOD_GATEWAY_INTERNAL_CLIENT_SECRET are required for Gateway internal Pod access');
108
+ }
109
+ return new ClientCredentialsInternalPodAccessTokenProvider_1.ClientCredentialsInternalPodAccessTokenProvider({
110
+ tokenEndpoint: config.cssTokenEndpoint,
111
+ clientId: config.gatewayInternalClientId,
112
+ clientSecret: config.gatewayInternalClientSecret,
113
+ });
114
+ }).singleton(),
115
+ gatewayAccessKeyRepository: (0, awilix_1.asFunction)(({ config, gatewayInternalPodAccess }) => {
116
+ if (!config.gatewayLocatorSecret) {
117
+ throw new Error('XPOD_GATEWAY_LOCATOR_SECRET is required for Gateway API key locator encryption');
118
+ }
119
+ return new PodGatewayAccessKeyRepository_1.PodGatewayAccessKeyRepository({
120
+ locatorCodec: new GatewayKeyLocatorCodec_1.AesGatewayKeyLocatorCodec({
121
+ active: {
122
+ kid: config.gatewayLocatorKeyId ?? 'active',
123
+ secret: config.gatewayLocatorSecret,
124
+ },
125
+ previous: config.gatewayPreviousLocatorSecrets,
126
+ }),
127
+ internalPodAccess: gatewayInternalPodAccess,
65
128
  });
66
129
  }).singleton(),
67
- authenticator: (0, awilix_1.asFunction)(({ nodeRepo, serviceTokenRepo, config }) => {
130
+ invocationTokenCodec: (0, awilix_1.asFunction)(({ config }) => {
131
+ if (!config.gatewayLocatorSecret) {
132
+ throw new Error('XPOD_GATEWAY_LOCATOR_SECRET is required for invocation token encryption');
133
+ }
134
+ return new InvocationTokenCodec_1.AesInvocationTokenCodec({
135
+ active: {
136
+ kid: config.gatewayLocatorKeyId ?? 'active',
137
+ secret: config.gatewayLocatorSecret,
138
+ },
139
+ previous: config.gatewayPreviousLocatorSecrets,
140
+ });
141
+ }).singleton(),
142
+ aiConnectionInvocationKeyIssuer: (0, awilix_1.asFunction)(({ config, invocationTokenCodec }) => {
143
+ return new AiConnectionInvocationKeyIssuer_1.AiConnectionInvocationKeyIssuer({
144
+ codec: invocationTokenCodec,
145
+ deployment: config.edition,
146
+ baseUrl: resolveAiConnectionBaseUrl(config),
147
+ audience: resolveAiConnectionAudience(config),
148
+ });
149
+ }).singleton(),
150
+ providerConnectService: (0, awilix_1.asFunction)((cradle) => {
151
+ const { config } = cradle;
152
+ if (!config.aiGatewayConnectEnabled) {
153
+ return new connect_1.ProviderConnectService({
154
+ registry: (0, ProviderRegistry_1.createDefaultProviderRegistry)({
155
+ connect: {
156
+ openai: { configured: false, notes: ['AI Gateway provider Connect is disabled in this Xpod deployment.'] },
157
+ anthropic: { configured: false, notes: ['AI Gateway provider Connect is disabled in this Xpod deployment.'] },
158
+ kimi: { configured: false, notes: ['AI Gateway provider Connect is disabled in this Xpod deployment.'] },
159
+ bailian: { configured: false, notes: ['AI Gateway provider Connect is disabled in this Xpod deployment.'] },
160
+ deepseek: { configured: false },
161
+ },
162
+ }),
163
+ adapters: [],
164
+ });
165
+ }
166
+ if (!config.secretCellCredentialVaultFactory) {
167
+ throw new Error('AI Gateway Connect requires XPOD_SECRET_CELL_KEY_ID and XPOD_SECRET_CELL_KEY');
168
+ }
169
+ const signingSecret = config.aiGatewayConnectSigningSecret ?? config.gatewayLocatorSecret;
170
+ if (!signingSecret) {
171
+ throw new Error('AI Gateway Connect requires XPOD_AI_GATEWAY_CONNECT_SIGNING_SECRET or XPOD_GATEWAY_LOCATOR_SECRET');
172
+ }
173
+ const internalPodAccess = cradle.gatewayInternalPodAccess;
174
+ const credentialRepository = new connect_1.PodConnectedCredentialRepository({ internalPodAccess });
175
+ const vault = config.secretCellCredentialVaultFactory();
176
+ const attempts = new connect_1.InMemoryConnectAttemptStore();
177
+ const adapters = [
178
+ new connect_1.BrowserAssistedApiKeyConnectAdapter({
179
+ provider: 'openai',
180
+ consoleUrl: 'https://platform.openai.com/api-keys',
181
+ attempts,
182
+ credentialRepository,
183
+ vault,
184
+ deployment: config.edition,
185
+ signingSecret,
186
+ }),
187
+ new connect_1.BrowserAssistedApiKeyConnectAdapter({
188
+ provider: 'anthropic',
189
+ consoleUrl: 'https://console.anthropic.com/settings/keys',
190
+ attempts,
191
+ credentialRepository,
192
+ vault,
193
+ deployment: config.edition,
194
+ signingSecret,
195
+ }),
196
+ new connect_1.BrowserAssistedApiKeyConnectAdapter({
197
+ provider: 'bailian',
198
+ consoleUrl: 'https://bailian.console.aliyun.com/',
199
+ attempts,
200
+ credentialRepository,
201
+ vault,
202
+ deployment: config.edition,
203
+ signingSecret,
204
+ }),
205
+ ];
206
+ if (config.aiGatewayKimiClientId) {
207
+ adapters.push(new connect_1.KimiDeviceCodeConnectAdapter({
208
+ attempts,
209
+ credentialRepository,
210
+ vault,
211
+ deployment: config.edition,
212
+ signingSecret,
213
+ clientId: config.aiGatewayKimiClientId,
214
+ }));
215
+ }
216
+ return new connect_1.ProviderConnectService({
217
+ registry: (0, ProviderRegistry_1.createDefaultProviderRegistry)({
218
+ connect: {
219
+ kimi: config.aiGatewayKimiClientId
220
+ ? { configured: true }
221
+ : { configured: false, notes: ['not_configured: XPOD_AI_GATEWAY_KIMI_CLIENT_ID is not configured.'] },
222
+ },
223
+ }),
224
+ adapters,
225
+ credentialRepository,
226
+ vault,
227
+ });
228
+ }).singleton(),
229
+ gatewayProviderRegistry: (0, awilix_1.asFunction)(({ config }) => {
230
+ const registry = (0, ProviderRegistry_1.createDefaultProviderRegistry)();
231
+ const openAiBaseUrl = config.aiGatewayProviderBaseUrls?.openai;
232
+ if (openAiBaseUrl) {
233
+ registry.register({
234
+ ...registry.requireProvider('openai'),
235
+ defaultBaseUrl: openAiBaseUrl,
236
+ safeBaseUrls: [openAiBaseUrl],
237
+ });
238
+ }
239
+ return registry;
240
+ }).singleton(),
241
+ gatewayCredentialStore: (0, awilix_1.asFunction)(({ gatewayInternalPodAccess }) => {
242
+ return new connect_1.PodConnectedCredentialRepository({
243
+ internalPodAccess: gatewayInternalPodAccess,
244
+ });
245
+ }).singleton(),
246
+ gatewayRuntimeRegistry: (0, awilix_1.asFunction)(({ gatewayProviderRegistry }) => {
247
+ return new ProviderRuntimeRegistry_1.ProviderRuntimeRegistry({ registry: gatewayProviderRegistry });
248
+ }).singleton(),
249
+ gatewaySessionAffinityStore: (0, awilix_1.asFunction)(({ config }) => {
250
+ const secret = config.gatewayLocatorSecret;
251
+ if (!secret) {
252
+ throw new Error('AI Gateway inference requires XPOD_GATEWAY_LOCATOR_SECRET for session affinity hashing');
253
+ }
254
+ if (config.redisUrl) {
255
+ return new RedisSessionAffinityStore_1.RedisSessionAffinityStore({
256
+ client: config.redisUrl,
257
+ secret,
258
+ });
259
+ }
260
+ return new InMemorySessionAffinityStore_1.InMemorySessionAffinityStore({ secret });
261
+ }).singleton(),
262
+ aiGatewayService: (0, awilix_1.asFunction)((cradle) => {
263
+ const { config } = cradle;
264
+ if (!config.secretCellCredentialVaultFactory) {
265
+ throw new Error('AI Gateway inference requires XPOD_SECRET_CELL_KEY_ID and XPOD_SECRET_CELL_KEY');
266
+ }
267
+ const gatewayProviderRegistry = cradle.gatewayProviderRegistry;
268
+ const gatewayCredentialStore = cradle.gatewayCredentialStore;
269
+ const gatewayRuntimeRegistry = cradle.gatewayRuntimeRegistry;
270
+ const gatewaySessionAffinityStore = cradle.gatewaySessionAffinityStore;
271
+ const router = new ModelRouter_1.ModelRouter({
272
+ registry: gatewayProviderRegistry,
273
+ affinityStore: gatewaySessionAffinityStore,
274
+ credentials: gatewayCredentialStore.listCredentials.bind(gatewayCredentialStore),
275
+ });
276
+ return new AiGatewayService_1.AiGatewayService({
277
+ deployment: config.edition,
278
+ registry: gatewayProviderRegistry,
279
+ router,
280
+ credentials: gatewayCredentialStore,
281
+ runtimes: gatewayRuntimeRegistry,
282
+ vault: config.secretCellCredentialVaultFactory(),
283
+ });
284
+ }).singleton(),
285
+ providerQuotaService: (0, awilix_1.asFunction)((cradle) => {
286
+ const { config } = cradle;
287
+ if (!config.aiGatewayConnectEnabled) {
288
+ return undefined;
289
+ }
290
+ if (!config.secretCellCredentialVaultFactory) {
291
+ throw new Error('AI Gateway quota requires XPOD_SECRET_CELL_KEY_ID and XPOD_SECRET_CELL_KEY');
292
+ }
293
+ const internalPodAccess = cradle.gatewayInternalPodAccess;
294
+ return new quota_1.ProviderQuotaService({
295
+ repository: new quota_1.PodQuotaSnapshotRepository({ internalPodAccess }),
296
+ credentialRepository: new connect_1.PodConnectedCredentialRepository({ internalPodAccess }),
297
+ vault: config.secretCellCredentialVaultFactory(),
298
+ adapters: [
299
+ new quota_1.OpenAiQuotaAdapter(),
300
+ new quota_1.AnthropicQuotaAdapter(),
301
+ new quota_1.KimiQuotaAdapter(),
302
+ new quota_1.BailianQuotaAdapter(),
303
+ new quota_1.DeepSeekQuotaAdapter(),
304
+ ],
305
+ });
306
+ }).singleton(),
307
+ authenticator: (0, awilix_1.asFunction)(({ nodeRepo, serviceTokenRepo, gatewayAccessKeyRepository, invocationTokenCodec, config }) => {
68
308
  const solidAuthenticator = new SolidTokenAuthenticator_1.SolidTokenAuthenticator({
69
309
  resolveAccountId: async (webId) => webId,
310
+ publicBaseUrl: config.solidBaseUrl,
311
+ internalBaseUrl: config.cssTokenEndpoint,
70
312
  });
71
313
  const clientCredAuthenticator = new ClientCredentialsAuthenticator_1.ClientCredentialsAuthenticator({
72
314
  tokenEndpoint: config.cssTokenEndpoint,
@@ -77,10 +319,16 @@ function registerCommonServices(container) {
77
319
  const serviceTokenAuthenticator = new ServiceTokenAuthenticator_1.ServiceTokenAuthenticator({
78
320
  repository: serviceTokenRepo,
79
321
  });
322
+ const gatewayApiKeyAuthenticator = new GatewayApiKeyAuthenticator_1.GatewayApiKeyAuthenticator({
323
+ repository: gatewayAccessKeyRepository,
324
+ invocationTokenCodec,
325
+ deployment: config.edition,
326
+ invocationTokenAudience: resolveAiConnectionAudience(config),
327
+ });
80
328
  return new MultiAuthenticator_1.MultiAuthenticator({
81
- // Order: Solid DPoP → Service Token → Node Token → Client Credentials
82
- // ServiceTokenAuthenticator handles 'svc-' prefix, so no ambiguity
83
- authenticators: [solidAuthenticator, serviceTokenAuthenticator, nodeTokenAuthenticator, clientCredAuthenticator],
329
+ // Order: Solid DPoP → Service Token → Node Token → Gateway Key → Client Credentials.
330
+ // Agent execution is scoped by ChatKit thread/workspace and Run state, not standalone Agent JWTs.
331
+ authenticators: [solidAuthenticator, serviceTokenAuthenticator, nodeTokenAuthenticator, gatewayApiKeyAuthenticator, clientCredAuthenticator],
84
332
  });
85
333
  }).singleton(),
86
334
  authMiddleware: (0, awilix_1.asFunction)(({ authenticator }) => {
@@ -117,8 +365,8 @@ function registerCommonServices(container) {
117
365
  })(),
118
366
  });
119
367
  }).singleton(),
120
- chatKitAiProvider: (0, awilix_1.asFunction)(({ chatKitStore }) => {
121
- return new chatkit_1.VercelAiProvider({ store: chatKitStore });
368
+ chatKitAiProvider: (0, awilix_1.asFunction)(({ chatKitStore, aiGatewayService }) => {
369
+ return new chatkit_1.VercelAiProvider({ store: chatKitStore, aiGatewayService });
122
370
  }).singleton(),
123
371
  runAuthContextRegistry: (0, awilix_1.asFunction)(() => {
124
372
  return new RunAuthContextRegistry_1.RunAuthContextRegistry();
@@ -128,7 +376,23 @@ function registerCommonServices(container) {
128
376
  repository: chatKitStore,
129
377
  });
130
378
  }).singleton(),
131
- runExecutionBackend: (0, awilix_1.asFunction)(({ config, inngestRuntimeConfig, chatKitStore, taskAuthBindingService, runAuthContextRegistry }) => {
379
+ rdfEngine: (0, awilix_1.asFunction)(({ config }) => {
380
+ return (0, rdf_1.createApiRdfEngine)(config);
381
+ }).singleton(),
382
+ runContextRetriever: (0, awilix_1.asFunction)(({ rdfEngine, chatKitStore, embeddingService }) => {
383
+ return (0, rdf_1.createApiRunContextRetriever)(rdfEngine, { chatKitStore, embeddingService });
384
+ }).singleton(),
385
+ rdfSearchIndexingService: (0, awilix_1.asFunction)(({ rdfEngine, chatKitStore, embeddingService }) => {
386
+ return (0, rdf_1.createApiRdfSearchIndexingService)(rdfEngine, { chatKitStore, embeddingService });
387
+ }).singleton(),
388
+ rdfStorageStatsService: (0, awilix_1.asFunction)(({ config, rdfEngine }) => {
389
+ return new RdfStorageStatsService_1.RdfStorageStatsService({
390
+ edition: config.edition,
391
+ sparqlEndpoint: config.sparqlEndpoint,
392
+ rdfEngine,
393
+ });
394
+ }).singleton(),
395
+ runExecutionBackend: (0, awilix_1.asFunction)(({ config, inngestRuntimeConfig, chatKitStore, taskAuthBindingService, runAuthContextRegistry, runContextRetriever, rdfSearchIndexingService, aiConnectionInvocationKeyIssuer }) => {
132
396
  return new InngestRunExecutionBackend_1.InngestRunExecutionBackend({
133
397
  baseUrl: inngestRuntimeConfig?.baseUrl,
134
398
  eventKey: inngestRuntimeConfig?.eventKey,
@@ -136,6 +400,8 @@ function registerCommonServices(container) {
136
400
  isDev: inngestRuntimeConfig?.enabled ? !inngestRuntimeConfig.durableDelivery : true,
137
401
  durableDelivery: inngestRuntimeConfig?.durableDelivery ?? false,
138
402
  store: chatKitStore,
403
+ contextRetriever: runContextRetriever,
404
+ aiConnectionInvocationKeyIssuer,
139
405
  contextRecorder: (context) => runAuthContextRegistry.remember(context),
140
406
  contextResolver: async (data) => {
141
407
  const fallback = runAuthContextRegistry.resolve({ webId: data.webId });
@@ -147,21 +413,28 @@ function registerCommonServices(container) {
147
413
  runtimeDriver: new PiAgentRuntimeDriver_1.PiAgentRuntimeDriver({
148
414
  agentLoopIsolation: config.edition === 'cloud' ? 'sandboxed-process' : 'in-process',
149
415
  requireSandbox: config.edition === 'cloud',
416
+ rdfSearchIndexingService,
150
417
  }),
151
418
  });
152
419
  }).singleton(),
153
- chatKitService: (0, awilix_1.asFunction)(({ chatKitStore, chatKitAiProvider, config, runExecutionBackend }) => {
420
+ chatKitService: (0, awilix_1.asFunction)(({ chatKitStore, chatKitAiProvider, runExecutionBackend, runContextRetriever, aiConnectionInvocationKeyIssuer }) => {
154
421
  return new chatkit_1.ChatKitService({
155
422
  store: chatKitStore,
156
423
  aiProvider: chatKitAiProvider,
157
424
  enableAgentRuntime: true,
158
425
  runExecutionBackend,
426
+ contextRetriever: runContextRetriever,
427
+ aiConnectionInvocationKeyIssuer,
428
+ requireAiConnectionInvocationKeyIssuer: true,
159
429
  });
160
430
  }).singleton(),
161
- taskService: (0, awilix_1.asFunction)(({ chatKitStore, runExecutionBackend }) => {
431
+ taskService: (0, awilix_1.asFunction)(({ chatKitStore, runExecutionBackend, runContextRetriever, aiConnectionInvocationKeyIssuer }) => {
162
432
  return new tasks_1.TaskService({
163
433
  store: chatKitStore,
164
434
  executionBackend: runExecutionBackend,
435
+ contextRetriever: runContextRetriever,
436
+ aiConnectionInvocationKeyIssuer,
437
+ requireAiConnectionInvocationKeyIssuer: true,
165
438
  });
166
439
  }).singleton(),
167
440
  inngestTaskScheduler: (0, awilix_1.asFunction)(({ runExecutionBackend, taskService, taskAuthBindingService, inngestRuntimeConfig, runAuthContextRegistry }) => {
@@ -195,8 +468,8 @@ function registerCommonServices(container) {
195
468
  });
196
469
  }).singleton(),
197
470
  // 业务服务
198
- chatService: (0, awilix_1.asFunction)(({ chatKitStore }) => {
199
- return new VercelChatService_1.VercelChatService(chatKitStore);
471
+ chatService: (0, awilix_1.asFunction)(({ chatKitStore, aiGatewayService }) => {
472
+ return new VercelChatService_1.VercelChatService(chatKitStore, { aiGatewayService });
200
473
  }).singleton(),
201
474
  // API Server
202
475
  apiServer: (0, awilix_1.asFunction)(({ config, authMiddleware }) => {