@undefineds.co/xpod 0.3.58 → 0.3.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (806) hide show
  1. package/README.md +3 -0
  2. package/config/cli.json +88 -0
  3. package/config/cloud.json +32 -1
  4. package/config/components-ignore.json +3 -0
  5. package/config/extensions.local.initializer.json +44 -0
  6. package/config/resolver.json +86 -0
  7. package/config/xpod.base.json +4 -0
  8. package/dist/agents/AgentExecutorFactory.d.ts +3 -3
  9. package/dist/agents/AgentExecutorFactory.js +28 -15
  10. package/dist/agents/AgentExecutorFactory.js.map +1 -1
  11. package/dist/agents/BaseAgentExecutor.d.ts +2 -1
  12. package/dist/agents/BaseAgentExecutor.js +1 -0
  13. package/dist/agents/BaseAgentExecutor.js.map +1 -1
  14. package/dist/agents/ClaudeExecutor.d.ts +3 -1
  15. package/dist/agents/ClaudeExecutor.js +18 -12
  16. package/dist/agents/ClaudeExecutor.js.map +1 -1
  17. package/dist/agents/config/resolve.js +0 -21
  18. package/dist/agents/config/resolve.js.map +1 -1
  19. package/dist/agents/config/types.d.ts +2 -7
  20. package/dist/agents/config/types.js +2 -1
  21. package/dist/agents/config/types.js.map +1 -1
  22. package/dist/agents/types.d.ts +18 -0
  23. package/dist/agents/types.js.map +1 -1
  24. package/dist/ai/schema/types.d.ts +2 -1
  25. package/dist/ai/schema/types.js +1 -0
  26. package/dist/ai/schema/types.js.map +1 -1
  27. package/dist/ai/service/CredentialReader.d.ts +3 -1
  28. package/dist/ai/service/CredentialReader.js.map +1 -1
  29. package/dist/ai/service/CredentialReaderImpl.d.ts +3 -1
  30. package/dist/ai/service/CredentialReaderImpl.js +24 -2
  31. package/dist/ai/service/CredentialReaderImpl.js.map +1 -1
  32. package/dist/ai/service/EmbeddingServiceImpl.js +13 -2
  33. package/dist/ai/service/EmbeddingServiceImpl.js.map +1 -1
  34. package/dist/ai/service/ProviderRegistry.d.ts +4 -0
  35. package/dist/ai/service/ProviderRegistry.js.map +1 -1
  36. package/dist/ai/service/ProviderRegistry.jsonld +4 -0
  37. package/dist/ai/service/ProviderRegistryImpl.d.ts +4 -1
  38. package/dist/ai/service/ProviderRegistryImpl.js +26 -4
  39. package/dist/ai/service/ProviderRegistryImpl.js.map +1 -1
  40. package/dist/ai/service/ProviderRegistryImpl.jsonld +12 -0
  41. package/dist/ai/service/defaultEmbeddingProfile.d.ts +5 -0
  42. package/dist/ai/service/defaultEmbeddingProfile.js +31 -0
  43. package/dist/ai/service/defaultEmbeddingProfile.js.map +1 -0
  44. package/dist/ai/service/index.d.ts +1 -0
  45. package/dist/ai/service/index.js +1 -0
  46. package/dist/ai/service/index.js.map +1 -1
  47. package/dist/ai/service/types.d.ts +1 -0
  48. package/dist/ai/service/types.js.map +1 -1
  49. package/dist/api/ApiServer.js +17 -2
  50. package/dist/api/ApiServer.js.map +1 -1
  51. package/dist/api/ai-gateway/AiGatewayService.d.ts +106 -0
  52. package/dist/api/ai-gateway/AiGatewayService.js +527 -0
  53. package/dist/api/ai-gateway/AiGatewayService.js.map +1 -0
  54. package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.d.ts +38 -0
  55. package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.js +128 -0
  56. package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.js.map +1 -0
  57. package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.d.ts +25 -0
  58. package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.js +91 -0
  59. package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.js.map +1 -0
  60. package/dist/api/ai-gateway/auth/GatewayApiKey.d.ts +28 -0
  61. package/dist/api/ai-gateway/auth/GatewayApiKey.js +162 -0
  62. package/dist/api/ai-gateway/auth/GatewayApiKey.js.map +1 -0
  63. package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.d.ts +56 -0
  64. package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.js +143 -0
  65. package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.js.map +1 -0
  66. package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.d.ts +26 -0
  67. package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.js +97 -0
  68. package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.js.map +1 -0
  69. package/dist/api/ai-gateway/auth/GatewayPrincipal.d.ts +20 -0
  70. package/dist/api/ai-gateway/auth/GatewayPrincipal.js +37 -0
  71. package/dist/api/ai-gateway/auth/GatewayPrincipal.js.map +1 -0
  72. package/dist/api/ai-gateway/auth/InvocationTokenCodec.d.ts +41 -0
  73. package/dist/api/ai-gateway/auth/InvocationTokenCodec.js +221 -0
  74. package/dist/api/ai-gateway/auth/InvocationTokenCodec.js.map +1 -0
  75. package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.d.ts +54 -0
  76. package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.js +152 -0
  77. package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.js.map +1 -0
  78. package/dist/api/ai-gateway/connect/index.d.ts +367 -0
  79. package/dist/api/ai-gateway/connect/index.js +1061 -0
  80. package/dist/api/ai-gateway/connect/index.js.map +1 -0
  81. package/dist/api/ai-gateway/credentials/CloudKmsWrapper.d.ts +40 -0
  82. package/dist/api/ai-gateway/credentials/CloudKmsWrapper.js +59 -0
  83. package/dist/api/ai-gateway/credentials/CloudKmsWrapper.js.map +1 -0
  84. package/dist/api/ai-gateway/credentials/CredentialVault.d.ts +14 -0
  85. package/dist/api/ai-gateway/credentials/CredentialVault.js +11 -0
  86. package/dist/api/ai-gateway/credentials/CredentialVault.js.map +1 -0
  87. package/dist/api/ai-gateway/credentials/KeyWrapper.d.ts +27 -0
  88. package/dist/api/ai-gateway/credentials/KeyWrapper.js +3 -0
  89. package/dist/api/ai-gateway/credentials/KeyWrapper.js.map +1 -0
  90. package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.d.ts +27 -0
  91. package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.js +145 -0
  92. package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.js.map +1 -0
  93. package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.d.ts +13 -0
  94. package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.js +133 -0
  95. package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.js.map +1 -0
  96. package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.d.ts +23 -0
  97. package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.js +62 -0
  98. package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.js.map +1 -0
  99. package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.d.ts +23 -0
  100. package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.js +173 -0
  101. package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.js.map +1 -0
  102. package/dist/api/ai-gateway/errors.d.ts +21 -0
  103. package/dist/api/ai-gateway/errors.js +50 -0
  104. package/dist/api/ai-gateway/errors.js.map +1 -0
  105. package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.d.ts +6 -0
  106. package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.js +111 -0
  107. package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.js.map +1 -0
  108. package/dist/api/ai-gateway/protocol/MessagesFrontend.d.ts +6 -0
  109. package/dist/api/ai-gateway/protocol/MessagesFrontend.js +99 -0
  110. package/dist/api/ai-gateway/protocol/MessagesFrontend.js.map +1 -0
  111. package/dist/api/ai-gateway/protocol/ResponsesFrontend.d.ts +6 -0
  112. package/dist/api/ai-gateway/protocol/ResponsesFrontend.js +232 -0
  113. package/dist/api/ai-gateway/protocol/ResponsesFrontend.js.map +1 -0
  114. package/dist/api/ai-gateway/protocol/index.d.ts +3 -0
  115. package/dist/api/ai-gateway/protocol/index.js +10 -0
  116. package/dist/api/ai-gateway/protocol/index.js.map +1 -0
  117. package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.d.ts +7 -0
  118. package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.js +37 -0
  119. package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.js.map +1 -0
  120. package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.d.ts +9 -0
  121. package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.js +127 -0
  122. package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.js.map +1 -0
  123. package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.d.ts +8 -0
  124. package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.js +47 -0
  125. package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.js.map +1 -0
  126. package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.d.ts +8 -0
  127. package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.js +57 -0
  128. package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.js.map +1 -0
  129. package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.d.ts +1 -0
  130. package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.js +6 -0
  131. package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.js.map +1 -0
  132. package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.d.ts +13 -0
  133. package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.js +34 -0
  134. package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.js.map +1 -0
  135. package/dist/api/ai-gateway/providers/ProviderRegistry.d.ts +68 -0
  136. package/dist/api/ai-gateway/providers/ProviderRegistry.js +288 -0
  137. package/dist/api/ai-gateway/providers/ProviderRegistry.js.map +1 -0
  138. package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.d.ts +88 -0
  139. package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.js +645 -0
  140. package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.js.map +1 -0
  141. package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.d.ts +13 -0
  142. package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.js +48 -0
  143. package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.js.map +1 -0
  144. package/dist/api/ai-gateway/providers/index.d.ts +9 -0
  145. package/dist/api/ai-gateway/providers/index.js +26 -0
  146. package/dist/api/ai-gateway/providers/index.js.map +1 -0
  147. package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.d.ts +5 -0
  148. package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.js +21 -0
  149. package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.js.map +1 -0
  150. package/dist/api/ai-gateway/quota/BailianQuotaAdapter.d.ts +5 -0
  151. package/dist/api/ai-gateway/quota/BailianQuotaAdapter.js +21 -0
  152. package/dist/api/ai-gateway/quota/BailianQuotaAdapter.js.map +1 -0
  153. package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.d.ts +10 -0
  154. package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.js +83 -0
  155. package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.js.map +1 -0
  156. package/dist/api/ai-gateway/quota/KimiQuotaAdapter.d.ts +10 -0
  157. package/dist/api/ai-gateway/quota/KimiQuotaAdapter.js +70 -0
  158. package/dist/api/ai-gateway/quota/KimiQuotaAdapter.js.map +1 -0
  159. package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.d.ts +5 -0
  160. package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.js +21 -0
  161. package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.js.map +1 -0
  162. package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.d.ts +214 -0
  163. package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.js +511 -0
  164. package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.js.map +1 -0
  165. package/dist/api/ai-gateway/quota/index.d.ts +6 -0
  166. package/dist/api/ai-gateway/quota/index.js +23 -0
  167. package/dist/api/ai-gateway/quota/index.js.map +1 -0
  168. package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.d.ts +26 -0
  169. package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.js +67 -0
  170. package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.js.map +1 -0
  171. package/dist/api/ai-gateway/routing/ModelRouter.d.ts +84 -0
  172. package/dist/api/ai-gateway/routing/ModelRouter.js +274 -0
  173. package/dist/api/ai-gateway/routing/ModelRouter.js.map +1 -0
  174. package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.d.ts +39 -0
  175. package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.js +122 -0
  176. package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.js.map +1 -0
  177. package/dist/api/ai-gateway/routing/SessionAffinityStore.d.ts +49 -0
  178. package/dist/api/ai-gateway/routing/SessionAffinityStore.js +66 -0
  179. package/dist/api/ai-gateway/routing/SessionAffinityStore.js.map +1 -0
  180. package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.d.ts +25 -0
  181. package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.js +50 -0
  182. package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.js.map +1 -0
  183. package/dist/api/ai-gateway/types.d.ts +112 -0
  184. package/dist/api/ai-gateway/types.js +305 -0
  185. package/dist/api/ai-gateway/types.js.map +1 -0
  186. package/dist/api/auth/AuthContext.d.ts +18 -3
  187. package/dist/api/auth/AuthContext.js +13 -2
  188. package/dist/api/auth/AuthContext.js.map +1 -1
  189. package/dist/api/auth/Authenticator.d.ts +3 -0
  190. package/dist/api/auth/Authenticator.js.map +1 -1
  191. package/dist/api/auth/ClientCredentialsAuthenticator.d.ts +2 -6
  192. package/dist/api/auth/ClientCredentialsAuthenticator.js +12 -30
  193. package/dist/api/auth/ClientCredentialsAuthenticator.js.map +1 -1
  194. package/dist/api/auth/SolidTokenAuthenticator.d.ts +2 -0
  195. package/dist/api/auth/SolidTokenAuthenticator.js +88 -2
  196. package/dist/api/auth/SolidTokenAuthenticator.js.map +1 -1
  197. package/dist/api/auth/TokenIdentity.d.ts +6 -0
  198. package/dist/api/auth/TokenIdentity.js +31 -0
  199. package/dist/api/auth/TokenIdentity.js.map +1 -0
  200. package/dist/api/chatkit/ai-provider.d.ts +9 -23
  201. package/dist/api/chatkit/ai-provider.js +30 -153
  202. package/dist/api/chatkit/ai-provider.js.map +1 -1
  203. package/dist/api/chatkit/default-agent.d.ts +24 -15
  204. package/dist/api/chatkit/default-agent.js +24 -83
  205. package/dist/api/chatkit/default-agent.js.map +1 -1
  206. package/dist/api/chatkit/index.d.ts +2 -1
  207. package/dist/api/chatkit/index.js +3 -1
  208. package/dist/api/chatkit/index.js.map +1 -1
  209. package/dist/api/chatkit/pod-store.d.ts +13 -1
  210. package/dist/api/chatkit/pod-store.js +127 -7
  211. package/dist/api/chatkit/pod-store.js.map +1 -1
  212. package/dist/api/chatkit/runtime/AcpAgentRuntime.d.ts +0 -1
  213. package/dist/api/chatkit/runtime/AcpAgentRuntime.js +14 -51
  214. package/dist/api/chatkit/runtime/AcpAgentRuntime.js.map +1 -1
  215. package/dist/api/chatkit/runtime/AcpRunner.js +2 -1
  216. package/dist/api/chatkit/runtime/AcpRunner.js.map +1 -1
  217. package/dist/api/chatkit/runtime/CodexRuntimeProjector.d.ts +15 -1
  218. package/dist/api/chatkit/runtime/CodexRuntimeProjector.js +52 -34
  219. package/dist/api/chatkit/runtime/CodexRuntimeProjector.js.map +1 -1
  220. package/dist/api/chatkit/service.d.ts +8 -1
  221. package/dist/api/chatkit/service.js +46 -5
  222. package/dist/api/chatkit/service.js.map +1 -1
  223. package/dist/api/chatkit/store.d.ts +23 -1
  224. package/dist/api/chatkit/store.js +56 -0
  225. package/dist/api/chatkit/store.js.map +1 -1
  226. package/dist/api/chatkit/types.d.ts +1 -0
  227. package/dist/api/chatkit/types.js.map +1 -1
  228. package/dist/api/container/common.js +286 -13
  229. package/dist/api/container/common.js.map +1 -1
  230. package/dist/api/container/index.js +126 -6
  231. package/dist/api/container/index.js.map +1 -1
  232. package/dist/api/container/local.js +50 -6
  233. package/dist/api/container/local.js.map +1 -1
  234. package/dist/api/container/rdf.d.ts +15 -0
  235. package/dist/api/container/rdf.js +90 -0
  236. package/dist/api/container/rdf.js.map +1 -0
  237. package/dist/api/container/routes.js +151 -11
  238. package/dist/api/container/routes.js.map +1 -1
  239. package/dist/api/container/types.d.ts +96 -0
  240. package/dist/api/container/types.js.map +1 -1
  241. package/dist/api/handlers/AdminHandler.d.ts +25 -2
  242. package/dist/api/handlers/AdminHandler.js +60 -10
  243. package/dist/api/handlers/AdminHandler.js.map +1 -1
  244. package/dist/api/handlers/AiClientConfigurationHandler.d.ts +7 -0
  245. package/dist/api/handlers/AiClientConfigurationHandler.js +202 -0
  246. package/dist/api/handlers/AiClientConfigurationHandler.js.map +1 -0
  247. package/dist/api/handlers/AiGatewayHandler.d.ts +23 -0
  248. package/dist/api/handlers/AiGatewayHandler.js +231 -0
  249. package/dist/api/handlers/AiGatewayHandler.js.map +1 -0
  250. package/dist/api/handlers/AiGatewayManagementHandler.d.ts +24 -0
  251. package/dist/api/handlers/AiGatewayManagementHandler.js +503 -0
  252. package/dist/api/handlers/AiGatewayManagementHandler.js.map +1 -0
  253. package/dist/api/handlers/ChatHandler.d.ts +11 -12
  254. package/dist/api/handlers/ChatHandler.js +12 -219
  255. package/dist/api/handlers/ChatHandler.js.map +1 -1
  256. package/dist/api/handlers/DashboardHandler.js +22 -116
  257. package/dist/api/handlers/DashboardHandler.js.map +1 -1
  258. package/dist/api/handlers/NetworkSettingsHandler.d.ts +97 -0
  259. package/dist/api/handlers/NetworkSettingsHandler.js +511 -0
  260. package/dist/api/handlers/NetworkSettingsHandler.js.map +1 -0
  261. package/dist/api/handlers/PodSettingsHandler.d.ts +79 -0
  262. package/dist/api/handlers/PodSettingsHandler.js +162 -0
  263. package/dist/api/handlers/PodSettingsHandler.js.map +1 -0
  264. package/dist/api/handlers/ProvisionHandler.d.ts +3 -1
  265. package/dist/api/handlers/ProvisionHandler.js +22 -87
  266. package/dist/api/handlers/ProvisionHandler.js.map +1 -1
  267. package/dist/api/handlers/RdfStatsHandler.d.ts +6 -0
  268. package/dist/api/handlers/RdfStatsHandler.js +85 -0
  269. package/dist/api/handlers/RdfStatsHandler.js.map +1 -0
  270. package/dist/api/handlers/SettingsHandler.d.ts +5 -0
  271. package/dist/api/handlers/SettingsHandler.js +13 -0
  272. package/dist/api/handlers/SettingsHandler.js.map +1 -0
  273. package/dist/api/handlers/StaticSpaHandler.d.ts +8 -0
  274. package/dist/api/handlers/StaticSpaHandler.js +102 -0
  275. package/dist/api/handlers/StaticSpaHandler.js.map +1 -0
  276. package/dist/api/handlers/index.d.ts +1 -0
  277. package/dist/api/handlers/index.js +1 -0
  278. package/dist/api/handlers/index.js.map +1 -1
  279. package/dist/api/http/readBoundedJsonBody.d.ts +14 -0
  280. package/dist/api/http/readBoundedJsonBody.js +58 -0
  281. package/dist/api/http/readBoundedJsonBody.js.map +1 -0
  282. package/dist/api/middleware/AuthMiddleware.d.ts +1 -0
  283. package/dist/api/middleware/AuthMiddleware.js +33 -4
  284. package/dist/api/middleware/AuthMiddleware.js.map +1 -1
  285. package/dist/api/runs/AgentRuntimeTypes.d.ts +18 -3
  286. package/dist/api/runs/AgentRuntimeTypes.js +61 -0
  287. package/dist/api/runs/AgentRuntimeTypes.js.map +1 -1
  288. package/dist/api/runs/InngestRunExecutionBackend.d.ts +28 -3
  289. package/dist/api/runs/InngestRunExecutionBackend.js +26 -3
  290. package/dist/api/runs/InngestRunExecutionBackend.js.map +1 -1
  291. package/dist/api/runs/ManagedRunWorker.d.ts +4 -1
  292. package/dist/api/runs/ManagedRunWorker.js +39 -8
  293. package/dist/api/runs/ManagedRunWorker.js.map +1 -1
  294. package/dist/api/runs/PiAgentRuntimeDriver.d.ts +5 -1
  295. package/dist/api/runs/PiAgentRuntimeDriver.js +94 -57
  296. package/dist/api/runs/PiAgentRuntimeDriver.js.map +1 -1
  297. package/dist/api/runs/RdfRunContextRetriever.d.ts +46 -0
  298. package/dist/api/runs/RdfRunContextRetriever.js +277 -0
  299. package/dist/api/runs/RdfRunContextRetriever.js.map +1 -0
  300. package/dist/api/runs/RunExecutionBackend.d.ts +38 -0
  301. package/dist/api/runs/RunExecutionBackend.js.map +1 -1
  302. package/dist/api/runs/RunStateCenter.d.ts +18 -3
  303. package/dist/api/runs/RunStateCenter.js +85 -24
  304. package/dist/api/runs/RunStateCenter.js.map +1 -1
  305. package/dist/api/runtime.js +163 -3
  306. package/dist/api/runtime.js.map +1 -1
  307. package/dist/api/service/AiClientConfigurationService.d.ts +97 -0
  308. package/dist/api/service/AiClientConfigurationService.js +379 -0
  309. package/dist/api/service/AiClientConfigurationService.js.map +1 -0
  310. package/dist/api/service/RdfBenchmarkReportCatalog.d.ts +86 -0
  311. package/dist/api/service/RdfBenchmarkReportCatalog.js +349 -0
  312. package/dist/api/service/RdfBenchmarkReportCatalog.js.map +1 -0
  313. package/dist/api/service/RdfBenchmarkReportGate.d.ts +78 -0
  314. package/dist/api/service/RdfBenchmarkReportGate.js +197 -0
  315. package/dist/api/service/RdfBenchmarkReportGate.js.map +1 -0
  316. package/dist/api/service/RdfSearchIndexingService.d.ts +113 -0
  317. package/dist/api/service/RdfSearchIndexingService.js +272 -0
  318. package/dist/api/service/RdfSearchIndexingService.js.map +1 -0
  319. package/dist/api/service/RdfSearchIndexingSolidFsSyncer.d.ts +27 -0
  320. package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js +90 -0
  321. package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js.map +1 -0
  322. package/dist/api/service/RdfStorageStatsService.d.ts +31 -0
  323. package/dist/api/service/RdfStorageStatsService.js +97 -0
  324. package/dist/api/service/RdfStorageStatsService.js.map +1 -0
  325. package/dist/api/service/VectorStoreService.d.ts +2 -0
  326. package/dist/api/service/VectorStoreService.js +70 -2
  327. package/dist/api/service/VectorStoreService.js.map +1 -1
  328. package/dist/api/service/VercelChatService.d.ts +27 -38
  329. package/dist/api/service/VercelChatService.js +153 -505
  330. package/dist/api/service/VercelChatService.js.map +1 -1
  331. package/dist/api/service/provider-http-transport.d.ts +21 -0
  332. package/dist/api/service/provider-http-transport.js +108 -2
  333. package/dist/api/service/provider-http-transport.js.map +1 -1
  334. package/dist/api/service/provider-registry.d.ts +5 -7
  335. package/dist/api/service/provider-registry.js +81 -64
  336. package/dist/api/service/provider-registry.js.map +1 -1
  337. package/dist/api/tasks/InngestTaskScheduler.d.ts +44 -4
  338. package/dist/api/tasks/TaskMaterializer.d.ts +10 -1
  339. package/dist/api/tasks/TaskMaterializer.js +39 -4
  340. package/dist/api/tasks/TaskMaterializer.js.map +1 -1
  341. package/dist/api/tasks/TaskService.d.ts +5 -1
  342. package/dist/api/tasks/TaskService.js +3 -0
  343. package/dist/api/tasks/TaskService.js.map +1 -1
  344. package/dist/cli/commands/rdf.d.ts +9 -0
  345. package/dist/cli/commands/rdf.js +66 -1
  346. package/dist/cli/commands/rdf.js.map +1 -1
  347. package/dist/cli/commands/start.js +3 -0
  348. package/dist/cli/commands/start.js.map +1 -1
  349. package/dist/cli/lib/solid-auth.d.ts +3 -3
  350. package/dist/cli/lib/solid-auth.js +4 -4
  351. package/dist/cli/lib/solid-auth.js.map +1 -1
  352. package/dist/components/components.jsonld +16 -0
  353. package/dist/components/context.jsonld +815 -28
  354. package/dist/document/Chunker.jsonld +110 -0
  355. package/dist/document/{DocumentParser.d.ts → DocumentReader.d.ts} +23 -11
  356. package/dist/document/{DocumentParser.js → DocumentReader.js} +2 -2
  357. package/dist/document/DocumentReader.js.map +1 -0
  358. package/dist/document/DocumentReader.jsonld +82 -0
  359. package/dist/document/HeadingChunker.jsonld +41 -0
  360. package/dist/document/{JinaDocumentParser.d.ts → JinaReader.d.ts} +7 -7
  361. package/dist/document/{JinaDocumentParser.js → JinaReader.js} +12 -12
  362. package/dist/document/JinaReader.js.map +1 -0
  363. package/dist/document/JinaReader.jsonld +133 -0
  364. package/dist/document/L0SourceSummary.d.ts +103 -0
  365. package/dist/document/L0SourceSummary.js +157 -0
  366. package/dist/document/L0SourceSummary.js.map +1 -0
  367. package/dist/document/L0SourceSummary.jsonld +326 -0
  368. package/dist/document/PaddleOcrReader.d.ts +40 -0
  369. package/dist/document/PaddleOcrReader.js +53 -0
  370. package/dist/document/PaddleOcrReader.js.map +1 -0
  371. package/dist/document/PaddleOcrReader.jsonld +234 -0
  372. package/dist/document/ReaderAiConfig.d.ts +50 -0
  373. package/dist/document/ReaderAiConfig.js +109 -0
  374. package/dist/document/ReaderAiConfig.js.map +1 -0
  375. package/dist/document/ReaderAiConfig.jsonld +185 -0
  376. package/dist/document/ReaderPolicy.d.ts +89 -0
  377. package/dist/document/ReaderPolicy.js +158 -0
  378. package/dist/document/ReaderPolicy.js.map +1 -0
  379. package/dist/document/ReaderPolicy.jsonld +218 -0
  380. package/dist/document/index.d.ts +6 -2
  381. package/dist/document/index.js +6 -2
  382. package/dist/document/index.js.map +1 -1
  383. package/dist/edge/DdnsManager.d.ts +1 -1
  384. package/dist/edge/DdnsManager.js.map +1 -1
  385. package/dist/edge/EdgeNodeAgent.d.ts +4 -0
  386. package/dist/edge/EdgeNodeAgent.js +6 -0
  387. package/dist/edge/EdgeNodeAgent.js.map +1 -1
  388. package/dist/edge/EdgeNodeAgent.jsonld +8 -0
  389. package/dist/edge/EdgeNodeAgentInitializer.d.ts +16 -0
  390. package/dist/edge/EdgeNodeAgentInitializer.js +51 -0
  391. package/dist/edge/EdgeNodeAgentInitializer.js.map +1 -1
  392. package/dist/edge/EdgeNodeAgentInitializer.jsonld +250 -0
  393. package/dist/edge/EdgeNodeCertificateCapabilityBridge.d.ts +34 -0
  394. package/dist/edge/EdgeNodeCertificateCapabilityBridge.js +111 -0
  395. package/dist/edge/EdgeNodeCertificateCapabilityBridge.js.map +1 -0
  396. package/dist/edge/acme/AcmeCertificateManager.d.ts +14 -1
  397. package/dist/edge/acme/AcmeCertificateManager.js +67 -7
  398. package/dist/edge/acme/AcmeCertificateManager.js.map +1 -1
  399. package/dist/edge/acme/AcmeCertificateManager.jsonld +22 -2
  400. package/dist/edge/acme/ClusterCertificateManager.d.ts +12 -0
  401. package/dist/edge/acme/ClusterCertificateManager.js +38 -0
  402. package/dist/edge/acme/ClusterCertificateManager.js.map +1 -1
  403. package/dist/extensions/ExtensionRuntime.d.ts +17 -0
  404. package/dist/extensions/ExtensionRuntime.js +171 -0
  405. package/dist/extensions/ExtensionRuntime.js.map +1 -0
  406. package/dist/extensions/PodCredentialResolver.d.ts +23 -0
  407. package/dist/extensions/PodCredentialResolver.js +139 -0
  408. package/dist/extensions/PodCredentialResolver.js.map +1 -0
  409. package/dist/extensions/index.d.ts +3 -0
  410. package/dist/extensions/index.js +20 -0
  411. package/dist/extensions/index.js.map +1 -0
  412. package/dist/extensions/types.d.ts +73 -0
  413. package/dist/extensions/types.js +3 -0
  414. package/dist/extensions/types.js.map +1 -0
  415. package/dist/http/SubgraphSparqlHttpHandler.d.ts +20 -1
  416. package/dist/http/SubgraphSparqlHttpHandler.js +324 -43
  417. package/dist/http/SubgraphSparqlHttpHandler.js.map +1 -1
  418. package/dist/http/SubgraphSparqlHttpHandler.jsonld +87 -0
  419. package/dist/identity/drizzle/EdgeNodeRepository.js +3 -2
  420. package/dist/identity/drizzle/EdgeNodeRepository.js.map +1 -1
  421. package/dist/identity/drizzle/schema.pg.js +1 -1
  422. package/dist/identity/drizzle/schema.pg.js.map +1 -1
  423. package/dist/identity/drizzle/schema.sqlite.js +1 -1
  424. package/dist/identity/drizzle/schema.sqlite.js.map +1 -1
  425. package/dist/identity/oidc/ScopedPickWebIdHandler.js +5 -5
  426. package/dist/identity/oidc/ScopedPickWebIdHandler.js.map +1 -1
  427. package/dist/index.d.ts +12 -2
  428. package/dist/index.js +13 -1
  429. package/dist/index.js.map +1 -1
  430. package/dist/main.js +3 -0
  431. package/dist/main.js.map +1 -1
  432. package/dist/provision/LocalProvisionState.d.ts +28 -0
  433. package/dist/provision/LocalProvisionState.js +124 -0
  434. package/dist/provision/LocalProvisionState.js.map +1 -0
  435. package/dist/provision/ProvisionCodeCodec.d.ts +7 -3
  436. package/dist/provision/ProvisionCodeCodec.js +10 -3
  437. package/dist/provision/ProvisionCodeCodec.js.map +1 -1
  438. package/dist/provision/ProvisionPodCreator.d.ts +15 -1
  439. package/dist/provision/ProvisionPodCreator.js +68 -1
  440. package/dist/provision/ProvisionPodCreator.js.map +1 -1
  441. package/dist/provision/ProvisionPodCreator.jsonld +31 -0
  442. package/dist/provision/ServiceAccessTokenCodec.d.ts +45 -0
  443. package/dist/provision/ServiceAccessTokenCodec.js +86 -0
  444. package/dist/provision/ServiceAccessTokenCodec.js.map +1 -0
  445. package/dist/runtime/GatewayAdminProxyAuth.d.ts +29 -0
  446. package/dist/runtime/GatewayAdminProxyAuth.js +108 -0
  447. package/dist/runtime/GatewayAdminProxyAuth.js.map +1 -0
  448. package/dist/runtime/Proxy.d.ts +10 -0
  449. package/dist/runtime/Proxy.js +64 -6
  450. package/dist/runtime/Proxy.js.map +1 -1
  451. package/dist/runtime/XpodRuntime.js +1 -0
  452. package/dist/runtime/XpodRuntime.js.map +1 -1
  453. package/dist/runtime/bootstrap.d.ts +1 -0
  454. package/dist/runtime/bootstrap.js +29 -0
  455. package/dist/runtime/bootstrap.js.map +1 -1
  456. package/dist/runtime/css-process.d.ts +1 -0
  457. package/dist/runtime/css-process.js +1 -0
  458. package/dist/runtime/css-process.js.map +1 -1
  459. package/dist/runtime/index.d.ts +1 -0
  460. package/dist/runtime/index.js +3 -1
  461. package/dist/runtime/index.js.map +1 -1
  462. package/dist/runtime/lifecycle.d.ts +3 -1
  463. package/dist/runtime/lifecycle.js +3 -1
  464. package/dist/runtime/lifecycle.js.map +1 -1
  465. package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js +2 -0
  466. package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js.map +1 -1
  467. package/dist/runtime/runner/types.d.ts +3 -0
  468. package/dist/runtime/runner/types.js.map +1 -1
  469. package/dist/runtime/runtime-types.d.ts +2 -0
  470. package/dist/runtime/runtime-types.js.map +1 -1
  471. package/dist/runtime/safe-env.d.ts +15 -0
  472. package/dist/runtime/safe-env.js +109 -0
  473. package/dist/runtime/safe-env.js.map +1 -0
  474. package/dist/security/index.d.ts +1 -0
  475. package/dist/security/index.js +18 -0
  476. package/dist/security/index.js.map +1 -0
  477. package/dist/security/secret-cell/DeploymentRootKeyProvider.d.ts +17 -0
  478. package/dist/security/secret-cell/DeploymentRootKeyProvider.js +61 -0
  479. package/dist/security/secret-cell/DeploymentRootKeyProvider.js.map +1 -0
  480. package/dist/security/secret-cell/DeploymentRootKeyProvider.jsonld +124 -0
  481. package/dist/security/secret-cell/SecretCellVault.d.ts +55 -0
  482. package/dist/security/secret-cell/SecretCellVault.js +242 -0
  483. package/dist/security/secret-cell/SecretCellVault.js.map +1 -0
  484. package/dist/security/secret-cell/SecretCellVault.jsonld +207 -0
  485. package/dist/security/secret-cell/index.d.ts +2 -0
  486. package/dist/security/secret-cell/index.js +11 -0
  487. package/dist/security/secret-cell/index.js.map +1 -0
  488. package/dist/solidfs/CompositeSolidFsSyncer.d.ts +18 -0
  489. package/dist/solidfs/CompositeSolidFsSyncer.js +32 -0
  490. package/dist/solidfs/CompositeSolidFsSyncer.js.map +1 -0
  491. package/dist/solidfs/LocalSolidFS.js +25 -1
  492. package/dist/solidfs/LocalSolidFS.js.map +1 -1
  493. package/dist/solidfs/RdfIndexSolidFsSyncer.d.ts +41 -2
  494. package/dist/solidfs/RdfIndexSolidFsSyncer.js +331 -21
  495. package/dist/solidfs/RdfIndexSolidFsSyncer.js.map +1 -1
  496. package/dist/solidfs/SolidFsMetaNotes.d.ts +25 -0
  497. package/dist/solidfs/SolidFsMetaNotes.js +103 -0
  498. package/dist/solidfs/SolidFsMetaNotes.js.map +1 -0
  499. package/dist/solidfs/SolidFsSyncJournal.d.ts +2 -2
  500. package/dist/solidfs/SolidFsSyncJournal.js +9 -4
  501. package/dist/solidfs/SolidFsSyncJournal.js.map +1 -1
  502. package/dist/solidfs/SolidFsSyncJournal.jsonld +119 -0
  503. package/dist/solidfs/WorkspacePrompt.d.ts +13 -0
  504. package/dist/solidfs/WorkspacePrompt.js +42 -0
  505. package/dist/solidfs/WorkspacePrompt.js.map +1 -0
  506. package/dist/solidfs/index.d.ts +3 -0
  507. package/dist/solidfs/index.js +3 -0
  508. package/dist/solidfs/index.js.map +1 -1
  509. package/dist/solidfs/types.d.ts +12 -2
  510. package/dist/solidfs/types.js.map +1 -1
  511. package/dist/storage/accessors/MixDataAccessor.d.ts +36 -4
  512. package/dist/storage/accessors/MixDataAccessor.js +222 -23
  513. package/dist/storage/accessors/MixDataAccessor.js.map +1 -1
  514. package/dist/storage/accessors/MixDataAccessor.jsonld +89 -0
  515. package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +6 -1
  516. package/dist/storage/accessors/SolidRdfDataAccessor.js +35 -0
  517. package/dist/storage/accessors/SolidRdfDataAccessor.js.map +1 -1
  518. package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +20 -0
  519. package/dist/storage/database/PostgresPoolManager.d.ts +1 -0
  520. package/dist/storage/database/PostgresPoolManager.js +2 -2
  521. package/dist/storage/database/PostgresPoolManager.js.map +1 -1
  522. package/dist/storage/locking/UrlAwareRedisLocker.d.ts +2 -0
  523. package/dist/storage/locking/UrlAwareRedisLocker.js +65 -0
  524. package/dist/storage/locking/UrlAwareRedisLocker.js.map +1 -1
  525. package/dist/storage/locking/UrlAwareRedisLocker.jsonld +19 -0
  526. package/dist/storage/rdf/PostgresRdfEngine.d.ts +286 -9
  527. package/dist/storage/rdf/PostgresRdfEngine.js +10773 -2084
  528. package/dist/storage/rdf/PostgresRdfEngine.js.map +1 -1
  529. package/dist/storage/rdf/PostgresRdfEngine.jsonld +1693 -89
  530. package/dist/storage/rdf/PostgresRdfSqlExecutor.d.ts +24 -0
  531. package/dist/storage/rdf/PostgresRdfSqlExecutor.js +131 -0
  532. package/dist/storage/rdf/PostgresRdfSqlExecutor.js.map +1 -0
  533. package/dist/storage/rdf/PostgresRdfTextIndex.d.ts +54 -0
  534. package/dist/storage/rdf/PostgresRdfTextIndex.js +1255 -0
  535. package/dist/storage/rdf/PostgresRdfTextIndex.js.map +1 -0
  536. package/dist/storage/rdf/PostgresRdfTextIndex.jsonld +487 -0
  537. package/dist/storage/rdf/PostgresRdfVectorIndex.d.ts +46 -0
  538. package/dist/storage/rdf/PostgresRdfVectorIndex.js +1165 -0
  539. package/dist/storage/rdf/PostgresRdfVectorIndex.js.map +1 -0
  540. package/dist/storage/rdf/PostgresRdfVectorIndex.jsonld +423 -0
  541. package/dist/storage/rdf/Rdf3xIndex.d.ts +14 -1
  542. package/dist/storage/rdf/Rdf3xIndex.js +286 -2
  543. package/dist/storage/rdf/Rdf3xIndex.js.map +1 -1
  544. package/dist/storage/rdf/Rdf3xIndex.jsonld +36 -0
  545. package/dist/storage/rdf/Rdf3xSchema.d.ts +5 -1
  546. package/dist/storage/rdf/Rdf3xSchema.js +17 -3
  547. package/dist/storage/rdf/Rdf3xSchema.js.map +1 -1
  548. package/dist/storage/rdf/RdfAccessScope.d.ts +22 -0
  549. package/dist/storage/rdf/RdfAccessScope.js +345 -0
  550. package/dist/storage/rdf/RdfAccessScope.js.map +1 -0
  551. package/dist/storage/rdf/RdfAccessScope.jsonld +45 -0
  552. package/dist/storage/rdf/RdfFusionRankPlan.d.ts +2 -0
  553. package/dist/storage/rdf/RdfFusionRankPlan.js +186 -0
  554. package/dist/storage/rdf/RdfFusionRankPlan.js.map +1 -0
  555. package/dist/storage/rdf/RdfJoinShape.d.ts +8 -0
  556. package/dist/storage/rdf/RdfJoinShape.js +31 -0
  557. package/dist/storage/rdf/RdfJoinShape.js.map +1 -0
  558. package/dist/storage/rdf/RdfQuadIndex.d.ts +5 -2
  559. package/dist/storage/rdf/RdfQuadIndex.js +94 -6
  560. package/dist/storage/rdf/RdfQuadIndex.js.map +1 -1
  561. package/dist/storage/rdf/RdfQuadIndex.jsonld +12 -0
  562. package/dist/storage/rdf/RdfQueryExecutor.d.ts +3 -4
  563. package/dist/storage/rdf/RdfQueryExecutor.js +235 -8
  564. package/dist/storage/rdf/RdfQueryExecutor.js.map +1 -1
  565. package/dist/storage/rdf/RdfSearchSourceFilter.d.ts +10 -0
  566. package/dist/storage/rdf/RdfSearchSourceFilter.js +83 -0
  567. package/dist/storage/rdf/RdfSearchSourceFilter.js.map +1 -0
  568. package/dist/storage/rdf/RdfSparqlAdapter.d.ts +27 -1
  569. package/dist/storage/rdf/RdfSparqlAdapter.js +265 -3
  570. package/dist/storage/rdf/RdfSparqlAdapter.js.map +1 -1
  571. package/dist/storage/rdf/RdfSparqlAdapter.jsonld +8 -0
  572. package/dist/storage/rdf/RdfTermDictionary.d.ts +7 -1
  573. package/dist/storage/rdf/RdfTermDictionary.js +139 -0
  574. package/dist/storage/rdf/RdfTermDictionary.js.map +1 -1
  575. package/dist/storage/rdf/RdfTermDictionary.jsonld +4 -0
  576. package/dist/storage/rdf/RdfTextIndex.d.ts +45 -2
  577. package/dist/storage/rdf/RdfTextIndex.js +810 -114
  578. package/dist/storage/rdf/RdfTextIndex.js.map +1 -1
  579. package/dist/storage/rdf/RdfTextIndex.jsonld +193 -0
  580. package/dist/storage/rdf/RdfTextProjection.d.ts +10 -0
  581. package/dist/storage/rdf/RdfTextProjection.js +258 -0
  582. package/dist/storage/rdf/RdfTextProjection.js.map +1 -0
  583. package/dist/storage/rdf/RdfVectorIndex.d.ts +30 -2
  584. package/dist/storage/rdf/RdfVectorIndex.js +461 -38
  585. package/dist/storage/rdf/RdfVectorIndex.js.map +1 -1
  586. package/dist/storage/rdf/RdfVectorIndex.jsonld +163 -0
  587. package/dist/storage/rdf/SolidRdfEngine.d.ts +12 -9
  588. package/dist/storage/rdf/SolidRdfEngine.js +48 -22
  589. package/dist/storage/rdf/SolidRdfEngine.js.map +1 -1
  590. package/dist/storage/rdf/SolidRdfEngine.jsonld +33 -43
  591. package/dist/storage/rdf/SolidRdfSparqlEngine.d.ts +19 -8
  592. package/dist/storage/rdf/SolidRdfSparqlEngine.js +674 -44
  593. package/dist/storage/rdf/SolidRdfSparqlEngine.js.map +1 -1
  594. package/dist/storage/rdf/SolidRdfSparqlEngine.jsonld +51 -0
  595. package/dist/storage/rdf/index.d.ts +9 -5
  596. package/dist/storage/rdf/index.js +42 -1
  597. package/dist/storage/rdf/index.js.map +1 -1
  598. package/dist/storage/rdf/models-benchmark.d.ts +264 -2
  599. package/dist/storage/rdf/models-benchmark.js +4207 -155
  600. package/dist/storage/rdf/models-benchmark.js.map +1 -1
  601. package/dist/storage/rdf/types.d.ts +833 -4
  602. package/dist/storage/rdf/types.js.map +1 -1
  603. package/dist/storage/rdf/types.jsonld +348 -0
  604. package/dist/storage/sparql/CompatibilitySparqlEngine.d.ts +14 -13
  605. package/dist/storage/sparql/CompatibilitySparqlEngine.js +24 -24
  606. package/dist/storage/sparql/CompatibilitySparqlEngine.js.map +1 -1
  607. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.d.ts +14 -13
  608. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js +30 -18
  609. package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js.map +1 -1
  610. package/dist/storage/sparql/SubgraphQueryEngine.d.ts +21 -12
  611. package/dist/storage/sparql/SubgraphQueryEngine.js +12 -12
  612. package/dist/storage/sparql/SubgraphQueryEngine.js.map +1 -1
  613. package/dist/terminal/sandbox/MacOSSandbox.js +2 -1
  614. package/dist/terminal/sandbox/MacOSSandbox.js.map +1 -1
  615. package/dist/terminal/sandbox/index.js +2 -1
  616. package/dist/terminal/sandbox/index.js.map +1 -1
  617. package/dist/test-utils/no-auth-xpod.js +3 -0
  618. package/dist/test-utils/no-auth-xpod.js.map +1 -1
  619. package/dist/tunnel/LocalTunnelProvider.d.ts +3 -0
  620. package/dist/tunnel/LocalTunnelProvider.js +17 -1
  621. package/dist/tunnel/LocalTunnelProvider.js.map +1 -1
  622. package/dist/tunnel/LocalTunnelProvider.jsonld +23 -0
  623. package/dist/tunnel/SakuraFrpTunnelProvider.d.ts +3 -0
  624. package/dist/tunnel/SakuraFrpTunnelProvider.js +18 -2
  625. package/dist/tunnel/SakuraFrpTunnelProvider.js.map +1 -1
  626. package/dist/tunnel/TunnelProfiles.d.ts +22 -0
  627. package/dist/tunnel/TunnelProfiles.js +208 -0
  628. package/dist/tunnel/TunnelProfiles.js.map +1 -0
  629. package/dist/tunnel/index.d.ts +2 -0
  630. package/dist/tunnel/index.js +4 -1
  631. package/dist/tunnel/index.js.map +1 -1
  632. package/dist/util/identifiers/ClusterIdentifierStrategy.d.ts +3 -0
  633. package/dist/util/identifiers/ClusterIdentifierStrategy.js +18 -2
  634. package/dist/util/identifiers/ClusterIdentifierStrategy.js.map +1 -1
  635. package/dist/util/identifiers/ClusterIdentifierStrategy.jsonld +5 -1
  636. package/node_modules/@undefineds.co/ai-connection/dist/AiClientConfigurationSection.d.ts +55 -0
  637. package/node_modules/@undefineds.co/ai-connection/dist/AiClientConfigurationSection.js +167 -0
  638. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionHeader.d.ts +3 -0
  639. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionHeader.js +8 -0
  640. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionList.d.ts +4 -0
  641. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionList.js +36 -0
  642. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMain.d.ts +4 -0
  643. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMain.js +37 -0
  644. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMainHeader.d.ts +3 -0
  645. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMainHeader.js +7 -0
  646. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionPanel.d.ts +14 -0
  647. package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionPanel.js +333 -0
  648. package/node_modules/@undefineds.co/ai-connection/dist/AiProviderCard.d.ts +22 -0
  649. package/node_modules/@undefineds.co/ai-connection/dist/AiProviderCard.js +43 -0
  650. package/node_modules/@undefineds.co/ai-connection/dist/AiQuotaCard.d.ts +8 -0
  651. package/node_modules/@undefineds.co/ai-connection/dist/AiQuotaCard.js +6 -0
  652. package/node_modules/@undefineds.co/ai-connection/dist/ai-connection-client.d.ts +120 -0
  653. package/node_modules/@undefineds.co/ai-connection/dist/ai-connection-client.js +414 -0
  654. package/node_modules/@undefineds.co/ai-connection/dist/client-config/base-adapter.d.ts +32 -0
  655. package/node_modules/@undefineds.co/ai-connection/dist/client-config/base-adapter.js +212 -0
  656. package/node_modules/@undefineds.co/ai-connection/dist/client-config/codex.d.ts +14 -0
  657. package/node_modules/@undefineds.co/ai-connection/dist/client-config/codex.js +90 -0
  658. package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.cjs +668 -0
  659. package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.d.ts +6 -0
  660. package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.js +6 -0
  661. package/node_modules/@undefineds.co/ai-connection/dist/client-config/json-env-adapter.d.ts +21 -0
  662. package/node_modules/@undefineds.co/ai-connection/dist/client-config/json-env-adapter.js +82 -0
  663. package/node_modules/@undefineds.co/ai-connection/dist/client-config/pi.d.ts +13 -0
  664. package/node_modules/@undefineds.co/ai-connection/dist/client-config/pi.js +83 -0
  665. package/node_modules/@undefineds.co/ai-connection/dist/client-config/transaction.d.ts +17 -0
  666. package/node_modules/@undefineds.co/ai-connection/dist/client-config/transaction.js +153 -0
  667. package/node_modules/@undefineds.co/ai-connection/dist/client-config/types.d.ts +40 -0
  668. package/node_modules/@undefineds.co/ai-connection/dist/client-config/types.js +1 -0
  669. package/node_modules/@undefineds.co/ai-connection/dist/controller.d.ts +42 -0
  670. package/node_modules/@undefineds.co/ai-connection/dist/controller.js +289 -0
  671. package/node_modules/@undefineds.co/ai-connection/dist/index.d.ts +16 -0
  672. package/node_modules/@undefineds.co/ai-connection/dist/index.js +41 -0
  673. package/node_modules/@undefineds.co/ai-connection/dist/manifest.d.ts +1 -0
  674. package/node_modules/@undefineds.co/ai-connection/dist/manifest.js +18 -0
  675. package/node_modules/@undefineds.co/ai-connection/dist/service-access.d.ts +3 -0
  676. package/node_modules/@undefineds.co/ai-connection/dist/service-access.js +133 -0
  677. package/node_modules/@undefineds.co/ai-connection/package.json +50 -0
  678. package/node_modules/@undefineds.co/extension-sdk/README.md +299 -0
  679. package/node_modules/@undefineds.co/extension-sdk/dist/index.d.ts +5 -0
  680. package/node_modules/@undefineds.co/extension-sdk/dist/index.js +5 -0
  681. package/node_modules/@undefineds.co/extension-sdk/dist/layout.d.ts +16 -0
  682. package/node_modules/@undefineds.co/extension-sdk/dist/layout.js +36 -0
  683. package/node_modules/@undefineds.co/extension-sdk/dist/manifest.d.ts +27 -0
  684. package/node_modules/@undefineds.co/extension-sdk/dist/manifest.js +79 -0
  685. package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.d.ts +7 -0
  686. package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.js +8 -0
  687. package/node_modules/@undefineds.co/extension-sdk/dist/react/auth-boundary.d.ts +27 -0
  688. package/node_modules/@undefineds.co/extension-sdk/dist/react/auth-boundary.js +49 -0
  689. package/node_modules/@undefineds.co/extension-sdk/dist/react/layout-context.d.ts +11 -0
  690. package/node_modules/@undefineds.co/extension-sdk/dist/react/layout-context.js +9 -0
  691. package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.d.ts +38 -0
  692. package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.js +132 -0
  693. package/node_modules/@undefineds.co/extension-sdk/dist/react.d.ts +12 -0
  694. package/node_modules/@undefineds.co/extension-sdk/dist/react.js +19 -0
  695. package/node_modules/@undefineds.co/extension-sdk/dist/testing.d.ts +7 -0
  696. package/node_modules/@undefineds.co/extension-sdk/dist/testing.js +27 -0
  697. package/node_modules/@undefineds.co/extension-sdk/dist/web.d.ts +225 -0
  698. package/node_modules/@undefineds.co/extension-sdk/dist/web.js +142 -0
  699. package/node_modules/@undefineds.co/extension-sdk/package.json +49 -0
  700. package/node_modules/@undefineds.co/extensions/README.md +101 -0
  701. package/node_modules/@undefineds.co/extensions/dist/adapters/langchain.d.ts +25 -0
  702. package/node_modules/@undefineds.co/extensions/dist/adapters/langchain.d.ts.map +1 -0
  703. package/node_modules/@undefineds.co/extensions/dist/adapters/langchain.js +45 -0
  704. package/node_modules/@undefineds.co/extensions/dist/adapters/langchain.js.map +1 -0
  705. package/node_modules/@undefineds.co/extensions/dist/adapters/llamaindex.d.ts +31 -0
  706. package/node_modules/@undefineds.co/extensions/dist/adapters/llamaindex.d.ts.map +1 -0
  707. package/node_modules/@undefineds.co/extensions/dist/adapters/llamaindex.js +50 -0
  708. package/node_modules/@undefineds.co/extensions/dist/adapters/llamaindex.js.map +1 -0
  709. package/node_modules/@undefineds.co/extensions/dist/index.d.ts +7 -0
  710. package/node_modules/@undefineds.co/extensions/dist/index.d.ts.map +1 -0
  711. package/node_modules/@undefineds.co/extensions/dist/index.js +7 -0
  712. package/node_modules/@undefineds.co/extensions/dist/index.js.map +1 -0
  713. package/node_modules/@undefineds.co/extensions/dist/paddleocr.d.ts +16 -0
  714. package/node_modules/@undefineds.co/extensions/dist/paddleocr.d.ts.map +1 -0
  715. package/node_modules/@undefineds.co/extensions/dist/paddleocr.js +267 -0
  716. package/node_modules/@undefineds.co/extensions/dist/paddleocr.js.map +1 -0
  717. package/node_modules/@undefineds.co/extensions/dist/reader.d.ts +18 -0
  718. package/node_modules/@undefineds.co/extensions/dist/reader.d.ts.map +1 -0
  719. package/node_modules/@undefineds.co/extensions/dist/reader.js +39 -0
  720. package/node_modules/@undefineds.co/extensions/dist/reader.js.map +1 -0
  721. package/node_modules/@undefineds.co/extensions/dist/registry.d.ts +16 -0
  722. package/node_modules/@undefineds.co/extensions/dist/registry.d.ts.map +1 -0
  723. package/node_modules/@undefineds.co/extensions/dist/registry.js +97 -0
  724. package/node_modules/@undefineds.co/extensions/dist/registry.js.map +1 -0
  725. package/node_modules/@undefineds.co/extensions/dist/types.d.ts +141 -0
  726. package/node_modules/@undefineds.co/extensions/dist/types.d.ts.map +1 -0
  727. package/node_modules/@undefineds.co/extensions/dist/types.js +2 -0
  728. package/node_modules/@undefineds.co/extensions/dist/types.js.map +1 -0
  729. package/node_modules/@undefineds.co/extensions/package.json +38 -0
  730. package/node_modules/@undefineds.co/shared-ui/dist/badge.d.ts +8 -0
  731. package/node_modules/@undefineds.co/shared-ui/dist/badge.js +17 -0
  732. package/node_modules/@undefineds.co/shared-ui/dist/button.d.ts +10 -0
  733. package/node_modules/@undefineds.co/shared-ui/dist/button.js +30 -0
  734. package/node_modules/@undefineds.co/shared-ui/dist/card.d.ts +7 -0
  735. package/node_modules/@undefineds.co/shared-ui/dist/card.js +15 -0
  736. package/node_modules/@undefineds.co/shared-ui/dist/index.d.ts +6 -0
  737. package/node_modules/@undefineds.co/shared-ui/dist/index.js +6 -0
  738. package/node_modules/@undefineds.co/shared-ui/dist/input.d.ts +4 -0
  739. package/node_modules/@undefineds.co/shared-ui/dist/input.js +5 -0
  740. package/node_modules/@undefineds.co/shared-ui/dist/theme.css +121 -0
  741. package/node_modules/@undefineds.co/shared-ui/dist/utils.d.ts +2 -0
  742. package/node_modules/@undefineds.co/shared-ui/dist/utils.js +5 -0
  743. package/node_modules/@undefineds.co/shared-ui/dist/workspace.d.ts +23 -0
  744. package/node_modules/@undefineds.co/shared-ui/dist/workspace.js +38 -0
  745. package/node_modules/@undefineds.co/shared-ui/package.json +39 -0
  746. package/node_modules/@undefineds.co/solid-sdk/dist/index.d.ts +3 -0
  747. package/node_modules/@undefineds.co/solid-sdk/dist/index.js +3 -0
  748. package/node_modules/@undefineds.co/solid-sdk/dist/pod-runtime.d.ts +45 -0
  749. package/node_modules/@undefineds.co/solid-sdk/dist/pod-runtime.js +147 -0
  750. package/node_modules/@undefineds.co/solid-sdk/dist/react.d.ts +15 -0
  751. package/node_modules/@undefineds.co/solid-sdk/dist/react.js +15 -0
  752. package/node_modules/@undefineds.co/solid-sdk/dist/session.d.ts +42 -0
  753. package/node_modules/@undefineds.co/solid-sdk/dist/session.js +127 -0
  754. package/node_modules/@undefineds.co/solid-sdk/package.json +45 -0
  755. package/package.json +31 -13
  756. package/static/app/assets/index-BoYHJ6si.js +230 -0
  757. package/static/app/assets/inrupt-smoke.js +2 -2
  758. package/static/app/assets/main.css +1 -1
  759. package/static/app/assets/main.js +9 -9
  760. package/static/dashboard/assets/NetworkPage-Brt79fuQ.js +2 -0
  761. package/static/dashboard/assets/PaneListHeader-57nvMwH6.js +1 -0
  762. package/static/dashboard/assets/PodPage-CM6do1vB.js +2 -0
  763. package/static/dashboard/assets/ServicesPage-BUNxGJRz.js +1 -0
  764. package/static/dashboard/assets/card-B9Zjf_2p.js +1 -0
  765. package/static/dashboard/assets/dashboard-8C6o666W.js +305 -0
  766. package/static/dashboard/assets/dashboard-CSdewNeA.css +1 -0
  767. package/static/dashboard/assets/database-DPh9wDY9.js +1 -0
  768. package/static/dashboard/assets/external-link-VbMQvVMz.js +1 -0
  769. package/static/dashboard/assets/index-RfiFckzb.js +51 -0
  770. package/static/dashboard/assets/refresh-cw-BxVxNxNr.js +1 -0
  771. package/static/dashboard/assets/services-status-context-DKmJ7ISr.js +1 -0
  772. package/static/dashboard/dashboard.html +2 -2
  773. package/static/settings/assets/ModelsPage-D_IH7AH3.js +1 -0
  774. package/static/settings/assets/PaneListHeader-Bgaze006.js +1 -0
  775. package/static/settings/assets/PodPage-Cy1VNObw.js +2 -0
  776. package/static/settings/assets/ServicesPage-BsFaxVWC.js +1 -0
  777. package/static/settings/assets/SettingsPage-UafNWE_p.js +48 -0
  778. package/static/settings/assets/card-B_bXSIn-.js +1 -0
  779. package/static/settings/assets/services-status-context-DiX-AbrP.js +1 -0
  780. package/static/settings/assets/settings-B30oMfZq.js +305 -0
  781. package/static/settings/assets/settings-CSdewNeA.css +1 -0
  782. package/static/settings/assets/workspace-layout-Dv1Yn9Ci.js +1 -0
  783. package/static/settings/auth.html +21 -0
  784. package/static/settings/reachability.html +221 -0
  785. package/static/settings/reachability.svg +7 -0
  786. package/static/settings/reachability.webmanifest +18 -0
  787. package/static/settings/settings.html +13 -0
  788. package/static/settings/signal-pod.html +293 -0
  789. package/static/settings/vite.svg +1 -0
  790. package/dist/api/service/ai-gateway-transport.d.ts +0 -25
  791. package/dist/api/service/ai-gateway-transport.js +0 -136
  792. package/dist/api/service/ai-gateway-transport.js.map +0 -1
  793. package/dist/api/service/chat-protocol-adapters.d.ts +0 -5
  794. package/dist/api/service/chat-protocol-adapters.js +0 -146
  795. package/dist/api/service/chat-protocol-adapters.js.map +0 -1
  796. package/dist/api/service/chat-routing.d.ts +0 -8
  797. package/dist/api/service/chat-routing.js +0 -16
  798. package/dist/api/service/chat-routing.js.map +0 -1
  799. package/dist/api/service/platform-ai-config.d.ts +0 -10
  800. package/dist/api/service/platform-ai-config.js +0 -76
  801. package/dist/api/service/platform-ai-config.js.map +0 -1
  802. package/dist/document/DocumentParser.js.map +0 -1
  803. package/dist/document/JinaDocumentParser.js.map +0 -1
  804. package/static/app/assets/index-C1yksyT4.js +0 -171
  805. package/static/dashboard/assets/dashboard-BssaVKTn.css +0 -1
  806. package/static/dashboard/assets/dashboard-Ckuadl3C.js +0 -54
package/README.md CHANGED
@@ -306,4 +306,7 @@ In implementation terms, CSS and the API service are internal parts of Xpod's ru
306
306
  - `docs/deployment-modes.md` — local vs cloud deployment
307
307
  - `docs/architecture.md` — system architecture overview
308
308
  - `docs/COMPONENTS.md` — component overrides and architecture extensions
309
+ - `docs/extension-runtime-and-credential-resolution.md` — shared extension runtime, session normalization, and just-in-time credential resolution
310
+ - `docs/progressive-semantic-index.md` — reader / retrieval point / index lifecycle for files and Agent search
311
+ - `docs/rdf-engine-spec.md` — SolidFS-backed RDF query, text, vector, and product-grade acceleration boundary
309
312
  - `docs/sidecar-api.md` — sidecar API patterns
package/config/cli.json CHANGED
@@ -306,6 +306,94 @@
306
306
  "hidden": true
307
307
  }
308
308
  },
309
+ {
310
+ "@type": "YargsParameter",
311
+ "name": "acmeMode",
312
+ "options": {
313
+ "type": "string",
314
+ "hidden": true
315
+ }
316
+ },
317
+ {
318
+ "@type": "YargsParameter",
319
+ "name": "acmeEmail",
320
+ "options": {
321
+ "type": "string",
322
+ "hidden": true
323
+ }
324
+ },
325
+ {
326
+ "@type": "YargsParameter",
327
+ "name": "acmeDomains",
328
+ "options": {
329
+ "type": "string",
330
+ "hidden": true
331
+ }
332
+ },
333
+ {
334
+ "@type": "YargsParameter",
335
+ "name": "acmeDirectoryUrl",
336
+ "options": {
337
+ "type": "string",
338
+ "hidden": true
339
+ }
340
+ },
341
+ {
342
+ "@type": "YargsParameter",
343
+ "name": "acmeAccountKeyPath",
344
+ "options": {
345
+ "type": "string",
346
+ "hidden": true
347
+ }
348
+ },
349
+ {
350
+ "@type": "YargsParameter",
351
+ "name": "acmeCertificateKeyPath",
352
+ "options": {
353
+ "type": "string",
354
+ "hidden": true
355
+ }
356
+ },
357
+ {
358
+ "@type": "YargsParameter",
359
+ "name": "acmeCertificatePath",
360
+ "options": {
361
+ "type": "string",
362
+ "hidden": true
363
+ }
364
+ },
365
+ {
366
+ "@type": "YargsParameter",
367
+ "name": "acmeFullChainPath",
368
+ "options": {
369
+ "type": "string",
370
+ "hidden": true
371
+ }
372
+ },
373
+ {
374
+ "@type": "YargsParameter",
375
+ "name": "acmeRenewBeforeDays",
376
+ "options": {
377
+ "type": "number",
378
+ "hidden": true
379
+ }
380
+ },
381
+ {
382
+ "@type": "YargsParameter",
383
+ "name": "acmePropagationDelayMs",
384
+ "options": {
385
+ "type": "number",
386
+ "hidden": true
387
+ }
388
+ },
389
+ {
390
+ "@type": "YargsParameter",
391
+ "name": "acmePostDeployCommand",
392
+ "options": {
393
+ "type": "string",
394
+ "hidden": true
395
+ }
396
+ },
309
397
  {
310
398
  "@type": "YargsParameter",
311
399
  "name": "p2pEnabled",
package/config/cloud.json CHANGED
@@ -127,6 +127,7 @@
127
127
  "@id": "urn:undefineds:xpod:RemoteDataAccessor"
128
128
  },
129
129
  "presignedRedirectEnabled": true,
130
+ "textSearchIndexingEnabled": true,
130
131
  "rdfFileDataAccessor": {
131
132
  "@id": "urn:solid-server:default:FileDataAccessor"
132
133
  }
@@ -168,6 +169,27 @@
168
169
  "autoBackfill_clear": true,
169
170
  "autoBackfill_batchSize": 1000
170
171
  },
172
+ {
173
+ "comment": "PostgreSQL-backed text search index sharing the RDF database.",
174
+ "@id": "urn:undefineds:xpod:PostgresRdfTextIndex",
175
+ "@type": "PostgresRdfTextIndex",
176
+ "options_driver": "pg",
177
+ "options_connectionString": {
178
+ "@id": "urn:solid-server:default:variable:sparqlEndpoint",
179
+ "@type": "Variable"
180
+ }
181
+ },
182
+ {
183
+ "comment": "PostgreSQL-backed vector search index sharing the RDF database.",
184
+ "@id": "urn:undefineds:xpod:PostgresRdfVectorIndex",
185
+ "@type": "PostgresRdfVectorIndex",
186
+ "options_driver": "pg",
187
+ "options_connectionString": {
188
+ "@id": "urn:solid-server:default:variable:sparqlEndpoint",
189
+ "@type": "Variable"
190
+ },
191
+ "options_defaultMetric": "cosine"
192
+ },
171
193
  {
172
194
  "comment": "RDF query engine backed by PostgreSQL facts plus PostgreSQL RDF-3X derived stats.",
173
195
  "@id": "urn:undefineds:xpod:SolidRdfEngine",
@@ -177,7 +199,16 @@
177
199
  "@id": "urn:solid-server:default:variable:sparqlEndpoint",
178
200
  "@type": "Variable"
179
201
  },
180
- "options_autoOpen": true
202
+ "options_textIndex": {
203
+ "@id": "urn:undefineds:xpod:PostgresRdfTextIndex"
204
+ },
205
+ "options_vectorIndex": {
206
+ "@id": "urn:undefineds:xpod:PostgresRdfVectorIndex"
207
+ },
208
+ "options_rdfAccelerationProfile": "pg-hot-operators",
209
+ "options_autoOpen": true,
210
+ "options_maintenanceIntervalMs": 60000,
211
+ "options_maintenanceSourceBatchSize": 256
181
212
  },
182
213
  {
183
214
  "comment": "Compatibility SPARQL engine backed by the shadow store, so fallback writes update both indexes.",
@@ -7,15 +7,18 @@
7
7
  "DisabledSparqlFeatureError",
8
8
  "InvalidRelaySessionRequestError",
9
9
  "InvalidTunnelTokenError",
10
+ "normalizeContext",
10
11
  "NodeRouteSourceNotFoundError",
11
12
  "P2PSessionExpiredError",
12
13
  "P2PSessionNotFoundError",
13
14
  "P2PSignalingRequestError",
15
+ "parseDeploymentRootKeyConfig",
14
16
  "SearchApiError",
15
17
  "SolidFsConflictError",
16
18
  "SolidFsNotFoundError",
17
19
  "SubdomainClientError",
18
20
  "UnsupportedSparqlQueryError",
21
+ "Uint8Array",
19
22
  "VectorApiError",
20
23
  "WaitingRunnerError"
21
24
  ]
@@ -32,6 +32,50 @@
32
32
  "@id": "urn:solid-server:default:variable:nodeHeartbeatInterval",
33
33
  "@type": "Variable"
34
34
  },
35
+ "acmeMode": {
36
+ "@id": "urn:solid-server:default:variable:acmeMode",
37
+ "@type": "Variable"
38
+ },
39
+ "acmeEmail": {
40
+ "@id": "urn:solid-server:default:variable:acmeEmail",
41
+ "@type": "Variable"
42
+ },
43
+ "acmeDomains": {
44
+ "@id": "urn:solid-server:default:variable:acmeDomains",
45
+ "@type": "Variable"
46
+ },
47
+ "acmeDirectoryUrl": {
48
+ "@id": "urn:solid-server:default:variable:acmeDirectoryUrl",
49
+ "@type": "Variable"
50
+ },
51
+ "acmeAccountKeyPath": {
52
+ "@id": "urn:solid-server:default:variable:acmeAccountKeyPath",
53
+ "@type": "Variable"
54
+ },
55
+ "acmeCertificateKeyPath": {
56
+ "@id": "urn:solid-server:default:variable:acmeCertificateKeyPath",
57
+ "@type": "Variable"
58
+ },
59
+ "acmeCertificatePath": {
60
+ "@id": "urn:solid-server:default:variable:acmeCertificatePath",
61
+ "@type": "Variable"
62
+ },
63
+ "acmeFullChainPath": {
64
+ "@id": "urn:solid-server:default:variable:acmeFullChainPath",
65
+ "@type": "Variable"
66
+ },
67
+ "acmeRenewBeforeDays": {
68
+ "@id": "urn:solid-server:default:variable:acmeRenewBeforeDays",
69
+ "@type": "Variable"
70
+ },
71
+ "acmePropagationDelayMs": {
72
+ "@id": "urn:solid-server:default:variable:acmePropagationDelayMs",
73
+ "@type": "Variable"
74
+ },
75
+ "acmePostDeployCommand": {
76
+ "@id": "urn:solid-server:default:variable:acmePostDeployCommand",
77
+ "@type": "Variable"
78
+ },
35
79
  "p2pEnabled": {
36
80
  "@id": "urn:solid-server:default:variable:p2pEnabled",
37
81
  "@type": "Variable"
@@ -298,6 +298,92 @@
298
298
  "defaultValue": ""
299
299
  }
300
300
  },
301
+ {
302
+ "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:default:variable:acmeMode",
303
+ "CombinedShorthandResolver:_resolvers_value": {
304
+ "@type": "KeyExtractor",
305
+ "key": "acmeMode",
306
+ "defaultValue": "local"
307
+ }
308
+ },
309
+ {
310
+ "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:default:variable:acmeEmail",
311
+ "CombinedShorthandResolver:_resolvers_value": {
312
+ "@type": "KeyExtractor",
313
+ "key": "acmeEmail",
314
+ "defaultValue": ""
315
+ }
316
+ },
317
+ {
318
+ "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:default:variable:acmeDomains",
319
+ "CombinedShorthandResolver:_resolvers_value": {
320
+ "@type": "KeyExtractor",
321
+ "key": "acmeDomains",
322
+ "defaultValue": ""
323
+ }
324
+ },
325
+ {
326
+ "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:default:variable:acmeDirectoryUrl",
327
+ "CombinedShorthandResolver:_resolvers_value": {
328
+ "@type": "KeyExtractor",
329
+ "key": "acmeDirectoryUrl",
330
+ "defaultValue": ""
331
+ }
332
+ },
333
+ {
334
+ "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:default:variable:acmeAccountKeyPath",
335
+ "CombinedShorthandResolver:_resolvers_value": {
336
+ "@type": "KeyExtractor",
337
+ "key": "acmeAccountKeyPath",
338
+ "defaultValue": ""
339
+ }
340
+ },
341
+ {
342
+ "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:default:variable:acmeCertificateKeyPath",
343
+ "CombinedShorthandResolver:_resolvers_value": {
344
+ "@type": "KeyExtractor",
345
+ "key": "acmeCertificateKeyPath",
346
+ "defaultValue": ""
347
+ }
348
+ },
349
+ {
350
+ "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:default:variable:acmeCertificatePath",
351
+ "CombinedShorthandResolver:_resolvers_value": {
352
+ "@type": "KeyExtractor",
353
+ "key": "acmeCertificatePath",
354
+ "defaultValue": ""
355
+ }
356
+ },
357
+ {
358
+ "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:default:variable:acmeFullChainPath",
359
+ "CombinedShorthandResolver:_resolvers_value": {
360
+ "@type": "KeyExtractor",
361
+ "key": "acmeFullChainPath",
362
+ "defaultValue": ""
363
+ }
364
+ },
365
+ {
366
+ "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:default:variable:acmeRenewBeforeDays",
367
+ "CombinedShorthandResolver:_resolvers_value": {
368
+ "@type": "KeyExtractor",
369
+ "key": "acmeRenewBeforeDays"
370
+ }
371
+ },
372
+ {
373
+ "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:default:variable:acmePropagationDelayMs",
374
+ "CombinedShorthandResolver:_resolvers_value": {
375
+ "@type": "KeyExtractor",
376
+ "key": "acmePropagationDelayMs"
377
+ }
378
+ },
379
+ {
380
+ "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:default:variable:acmePostDeployCommand",
381
+ "CombinedShorthandResolver:_resolvers_value": {
382
+ "@type": "KeyExtractor",
383
+ "key": "acmePostDeployCommand",
384
+ "defaultValue": ""
385
+ }
386
+ },
301
387
  {
302
388
  "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:default:variable:p2pEnabled",
303
389
  "CombinedShorthandResolver:_resolvers_value": {
@@ -179,6 +179,7 @@
179
179
  "relativeWebIdPath": "/profile/card#me",
180
180
  "webIdStore": { "@id": "urn:solid-server:default:WebIdStore" },
181
181
  "podStore": { "@id": "urn:solid-server:default:PodStore" },
182
+ "resourceStore": { "@id": "urn:solid-server:default:ResourceStore" },
182
183
  "identityDbUrl": { "@id": "urn:solid-server:default:variable:identityDbUrl" }
183
184
  }
184
185
  },
@@ -206,6 +207,9 @@
206
207
  "authorizer": {
207
208
  "@id": "urn:solid-server:default:Authorizer"
208
209
  },
210
+ "updateAuthority": {
211
+ "@id": "urn:undefineds:xpod:MixDataAccessor"
212
+ },
209
213
  "options_identityDbUrl": {
210
214
  "@id": "urn:solid-server:default:variable:identityDbUrl",
211
215
  "@type": "Variable"
@@ -12,7 +12,7 @@
12
12
  * 2. 从 Pod 读取对应的 Credential
13
13
  * 3. 根据 runtimeKind 创建对应的执行器实例
14
14
  */
15
- import type { IAgentExecutor, ExecutorType, AiCredential, ProviderConfig, BaseExecutorOptions } from './types';
15
+ import type { IAgentExecutor, ExecutorType, AiCredential, ProviderConfig, BaseExecutorOptions, AIConnectionInvocationConfig } from './types';
16
16
  /**
17
17
  * 支持的执行器类型
18
18
  */
@@ -38,7 +38,7 @@ export declare class AgentExecutorFactory {
38
38
  * @param webId 用户 WebID(可选)
39
39
  * @returns 执行器实例,如果未找到配置则返回 null
40
40
  */
41
- create(podBaseUrl: string, providerId: string, runtimeKind: ExecutorType, authenticatedFetch: typeof fetch, webId?: string): Promise<IAgentExecutor | null>;
41
+ create(podBaseUrl: string, providerId: string, runtimeKind: ExecutorType, authenticatedFetch: typeof fetch, webId?: string, aiConnection?: AIConnectionInvocationConfig): Promise<IAgentExecutor | null>;
42
42
  /**
43
43
  * 列出所有可用的供应商
44
44
  */
@@ -60,7 +60,7 @@ export declare class AgentExecutorFactory {
60
60
  *
61
61
  * 用于测试或已知凭证的场景。
62
62
  */
63
- createDirect(executorType: ExecutorType, providerId: string, credential: AiCredential): IAgentExecutor;
63
+ createDirect(executorType: ExecutorType, providerId: string, credential: AiCredential, aiConnection?: AIConnectionInvocationConfig): IAgentExecutor;
64
64
  }
65
65
  /**
66
66
  * 默认工厂实例
@@ -65,7 +65,7 @@ class AgentExecutorFactory {
65
65
  * @param webId 用户 WebID(可选)
66
66
  * @returns 执行器实例,如果未找到配置则返回 null
67
67
  */
68
- async create(podBaseUrl, providerId, runtimeKind, authenticatedFetch, webId) {
68
+ async create(podBaseUrl, providerId, runtimeKind, authenticatedFetch, webId, aiConnection) {
69
69
  try {
70
70
  const session = {
71
71
  info: { isLoggedIn: true, webId },
@@ -95,30 +95,40 @@ class AgentExecutorFactory {
95
95
  this.logger.debug(`No active credential found for provider: ${providerId}`);
96
96
  return null;
97
97
  }
98
+ if (runtimeKind === 'claude' && !aiConnection) {
99
+ this.logger.debug(`AI Connection invocation config is required for runtime kind: ${runtimeKind}`);
100
+ return null;
101
+ }
98
102
  // 3. 构建凭证对象
99
103
  const aiCredential = {
100
- providerId: selection.providerId,
101
- apiKey: selection.apiKey,
102
- baseUrl: selection.baseUrl,
103
- proxyUrl: selection.proxyUrl,
104
- projectId: selection.credential.projectId ?? undefined,
105
- organizationId: selection.credential.organizationId ?? undefined,
104
+ providerId: runtimeKind === 'claude' ? 'xpod' : selection.providerId,
105
+ apiKey: runtimeKind === 'claude' ? '' : selection.apiKey,
106
+ baseUrl: runtimeKind === 'claude' ? aiConnection?.baseUrl : selection.baseUrl,
107
+ proxyUrl: runtimeKind === 'claude' ? undefined : selection.proxyUrl,
108
+ projectId: runtimeKind === 'claude' ? undefined : selection.credential.projectId ?? undefined,
109
+ organizationId: runtimeKind === 'claude' ? undefined : selection.credential.organizationId ?? undefined,
106
110
  };
107
111
  // 4. 构建供应商配置
108
112
  const defaultModel = await this.resolveModelId(db, provider.defaultModel ?? provider.hasModel);
109
113
  const providerConfig = {
110
- id: provider.id,
111
- displayName: provider.displayName ?? provider.id,
114
+ id: runtimeKind === 'claude' ? 'xpod' : provider.id,
115
+ displayName: runtimeKind === 'claude' ? 'Xpod AI Connection' : provider.displayName ?? provider.id,
112
116
  executorType: runtimeKind,
113
- baseUrl: provider.baseUrl ?? undefined,
114
- defaultModel,
117
+ baseUrl: runtimeKind === 'claude' ? aiConnection?.baseUrl : provider.baseUrl ?? undefined,
118
+ defaultModel: aiConnection?.model ?? defaultModel,
115
119
  enabled: provider.enabled === 'true',
116
120
  };
117
121
  // 5. 创建执行器
118
122
  return this.createExecutor(runtimeKind, {
119
- providerId,
123
+ providerId: runtimeKind === 'claude' ? 'xpod' : providerId,
120
124
  credential: aiCredential,
121
125
  providerConfig,
126
+ ...(aiConnection ? {
127
+ aiConnection: {
128
+ ...aiConnection,
129
+ model: aiConnection.model ?? defaultModel,
130
+ },
131
+ } : {}),
122
132
  });
123
133
  }
124
134
  catch (error) {
@@ -186,10 +196,13 @@ class AgentExecutorFactory {
186
196
  *
187
197
  * 用于测试或已知凭证的场景。
188
198
  */
189
- createDirect(executorType, providerId, credential) {
199
+ createDirect(executorType, providerId, credential, aiConnection) {
190
200
  return this.createExecutor(executorType, {
191
- providerId,
192
- credential,
201
+ providerId: executorType === 'claude' && aiConnection ? 'xpod' : providerId,
202
+ credential: executorType === 'claude' && aiConnection
203
+ ? { providerId: 'xpod', apiKey: '', baseUrl: aiConnection.baseUrl }
204
+ : credential,
205
+ ...(aiConnection ? { aiConnection } : {}),
193
206
  });
194
207
  }
195
208
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AgentExecutorFactory.js","sourceRoot":"","sources":["../../src/agents/AgentExecutorFactory.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAEH,iEAAqD;AACrD,gEAAgE;AAChE,kDAAiE;AAEjE,oDAAiD;AACjD,8CAA2C;AAC3C,wDAAyD;AACzD,sDAA2E;AAE3E,+BAA+B;AAC/B,qDAAkD;AAClD,2DAAwD;AAExD,MAAM,MAAM,GAAG;IACb,QAAQ,EAAE,mBAAQ;IAClB,UAAU,EAAE,mBAAU;IACtB,KAAK,EAAE,aAAK;CACb,CAAC;AAEF;;GAEG;AACU,QAAA,wBAAwB,GAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAEhF;;;;GAIG;AACH,MAAa,oBAAoB;IAAjC;QACmB,WAAM,GAAG,IAAA,oCAAY,EAAC,IAAI,CAAC,CAAC;IAyM/C,CAAC;IAvMS,KAAK,CAAC,cAAc,CAAC,EAAO,EAAE,QAAmC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,aAAK,EAAE,QAAQ,CAAC,CAAC;QAClD,OAAO,KAAK,EAAE,EAAE,IAAI,SAAS,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,YAAoB;QACrC,OAAO,gCAAwB,CAAC,QAAQ,CAAC,YAA4B,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,MAAM,CACjB,UAAkB,EAClB,UAAkB,EAClB,WAAyB,EACzB,kBAAgC,EAChC,KAAc;QAEd,IAAI,CAAC;YACH,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE;gBACjC,KAAK,EAAE,kBAAkB;aAC1B,CAAC;YACF,MAAM,EAAE,GAAQ,IAAA,uBAAO,EAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAE7C,aAAa;YACb,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAQ,EAAE,UAAU,CAAC,CAAC;YAEzD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;gBACvD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;gBACzD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,WAAW,gDAAgD,CAAC,CAAC;gBAC3G,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;gBACrD,KAAK,EAAE,IAAA,mBAAG,EACR,IAAA,kBAAE,EAAC,mBAAU,CAAC,OAAO,EAAE,mBAAW,CAAC,EAAE,CAAC,EACtC,IAAA,kBAAE,EAAC,mBAAU,CAAC,MAAM,EAAE,wBAAgB,CAAC,MAAM,CAAC,CAC/C;aACF,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACrD,MAAM,SAAS,GAAG,IAAA,iCAAwB,EAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YAE/E,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,UAAU,EAAE,CAAC,CAAC;gBAC5E,OAAO,IAAI,CAAC;YACd,CAAC;YAED,YAAY;YACZ,MAAM,YAAY,GAAiB;gBACjC,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,SAAS,EAAG,SAAS,CAAC,UAAkB,CAAC,SAAS,IAAI,SAAS;gBAC/D,cAAc,EAAG,SAAS,CAAC,UAAkB,CAAC,cAAc,IAAI,SAAS;aAC1E,CAAC;YAEF,aAAa;YACb,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/F,MAAM,cAAc,GAAmB;gBACrC,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,EAAE;gBAChD,YAAY,EAAE,WAAW;gBACzB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,SAAS;gBACtC,YAAY;gBACZ,OAAO,EAAE,QAAQ,CAAC,OAAO,KAAK,MAAM;aACrC,CAAC;YAEF,WAAW;YACX,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;gBACtC,UAAU;gBACV,UAAU,EAAE,YAAY;gBACxB,cAAc;aACf,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;YAClF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAAa,CACxB,UAAkB,EAClB,kBAAgC,EAChC,WAAyB,EACzB,KAAc;QAEd,IAAI,CAAC;YACH,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE;gBACjC,KAAK,EAAE,kBAAkB;aAC1B,CAAC;YACF,MAAM,EAAE,GAAQ,IAAA,uBAAO,EAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAE7C,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAErD,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAA2B,EAAE,EAAE,CAAC,CAAC;gBACvE,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE;gBAClC,YAAY,EAAE,WAAW;gBACzB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,SAAS;gBAC/B,YAAY,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,QAAQ,CAAC;gBACzE,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,MAAM;aAC9B,CAAC,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACtD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,oBAAoB,CAC/B,UAAkB,EAClB,kBAAgC,EAChC,WAAyB,EACzB,KAAc;QAEd,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAC/F,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,sBAAsB,CACjC,UAAkB,EAClB,kBAAgC,EAChC,WAAyB,EACzB,KAAc;QAEd,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACvF,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,YAA0B,EAAE,OAA4B;QAC5E,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,QAAQ;gBACX,OAAO,IAAI,+BAAc,CAAC,OAAO,CAAC,CAAC;YAErC,KAAK,WAAW;gBACd,OAAO,IAAI,qCAAiB,CAAC,OAAO,CAAC,CAAC;YAExC;gBACE,MAAM,IAAI,KAAK,CACb,8BAA8B,YAAY,IAAI;oBAC9C,oFAAoF,CACrF,CAAC;QACN,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,YAAY,CACjB,YAA0B,EAC1B,UAAkB,EAClB,UAAwB;QAExB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YACvC,UAAU;YACV,UAAU;SACX,CAAC,CAAC;IACL,CAAC;CACF;AA1MD,oDA0MC;AAED;;GAEG;AACU,QAAA,oBAAoB,GAAG,IAAI,oBAAoB,EAAE,CAAC","sourcesContent":["/**\n * Agent Executor Factory\n *\n * 从 Pod 读取凭证和 Provider 配置,创建对应的 Agent 执行器。\n *\n * 支持的执行器类型:\n * - codebuddy: CodeBuddy Agent SDK\n * - claude: Claude Agent SDK\n *\n * 使用流程:\n * 1. 从 Pod 读取 Provider 配置\n * 2. 从 Pod 读取对应的 Credential\n * 3. 根据 runtimeKind 创建对应的执行器实例\n */\n\nimport { getLoggerFor } from 'global-logger-factory';\nimport { drizzle, eq, and } from '@undefineds.co/drizzle-solid';\nimport { selectAIConfigCredential } from '@undefineds.co/models';\nimport type { IAgentExecutor, ExecutorType, AiCredential, ProviderConfig, BaseExecutorOptions } from './types';\nimport { Provider } from '../ai/schema/provider';\nimport { Model } from '../ai/schema/model';\nimport { Credential } from '../credential/schema/tables';\nimport { ServiceType, CredentialStatus } from '../credential/schema/types';\n\n// 执行器实现(仅支持有完整 Agent SDK 的供应商)\nimport { ClaudeExecutor } from './ClaudeExecutor';\nimport { CodeBuddyExecutor } from './CodeBuddyExecutor';\n\nconst schema = {\n provider: Provider,\n credential: Credential,\n model: Model,\n};\n\n/**\n * 支持的执行器类型\n */\nexport const SUPPORTED_EXECUTOR_TYPES: ExecutorType[] = ['codebuddy', 'claude'];\n\n/**\n * Agent Executor Factory\n *\n * 负责从 Pod 读取配置并创建执行器实例。\n */\nexport class AgentExecutorFactory {\n private readonly logger = getLoggerFor(this);\n\n private async resolveModelId(db: any, modelRef: string | null | undefined): Promise<string | undefined> {\n if (!modelRef) {\n return undefined;\n }\n\n const model = await db.findByIri(Model, modelRef);\n return model?.id ?? undefined;\n }\n\n /**\n * 检查执行器类型是否支持\n */\n public isSupported(executorType: string): executorType is ExecutorType {\n return SUPPORTED_EXECUTOR_TYPES.includes(executorType as ExecutorType);\n }\n\n /**\n * 从 Pod 创建执行器\n *\n * @param podBaseUrl Pod 根 URL\n * @param providerId 供应商 ID\n * @param authenticatedFetch 带认证的 fetch 函数\n * @param webId 用户 WebID(可选)\n * @returns 执行器实例,如果未找到配置则返回 null\n */\n public async create(\n podBaseUrl: string,\n providerId: string,\n runtimeKind: ExecutorType,\n authenticatedFetch: typeof fetch,\n webId?: string,\n ): Promise<IAgentExecutor | null> {\n try {\n const session = {\n info: { isLoggedIn: true, webId },\n fetch: authenticatedFetch,\n };\n const db: any = drizzle(session, { schema });\n\n // 1. 读取供应商配置\n const provider = await db.findById(Provider, providerId);\n\n if (!provider) {\n this.logger.debug(`Provider not found: ${providerId}`);\n return null;\n }\n\n if (provider.enabled !== 'true') {\n this.logger.debug(`Provider is disabled: ${providerId}`);\n return null;\n }\n\n if (!this.isSupported(runtimeKind)) {\n this.logger.warn(`Unsupported runtime kind: ${runtimeKind}. Only 'codebuddy' and 'claude' are supported.`);\n return null;\n }\n\n const credentials = await db.query.credential.findMany({\n where: and(\n eq(Credential.service, ServiceType.AI),\n eq(Credential.status, CredentialStatus.ACTIVE),\n ),\n });\n const providers = await db.query.provider.findMany();\n const selection = selectAIConfigCredential(providerId, credentials, providers);\n\n if (!selection) {\n this.logger.debug(`No active credential found for provider: ${providerId}`);\n return null;\n }\n\n // 3. 构建凭证对象\n const aiCredential: AiCredential = {\n providerId: selection.providerId,\n apiKey: selection.apiKey,\n baseUrl: selection.baseUrl,\n proxyUrl: selection.proxyUrl,\n projectId: (selection.credential as any).projectId ?? undefined,\n organizationId: (selection.credential as any).organizationId ?? undefined,\n };\n\n // 4. 构建供应商配置\n const defaultModel = await this.resolveModelId(db, provider.defaultModel ?? provider.hasModel);\n const providerConfig: ProviderConfig = {\n id: provider.id,\n displayName: provider.displayName ?? provider.id,\n executorType: runtimeKind,\n baseUrl: provider.baseUrl ?? undefined,\n defaultModel,\n enabled: provider.enabled === 'true',\n };\n\n // 5. 创建执行器\n return this.createExecutor(runtimeKind, {\n providerId,\n credential: aiCredential,\n providerConfig,\n });\n } catch (error) {\n this.logger.error(`Failed to create executor for provider ${providerId}:`, error);\n return null;\n }\n }\n\n /**\n * 列出所有可用的供应商\n */\n public async listProviders(\n podBaseUrl: string,\n authenticatedFetch: typeof fetch,\n runtimeKind: ExecutorType,\n webId?: string,\n ): Promise<ProviderConfig[]> {\n try {\n const session = {\n info: { isLoggedIn: true, webId },\n fetch: authenticatedFetch,\n };\n const db: any = drizzle(session, { schema });\n\n const providers = await db.query.provider.findMany();\n\n return Promise.all(providers.map(async (p: typeof providers[number]) => ({\n id: p.id,\n displayName: p.displayName ?? p.id,\n executorType: runtimeKind,\n baseUrl: p.baseUrl ?? undefined,\n defaultModel: await this.resolveModelId(db, p.defaultModel ?? p.hasModel),\n enabled: p.enabled === 'true',\n })));\n } catch (error) {\n this.logger.error('Failed to list providers:', error);\n return [];\n }\n }\n\n /**\n * 列出所有启用的供应商\n */\n public async listEnabledProviders(\n podBaseUrl: string,\n authenticatedFetch: typeof fetch,\n runtimeKind: ExecutorType,\n webId?: string,\n ): Promise<ProviderConfig[]> {\n const providers = await this.listProviders(podBaseUrl, authenticatedFetch, runtimeKind, webId);\n return providers.filter((p) => p.enabled);\n }\n\n /**\n * 列出所有支持的供应商(runtimeKind 受支持且已启用)\n */\n public async listSupportedProviders(\n podBaseUrl: string,\n authenticatedFetch: typeof fetch,\n runtimeKind: ExecutorType,\n webId?: string,\n ): Promise<ProviderConfig[]> {\n if (!this.isSupported(runtimeKind)) {\n return [];\n }\n\n return this.listEnabledProviders(podBaseUrl, authenticatedFetch, runtimeKind, webId);\n }\n\n /**\n * 根据 executorType 创建执行器\n */\n public createExecutor(executorType: ExecutorType, options: BaseExecutorOptions): IAgentExecutor {\n switch (executorType) {\n case 'claude':\n return new ClaudeExecutor(options);\n\n case 'codebuddy':\n return new CodeBuddyExecutor(options);\n\n default:\n throw new Error(\n `Unsupported executor type: ${executorType}. ` +\n `Only 'codebuddy' and 'claude' are supported because they have complete Agent SDKs.`\n );\n }\n }\n\n /**\n * 创建指定类型的执行器(直接使用凭证,不从 Pod 读取)\n *\n * 用于测试或已知凭证的场景。\n */\n public createDirect(\n executorType: ExecutorType,\n providerId: string,\n credential: AiCredential,\n ): IAgentExecutor {\n return this.createExecutor(executorType, {\n providerId,\n credential,\n });\n }\n}\n\n/**\n * 默认工厂实例\n */\nexport const agentExecutorFactory = new AgentExecutorFactory();\n"]}
1
+ {"version":3,"file":"AgentExecutorFactory.js","sourceRoot":"","sources":["../../src/agents/AgentExecutorFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent Executor Factory\n *\n * 从 Pod 读取凭证和 Provider 配置,创建对应的 Agent 执行器。\n *\n * 支持的执行器类型:\n * - codebuddy: CodeBuddy Agent SDK\n * - claude: Claude Agent SDK\n *\n * 使用流程:\n * 1. 从 Pod 读取 Provider 配置\n * 2. 从 Pod 读取对应的 Credential\n * 3. 根据 runtimeKind 创建对应的执行器实例\n */\n\nimport { getLoggerFor } from 'global-logger-factory';\nimport { drizzle, eq, and } from '@undefineds.co/drizzle-solid';\nimport { selectAIConfigCredential } from '@undefineds.co/models';\nimport type {\n IAgentExecutor,\n ExecutorType,\n AiCredential,\n ProviderConfig,\n BaseExecutorOptions,\n AIConnectionInvocationConfig,\n} from './types';\nimport { Provider } from '../ai/schema/provider';\nimport { Model } from '../ai/schema/model';\nimport { Credential } from '../credential/schema/tables';\nimport { ServiceType, CredentialStatus } from '../credential/schema/types';\n\n// 执行器实现(仅支持有完整 Agent SDK 的供应商)\nimport { ClaudeExecutor } from './ClaudeExecutor';\nimport { CodeBuddyExecutor } from './CodeBuddyExecutor';\n\nconst schema = {\n provider: Provider,\n credential: Credential,\n model: Model,\n};\n\n/**\n * 支持的执行器类型\n */\nexport const SUPPORTED_EXECUTOR_TYPES: ExecutorType[] = ['codebuddy', 'claude'];\n\n/**\n * Agent Executor Factory\n *\n * 负责从 Pod 读取配置并创建执行器实例。\n */\nexport class AgentExecutorFactory {\n private readonly logger = getLoggerFor(this);\n\n private async resolveModelId(db: any, modelRef: string | null | undefined): Promise<string | undefined> {\n if (!modelRef) {\n return undefined;\n }\n\n const model = await db.findByIri(Model, modelRef);\n return model?.id ?? undefined;\n }\n\n /**\n * 检查执行器类型是否支持\n */\n public isSupported(executorType: string): executorType is ExecutorType {\n return SUPPORTED_EXECUTOR_TYPES.includes(executorType as ExecutorType);\n }\n\n /**\n * 从 Pod 创建执行器\n *\n * @param podBaseUrl Pod 根 URL\n * @param providerId 供应商 ID\n * @param authenticatedFetch 带认证的 fetch 函数\n * @param webId 用户 WebID(可选)\n * @returns 执行器实例,如果未找到配置则返回 null\n */\n public async create(\n podBaseUrl: string,\n providerId: string,\n runtimeKind: ExecutorType,\n authenticatedFetch: typeof fetch,\n webId?: string,\n aiConnection?: AIConnectionInvocationConfig,\n ): Promise<IAgentExecutor | null> {\n try {\n const session = {\n info: { isLoggedIn: true, webId },\n fetch: authenticatedFetch,\n };\n const db: any = drizzle(session, { schema });\n\n // 1. 读取供应商配置\n const provider = await db.findById(Provider, providerId);\n\n if (!provider) {\n this.logger.debug(`Provider not found: ${providerId}`);\n return null;\n }\n\n if (provider.enabled !== 'true') {\n this.logger.debug(`Provider is disabled: ${providerId}`);\n return null;\n }\n\n if (!this.isSupported(runtimeKind)) {\n this.logger.warn(`Unsupported runtime kind: ${runtimeKind}. Only 'codebuddy' and 'claude' are supported.`);\n return null;\n }\n\n const credentials = await db.query.credential.findMany({\n where: and(\n eq(Credential.service, ServiceType.AI),\n eq(Credential.status, CredentialStatus.ACTIVE),\n ),\n });\n const providers = await db.query.provider.findMany();\n const selection = selectAIConfigCredential(providerId, credentials, providers);\n\n if (!selection) {\n this.logger.debug(`No active credential found for provider: ${providerId}`);\n return null;\n }\n\n if (runtimeKind === 'claude' && !aiConnection) {\n this.logger.debug(`AI Connection invocation config is required for runtime kind: ${runtimeKind}`);\n return null;\n }\n\n // 3. 构建凭证对象\n const aiCredential: AiCredential = {\n providerId: runtimeKind === 'claude' ? 'xpod' : selection.providerId,\n apiKey: runtimeKind === 'claude' ? '' : selection.apiKey,\n baseUrl: runtimeKind === 'claude' ? aiConnection?.baseUrl : selection.baseUrl,\n proxyUrl: runtimeKind === 'claude' ? undefined : selection.proxyUrl,\n projectId: runtimeKind === 'claude' ? undefined : (selection.credential as any).projectId ?? undefined,\n organizationId: runtimeKind === 'claude' ? undefined : (selection.credential as any).organizationId ?? undefined,\n };\n\n // 4. 构建供应商配置\n const defaultModel = await this.resolveModelId(db, provider.defaultModel ?? provider.hasModel);\n const providerConfig: ProviderConfig = {\n id: runtimeKind === 'claude' ? 'xpod' : provider.id,\n displayName: runtimeKind === 'claude' ? 'Xpod AI Connection' : provider.displayName ?? provider.id,\n executorType: runtimeKind,\n baseUrl: runtimeKind === 'claude' ? aiConnection?.baseUrl : provider.baseUrl ?? undefined,\n defaultModel: aiConnection?.model ?? defaultModel,\n enabled: provider.enabled === 'true',\n };\n\n // 5. 创建执行器\n return this.createExecutor(runtimeKind, {\n providerId: runtimeKind === 'claude' ? 'xpod' : providerId,\n credential: aiCredential,\n providerConfig,\n ...(aiConnection ? {\n aiConnection: {\n ...aiConnection,\n model: aiConnection.model ?? defaultModel,\n },\n } : {}),\n });\n } catch (error) {\n this.logger.error(`Failed to create executor for provider ${providerId}:`, error);\n return null;\n }\n }\n\n /**\n * 列出所有可用的供应商\n */\n public async listProviders(\n podBaseUrl: string,\n authenticatedFetch: typeof fetch,\n runtimeKind: ExecutorType,\n webId?: string,\n ): Promise<ProviderConfig[]> {\n try {\n const session = {\n info: { isLoggedIn: true, webId },\n fetch: authenticatedFetch,\n };\n const db: any = drizzle(session, { schema });\n\n const providers = await db.query.provider.findMany();\n\n return Promise.all(providers.map(async (p: typeof providers[number]) => ({\n id: p.id,\n displayName: p.displayName ?? p.id,\n executorType: runtimeKind,\n baseUrl: p.baseUrl ?? undefined,\n defaultModel: await this.resolveModelId(db, p.defaultModel ?? p.hasModel),\n enabled: p.enabled === 'true',\n })));\n } catch (error) {\n this.logger.error('Failed to list providers:', error);\n return [];\n }\n }\n\n /**\n * 列出所有启用的供应商\n */\n public async listEnabledProviders(\n podBaseUrl: string,\n authenticatedFetch: typeof fetch,\n runtimeKind: ExecutorType,\n webId?: string,\n ): Promise<ProviderConfig[]> {\n const providers = await this.listProviders(podBaseUrl, authenticatedFetch, runtimeKind, webId);\n return providers.filter((p) => p.enabled);\n }\n\n /**\n * 列出所有支持的供应商(runtimeKind 受支持且已启用)\n */\n public async listSupportedProviders(\n podBaseUrl: string,\n authenticatedFetch: typeof fetch,\n runtimeKind: ExecutorType,\n webId?: string,\n ): Promise<ProviderConfig[]> {\n if (!this.isSupported(runtimeKind)) {\n return [];\n }\n\n return this.listEnabledProviders(podBaseUrl, authenticatedFetch, runtimeKind, webId);\n }\n\n /**\n * 根据 executorType 创建执行器\n */\n public createExecutor(executorType: ExecutorType, options: BaseExecutorOptions): IAgentExecutor {\n switch (executorType) {\n case 'claude':\n return new ClaudeExecutor(options);\n\n case 'codebuddy':\n return new CodeBuddyExecutor(options);\n\n default:\n throw new Error(\n `Unsupported executor type: ${executorType}. ` +\n `Only 'codebuddy' and 'claude' are supported because they have complete Agent SDKs.`\n );\n }\n }\n\n /**\n * 创建指定类型的执行器(直接使用凭证,不从 Pod 读取)\n *\n * 用于测试或已知凭证的场景。\n */\n public createDirect(\n executorType: ExecutorType,\n providerId: string,\n credential: AiCredential,\n aiConnection?: AIConnectionInvocationConfig,\n ): IAgentExecutor {\n return this.createExecutor(executorType, {\n providerId: executorType === 'claude' && aiConnection ? 'xpod' : providerId,\n credential: executorType === 'claude' && aiConnection\n ? { providerId: 'xpod', apiKey: '', baseUrl: aiConnection.baseUrl }\n : credential,\n ...(aiConnection ? { aiConnection } : {}),\n });\n }\n}\n\n/**\n * 默认工厂实例\n */\nexport const agentExecutorFactory = new AgentExecutorFactory();\n"]}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 所有 AI Agent 执行器的基类,提供公共逻辑。
5
5
  */
6
- import type { IAgentExecutor, ExecutorType, AuthType, AuthInfo, ExecutorConfig, ExecuteResult, ExecuteMessage, ChatMessage, BaseExecutorOptions, AiCredential } from './types';
6
+ import type { IAgentExecutor, ExecutorType, AuthType, AuthInfo, ExecutorConfig, ExecuteResult, ExecuteMessage, ChatMessage, BaseExecutorOptions, AiCredential, AIConnectionInvocationConfig } from './types';
7
7
  /**
8
8
  * Agent 执行器抽象基类
9
9
  *
@@ -25,6 +25,7 @@ export declare abstract class BaseAgentExecutor implements IAgentExecutor {
25
25
  protected readonly logger: import("global-logger-factory").Logger<unknown>;
26
26
  protected readonly credential: AiCredential;
27
27
  protected readonly baseUrl?: string;
28
+ protected readonly aiConnection?: AIConnectionInvocationConfig;
28
29
  /**
29
30
  * 构造函数
30
31
  * @param options 可选,如果不传则使用默认值(CLI 模式)
@@ -39,6 +39,7 @@ class BaseAgentExecutor {
39
39
  this.providerId = options?.providerId ?? 'default';
40
40
  this.credential = options?.credential ?? EMPTY_CREDENTIAL;
41
41
  this.baseUrl = options?.credential?.baseUrl ?? options?.providerConfig?.baseUrl;
42
+ this.aiConnection = options?.aiConnection;
42
43
  }
43
44
  /**
44
45
  * 执行任务并等待完成
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAgentExecutor.js","sourceRoot":"","sources":["../../src/agents/BaseAgentExecutor.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,iEAAqD;AAcrD;;GAEG;AACH,MAAM,gBAAgB,GAAiB;IACrC,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,EAAE;CACX,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAsB,iBAAiB;IAQrC;;;OAGG;IACH,YAAmB,OAA6B;QAR7B,WAAM,GAAG,IAAA,oCAAY,EAAC,IAAI,CAAC,CAAC;QAS7C,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,SAAS,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,gBAAgB,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC;IAClF,CAAC;IAsBD;;;;OAIG;IACI,KAAK,CAAC,cAAc,CAAC,MAAsB,EAAE,OAAe;QACjE,IAAI,MAAM,GAAkB;YAC1B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,oBAAoB;SAC5B,CAAC;QAEF,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACO,SAAS,CAAC,KAAc,EAAE,SAAiB;QACnD,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE;gBACL,YAAY,EAAE,CAAC;gBACf,gBAAgB,EAAE,CAAC;gBACnB,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACnC;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,mBAAmB,CAC3B,MAAc,EACd,YAAoB,EACpB,gBAAwB,EACxB,SAAiB;QAEjB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM;YACN,KAAK,EAAE;gBACL,YAAY;gBACZ,gBAAgB;gBAChB,WAAW,EAAE,YAAY,GAAG,gBAAgB;gBAC5C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACnC;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,CAAC,UAAU,CAAC,KAAc,EAAE,SAAiB;QACrD,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACzC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACnE,CAAC;CACF;AAxGD,8CAwGC","sourcesContent":["/**\n * Agent Executor 抽象基类\n *\n * 所有 AI Agent 执行器的基类,提供公共逻辑。\n */\n\nimport { getLoggerFor } from 'global-logger-factory';\nimport type {\n IAgentExecutor,\n ExecutorType,\n AuthType,\n AuthInfo,\n ExecutorConfig,\n ExecuteResult,\n ExecuteMessage,\n ChatMessage,\n BaseExecutorOptions,\n AiCredential,\n} from './types';\n\n/**\n * 默认空凭证(用于 CLI 模式)\n */\nconst EMPTY_CREDENTIAL: AiCredential = {\n providerId: '',\n apiKey: '',\n};\n\n/**\n * Agent 执行器抽象基类\n *\n * 提供公共实现:\n * - executeAndWait: 基于 execute 的便捷方法\n * - 日志记录\n * - 错误处理包装\n *\n * 子类需要实现:\n * - executorType: 执行器类型\n * - getAuthType(): 认证类型\n * - checkAuthentication(): 认证检查\n * - execute(): 流式执行\n * - chat(): 多轮对话\n */\nexport abstract class BaseAgentExecutor implements IAgentExecutor {\n public abstract readonly executorType: ExecutorType;\n public readonly providerId: string;\n\n protected readonly logger = getLoggerFor(this);\n protected readonly credential: AiCredential;\n protected readonly baseUrl?: string;\n\n /**\n * 构造函数\n * @param options 可选,如果不传则使用默认值(CLI 模式)\n */\n public constructor(options?: BaseExecutorOptions) {\n this.providerId = options?.providerId ?? 'default';\n this.credential = options?.credential ?? EMPTY_CREDENTIAL;\n this.baseUrl = options?.credential?.baseUrl ?? options?.providerConfig?.baseUrl;\n }\n\n /**\n * 获取认证类型\n */\n public abstract getAuthType(): AuthType;\n\n /**\n * 检查认证状态\n */\n public abstract checkAuthentication(): Promise<AuthInfo>;\n\n /**\n * 执行任务(流式)\n */\n public abstract execute(config: ExecutorConfig, message: string): AsyncGenerator<ExecuteMessage>;\n\n /**\n * 多轮对话\n */\n public abstract chat(config: ExecutorConfig, messages: ChatMessage[]): Promise<ExecuteResult>;\n\n /**\n * 执行任务并等待完成\n *\n * 基于 execute() 的便捷方法,消费整个流并返回最终结果。\n */\n public async executeAndWait(config: ExecutorConfig, message: string): Promise<ExecuteResult> {\n let result: ExecuteResult = {\n success: false,\n error: 'No result received',\n };\n\n for await (const msg of this.execute(config, message)) {\n if (msg.type === 'done') {\n result = msg.result;\n }\n }\n\n return result;\n }\n\n /**\n * 包装执行错误\n */\n protected wrapError(error: unknown, startTime: number): ExecuteResult {\n const errorMsg = error instanceof Error ? error.message : String(error);\n return {\n success: false,\n error: errorMsg,\n usage: {\n promptTokens: 0,\n completionTokens: 0,\n totalTokens: 0,\n durationMs: Date.now() - startTime,\n },\n };\n }\n\n /**\n * 创建成功结果\n */\n protected createSuccessResult(\n result: string,\n promptTokens: number,\n completionTokens: number,\n startTime: number,\n ): ExecuteResult {\n return {\n success: true,\n result,\n usage: {\n promptTokens,\n completionTokens,\n totalTokens: promptTokens + completionTokens,\n durationMs: Date.now() - startTime,\n },\n };\n }\n\n /**\n * 创建错误消息\n */\n protected *yieldError(error: unknown, startTime: number): Generator<ExecuteMessage> {\n const errorMsg = error instanceof Error ? error.message : String(error);\n yield { type: 'error', error: errorMsg };\n yield { type: 'done', result: this.wrapError(error, startTime) };\n }\n}\n"]}
1
+ {"version":3,"file":"BaseAgentExecutor.js","sourceRoot":"","sources":["../../src/agents/BaseAgentExecutor.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,iEAAqD;AAerD;;GAEG;AACH,MAAM,gBAAgB,GAAiB;IACrC,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,EAAE;CACX,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAsB,iBAAiB;IASrC;;;OAGG;IACH,YAAmB,OAA6B;QAT7B,WAAM,GAAG,IAAA,oCAAY,EAAC,IAAI,CAAC,CAAC;QAU7C,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,SAAS,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,gBAAgB,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC;QAChF,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;IAC5C,CAAC;IAsBD;;;;OAIG;IACI,KAAK,CAAC,cAAc,CAAC,MAAsB,EAAE,OAAe;QACjE,IAAI,MAAM,GAAkB;YAC1B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,oBAAoB;SAC5B,CAAC;QAEF,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACO,SAAS,CAAC,KAAc,EAAE,SAAiB;QACnD,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE;gBACL,YAAY,EAAE,CAAC;gBACf,gBAAgB,EAAE,CAAC;gBACnB,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACnC;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,mBAAmB,CAC3B,MAAc,EACd,YAAoB,EACpB,gBAAwB,EACxB,SAAiB;QAEjB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM;YACN,KAAK,EAAE;gBACL,YAAY;gBACZ,gBAAgB;gBAChB,WAAW,EAAE,YAAY,GAAG,gBAAgB;gBAC5C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACnC;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,CAAC,UAAU,CAAC,KAAc,EAAE,SAAiB;QACrD,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACzC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACnE,CAAC;CACF;AA1GD,8CA0GC","sourcesContent":["/**\n * Agent Executor 抽象基类\n *\n * 所有 AI Agent 执行器的基类,提供公共逻辑。\n */\n\nimport { getLoggerFor } from 'global-logger-factory';\nimport type {\n IAgentExecutor,\n ExecutorType,\n AuthType,\n AuthInfo,\n ExecutorConfig,\n ExecuteResult,\n ExecuteMessage,\n ChatMessage,\n BaseExecutorOptions,\n AiCredential,\n AIConnectionInvocationConfig,\n} from './types';\n\n/**\n * 默认空凭证(用于 CLI 模式)\n */\nconst EMPTY_CREDENTIAL: AiCredential = {\n providerId: '',\n apiKey: '',\n};\n\n/**\n * Agent 执行器抽象基类\n *\n * 提供公共实现:\n * - executeAndWait: 基于 execute 的便捷方法\n * - 日志记录\n * - 错误处理包装\n *\n * 子类需要实现:\n * - executorType: 执行器类型\n * - getAuthType(): 认证类型\n * - checkAuthentication(): 认证检查\n * - execute(): 流式执行\n * - chat(): 多轮对话\n */\nexport abstract class BaseAgentExecutor implements IAgentExecutor {\n public abstract readonly executorType: ExecutorType;\n public readonly providerId: string;\n\n protected readonly logger = getLoggerFor(this);\n protected readonly credential: AiCredential;\n protected readonly baseUrl?: string;\n protected readonly aiConnection?: AIConnectionInvocationConfig;\n\n /**\n * 构造函数\n * @param options 可选,如果不传则使用默认值(CLI 模式)\n */\n public constructor(options?: BaseExecutorOptions) {\n this.providerId = options?.providerId ?? 'default';\n this.credential = options?.credential ?? EMPTY_CREDENTIAL;\n this.baseUrl = options?.credential?.baseUrl ?? options?.providerConfig?.baseUrl;\n this.aiConnection = options?.aiConnection;\n }\n\n /**\n * 获取认证类型\n */\n public abstract getAuthType(): AuthType;\n\n /**\n * 检查认证状态\n */\n public abstract checkAuthentication(): Promise<AuthInfo>;\n\n /**\n * 执行任务(流式)\n */\n public abstract execute(config: ExecutorConfig, message: string): AsyncGenerator<ExecuteMessage>;\n\n /**\n * 多轮对话\n */\n public abstract chat(config: ExecutorConfig, messages: ChatMessage[]): Promise<ExecuteResult>;\n\n /**\n * 执行任务并等待完成\n *\n * 基于 execute() 的便捷方法,消费整个流并返回最终结果。\n */\n public async executeAndWait(config: ExecutorConfig, message: string): Promise<ExecuteResult> {\n let result: ExecuteResult = {\n success: false,\n error: 'No result received',\n };\n\n for await (const msg of this.execute(config, message)) {\n if (msg.type === 'done') {\n result = msg.result;\n }\n }\n\n return result;\n }\n\n /**\n * 包装执行错误\n */\n protected wrapError(error: unknown, startTime: number): ExecuteResult {\n const errorMsg = error instanceof Error ? error.message : String(error);\n return {\n success: false,\n error: errorMsg,\n usage: {\n promptTokens: 0,\n completionTokens: 0,\n totalTokens: 0,\n durationMs: Date.now() - startTime,\n },\n };\n }\n\n /**\n * 创建成功结果\n */\n protected createSuccessResult(\n result: string,\n promptTokens: number,\n completionTokens: number,\n startTime: number,\n ): ExecuteResult {\n return {\n success: true,\n result,\n usage: {\n promptTokens,\n completionTokens,\n totalTokens: promptTokens + completionTokens,\n durationMs: Date.now() - startTime,\n },\n };\n }\n\n /**\n * 创建错误消息\n */\n protected *yieldError(error: unknown, startTime: number): Generator<ExecuteMessage> {\n const errorMsg = error instanceof Error ? error.message : String(error);\n yield { type: 'error', error: errorMsg };\n yield { type: 'done', result: this.wrapError(error, startTime) };\n }\n}\n"]}
@@ -10,7 +10,8 @@
10
10
  * - 流式输出
11
11
  *
12
12
  * 注意:
13
- * - Claude Agent SDK 需要在环境变量中设置 ANTHROPIC_API_KEY
13
+ * - Claude Agent SDK 需要 Anthropic-compatible env,但值必须来自
14
+ * invocation-scoped Xpod AI Connection,不允许直接投递 Pod provider secret。
14
15
  * - SDK 会自动处理复杂的交互逻辑
15
16
  */
16
17
  import { BaseAgentExecutor } from './BaseAgentExecutor';
@@ -31,6 +32,7 @@ export declare class ClaudeExecutor extends BaseAgentExecutor {
31
32
  * 获取环境变量配置
32
33
  */
33
34
  private getEnvConfig;
35
+ private requireAiConnection;
34
36
  /**
35
37
  * 检查认证状态
36
38
  */