@undefineds.co/xpod 0.4.20 → 0.4.27

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 (1354) hide show
  1. package/config/cloud.json +54 -11
  2. package/config/components-ignore.json +13 -8
  3. package/config/local.json +32 -1
  4. package/config/xpod.base.json +271 -1
  5. package/config/xpod.json +17 -1
  6. package/dist/agent-directory/client/AgentDirectoryClient.d.ts +54 -0
  7. package/dist/agent-directory/client/AgentDirectoryClient.js +152 -0
  8. package/dist/agent-directory/client/index.d.ts +1 -0
  9. package/dist/agent-directory/client/index.js +18 -0
  10. package/dist/agent-directory/index.d.ts +1 -0
  11. package/dist/agent-directory/index.js +18 -0
  12. package/dist/agent-directory/protocol.d.ts +126 -0
  13. package/dist/agent-directory/protocol.js +13 -0
  14. package/dist/agent-directory/protocol.jsonld +296 -0
  15. package/dist/api/ApiServer.d.ts +9 -0
  16. package/dist/api/ApiServer.js +113 -16
  17. package/dist/api/ai-config/AiConfigStore.js +18 -6
  18. package/dist/api/ai-gateway/AiGatewayService.d.ts +9 -1
  19. package/dist/api/ai-gateway/AiGatewayService.js +22 -7
  20. package/dist/api/ai-gateway/CloudGatewayModelsClient.d.ts +3 -0
  21. package/dist/api/ai-gateway/CloudGatewayModelsClient.js +2 -0
  22. package/dist/api/ai-gateway/InvocationMetadata.d.ts +9 -0
  23. package/dist/api/ai-gateway/InvocationMetadata.js +40 -0
  24. package/dist/api/ai-gateway/auth/AiConnectionsInvocationKeyIssuer.d.ts +14 -0
  25. package/dist/api/ai-gateway/auth/AiConnectionsInvocationKeyIssuer.js +24 -5
  26. package/dist/api/ai-gateway/connect/AuthorizationCallbackPage.d.ts +4 -0
  27. package/dist/api/ai-gateway/connect/AuthorizationCallbackPage.js +75 -0
  28. package/dist/api/ai-gateway/connect/LoopbackAuthorizationCallbackReceiver.js +6 -5
  29. package/dist/api/ai-gateway/connect/index.d.ts +16 -1
  30. package/dist/api/ai-gateway/connect/index.js +119 -31
  31. package/dist/api/ai-gateway/models/ProviderModelsAdapter.js +5 -2
  32. package/dist/api/ai-gateway/pod/HostedPodRoute.d.ts +0 -7
  33. package/dist/api/ai-gateway/pod/HostedPodRoute.js +3 -71
  34. package/dist/api/ai-gateway/pod/OwnerPodAccess.d.ts +0 -1
  35. package/dist/api/ai-gateway/pod/OwnerPodAccess.js +59 -19
  36. package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.js +2 -0
  37. package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.js +4 -0
  38. package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.js +2 -1
  39. package/dist/api/ai-gateway/providers/ProviderRegistry.d.ts +2 -8
  40. package/dist/api/ai-gateway/providers/ProviderRegistry.js +21 -132
  41. package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.d.ts +3 -1
  42. package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.js +25 -4
  43. package/dist/api/ai-gateway/routing/ModelRouter.js +13 -0
  44. package/dist/api/auth/SolidSessionFactory.d.ts +2 -1
  45. package/dist/api/auth/SolidSessionFactory.js +33 -11
  46. package/dist/api/background-service-supervisor.d.ts +63 -0
  47. package/dist/api/background-service-supervisor.js +144 -0
  48. package/dist/api/chatkit/pod-store.d.ts +34 -4
  49. package/dist/api/chatkit/pod-store.js +315 -185
  50. package/dist/api/chatkit/store.d.ts +2 -1
  51. package/dist/api/chatkit/store.js +7 -8
  52. package/dist/api/container/common.js +100 -17
  53. package/dist/api/container/index.js +24 -8
  54. package/dist/api/container/local.js +6 -3
  55. package/dist/api/container/rdf.d.ts +4 -0
  56. package/dist/api/container/rdf.js +5 -1
  57. package/dist/api/container/routes.js +30 -0
  58. package/dist/api/container/types.d.ts +4 -2
  59. package/dist/api/handlers/AdminHandler.d.ts +4 -3
  60. package/dist/api/handlers/AdminHandler.js +27 -39
  61. package/dist/api/handlers/AiConfigHandler.d.ts +12 -0
  62. package/dist/api/handlers/AiConfigHandler.js +7 -5
  63. package/dist/api/handlers/AiGatewayHandler.d.ts +1 -0
  64. package/dist/api/handlers/AiGatewayHandler.js +57 -3
  65. package/dist/api/handlers/AiGatewayManagementHandler.js +17 -0
  66. package/dist/api/handlers/DeviceNotificationRuntime.d.ts +1 -1
  67. package/dist/api/handlers/DeviceNotificationRuntime.js +5 -8
  68. package/dist/api/handlers/InngestHandler.d.ts +7 -0
  69. package/dist/api/handlers/InngestHandler.js +45 -0
  70. package/dist/api/handlers/NetworkSettingsHandler.d.ts +31 -1
  71. package/dist/api/handlers/NetworkSettingsHandler.js +76 -3
  72. package/dist/api/handlers/PodAccessFailureResponse.d.ts +2 -1
  73. package/dist/api/handlers/PodAccessFailureResponse.js +4 -5
  74. package/dist/api/handlers/PodDeletionGrantHandler.d.ts +9 -0
  75. package/dist/api/handlers/PodDeletionGrantHandler.js +129 -0
  76. package/dist/api/handlers/PodManagementHandler.d.ts +2 -0
  77. package/dist/api/handlers/PodManagementHandler.js +137 -71
  78. package/dist/api/handlers/ProvisionHandler.d.ts +2 -0
  79. package/dist/api/handlers/ProvisionHandler.js +13 -1
  80. package/dist/api/handlers/ReachabilityHandler.js +5 -0
  81. package/dist/api/handlers/RunHandler.js +7 -27
  82. package/dist/api/handlers/ServiceInfoHandler.d.ts +10 -0
  83. package/dist/api/handlers/ServiceInfoHandler.js +32 -0
  84. package/dist/api/handlers/SettingsHandler.js +5 -0
  85. package/dist/api/handlers/TaskHandler.d.ts +41 -0
  86. package/dist/api/handlers/TaskHandler.js +200 -0
  87. package/dist/api/matrix/PodMatrixStore.js +16 -9
  88. package/dist/api/network/EndpointReachabilityProbe.d.ts +40 -0
  89. package/dist/api/network/EndpointReachabilityProbe.js +129 -0
  90. package/dist/api/network/NetworkEnvironmentConfigurationStore.js +1 -1
  91. package/dist/api/runs/AgentRuntimeTypes.d.ts +7 -0
  92. package/dist/api/runs/ConditionalResourceDocument.d.ts +20 -0
  93. package/dist/api/runs/ConditionalResourceDocument.js +100 -0
  94. package/dist/api/runs/EmbeddedInngestService.d.ts +80 -0
  95. package/dist/api/runs/EmbeddedInngestService.js +311 -37
  96. package/dist/api/runs/InngestRunExecutionBackend.d.ts +2 -2
  97. package/dist/api/runs/InngestRunExecutionBackend.js +5 -0
  98. package/dist/api/runs/ManagedRunWorker.d.ts +0 -3
  99. package/dist/api/runs/ManagedRunWorker.js +101 -88
  100. package/dist/api/runs/PiAgentRuntimeDriver.d.ts +24 -0
  101. package/dist/api/runs/PiAgentRuntimeDriver.js +274 -15
  102. package/dist/api/runs/PiAgentRuntimeWorker.js +12 -2
  103. package/dist/api/runs/PodRdfAccessScopeResolver.d.ts +16 -0
  104. package/dist/api/runs/PodRdfAccessScopeResolver.js +83 -0
  105. package/dist/api/runs/RdfRunContextRetriever.d.ts +1 -1
  106. package/dist/api/runs/RdfRunContextRetriever.js +5 -6
  107. package/dist/api/runs/RunApproval.d.ts +17 -0
  108. package/dist/api/runs/RunApproval.js +45 -0
  109. package/dist/api/runs/RunCancellation.d.ts +20 -0
  110. package/dist/api/runs/RunCancellation.js +83 -0
  111. package/dist/api/runs/RunExecutionBackend.d.ts +2 -0
  112. package/dist/api/runs/RunStateCenter.d.ts +0 -3
  113. package/dist/api/runs/RunStateCenter.js +130 -116
  114. package/dist/api/runs/RunStateMerge.d.ts +4 -0
  115. package/dist/api/runs/RunStateMerge.js +19 -0
  116. package/dist/api/runs/store.d.ts +7 -1
  117. package/dist/api/runs/store.js +32 -1
  118. package/dist/api/runtime.js +51 -21
  119. package/dist/api/service/provider-http-transport.d.ts +14 -1
  120. package/dist/api/service/provider-http-transport.js +173 -20
  121. package/dist/api/tasks/InngestTaskScheduler.d.ts +4 -4
  122. package/dist/api/tasks/TaskAgentBinding.d.ts +14 -0
  123. package/dist/api/tasks/TaskAgentBinding.js +25 -0
  124. package/dist/api/tasks/TaskAuthBinding.js +16 -2
  125. package/dist/api/tasks/TaskMaterializer.d.ts +5 -4
  126. package/dist/api/tasks/TaskMaterializer.js +174 -126
  127. package/dist/api/tasks/TaskResumeDiagnostics.d.ts +28 -0
  128. package/dist/api/tasks/TaskResumeDiagnostics.js +148 -0
  129. package/dist/api/tasks/TaskService.d.ts +28 -3
  130. package/dist/api/tasks/TaskService.js +142 -44
  131. package/dist/api/tasks/cron.d.ts +2 -0
  132. package/dist/api/tasks/cron.js +51 -0
  133. package/dist/api/tasks/schema.d.ts +3 -0
  134. package/dist/api/tasks/store.d.ts +10 -1
  135. package/dist/authentication/ConfiguredLoopbackDPoPWebIdExtractor.d.ts +6 -1
  136. package/dist/authentication/ConfiguredLoopbackDPoPWebIdExtractor.js +33 -9
  137. package/dist/authentication/ConfiguredLoopbackDPoPWebIdExtractor.jsonld +9 -1
  138. package/dist/authentication/SolidTokenCaches.js +44 -10
  139. package/dist/cli/agent-fs/args.d.ts +37 -0
  140. package/dist/cli/agent-fs/args.js +254 -0
  141. package/dist/cli/agent-fs/auth-proxy.d.ts +27 -0
  142. package/dist/cli/agent-fs/auth-proxy.js +208 -0
  143. package/dist/cli/agent-fs/install.d.ts +18 -0
  144. package/dist/cli/agent-fs/install.js +54 -0
  145. package/dist/cli/agent-fs/mount.d.ts +35 -0
  146. package/dist/cli/agent-fs/mount.js +111 -0
  147. package/dist/cli/agent-fs/native.d.ts +6 -0
  148. package/dist/cli/agent-fs/native.js +104 -0
  149. package/dist/cli/agent-fs/pending-store.d.ts +14 -0
  150. package/dist/cli/agent-fs/pending-store.js +37 -0
  151. package/dist/cli/agent-fs/pod-lower.d.ts +127 -0
  152. package/dist/cli/agent-fs/pod-lower.js +398 -0
  153. package/dist/cli/agent-fs/rg-entry.d.ts +6 -0
  154. package/dist/cli/agent-fs/rg-entry.js +132 -0
  155. package/dist/cli/agent-fs/roots.d.ts +18 -0
  156. package/dist/cli/agent-fs/roots.js +152 -0
  157. package/dist/cli/agent-fs/runner.d.ts +18 -0
  158. package/dist/cli/agent-fs/runner.js +145 -0
  159. package/dist/cli/agent-fs/session-view.d.ts +7 -0
  160. package/dist/cli/agent-fs/session-view.js +31 -0
  161. package/dist/cli/commands/agent-fs.d.ts +2 -0
  162. package/dist/cli/commands/agent-fs.js +491 -0
  163. package/dist/cli/commands/start.d.ts +11 -18
  164. package/dist/cli/commands/start.js +38 -37
  165. package/dist/cli/commands/stop.js +7 -1
  166. package/dist/cli/index.js +11 -2
  167. package/dist/cli/lib/auth-context.d.ts +6 -0
  168. package/dist/cli/lib/auth-context.js +1 -1
  169. package/dist/cli/lib/launcher.d.ts +2 -0
  170. package/dist/cli/lib/launcher.js +19 -0
  171. package/dist/components/components.jsonld +18 -0
  172. package/dist/components/context.jsonld +472 -6
  173. package/dist/dns/cloudflare/CloudflareDnsProvider.d.ts +10 -1
  174. package/dist/dns/cloudflare/CloudflareDnsProvider.js +59 -28
  175. package/dist/edge/EdgeNodeAgent.d.ts +5 -0
  176. package/dist/edge/EdgeNodeAgent.js +8 -0
  177. package/dist/edge/acme/AcmeCertificateManager.d.ts +24 -0
  178. package/dist/edge/acme/AcmeCertificateManager.js +75 -7
  179. package/dist/edge/acme/AcmeCertificateManager.jsonld +24 -0
  180. package/dist/edge/acme/CertificateRenewalScheduler.d.ts +67 -0
  181. package/dist/edge/acme/CertificateRenewalScheduler.js +116 -0
  182. package/dist/edge/frp/FrpcProcessManager.d.ts +16 -0
  183. package/dist/edge/frp/FrpcProcessManager.js +73 -13
  184. package/dist/edge/reachability/ManagedClientFetch.d.ts +2 -0
  185. package/dist/edge/reachability/ManagedClientFetch.js +24 -12
  186. package/dist/edge/reachability/ManagedClientFetch.jsonld +4 -0
  187. package/dist/edge/reachability/ManagedRouteSelector.d.ts +2 -0
  188. package/dist/edge/reachability/ManagedRouteSelector.js +8 -13
  189. package/dist/edge/reachability/ManagedRouteSelector.jsonld +4 -0
  190. package/dist/edge/reachability/P2PDataPlane.d.ts +67 -4
  191. package/dist/edge/reachability/P2PDataPlane.js +156 -15
  192. package/dist/edge/reachability/P2PDataPlane.jsonld +64 -0
  193. package/dist/edge/reachability/P2PDataPlaneCrypto.d.ts +42 -0
  194. package/dist/edge/reachability/P2PDataPlaneCrypto.js +113 -0
  195. package/dist/edge/reachability/P2PDataPlaneCrypto.jsonld +69 -0
  196. package/dist/edge/reachability/P2PSignalingClient.d.ts +2 -0
  197. package/dist/edge/reachability/P2PSignalingClient.js +1 -0
  198. package/dist/edge/reachability/P2PSignalingClient.jsonld +4 -0
  199. package/dist/edge/reachability/ReachabilitySessionService.d.ts +19 -0
  200. package/dist/edge/reachability/ReachabilitySessionService.js +122 -52
  201. package/dist/edge/reachability/ReachabilitySessionService.jsonld +26 -0
  202. package/dist/edge/reachability/RouteValidation.d.ts +29 -0
  203. package/dist/edge/reachability/RouteValidation.js +58 -0
  204. package/dist/edge/reachability/TcpP2PDataPlaneTransport.d.ts +28 -4
  205. package/dist/edge/reachability/TcpP2PDataPlaneTransport.js +540 -32
  206. package/dist/edge/reachability/TcpP2PDataPlaneTransport.jsonld +51 -0
  207. package/dist/edge/reachability/TcpP2PSignalingSession.d.ts +7 -0
  208. package/dist/edge/reachability/TcpP2PSignalingSession.js +25 -1
  209. package/dist/edge/reachability/TcpP2PSignalingSession.jsonld +12 -0
  210. package/dist/edge/reachability/index.d.ts +1 -0
  211. package/dist/edge/reachability/index.js +1 -0
  212. package/dist/edge/reachability/types.d.ts +8 -0
  213. package/dist/edge/reachability/types.jsonld +8 -0
  214. package/dist/http/DeviceNotificationWebSocketServer.d.ts +5 -1
  215. package/dist/http/DeviceNotificationWebSocketServer.js +36 -8
  216. package/dist/http/DeviceNotificationWebSocketServer.jsonld +16 -0
  217. package/dist/http/HeadSafeResponseWriter.d.ts +9 -0
  218. package/dist/http/HeadSafeResponseWriter.js +22 -0
  219. package/dist/http/HeadSafeResponseWriter.jsonld +39 -0
  220. package/dist/http/LocalPodDeletionHttpHandler.d.ts +21 -0
  221. package/dist/http/LocalPodDeletionHttpHandler.js +125 -0
  222. package/dist/http/LocalPodDeletionHttpHandler.jsonld +115 -0
  223. package/dist/http/PodDeletionMutationGuard.d.ts +9 -0
  224. package/dist/http/PodDeletionMutationGuard.js +29 -0
  225. package/dist/http/PodDeletionMutationGuard.jsonld +58 -0
  226. package/dist/http/PodMutationLockingHttpHandler.d.ts +14 -0
  227. package/dist/http/PodMutationLockingHttpHandler.js +93 -0
  228. package/dist/http/PodMutationLockingHttpHandler.jsonld +99 -0
  229. package/dist/http/StoragePutOperationHandler.d.ts +7 -0
  230. package/dist/http/StoragePutOperationHandler.js +27 -0
  231. package/dist/http/StoragePutOperationHandler.jsonld +57 -0
  232. package/dist/http/SubgraphSparqlHttpHandler.d.ts +3 -1
  233. package/dist/http/SubgraphSparqlHttpHandler.js +107 -33
  234. package/dist/http/SubgraphSparqlHttpHandler.jsonld +19 -0
  235. package/dist/http/agent-directory/AgentDirectoryHttpHandler.d.ts +87 -0
  236. package/dist/http/agent-directory/AgentDirectoryHttpHandler.js +717 -0
  237. package/dist/http/agent-directory/AgentDirectoryHttpHandler.jsonld +302 -0
  238. package/dist/http/agent-directory/index.d.ts +1 -0
  239. package/dist/http/agent-directory/index.js +18 -0
  240. package/dist/identity/CloudProfilePreparationHandler.d.ts +7 -0
  241. package/dist/identity/CloudProfilePreparationHandler.js +24 -0
  242. package/dist/identity/CloudProfilePreparationHandler.jsonld +42 -0
  243. package/dist/identity/PodDeletionInteractionHandler.d.ts +12 -0
  244. package/dist/identity/PodDeletionInteractionHandler.js +35 -0
  245. package/dist/identity/PodDeletionInteractionHandler.jsonld +73 -0
  246. package/dist/identity/PodDeletionInventoryHandler.d.ts +11 -0
  247. package/dist/identity/PodDeletionInventoryHandler.js +40 -0
  248. package/dist/identity/PodDeletionInventoryHandler.jsonld +69 -0
  249. package/dist/identity/ValidatingIdentityProviderHttpHandler.js +29 -10
  250. package/dist/identity/drizzle/EdgeNodeRepository.d.ts +17 -0
  251. package/dist/identity/drizzle/EdgeNodeRepository.js +61 -0
  252. package/dist/identity/drizzle/PodDeletionOperationRepository.d.ts +64 -0
  253. package/dist/identity/drizzle/PodDeletionOperationRepository.js +241 -0
  254. package/dist/identity/drizzle/db.d.ts +8 -0
  255. package/dist/identity/drizzle/db.js +17 -0
  256. package/dist/index.d.ts +18 -1
  257. package/dist/index.js +28 -3
  258. package/dist/logging/log-secrets.d.ts +2 -0
  259. package/dist/logging/log-secrets.js +35 -0
  260. package/dist/logging/normalize-log.d.ts +5 -0
  261. package/dist/logging/normalize-log.js +12 -0
  262. package/dist/main.js +2 -0
  263. package/dist/pods/ReservedSuffixIdentifierGenerator.js +2 -1
  264. package/dist/provision/CloudProfileCreator.d.ts +35 -0
  265. package/dist/provision/CloudProfileCreator.js +229 -0
  266. package/dist/provision/CloudProfileCreator.jsonld +186 -0
  267. package/dist/provision/LocalPodProvisioningService.d.ts +2 -0
  268. package/dist/provision/LocalPodProvisioningService.js +76 -32
  269. package/dist/provision/LocalPodProvisioningService.jsonld +8 -0
  270. package/dist/provision/PodDeletionRoute.d.ts +2 -0
  271. package/dist/provision/PodDeletionRoute.js +12 -0
  272. package/dist/provision/PodMutationLock.d.ts +5 -0
  273. package/dist/provision/PodMutationLock.js +13 -0
  274. package/dist/provision/ProvisionPodCreator.d.ts +9 -13
  275. package/dist/provision/ProvisionPodCreator.js +48 -17
  276. package/dist/provision/ProvisionPodCreator.jsonld +31 -1
  277. package/dist/provision/ProvisionPodStore.js +19 -5
  278. package/dist/provision/ProvisionReceiptCodec.d.ts +4 -0
  279. package/dist/provision/ProvisionReceiptCodec.js +2 -0
  280. package/dist/runtime/GatewayAdminProxyAuth.d.ts +2 -2
  281. package/dist/runtime/Proxy.d.ts +2 -0
  282. package/dist/runtime/Proxy.js +55 -22
  283. package/dist/runtime/XpodRuntime.js +20 -4
  284. package/dist/runtime/bootstrap.js +1 -0
  285. package/dist/runtime/compat/ensureSupportedBun.d.ts +2 -0
  286. package/dist/runtime/compat/ensureSupportedBun.js +23 -0
  287. package/dist/runtime/css-process.d.ts +3 -3
  288. package/dist/runtime/gateway-locator-secret.js +9 -135
  289. package/dist/runtime/host/node/NodeRuntimeHost.d.ts +3 -2
  290. package/dist/runtime/host/node/NodeRuntimeHost.js +37 -12
  291. package/dist/runtime/host/types.d.ts +8 -1
  292. package/dist/runtime/index.d.ts +7 -1
  293. package/dist/runtime/index.js +21 -1
  294. package/dist/runtime/ingress-occupant.d.ts +39 -0
  295. package/dist/runtime/ingress-occupant.js +111 -0
  296. package/dist/runtime/ingress-port.d.ts +89 -0
  297. package/dist/runtime/ingress-port.js +165 -0
  298. package/dist/runtime/lifecycle.js +22 -5
  299. package/dist/runtime/local-secret-file.d.ts +9 -0
  300. package/dist/runtime/local-secret-file.js +152 -0
  301. package/dist/runtime/port-finder.d.ts +23 -3
  302. package/dist/runtime/port-finder.js +43 -20
  303. package/dist/runtime/port-reservations.d.ts +86 -0
  304. package/dist/runtime/port-reservations.js +183 -0
  305. package/dist/runtime/runner/node/CommunitySolidServerCssRunner.js +2 -0
  306. package/dist/runtime/runtime-types.d.ts +2 -0
  307. package/dist/runtime/safe-env.d.ts +1 -1
  308. package/dist/runtime/secret-cell-root-key.d.ts +7 -0
  309. package/dist/runtime/secret-cell-root-key.js +38 -0
  310. package/dist/runtime/socket-http.js +5 -1
  311. package/dist/runtime/socket-transport.js +3 -4
  312. package/dist/runtime/user-env.d.ts +2 -2
  313. package/dist/service/PodDataDeletionService.d.ts +28 -0
  314. package/dist/service/PodDataDeletionService.js +126 -0
  315. package/dist/service/PodDataDeletionService.jsonld +111 -0
  316. package/dist/service/PodDeletionLifecycleService.d.ts +39 -0
  317. package/dist/service/PodDeletionLifecycleService.js +262 -0
  318. package/dist/service/PodDeletionLifecycleService.jsonld +210 -0
  319. package/dist/shared/xpod-route-policy.d.ts +3 -1
  320. package/dist/shared/xpod-route-policy.js +19 -1
  321. package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.js +1 -1
  322. package/dist/solidfs/PodSolidFsHttpClient.d.ts +5 -5
  323. package/dist/solidfs/PodSolidFsHttpClient.js +14 -55
  324. package/dist/solidfs/PodSolidFsHydrator.d.ts +2 -4
  325. package/dist/solidfs/PodSolidFsHydrator.js +6 -6
  326. package/dist/solidfs/PodSolidFsSyncer.d.ts +10 -8
  327. package/dist/solidfs/PodSolidFsSyncer.js +20 -16
  328. package/dist/solidfs/RdfIndexSolidFsSyncer.d.ts +3 -0
  329. package/dist/solidfs/RdfIndexSolidFsSyncer.js +4 -3
  330. package/dist/solidfs/SolidFsSyncJournal.d.ts +11 -0
  331. package/dist/solidfs/SolidFsSyncJournal.js +130 -21
  332. package/dist/solidfs/SolidFsSyncJournal.jsonld +4 -0
  333. package/dist/storage/HierarchyLockingResourceStore.d.ts +17 -0
  334. package/dist/storage/HierarchyLockingResourceStore.js +147 -0
  335. package/dist/storage/HierarchyLockingResourceStore.jsonld +104 -0
  336. package/dist/storage/RepresentationPartialConvertingStore.js +11 -2
  337. package/dist/storage/SparqlUpdateResourceStore.js +5 -0
  338. package/dist/storage/StorageVersion.d.ts +16 -0
  339. package/dist/storage/StorageVersion.js +36 -0
  340. package/dist/storage/accessors/MinioDataAccessor.js +2 -1
  341. package/dist/storage/accessors/MixDataAccessor.d.ts +7 -0
  342. package/dist/storage/accessors/MixDataAccessor.js +99 -10
  343. package/dist/storage/accessors/MixDataAccessor.jsonld +8 -0
  344. package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +3 -0
  345. package/dist/storage/accessors/SolidRdfDataAccessor.js +30 -7
  346. package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +8 -0
  347. package/dist/storage/conditions/StorageETagHandler.d.ts +9 -0
  348. package/dist/storage/conditions/StorageETagHandler.js +41 -0
  349. package/dist/storage/conditions/StorageETagHandler.jsonld +34 -0
  350. package/dist/storage/locking/PodLifecycleLocker.d.ts +8 -0
  351. package/dist/storage/locking/PodLifecycleLocker.js +17 -0
  352. package/dist/storage/locking/PodLifecycleLocker.jsonld +47 -0
  353. package/dist/storage/locking/PodLifecycleRedisLocker.d.ts +19 -0
  354. package/dist/storage/locking/PodLifecycleRedisLocker.js +52 -0
  355. package/dist/storage/locking/PodLifecycleRedisLocker.jsonld +156 -0
  356. package/dist/storage/locking/UrlAwareRedisLocker.d.ts +21 -9
  357. package/dist/storage/locking/UrlAwareRedisLocker.js +80 -121
  358. package/dist/storage/locking/UrlAwareRedisLocker.jsonld +71 -21
  359. package/dist/storage/rdf/PostgresRdfEngine.d.ts +2 -1
  360. package/dist/storage/rdf/PostgresRdfEngine.js +3 -0
  361. package/dist/storage/rdf/PostgresRdfEngine.jsonld +4 -0
  362. package/dist/storage/rdf/RdfAccessScope.js +23 -18
  363. package/dist/supervisor/Supervisor.d.ts +29 -5
  364. package/dist/supervisor/Supervisor.js +137 -27
  365. package/dist/supervisor/types.d.ts +14 -1
  366. package/dist/test-utils/local-managed-client-p2p-e2e-smoke.js +15 -0
  367. package/dist/tunnel/LocalTunnelProvider.d.ts +7 -0
  368. package/dist/tunnel/LocalTunnelProvider.js +11 -3
  369. package/dist/tunnel/LocalTunnelProvider.jsonld +39 -0
  370. package/dist/tunnel/NgrokTunnelProvider.d.ts +2 -0
  371. package/dist/tunnel/NgrokTunnelProvider.js +3 -1
  372. package/dist/tunnel/NgrokTunnelProvider.jsonld +39 -0
  373. package/dist/tunnel/SakuraFrpTunnelProvider.d.ts +3 -1
  374. package/dist/tunnel/SakuraFrpTunnelProvider.js +7 -3
  375. package/dist/tunnel/TunnelClientManager.d.ts +73 -0
  376. package/dist/tunnel/TunnelClientManager.js +181 -0
  377. package/dist/tunnel/TunnelClientResolver.d.ts +56 -0
  378. package/dist/tunnel/TunnelClientResolver.js +135 -0
  379. package/dist/tunnel/TunnelDeclaredOrigin.d.ts +78 -0
  380. package/dist/tunnel/TunnelDeclaredOrigin.js +185 -0
  381. package/dist/tunnel/TunnelLifecycle.d.ts +9 -1
  382. package/dist/tunnel/TunnelLifecycle.js +24 -3
  383. package/dist/tunnel/TunnelProviderCatalog.d.ts +32 -0
  384. package/dist/tunnel/TunnelProviderCatalog.js +43 -0
  385. package/dist/util/identifiers/ClusterIdentifierStrategy.d.ts +1 -0
  386. package/dist/util/identifiers/ClusterIdentifierStrategy.js +3 -3
  387. package/dist/util/task-model-diagnostics.d.ts +67 -0
  388. package/dist/util/task-model-diagnostics.js +118 -0
  389. package/node_modules/@inrupt/solid-client-authn-core/dist/authenticatedFetch/dpopUtils.d.ts +3 -1
  390. package/node_modules/@inrupt/solid-client-authn-core/dist/index.js +85 -58
  391. package/node_modules/@inrupt/solid-client-authn-core/dist/index.mjs +86 -59
  392. package/node_modules/@undefineds.co/ai-connections/dist/AiApiKeyPool.d.ts +4 -3
  393. package/node_modules/@undefineds.co/ai-connections/dist/AiApiKeyPool.js +3 -2
  394. package/node_modules/@undefineds.co/ai-connections/dist/AiAuthorizationActions.d.ts +1 -1
  395. package/node_modules/@undefineds.co/ai-connections/dist/AiClientConfigurationSection.d.ts +2 -1
  396. package/node_modules/@undefineds.co/ai-connections/dist/AiClientConfigurationSection.js +39 -10
  397. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectDialog.d.ts +6 -5
  398. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectDialog.js +9 -8
  399. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsHeader.d.ts +1 -1
  400. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsHeader.js +4 -4
  401. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsList.d.ts +1 -1
  402. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsList.js +7 -6
  403. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsMain.d.ts +1 -1
  404. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsMain.js +2 -2
  405. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsMainHeader.d.ts +1 -1
  406. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsPanel.d.ts +6 -5
  407. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsPanel.js +10 -8
  408. package/node_modules/@undefineds.co/ai-connections/dist/AiCredentialPoolSection.d.ts +4 -3
  409. package/node_modules/@undefineds.co/ai-connections/dist/AiCredentialPoolSection.js +20 -45
  410. package/node_modules/@undefineds.co/ai-connections/dist/AiCredentialRow.d.ts +5 -3
  411. package/node_modules/@undefineds.co/ai-connections/dist/AiCredentialRow.js +16 -4
  412. package/node_modules/@undefineds.co/ai-connections/dist/AiCustomProviderDialog.d.ts +1 -1
  413. package/node_modules/@undefineds.co/ai-connections/dist/AiCustomProviderDialog.js +2 -2
  414. package/node_modules/@undefineds.co/ai-connections/dist/AiEndpointList.d.ts +1 -1
  415. package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeyRow.d.ts +12 -3
  416. package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeyRow.js +14 -5
  417. package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeysSection.d.ts +5 -4
  418. package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeysSection.js +140 -32
  419. package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayModelsSection.d.ts +1 -1
  420. package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayModelsSection.js +4 -4
  421. package/node_modules/@undefineds.co/ai-connections/dist/AiModelCatalog.d.ts +11 -5
  422. package/node_modules/@undefineds.co/ai-connections/dist/AiModelCatalog.js +16 -7
  423. package/node_modules/@undefineds.co/ai-connections/dist/AiOfferingDetails.d.ts +1 -1
  424. package/node_modules/@undefineds.co/ai-connections/dist/AiOfferingDetails.js +2 -4
  425. package/node_modules/@undefineds.co/ai-connections/dist/AiProviderCard.d.ts +5 -4
  426. package/node_modules/@undefineds.co/ai-connections/dist/AiProviderCard.js +14 -9
  427. package/node_modules/@undefineds.co/ai-connections/dist/AiProviderHeader.d.ts +2 -1
  428. package/node_modules/@undefineds.co/ai-connections/dist/AiProviderHeader.js +2 -2
  429. package/node_modules/@undefineds.co/ai-connections/dist/AiQuotaCard.d.ts +1 -1
  430. package/node_modules/@undefineds.co/ai-connections/dist/AiQuotaCard.js +2 -2
  431. package/node_modules/@undefineds.co/ai-connections/dist/AiSortableCredentialList.d.ts +1 -1
  432. package/node_modules/@undefineds.co/ai-connections/dist/AiSortableCredentialList.js +59 -59
  433. package/node_modules/@undefineds.co/ai-connections/dist/authorization-methods.d.ts +1 -1
  434. package/node_modules/@undefineds.co/ai-connections/dist/client-visuals.d.ts +1 -1
  435. package/node_modules/@undefineds.co/ai-connections/dist/collection-runtime.d.ts +2 -2
  436. package/node_modules/@undefineds.co/ai-connections/dist/collection-runtime.js +2 -0
  437. package/node_modules/@undefineds.co/ai-connections/dist/collections.d.ts +2 -2
  438. package/node_modules/@undefineds.co/ai-connections/dist/collections.js +16 -8
  439. package/node_modules/@undefineds.co/ai-connections/dist/contract/ai-connections-client.d.ts +7 -6
  440. package/node_modules/@undefineds.co/ai-connections/dist/contract/ai-connections-client.js +1 -0
  441. package/node_modules/@undefineds.co/ai-connections/dist/contract/client/gateway-model-roles.d.ts +11 -0
  442. package/node_modules/@undefineds.co/ai-connections/dist/contract/client/gateway-model-roles.js +11 -0
  443. package/node_modules/@undefineds.co/ai-connections/dist/contract/client/normalize.d.ts +2 -1
  444. package/node_modules/@undefineds.co/ai-connections/dist/contract/client/normalize.js +21 -15
  445. package/node_modules/@undefineds.co/ai-connections/dist/contract/client/request.d.ts +1 -1
  446. package/node_modules/@undefineds.co/ai-connections/dist/contract/client/request.js +10 -2
  447. package/node_modules/@undefineds.co/ai-connections/dist/contract/client/types.d.ts +18 -1
  448. package/node_modules/@undefineds.co/ai-connections/dist/contract/client-config/base-adapter.d.ts +3 -3
  449. package/node_modules/@undefineds.co/ai-connections/dist/contract/client-config/codex.d.ts +2 -2
  450. package/node_modules/@undefineds.co/ai-connections/dist/contract/client-config/index.cjs +42 -40
  451. package/node_modules/@undefineds.co/ai-connections/dist/contract/client-config/index.d.ts +6 -6
  452. package/node_modules/@undefineds.co/ai-connections/dist/contract/client-config/json-env-adapter.d.ts +2 -2
  453. package/node_modules/@undefineds.co/ai-connections/dist/contract/client-config/pi.d.ts +2 -2
  454. package/node_modules/@undefineds.co/ai-connections/dist/contract/client-config/transaction.d.ts +1 -1
  455. package/node_modules/@undefineds.co/ai-connections/dist/contract/index.d.ts +1 -1
  456. package/node_modules/@undefineds.co/ai-connections/dist/contract/provider-catalog.cjs +28 -15
  457. package/node_modules/@undefineds.co/ai-connections/dist/contract/provider-catalog.d.ts +4 -4
  458. package/node_modules/@undefineds.co/ai-connections/dist/contract/provider-catalog.js +18 -7
  459. package/node_modules/@undefineds.co/ai-connections/dist/controller.d.ts +5 -4
  460. package/node_modules/@undefineds.co/ai-connections/dist/controller.js +24 -9
  461. package/node_modules/@undefineds.co/ai-connections/dist/credential-labels.d.ts +5 -1
  462. package/node_modules/@undefineds.co/ai-connections/dist/credential-labels.js +24 -0
  463. package/node_modules/@undefineds.co/ai-connections/dist/display-wording.d.ts +2 -7
  464. package/node_modules/@undefineds.co/ai-connections/dist/display-wording.js +4 -25
  465. package/node_modules/@undefineds.co/ai-connections/dist/error-wording.d.ts +1 -1
  466. package/node_modules/@undefineds.co/ai-connections/dist/error-wording.js +5 -1
  467. package/node_modules/@undefineds.co/ai-connections/dist/gateway-endpoints.d.ts +1 -1
  468. package/node_modules/@undefineds.co/ai-connections/dist/index.d.ts +25 -25
  469. package/node_modules/@undefineds.co/ai-connections/dist/offering-endpoints.d.ts +1 -1
  470. package/node_modules/@undefineds.co/ai-connections/dist/offering-label.d.ts +3 -1
  471. package/node_modules/@undefineds.co/ai-connections/dist/offering-label.js +7 -1
  472. package/node_modules/@undefineds.co/ai-connections/dist/provider-visuals.d.ts +4 -3
  473. package/node_modules/@undefineds.co/ai-connections/dist/provider-visuals.js +3 -2
  474. package/node_modules/@undefineds.co/ai-connections/dist/useAiConnectDialog.d.ts +3 -2
  475. package/node_modules/@undefineds.co/ai-connections/dist/useAiConnectDialog.js +18 -5
  476. package/node_modules/@undefineds.co/ai-connections/package.json +2 -2
  477. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js +3 -0
  478. package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.js +2 -3
  479. package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/builder.js +2 -5
  480. package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.d.ts +2 -0
  481. package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.js +12 -3
  482. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js +3 -0
  483. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.js +2 -3
  484. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/builder.js +2 -5
  485. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.js +11 -3
  486. package/node_modules/@undefineds.co/drizzle-solid/package.json +1 -1
  487. package/node_modules/@undefineds.co/extension-sdk/dist/index.d.ts +6 -5
  488. package/node_modules/@undefineds.co/extension-sdk/dist/index.js +1 -0
  489. package/node_modules/@undefineds.co/extension-sdk/dist/layout.d.ts +39 -0
  490. package/node_modules/@undefineds.co/extension-sdk/dist/layout.js +40 -0
  491. package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.d.ts +13 -1
  492. package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.js +11 -3
  493. package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.d.ts +29 -5
  494. package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.js +77 -13
  495. package/node_modules/@undefineds.co/extension-sdk/dist/react.d.ts +5 -5
  496. package/node_modules/@undefineds.co/extension-sdk/dist/shell-state.d.ts +55 -0
  497. package/node_modules/@undefineds.co/extension-sdk/dist/shell-state.js +1 -0
  498. package/node_modules/@undefineds.co/extension-sdk/dist/solid-permissions.d.ts +1 -1
  499. package/node_modules/@undefineds.co/extension-sdk/dist/testing.d.ts +1 -1
  500. package/node_modules/@undefineds.co/extension-sdk/dist/web.d.ts +7 -6
  501. package/node_modules/@undefineds.co/extension-sdk/package.json +2 -2
  502. package/node_modules/@undefineds.co/extensions/dist-cjs/adapters/langchain.js +49 -0
  503. package/node_modules/@undefineds.co/extensions/dist-cjs/adapters/llamaindex.js +54 -0
  504. package/node_modules/@undefineds.co/extensions/dist-cjs/index.js +22 -0
  505. package/node_modules/@undefineds.co/extensions/dist-cjs/package.json +3 -0
  506. package/node_modules/@undefineds.co/extensions/dist-cjs/paddleocr.js +304 -0
  507. package/node_modules/@undefineds.co/extensions/dist-cjs/reader.js +44 -0
  508. package/node_modules/@undefineds.co/extensions/dist-cjs/registry.js +99 -0
  509. package/node_modules/@undefineds.co/extensions/dist-cjs/types.js +2 -0
  510. package/node_modules/@undefineds.co/models/dist/approval.repository.d.ts +20 -0
  511. package/node_modules/@undefineds.co/models/dist/approval.repository.js +81 -0
  512. package/node_modules/@undefineds.co/models/dist/credential.schema.d.ts +12 -0
  513. package/node_modules/@undefineds.co/models/dist/credential.schema.js +5 -0
  514. package/node_modules/@undefineds.co/models/dist/index.d.ts +1 -1
  515. package/node_modules/@undefineds.co/models/dist/index.js +1 -1
  516. package/node_modules/@undefineds.co/models/dist/namespaces.js +3 -0
  517. package/node_modules/@undefineds.co/models/dist/pod-storage-descriptor.d.ts +50 -0
  518. package/node_modules/@undefineds.co/models/dist/pod-storage-descriptor.js +16 -1
  519. package/node_modules/@undefineds.co/models/dist/schema.d.ts +10 -0
  520. package/node_modules/@undefineds.co/models/dist/task.schema.d.ts +6 -0
  521. package/node_modules/@undefineds.co/models/dist/task.schema.js +3 -0
  522. package/node_modules/@undefineds.co/models/package.json +2 -2
  523. package/node_modules/@undefineds.co/pod-collections/dist/index.cjs +93 -46
  524. package/node_modules/@undefineds.co/pod-collections/dist/mapping.d.ts +16 -1
  525. package/node_modules/@undefineds.co/pod-collections/dist/mapping.js +51 -0
  526. package/node_modules/@undefineds.co/pod-collections/dist/mutations.js +14 -18
  527. package/node_modules/@undefineds.co/pod-collections/package.json +2 -2
  528. package/node_modules/@undefineds.co/shared-ui/dist/auth-surface.js +6 -6
  529. package/node_modules/@undefineds.co/shared-ui/dist/badge.d.ts +1 -1
  530. package/node_modules/@undefineds.co/shared-ui/dist/badge.js +2 -0
  531. package/node_modules/@undefineds.co/shared-ui/dist/brand-info.d.ts +9 -0
  532. package/node_modules/@undefineds.co/shared-ui/dist/brand-info.js +19 -0
  533. package/node_modules/@undefineds.co/shared-ui/dist/button.js +1 -1
  534. package/node_modules/@undefineds.co/shared-ui/dist/checkbox.d.ts +6 -0
  535. package/node_modules/@undefineds.co/shared-ui/dist/checkbox.js +16 -0
  536. package/node_modules/@undefineds.co/shared-ui/dist/confirmation-dialog.d.ts +16 -0
  537. package/node_modules/@undefineds.co/shared-ui/dist/confirmation-dialog.js +22 -0
  538. package/node_modules/@undefineds.co/shared-ui/dist/dialog.d.ts +3 -0
  539. package/node_modules/@undefineds.co/shared-ui/dist/dialog.js +5 -5
  540. package/node_modules/@undefineds.co/shared-ui/dist/email-input.d.ts +9 -0
  541. package/node_modules/@undefineds.co/shared-ui/dist/email-input.js +42 -0
  542. package/node_modules/@undefineds.co/shared-ui/dist/empty-state.d.ts +8 -0
  543. package/node_modules/@undefineds.co/shared-ui/dist/empty-state.js +6 -0
  544. package/node_modules/@undefineds.co/shared-ui/dist/focus.d.ts +3 -4
  545. package/node_modules/@undefineds.co/shared-ui/dist/focus.js +3 -4
  546. package/node_modules/@undefineds.co/shared-ui/dist/form-control.d.ts +2 -0
  547. package/node_modules/@undefineds.co/shared-ui/dist/form-control.js +3 -0
  548. package/node_modules/@undefineds.co/shared-ui/dist/form-field.d.ts +15 -0
  549. package/node_modules/@undefineds.co/shared-ui/dist/form-field.js +11 -0
  550. package/node_modules/@undefineds.co/shared-ui/dist/index.d.ts +45 -28
  551. package/node_modules/@undefineds.co/shared-ui/dist/index.js +17 -0
  552. package/node_modules/@undefineds.co/shared-ui/dist/input.js +2 -2
  553. package/node_modules/@undefineds.co/shared-ui/dist/list.d.ts +32 -0
  554. package/node_modules/@undefineds.co/shared-ui/dist/list.js +24 -0
  555. package/node_modules/@undefineds.co/shared-ui/dist/login/LocalReachabilitySummary.d.ts +1 -1
  556. package/node_modules/@undefineds.co/shared-ui/dist/login/LoginModal.d.ts +1 -1
  557. package/node_modules/@undefineds.co/shared-ui/dist/login/LoginView.d.ts +1 -1
  558. package/node_modules/@undefineds.co/shared-ui/dist/login/error-messages.d.ts +1 -1
  559. package/node_modules/@undefineds.co/shared-ui/dist/login/index.d.ts +5 -5
  560. package/node_modules/@undefineds.co/shared-ui/dist/login/presentation.d.ts +1 -1
  561. package/node_modules/@undefineds.co/shared-ui/dist/login/provider-model.d.ts +1 -1
  562. package/node_modules/@undefineds.co/shared-ui/dist/login/types.d.ts +3 -3
  563. package/node_modules/@undefineds.co/shared-ui/dist/login.d.ts +1 -1
  564. package/node_modules/@undefineds.co/shared-ui/dist/login.js +1 -1
  565. package/node_modules/@undefineds.co/shared-ui/dist/meter.d.ts +24 -0
  566. package/node_modules/@undefineds.co/shared-ui/dist/meter.js +22 -0
  567. package/node_modules/@undefineds.co/shared-ui/dist/native-select.d.ts +5 -0
  568. package/node_modules/@undefineds.co/shared-ui/dist/native-select.js +7 -0
  569. package/node_modules/@undefineds.co/shared-ui/dist/notice.d.ts +25 -0
  570. package/node_modules/@undefineds.co/shared-ui/dist/notice.js +32 -0
  571. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/AccountSections.d.ts +12 -5
  572. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/AccountSections.js +8 -2
  573. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/ConsentView.d.ts +4 -2
  574. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/ConsentView.js +3 -3
  575. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/DeviceDialogs.d.ts +3 -3
  576. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/IdpChrome.d.ts +1 -1
  577. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/IdpChrome.js +1 -1
  578. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/IdpViews.d.ts +1 -1
  579. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/IdpViews.js +5 -4
  580. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/NetworkPanel.d.ts +1 -1
  581. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/PodSignIn.d.ts +5 -3
  582. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/PodSignIn.js +2 -2
  583. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/PodSignInFrame.d.ts +1 -1
  584. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/PodSignInFrame.js +1 -1
  585. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/StorageBadge.d.ts +1 -1
  586. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/account-parts.d.ts +2 -2
  587. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/copy.d.ts +5 -0
  588. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/copy.js +10 -0
  589. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/index.d.ts +15 -15
  590. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/parts.d.ts +9 -18
  591. package/node_modules/@undefineds.co/shared-ui/dist/pod-sign-in/parts.js +11 -13
  592. package/node_modules/@undefineds.co/shared-ui/dist/search-input.d.ts +5 -0
  593. package/node_modules/@undefineds.co/shared-ui/dist/search-input.js +8 -0
  594. package/node_modules/@undefineds.co/shared-ui/dist/section-header.d.ts +13 -0
  595. package/node_modules/@undefineds.co/shared-ui/dist/section-header.js +10 -0
  596. package/node_modules/@undefineds.co/shared-ui/dist/segmented-control.d.ts +30 -0
  597. package/node_modules/@undefineds.co/shared-ui/dist/segmented-control.js +81 -0
  598. package/node_modules/@undefineds.co/shared-ui/dist/select.d.ts +10 -0
  599. package/node_modules/@undefineds.co/shared-ui/dist/select.js +20 -0
  600. package/node_modules/@undefineds.co/shared-ui/dist/setting-row.d.ts +23 -0
  601. package/node_modules/@undefineds.co/shared-ui/dist/setting-row.js +14 -0
  602. package/node_modules/@undefineds.co/shared-ui/dist/status.d.ts +35 -0
  603. package/node_modules/@undefineds.co/shared-ui/dist/status.js +29 -0
  604. package/node_modules/@undefineds.co/shared-ui/dist/textarea.d.ts +4 -0
  605. package/node_modules/@undefineds.co/shared-ui/dist/textarea.js +6 -0
  606. package/node_modules/@undefineds.co/shared-ui/dist/theme.css +141 -75
  607. package/node_modules/@undefineds.co/shared-ui/dist/toast.js +1 -1
  608. package/node_modules/@undefineds.co/shared-ui/dist/tooltip.d.ts +2 -1
  609. package/node_modules/@undefineds.co/shared-ui/dist/tooltip.js +3 -2
  610. package/node_modules/@undefineds.co/shared-ui/dist/workspace.d.ts +14 -0
  611. package/node_modules/@undefineds.co/shared-ui/dist/workspace.js +14 -0
  612. package/node_modules/@undefineds.co/shared-ui/package.json +3 -2
  613. package/node_modules/@undefineds.co/solid-sdk/dist/access-route.cjs +13 -9
  614. package/node_modules/@undefineds.co/solid-sdk/dist/access-route.d.ts +2 -1
  615. package/node_modules/@undefineds.co/solid-sdk/dist/access-route.js +20 -10
  616. package/node_modules/@undefineds.co/solid-sdk/dist/index.bun.js +9 -0
  617. package/node_modules/@undefineds.co/solid-sdk/dist/index.cjs +177 -101
  618. package/node_modules/@undefineds.co/solid-sdk/dist/index.d.ts +8 -8
  619. package/node_modules/@undefineds.co/solid-sdk/dist/local-route-fetch.cjs +61 -17
  620. package/node_modules/@undefineds.co/solid-sdk/dist/local-route-fetch.d.ts +23 -0
  621. package/node_modules/@undefineds.co/solid-sdk/dist/local-route-fetch.js +73 -11
  622. package/node_modules/@undefineds.co/solid-sdk/dist/react.d.ts +2 -2
  623. package/node_modules/@undefineds.co/solid-sdk/dist/session.cjs +333 -0
  624. package/node_modules/@undefineds.co/solid-sdk/dist/session.js +54 -25
  625. package/node_modules/@undefineds.co/solid-sdk/dist/storage-selection.d.ts +2 -2
  626. package/node_modules/@undefineds.co/solid-sdk/package.json +4 -2
  627. package/node_modules/jose/package.json +120 -30
  628. package/node_modules/openid-client/node_modules/jose/package.json +1 -1
  629. package/node_modules/openid-client/types/index.d.ts +623 -0
  630. package/package.json +13 -7
  631. package/scripts/patch-jose.js +5 -3
  632. package/static/app/assets/index-hMwukuNA.js +230 -0
  633. package/static/app/assets/inrupt-smoke.js +57 -56
  634. package/static/app/assets/main.css +1 -1
  635. package/static/app/assets/main.js +30 -30
  636. package/static/app/auth.html +2 -2
  637. package/static/app/brand/xpod-app-16.svg +1 -0
  638. package/static/app/brand/xpod-app-24.svg +1 -0
  639. package/static/app/index.html +3 -3
  640. package/static/app/inrupt-smoke.html +2 -1
  641. package/static/dashboard/assets/AccountAuthBoundary-Dv52SZc6.js +1 -0
  642. package/static/dashboard/assets/DesktopOidcCallback-DaT_Rumf.js +1 -0
  643. package/static/dashboard/assets/DevicePages-HjclpIVm.js +2 -0
  644. package/static/dashboard/assets/ModelsPage-Be2TPd-x.js +11 -0
  645. package/static/dashboard/assets/PaneListHeader-DtvnRmFq.js +1 -0
  646. package/static/dashboard/assets/PodDeletionAuthorizationPanel-BJk_8rJq.js +42 -0
  647. package/static/dashboard/assets/PodPage-C4gzEspV.js +1 -0
  648. package/static/dashboard/assets/SystemSettingsPage-HaNrP1H1.js +1 -0
  649. package/static/dashboard/assets/TasksPage-BdO5K2L7.js +1 -0
  650. package/static/dashboard/assets/TasksPage-DPpAgn4C.css +1 -0
  651. package/static/dashboard/assets/WebDesktopEntry-Cj9_ZfJU.js +1 -0
  652. package/static/dashboard/assets/XpodAiConnectionsPodStore-B7gmXBmC.js +3 -0
  653. package/static/dashboard/assets/XpodShellApp-Bwom2xL3.css +1 -0
  654. package/static/dashboard/assets/XpodShellApp-D_KY4nCW.js +4 -0
  655. package/static/dashboard/assets/account-session-DlcKNG7k.js +1 -0
  656. package/static/dashboard/assets/button-wslF55uZ.js +1 -0
  657. package/static/dashboard/assets/collection-runtime-uxxgEu13.js +1 -0
  658. package/static/dashboard/assets/createLucideIcon-BJQl82Qk.js +1 -0
  659. package/static/dashboard/assets/dashboard-CbJ-JkrI.css +1 -0
  660. package/static/dashboard/assets/dashboard-Or0gnkou.js +12 -0
  661. package/static/dashboard/assets/index-BqFeOML9.js +1 -0
  662. package/static/dashboard/assets/index-DgKn1twH.js +20 -0
  663. package/static/dashboard/assets/label-CS6Sx6Zb.js +1 -0
  664. package/static/dashboard/assets/list-UyhlCFKk.js +1 -0
  665. package/static/dashboard/assets/nav-item-style-CW1Nnorq.js +1 -0
  666. package/static/dashboard/assets/pod-collections-host-DjK2xf-b.js +8 -0
  667. package/static/dashboard/assets/safe-continuation-ClWAhcma.js +1 -0
  668. package/static/dashboard/assets/section-header-CEIEcco-.js +1 -0
  669. package/static/dashboard/assets/setting-row-CaYv3dfF.js +1 -0
  670. package/static/dashboard/assets/xpod-remembered-login-BUF9fin1.js +310 -0
  671. package/static/dashboard/auth.html +2 -2
  672. package/static/dashboard/brand/xpod-app-16.svg +1 -0
  673. package/static/dashboard/brand/xpod-app-24.svg +1 -0
  674. package/static/dashboard/dashboard.html +4 -3
  675. package/static/settings/assets/AccountAuthBoundary-Chqd38oU.js +1 -0
  676. package/static/settings/assets/DesktopOidcCallback-VUrOSM_q.js +1 -0
  677. package/static/settings/assets/DevicePages-C6qwvWwu.js +2 -0
  678. package/static/settings/assets/ModelsPage-Ry_dObRQ.js +11 -0
  679. package/static/settings/assets/PaneListHeader-B5RkRqr4.js +1 -0
  680. package/static/settings/assets/PodDeletionAuthorizationPanel-DPM-5Izt.js +42 -0
  681. package/static/settings/assets/PodPage-CxND6wwc.js +1 -0
  682. package/static/settings/assets/SystemSettingsPage-C8EdMkW7.js +1 -0
  683. package/static/settings/assets/TasksPage-DPpAgn4C.css +1 -0
  684. package/static/settings/assets/TasksPage-DuqptEm8.js +1 -0
  685. package/static/settings/assets/WebDesktopEntry-BRcyktkv.js +1 -0
  686. package/static/settings/assets/XpodAiConnectionsPodStore-CyA_BJVC.js +3 -0
  687. package/static/settings/assets/XpodShellApp-Bwom2xL3.css +1 -0
  688. package/static/settings/assets/XpodShellApp-CsivHJl0.js +4 -0
  689. package/static/settings/assets/XpodThemeProvider-CbJ-JkrI.css +1 -0
  690. package/static/settings/assets/XpodThemeProvider-DK3pIdRG.js +12 -0
  691. package/static/settings/assets/account-session-DJOZ03xr.js +1 -0
  692. package/static/settings/assets/auth-callback-GIBYEz_7.js +1 -0
  693. package/static/settings/assets/button-D3yW-2o1.js +1 -0
  694. package/static/settings/assets/collection-runtime-DfGo25mh.js +1 -0
  695. package/static/settings/assets/createLucideIcon-CacwLsmB.js +1 -0
  696. package/static/settings/assets/index-r5KRYsKC.js +20 -0
  697. package/static/settings/assets/label-MJjUmvzG.js +1 -0
  698. package/static/settings/assets/list-Ce-5k1MX.js +1 -0
  699. package/static/settings/assets/nav-item-style-ZUbL8KOZ.js +1 -0
  700. package/static/settings/assets/pod-collections-host-DjK2xf-b.js +8 -0
  701. package/static/settings/assets/safe-continuation-vlBZFSlU.js +1 -0
  702. package/static/settings/assets/section-header-DGJdEvQw.js +1 -0
  703. package/static/settings/assets/setting-row-C7tuFiho.js +1 -0
  704. package/static/settings/assets/settings-CyQPih1O.js +1 -0
  705. package/static/settings/assets/xpod-remembered-login-D-TzzT5K.js +567 -0
  706. package/static/settings/auth-callback.html +4 -3
  707. package/static/settings/auth.html +2 -2
  708. package/static/settings/brand/xpod-app-16.svg +1 -0
  709. package/static/settings/brand/xpod-app-24.svg +1 -0
  710. package/static/settings/settings.html +5 -4
  711. package/node_modules/@solid/access-token-verifier/node_modules/n3/browser/n3.min.js +0 -1
  712. package/node_modules/@solid/community-server/node_modules/n3/browser/n3.min.js +0 -1
  713. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/aggregates.d.ts +0 -19
  714. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/ast-to-sparql.d.ts +0 -66
  715. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/compile-time-types.d.ts +0 -40
  716. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/comunica-patch.d.ts +0 -2
  717. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/conflict-resolution.d.ts +0 -110
  718. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/composite-discovery.d.ts +0 -18
  719. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/index.d.ts +0 -7
  720. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-discovery.d.ts +0 -36
  721. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-tables.d.ts +0 -37
  722. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-types.d.ts +0 -36
  723. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/provider-cache.d.ts +0 -99
  724. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/typeindex-discovery.d.ts +0 -32
  725. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/types.d.ts +0 -132
  726. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/exact-records.d.ts +0 -21
  727. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/index.d.ts +0 -14
  728. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts +0 -76
  729. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.d.ts +0 -53
  730. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor-types.d.ts +0 -9
  731. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.d.ts +0 -73
  732. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts +0 -31
  733. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/strategy-factory.d.ts +0 -42
  734. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/types.d.ts +0 -85
  735. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/expressions.d.ts +0 -40
  736. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/executor.d.ts +0 -98
  737. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/index.d.ts +0 -3
  738. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/types.d.ts +0 -69
  739. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/base-channel.d.ts +0 -29
  740. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/index.d.ts +0 -4
  741. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/sse-channel.d.ts +0 -50
  742. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/websocket-channel.d.ts +0 -16
  743. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/index.d.ts +0 -3
  744. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts +0 -88
  745. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/types.d.ts +0 -228
  746. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/order-by.d.ts +0 -9
  747. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.d.ts +0 -548
  748. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.d.ts +0 -324
  749. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-discovery.d.ts +0 -20
  750. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.d.ts +0 -52
  751. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/profile-manager.d.ts +0 -90
  752. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/default-id-template.d.ts +0 -10
  753. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/delete-query-builder.d.ts +0 -31
  754. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/helpers.d.ts +0 -11
  755. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/index.d.ts +0 -7
  756. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.d.ts +0 -37
  757. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts +0 -150
  758. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/types.d.ts +0 -40
  759. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/update-query-builder.d.ts +0 -34
  760. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-conditions.d.ts +0 -60
  761. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts +0 -8
  762. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-constants.d.ts +0 -16
  763. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-schema-parser.d.ts +0 -34
  764. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/repository.d.ts +0 -78
  765. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.d.ts +0 -31
  766. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.d.ts +0 -141
  767. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.d.ts +0 -36
  768. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/factory.d.ts +0 -27
  769. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.d.ts +0 -34
  770. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/index.d.ts +0 -11
  771. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/types.d.ts +0 -57
  772. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.d.ts +0 -60
  773. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/columns.d.ts +0 -74
  774. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/defs.d.ts +0 -101
  775. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.d.ts +0 -29
  776. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/index.d.ts +0 -9
  777. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.d.ts +0 -118
  778. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/relations.d.ts +0 -26
  779. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.d.ts +0 -22
  780. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/types.d.ts +0 -45
  781. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/utils.d.ts +0 -15
  782. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/select-plan.d.ts +0 -50
  783. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/services/pod-services.d.ts +0 -43
  784. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/generator.d.ts +0 -12
  785. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/index.d.ts +0 -4
  786. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/manager.d.ts +0 -45
  787. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl-parser.d.ts +0 -19
  788. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl.d.ts +0 -11
  789. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/types.d.ts +0 -149
  790. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/validator.d.ts +0 -11
  791. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/solid-n3-client.d.ts +0 -86
  792. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.d.ts +0 -56
  793. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/select-builder.d.ts +0 -44
  794. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/update-builder.d.ts +0 -33
  795. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/helpers.d.ts +0 -19
  796. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/types.d.ts +0 -10
  797. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-engine.d.ts +0 -16
  798. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts +0 -40
  799. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/index.d.ts +0 -29
  800. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.d.ts +0 -116
  801. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/types.d.ts +0 -97
  802. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/builder.d.ts +0 -86
  803. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/array.d.ts +0 -23
  804. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/default.d.ts +0 -20
  805. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/index.d.ts +0 -35
  806. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.d.ts +0 -35
  807. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inverse.d.ts +0 -26
  808. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/uri.d.ts +0 -28
  809. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/index.d.ts +0 -9
  810. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/types.d.ts +0 -156
  811. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/typeindex-manager.d.ts +0 -130
  812. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/types.d.ts +0 -57
  813. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/index.d.ts +0 -8
  814. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.d.ts +0 -153
  815. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/types.d.ts +0 -154
  816. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/debug-logger.d.ts +0 -19
  817. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/origin-auth.d.ts +0 -28
  818. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/pod-root.d.ts +0 -15
  819. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/zod-integration.d.ts +0 -97
  820. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.d.ts +0 -60
  821. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/index.d.ts +0 -31
  822. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.d.ts +0 -140
  823. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/solid.d.ts +0 -21
  824. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/test-utils/real-test-helpers.d.ts +0 -5
  825. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/types/sparql-types.d.ts +0 -27
  826. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/find-by-iri.d.ts +0 -11
  827. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/helpers.d.ts +0 -17
  828. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/namespace.d.ts +0 -4
  829. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-helpers.d.ts +0 -17
  830. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-validation.d.ts +0 -27
  831. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/thing-operations.d.ts +0 -28
  832. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/webid-resolver.d.ts +0 -23
  833. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/index.ts +0 -4
  834. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/locales/index.ts +0 -1
  835. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/mini/index.ts +0 -3
  836. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/ZodError.ts +0 -330
  837. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/datetime.ts +0 -58
  838. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +0 -80
  839. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/index.ts +0 -59
  840. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/ipv4.ts +0 -57
  841. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/object.ts +0 -69
  842. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/primitives.ts +0 -162
  843. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/realworld.ts +0 -63
  844. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/string.ts +0 -55
  845. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/union.ts +0 -80
  846. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/errors.ts +0 -13
  847. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/external.ts +0 -6
  848. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/enumUtil.ts +0 -17
  849. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/errorUtil.ts +0 -8
  850. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/parseUtil.ts +0 -176
  851. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/partialUtil.ts +0 -34
  852. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/typeAliases.ts +0 -2
  853. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/util.ts +0 -224
  854. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/index.ts +0 -4
  855. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/locales/en.ts +0 -124
  856. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/standard-schema.ts +0 -113
  857. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/Mocker.ts +0 -54
  858. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/all-errors.test.ts +0 -157
  859. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/anyunknown.test.ts +0 -28
  860. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/array.test.ts +0 -71
  861. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/async-parsing.test.ts +0 -388
  862. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/async-refinements.test.ts +0 -46
  863. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/base.test.ts +0 -29
  864. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/bigint.test.ts +0 -55
  865. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/branded.test.ts +0 -53
  866. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/catch.test.ts +0 -220
  867. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/coerce.test.ts +0 -133
  868. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/complex.test.ts +0 -70
  869. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/custom.test.ts +0 -31
  870. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/date.test.ts +0 -32
  871. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/deepmasking.test.ts +0 -186
  872. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/default.test.ts +0 -112
  873. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/description.test.ts +0 -33
  874. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +0 -315
  875. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/enum.test.ts +0 -80
  876. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/error.test.ts +0 -551
  877. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/firstparty.test.ts +0 -87
  878. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +0 -21
  879. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/function.test.ts +0 -261
  880. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/generics.test.ts +0 -48
  881. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/instanceof.test.ts +0 -37
  882. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/intersection.test.ts +0 -110
  883. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/language-server.source.ts +0 -76
  884. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/language-server.test.ts +0 -207
  885. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/literal.test.ts +0 -36
  886. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/map.test.ts +0 -110
  887. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/masking.test.ts +0 -4
  888. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/mocker.test.ts +0 -19
  889. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/nan.test.ts +0 -24
  890. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/nativeEnum.test.ts +0 -87
  891. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/nullable.test.ts +0 -42
  892. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/number.test.ts +0 -176
  893. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/object-augmentation.test.ts +0 -29
  894. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +0 -29
  895. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/object.test.ts +0 -434
  896. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/optional.test.ts +0 -42
  897. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/parseUtil.test.ts +0 -23
  898. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/parser.test.ts +0 -41
  899. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/partials.test.ts +0 -243
  900. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/pickomit.test.ts +0 -111
  901. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/pipeline.test.ts +0 -29
  902. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/preprocess.test.ts +0 -186
  903. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/primitive.test.ts +0 -440
  904. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/promise.test.ts +0 -90
  905. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/readonly.test.ts +0 -194
  906. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/record.test.ts +0 -171
  907. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/recursive.test.ts +0 -197
  908. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/refine.test.ts +0 -313
  909. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/safeparse.test.ts +0 -27
  910. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/set.test.ts +0 -142
  911. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/standard-schema.test.ts +0 -83
  912. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/string.test.ts +0 -916
  913. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/transformer.test.ts +0 -233
  914. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/tuple.test.ts +0 -90
  915. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/unions.test.ts +0 -57
  916. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/validations.test.ts +0 -133
  917. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/void.test.ts +0 -15
  918. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/types.ts +0 -5138
  919. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/checks.ts +0 -32
  920. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/coerce.ts +0 -27
  921. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/compat.ts +0 -70
  922. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/errors.ts +0 -82
  923. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/external.ts +0 -52
  924. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/from-json-schema.ts +0 -659
  925. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/index.ts +0 -5
  926. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/iso.ts +0 -90
  927. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/parse.ts +0 -82
  928. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/schemas.ts +0 -2672
  929. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +0 -26
  930. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/apply.test.ts +0 -59
  931. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/array.test.ts +0 -264
  932. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/assignability.test.ts +0 -216
  933. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +0 -381
  934. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +0 -68
  935. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/base.test.ts +0 -7
  936. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/bigint.test.ts +0 -54
  937. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/brand.test.ts +0 -106
  938. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/catch.test.ts +0 -326
  939. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +0 -20
  940. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +0 -573
  941. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/codec.test.ts +0 -703
  942. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/coerce.test.ts +0 -160
  943. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/continuability.test.ts +0 -374
  944. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/custom.test.ts +0 -40
  945. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/date.test.ts +0 -62
  946. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/datetime.test.ts +0 -302
  947. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/default.test.ts +0 -409
  948. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +0 -27
  949. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/description.test.ts +0 -32
  950. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +0 -197
  951. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +0 -694
  952. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/enum.test.ts +0 -285
  953. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +0 -807
  954. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/error.test.ts +0 -711
  955. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/file.test.ts +0 -96
  956. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +0 -179
  957. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +0 -26
  958. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +0 -895
  959. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/function.test.ts +0 -360
  960. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/generics.test.ts +0 -72
  961. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/global-config.test.ts +0 -39
  962. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/hash.test.ts +0 -68
  963. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/index.test.ts +0 -939
  964. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +0 -60
  965. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/intersection.test.ts +0 -198
  966. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +0 -46
  967. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/json.test.ts +0 -109
  968. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/lazy.test.ts +0 -227
  969. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/literal.test.ts +0 -117
  970. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +0 -29
  971. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +0 -24
  972. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/map.test.ts +0 -330
  973. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/nan.test.ts +0 -21
  974. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +0 -168
  975. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +0 -101
  976. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/nullable.test.ts +0 -22
  977. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/number.test.ts +0 -325
  978. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/object.test.ts +0 -717
  979. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/optional.test.ts +0 -333
  980. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/partial.test.ts +0 -450
  981. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +0 -211
  982. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/pipe.test.ts +0 -101
  983. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/prefault.test.ts +0 -74
  984. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +0 -26
  985. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +0 -351
  986. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/primitive.test.ts +0 -175
  987. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/promise.test.ts +0 -81
  988. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +0 -23
  989. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -252
  990. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/record.test.ts +0 -717
  991. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +0 -631
  992. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/refine.test.ts +0 -633
  993. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/registries.test.ts +0 -243
  994. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/set.test.ts +0 -181
  995. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +0 -134
  996. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +0 -125
  997. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/string.test.ts +0 -1224
  998. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +0 -106
  999. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +0 -771
  1000. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +0 -438
  1001. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +0 -3125
  1002. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/transform.test.ts +0 -378
  1003. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/tuple.test.ts +0 -496
  1004. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/union.test.ts +0 -273
  1005. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/url.test.ts +0 -13
  1006. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/validations.test.ts +0 -283
  1007. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/void.test.ts +0 -12
  1008. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/api.ts +0 -1823
  1009. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/checks.ts +0 -1293
  1010. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/config.ts +0 -15
  1011. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/core.ts +0 -153
  1012. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/doc.ts +0 -44
  1013. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/errors.ts +0 -455
  1014. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/index.ts +0 -16
  1015. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/json-schema-generator.ts +0 -126
  1016. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/json-schema-processors.ts +0 -666
  1017. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/json-schema.ts +0 -147
  1018. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/parse.ts +0 -195
  1019. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/regexes.ts +0 -190
  1020. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/registries.ts +0 -105
  1021. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/schemas.ts +0 -4730
  1022. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/standard-schema.ts +0 -159
  1023. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/extend.test.ts +0 -59
  1024. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/index.test.ts +0 -46
  1025. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/be.test.ts +0 -124
  1026. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/el.test.ts +0 -215
  1027. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/en.test.ts +0 -22
  1028. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/es.test.ts +0 -181
  1029. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +0 -72
  1030. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/he.test.ts +0 -379
  1031. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +0 -163
  1032. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +0 -46
  1033. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +0 -128
  1034. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +0 -69
  1035. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +0 -105
  1036. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +0 -125
  1037. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +0 -45
  1038. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/to-json-schema.ts +0 -622
  1039. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/util.ts +0 -983
  1040. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/versions.ts +0 -5
  1041. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/zsf.ts +0 -323
  1042. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/index.ts +0 -4
  1043. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ar.ts +0 -115
  1044. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/az.ts +0 -111
  1045. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/be.ts +0 -176
  1046. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/bg.ts +0 -128
  1047. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ca.ts +0 -116
  1048. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/cs.ts +0 -118
  1049. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/da.ts +0 -123
  1050. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/de.ts +0 -116
  1051. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/el.ts +0 -121
  1052. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/en.ts +0 -123
  1053. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/eo.ts +0 -118
  1054. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/es.ts +0 -141
  1055. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/fa.ts +0 -126
  1056. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/fi.ts +0 -121
  1057. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/fr-CA.ts +0 -116
  1058. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/fr.ts +0 -132
  1059. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/he.ts +0 -246
  1060. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/hr.ts +0 -131
  1061. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/hu.ts +0 -117
  1062. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/hy.ts +0 -164
  1063. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/id.ts +0 -115
  1064. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/index.ts +0 -52
  1065. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/is.ts +0 -119
  1066. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/it.ts +0 -116
  1067. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ja.ts +0 -114
  1068. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ka.ts +0 -123
  1069. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/kh.ts +0 -7
  1070. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/km.ts +0 -119
  1071. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ko.ts +0 -121
  1072. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/lt.ts +0 -239
  1073. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/mk.ts +0 -118
  1074. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ms.ts +0 -115
  1075. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/nl.ts +0 -121
  1076. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/no.ts +0 -116
  1077. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ota.ts +0 -117
  1078. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/pl.ts +0 -118
  1079. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ps.ts +0 -126
  1080. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/pt.ts +0 -116
  1081. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ro.ts +0 -129
  1082. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ru.ts +0 -176
  1083. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/sl.ts +0 -118
  1084. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/sv.ts +0 -119
  1085. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ta.ts +0 -118
  1086. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/th.ts +0 -119
  1087. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/tr.ts +0 -111
  1088. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ua.ts +0 -7
  1089. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/uk.ts +0 -117
  1090. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ur.ts +0 -119
  1091. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/uz.ts +0 -117
  1092. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/vi.ts +0 -117
  1093. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/yo.ts +0 -124
  1094. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/zh-CN.ts +0 -116
  1095. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/zh-TW.ts +0 -115
  1096. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/checks.ts +0 -32
  1097. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/coerce.ts +0 -27
  1098. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/external.ts +0 -41
  1099. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/index.ts +0 -3
  1100. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/iso.ts +0 -66
  1101. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/parse.ts +0 -14
  1102. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/schemas.ts +0 -1947
  1103. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/apply.test.ts +0 -24
  1104. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/assignability.test.ts +0 -129
  1105. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/brand.test.ts +0 -94
  1106. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/checks.test.ts +0 -144
  1107. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/codec.test.ts +0 -548
  1108. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/computed.test.ts +0 -36
  1109. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/error.test.ts +0 -22
  1110. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/functions.test.ts +0 -5
  1111. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/index.test.ts +0 -993
  1112. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/number.test.ts +0 -95
  1113. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/object.test.ts +0 -227
  1114. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +0 -43
  1115. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +0 -325
  1116. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +0 -50
  1117. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/string.test.ts +0 -352
  1118. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4-mini/index.ts +0 -3
  1119. package/node_modules/@undefineds.co/models/node_modules/n3/browser/n3.min.js +0 -1
  1120. package/node_modules/jose/dist/browser/index.js +0 -30
  1121. package/node_modules/jose/dist/browser/jwe/compact/decrypt.js +0 -27
  1122. package/node_modules/jose/dist/browser/jwe/compact/encrypt.js +0 -26
  1123. package/node_modules/jose/dist/browser/jwe/flattened/decrypt.js +0 -161
  1124. package/node_modules/jose/dist/browser/jwe/flattened/encrypt.js +0 -153
  1125. package/node_modules/jose/dist/browser/jwe/general/decrypt.js +0 -31
  1126. package/node_modules/jose/dist/browser/jwe/general/encrypt.js +0 -174
  1127. package/node_modules/jose/dist/browser/jwk/embedded.js +0 -17
  1128. package/node_modules/jose/dist/browser/jwk/thumbprint.js +0 -53
  1129. package/node_modules/jose/dist/browser/jwks/local.js +0 -124
  1130. package/node_modules/jose/dist/browser/jwks/remote.js +0 -139
  1131. package/node_modules/jose/dist/browser/jws/compact/sign.js +0 -17
  1132. package/node_modules/jose/dist/browser/jws/compact/verify.js +0 -21
  1133. package/node_modules/jose/dist/browser/jws/flattened/sign.js +0 -81
  1134. package/node_modules/jose/dist/browser/jws/flattened/verify.js +0 -122
  1135. package/node_modules/jose/dist/browser/jws/general/sign.js +0 -67
  1136. package/node_modules/jose/dist/browser/jws/general/verify.js +0 -24
  1137. package/node_modules/jose/dist/browser/jwt/decrypt.js +0 -23
  1138. package/node_modules/jose/dist/browser/jwt/encrypt.js +0 -68
  1139. package/node_modules/jose/dist/browser/jwt/produce.js +0 -75
  1140. package/node_modules/jose/dist/browser/jwt/sign.js +0 -20
  1141. package/node_modules/jose/dist/browser/jwt/unsecured.js +0 -32
  1142. package/node_modules/jose/dist/browser/jwt/verify.js +0 -15
  1143. package/node_modules/jose/dist/browser/key/export.js +0 -12
  1144. package/node_modules/jose/dist/browser/key/generate_key_pair.js +0 -4
  1145. package/node_modules/jose/dist/browser/key/generate_secret.js +0 -4
  1146. package/node_modules/jose/dist/browser/key/import.js +0 -45
  1147. package/node_modules/jose/dist/browser/lib/aesgcmkw.js +0 -16
  1148. package/node_modules/jose/dist/browser/lib/buffer_utils.js +0 -51
  1149. package/node_modules/jose/dist/browser/lib/cek.js +0 -20
  1150. package/node_modules/jose/dist/browser/lib/check_iv_length.js +0 -8
  1151. package/node_modules/jose/dist/browser/lib/check_key_type.js +0 -77
  1152. package/node_modules/jose/dist/browser/lib/check_p2s.js +0 -6
  1153. package/node_modules/jose/dist/browser/lib/crypto_key.js +0 -157
  1154. package/node_modules/jose/dist/browser/lib/decrypt_key_management.js +0 -129
  1155. package/node_modules/jose/dist/browser/lib/encrypt_key_management.js +0 -89
  1156. package/node_modules/jose/dist/browser/lib/epoch.js +0 -1
  1157. package/node_modules/jose/dist/browser/lib/format_pem.js +0 -4
  1158. package/node_modules/jose/dist/browser/lib/invalid_key_input.js +0 -31
  1159. package/node_modules/jose/dist/browser/lib/is_disjoint.js +0 -22
  1160. package/node_modules/jose/dist/browser/lib/is_jwk.js +0 -13
  1161. package/node_modules/jose/dist/browser/lib/is_object.js +0 -16
  1162. package/node_modules/jose/dist/browser/lib/iv.js +0 -20
  1163. package/node_modules/jose/dist/browser/lib/jwt_claims_set.js +0 -104
  1164. package/node_modules/jose/dist/browser/lib/private_symbols.js +0 -1
  1165. package/node_modules/jose/dist/browser/lib/secs.js +0 -55
  1166. package/node_modules/jose/dist/browser/lib/validate_algorithms.js +0 -11
  1167. package/node_modules/jose/dist/browser/lib/validate_crit.js +0 -34
  1168. package/node_modules/jose/dist/browser/package.json +0 -1
  1169. package/node_modules/jose/dist/browser/runtime/aeskw.js +0 -32
  1170. package/node_modules/jose/dist/browser/runtime/asn1.js +0 -205
  1171. package/node_modules/jose/dist/browser/runtime/base64url.js +0 -37
  1172. package/node_modules/jose/dist/browser/runtime/bogus.js +0 -6
  1173. package/node_modules/jose/dist/browser/runtime/check_cek_length.js +0 -8
  1174. package/node_modules/jose/dist/browser/runtime/check_key_length.js +0 -8
  1175. package/node_modules/jose/dist/browser/runtime/decrypt.js +0 -91
  1176. package/node_modules/jose/dist/browser/runtime/digest.js +0 -6
  1177. package/node_modules/jose/dist/browser/runtime/ecdhes.js +0 -47
  1178. package/node_modules/jose/dist/browser/runtime/encrypt.js +0 -76
  1179. package/node_modules/jose/dist/browser/runtime/fetch_jwks.js +0 -34
  1180. package/node_modules/jose/dist/browser/runtime/generate.js +0 -143
  1181. package/node_modules/jose/dist/browser/runtime/get_sign_verify_key.js +0 -24
  1182. package/node_modules/jose/dist/browser/runtime/is_key_like.js +0 -8
  1183. package/node_modules/jose/dist/browser/runtime/jwk_to_key.js +0 -104
  1184. package/node_modules/jose/dist/browser/runtime/key_to_jwk.js +0 -21
  1185. package/node_modules/jose/dist/browser/runtime/normalize_key.js +0 -68
  1186. package/node_modules/jose/dist/browser/runtime/pbes2kw.js +0 -51
  1187. package/node_modules/jose/dist/browser/runtime/random.js +0 -2
  1188. package/node_modules/jose/dist/browser/runtime/rsaes.js +0 -37
  1189. package/node_modules/jose/dist/browser/runtime/runtime.js +0 -1
  1190. package/node_modules/jose/dist/browser/runtime/sign.js +0 -11
  1191. package/node_modules/jose/dist/browser/runtime/subtle_dsa.js +0 -28
  1192. package/node_modules/jose/dist/browser/runtime/subtle_rsaes.js +0 -12
  1193. package/node_modules/jose/dist/browser/runtime/timing_safe_equal.js +0 -19
  1194. package/node_modules/jose/dist/browser/runtime/verify.js +0 -16
  1195. package/node_modules/jose/dist/browser/runtime/webcrypto.js +0 -2
  1196. package/node_modules/jose/dist/browser/util/base64url.js +0 -3
  1197. package/node_modules/jose/dist/browser/util/decode_jwt.js +0 -32
  1198. package/node_modules/jose/dist/browser/util/decode_protected_header.js +0 -34
  1199. package/node_modules/jose/dist/browser/util/errors.js +0 -114
  1200. package/node_modules/jose/dist/browser/util/runtime.js +0 -2
  1201. package/node_modules/openid-client/node_modules/jose/dist/browser/index.js +0 -32
  1202. package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/compact/decrypt.js +0 -27
  1203. package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/compact/encrypt.js +0 -26
  1204. package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/flattened/decrypt.js +0 -166
  1205. package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/flattened/encrypt.js +0 -175
  1206. package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/general/decrypt.js +0 -31
  1207. package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/general/encrypt.js +0 -178
  1208. package/node_modules/openid-client/node_modules/jose/dist/browser/jwk/embedded.js +0 -17
  1209. package/node_modules/openid-client/node_modules/jose/dist/browser/jwk/thumbprint.js +0 -53
  1210. package/node_modules/openid-client/node_modules/jose/dist/browser/jwks/local.js +0 -116
  1211. package/node_modules/openid-client/node_modules/jose/dist/browser/jwks/remote.js +0 -76
  1212. package/node_modules/openid-client/node_modules/jose/dist/browser/jws/compact/sign.js +0 -17
  1213. package/node_modules/openid-client/node_modules/jose/dist/browser/jws/compact/verify.js +0 -21
  1214. package/node_modules/openid-client/node_modules/jose/dist/browser/jws/flattened/sign.js +0 -81
  1215. package/node_modules/openid-client/node_modules/jose/dist/browser/jws/flattened/verify.js +0 -115
  1216. package/node_modules/openid-client/node_modules/jose/dist/browser/jws/general/sign.js +0 -67
  1217. package/node_modules/openid-client/node_modules/jose/dist/browser/jws/general/verify.js +0 -24
  1218. package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/decrypt.js +0 -23
  1219. package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/encrypt.js +0 -68
  1220. package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/produce.js +0 -54
  1221. package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/sign.js +0 -21
  1222. package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/unsecured.js +0 -32
  1223. package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/verify.js +0 -16
  1224. package/node_modules/openid-client/node_modules/jose/dist/browser/key/export.js +0 -12
  1225. package/node_modules/openid-client/node_modules/jose/dist/browser/key/generate_key_pair.js +0 -4
  1226. package/node_modules/openid-client/node_modules/jose/dist/browser/key/generate_secret.js +0 -4
  1227. package/node_modules/openid-client/node_modules/jose/dist/browser/key/import.js +0 -50
  1228. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/aesgcmkw.js +0 -14
  1229. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/buffer_utils.js +0 -51
  1230. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/cek.js +0 -20
  1231. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/check_iv_length.js +0 -8
  1232. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/check_key_type.js +0 -45
  1233. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/check_p2s.js +0 -6
  1234. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/crypto_key.js +0 -152
  1235. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/decrypt_key_management.js +0 -127
  1236. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/encrypt_key_management.js +0 -87
  1237. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/epoch.js +0 -1
  1238. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/format_pem.js +0 -4
  1239. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/invalid_key_input.js +0 -30
  1240. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/is_disjoint.js +0 -22
  1241. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/is_object.js +0 -16
  1242. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/iv.js +0 -20
  1243. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/jwt_claims_set.js +0 -102
  1244. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/secs.js +0 -44
  1245. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/validate_algorithms.js +0 -11
  1246. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/validate_crit.js +0 -34
  1247. package/node_modules/openid-client/node_modules/jose/dist/browser/package.json +0 -1
  1248. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/aeskw.js +0 -32
  1249. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/asn1.js +0 -202
  1250. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/base64url.js +0 -37
  1251. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/bogus.js +0 -6
  1252. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/check_cek_length.js +0 -8
  1253. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/check_key_length.js +0 -8
  1254. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/decrypt.js +0 -85
  1255. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/digest.js +0 -6
  1256. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/ecdhes.js +0 -46
  1257. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/encrypt.js +0 -68
  1258. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/fetch_jwks.js +0 -34
  1259. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/generate.js +0 -141
  1260. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/get_sign_verify_key.js +0 -17
  1261. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/is_key_like.js +0 -5
  1262. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/jwk_to_key.js +0 -143
  1263. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/key_to_jwk.js +0 -21
  1264. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/pbes2kw.js +0 -51
  1265. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/random.js +0 -2
  1266. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/rsaes.js +0 -37
  1267. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/runtime.js +0 -1
  1268. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/sign.js +0 -11
  1269. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/subtle_dsa.js +0 -26
  1270. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/subtle_rsaes.js +0 -12
  1271. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/timing_safe_equal.js +0 -19
  1272. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/verify.js +0 -16
  1273. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/webcrypto.js +0 -2
  1274. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/zlib.js +0 -7
  1275. package/node_modules/openid-client/node_modules/jose/dist/browser/util/base64url.js +0 -3
  1276. package/node_modules/openid-client/node_modules/jose/dist/browser/util/decode_jwt.js +0 -32
  1277. package/node_modules/openid-client/node_modules/jose/dist/browser/util/decode_protected_header.js +0 -34
  1278. package/node_modules/openid-client/node_modules/jose/dist/browser/util/errors.js +0 -158
  1279. package/node_modules/openid-client/node_modules/jose/dist/browser/util/runtime.js +0 -2
  1280. package/static/app/assets/index-BCZVzMpj.js +0 -230
  1281. package/static/dashboard/assets/AiConfigContext-CZEW16so.js +0 -1
  1282. package/static/dashboard/assets/AiConfigPage-Cfp0fRX1.js +0 -1
  1283. package/static/dashboard/assets/DocumentProcessingPanel-DaaRCLp6.js +0 -1
  1284. package/static/dashboard/assets/IndexLifecyclePanel-BCz3jNM8.js +0 -1
  1285. package/static/dashboard/assets/IndexSubjectPanel-DVCVIt7V.js +0 -1
  1286. package/static/dashboard/assets/ModelAssignmentsPanel-DxauxtEY.js +0 -1
  1287. package/static/dashboard/assets/ModelsPage-B8F3AtZL.js +0 -11
  1288. package/static/dashboard/assets/NetworkPage-Cu7ty71x.js +0 -2
  1289. package/static/dashboard/assets/PaneListHeader-BEAXSlD9.js +0 -1
  1290. package/static/dashboard/assets/SearchIndexingPanel-DEr1EDDC.js +0 -1
  1291. package/static/dashboard/assets/StatusSubjectPanel-Cg92MGhO.js +0 -1
  1292. package/static/dashboard/assets/StatusWorkspace-BmJSOF3z.js +0 -1
  1293. package/static/dashboard/assets/SystemSettingsPage-rziu4Q3U.js +0 -1
  1294. package/static/dashboard/assets/SystemSettingsSubjectPanel-D16DGDNW.js +0 -33
  1295. package/static/dashboard/assets/XpodAiConnectionsPodStore-FlZ0LEn0.js +0 -18
  1296. package/static/dashboard/assets/activity-D55X-5L5.js +0 -1
  1297. package/static/dashboard/assets/admin-C6qCRFiY.js +0 -1
  1298. package/static/dashboard/assets/ai-connections-Dr4-rSzX.js +0 -1
  1299. package/static/dashboard/assets/badge-CRf1ISRJ.js +0 -1
  1300. package/static/dashboard/assets/collection-runtime-CfXMuwNc.js +0 -1
  1301. package/static/dashboard/assets/dashboard-B3kGI946.css +0 -1
  1302. package/static/dashboard/assets/dashboard-D4DWPaAy.js +0 -306
  1303. package/static/dashboard/assets/dialog-EVyIyybL.js +0 -1
  1304. package/static/dashboard/assets/download-Et4aRDT2.js +0 -1
  1305. package/static/dashboard/assets/external-link-DT746o7t.js +0 -1
  1306. package/static/dashboard/assets/index-D2agcVRx.js +0 -41
  1307. package/static/dashboard/assets/index-_wC13YGI.js +0 -1
  1308. package/static/dashboard/assets/index-z6TnJzW6.js +0 -4
  1309. package/static/dashboard/assets/key-round-CHnogQ1D.js +0 -1
  1310. package/static/dashboard/assets/pod-collections-host-KnnGFZHL.js +0 -8
  1311. package/static/dashboard/assets/rotate-ccw-BNVDC4Zr.js +0 -1
  1312. package/static/dashboard/assets/settings-projection-CUkyprDQ.js +0 -1
  1313. package/static/dashboard/assets/skeleton-BzsZekVf.js +0 -1
  1314. package/static/dashboard/assets/waypoints-CLZA22UN.js +0 -1
  1315. package/static/dashboard/assets/workspace-layout-urYcwAhS.js +0 -1
  1316. package/static/settings/assets/AiConfigContext-B2cVJFNu.js +0 -1
  1317. package/static/settings/assets/AiConfigPage-D_5jSPPF.js +0 -1
  1318. package/static/settings/assets/DocumentProcessingPanel-DodGlYIk.js +0 -1
  1319. package/static/settings/assets/IndexLifecyclePanel-BtH-0GKv.js +0 -1
  1320. package/static/settings/assets/IndexSubjectPanel-CqKhUcw2.js +0 -1
  1321. package/static/settings/assets/ModelAssignmentsPanel-Cam9V9BN.js +0 -1
  1322. package/static/settings/assets/ModelsPage-DWFic09l.js +0 -11
  1323. package/static/settings/assets/NetworkPage-CSwHoAWm.js +0 -2
  1324. package/static/settings/assets/PaneListHeader-270Z179Z.js +0 -1
  1325. package/static/settings/assets/SearchIndexingPanel-ATHKMDBQ.js +0 -1
  1326. package/static/settings/assets/StatusSubjectPanel-DDWo3v3d.js +0 -1
  1327. package/static/settings/assets/StatusWorkspace-BYgqeCBM.js +0 -1
  1328. package/static/settings/assets/SystemSettingsPage-BRaQAFWC.js +0 -1
  1329. package/static/settings/assets/SystemSettingsSubjectPanel-Dc0roh9d.js +0 -33
  1330. package/static/settings/assets/XpodAiConnectionsPodStore-OndzbigX.js +0 -3
  1331. package/static/settings/assets/activity-BAZEToJ3.js +0 -1
  1332. package/static/settings/assets/admin-C6qCRFiY.js +0 -1
  1333. package/static/settings/assets/ai-connections-DexTPyfC.js +0 -1
  1334. package/static/settings/assets/auth-callback-Bd3tvCOa.js +0 -1
  1335. package/static/settings/assets/badge-Cpol0LWF.js +0 -1
  1336. package/static/settings/assets/collection-runtime-B5vGx3gk.js +0 -1
  1337. package/static/settings/assets/dialog-_7AVvv5q.js +0 -1
  1338. package/static/settings/assets/download-DRAi-dnn.js +0 -1
  1339. package/static/settings/assets/external-link--Yq8inDb.js +0 -1
  1340. package/static/settings/assets/global-B3kGI946.css +0 -1
  1341. package/static/settings/assets/global-DMtP8ZF4.js +0 -306
  1342. package/static/settings/assets/index-C36H49PZ.js +0 -4
  1343. package/static/settings/assets/index-CQR3iePj.js +0 -41
  1344. package/static/settings/assets/index-DURnCfoQ.js +0 -1
  1345. package/static/settings/assets/index-browser-kAl2JmYB.js +0 -273
  1346. package/static/settings/assets/key-round-DzpWBVN9.js +0 -1
  1347. package/static/settings/assets/pod-collections-host-KnnGFZHL.js +0 -8
  1348. package/static/settings/assets/rotate-ccw-CtVsCcAx.js +0 -1
  1349. package/static/settings/assets/settings-DQtt6lql.js +0 -1
  1350. package/static/settings/assets/settings-projection-CUkyprDQ.js +0 -1
  1351. package/static/settings/assets/skeleton-R_ACks7d.js +0 -1
  1352. package/static/settings/assets/waypoints-D-Qv_sME.js +0 -1
  1353. package/static/settings/assets/workspace-layout-BSMCQq35.js +0 -1
  1354. /package/static/app/assets/{_commonjsHelpers-B-UnjaXt.js → global-BsV9-QbH.js} +0 -0
@@ -1,2 +0,0 @@
1
- import{c as $,Y as xe,r as d,al as U,j as e,C as k,a as C,b as S,d as P,e as R,B as g,am as se,R as he,_ as fe,$ as ve,a0 as be}from"./global-DMtP8ZF4.js";import{P as ge}from"./PaneListHeader-270Z179Z.js";import{N as ie,W as je}from"./waypoints-D-Qv_sME.js";import{A as oe}from"./activity-BAZEToJ3.js";import{T as ye,u as Ne}from"./workspace-layout-BSMCQq35.js";import{E as le}from"./external-link--Yq8inDb.js";import{B as M}from"./badge-Cpol0LWF.js";import{R as we}from"./rotate-ccw-CtVsCcAx.js";import{D as ke}from"./download-DRAi-dnn.js";const Ce=[["path",{d:"M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z",key:"trhst0"}],["path",{d:"M17 21v-2",key:"ds4u3f"}],["path",{d:"M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10",key:"1mo9zo"}],["path",{d:"M21 21v-2",key:"eo0ou"}],["path",{d:"M3 5V3",key:"1k5hjh"}],["path",{d:"M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z",key:"1dd30t"}],["path",{d:"M7 5V3",key:"1t1388"}]],Se=$("cable",Ce);const Pe=[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],de=$("earth",Pe);const Re=[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]],De=$("lock-keyhole",Re);const Te=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],Ae=$("radio",Te);const Ee=[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]],Le=$("route",Ee);const $e=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Ie=$("shield-check",$e);const Me=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],Oe=$("wifi",Me);async function Ue({fetchImpl:t}){return Q(t,X("/api/network/settings/status"),{method:"GET",credentials:"include",headers:{accept:"application/json"}})}async function qe({fetchImpl:t}){return Q(t,X("/api/network/settings/diagnose"),{method:"POST",credentials:"include",headers:{accept:"application/json"}})}async function ze({fetchImpl:t}){await Q(t,X("/api/network/settings/certificate/renew"),{method:"POST",credentials:"include",headers:{accept:"application/json"}})}async function Ve({podUrl:t,fetchImpl:n,patch:r}){return Q(n,_e("/api/network/settings/configuration",t),{method:"PUT",credentials:"include",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(r)})}function X(t){const n=typeof window>"u"?"http://localhost":window.location.origin;return new URL(t,n).toString()}function _e(t,n){return n?new URL(t,n).toString():X(t)}async function Q(t,n,r){const i=await t(n,r);if(!i.ok)throw await i.arrayBuffer(),new Error("Network settings request failed. Please try again.");if(!i.headers.get("content-type")?.includes("application/json"))throw await i.arrayBuffer(),new Error("Network settings request failed. Please try again.");return await i.json()}const ne=[{id:"overview",label:"Overview",path:"",icon:ie},{id:"endpoints",label:"Endpoints",path:"endpoints",icon:Se},{id:"addresses",label:"Addresses",path:"addresses",icon:de},{id:"domain-dns",label:"Domain & DNS",path:"domain-dns",icon:Le},{id:"https",label:"HTTPS",path:"https",icon:De},{id:"tunnel-profiles",label:"Tunnel Profiles",path:"tunnel-profiles",icon:je},{id:"p2p",label:"P2P",path:"p2p",icon:Ae},{id:"diagnostics",label:"Diagnostics",path:"diagnostics",icon:oe}];function He(t){const n=["Xpod Network Diagnostics",`Generated: ${t.generatedAt}`,`Canonical URL: ${t.endpoint??"Unavailable"}`],r=t.checks.flatMap(i=>["",`[${i.status.toUpperCase()}] ${i.label}`,...i.detail?[i.detail]:[]]);return[...n,...r].join(`
2
- `)}function bt(){const t=xe(),[n,r]=d.useState(),[i,s]=d.useState([]),[o,l]=d.useState(),[x,u]=d.useState(),[y,h]=d.useState(!1),[D,T]=d.useState(!1),[B,E]=d.useState(!1),[I,F]=d.useState(!1),[a,m]=d.useState(),v=d.useRef(0),N=d.useRef(0),z=d.useRef(0),V=d.useRef(void 0),_=d.useRef(!0),K=typeof window>"u"?void 0:window.location.origin,w=K?`local-host:${K}`:void 0,A=globalThis.fetch;d.useEffect(()=>(_.current=!0,()=>{_.current=!1,v.current+=1,N.current+=1,z.current+=1}),[]);const W=d.useCallback((c,p)=>_.current&&v.current===c&&V.current===p,[]),G=d.useCallback((c,p)=>_.current&&N.current===c&&V.current===p,[]),J=d.useCallback((c,p)=>_.current&&z.current===c&&V.current===p,[]),H=d.useCallback(async()=>{const c=w;if(!c)return;const p=v.current+1;v.current=p,h(!0),u(void 0);try{const L=await Ue({fetchImpl:A});W(p,c)&&r(L)}catch{W(p,c)&&u("网络设置请求失败,请重试。")}finally{W(p,c)&&h(!1)}},[A,w,W]);d.useEffect(()=>{let c=!1;return V.current=w,v.current+=1,N.current+=1,z.current+=1,queueMicrotask(()=>{c||V.current!==w||(r(void 0),s([]),l(void 0),u(void 0),h(!1),T(!1),E(!1),w&&H())}),()=>{c=!0}},[w,H]);const ue=d.useCallback(async()=>{const c=w;if(!c)return;const p=N.current+1;N.current=p,T(!0),u(void 0);try{const L=await qe({fetchImpl:A});G(p,c)&&(s(L.checks),l(new Date),U({description:"诊断完成"}))}catch{G(p,c)&&u("网络诊断失败,请重试。")}finally{G(p,c)&&T(!1)}},[A,w,G]),me=d.useCallback(async()=>{const c=w;if(!c)return;const p=z.current+1;z.current=p,E(!0),u(void 0);try{await ze({fetchImpl:A}),J(p,c)&&(U({variant:"success",description:"证书续签成功"}),await H())}catch{J(p,c)&&u("证书续签失败,请重试。")}finally{J(p,c)&&E(!1)}},[A,w,J,H]),Y=d.useCallback(async c=>{if(K){F(!0),u(void 0);try{const p=await Ve({fetchImpl:A,patch:c});r(L=>L&&{...L,configuration:p.configuration}),m(p.applyState),U({variant:"success",description:"Network configuration saved"})}catch{u("网络配置保存失败,请重试。")}finally{F(!1)}}},[A,K]),pe=d.useMemo(()=>[{key:"local",title:"本机",values:n?.addresses.local??[]},{key:"lan",title:"局域网",values:n?.addresses.lan??[]},{key:"public",title:"公网",values:n?.addresses.public??[]}],[n]),re=t.pathname.split("/").filter(Boolean).at(-1),b=ne.some(c=>c.path===re)?re:"overview";return e.jsx(ye,{mode:"auto",listHeader:e.jsx(ge,{title:"Network"}),list:e.jsx(Be,{}),mainHeader:e.jsx(Fe,{title:ne.find(c=>(c.path||"overview")===b)?.label??"Overview",loading:y,stale:y&&!!n,onRefresh:H}),main:e.jsxs("section",{className:"flex min-h-full flex-col gap-4 bg-background p-6",children:[x?e.jsx("div",{role:"alert",className:"rounded-md border border-destructive/30 bg-destructive/10 px-4 py-3 text-sm text-destructive",children:x}):null,(b==="overview"||b==="endpoints")&&e.jsx(Ze,{endpoint:n?.endpoint,loading:y&&!n}),b==="overview"&&e.jsx(Ke,{status:n}),(b==="overview"||b==="addresses")&&e.jsx(tt,{sections:pe,loading:y&&!n,diagnostics:i,checkedAt:o}),b==="overview"&&e.jsx(it,{status:n}),b==="domain-dns"&&e.jsxs(e.Fragment,{children:[e.jsx(at,{status:n}),e.jsx(Ge,{configuration:n?.configuration,saving:I,applyState:a,onSave:Y})]}),b==="https"&&e.jsxs(e.Fragment,{children:[e.jsx(rt,{status:n}),e.jsx(Je,{configuration:n?.configuration,saving:I,applyState:a,onSave:Y})]}),b==="tunnel-profiles"&&e.jsxs(e.Fragment,{children:[e.jsx(We,{title:"Observed tunnel",label:"Tunnel",capability:n?.tunnel}),e.jsx(Ye,{configuration:n?.configuration,providers:n?.providers??[],ingress:n?.ingress,saving:I,applyState:a,onSave:Y})]}),b==="p2p"&&e.jsx(Qe,{configuration:n?.configuration,saving:I,applyState:a,onSave:Y}),(b==="overview"||b==="diagnostics"||b==="https")&&e.jsx(ot,{status:n,endpoint:n?.endpoint,diagnostics:i,diagnosing:D,renewing:B,onDiagnose:ue,onRenewCertificate:me})]}),className:"min-h-full"})}function Be(){const t=Ne();return e.jsx("aside",{className:"h-full border-r border-border bg-muted/20 py-2",children:e.jsx("nav",{"aria-label":"Network sections","data-list-navigation":!0,children:ne.map(n=>{const r=n.icon,i=`/network${n.path?`/${n.path}`:""}`;return e.jsxs(fe,{to:i,onClick:()=>t.openMain(),onKeyDown:ve,className:({isActive:s})=>be(s,{compact:!1}),end:n.path==="",children:[e.jsx(r,{className:"h-4 w-4","aria-hidden":"true"}),n.label]},n.id)})})})}function Fe({title:t,loading:n,stale:r,onRefresh:i}){return e.jsxs("div",{className:"flex h-full min-w-0 items-center justify-between gap-4 px-4",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("h1",{className:"text-sm font-semibold text-foreground",children:["Network · ",t]}),e.jsx("div",{className:"truncate text-xs text-muted-foreground","aria-live":"polite",children:r?"Refreshing · showing previous snapshot":"接入点、DNS、TLS、隧道与连通性诊断"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs(g,{type:"button",size:"sm",variant:"outline",onClick:i,disabled:n,children:[e.jsx(he,{className:"mr-2 h-4 w-4","aria-hidden":"true"}),"刷新"]})})]})}function Ke({status:t}){const n=t?.addresses.public[0]??t?.addresses.lan[0]??t?.addresses.local[0]??t?.endpoint,r=t?!t.dns.supported||t.dns.status==="unsupported"?"Configure Domain & DNS, then recheck observed DNS.":!t.tls.supported||!["valid","active","ready"].includes(t.tls.status)?"Review HTTPS configuration and certificate renewal evidence.":"No connectivity action is currently required.":"Refresh network status.",i=t?.tunnel.supported===!0;return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsx(S,{className:"text-base",children:"Preferred access path"}),e.jsx(P,{children:"First address this runtime has configured, in public → LAN → local order"})]}),e.jsxs(R,{className:"space-y-3 text-sm",children:[e.jsx("div",{className:"break-words font-medium",children:n??"Not configured"}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4",children:[e.jsxs(M,{variant:"outline",children:["Local ",t?.addresses.local.length?"configured":"not configured"]}),e.jsxs(M,{variant:"outline",children:["LAN ",t?.addresses.lan.length?"configured":"not configured"]}),e.jsxs(M,{variant:"outline",children:["Public ",t?.addresses.public.length?"configured":"not configured"]}),e.jsxs(M,{variant:"outline",children:["Tunnel ",i?t?.tunnel.status??"unknown":"not observed"]})]}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:"Configured addresses are not probe results; reachability is reported per route."}),e.jsxs("div",{className:"rounded-md border border-border bg-muted/30 p-3",children:[e.jsx("div",{className:"font-medium",children:"Next action"}),e.jsx("div",{className:"mt-1 text-muted-foreground",children:r})]})]})]})}function We({title:t,label:n,capability:r,extra:i}){return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsx(S,{className:"text-base",children:t}),e.jsx(P,{children:"Observed runtime state"})]}),e.jsx(R,{children:e.jsx(q,{label:n,capability:r,extra:i})})]})}function Z({title:t}){return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsx(S,{className:"text-base",children:t}),e.jsx(P,{children:"Desired configuration"})]}),e.jsxs(R,{className:"text-sm text-muted-foreground",children:["This runtime does not report a configurable ",t," capability."]})]})}function Ge({configuration:t,saving:n,applyState:r,onSave:i}){const[s,o]=d.useState(t?.domainDns),[l,x]=d.useState("");return d.useEffect(()=>{let u=!1;return queueMicrotask(()=>{u||o(t?.domainDns)}),()=>{u=!0}},[t]),s?e.jsxs(ee,{title:"Saved configuration",applyState:r,children:[e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx(j,{name:"domain",label:"Domain",value:s.domain,onChange:u=>o({...s,domain:u})}),e.jsx(j,{name:"provider",label:"DNS provider",value:s.provider,onChange:u=>o({...s,provider:u})}),e.jsx(ce,{name:"recordTtl",label:"Record TTL (seconds)",value:s.recordTtl,min:30,max:86400,onChange:u=>o({...s,recordTtl:u})}),e.jsx(j,{name:"dnsCredential",label:s.credentialConfigured?"Replace credential (configured)":"Credential",value:l,type:"password",onChange:x})]}),e.jsx(ae,{label:"Enable DDNS",checked:s.ddnsEnabled,onChange:u=>o({...s,ddnsEnabled:u})}),e.jsx(te,{label:"Save DNS configuration",saving:n,onClick:()=>i({domainDns:{domain:s.domain,ddnsEnabled:s.ddnsEnabled,provider:s.provider,recordTtl:s.recordTtl,...l?{credential:l}:{}}})})]}):e.jsx(Z,{title:"Domain & DNS"})}function Je({configuration:t,saving:n,applyState:r,onSave:i}){const[s,o]=d.useState(t?.https);return d.useEffect(()=>{let l=!1;return queueMicrotask(()=>{l||o(t?.https)}),()=>{l=!0}},[t]),s?e.jsxs(ee,{title:"Saved configuration",applyState:r,children:[e.jsx(ae,{label:"Enable HTTPS",checked:s.enabled,onChange:l=>o({...s,enabled:l})}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx(j,{name:"acmeEmail",label:"ACME email",value:s.acmeEmail,onChange:l=>o({...s,acmeEmail:l})}),e.jsx(j,{name:"acmeDomains",label:"Certificate domains",value:s.domains.join(", "),onChange:l=>o({...s,domains:l.split(",").map(x=>x.trim()).filter(Boolean)})}),e.jsx(j,{name:"certificatePath",label:"Certificate path",value:s.certificatePath??"",onChange:l=>o({...s,certificatePath:l})}),e.jsx(j,{name:"certificateKeyPath",label:"Private-key path",value:s.certificateKeyPath??"",onChange:l=>o({...s,certificateKeyPath:l})}),e.jsx(ce,{name:"renewBeforeDays",label:"Renew before (days)",value:s.renewBeforeDays,min:1,max:90,onChange:l=>o({...s,renewBeforeDays:l})})]}),e.jsx(te,{label:"Save HTTPS configuration",saving:n,onClick:()=>i({https:s})})]}):e.jsx(Z,{title:"HTTPS"})}function Ye({configuration:t,providers:n,ingress:r,saving:i,applyState:s,onSave:o}){const[l,x]=d.useState(t?.tunnelProfiles.activeProfileId??""),[u,y]=d.useState(t?.tunnelProfiles.profiles??[]),[h,D]=d.useState({});if(d.useEffect(()=>{let a=!1;return queueMicrotask(()=>{a||(x(t?.tunnelProfiles.activeProfileId??""),y(t?.tunnelProfiles.profiles??[]),D({}))}),()=>{a=!0}},[t]),!t)return e.jsx(Z,{title:"Tunnel Profiles"});const T=(a,m)=>y(v=>v.map(N=>N.id===a?{...N,...m}:N)),B=n.filter(a=>a.runtimeSupported),E=a=>n.find(m=>m.id===a),I=()=>{const a=`tunnel-${Date.now()}`,m=B[0]?.id??"ngrok";y(v=>[...v,{id:a,provider:m,label:"New tunnel",credentialConfigured:!1,parameters:{}}])},F=a=>{y(m=>m.filter(v=>v.id!==a)),l===a&&x("none")};return e.jsxs(ee,{title:"Saved tunnel profiles",applyState:s,children:[e.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:["Active profile",e.jsxs("select",{value:l||"none",onChange:a=>x(a.target.value),className:"block h-10 w-full rounded-md border border-input bg-background px-3 sm:max-w-sm",children:[e.jsx("option",{value:"none",children:"None"}),u.map(a=>e.jsxs("option",{value:a.id,children:[a.label," · ",a.provider]},a.id))]})]}),e.jsx("div",{className:"space-y-3",children:u.map(a=>e.jsxs("div",{className:"space-y-3 rounded-md border border-border p-3 text-sm",children:[e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsx(j,{name:`tunnel-label-${a.id}`,label:"Label",value:a.label,onChange:m=>T(a.id,{label:m})}),e.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:["Provider",e.jsx("select",{value:a.provider,onChange:m=>T(a.id,{provider:m.target.value,parameters:{}}),className:"block h-10 w-full rounded-md border border-input bg-background px-3",children:B.map(m=>e.jsx("option",{value:m.id,children:m.label},m.id))})]}),E(a.provider)?.endpointSource==="declared"?e.jsx(j,{name:`tunnel-url-${a.id}`,label:"Public endpoint (declared)",value:a.publicUrl??"",onChange:m=>T(a.id,{publicUrl:m})}):e.jsx("p",{className:"text-xs text-muted-foreground",children:"The provider reports its public endpoint; there is nothing to type here."}),e.jsx(j,{name:`tunnel-credential-${a.id}`,label:a.credentialConfigured?"Replace credential (configured)":"Credential",type:"password",value:h[a.id]??"",onChange:m=>D(v=>({...v,[a.id]:m}))})]}),e.jsxs("details",{children:[e.jsx("summary",{className:"cursor-pointer font-medium",children:"Provider-specific parameters"}),e.jsx("div",{className:"mt-3 grid gap-3 sm:grid-cols-2",children:(E(a.provider)?.parameterFields??[]).map(({key:m,label:v})=>e.jsx(j,{name:`tunnel-${m}-${a.id}`,label:v,value:a.parameters?.[m]??"",onChange:N=>T(a.id,{parameters:{...a.parameters,[m]:N}})},m))})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsxs("span",{className:"text-xs text-muted-foreground",children:[l===a.id?"Active after restart":"Inactive"," · credential ",a.credentialConfigured?"configured":"missing"]}),e.jsx(g,{type:"button",size:"sm",variant:"ghost",onClick:()=>F(a.id),children:"Remove"})]})]},a.id))}),e.jsx(g,{type:"button",size:"sm",variant:"outline",onClick:I,children:"Add tunnel profile"}),e.jsx(Xe,{ingress:r,descriptor:E(u.find(a=>a.id===l)?.provider??"")}),e.jsx(te,{label:"Save tunnel profiles",saving:i,onClick:()=>o({tunnelProfiles:{activeProfileId:l,profiles:u.map(a=>({id:a.id,provider:a.provider,label:a.label,publicUrl:a.publicUrl,parameters:a.parameters,...h[a.id]?{credential:h[a.id]}:{}}))}})})]})}function Xe({ingress:t,descriptor:n}){if(!t||n?.originOwner!=="console")return null;const r=async()=>{await window.navigator.clipboard.writeText(t.originUrl),U({description:"Tunnel origin copied"})};return e.jsxs("div",{className:"rounded-md border border-border bg-muted/30 p-3","data-testid":"ingress-origin",children:[e.jsx("div",{className:"text-xs font-medium text-muted-foreground",children:"Tunnel origin (paste into the provider console)"}),e.jsxs("div",{className:"mt-1 flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"break-all font-mono text-sm",children:t.originUrl}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:"Set the tunnel's local port / service to this address, not the Gateway port: this is the entry that never treats a tunnelled caller as local."})]}),e.jsxs("div",{className:"flex shrink-0 gap-1",children:[e.jsx(g,{type:"button",size:"icon",variant:"ghost","aria-label":"Copy tunnel origin",onClick:()=>{r()},children:e.jsx(se,{className:"h-4 w-4","aria-hidden":"true"})}),n.consoleUrl?e.jsx(g,{type:"button",size:"icon",variant:"ghost","aria-label":`Open ${n.label} console`,onClick:()=>window.open(n.consoleUrl,"_blank","noopener,noreferrer"),children:e.jsx(le,{className:"h-4 w-4","aria-hidden":"true"})}):null]})]})]})}function Qe({configuration:t,saving:n,applyState:r,onSave:i}){const[s,o]=d.useState(t?.p2p);return d.useEffect(()=>{let l=!1;return queueMicrotask(()=>{l||o(t?.p2p)}),()=>{l=!0}},[t]),s?e.jsxs(ee,{title:"Saved P2P configuration",applyState:r,children:[e.jsx(ae,{label:"Enable P2P fallback",checked:s.enabled,onChange:l=>o({...s,enabled:l})}),e.jsx(j,{name:"signalService",label:"Signal service",value:s.signalService,onChange:l=>o({...s,signalService:l})}),e.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:["Fallback policy",e.jsxs("select",{value:s.fallbackPolicy,onChange:l=>o({...s,fallbackPolicy:l.target.value}),className:"block h-10 w-full rounded-md border border-input bg-background px-3 sm:max-w-sm",children:[e.jsx("option",{value:"never",children:"Never"}),e.jsx("option",{value:"when-direct-unavailable",children:"When direct is unavailable"}),e.jsx("option",{value:"prefer-p2p",children:"Prefer P2P"})]})]}),e.jsx(te,{label:"Save P2P configuration",saving:n,onClick:()=>i({p2p:s})})]}):e.jsx(Z,{title:"P2P"})}function ee({title:t,applyState:n,children:r}){return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsx(S,{className:"text-base",children:t}),e.jsx(P,{children:"Desired configuration · not presented as observed until verified"})]}),e.jsxs(R,{className:"space-y-4",children:[n==="restart-required"?e.jsx("div",{role:"status",className:"rounded-md border border-amber-300 bg-amber-50 px-3 py-2 text-sm text-amber-800 dark:bg-amber-950/20 dark:text-amber-200",children:"Saved · restart required"}):null,r]})]})}function j({name:t,label:n,value:r,type:i="text",onChange:s}){return e.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:[n,e.jsx("input",{name:t,type:i,value:r,onChange:o=>s(o.target.value),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm"})]})}function ce({name:t,label:n,value:r,min:i,max:s,onChange:o}){return e.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:[n,e.jsx("input",{name:t,type:"number",value:r,min:i,max:s,onChange:l=>o(l.target.valueAsNumber),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm"})]})}function ae({label:t,checked:n,onChange:r}){return e.jsxs("label",{className:"flex items-center justify-between gap-3 rounded-md border border-border p-3 text-sm font-medium",children:[t,e.jsx("input",{type:"checkbox",checked:n,onChange:i=>r(i.target.checked)})]})}function te({label:t,saving:n,onClick:r}){return e.jsx("div",{className:"flex justify-end",children:e.jsx(g,{type:"button",onClick:r,disabled:n,children:n?"Saving…":t})})}function Ze({endpoint:t,loading:n}){const r=[{label:"Canonical URL",value:t},{label:"API endpoint",value:t?et(t,"/api/"):void 0}],i=async(s,o)=>{await window.navigator.clipboard.writeText(o),U({description:`${s} copied`})};return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(de,{className:"h-4 w-4","aria-hidden":"true"}),"接入点"]}),e.jsx(P,{children:n?"正在解析接入点":"Observed endpoints · Currently effective route is the canonical URL"})]}),e.jsx(R,{className:"space-y-3",children:r.map(({label:s,value:o})=>e.jsxs("div",{className:"flex items-start justify-between gap-3 rounded-md border border-border p-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-xs font-medium text-muted-foreground",children:s}),e.jsx("div",{className:"mt-1 break-words text-sm text-foreground",children:o||"Unavailable"})]}),o?e.jsxs("div",{className:"flex shrink-0 gap-1",children:[e.jsx(g,{type:"button",size:"icon",variant:"ghost","aria-label":`Copy ${s}`,onClick:()=>{i(s,o)},children:e.jsx(se,{className:"h-4 w-4","aria-hidden":"true"})}),e.jsx(g,{type:"button",size:"icon",variant:"ghost","aria-label":`Open ${s}`,onClick:()=>window.open(o,"_blank","noopener,noreferrer"),children:e.jsx(le,{className:"h-4 w-4","aria-hidden":"true"})})]}):null]},s))})]})}function et(t,n){try{return new URL(n,t).toString()}catch{return t}}function tt({sections:t,loading:n,diagnostics:r,checkedAt:i}){return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(Oe,{className:"h-4 w-4","aria-hidden":"true"}),"网络地址"]}),e.jsx(P,{children:n?"正在刷新地址":"由运行时网络能力上报"})]}),e.jsx(R,{className:"space-y-4",children:t.map(s=>e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-medium text-muted-foreground",children:s.title}),s.values.length>0?e.jsx("div",{className:"mt-1 space-y-1",children:s.values.map(o=>e.jsx(nt,{scope:s.key,value:o,diagnostics:r,checkedAt:i},o))}):e.jsx("div",{className:"mt-1 text-sm text-muted-foreground",children:"未提供"})]},s.key))})]})}function nt({scope:t,value:n,diagnostics:r,checkedAt:i}){const s=st(n),o=r.find(l=>l.id==="address-configuration");return e.jsxs("div",{className:"rounded-md border border-border p-3 text-sm",children:[e.jsx("div",{className:"break-words font-medium text-foreground",children:n}),e.jsxs("dl",{className:"mt-2 grid gap-x-4 gap-y-1 text-xs sm:grid-cols-2",children:[e.jsx(f,{label:"Interface",value:t==="local"?"Loopback":t==="lan"?"LAN interface (name not reported)":"Public route"}),e.jsx(f,{label:"IP version",value:s.ipVersion}),e.jsx(f,{label:"Port",value:s.port}),e.jsx(f,{label:"Configured",value:o?o.status==="ok"?"Yes":"No":"Not checked"}),e.jsx(f,{label:"Reachability",value:"Not probed"}),e.jsx(f,{label:"Configuration checked",value:o?.checkedAt?O(o.checkedAt):i?i.toLocaleString():"Not checked"})]})]})}function f({label:t,value:n}){return e.jsxs("div",{className:"flex justify-between gap-3",children:[e.jsx("dt",{className:"text-muted-foreground",children:t}),e.jsx("dd",{className:"text-right text-foreground",children:n})]})}function st(t){try{const n=new URL(t),r=n.hostname.replace(/^\[|\]$/g,"");return{ipVersion:r.includes(":")?"IPv6":/^\d{1,3}(?:\.\d{1,3}){3}$/.test(r)?"IPv4":"Resolved hostname",port:n.port||(n.protocol==="https:"?"443":n.protocol==="http:"?"80":"Not reported")}}catch{return{ipVersion:"Not reported",port:"Not reported"}}}function at({status:t}){const n=t?.configuration?.domainDns,r=(t?.addresses.public??[]).map(i=>{try{return new URL(i).hostname}catch{return i}});return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsx(S,{className:"text-base",children:"Observed DNS"}),e.jsx(P,{children:"Observed state is kept separate from desired DNS policy."})]}),e.jsxs(R,{className:"space-y-3",children:[e.jsx(q,{label:"Runtime status",capability:t?.dns}),e.jsxs("dl",{className:"grid gap-2 text-sm sm:grid-cols-2",children:[e.jsx(f,{label:"Observed hostnames",value:r.join(", ")||"Not reported"}),e.jsx(f,{label:"Expected domain",value:n?.domain||"Not configured"}),e.jsx(f,{label:"Expected value",value:t?.addresses.public[0]||"Not reported"}),e.jsx(f,{label:"Provider",value:n?.provider||"Not configured"})]})]})]})}function rt({status:t}){const n=t?.configuration?.https;return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsx(S,{className:"text-base",children:"Observed HTTPS"}),e.jsx(P,{children:"Certificate evidence reported by the active runtime."})]}),e.jsxs(R,{className:"space-y-3",children:[e.jsx(q,{label:"TLS",capability:t?.tls,extra:t?.tls.expiresAt?`Expires ${O(t.tls.expiresAt)}`:void 0}),e.jsxs("dl",{className:"grid gap-2 text-sm sm:grid-cols-2",children:[e.jsx(f,{label:"Certificate domains",value:t?.tls.domains?.join(", ")||n?.domains.join(", ")||"Not reported"}),e.jsx(f,{label:"Issuer",value:t?.tls.issuer||"Not reported by runtime"}),e.jsx(f,{label:"Validity",value:t?.tls.validFrom?`${O(t.tls.validFrom)} — ${t.tls.expiresAt?O(t.tls.expiresAt):"open"}`:t?.tls.status??"Not reported"}),e.jsx(f,{label:"Expiry",value:t?.tls.expiresAt?O(t.tls.expiresAt):"Not reported"}),e.jsx(f,{label:"Renewal status",value:t?.tls.renewalStatus||(t?.actions.renewCertificate?"Renewal available":"Renewal unavailable")}),e.jsx(f,{label:"Renewal policy",value:n?`${n.renewBeforeDays} days before expiry`:"Not configured"})]})]})]})}function it({status:t}){return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(ie,{className:"h-4 w-4","aria-hidden":"true"}),"网络能力"]}),e.jsx(P,{children:"服务端声明的网络支持"})]}),e.jsxs(R,{className:"grid gap-3 text-sm",children:[e.jsx(q,{label:"TLS",capability:t?.tls,extra:t?.tls.expiresAt?`到期时间 ${O(t.tls.expiresAt)}`:void 0}),e.jsx(q,{label:"DNS",capability:t?.dns}),e.jsx(q,{label:"Tunnel",capability:t?.tunnel})]})]})}function ot({status:t,endpoint:n,diagnostics:r,diagnosing:i,renewing:s,onDiagnose:o,onRenewCertificate:l}){const x=r.length>0?He({generatedAt:new Date().toISOString(),endpoint:n,checks:r}):void 0,u=async()=>{x&&(await window.navigator.clipboard.writeText(x),U({description:"Diagnostic report copied"}))},y=()=>{if(!x)return;const h=URL.createObjectURL(new Blob([x],{type:"text/plain;charset=utf-8"})),D=document.createElement("a");D.href=h,D.download=`xpod-network-diagnostics-${new Date().toISOString().replace(/[:.]/g,"-")}.txt`,D.click(),URL.revokeObjectURL(h)};return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(oe,{className:"h-4 w-4","aria-hidden":"true"}),"操作"]}),e.jsx(P,{children:"仅显示网络能力允许的操作"})]}),e.jsxs(R,{className:"space-y-4",children:[e.jsxs("div",{className:"flex flex-wrap gap-2",children:[t?.actions.diagnose?e.jsxs(g,{type:"button",size:"sm",variant:"outline",onClick:o,disabled:i,children:[e.jsx(Ie,{className:"mr-2 h-4 w-4","aria-hidden":"true"}),"连通性诊断"]}):null,t?.actions.renewCertificate?e.jsxs(g,{type:"button",size:"sm",variant:"subtle",onClick:l,disabled:s,children:[e.jsx(we,{className:"mr-2 h-4 w-4","aria-hidden":"true"}),"续签证书"]}):null,e.jsxs(g,{type:"button",size:"sm",variant:"outline",onClick:()=>{u()},disabled:!x,children:[e.jsx(se,{className:"mr-2 h-4 w-4","aria-hidden":"true"}),"Copy diagnostics"]}),e.jsxs(g,{type:"button",size:"sm",variant:"outline",onClick:y,disabled:!x,children:[e.jsx(ke,{className:"mr-2 h-4 w-4","aria-hidden":"true"}),"Export diagnostics"]})]}),r.length>0?e.jsx("div",{className:"space-y-2",children:r.map(h=>e.jsxs("div",{className:"rounded-md border border-border bg-muted/30 p-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("div",{className:"text-sm font-medium text-foreground",children:h.label}),e.jsx(M,{variant:h.status==="ok"?"secondary":"outline",children:h.status})]}),h.detail?e.jsx("div",{className:"mt-1 break-words text-xs text-muted-foreground",children:h.detail}):null]},h.id))}):e.jsx("div",{className:"text-sm text-muted-foreground",children:"尚未运行过诊断。"})]})]})}function q({label:t,capability:n,extra:r}){const i=n?.supported===!0;return e.jsxs("div",{className:"rounded-md border border-border bg-muted/30 p-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-medium text-foreground",children:i?t:`${t} 不支持`}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[n?.status??"读取中",n?.detail?` · ${n.detail}`:""]})]}),e.jsx(M,{variant:i?"secondary":"outline",children:i?"支持":"不支持"})]}),r?e.jsx("div",{className:"mt-2 text-xs text-muted-foreground",children:r}):null]})}function O(t){if(!t)return"暂无记录";const n=new Date(t);return Number.isNaN(n.getTime())?"暂无记录":n.toLocaleString()}export{bt as default};
@@ -1 +0,0 @@
1
- import{j as t}from"./global-DMtP8ZF4.js";function s({title:e}){return t.jsx("div",{className:"flex h-full items-center px-4 text-sm font-semibold text-foreground",children:e})}export{s as P};
@@ -1 +0,0 @@
1
- import{r as g,j as n}from"./global-DMtP8ZF4.js";import{i as p,A as f}from"./ModelAssignmentsPanel-Cam9V9BN.js";import{u as k}from"./AiConfigContext-B2cVJFNu.js";import"./dialog-_7AVvv5q.js";import"./index-CQR3iePj.js";import"./ai-connections-DexTPyfC.js";import"./XpodAiConnectionsPodStore-OndzbigX.js";import"./index-browser-kAl2JmYB.js";function w(){const{config:r,capabilities:d,save:o,rebuild:c,saveAndRebuild:i,saving:l,rebuilding:s}=k(),[e,a]=g.useState(r?.searchIndexing);if(g.useEffect(()=>{let t=!1;return queueMicrotask(()=>{t||a(r?.searchIndexing)}),()=>{t=!0}},[r]),!e)return null;const u=async t=>{t.preventDefault(),await o({searchIndexing:e})},x=e.ftsEnabled&&e.vectorEnabled?"all":e.vectorEnabled?"vector":"fts",b=d?.rebuildTargets?.includes(x)===!0,m=p(e,r?.searchIndexing);return n.jsxs(f,{title:"Search & Indexing",description:"Choose which derived search indexes Xpod maintains for this Pod.",onSubmit:u,onRestore:()=>o({searchIndexing:{ftsEnabled:!0,vectorEnabled:!0,progressiveIndexingEnabled:!0,textBackend:"auto",vectorBackend:"auto"}}),saving:l||s,dirty:m,footerActions:n.jsx("button",{type:"button",disabled:!b||l||s,onClick:()=>m?i({searchIndexing:e},x):c(x),className:"h-9 rounded-md border border-input px-3 text-sm font-medium disabled:opacity-50",children:s?"Scheduling…":m&&b?"Save and schedule rebuild":b?"Schedule rebuild":"Rebuild unavailable on this runtime"}),children:[n.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[n.jsx(h,{title:"Full-text Search",enabled:e.ftsEnabled,onEnabled:t=>a({...e,ftsEnabled:t}),backend:e.textBackend,onBackend:t=>a({...e,textBackend:t}),backends:[["auto","Auto"],...(d?.textBackends??[]).map(t=>[t,t==="fts5"?"FTS5":"PostgreSQL FTS"])]}),n.jsx(h,{title:"Vector Search",enabled:e.vectorEnabled,onEnabled:t=>a({...e,vectorEnabled:t}),backend:e.vectorBackend,onBackend:t=>a({...e,vectorBackend:t}),backends:[["auto","Auto"],...(d?.vectorBackends??[]).map(t=>[t,t==="vec"?"VEC":"pgvector"])]})]}),n.jsxs("label",{className:"flex items-start justify-between gap-4 rounded-xl border border-border p-4",children:[n.jsxs("span",{children:[n.jsx("span",{className:"block text-sm font-medium",children:"Progressive indexing"}),n.jsx("span",{className:"block text-xs text-muted-foreground",children:"Expand coverage as content becomes relevant instead of embedding everything eagerly."})]}),n.jsx("input",{name:"progressiveIndexingEnabled",type:"checkbox",checked:e.progressiveIndexingEnabled,onChange:t=>a({...e,progressiveIndexingEnabled:t.target.checked}),className:"mt-1 h-4 w-4 rounded border-input"})]})]})}function h({title:r,enabled:d,onEnabled:o,backend:c,onBackend:i,backends:l}){const s=l.filter(([a])=>a!=="auto"),e=v(c);return n.jsxs("section",{className:"rounded-xl border border-border p-4",children:[n.jsxs("label",{className:"flex items-center justify-between gap-3 text-sm font-medium",children:[r,n.jsx("input",{type:"checkbox",checked:d,onChange:a=>o(a.target.checked),className:"h-4 w-4 rounded border-input"})]}),n.jsxs("label",{className:"mt-4 flex items-center justify-between gap-3 text-xs font-medium text-muted-foreground",children:["Choose backend manually",n.jsx("input",{type:"checkbox",checked:e,disabled:s.length===0,onChange:a=>i(a.target.checked?s[0]?.[0]??"auto":"auto"),className:"h-4 w-4 rounded border-input"})]}),e?n.jsxs("label",{className:"mt-3 block space-y-2 text-xs font-medium text-muted-foreground",children:["Backend",n.jsx("select",{value:c,onChange:a=>i(a.target.value),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm text-foreground",children:s.map(([a,u])=>n.jsx("option",{value:a,children:u},a))})]}):n.jsx("p",{className:"mt-3 text-xs text-muted-foreground",children:"Auto selects the runtime-supported backend."})]})}function v(r){return r!=="auto"}export{w as SearchIndexingPanel,v as isManualBackendSelection};
@@ -1 +0,0 @@
1
- import{c as L,r as o,j as e,B as N,R as T,C as l,a as u,b as h,d as f,e as m}from"./global-DMtP8ZF4.js";import{f as D,a as M,t as _,r as O}from"./admin-C6qCRFiY.js";import{E as q}from"./external-link--Yq8inDb.js";const G=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],U=L("rotate-cw",G);function Q({serviceId:t,title:r}){const[s,d]=o.useState(),[g,R]=o.useState(),[j,k]=o.useState([]),[v,p]=o.useState(),[b,S]=o.useState(!0),[y,w]=o.useState(!1),[C,$]=o.useState(),c=o.useCallback(async a=>{S(!0);try{const[n,A]=await Promise.all([D({signal:a}),M({source:t,level:"error",limit:5})]);d(t==="gateway"?{name:"gateway",status:"running",pid:n.adminData?.pid,uptime:n.adminData?.uptime?n.adminData.uptime*1e3:void 0,restartCount:0}:n.servicesData?.find(E=>E.name===t)),R(n.configData??void 0),k(A),$(n.checkedAt),p(void 0)}catch(n){n instanceof DOMException&&n.name==="AbortError"||p("Service status could not be loaded. The previous snapshot is retained.")}finally{S(!1)}},[t]);o.useEffect(()=>{const a=new AbortController;let n=!0;return Promise.resolve().then(()=>{n&&c(a.signal)}),()=>{n=!1,a.abort()}},[c]);const x=o.useMemo(()=>X(t,g),[g,t]),P=async()=>{const a=t==="gateway"?"the whole Xpod runtime":`${r} only`;if(!window.confirm(`Restart ${a}? Active requests may be interrupted.`))return;w(!0);const n=t==="gateway"?await _():await O(t);w(!1),n?setTimeout(()=>{c()},750):p(`Restart request for ${r} was not accepted by this runtime.`)};return e.jsxs("div",{className:"space-y-4 p-6",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsx("div",{"aria-live":"polite",className:"text-xs text-muted-foreground",children:b?"Refreshing service evidence…":C?`Checked ${C.toLocaleString()}`:"Not checked"}),e.jsxs(N,{type:"button",size:"sm",variant:"outline",onClick:()=>{c()},disabled:b,children:[e.jsx(T,{className:"mr-2 h-4 w-4"}),"Refresh"]})]}),v&&e.jsx("div",{role:"alert",className:"rounded-md border border-destructive/30 p-3 text-sm text-destructive",children:v}),e.jsxs(l,{children:[e.jsxs(u,{children:[e.jsx(h,{children:r}),e.jsx(f,{children:"Observed state, endpoint, health evidence, dependencies, and explicitly scoped lifecycle action."})]}),e.jsxs(m,{className:"grid gap-3 text-sm sm:grid-cols-2 xl:grid-cols-3",children:[e.jsx(i,{label:"State",value:s?.status??"Unknown"}),e.jsx(i,{label:"PID",value:s?.pid?.toString()??"Not reported"}),e.jsx(i,{label:"Uptime",value:s?.uptime?z(s.uptime):"Not reported"}),e.jsx(i,{label:"Restart count",value:s?.restartCount?.toString()??"Not reported"}),e.jsx(i,{label:"Internal endpoint",value:x.endpoint}),e.jsx(i,{label:"Health check",value:x.healthCheck})]})]}),e.jsxs(l,{children:[e.jsx(u,{children:e.jsx(h,{children:"Dependencies"})}),e.jsx(m,{className:"grid gap-3 text-sm sm:grid-cols-2",children:x.dependencies.map(a=>e.jsx(i,{label:a,value:B(a,t,s)},a))})]}),e.jsxs(l,{children:[e.jsxs(u,{children:[e.jsx(h,{children:"Recent errors"}),e.jsxs(f,{children:["Latest supervisor errors scoped to ",r,"."]})]}),e.jsxs(m,{className:"space-y-2",children:[j.length?j.map(a=>e.jsxs("div",{className:"rounded-lg border border-border p-3 text-sm",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:new Date(a.timestamp).toLocaleString()}),e.jsx("div",{className:"mt-1 break-words",children:a.message})]},`${a.timestamp}-${a.message}`)):e.jsx("p",{className:"text-sm text-muted-foreground",children:"No recent errors reported."}),e.jsxs("a",{className:"inline-flex items-center text-sm font-medium text-primary hover:underline",href:`/status/logs?source=${t}`,children:[e.jsx(q,{className:"mr-1.5 h-4 w-4"}),"Open related logs"]})]})]}),e.jsxs(l,{children:[e.jsxs(u,{children:[e.jsx(h,{children:"Lifecycle"}),e.jsx(f,{children:t==="gateway"?"Gateway is the parent process, so this action restarts the whole Xpod runtime.":`This action restarts ${r} only; dependent requests may briefly fail.`})]}),e.jsx(m,{children:e.jsxs(N,{type:"button",variant:"destructive",onClick:()=>{P()},disabled:y,children:[e.jsx(U,{className:"mr-2 h-4 w-4"}),y?"Restarting…":t==="gateway"?"Restart Xpod runtime…":`Restart ${r}…`]})})]})]})}function X(t,r){const s=r?.env??{};return t==="gateway"?{endpoint:window.location.origin,healthCheck:"GET /service/status",dependencies:["Solid Server","API Server"]}:t==="css"?{endpoint:s.CSS_PORT?`http://127.0.0.1:${s.CSS_PORT}`:"Internal endpoint not reported",healthCheck:"TCP readiness + Solid root request",dependencies:["Authority storage","Identity service"]}:{endpoint:s.API_INTERNAL_URL||(s.API_PORT?`http://127.0.0.1:${s.API_PORT}`:"Internal endpoint not reported"),healthCheck:"GET /health",dependencies:["Solid Server","Configuration store"]}}function B(t,r,s){return s?s.status!=="running"?`${H(r)} is ${s.status}; dependency health is not implied`:`${t} required; direct probe evidence is not reported by this runtime`:"Not reported"}function H(t){return t==="gateway"?"Gateway":t==="css"?"Solid Server":"API Server"}function i({label:t,value:r}){return e.jsxs("div",{className:"rounded-lg border border-border p-3",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:t}),e.jsx("div",{className:"mt-1 break-all font-medium",children:r})]})}function z(t){const r=Math.floor(t/1e3),s=Math.floor(r/3600),d=Math.floor(r%3600/60);return s?`${s}h ${d}m`:`${d}m ${r%60}s`}export{Q as ServiceStatusPanel};
@@ -1 +0,0 @@
1
- import{c as r,a1 as l,a2 as x,a3 as h,Y as y,j as a,Z as v,_ as p,$ as m,a0 as k}from"./global-DMtP8ZF4.js";import{A as u}from"./activity-BAZEToJ3.js";import{W as f,N as w}from"./waypoints-D-Qv_sME.js";import{P as g}from"./PaneListHeader-270Z179Z.js";import{T as N,u as j}from"./workspace-layout-BSMCQq35.js";const b=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],I=r("boxes",b);const S=[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]],M=r("braces",S);const _=[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]],L=r("hard-drive",_);const z=[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]],d=r("scroll-text",z);const H=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],D=r("server",H);const V=[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]],$=r("timer",V);function s(i,t,e,n,o){return{id:i,label:t,path:e,href:`/status/${e}`,end:!0,group:n,icon:o}}const c=[s("overview","Overview","overview","Overview",u),s("gateway","Gateway","services/gateway","Services",f),s("solid-server","Solid Server","services/solid-server","Services",l),s("api-server","API Server","services/api-server","Services",D),s("logs","Logs","logs","Diagnostics",d),s("index-overview","Index Overview","index","Index",I),s("rdf","RDF","index/rdf","Index",M),s("fts","FTS","index/fts","Index",d),s("vector","Vector","index/vector","Index",x),s("retrieval-points","Retrieval Points","index/retrieval-points","Index",w),s("cache","Cache","index/cache","Index",L),s("slow-queries","Slow Queries","index/slow-queries","Index",$),s("benchmark","Benchmark","index/benchmark","Index",h)],q=["Overview","Services","Diagnostics","Index"];function B(){const i=y(),t=[...c].sort((e,n)=>n.path.length-e.path.length).find(e=>i.pathname.endsWith(e.path))??c[0];return a.jsx(N,{mode:"auto",listHeader:a.jsx(g,{title:"Status"}),list:a.jsx(A,{}),mainHeader:a.jsx("div",{className:"flex h-full items-center px-4",children:a.jsxs("div",{children:[a.jsxs("h1",{className:"text-sm font-semibold",children:["Status · ",t.label]}),a.jsx("div",{className:"text-xs text-muted-foreground",children:"Observed state and operational evidence"})]})}),main:a.jsx("section",{className:"min-h-full bg-background",children:a.jsx(v,{})}),className:"min-h-full"})}function A(){const i=j();return a.jsx("aside",{"data-list-navigation":!0,className:"h-full overflow-y-auto border-r border-border bg-muted/20 py-2",children:q.map(t=>a.jsxs("section",{className:"mb-3",children:[a.jsx("h2",{className:"px-5 py-1 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:t}),c.filter(e=>e.group===t).map(e=>{const n=e.icon;return a.jsxs(p,{to:e.path,end:e.end,onKeyDown:m,onClick:()=>i.openMain(),className:({isActive:o})=>k(o,{compact:!1}),children:[a.jsx(n,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}),e.label]},e.id)})]},t))})}export{B as default};
@@ -1 +0,0 @@
1
- import{c as l,a1 as h,Y as u,r as c,j as e,Z as x,_ as b,$ as y,a0 as g}from"./global-DMtP8ZF4.js";import{K as f}from"./key-round-DzpWBVN9.js";import{b as v,c as k}from"./admin-C6qCRFiY.js";import{p as j}from"./settings-projection-CUkyprDQ.js";import{P as N}from"./PaneListHeader-270Z179Z.js";import{T as S,u as w}from"./workspace-layout-BSMCQq35.js";const M=[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]],P=l("box",M);const L=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],C=l("cloud",L);const _=[["path",{d:"m10.852 14.772-.383.923",key:"11vil6"}],["path",{d:"M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923",key:"1v3clb"}],["path",{d:"m13.148 9.228.383-.923",key:"t2zzyc"}],["path",{d:"m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544",key:"1bxfiv"}],["path",{d:"m14.772 10.852.923-.383",key:"k9m8cz"}],["path",{d:"m14.772 13.148.923.383",key:"1xvhww"}],["path",{d:"M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5",key:"tn8das"}],["path",{d:"M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5",key:"1g2pve"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M6 6h.01",key:"1utrut"}],["path",{d:"m9.228 10.852-.923-.383",key:"1wtb30"}],["path",{d:"m9.228 13.148-.923.383",key:"1a830x"}]],A=l("server-cog",_);const H=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],D=l("wrench",H),I=[{scope:"account",label:"Account",description:"Your Pod and its session.",items:[{id:"pod",label:"Pod",path:"pod",description:"Current Pod identity and data boundary.",icon:P},{id:"identity-access",label:"Identity & Access",path:"identity-access",description:"Session, WebID, and account access.",icon:f}]},{scope:"node",label:"This node",description:"Shared by every Pod on this machine.",items:[{id:"storage",label:"Storage",path:"storage",description:"Authority storage backend and limits.",icon:h},{id:"runtime",label:"Runtime",path:"runtime",description:"Low-frequency runtime configuration.",icon:A},{id:"cloud",label:"Cloud",path:"cloud",description:"Cloud coordination settings when supported.",icon:C},{id:"advanced",label:"Advanced",path:"advanced",description:"Expert and compatibility controls.",icon:D}]}];function Z(){const r=u(),[n,s]=c.useState(!1);c.useEffect(()=>{let t=!1;return Promise.all([v(),k()]).then(([d,p])=>{t||s(j({registered:d?.registered===!0,managed:d?.managed===!0,domainAllocated:p?.allocated===!0}).cloud)}),()=>{t=!0}},[]);const a=c.useMemo(()=>I.map(t=>({...t,items:t.items.filter(d=>d.id!=="cloud"||n)})).filter(t=>t.items.length>0),[n]),o=c.useMemo(()=>a.flatMap(t=>t.items),[a]),i=o.find(t=>r.pathname.endsWith(`/${t.path}`))??o[0],m=a.find(t=>t.items.includes(i))?.scope;return e.jsx(S,{mode:"auto",listHeader:e.jsx(N,{title:"Settings"}),list:e.jsx($,{groups:a}),mainHeader:e.jsx("div",{className:"flex h-full items-center px-4",children:e.jsxs("div",{children:[e.jsxs("h1",{className:"text-sm font-semibold",children:["Settings · ",i.label]}),e.jsx("div",{className:"text-xs text-muted-foreground",children:i.description}),m==="node"?e.jsx("div",{className:"text-xs text-amber-700 dark:text-amber-300",children:"Applies to every Pod on this machine."}):null]})}),main:e.jsx("section",{className:"min-h-full bg-background",children:e.jsx(x,{})}),className:"min-h-full"})}function $({groups:r}){const n=w();return e.jsx("aside",{className:"h-full border-r border-border bg-muted/20 py-2",children:e.jsx("nav",{"aria-label":"Settings sections","data-list-navigation":!0,children:r.map(s=>e.jsxs("div",{children:[e.jsxs("div",{className:"px-4 pb-1 pt-3",children:[e.jsx("div",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:s.label}),e.jsx("div",{className:"text-xs leading-4 text-muted-foreground",children:s.description})]}),s.items.map(a=>{const o=a.icon;return e.jsxs(b,{to:a.path,"aria-label":a.label,onKeyDown:y,onClick:()=>n.openMain(),className:({isActive:i})=>g(i,{compact:!1}),children:[e.jsx(o,{className:"mt-0.5 h-4 w-4 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[e.jsx("span",{className:"block text-sm font-medium",children:a.label}),e.jsx("span",{className:"block text-xs leading-4 text-muted-foreground",children:a.description})]})]},a.id)})]},s.scope))})})}export{Z as default};
@@ -1,33 +0,0 @@
1
- import{a6 as Ne,a7 as H,a8 as Re,a9 as O,aa as Ve,ab as ae,ac as Je,ad as fe,ae as Ye,af as Qe,U as Ze,ag as et,ah as tt,t as nt,r as d,j as s,B as S,R as rt,C as st,a as ot,b as at,d as ct,e as it,ai as dt,aj as je,ak as lt}from"./global-DMtP8ZF4.js";import{d as ut,e as ft,b as ht,c as pt,h as mt,i as gt,t as wt,u as bt}from"./admin-C6qCRFiY.js";import{a as yt}from"./settings-projection-CUkyprDQ.js";import{e as vt,a as he}from"./ai-connections-DexTPyfC.js";import{R as xt}from"./rotate-ccw-CtVsCcAx.js";import{S as pe}from"./skeleton-R_ACks7d.js";import{E as At}from"./external-link--Yq8inDb.js";class A extends Error{code;constructor(t,n){super(n),this.name="AccountStorageBindingsError",this.code=t}}async function Ct(e){const t=St(e.origin),n=e.controls?.account?.bindings;if(typeof n!="string"||n.trim()==="")throw new A("missing-control","Account storage bindings control is unavailable");const r=e.fetchImpl??fetch,o=Nt(n,t),a=o.origin===t?o.href:await Ne(o.href,r,e.trustedAccountIndex);if(!a)throw new A("cross-origin","Account storage bindings control is not hosted by this Xpod");const c=H({Accept:"application/json",...e.headers});let i;try{i=await r(a,{headers:c,credentials:"include"})}catch(u){throw new A("request-failed",u instanceof Error?u.message:"Failed to load Account storage bindings")}if(i.status===401||i.status===403)throw new A("forbidden","Account storage bindings require an authenticated Account");if(!i.ok)throw new A("request-failed",`Account storage bindings request failed (${i.status})`);let l;try{l=await i.json()}catch{throw new A("invalid-response","Account storage bindings response is not valid JSON")}return It(l,o.origin,Et(o,e.trustedAccountIndex,t))}function It(e,t,n=!1){if(!me(e)||!Array.isArray(e.bindings))throw new A("invalid-response","Account storage bindings response is malformed");const r=[],o=new Set;for(const a of e.bindings){if(!me(a)||typeof a.webId!="string"||typeof a.storageUrl!="string")throw new A("invalid-response","Account storage binding row is malformed");const c=Rt(a.webId),i=jt(a.storageUrl,n?void 0:t);if(!c||!i)throw new A("cross-origin","Account storage binding is outside the trusted storage scope");const l={webId:c,storageUrl:i,...typeof a.label=="string"?{label:a.label}:{}},u=`${l.webId}
2
- ${l.storageUrl}`;o.has(u)||(o.add(u),r.push(l))}return r}function St(e){try{return new URL(e??(typeof window>"u"?"http://localhost":window.location.origin)).origin}catch{throw new A("cross-origin","Current Xpod origin is invalid")}}function Nt(e,t){try{const n=new URL(e,t);if(!["http:","https:"].includes(n.protocol)||n.username||n.password||n.hash)throw new Error("unsafe control URL");return n}catch{throw new A("cross-origin","Account storage bindings control is not a valid URL")}}function Rt(e){if(!Re(e))try{const t=new URL(e);return!["http:","https:"].includes(t.protocol)||t.username||t.password?void 0:e}catch{return}}function jt(e,t){try{const n=new URL(e.trim());return t!==void 0&&n.origin!==t||!["http:","https:"].includes(n.protocol)||n.username||n.password||n.search||n.hash?void 0:(n.pathname=n.pathname.endsWith("/")?n.pathname:`${n.pathname}/`,n.href)}catch{return}}function Et(e,t,n){if(!t)return!1;try{const r=new URL(t,n);return r.pathname.startsWith("/.account/")&&e.origin===r.origin&&e.pathname.startsWith("/.account/")}catch{return!1}}function me(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function J(e){return typeof e=="object"&&e!==null}function _t(e){return J(e)&&typeof e.message=="string"?e.message:""}const ge="co.undefineds.ai-connections",Ut={providerCredentials:"settings/credentials.ttl",providerDefinitions:"settings/providers/__service_access__.ttl",gatewayAccessKeys:".data/ai/gateway/access-keys.ttl",quotaSnapshots:".data/ai/gateway/quota.ttl"},Pt=new Set(vt);function we(e,t){if(!K(e))throw new Error("invalid_descriptor");if(e.appletId!==ge)throw new Error("invalid_applet_id");const n=e.service;if(!K(n)||typeof n.webId!="string"||typeof n.label!="string"||!Wt(n.webId))throw new Error("invalid_service");if(!Array.isArray(e.resources)||e.resources.length===0)throw new Error("invalid_empty_resources");const r=Ft(t),o=new Set,a=e.resources.map(c=>kt(c,r,o));return{appletId:ge,service:{webId:n.webId,label:n.label},resources:a}}function kt(e,t,n){if(!K(e)||typeof e.id!="string"||typeof e.url!="string"||e.mediaType!=="text/turtle"||!K(e.access))throw new Error("invalid_resource");const r=Tt(e.id,t);if(!r||n.has(e.id))throw new Error("invalid_resource");Ot(e.url);let o;try{o=new URL(e.url)}catch{throw new Error("invalid_resource")}if(!Mt(o,t))throw new Error("invalid_resource");if(o.href!==r)throw new Error("invalid_resource");return n.add(e.id),{id:e.id,url:o.href,mediaType:"text/turtle",access:Dt(e.access)}}function Tt(e,t){const n=Ut[e];if(n)return new URL(n,t).href;const r=e.startsWith("providerDocument:")?e.slice(17):void 0;if(r&&Pt.has(r))return new URL(`settings/providers/${r}.ttl`,t).href}function Ot(e){if(/%(?![0-9a-fA-F]{2})/.test(e)||/%(?:2f|5c)/i.test(e)||e.includes("\\"))throw new Error("invalid_resource");const t=Lt(e);if(be(t))throw new Error("invalid_resource");try{const n=decodeURIComponent(t);if(n.includes("\\")||be(n))throw new Error("invalid_resource")}catch{throw new Error("invalid_resource")}}function Lt(e){const t=e.split("#",1)[0]??e;return(t.split("?",1)[0]??t).replace(/^[a-z][a-z0-9+.-]*:\/\/[^/\\?#]*/i,"")}function be(e){return e.split("/").some(t=>t==="."||t==="..")}function Dt(e){if(Object.keys(e).some(n=>n!=="read"&&n!=="append"&&n!=="write")||e.read!==!0||e.append!==!0||e.write!==!0)throw new Error("invalid_resource");return{read:!0,append:!0,write:!0}}function Ft(e){const t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Error("invalid_current_pod");return t.pathname.endsWith("/")||(t.pathname=`${t.pathname}/`),t}function Mt(e,t){return(e.protocol==="http:"||e.protocol==="https:")&&e.origin===t.origin&&e.pathname.startsWith(t.pathname)}function Wt(e){try{const t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}function K(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}const Bt=3,$t=63,Gt=/^[a-z0-9-]+$/;function ce(e){return e.trim().toLowerCase()}function Ee(e){const t=ce(e);if(!t)return O.usernameRequired;if(t.length<Bt||t.length>$t)return O.usernameLength;if(!Gt.test(t))return O.usernameCharset;if(t.startsWith("-")||t.endsWith("-"))return O.usernameHyphen}const zt="已有 Pod 的身份绑定尚未确认。请重试读取绑定或返回账号,不需要重新创建 Pod。",Xt="暂时无法确认已有 Pod,请重试读取或返回账号。";class _ extends Error{code;constructor(t){super(t==="binding-missing"?zt:t==="inventory-unavailable"?Xt:"账号已切换,请返回当前账号重新操作。"),this.name="FirstPodReadinessError",this.code=t}}function Ht(e){const t=fe(),n=Ye(t,{...e.headers}),r=new Headers(n).get("Authorization"),o=()=>{try{e.assertCurrentAccount?.()}catch{throw new _("account-changed")}if(fe()!==t||r?.startsWith("CSS-Account-Token ")&&r!==(t?`CSS-Account-Token ${t}`:void 0))throw new _("account-changed")},a=e.fetchImpl??fetch;return{headers:n,assertCurrentAccount:o,fetch:async(i,l)=>{o();const u=await a(i,l);try{o()}catch(x){throw u.body?.cancel().catch(()=>{}),x}const b=async x=>{o();const U=await x();return o(),U},y=u.json.bind(u),v=u.text.bind(u);return u.json=()=>b(y),u.text=()=>b(v),u}}}async function qt(e,t,n,r){r.assertCurrentAccount();let o;try{const i=await e(ae(t),{headers:{...r.headers,Accept:"application/json"},credentials:"include"});if(!i.ok)throw new _("inventory-unavailable");o=await i.json()}catch{throw r.assertCurrentAccount(),new _("inventory-unavailable")}if(r.assertCurrentAccount(),!se(o)||!se(o.pods))throw new _("inventory-unavailable");const a=Object.entries(o.pods);if(a.some(([i,l])=>!Pe(i)||typeof l!="string"||!l))throw new _("inventory-unavailable");const c=Qe(n);if(a.some(([i])=>!c||Ze(i,c.storageRoot)))throw new _("binding-missing")}function Kt(e){for(const t of e){if(!t)continue;const n=tn(t);if(!n)continue;const r=ce(n).replace(/[^a-z0-9-]/gu,"-").replace(/-+/gu,"-").replace(/^-+|-+$/gu,"");if(r&&!Ee(r))return r}return""}async function Vt(e){const t=Ht(e),n=t.fetch,r=ce(e.username),o=Ee(r);if(o)throw new Error(o);const a=await Ve(e.provisionCode),c=await Ne(e.createPodUrl,n,e.trustedAccountIndex);if(!c)throw new Error("Pod creation control is not hosted by this Xpod");await qt(n,c,a,t);const i=await Zt(n,r,a);t.assertCurrentAccount();const l=await n(ae(c),{method:"POST",headers:{...t.headers,Accept:"application/json","Content-Type":"application/json"},credentials:"include",body:JSON.stringify(Je(r,i?.provisionCode??a,i?.provisionReceipt))});if(t.assertCurrentAccount(),!l.ok){const v=await Qt(l);throw l.status===409||_e(v)?new Error(O.podNameTaken):new Error(v||"Failed to create Pod")}const u=await l.json().catch(V);t.assertCurrentAccount();const b=en(u);if(!e.pickWebIdUrl)return b;const y=await Jt({fetchImpl:n,headers:t.headers,maxAttempts:e.maxAttempts,pickWebIdUrl:e.pickWebIdUrl,pollIntervalMs:e.pollIntervalMs});return t.assertCurrentAccount(),y.length>0?y:b}async function Jt(e){const t=e.fetchImpl??fetch,n=Math.max(1,e.maxAttempts??30),r=Math.max(0,e.pollIntervalMs??500);for(let o=0;o<n;o+=1){const a=await Yt(t,e.pickWebIdUrl,e.headers);if(a.length>0)return a;o<n-1&&r>0&&await new Promise(c=>setTimeout(c,r))}return[]}function V(e){if(e instanceof _)throw e}async function Yt(e,t,n){const r=await e(ae(t),{headers:n,credentials:"include"}).catch(V);if(!r?.ok)return[];const o=await r.json().catch(V);if(!Array.isArray(o?.entries))return[];const a=new Set,c=[];for(const i of o.entries){if(!se(i)||typeof i.webId!="string"||typeof i.storageUrl!="string")continue;const l=Ue(i.webId,i.storageUrl);if(!l)continue;const u=`${l.webId}
3
- ${l.storageUrl}`;a.has(u)||(a.add(u),c.push(l))}return c}async function Qt(e){const t=await e.text?.().catch(V);if(t)try{const n=JSON.parse(t);return typeof n.message=="string"?n.message:typeof n.error=="string"?n.error:t}catch{return t}}function _e(e){return e?/already (?:is )?(?:a )?resource/iu.test(e)||/already taken/iu.test(e)||/already exists/iu.test(e):!1}async function Zt(e,t,n){try{return await et(e,t,n)}catch(r){const o=r instanceof Error?r.message:String(r);throw _e(o)?new Error(O.podNameTaken):r}}function en(e){if(typeof e?.podUrl!="string")return[];const t=Pe(e.podUrl);if(!t)return[];const n=new Set;if(typeof e.webId=="string"&&e.webId.length>0&&n.add(e.webId),Array.isArray(e.webIds))for(const r of e.webIds)typeof r=="string"&&r.length>0&&n.add(r);return Array.from(n).map(r=>Ue(r,t)).filter(r=>!!r)}function tn(e){try{return new URL(e).pathname.split("/").filter(Boolean)[0]}catch{return e.includes("@")?e.split("@",1)[0]:e}}function Ue(e,t){if(!Re(e))try{const n=new URL(e),r=new URL(t);return!["http:","https:"].includes(n.protocol)||!["http:","https:"].includes(r.protocol)?void 0:(r.pathname=r.pathname.endsWith("/")?r.pathname:`${r.pathname}/`,{webId:e,storageUrl:r.href})}catch{return}}function Pe(e){try{const t=new URL(e);return!["http:","https:"].includes(t.protocol)||t.username||t.password||t.hash||t.search?void 0:(t.pathname=t.pathname.endsWith("/")?t.pathname:`${t.pathname}/`,t.href)}catch{return}}function se(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function nn(e,t){if(e)try{return new URL(new URL(e).pathname,t).toString()}catch{return}}const rn="http://www.w3.org/ns/solid/acp#",sn="http://www.w3.org/ns/auth/acl#";function ye(e,{ownerWebId:t,serviceWebId:n},r=!0){const o=r?`
4
- <#serviceAccess>
5
- a acp:AccessControl;
6
- acp:apply [
7
- a acp:Policy;
8
- acp:allow acl:Read, acl:Write;
9
- acp:anyOf [
10
- a acp:Matcher;
11
- acp:agent <${n}>
12
- ]
13
- ].
14
- `:"",a=r?"<#ownerAccess>, <#serviceAccess>":"<#ownerAccess>";return`@prefix acl: <${sn}>.
15
- @prefix acp: <${rn}>.
16
-
17
- <#managed>
18
- a acp:AccessControlResource;
19
- acp:resource <${e}>;
20
- acp:accessControl ${a};
21
- acp:memberAccessControl ${a}.
22
-
23
- <#ownerAccess>
24
- a acp:AccessControl;
25
- acp:apply [
26
- a acp:Policy;
27
- acp:allow acl:Read, acl:Write, acl:Control;
28
- acp:anyOf [
29
- a acp:Matcher;
30
- acp:agent <${t}>
31
- ]
32
- ].
33
- ${o}`}function on(e){const t=new URL(e);return t.pathname.endsWith("/")||(t.pathname=t.pathname.slice(0,t.pathname.lastIndexOf("/")+1)),t.toString()}function ne(e){return new URL(".acr",e).toString()}function re(e){return[...new Set(e.resources.map(t=>on(t.url)))]}async function ve(e,t,n){const r=await e(t,{method:"PUT",headers:{"content-type":"text/turtle"},body:n});if(!r.ok)throw await r.arrayBuffer().catch(()=>{}),new Error(`service_acr_write_failed:${r.status}`)}function X(e,t,n){return{status:t?"granted":"missing",resources:e.resources}}function xe(e){const t=()=>{if(!e.ownerWebId)throw new Error("service_acr_owner_missing");return e.ownerWebId};return{async ensureAgentAccess(n){const r=t();for(const o of re(n))await ve(e.authenticatedFetch,ne(o),ye(o,{ownerWebId:r,serviceWebId:n.service.webId}));return{status:"granted",resources:n.resources}},async inspectAgentAccess(n){try{for(const r of re(n)){const o=await e.authenticatedFetch(ne(r),{headers:{accept:"text/turtle"}});if(!o.ok)return await o.arrayBuffer().catch(()=>{}),X(n,!1);const a=await o.text();if(!a.includes(`<${n.service.webId}>`)||!a.includes("acp:AccessControlResource"))return X(n,!1)}return X(n,!0)}catch{return X(n,!1)}},async revokeAgentAccess(n){const r=t();for(const o of re(n))await ve(e.authenticatedFetch,ne(o),ye(o,{ownerWebId:r,serviceWebId:n.service.webId},!1));return{status:"missing",resources:n.resources}}}}const Ae=600*1e3,B=2048,N="xpod.safe-continuation.consent.v2",q="xpod.safe-continuation.management.v2",an=/^\/\.account\/interaction\/([^/?#]+)$/u,cn=/^\/\.account\/(?:interaction\/[^/?#]+\/)?account\/([^/?#]+)\//u;function Y(){if(!(typeof window>"u"))try{return window.location.origin}catch{return}}function ke(){if(!(typeof window>"u"))try{return window.sessionStorage}catch{return}}function oe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Q(e){return typeof e=="string"&&e.length>0&&e.length<=B}function $(e){return Q(e)&&e===e.trim()}function Ce(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Te(e){return Q(e)&&an.test(e)}function dn(e){if(typeof e!="string"||!e||e.length>B)return;const t=ln(e);if(t)return t;if(/^[^/?#:]+$/u.test(e)&&e===e.trim())return e}function ln(e){if(typeof e!="string"||!e||e.length>B)return;let t;try{t=new URL(e,Y()??"http://localhost")}catch{return}if(!["http:","https:"].includes(t.protocol)||t.username||t.password)return;const n=cn.exec(t.pathname);return n?n[1]:void 0}function Ie(e,t){const n=e?.account,r=[t?.id,n?.id,n?.logout,n?.clientCredentials,n?.bindings,n?.pod].map(dn).filter(c=>!!c);if(r.length===0)return;const[o,...a]=r;return a.every(c=>c===o)?o:void 0}function Oe(e,t=Y()){if(!t||typeof e!="string"||!e||e.length>B)return!1;let n;try{n=new URL(e,t)}catch{return!1}return n.origin===t&&!n.username&&!n.password&&n.pathname.startsWith("/.account/")}function Le(e,t,n=Y()){if(!n||!Te(e)||typeof t!="string"||!t||t.length>B)return!1;let r;try{r=new URL(t,n)}catch{return!1}return r.origin===n&&!r.username&&!r.password&&r.pathname===`${e}/oidc/consent/`&&r.search===""&&r.hash===""}function un(e){const t=ke();if(!t)return null;try{return t.getItem(e)}catch{return null}}function Z(e){const t=un(e);if(t===null)return;let n;try{n=JSON.parse(t)}catch{return}return oe(n)?n:void 0}function R(e){const t=ke();if(t)try{t.removeItem(e)}catch{}}function De(e){const{createdAt:t,expiresAt:n}=e;if(!Ce(t)||!Ce(n))return!1;const r=Date.now();if(t>r)return!1;const o=n-t;return o<=0||o>Ae||n>t+Ae?!1:n>r}function Fe(e,t){return e.accountId===t.accountId&&e.interaction===t.interaction&&e.returnTo===t.returnTo&&e.createdAt===t.createdAt&&e.expiresAt===t.expiresAt}function ie(e){if(!e||e.kind!=="consent")return null;const{accountId:t,interaction:n,returnTo:r}=e;return!$(t)||!Te(n)||!Q(r)||!De(e)||!Le(n,r)?null:{kind:"consent",accountId:t,interaction:n,returnTo:r,createdAt:e.createdAt,expiresAt:e.expiresAt}}function fn(e){if(!e||e.kind!=="management")return null;const{accountId:t,returnTo:n}=e;return!$(t)||!Q(n)||!De(e)||!Oe(n)?null:{kind:"management",accountId:t,returnTo:n,createdAt:e.createdAt,expiresAt:e.expiresAt}}function Se(){R(N)}function Me(e){const t=e?.accountId;if(!$(t))return R(q),null;const n=fn(Z(q));return!n||n.accountId!==t?(R(q),null):n}function hn(e){const t=Me(e);return R(q),t}function pn(e){const t=e?.accountId;if(!$(t))return R(N),null;const n=ie(Z(N));return!n||n.accountId!==t?(R(N),null):n}function mn(e,t,n={}){const r=t?.accountId;if(!$(r))return R(N),null;const o=ie(Z(N));if(!o||o.accountId!==r||!Fe(o,e))return R(N),null;try{n.assertCurrent?.()}catch{return null}return R(N),o}async function We(e,t={}){const n=t.origin??Y();if(!n||!Le(e.interaction,e.returnTo,n))return!1;const r=t.fetch??(typeof fetch=="function"?fetch:void 0);if(!r)return!1;const o=new URL(e.returnTo,n).href;let a;try{t.assertCurrent?.(),a=await r(o,{method:"GET",credentials:"include",redirect:"manual",headers:{accept:"application/json",...t.headers??{}}})}catch{return!1}try{t.assertCurrent?.()}catch{return!1}if(a.redirected===!0||typeof a.status=="number"&&a.status>=300&&a.status<400||!a.ok||typeof a.url=="string"&&a.url&&a.url!==o)return!1;const c=await a.json().catch(()=>{});if(!oe(c))return!1;const i=c.client;return oe(i)&&(typeof i.client_id=="string"||typeof i.client_name=="string")}async function gn(e,t={}){const n=pn(e);if(!n)return null;const r=await We(n,t),o=ie(Z(N));if(!r||!o||o.accountId!==e.accountId||!Fe(o,n))return R(N),null;try{t.assertCurrent?.()}catch{return null}return o}function wn(e,t){return e?.oidc?.cancel||`${t}oidc/cancel`}async function bn(e){const t=e.fetchImpl??fetch,n=e.timeoutMs??15e3,r=n>0?new AbortController:null;let o;r&&(o=setTimeout(()=>r.abort(),n));try{const a=await t(e.cancelUrl,{method:"POST",headers:e.headers,credentials:"include",body:JSON.stringify({}),signal:r?.signal});return await yn(a)}catch(a){throw xn(a,"AbortError")?new Error("Authorization cancellation timed out. Please close this tab and retry login."):a}finally{o&&clearTimeout(o)}}async function yn(e){const t=await e.json().catch(()=>null);if(!e.ok)throw vn(t,_t(t)||`Authorization cancellation failed (${e.status}).`);const n=J(t)&&typeof t.location=="string"?t.location.trim():"",r=e.headers.get("Location")?.trim()||"",o=n||r;if(!o)throw new Error("Authorization cancellation did not return a redirect URL.");return o}function vn(e,t){return J(e)&&(e.errorCode==="E0002"||e.message==="Invalid OIDC interaction"||e.message==="This action can only be performed as part of an OIDC authentication flow.")?new Error(tt.expiredInteraction):new Error(t)}function xn(e,t){return J(e)&&e.name===t}function An(e,t,n){const r=wn(t,n);let o="/oidc/cancel/";try{const a=new URL(r,window.location.origin);if(a.origin===window.location.origin){const c=a.pathname.replace(/^\/\.account/u,"");c.startsWith("/")&&(o=c.endsWith("/")?c:`${c}/`)}}catch{}return`${e}${o}`}function Mn({kind:e}){const t=nt(),[n,r]=d.useState(null),[o,a]=d.useState(null),[c,i]=d.useState(null),[l,u]=d.useState(null),[b,y]=d.useState(!0),[v,x]=d.useState(""),[U,m]=d.useState(""),j=d.useCallback(async()=>{y(!0),x("");try{const[g,p,C,P]=await Promise.all([ut(),ft(),ht(),pt()]);if(!g||!p)throw new Error("unavailable");r(g),a(p),i(C),u(await mt(gt(p.env,P,g.env.CSS_BASE_URL??"")))}catch{x("Settings evidence could not be loaded.")}finally{y(!1)}},[]);d.useEffect(()=>{let g=!1;return queueMicrotask(()=>{g||j()}),()=>{g=!0}},[j]);const E=async g=>{if(x(""),!await bt(g)){x("Configuration could not be saved.");return}a(p=>p&&{...p,env:{...p.env,...g}}),m("Saved · restart required")},D=_n[e];return s.jsxs("div",{className:"space-y-4 p-6",children:[s.jsx("div",{className:"flex justify-end",children:s.jsxs(S,{type:"button",size:"sm",variant:"outline",onClick:j,disabled:b,children:[s.jsx(rt,{className:"mr-2 h-4 w-4"}),"Refresh"]})}),v?s.jsx("div",{role:"alert",className:"rounded-md border border-destructive/30 p-3 text-sm text-destructive",children:v}):null,U?s.jsxs("div",{role:"status",className:"flex flex-wrap items-center justify-between gap-3 rounded-md border border-amber-300 bg-amber-50 p-3 text-sm text-amber-800 dark:bg-amber-950/20 dark:text-amber-200",children:[s.jsx("span",{children:U}),s.jsxs(S,{type:"button",size:"sm",variant:"outline",onClick:()=>{wt()},children:[s.jsx(xt,{className:"mr-2 h-4 w-4"}),"Restart Xpod"]})]}):null,s.jsxs(st,{children:[s.jsxs(ot,{children:[s.jsx(at,{children:D}),s.jsx(ct,{children:Un[e]})]}),s.jsx(it,{className:"space-y-4",children:b&&!o?s.jsx("div",{role:"status","aria-label":"Loading settings",className:"grid gap-3 sm:grid-cols-2","aria-live":"polite",children:[0,1,2,3].map(g=>s.jsxs("div",{className:"rounded-lg border border-border p-3","aria-hidden":"true",children:[s.jsx(pe,{className:"h-3 w-24"}),s.jsx(pe,{className:"mt-2 h-5 w-36"})]},g))}):s.jsx(In,{kind:e,runtime:t,admin:n,configuration:o,provision:c,publicRoute:l,save:E})})]})]})}function Cn({runtime:e,publicRoute:t}){const n=dt(),[r,o]=d.useState(null),[a,c]=d.useState(""),[i,l]=d.useState(""),[u,b]=d.useState(!1),[y,v]=d.useState(""),[x,U]=d.useState(""),[m,j]=d.useState(null),[E,D]=d.useState(null),[g,p]=d.useState(""),[C,P]=d.useState(!1),G=d.useRef(void 0),ee=d.useRef(void 0),I=n.controls,F=n.idpIndex,k=Ie(I,n.identity),le=n.bindAccountCapability,te=d.useCallback(async()=>{c("");try{o(await Ct({controls:I,origin:window.location.origin,trustedAccountIndex:F}))}catch{o(null),c("暂时无法读取存储绑定,请重试。")}},[I,F]);d.useEffect(()=>{let f=!1;return queueMicrotask(()=>{f||te()}),()=>{f=!0}},[te]),d.useEffect(()=>{if(G.current=void 0,ee.current=void 0,!k)return;let f=!1;const h=le?.();return(async()=>{let w=null;try{w=await gn({accountId:k},{assertCurrent:h})}catch{w=null}if(f)return;G.current=w?h:void 0;const M=w?null:Me({accountId:k});ee.current=M?h:void 0,j(w),D(M)})(),()=>{f=!0}},[k,le]);const T=d.useCallback((f,h)=>{const w=Ie(I,n.identity);if(!h||w!==f)return null;try{h()}catch{return null}return h},[n.identity,I]),$e=d.useCallback(async()=>{if(!m||C)return;const f=T(m.accountId,G.current);if(!f){j(null),p("这个授权任务已失效,请回到应用重新发起。");return}P(!0),p("");try{const w=await We(m,{headers:H({Accept:"application/json"}),assertCurrent:f})?mn(m,{accountId:m.accountId},{assertCurrent:f}):null;if(!w){Se(),j(null),p("这个授权任务已失效,请回到应用重新发起。"),P(!1);return}window.location.assign(w.returnTo)}catch{j(null),p("这个授权任务已失效,请回到应用重新发起。"),P(!1)}},[T,m,C]),Ge=d.useCallback(async()=>{if(!m||C)return;const f=T(m.accountId,G.current);if(!f){j(null),p("这个授权任务已失效,请回到应用重新发起。");return}P(!0),p("");try{const h=await bn({cancelUrl:An(m.interaction,I,F),headers:H({"Content-Type":"application/json",Accept:"application/json"})});f(),Se(),window.location.assign(h)}catch{p("取消授权失败,请重试。"),P(!1)}},[T,m,I,F,C]),ze=d.useCallback(()=>{if(!E||C)return;if(!T(E.accountId,ee.current)){D(null);return}const h=hn({accountId:E.accountId});if(!h||!Oe(h.returnTo)){D(null);return}window.location.assign(h.returnTo)},[T,E,C]),ue=d.useMemo(()=>Kt([e.webId,n.identity?.username,I?.account?.username]),[e.webId,n.identity?.username,I?.account?.username]),Xe=async f=>{f.preventDefault();const h=I?.account?.pod,w=(i.trim()||ue||"").trim();if(!u){if(!h){v("当前部署没有公布创建存储空间的入口。");return}if(!w){v("无法从当前账号推断 Pod 名称,请手动填写。");return}b(!0),v(""),U("");try{await Vt({assertCurrentAccount:n.bindAccountCapability?.(),createPodUrl:h,headers:H(),provisionCode:await lt(),trustedAccountIndex:F,username:w}),l(""),U("存储空间已创建。"),await te()}catch(M){v(M instanceof Error?M.message:"无法创建存储空间,请重试。")}finally{b(!1)}}},z=nn(e.podUrl,window.location.origin),He=[{label:"Pod name",value:Be(e.podUrl)},{label:"Pod URL",value:z??"Not discovered"},{label:"Public route",value:En(t),detail:t?.detail??"Not checked by this runtime"},{label:"Session",value:e.state.status}],qe=m&&m.accountId===k?m:null,Ke=E&&E.accountId===k?E:null;return s.jsxs(s.Fragment,{children:[qe?s.jsxs("div",{role:"status","data-testid":"consent-resume-banner",className:"flex flex-wrap items-center justify-between gap-3 rounded-lg border border-primary/30 bg-primary/10 p-3",children:[s.jsxs("div",{className:"text-sm",children:[s.jsx("div",{className:"font-medium text-foreground",children:"有应用正在等待你的授权"}),s.jsx("div",{className:"text-xs text-muted-foreground",children:"完成这里的操作后可以回到原来的授权继续。"})]}),s.jsxs("div",{className:"flex flex-wrap gap-2",children:[s.jsx(S,{type:"button",disabled:C,onClick:$e,children:"回到授权"}),s.jsx(S,{type:"button",variant:"outline",disabled:C,onClick:()=>{Ge()},children:"取消授权"})]})]}):Ke?s.jsxs("div",{role:"status","data-testid":"management-resume-banner",className:"flex flex-wrap items-center justify-between gap-3 rounded-lg border border-border bg-muted/40 p-3",children:[s.jsx("div",{className:"text-sm font-medium text-foreground",children:"完成管理后可以回到账号页。"}),s.jsx(S,{type:"button",variant:"outline",onClick:ze,children:"返回账号"})]}):null,g?s.jsx("div",{role:"alert",className:"rounded-md border border-destructive/30 p-3 text-sm text-destructive",children:g}):null,s.jsx(L,{rows:He}),s.jsxs(S,{type:"button",variant:"outline",disabled:!z,onClick:()=>z&&window.open(z,"_blank","noopener,noreferrer"),children:[s.jsx(At,{className:"mr-2 h-4 w-4"}),"Open Pod"]}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("div",{className:"text-sm font-medium",children:"属于当前账号的存储空间"}),a?s.jsx("div",{role:"alert",className:"rounded-md border border-destructive/30 p-3 text-sm text-destructive",children:a}):null,r===null&&!a?s.jsx("div",{role:"status",className:"text-sm text-muted-foreground",children:"正在读取…"}):null,r?.length===0?s.jsx("div",{role:"status",className:"rounded-lg border border-border p-3 text-sm text-muted-foreground",children:"这个账号还没有任何存储空间。创建后即可用它授权应用访问。"}):null,r&&r.length>0?s.jsx("ul",{className:"space-y-2",children:r.map(f=>s.jsxs("li",{className:"rounded-lg border border-border p-3 text-sm",children:[s.jsx("div",{className:"break-all font-medium",children:f.storageUrl}),s.jsx("div",{className:"mt-1 break-all text-xs text-muted-foreground",children:f.webId})]},`${f.webId}|${f.storageUrl}`))}):null]}),s.jsxs("form",{onSubmit:Xe,className:"space-y-2 rounded-lg border border-border p-3",children:[s.jsx("label",{className:"block text-sm font-medium",htmlFor:"pod-management-name",children:"创建存储空间"}),s.jsx("p",{className:"text-xs text-muted-foreground",children:"创建是一次显式操作:不会因为登录或授权而自动发生。"}),s.jsxs("div",{className:"flex flex-wrap gap-2",children:[s.jsx(je,{id:"pod-management-name",className:"h-10 min-w-48 flex-1",value:i,placeholder:ue||"my-pod",disabled:u,onChange:f=>l(f.currentTarget.value)}),s.jsx(S,{type:"submit",disabled:u,children:u?"正在创建…":"创建"})]}),y?s.jsx("div",{role:"alert",className:"text-sm text-destructive",children:y}):null,x?s.jsx("div",{role:"status",className:"text-sm text-muted-foreground",children:x}):null]})]})}function In({kind:e,runtime:t,admin:n,configuration:r,provision:o,publicRoute:a,save:c}){const i=r?.env??{};return e==="pod"?s.jsx(Cn,{runtime:t,publicRoute:a}):e==="identity-access"?s.jsx(Sn,{runtime:t}):e==="storage"?s.jsxs(s.Fragment,{children:[s.jsx(L,{rows:yt(i,r?.secrets)}),s.jsx("p",{className:"text-xs text-muted-foreground",children:"Measured storage and bandwidth are intentionally shown in Status → Usage, not here. Storage migration is unavailable because this runtime does not report a migration capability."})]}):e==="runtime"?s.jsx(Nn,{env:i,admin:n,save:c}):e==="cloud"?s.jsx(Rn,{env:i,provision:o,save:c}):s.jsx(jn,{env:i,save:c})}function Sn({runtime:e}){const[t,n]=d.useState("checking"),[r,o]=d.useState(!1),a=d.useCallback(async()=>{if(!e.webId||!e.podUrl||e.state.status!=="authenticated"){n("unavailable");return}n("checking");try{const l=he({webId:e.webId,podUrl:e.podUrl,authenticatedFetch:e.fetch}),u=we(await l.getServiceAccess(),e.podUrl),y=await xe({authenticatedFetch:e.fetch,ownerWebId:e.webId}).inspectAgentAccess(u);n(y.status==="granted"?"granted":"missing")}catch{n("error")}},[e.fetch,e.podUrl,e.state.status,e.webId]);d.useEffect(()=>{let l=!1;return queueMicrotask(()=>{l||a()}),()=>{l=!0}},[a]);const c=async()=>{if(!(!e.webId||!e.podUrl||!window.confirm("Revoke AI Gateway service access to Xpod settings resources? Provider credentials remain stored but the service can no longer use them."))){o(!0);try{const l=he({webId:e.webId,podUrl:e.podUrl,authenticatedFetch:e.fetch}),u=we(await l.getServiceAccess(),e.podUrl);await xe({authenticatedFetch:e.fetch,ownerWebId:e.webId}).revokeAgentAccess(u),n("missing")}catch{n("error")}finally{o(!1)}}},i=t==="granted"?"Granted":t==="missing"?"Not granted":t==="checking"?"Checking…":t==="unavailable"?"Unavailable while signed out":"Could not inspect";return s.jsxs(s.Fragment,{children:[s.jsx(L,{rows:[{label:"WebID",value:e.webId??"Signed out"},{label:"OIDC issuer",value:e.issuer??"Not reported"},{label:"Current account",value:e.webId?Be(e.webId):"Signed out"},{label:"Session",value:e.state.status},{label:"ACP / ACR",value:t==="error"?"Capability unavailable or permission denied":"Managed ACR capability available"},{label:"AI Gateway service access",value:i,detail:"Inspected from the managed ACRs for declared settings resources"}]}),s.jsxs("div",{className:"flex flex-wrap gap-2",children:[s.jsx(S,{type:"button",variant:"outline",onClick:()=>{a()},disabled:t==="checking",children:"Recheck access"}),s.jsx(S,{type:"button",variant:"destructive",onClick:()=>{c()},disabled:t!=="granted"||r,children:r?"Revoking…":"Revoke service access"})]})]})}function Nn({env:e,admin:t,save:n}){const r=e.CSS_BASE_URL??t?.env.CSS_BASE_URL??"",[o,a]=d.useState(r),[c,i]=d.useState(e.CSS_ROOT_FILE_PATH??"");return d.useEffect(()=>{let l=!1;return queueMicrotask(()=>{l||(a(r),i(e.CSS_ROOT_FILE_PATH??""))}),()=>{l=!0}},[e,r]),s.jsxs("div",{className:"space-y-4",children:[s.jsx(L,{rows:[{label:"Edition",value:t?.env.XPOD_EDITION??e.XPOD_EDITION??"local"},{label:"Configuration source",value:".env.local / runtime bootstrap"},{label:"Service startup",value:"Gateway supervises Solid Server and API Server"},{label:"Automatic restart",value:"Enabled for managed child services"}]}),s.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[s.jsx(W,{label:"Base URL",value:o,onChange:a}),s.jsx(W,{label:"Data directory",value:c,onChange:i})]}),s.jsx(de,{onClick:()=>n({CSS_BASE_URL:o,CSS_ROOT_FILE_PATH:c})})]})}function Rn({env:e,provision:t,save:n}){const[r,o]=d.useState(e.XPOD_CLOUD_API_ENDPOINT??""),[a,c]=d.useState(e.XPOD_NODE_ID??""),[i,l]=d.useState(e.XPOD_SP_DOMAIN??"");return d.useEffect(()=>{let u=!1;return queueMicrotask(()=>{u||(o(e.XPOD_CLOUD_API_ENDPOINT??""),c(e.XPOD_NODE_ID??""),l(e.XPOD_SP_DOMAIN??""))}),()=>{u=!0}},[e]),s.jsxs("div",{className:"space-y-4",children:[s.jsx(L,{rows:[{label:"Node registration",value:t?.registered?"Registered":"Not registered",detail:t?.nodeId??"Node ID not reported"},{label:"Cluster coordination",value:t?.cloudUrl??"Not configured",detail:t?.managed?"This node is cluster-managed":"Not cluster-managed"},{label:"Service-provider domain",value:t?.serviceProviderDomain??"Not allocated"}]}),s.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[s.jsx(W,{label:"Cloud endpoint",value:r,onChange:o}),s.jsx(W,{label:"Node ID",value:a,onChange:c}),s.jsx(W,{label:"Service-provider domain",value:i,onChange:l})]}),s.jsx(de,{onClick:()=>n({XPOD_CLOUD_API_ENDPOINT:r,XPOD_NODE_ID:a,XPOD_SP_DOMAIN:i})})]})}function jn({env:e,save:t}){const[n,r]=d.useState(e.CSS_LOGGING_LEVEL??"info"),[o,a]=d.useState(e.CSS_SHOW_STACK_TRACE==="true");return d.useEffect(()=>{let c=!1;return queueMicrotask(()=>{c||(r(e.CSS_LOGGING_LEVEL??"info"),a(e.CSS_SHOW_STACK_TRACE==="true"))}),()=>{c=!0}},[e]),s.jsxs("div",{className:"space-y-4",children:[s.jsx(L,{rows:[{label:"Log retention",value:"30 days",detail:"Runtime logging profile"},{label:"Configuration provenance",value:".env.local allowlist"},{label:"Restart requirement",value:"Required after save"}]}),s.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:["Logging level",s.jsxs("select",{value:n,onChange:c=>r(c.target.value),className:"block h-10 w-full rounded-md border border-input bg-background px-3 sm:max-w-xs",children:[s.jsx("option",{children:"debug"}),s.jsx("option",{children:"info"}),s.jsx("option",{children:"warn"}),s.jsx("option",{children:"error"})]})]}),s.jsxs("label",{className:"flex items-center justify-between gap-3 rounded-md border border-border p-3 text-sm font-medium",children:["Show stack traces",s.jsx("input",{type:"checkbox",checked:o,onChange:c=>a(c.target.checked)})]}),s.jsx(de,{onClick:()=>t({CSS_LOGGING_LEVEL:n,CSS_SHOW_STACK_TRACE:String(o)})})]})}function L({rows:e}){return s.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:e.map(t=>s.jsxs("div",{className:"rounded-lg border border-border p-3",children:[s.jsx("div",{className:"text-xs text-muted-foreground",children:t.label}),s.jsx("div",{className:"mt-1 break-all text-sm font-medium",children:t.value}),t.detail?s.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:t.detail}):null]},t.label))})}function W({label:e,value:t,onChange:n}){return s.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:[e,s.jsx(je,{value:t,onChange:r=>n(r.target.value)})]})}function de({onClick:e}){return s.jsx("div",{className:"flex justify-end",children:s.jsx(S,{type:"button",onClick:e,children:"Save configuration"})})}function Be(e){if(!e)return"Not discovered";try{return new URL(e).pathname.split("/").filter(Boolean).at(-1)||new URL(e).hostname}catch{return e}}function En(e){return e?e.status==="pass"?"Reachable":e.status==="fail"?"Not reachable":"Not verified":"Not checked"}const _n={pod:"Pod","identity-access":"Identity & Access",storage:"Storage",runtime:"Runtime",cloud:"Cloud",advanced:"Advanced"},Un={pod:"Current Pod identity and authority boundary.","identity-access":"Session, account, and app/service access.",storage:"Authority storage backends and health configuration.",runtime:"Edition, startup, paths, and restart behavior.",cloud:"Node registration and cluster coordination.",advanced:"Bounded logging and runtime compatibility controls."};export{Mn as PodSettingsSubjectPanel};
@@ -1,3 +0,0 @@
1
- import{w as h,k as f,x as w,h as J,y as pe}from"./global-DMtP8ZF4.js";import{r as me,a as he,b as be}from"./index-browser-kAl2JmYB.js";import{A as ae,s as M,d as B,c as k,o as X,p as ye,b as we,C as L}from"./ai-connections-DexTPyfC.js";function ve(e){const t=new TextEncoder().encode(JSON.stringify(e));let r="";for(const o of t)r+=String.fromCharCode(o);return btoa(r)}function Ie(e){const t=atob(e),r=Uint8Array.from(t,o=>o.charCodeAt(0));return JSON.parse(new TextDecoder().decode(r))}function ge(e){return JSON.stringify({algorithm:"PLAINTEXT",encoding:"base64",ciphertext:ve(e.secret),webId:e.webId,credentialIri:e.credentialIri,provider:e.provider})}function Se(e){if(!(typeof e.envelope!="string"||!e.envelope.trim()))try{const t=JSON.parse(e.envelope);if(t.algorithm!=="PLAINTEXT"||t.webId!==e.webId||t.provider!==e.provider||t.credentialIri!==e.credentialIri)return;const r=t.encoding==="base64"?Ie(String(t.ciphertext)):JSON.parse(String(t.ciphertext));return typeof r=="object"&&r!==null&&!Array.isArray(r)?r:void 0}catch{return}}function _e(e){return h.buildId({id:e})}function Re(e){return h.buildId({id:`custom-instance-${encodeURIComponent(e)}.ttl#this`})}function Q(e,t){const r=crypto.randomUUID();return t==="local"?`${e}-local-${r}`:`${e}-${r}`}function et(e){const t=(e.split("#",1)[0]??e).split("/").filter(Boolean).at(-1)??"",r=t.endsWith(".ttl")?t.slice(0,-4):t;if(r)return r.startsWith("custom-")||r==="custom"?"custom":ae.find(o=>r===o||r.startsWith(`${o}-`))}function A(e){if(!e)return;const t=e.split("#",1)[0]??e,r=t.split("/").filter(Boolean).at(-1)??t;if(!r)return;const o=r.endsWith(".ttl")?r:`${r}.ttl`,n=e.indexOf("#");return n<0?o:`${o}${e.slice(n)}`}function R(e){const t=A(e);if(t)return(t.split("#",1)[0]??t).replace(/\.ttl$/u,"")}const xe={"api-key":"添加 API Key","browser-login":"浏览器登录","browser-oauth":"浏览器登录","device-code":"设备码登录","local-session-import":"已有登录态","local-service":"本地服务"};function Ee(e){return e.label??xe[e.id]}function tt(e){return e.map(t=>{const r=Ee(t);return r===t.label?t:{...t,label:r}})}function z(e){switch(e){case"openai":return"OpenAI";case"anthropic":return"Anthropic";case"kimi":return"Kimi";case"bailian":return"百炼";case"deepseek":return"DeepSeek";case"zhipu":return"智谱 AI";case"ollama":return"Ollama";case"custom":return"Custom"}}var Ae=me(),Ce=he();const O=Array.from(new Set([...ae,"zhipu","ollama","custom"])),G=new WeakMap,Pe=J.storage.base.slice(J.storage.base.lastIndexOf("/")+1);function Ue(e){const t=e.indexOf("#");return t<0?e:e.slice(0,t)}function rt(e){Me(),pe({createQueryEngine:async()=>new be.QueryEngine});const t=new URL("settings/-/sparql",e.podUrl).toString();return f.setSparqlEndpoint(t),h.setSparqlEndpoint(t),w.setSparqlEndpoint(t),{credentialsTableDocument(){return f.buildIri(e.podUrl,{id:Pe})},providerTableDocument(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");const i=n==="custom"&&o?j(o):x(n);return h.buildIri(e.podUrl,{id:Ue(i)})},async listModels(){return await e.database.init?.(w),(await e.database.select().from(w).execute()).map(ze).filter(U)},async listProviders(){await e.database.init?.(f,h,w);const r=await e.database.select().from(f).execute(),o=await e.database.select().from(h).execute(),n=await e.database.select().from(w).execute();return ke(e,r,o,n)},async createApiKeyCredential(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");await e.database.init?.(f,h);const i=c(o.id),a=i??f.buildId({id:Q(n,"apiKey")}),d=1,u=M(n,o.offeringId??B(n,"apiKey")),l=o.baseUrl??X(n,u),s=F(o.proxyUrl),p={id:a,provider:n==="custom"?j(a):x(n),service:"ai",authMode:"apiKey",offeringId:u,status:"active",accountLabel:o.label,label:o.label,baseUrl:l,proxyUrl:s,keyVersion:String(d),reauthRequired:!1,encryptedSecret:$(e,n,a,{type:"apiKey",apiKey:o.apiKey}),encryptionAlgorithm:"PLAINTEXT",metadata:{...k({offeringId:u,baseUrl:l,priority:o.priority}),...o.compatibility?{compatibility:o.compatibility}:{}}};return await ee(e,a,p,i!==void 0),y(e,n,p)},async createLocalCredential(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");await e.database.init?.(f,h);const i=c(o.id),a=i??f.buildId({id:Q(n,"local")}),d=M(n,o.offeringId??B(n,"local")),u=o.baseUrl??X(n,d),l={id:a,provider:x(n),service:"ai",authMode:"local",offeringId:d,status:"active",accountLabel:o.label??"Local",label:o.label??"Local",baseUrl:u,keyVersion:"1",reauthRequired:!1,encryptedSecret:$(e,n,a,{type:"local"}),encryptionAlgorithm:"PLAINTEXT",metadata:k({offeringId:d,baseUrl:u,priority:o.priority})};return await ee(e,a,l,i!==void 0),y(e,n,l)},async saveOAuthCredential(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");const a=(G.get(e.database)??Promise.resolve()).then(async()=>{await e.database.init?.(f,h);const d=M(n,o.offeringId??B(n,"deviceCode")),l=(await e.database.select().from(f).execute()).find(_=>{const C=y(e,n,_);if(!C||C.authMode!=="deviceCode"&&C.authMode!=="oauth"||re(n,C.offeringId)!==re(n,d)||_.status!=="active"&&_.status!=="disabled")return!1;const fe=T(e,n,C.id,_.encryptedSecret);return Le(o,I(_.metadata),fe)}),s=l&&y(e,n,l),p=I(l?.metadata),m=s&&T(e,n,s.id,l?.encryptedSecret),b=s?.id??f.buildId({id:`${n}-oauth-${crypto.randomUUID()}`}),g=o.accountLabel??"OAuth",S=o.accountId??c(p?.accountId)??c(m?.accountId),H=o.accountSubject??c(p?.authoritativeSubject)??c(m?.accountSubject)??c(m?.authoritativeSubject),N={...l,id:b,provider:x(n),service:"ai",authMode:"deviceCodeOAuth",offeringId:d,status:s?.enabled===!1?"disabled":"active",accountLabel:l?.accountLabel??g,label:l?.label??g,expiresAt:o.expiresAt,scopes:o.scope?o.scope.split(/\s+/u).filter(Boolean):void 0,keyVersion:String((s?.version??0)+1),reauthRequired:!1,encryptedSecret:$(e,n,b,{type:"deviceCodeOAuth",accessToken:o.accessToken,refreshToken:o.refreshToken,expiresAt:o.expiresAt,scope:o.scope,idToken:o.idToken,accountId:S,accountSubject:H,accountLabel:o.accountLabel,offeringId:d,authorizationMethodId:o.authorizationMethodId}),encryptionAlgorithm:"PLAINTEXT",metadata:{...p,...k({offeringId:d,priority:s?.priority,enabled:s?.enabled,health:"healthy"}),authoritativeSubject:H,accountId:S,authorizationMethodId:o.authorizationMethodId}};if(l){const _={...N};if(delete _.id,!await e.database.updateById(f,b,_))throw new Error("credential_version_conflict")}else await e.database.insert(f).values(N).execute();return y(e,n,N)});return G.set(e.database,a.then(()=>{},()=>{})),a},async updateOAuthCredential(r,o,n,i){const a=v(r);if(!a)throw new Error("unsupported_provider");await e.database.init?.(f,h);const d=await e.database.findById(f,o),u=d&&y(e,a,d);if(!d||!u||u.authMode!=="deviceCode")throw new Error("oauth_credential_not_found");if(u.version!==n)throw new Error("credential_version_conflict");const l=T(e,a,o,d.encryptedSecret),s=i.accountId??c(I(d.metadata)?.accountId)??c(l?.accountId),p=i.accountSubject??c(I(d.metadata)?.authoritativeSubject)??c(l?.accountSubject)??c(l?.authoritativeSubject),m=M(a,i.offeringId??u.offeringId),b={expiresAt:i.expiresAt,scopes:i.scope?i.scope.split(/\s+/u).filter(Boolean):void 0,keyVersion:String(n+1),reauthRequired:!1,status:"active",encryptedSecret:$(e,a,o,{type:"deviceCodeOAuth",accessToken:i.accessToken,refreshToken:i.refreshToken,expiresAt:i.expiresAt,scope:i.scope,idToken:i.idToken,accountId:s,accountSubject:p,accountLabel:i.accountLabel??c(d.accountLabel),offeringId:m,authorizationMethodId:i.authorizationMethodId??c(I(d.metadata)?.authorizationMethodId)}),accountLabel:i.accountLabel??c(d.accountLabel),label:i.accountLabel??c(d.label),offeringId:m,metadata:{...I(d.metadata),...k({offeringId:m,health:"healthy"}),authoritativeSubject:p,accountId:s,authorizationMethodId:i.authorizationMethodId??c(I(d.metadata)?.authorizationMethodId)}},g=await e.database.updateById(f,o,b);if(!g)throw new Error("credential_version_conflict");return y(e,a,g)},async updateProviderCredential(r,o,n){const i=v(r);if(!i)throw new Error("unsupported_provider");await e.database.init?.(f,h);const a=await e.database.findById(f,o),d=a&&y(e,i,a);if(!a||!d)throw new Error("credential_not_found");if(d.version!==n.expectedVersion)throw new Error("credential_version_conflict");const u={...I(a.metadata),...n.priority===void 0?{}:{priority:n.priority},...n.enabled===void 0?{}:{enabled:n.enabled},...n.baseUrl===void 0?{}:{baseUrl:n.baseUrl},...n.proxyUrl===void 0?{}:{proxyUrl:F(n.proxyUrl)}},l={...n.label===void 0?{}:{accountLabel:n.label,label:n.label},...n.baseUrl===void 0?{}:{baseUrl:n.baseUrl},...n.proxyUrl===void 0?{}:{proxyUrl:F(n.proxyUrl)},...n.enabled===void 0?{}:{status:n.enabled?"active":"disabled"},keyVersion:String(d.version+1),metadata:u},s=await e.database.updateById(f,o,l);if(!s)throw new Error("credential_update_failed");const p=y(e,i,s);if(!p)throw new Error("credential_update_failed");return p},async markCredentialHealth(r,o,n,i){const a=v(r);if(!a)throw new Error("unsupported_provider");await e.database.init?.(f);const d=await e.database.findById(f,o),u=d&&y(e,a,d);if(!d||!u)throw new Error("credential_not_found");if(u.version!==i)throw new Error("credential_version_conflict");const l=await e.database.updateById(f,o,{keyVersion:String(u.version+1),metadata:{...I(d.metadata),health:n}});if(!l)throw new Error("credential_update_failed");const s=y(e,a,l);if(!s)throw new Error("credential_update_failed");return s},async deleteProviderCredential(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");await e.database.init?.(f,h);const i=await e.database.findById(f,o),a=i&&y(e,n,i);if(a)return await e.database.deleteById(f,o),a},async readCredentialSecret(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");const i=await e.database.findById(f,o);if(!i||!y(e,n,i))throw new Error("credential_not_found");const a=T(e,n,o,i.encryptedSecret);if(!a)throw new Error("credential_secret_unavailable");return a},async saveDiscoveredModels(r,o,n){const i=v(r);if(!i)throw new Error("unsupported_provider");await e.database.init?.(f,h,w);const a=await Y(e,o),d=te(i,a);await oe(e.database,d,z(i));const u=await e.database.select().from(w).execute(),l=new Set(u.map(m=>c(m.id)).filter(U)),s=n.map(Ne).filter(U),p=new Set(s.map(m=>m.id));for(const m of u.filter(b=>De(b,d,i))){const b=E(c(m.id),d)??de(c(m.id));b&&!p.has(b)&&c(m.status)!=="unavailable"&&await e.database.updateById(w,String(m.id),{status:"unavailable"})}for(const m of s)await Fe(e.database,d,m,l)},async saveModelSelection(r,o,n){const i=v(r);if(!i)throw new Error("unsupported_provider");await e.database.init?.(h,w);const a=i==="custom"&&n?await Y(e,n):null;if(i==="custom"&&n&&!a)throw new Error("credential_not_found");const d=a?te(i,a):x(i);await oe(e.database,d,z(i));const l=(await e.database.select().from(h).execute()).find(S=>P(c(S.id),d)),s=c(l?.id)??d,p=le(l?.hasModel),m=await e.database.select().from(w).execute(),b=[...new Set(o.map(S=>Ke(i,S,m,a?d:void 0)))];if(!await e.database.updateById(h,s,{hasModel:b}))throw new Error("provider_model_selection_update_failed");e.authenticatedFetch&&await Oe(e,s,p,b)}}}const Te="https://undefineds.co/ns#hasModel";async function Oe(e,t,r,o){const n=D(h,e.podUrl,t),i=r.map(s=>D(w,e.podUrl,s)),a=o.map(s=>D(w,e.podUrl,s)),d=s=>s.map(p=>`<${n}> <${Te}> <${p}> .`).join(`
2
- `),u=[i.length>0?`DELETE DATA { ${d(i)} }`:void 0,a.length>0?`INSERT DATA { ${d(a)} }`:void 0].filter(s=>!!s);if(u.length===0)return;const l=await e.authenticatedFetch(n.split("#",1)[0],{method:"PATCH",headers:{"content-type":"application/sparql-update"},body:u.join(`;
3
- `)});if(!l.ok)throw new Error(`provider_model_selection_persist_failed:${l.status}`)}function D(e,t,r){return/^https?:\/\//u.test(r)?r:e.buildIri(t,{id:r})}async function Y(e,t){const r=await e.database.findById(f,t);return r||((await e.database.select().from(f).execute()).find(n=>{const i=c(n.id);return i===t||(i?f.buildIri(e.podUrl,{id:i})===t:!1)})??null)}function Me(){Z(Ae.ActionObserverHttp.prototype),Z(Ce.ActionObserverHttp.prototype)}function Z(e){const t=e;if(t.__xpodObservedActorsPatch)return;const r=t.onRun;t.onRun=function(o,n,i){return Array.isArray(this.observedActors)||(this.observedActors=[]),r.call(this,o,n,i)},t.__xpodObservedActorsPatch=!0}function ke(e,t,r,o){const n=t.filter(i=>c(i.service)==="ai").filter(i=>c(i.status)!=="revoked");return O.map(i=>{const a=n.map(s=>y(e,i,s)).filter(U).sort((s,p)=>s.priority-p.priority||s.id.localeCompare(p.id)),d=r.find(s=>R(c(s.id))===i),l=le(d?.hasModel).map(s=>Be(i,s,o));return{id:i,name:i==="custom"?a.find(s=>s.label)?.label??z(i):z(i),offerings:i==="custom"?Ve(n.filter(s=>y(e,i,s))):ye(i,e.openAiSubscriptionImportAvailable===!0),credentials:a,selectedModels:l,status:qe(a)}})}async function ee(e,t,r,o){if(!(o?await e.database.findById(f,t):null)){await e.database.insert(f).values(r).execute();return}const i={...r};if(delete i.id,!await e.database.updateById(f,t,i))throw new Error("credential_create_failed")}function $(e,t,r,o){return ge({webId:e.webId,provider:t,credentialIri:f.buildIri(e.podUrl,{id:r}),secret:o})}function Le(e,t,r){let o=!1;for(const[n,i]of[[e.accountId,[t?.accountId,r?.accountId]],[e.accountSubject,[t?.authoritativeSubject,r?.accountSubject,r?.authoritativeSubject]]]){const a=[...new Set(i.map(c).filter(U).filter(d=>d.trim()))];if(a.length>1)return!1;if(!(!n?.trim()||!a.length)){if(a[0]!==n)return!1;o=!0}}return o}function y(e,t,r){const o=c(r.id);if(!o)return;const n=q(c(r.provider))??He(o);if(n!==t)return;const i=I(r.metadata),a=ue(r.authMode);if(a)return{id:o,provider:n,offeringId:ce(r,n,a),authMode:a,label:c(r.accountLabel)??c(r.label),enabled:ie(i?.enabled)??c(r.status)==="active",priority:ne(i?.priority)??100,health:Xe(i?.health)??(ie(r.reauthRequired)?"expired":"healthy"),maskedHint:We(e,n,o,r.encryptedSecret),baseUrl:c(r.baseUrl),proxyUrl:Je(c(r.proxyUrl)??c(i?.proxyUrl)),compatibility:$e(i?.compatibility),expiresAt:Qe(r.expiresAt),version:ne(r.keyVersion)??0}}function $e(e){return e==="auto"||e==="openai"||e==="anthropic"?e:void 0}function ce(e,t,r){return c(e.offeringId)??c(I(e.metadata)?.offeringId)??W(c(e.provider))??B(t,r)}function Be(e,t,r){const o=r.find(d=>A(c(d.id))===A(t)),n=c(o?.isProvidedBy),i=o?E(t,n??e)??t:E(t,e)??t,a=o??r.find(d=>{const u=c(d.id),l=c(d.isProvidedBy);return u===t||E(u,e)===i||q(l)===e&&E(u,l??e)===i});return{id:i,provider:e,offeringId:W(c(a?.isProvidedBy)),credentialId:V(n),resourceId:c(a?.id)??t,displayName:c(a?.displayName),availability:c(a?.status)==="unavailable"||!a?"unavailable":"available"}}function ze(e){const t=c(e.isProvidedBy),r=q(t),o=r&&E(c(e.id),t??r);if(!(!r||!o))return{id:o,provider:r,offeringId:W(t),credentialId:V(t),resourceId:c(e.id),displayName:c(e.displayName),availability:c(e.status)==="unavailable"?"unavailable":"available",...je(e)}}function Ne(e){const t=I(e),r=c(t?.id);if(r)return{id:r,displayName:c(t?.displayName),modelType:se(t?.modelType)}}function te(e,t){const r=V(c(t?.provider));return r?j(r):x(e)}function x(e){return _e(e)}function j(e){return Re(e)}function V(e){const t=R(e),r=t?.startsWith("custom-instance-")?t.slice(16):void 0;if(r)try{return decodeURIComponent(r)}catch{return}}function re(e,t){if(!t)return;const r=t.trim().toLowerCase();if(e==="bailian"){if(r==="token-plan")return"token-plan-personal";if(r==="coding-plan")return"coding-plan-pro";if(r==="payg")return"pay-as-you-go"}return r}function P(e,t){const r=A(e),o=A(t);return r!==void 0&&r===o}function De(e,t,r){const o=c(e.isProvidedBy);return P(o,t)?!0:r==="custom"?!1:R(o)?.startsWith(`${r}-`)===!0}function de(e){if(!e)return;const t=e.lastIndexOf("#");if(t<0||t===e.length-1)return;const r=e.slice(t+1);try{return decodeURIComponent(r)}catch{return r}}async function oe(e,t,r){(await e.select().from(h).execute()).some(n=>P(c(n.id),t))||await e.insert(h).values({id:t,displayName:r}).execute()}async function Fe(e,t,r,o){const n=K(t,r.id),i={displayName:r.displayName??r.id,isProvidedBy:t,status:"active",...r.modelType?{modelType:r.modelType}:{}};if(o.has(n)){await e.updateById(w,n,i);return}await e.insert(w).values({id:n,...i}).execute(),o.add(n)}function je(e){const t=se(e.modelType);return t?{modelType:t,...t==="embedding"?{capabilities:["embedding"]}:{}}:{}}function se(e){const t=c(e)?.trim().toLowerCase();return t==="chat"||t==="embedding"?t:void 0}function K(e,t){const r=A(e)??`${e}.ttl`;return`${r.split("#",1)[0]??r}#${encodeURIComponent(t)}`}function Ke(e,t,r,o){const n=c(t.resourceId),i=o??x(e),a=c(t.id),d=a?r.filter(l=>{const s=c(l.isProvidedBy),p=R(s);return(o?P(s,o):p===e||p?.startsWith(`${e}-`)===!0)&&E(c(l.id),s??i)===a}):[],u=o||d.length===1?d[0]:void 0;if(n){const l=r.find(b=>c(b.id)===n);if(!l&&u)return String(u.id);const s=c(l?.isProvidedBy),p=R(s),m=o?P(s,o):p===e||p?.startsWith(`${e}-`)===!0;if(l&&!m)throw new Error("invalid_model_selection_resource");if(!l){const b=a??de(n),g=R(n),S=o?P(g,o):g===e||g?.startsWith(`${e}-`)===!0;if(!b||!S)throw new Error("invalid_model_selection_resource");return K(i,b)}return n}if(!a)throw new Error("invalid_model_selection_resource");return c(u?.id)??K(i,a)}function E(e,t){if(!e)return;const o=A(t)?.split("#",1)[0]??t,n=o.endsWith(".ttl")?`${o}#`:`${o}.ttl#`,i=e.lastIndexOf(n);if(!(i<0))try{return decodeURIComponent(e.slice(i+n.length))}catch{return e.slice(i+n.length)}}function le(e){if(Array.isArray(e))return e.map(c).filter(U);const t=c(e);return t?[t]:[]}function Ve(e){const t=new Map;for(const r of e){const o=I(r.metadata),n=ce(r,"custom",ue(r.authMode)??"apiKey"),i=we(o?.compatibility,n),a=c(r.baseUrl)??c(o?.baseUrl),d=L.find(u=>u.id===n)??L.find(u=>u.id===`${i}-compatible`)??L[0];t.set(n,{...d,id:n,endpoints:a?[{protocol:i==="anthropic"?"anthropic":"chatCompletions",baseUrl:a}]:d.endpoints,modelDiscovery:i==="anthropic"?{strategy:"anthropic",path:"/models",endpointProtocol:"anthropic"}:{strategy:"openaiCompatible",path:"/models",endpointProtocol:"chatCompletions"}})}return t.size>0?[...t.values()]:L}function qe(e){return e.some(t=>t.health==="expired"||t.health==="invalid")?"attention":e.some(t=>t.enabled)?"available":e.length>0?"configured":"unconfigured"}function We(e,t,r,o){const n=T(e,t,r,o),i=c(n?.apiKey);if(i)return i.length<=8?`${i.slice(0,2)}…`:`${i.slice(0,3)}...${i.slice(-4)}`}function T(e,t,r,o){return Se({webId:e.webId,provider:t,credentialIri:f.buildIri(e.podUrl,{id:r}),envelope:o})}function q(e){const t=R(e),r=v(t);return r||O.find(o=>t?.startsWith(`${o}-`))}function W(e){const t=R(e);if(t&&!t.startsWith("custom-instance-")){if(t==="bailian-token-plan-personal")return"token-plan";if(t==="bailian-token-plan-team")return"token-plan-team";if(t==="bailian-coding-plan-pro")return"coding-plan";if(t==="bailian-pay-as-you-go")return"pay-as-you-go";for(const r of O)if(t.startsWith(`${r}-`))return t.slice(r.length+1)}}function He(e){const t=/\/([^/#]+)\.ttl#/u.exec(e);return v(t?.[1])}function v(e){if(typeof e!="string"||!e.trim())return;const t=e.trim().toLowerCase();if(t==="zhipu"||t.startsWith("zhipu-"))return"zhipu";if(O.includes(t))return t;for(const r of O)if(t.startsWith(`${r}-`)||r==="bailian"&&(t==="bailian-token-plan"||t==="bailian-coding-plan"))return r}function F(e){if(e==null||!e.trim())return;let t;try{t=new URL(e.trim())}catch{throw new Error("invalid_proxy_url")}if(!["http:","https:"].includes(t.protocol)||t.username||t.password||t.hash||!t.hostname)throw new Error("invalid_proxy_url");return t.toString().replace(/\/$/u,"")}function Je(e){if(e==null||!e.trim())return;let t;try{t=new URL(e.trim())}catch{return}if(!(!["http:","https:"].includes(t.protocol)||!t.hostname))return t.username="",t.password="",t.search="",t.hash="",t.toString().replace(/\/$/u,"")}function ue(e){if(e==="oauth"||e==="deviceCode"||e==="apiKey"||e==="local")return e;if(e==="deviceCodeOAuth")return"deviceCode"}function Xe(e){if(e==="healthy"||e==="expired"||e==="invalid"||e==="unknown")return e;if(e==="reauthRequired")return"expired";if(e==="disabled")return"unknown"}function I(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function c(e){return typeof e=="string"&&e.trim()?e:void 0}function ne(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const t=Number(e);return Number.isFinite(t)?t:void 0}}function ie(e){if(typeof e=="boolean")return e;if(e==="true")return!0;if(e==="false")return!1}function Qe(e){return e instanceof Date?e.toISOString():c(e)}function U(e){return e!==void 0}export{Re as a,_e as b,Q as c,rt as d,et as e,R as p,tt as w};
@@ -1 +0,0 @@
1
- import{c as t}from"./global-DMtP8ZF4.js";const c=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],o=t("activity",c);export{o as A};
@@ -1 +0,0 @@
1
- const s="/api/admin";async function l(t={}){try{const e=await fetch(`${s}/status`,{signal:t.signal});if(e.ok)return await e.json()}catch(e){console.error("Failed to get admin status:",e)}return null}async function u(t={}){try{const e=await fetch(`${s}/config`,{signal:t.signal});if(e.ok)return await e.json()}catch(e){console.error("Failed to get admin config:",e)}return null}async function f(t,e={}){try{const a=t?"?baseUrl="+encodeURIComponent(t):"",r=await fetch(s+"/public-ip"+a,{signal:e.signal});if(r.ok)return await r.json()}catch(a){console.error("Failed to get public ip check:",a)}return null}async function w(t){try{return(await fetch(`${s}/config`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({env:t})})).ok}catch(e){return console.error("Failed to update admin config:",e),!1}}async function P(){try{return(await fetch(`${s}/restart`,{method:"POST"})).ok}catch(t){return console.error("Failed to trigger restart:",t),!1}}async function $(t){try{return(await fetch(`/service/restart/${t}`,{method:"POST"})).ok}catch(e){return console.error(`Failed to restart ${t}:`,e),!1}}async function g(t={}){try{const e=await fetch("/service/status",{signal:t.signal});if(e.ok)return await e.json()}catch(e){console.error("Failed to get gateway status:",e)}return null}async function k(t={}){try{const a=h(t).toString(),r=await fetch(`${s}/rdf/stats${a?`?${a}`:""}`);if(r.ok)return await r.json()}catch(e){console.error("Failed to get RDF stats:",e)}return null}function h(t){const e=new URLSearchParams;return c(e,"cacheScopeQuery",t.cacheScopeQuery),c(e,"cacheScopePrincipal",t.cacheScopePrincipal),c(e,"cacheScopeBasePath",t.cacheScopeBasePath),c(e,"cacheScopeMode",t.cacheScopeMode),c(e,"cacheScopeAuthorizationModel",t.cacheScopeAuthorizationModel),c(e,"cacheScopePermissionVersion",t.cacheScopePermissionVersion),c(e,"cacheScopeLimit",t.cacheScopeLimit),e}function c(t,e,a){a!==void 0&&a!==""&&t.set(e,String(a))}async function S(t){try{const e=new URLSearchParams;t?.limit&&e.set("limit",t.limit.toString()),t?.level&&t.level!=="all"&&e.set("level",t.level),t?.source&&t.source!=="all"&&e.set("source",t.source);const a=e.toString(),r=await fetch(`${s}/logs${a?`?${a}`:""}`);if(r.ok){const n=await r.json();return Array.isArray(n)?n:n.logs??[]}}catch(e){console.error("Failed to get logs:",e)}return[]}async function m(t){try{const e=new URLSearchParams;t?.lines&&e.set("lines",t.lines.toString());const a=e.toString(),r=await fetch(`${s}/logs/file${a?`?${a}`:""}`);if(r.ok)return await r.json()}catch(e){console.error("Failed to get log file tail:",e)}return null}async function v(){const[t,e,a,r,n,i]=await Promise.all([g(),l(),u(),d(),S({limit:200}),m({lines:120})]);return{generatedAt:new Date().toISOString(),gatewayStatus:t,adminStatus:e,sanitizedConfig:{env:a?.env??{},secrets:a?.secrets??{}},ddnsStatus:r,recentLogs:n,logFile:i}}function F(t,e){const a=new EventSource(`${s}/logs/stream`);return a.onmessage=r=>{try{const n=JSON.parse(r.data);n.logs&&t(n.logs)}catch(n){console.error("Failed to parse log data:",n)}},a.onerror=r=>{console.error("Log stream error:",r),e?.(r)},()=>{a.close()}}function y(t){return t?t.startsWith("http://")||t.startsWith("https://")?t:`https://${t}/`:""}function p(t,e,a=""){return e?.baseUrl||y(e?.fqdn)||t.CSS_BASE_URL||a}async function d(t={}){try{const e=await fetch(`${s}/ddns`,{signal:t.signal});if(e.ok)return await e.json()}catch(e){console.error("Failed to get ddns status:",e)}return null}async function b(t={}){try{const e=await fetch("/provision/status",{signal:t.signal,credentials:"include",headers:{accept:"application/json"}});if(!e.ok)return null;const a=await e.json();return{registered:a.registered===!0,managed:a.managed===!0,nodeId:o(a.nodeId),cloudUrl:o(a.cloudUrl),serviceProviderDomain:o(a.spDomain),publicUrl:o(a.publicUrl)}}catch(e){return console.error("Failed to get provision status:",e),null}}function o(t){return typeof t=="string"&&t.length>0?t:null}async function A(t={}){const[e,a,r,n]=await Promise.all([g(t),l(t),u(t),d(t)]),i=await f(p(r?.env??{},n),t);return{servicesData:e,adminData:a,configData:r,ddnsData:n,publicCheck:i,checkedAt:new Date}}export{S as a,b,d as c,l as d,u as e,A as f,k as g,f as h,p as i,v as j,m as k,$ as r,F as s,P as t,w as u};
@@ -1 +0,0 @@
1
- const H=["openai","anthropic","kimi","bailian","deepseek","zhipu","ollama","custom"];function Tt(e){if(e==null||!e.trim())return;let t;try{t=new URL(e.trim())}catch{throw new Error("invalid_proxy_url")}if(!["http:","https:"].includes(t.protocol)||t.username||t.password||t.hash)throw new Error("invalid_proxy_url");if(!t.hostname)throw new Error("invalid_proxy_url");return t.href.replace(/\/$/u,"")}class T extends Error{constructor(t,n,a={}){const c=te(t);super(c?`AI Connection request failed: ${c}`:`AI Connection request failed (HTTP ${n})`),this.name="AiConnectionsRequestError",this.code=c,this.status=n,this.providerStatus=u(t)&&typeof t.providerStatus=="number"?t.providerStatus:void 0,this.payload=t,this.provider=a.provider,this.authMode=a.authMode}}function te(e){if(u(e)){if(typeof e.code=="string")return e.code;if(typeof e.errorCode=="string")return e.errorCode;if(typeof e.error=="string"&&/^[a-z][a-z0-9_:-]{0,80}$/i.test(e.error))return e.error}}async function F(e){const t=await e.text();if(t)try{return JSON.parse(t)}catch{throw new Error(`AI Connection returned invalid JSON (${e.status})`)}}function be(e){if(!H.includes(e))throw new Error(`Unsupported AI provider: ${e}`)}function L(e){if(!(!u(e)||typeof e.id!="string"||typeof e.owner!="string"||!Array.isArray(e.scopes)||!e.scopes.every(t=>typeof t=="string")||typeof e.createdAt!="string"))return y({id:e.id,kind:e.kind==="client-credentials"?e.kind:void 0,credentialResource:o(e.credentialResource),fingerprint:o(e.fingerprint),owner:e.owner,scopes:e.scopes,createdAt:e.createdAt,expiresAt:o(e.expiresAt),lastUsedAt:o(e.lastUsedAt),disabledAt:o(e.disabledAt),revokedAt:o(e.revokedAt),name:o(e.name),maskedHint:o(e.maskedHint),plaintextAvailable:typeof e.plaintextAvailable=="boolean"?e.plaintextAvailable:void 0,clientCredentialId:o(e.clientCredentialId),appliedTo:o(e.appliedTo),appliedOn:o(e.appliedOn),appliedAt:o(e.appliedAt),appliedClients:U(e.appliedClients)})}function V(e){if(!Array.isArray(e))throw new Error("AI Connection returned an invalid custom models response");const t=[];for(const n of e)!u(n)||typeof n.id!="string"||!n.id||t.push(y({id:n.id,displayName:o(n.displayName),inputModalities:U(n.inputModalities),outputModalities:U(n.outputModalities),capabilities:U(n.capabilities)}));return t}function U(e){if(!Array.isArray(e))return;const t=e.filter(n=>typeof n=="string");return t.length>0?t:void 0}function ne(e){if(!u(e)||typeof e.id!="string"||Ae(e.id))return;const t=g(e.provider)??g(e.providerId)??g(e.owned_by)??Pe(e.id);if(!t)return;const n=u(e.capabilities)?e.capabilities.imageInput:void 0;return y({id:e.id,provider:t,offeringId:o(e.offeringId),resourceId:o(e.resourceId),displayName:o(e.displayName)??o(e.display_name)??o(e.name),contextWindow:W(e.contextWindow)??W(e.context_window),protocols:Array.isArray(e.protocols)?e.protocols.filter(a=>typeof a=="string"):void 0,custom:e.custom===!0?!0:void 0,inputModalities:J(e.modalities,"input")??(n===!0?["text","image"]:n===!1?["text"]:void 0),outputModalities:J(e.modalities,"output"),capabilities:Ie(e)})}function J(e,t){if(!u(e))return;const n=e[t];if(!Array.isArray(n))return;const a=n.filter(c=>typeof c=="string");return a.length>0?a:void 0}function Ie(e){if(Array.isArray(e.custom_capabilities)){const n=e.custom_capabilities.filter(a=>typeof a=="string");if(n.length>0)return n}if(!u(e.capabilities))return;const t=[];return e.capabilities.imageInput===!0&&t.push("image"),e.capabilities.toolCalls===!0&&t.push("tool_call"),e.capabilities.reasoningEffort===!0&&t.push("reasoning"),e.capabilities.fast===!0&&t.push("fast"),e.capabilities.embedding===!0&&t.push("embedding"),t.length>0?t:void 0}function Ae(e){const t=e.toLowerCase();return t==="linx"||t==="linx-lite"||t==="undefineds/linx"||t==="undefineds/linx-lite"}function g(e){if(typeof e!="string")return;const t=e.toLowerCase().trim();return t==="alibaba"||t==="dashscope"||t==="alibaba-bailian"||t==="bailian-coding-plan"||t==="bailian-token-plan"?"bailian":H.includes(t)?t:void 0}function Pe(e){const t=e.split("/",1)[0];return e.includes("/")?g(t):void 0}function W(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function we(e){const t=new Map;for(const n of e){const a=Ue(n);if(!a)continue;const c=t.get(a.id);t.set(a.id,c?xe(c,a):a)}return[...t.values()]}function Ue(e){return _e(e)??Ce(e)}function Ce(e){if(!u(e)||typeof e.provider!="string"||!We(e.status)||!u(e.connect)||!Array.isArray(e.connect.modes)||!e.connect.modes.every(K)||typeof e.connect.configured!="boolean")return;const t=g(e.provider);if(!t)return;const n=Ne(e,t);return{id:t,name:de(t),offerings:[],credentials:n?[n]:[],selectedModels:[],status:qe(e.status)}}function _e(e){if(!u(e))return;const t=g(e.id)??g(e.provider);if(!t||!Ke(e.status))return;const n=I(e.offerings,ke),a=I(e.credentials,C),c=I(e.selectedModels,ne);return{id:t,name:o(e.name)??de(t),offerings:n,credentials:a,selectedModels:c,status:e.status}}function ke(e){if(!u(e)||typeof e.id!="string"||!e.id)return;const t=I(e.authModes,se);return y({id:e.id,label:o(e.label),kind:o(e.kind),lifecycle:Ee(e.lifecycle),authModes:t,authorizationMethods:I(e.authorizationMethods,ie),runtimeProviderIds:U(e.runtimeProviderIds),productLabel:o(e.productLabel),credentialPrefixHints:U(e.credentialPrefixHints),consoleUrl:o(e.consoleUrl),subscriptionUrl:o(e.subscriptionUrl),endpoints:I(e.endpoints,re),modelDiscovery:Oe(e.modelDiscovery),quota:Te(e.quota),usagePolicyUrl:o(e.usagePolicyUrl),region:o(e.region)})}function Se(e){if(!u(e)||typeof e.offeringId!="string"||!e.offeringId)return;const t=g(e.provider);if(!t)return;const n=I(e.authorizationMethods,ie);return{provider:t,offeringId:e.offeringId,...Array.isArray(e.endpoints)?{endpoints:I(e.endpoints,re)}:{},authorizationMethods:n}}function ie(e){if(!u(e)||typeof e.id!="string"||!e.id)return;const t=se(e.authMode),n=Me(e.lifecycle);if(!t||!n)return;const a=K(e.connectMode)?e.connectMode:void 0;return y({id:e.id,authMode:t,connectMode:a,label:o(e.label),lifecycle:n,reason:o(e.reason)})}function Me(e){return e==="active"||e==="unavailable"?e:void 0}function Ee(e){return e==="active"||e==="legacy"||e==="unavailable"?e:void 0}function re(e){if(!u(e))return;const t=o(e.protocol),n=o(e.baseUrl);if(!(!t||!n))return y({protocol:t,baseUrl:n,region:o(e.region)})}function Oe(e){if(!u(e))return;const t=o(e.strategy),n=o(e.path),a=o(e.endpointProtocol);return t&&n&&a?{strategy:t,path:n,endpointProtocol:a}:void 0}function Te(e){if(!u(e))return;const t=o(e.strategy),n=o(e.url);return t&&n?{strategy:t,url:n}:void 0}function C(e){if(!(!u(e)||typeof e.id!="string"||!e.id||typeof e.offeringId!="string"||!e.offeringId||!ce(e.authMode)||typeof e.enabled!="boolean"||typeof e.priority!="number"||!Number.isFinite(e.priority)||!He(e.health)||typeof e.version!="number"||!Number.isFinite(e.version)))return y({id:e.id,provider:g(e.provider),offeringId:e.offeringId,authMode:e.authMode,label:o(e.label),enabled:e.enabled,priority:e.priority,health:e.health,maskedHint:o(e.maskedHint),baseUrl:o(e.baseUrl),proxyUrl:o(e.proxyUrl),expiresAt:o(e.expiresAt),version:e.version})}function oe(e){return u(e)?Object.fromEntries(Object.entries(e).filter(([t])=>!Re(t)).map(([t,n])=>[t,ae(n)])):{}}function ae(e){return Array.isArray(e)?e.map(ae):u(e)?oe(e):e}function Re(e){const t=e.toLocaleLowerCase();return t.includes("secret")||t.includes("token")||t.includes("apikey")||t==="api_key"||t==="key"||t==="authorization"}function xe(e,t){const n=q([...e.credentials,...t.credentials],d=>d.id),a=q([...e.offerings,...t.offerings],d=>d.id),c=q([...e.selectedModels,...t.selectedModels],Le);return{id:e.id,name:e.name??t.name,offerings:a,credentials:n,selectedModels:c,status:$e(e.status,t.status)}}function Le(e){return e.resourceId??`${e.provider}:${e.offeringId??""}:${e.id}`}function qe(e){return e==="connected"?"available":e==="reauthRequired"?"attention":"unconfigured"}function $e(e,t){return e==="available"||t==="available"?"available":e==="attention"||t==="attention"?"attention":e==="configured"||t==="configured"?"configured":e==="unconfigured"||t==="unconfigured"?"unconfigured":"unavailable"}function Ne(e,t){if(e.status==="disconnected")return;const n=De(e.authMode);return y({id:o(e.credentialIri)??`${t}:current`,offeringId:ze(t,n),authMode:n,label:o(e.accountLabel),enabled:e.status==="connected",priority:0,health:e.status==="reauthRequired"||e.reauthRequired===!0?"expired":"healthy",maskedHint:o(e.maskedHint),baseUrl:o(e.baseUrl),proxyUrl:o(e.proxyUrl),expiresAt:o(e.expiresAt),version:typeof e.version=="number"?e.version:0})}function De(e){return e==="deviceCodeOAuth"?"deviceCode":"apiKey"}function ze(e,t){return e==="kimi"&&(t==="deviceCode"||t==="oauth")?"subscription-key":t==="deviceCode"||t==="oauth"?"official-subscription":"api-platform"}function se(e){return ce(e)?e:void 0}function ce(e){return e==="oauth"||e==="deviceCode"||e==="apiKey"||e==="local"}function He(e){return e==="healthy"||e==="expired"||e==="invalid"||e==="unknown"}function Ke(e){return e==="unconfigured"||e==="configured"||e==="available"||e==="attention"||e==="unavailable"}function I(e,t){return Array.isArray(e)?e.map(t).filter(_):[]}function q(e,t){const n=new Set,a=[];for(const c of e){const d=t(c);n.has(d)||(n.add(d),a.push(c))}return a}function de(e){switch(e){case"openai":return"OpenAI";case"anthropic":return"Anthropic";case"kimi":return"Kimi";case"bailian":return"Alibaba Bailian";case"deepseek":return"DeepSeek";case"zhipu":return"Zhipu";case"ollama":return"Ollama";case"custom":return"Custom"}}function je(e){if(!u(e)||typeof e.id!="string"||typeof e.credentialIri!="string"||typeof e.webId!="string"||typeof e.provider!="string"||typeof e.authMode!="string"||typeof e.status!="string")return;const t=g(e.provider);if(t)return y({id:e.id,credentialIri:e.credentialIri,webId:e.webId,provider:t,authMode:e.authMode,status:e.status,accountLabel:o(e.accountLabel),expiresAt:o(e.expiresAt),version:typeof e.version=="number"?e.version:void 0,reauthRequired:typeof e.reauthRequired=="boolean"?e.reauthRequired:void 0})}function Ge(e,t){if(!u(e)||!K(e.mode)||!Je(e.status)||e.provider!==t)throw new Error("AI Connection returned an invalid Connect response");return y({mode:e.mode,status:e.status,provider:t,attemptId:o(e.attemptId),state:o(e.state),signature:o(e.signature),expiresAt:o(e.expiresAt),authorizationUrl:$(e.authorizationUrl),userCode:o(e.userCode),verificationUri:$(e.verificationUri),verificationUriComplete:$(e.verificationUriComplete),intervalSeconds:typeof e.intervalSeconds=="number"?e.intervalSeconds:void 0,apiKeyManagementSupported:typeof e.apiKeyManagementSupported=="boolean"?e.apiKeyManagementSupported:void 0,credentialId:o(e.credentialId),offeringId:o(e.offeringId),authorizationMethodId:o(e.authorizationMethodId),oauthCredential:Be(e.oauthCredential),message:o(e.message)})}function Be(e){if(e!==void 0){if(!u(e)||typeof e.accessToken!="string"||!e.accessToken||typeof e.refreshToken!="string"||!e.refreshToken)throw new Error("AI Connection returned an invalid OAuth credential payload");return y({accessToken:e.accessToken,refreshToken:e.refreshToken,expiresAt:o(e.expiresAt),scope:o(e.scope),idToken:o(e.idToken),accountSubject:o(e.accountSubject),accountId:o(e.accountId),accountLabel:o(e.accountLabel),offeringId:o(e.offeringId),authorizationMethodId:o(e.authorizationMethodId),expectedVersion:typeof e.expectedVersion=="number"?e.expectedVersion:void 0})}}function Fe(e,t){if(!u(e)||!Array.isArray(e.models))throw new Error("AI Connection returned an invalid model discovery response");const n=e.models.map(a=>{if(!u(a)||typeof a.id!="string"||!a.id)return;const c=Array.isArray(a.capabilities)?a.capabilities.filter(f=>typeof f=="string"):void 0,d=Ve(a.modelType);return y({id:a.id,displayName:o(a.displayName),capabilities:c??(d==="embedding"?["embedding"]:void 0),modelType:d})}).filter(_);return{provider:t,credential:typeof e.credential=="string"?e.credential:"",models:n,observedAt:typeof e.observedAt=="string"?e.observedAt:new Date(0).toISOString(),source:typeof e.source=="string"?e.source:""}}function y(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}function Ve(e){return e==="chat"||e==="embedding"?e:void 0}function o(e){return typeof e=="string"?e:void 0}function $(e){if(typeof e=="string")try{const t=new URL(e);return t.protocol==="https:"||t.protocol==="http:"?t.href:void 0}catch{return}}function K(e){return e==="browserAssistedApiKey"||e==="deviceCodeOAuth"||e==="authorizationCodeOAuth"||e==="connectUnsupported"}function Je(e){return e==="pending"||e==="authorization_pending"||e==="slow_down"||e==="completed"||e==="expired"||e==="cancelled"||e==="unsupported"}function We(e){return e==="connected"||e==="disconnected"||e==="reauthRequired"}function u(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function _(e){return e!==void 0}function j(e){const t=new URL(e);if(t.protocol!=="https:"&&t.protocol!=="http:")throw new Error("Current Pod URL must use HTTP or HTTPS");return t.origin}function Ye({webId:e,podBaseUrl:t,authenticatedFetch:n}){const a=j(t),c=async(r,i,s,p={})=>{const l=await n(`${a}${r}`,{method:i,credentials:"omit",mode:"cors",headers:{accept:"application/json",...s?{"content-type":"application/json"}:{}},...s?{body:JSON.stringify(s)}:{}}),m=await F(l);if(!l.ok)throw new T(m,l.status,p);return m},d=r=>(be(r),`/api/ai/gateway/providers/${r}`),f=async(r,i,s,p)=>{const l=await c(`${d(r)}${i}`,s,p,{provider:r});return Ge(l,r)},h=async()=>{const r=await c("/v1/models","GET");return Array.isArray(r.data)?r.data.map(ne).filter(_):[]};return{webId:e,apiBase:a,getServiceAccess(){return c("/api/applets/service-access/ai-connections","GET")},async listProviders(){const r=await c("/api/ai/providers","GET");return Array.isArray(r.data)?we(r.data):[]},async listAuthorizationMethods(){const r=await n(`${a}/api/ai/connections/authorization-methods`,{method:"GET",credentials:"omit",mode:"cors",headers:{accept:"application/json"}});if(r.status===404)return[];const i=await F(r);if(!r.ok)throw new T(i,r.status);return u(i)&&Array.isArray(i.data)?i.data.map(Se).filter(_):[]},listModels:h,listGatewayModels:h,async listGatewayKeys(){const r=await c("/api/ai/gateway/keys","GET");return Array.isArray(r.data)?r.data.map(L).filter(_):[]},async createGatewayKey(r){const i=await c("/api/ai/gateway/keys","POST",y(r));if(typeof i.key!="string"||!i.key)throw new Error("Xpod did not return the new API Key");const s=L(i.record);if(!s)throw new Error("Xpod returned an invalid API Key record");return{plaintext:i.key,record:s}},async updateGatewayKey(r,i){const s=await c(`/api/ai/gateway/keys/${encodeURIComponent(r)}`,"PATCH",i),p=L(s.record);if(!p)throw new Error("Xpod returned an invalid API Key record");return p},async deleteGatewayKey(r){await c(`/api/ai/gateway/keys/${encodeURIComponent(r)}`,"DELETE")},async beginConnect(r,i,s){return await f(r,"/connect/begin","POST",y({mode:i,offeringId:s?.offeringId,authorizationMethodId:s?.authorizationMethodId}))},connectStatus(r,i){if(!i.attemptId)throw new Error("Connect attempt id is required");const s=new URLSearchParams({state:i.state??"",signature:i.signature??""});return i.mode&&s.set("mode",i.mode),f(r,`/connect/status/${encodeURIComponent(i.attemptId)}?${s}`,"GET")},completeApiKey(r,i,s,p,l){return f(r,"/connect/complete-api-key","POST",y({attemptId:i.attemptId,state:i.state,signature:i.signature,offeringId:i.offeringId,apiKey:s,accountLabel:p,baseUrl:l}))},pollDevice(r,i){return f(r,"/connect/poll","POST",y({mode:i.mode,attemptId:i.attemptId,state:i.state,signature:i.signature,offeringId:i.offeringId}))},cancelConnect(r,i){return f(r,"/connect/cancel","POST",y({mode:i.mode,attemptId:i.attemptId,state:i.state,signature:i.signature,offeringId:i.offeringId}))},refreshOAuthCredential(r,i,s,p,l,m){return f(r,"/connect/refresh","POST",{credentialId:i,refreshToken:s,expectedVersion:p,...l?{offeringId:l}:{},...m?{mode:m}:{}})},async disconnect(r,i){const s=i?`?${new URLSearchParams({credentialId:i})}`:"",p=await c(`${d(r)}/connect${s}`,"DELETE");return je(p.record)},async createApiKeyCredential(r,i){const s=await c(`/api/ai/providers/${r}/credentials/api-key`,"POST",y({...i}),{provider:r}),p=C(s.credential);if(!p)throw new Error("AI Connection returned an invalid Provider credential");return p},async createLocalCredential(r,i){const s=await c(`/api/ai/providers/${r}/credentials/local`,"POST",y(i),{provider:r}),p=C(s.credential);if(!p)throw new Error("AI Connection returned an invalid Provider credential");return p},async updateProviderCredential(r,i,s){const p=await c(`/api/ai/providers/${r}/credentials/${encodeURIComponent(i)}`,"PATCH",y({...s}),{provider:r}),l=C(p.credential);if(!l)throw new Error("AI Connection returned an invalid Provider credential");return l},async deleteProviderCredential(r,i){const s=await c(`/api/ai/providers/${r}/credentials/${encodeURIComponent(i)}`,"DELETE",void 0,{provider:r});return C(s.credential)},async testProviderCredential(r,i){const s=await c(`/api/ai/providers/${r}/credentials/test`,"POST",y({...i}),{provider:r});return oe(s.result)},quota(r,i=!1,s){const p=!i&&s?.credentialIri?`?credentialIri=${encodeURIComponent(s.credentialIri)}${s.offeringId?`&offeringId=${encodeURIComponent(s.offeringId)}`:""}`:"";return c(`${d(r)}/quota/${i?"refresh":"status"}${p}`,i?"POST":"GET",i?y({offeringId:s?.offeringId,credentialId:s?.credentialId,credentialIri:s?.credentialIri}):void 0,{provider:r})},quotaFromSecret(r,i){return c(`${d(r)}/quota/refresh`,"POST",y(i),{provider:r})},async discoverModels(r,i){const s=await c(`${d(r)}/models/refresh`,"POST",y({...i}),{provider:r,authMode:i?.authMode});return Fe(s,r)},async saveProviderModel(r,i){const s=await c(d(r)+"/models","POST",y({id:i.id,displayName:i.displayName,inputModalities:i.inputModalities,outputModalities:i.outputModalities,capabilities:i.capabilities}),{provider:r});return V(s.data)},async deleteProviderModel(r,i){const s=await c(`${d(r)}/models/${encodeURIComponent(i)}`,"DELETE",void 0,{provider:r});return V(s.data)}}}const pe="AI Connection request failed. Please try again.";function S(e){return typeof e=="object"&&e!==null}const le="订阅登录态自动刷新失败,请稍后重试。",ue="订阅登录态已失效,请在原客户端重新登录后重读,或使用设备码登录。",fe="订阅登录态不可用,请重读登录态或重新登录后再同步模型。",ye=new Set([fe,le,ue,"密钥不可用。请检查密钥是否填写正确,或换一个密钥后重试。","模型服务地址不正确。请检查服务地址后重试。","请求太频繁。请稍等一会儿再试。","模型服务暂时没有响应。请稍后重试。","模型列表获取失败。请检查密钥、服务地址或网络后重试。"]);function Y(e){if(e.startsWith("provider_models_response_error:"))return G(e.slice(31))??"模型列表获取失败。请检查密钥、服务地址或网络后重试。";const t=R(e);if(t)return t;const n=e.split(":",1)[0]?.trim(),a=n?R(n):void 0;return a||(e==="AI Connection service identity is unavailable"||ye.has(e)||et(e)?e:e.startsWith("invalid_")?"AI Connection returned an invalid response.":pe)}function Xe(e){return e instanceof T?Ze(e.payload,e.status,{provider:e.provider,authMode:e.authMode}):e instanceof Error?Y(e.message):Y(String(e))}function Ze(e,t,n={}){const a=te(e);if(a==="provider_models_response_error"){const f=S(e)&&typeof e.message=="string"?G(e.message):void 0;return f||"模型列表获取失败。请检查密钥、服务地址或网络后重试。"}if(a==="provider_models_fetch_failed"){const f=S(e)&&typeof e.providerStatus=="number"?e.providerStatus:void 0,h=S(e)&&typeof e.providerMessage=="string"?e.providerMessage.trim():void 0;return ve(Qe(f,n.authMode),h)}const c=a?R(a,n.provider):void 0;if(c)return c;const d=S(e)&&typeof e.error=="string"?e.error:void 0;if(d){const f=R(d,n.provider);if(f)return f;if(d==="AI Connection service identity is unavailable")return d;if(d==="Provider credential not found for current identity")return"当前身份没有可用的额度凭证。";if(d==="Provider quota adapter not found"||d==="Provider quota lookup failed")return"该接入方式不支持查询官方额度。"}return t===401?"Please sign in again to continue.":t===403?"AI Connection permission was denied.":t===404&&n.provider?`${D(n.provider)} connection is not configured.`:t===429?"AI Connection is rate limited. Please try again later.":t===503?"AI Connection service is unavailable.":pe}function R(e,t){switch(e.trim().toLowerCase().replace(/-/g,"_")){case"not_configured":case"notconfigured":return t?`${D(t)} connection is not configured.`:"AI provider connection is not configured.";case"unsupported":return t?`${D(t)} does not support this operation.`:"This AI Connection operation is not supported.";case"service_access_missing":case"pod_interface_key_missing":case"pod_interface_key_rejected":case"caller_dpop_replay_unsupported":return"Xpod 尚未获得这个 Pod 的接口访问密钥。请在「客户端访问」中创建 API Key 并应用到客户端后重试。";case"unauthorized":return"Please sign in again to continue.";case"forbidden":case"permission_denied":return"AI Connection permission was denied.";case"rate_limited":return"AI Connection is rate limited. Please try again later.";case"service_unavailable":return"AI Connection service is unavailable.";case"unsafe_provider_base_url":return"该服务地址指向 Xpod 不允许访问的网络,请改用公网 HTTPS 地址。";case"invalid_proxy_url":return"代理地址必须是无账号密码的 HTTP 或 HTTPS 地址。";case"oauth_refresh_failed":case"oauth_refresh_unavailable":case"local_session_refresh_failed":return le;case"oauth_session_reauth_required":case"oauth_refresh_token_required":case"local_session_reauth_required":case"local_session_missing_refresh_token":return ue;case"models_persistence_failed":return"模型已获取,但保存到 Pod 失败。请重试同步模型。";case"quota_credential_not_found":return"当前身份没有可用的额度凭证。";case"credential_secret_unavailable":return"当前凭证密钥不可用,请重新保存后再查询额度。";case"gateway_api_key_plaintext_unavailable":return"Pod 中未找到此 API Key 的原文,无法复制配置。请创建新的 Key,更新客户端后再删除旧 Key。";case"quota_adapter_not_found":return"该接入方式不支持查询官方额度。";default:return}}function Qe(e,t){return e===401||e===403?t==="deviceCodeOAuth"?fe:"密钥不可用。请检查密钥是否填写正确,或换一个密钥后重试。":e===404?"模型服务地址不正确。请检查服务地址后重试。":e===429?"请求太频繁。请稍等一会儿再试。":e!==void 0&&e>=500?"模型服务暂时没有响应。请稍后重试。":"模型列表获取失败。请检查密钥、服务地址或网络后重试。"}function ve(e,t){const n=t?G(t):void 0;return n?`${e} 上游返回:${n}`:e}function et(e){const n=e.indexOf(" 上游返回:");return n<=0?!1:ye.has(e.slice(0,n))}function G(e){return e.replace(/[\u0000-\u001f\u007f]/gu," ").replace(/\bBearer\s+[^\s,;]+/giu,"Bearer [REDACTED]").replace(/(?:sk|id)[._-][A-Za-z0-9._-]{8,}/gu,"[REDACTED]").replace(/https?:\/\/[^\s]+/giu,"[URL]").trim().slice(0,240)||void 0}function D(e){switch(e){case"openai":return"OpenAI";case"anthropic":return"Anthropic";case"kimi":return"Kimi";case"bailian":return"Bailian";case"deepseek":return"DeepSeek";case"zhipu":return"Zhipu";case"ollama":return"Ollama";case"custom":return"Custom"}}function tt(e){const t={...e};for(const[n,a]of Object.entries(e))typeof a=="function"&&(t[n]=async(...c)=>{try{return await a.apply(e,c)}catch(d){throw d instanceof T&&(d.message=Xe(d)),d}});return t}const me=[{id:"api-platform",label:"API Platform",kind:"api-platform",lifecycle:"active",authModes:["apiKey"]}],nt={id:"api-key",authMode:"apiKey",lifecycle:"active"},it={id:"browser-login",authMode:"apiKey",connectMode:"browserAssistedApiKey",lifecycle:"active"},w=[nt,it],rt=[{id:"openai-compatible",label:"OpenAI Compatible",kind:"api-platform",lifecycle:"active",authModes:["apiKey"],runtimeProviderIds:["custom"],consoleUrl:"https://undefineds.co",subscriptionUrl:"https://undefineds.co",endpoints:[{protocol:"chatCompletions",baseUrl:"https://example.invalid/v1"}],modelDiscovery:{strategy:"openaiCompatible",path:"/models",endpointProtocol:"chatCompletions"},quota:{strategy:"unsupported",url:"https://undefineds.co"}},{id:"anthropic-compatible",label:"Anthropic Compatible",kind:"api-platform",lifecycle:"active",authModes:["apiKey"],runtimeProviderIds:["custom"],consoleUrl:"https://undefineds.co",subscriptionUrl:"https://undefineds.co",endpoints:[{protocol:"anthropic",baseUrl:"https://example.invalid/v1"}],modelDiscovery:{strategy:"anthropic",path:"/models",endpointProtocol:"anthropic"},quota:{strategy:"unsupported",url:"https://undefineds.co"}}],N="https://www.kimi.com/code",ot="https://www.kimi.com/user/agreement",at="https://api.kimi.com/coding/v1",st="https://api.kimi.com/coding/",ct="https://platform.moonshot.cn/console/api-keys",X="https://platform.moonshot.cn/console/account",dt="https://platform.moonshot.cn/docs/intro",pt="https://api.moonshot.ai/v1",M="https://bailian.console.aliyun.com/",E="https://help.aliyun.com/zh/model-studio/",Z="https://open.bigmodel.cn/usercenter/apikeys",Q="https://open.bigmodel.cn/",lt="https://open.bigmodel.cn/api/paas/v4",ut="https://open.bigmodel.cn/api/coding/paas/v4",he={openai:[{id:"official-subscription",label:"OpenAI Subscription",kind:"oauth-subscription",lifecycle:"unavailable",authModes:["oauth","local"],productLabel:"OpenAI",runtimeProviderIds:["openai"],credentialPrefixHints:[],consoleUrl:"https://chatgpt.com/codex",subscriptionUrl:"https://chatgpt.com/codex",endpoints:[{protocol:"responses",baseUrl:"https://chatgpt.com/backend-api/codex"}],modelDiscovery:{strategy:"unsupported",path:"/models",endpointProtocol:"responses"},quota:{strategy:"subscription",url:"https://chatgpt.com/codex"},usagePolicyUrl:"https://openai.com/policies/usage-policies/",region:"global"},{id:"api-platform",label:"API Platform",kind:"api-platform",lifecycle:"active",authModes:["apiKey"],authorizationMethods:w,productLabel:"OpenAI",runtimeProviderIds:["openai"],credentialPrefixHints:["sk-"],consoleUrl:"https://platform.openai.com/api-keys",subscriptionUrl:"https://platform.openai.com/settings/organization/billing/overview",endpoints:[{protocol:"responses",baseUrl:"https://api.openai.com/v1"},{protocol:"chatCompletions",baseUrl:"https://api.openai.com/v1"}],modelDiscovery:{strategy:"openaiCompatible",path:"/models",endpointProtocol:"responses"},quota:{strategy:"providerApi",url:"https://platform.openai.com/usage"},usagePolicyUrl:"https://openai.com/policies/usage-policies/",region:"global"}],anthropic:[{id:"official-subscription",label:"Claude Code Subscription",kind:"oauth-subscription",lifecycle:"unavailable",authModes:["oauth"],productLabel:"Anthropic",runtimeProviderIds:["anthropic"],credentialPrefixHints:[],consoleUrl:"https://claude.ai/",subscriptionUrl:"https://claude.ai/settings/billing",endpoints:[],modelDiscovery:{strategy:"unsupported",path:"/models",endpointProtocol:"anthropic"},quota:{strategy:"subscription",url:"https://claude.ai/settings/usage"},usagePolicyUrl:"https://www.anthropic.com/legal/aup",region:"global"},{id:"api-platform",label:"API Platform",kind:"api-platform",lifecycle:"active",authModes:["apiKey"],authorizationMethods:w,productLabel:"Anthropic",runtimeProviderIds:["anthropic"],credentialPrefixHints:["sk-ant-"],consoleUrl:"https://console.anthropic.com/settings/keys",subscriptionUrl:"https://console.anthropic.com/settings/plans",endpoints:[{protocol:"anthropic",baseUrl:"https://api.anthropic.com/v1"}],modelDiscovery:{strategy:"anthropic",path:"/models",endpointProtocol:"anthropic"},quota:{strategy:"console",url:"https://console.anthropic.com/settings/limits"},usagePolicyUrl:"https://www.anthropic.com/legal/aup",region:"global"}],kimi:[v({id:"subscription-key",label:"Token Plan",kind:"token-plan",authModes:["apiKey"],productLabel:"Kimi Coding",runtimeProviderIds:["kimi"],credentialPrefixHints:["sk-kimi-"],baseUrl:at,anthropicBaseUrl:st,quotaStrategy:"subscription",quotaUrl:N,consoleUrl:N,subscriptionUrl:N,usagePolicyUrl:ot,supportsDeveloperMessages:!1}),v({id:"api-platform",label:"API Platform",kind:"api-platform",authModes:["apiKey"],productLabel:"Moonshot AI",runtimeProviderIds:["kimi"],credentialPrefixHints:["sk-"],baseUrl:pt,quotaStrategy:"console",quotaUrl:X,consoleUrl:ct,subscriptionUrl:X,usagePolicyUrl:dt})],bailian:[O({id:"pay-as-you-go",label:"Pay as You Go",kind:"api-platform",runtimeProviderIds:["bailian"],credentialPrefixHints:["sk-"],region:"cn",baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1",anthropicBaseUrl:"https://dashscope.aliyuncs.com/apps/anthropic",quotaStrategy:"console",consoleUrl:M,usagePolicyUrl:E}),O({id:"token-plan",label:"Token Plan Personal",kind:"token-plan",runtimeProviderIds:["bailian-token-plan"],credentialPrefixHints:["sk-"],region:"cn-beijing",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",anthropicBaseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic",quotaStrategy:"subscription",consoleUrl:M,usagePolicyUrl:E}),O({id:"token-plan-team",label:"Token Plan Team",kind:"token-plan",runtimeProviderIds:["bailian-token-plan"],credentialPrefixHints:["sk-"],region:"cn-beijing",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",anthropicBaseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic",quotaStrategy:"subscription",consoleUrl:M,usagePolicyUrl:E}),O({id:"coding-plan",label:"Coding Plan Pro",kind:"token-plan",runtimeProviderIds:["bailian-coding-plan"],credentialPrefixHints:["sk-sp-"],region:"cn",baseUrl:"https://coding.dashscope.aliyuncs.com/v1",anthropicBaseUrl:"https://coding.dashscope.aliyuncs.com/apps/anthropic",quotaStrategy:"subscription",consoleUrl:M,usagePolicyUrl:E})],deepseek:[{id:"api-platform",label:"API Platform",kind:"api-platform",lifecycle:"active",authModes:["apiKey"],productLabel:"DeepSeek",runtimeProviderIds:["deepseek"],credentialPrefixHints:["sk-"],consoleUrl:"https://platform.deepseek.com/api_keys",subscriptionUrl:"https://platform.deepseek.com/usage",endpoints:[{protocol:"chatCompletions",baseUrl:"https://api.deepseek.com/v1"}],modelDiscovery:{strategy:"openaiCompatible",path:"/models",endpointProtocol:"chatCompletions"},quota:{strategy:"console",url:"https://platform.deepseek.com/usage"},usagePolicyUrl:"https://cdn.deepseek.com/policies/en-US/deepseek-open-platform-terms-of-use.html",region:"global"}],ollama:[{id:"local",label:"Local Ollama",kind:"local",lifecycle:"active",authModes:["local"],productLabel:"Ollama",runtimeProviderIds:["ollama"],credentialPrefixHints:[],consoleUrl:"https://ollama.com",subscriptionUrl:"https://ollama.com",endpoints:[{protocol:"chatCompletions",baseUrl:"http://localhost:11434/v1"}],modelDiscovery:{strategy:"openaiCompatible",path:"/models",endpointProtocol:"chatCompletions"},quota:{strategy:"unsupported",url:"https://ollama.com"},usagePolicyUrl:"https://ollama.com",region:"local"}],zhipu:[{id:"api-platform",label:"API Platform",kind:"api-platform",lifecycle:"active",authModes:["apiKey"],authorizationMethods:w,productLabel:"智谱 AI",runtimeProviderIds:["zhipu"],credentialPrefixHints:["id."],consoleUrl:Z,subscriptionUrl:"https://open.bigmodel.cn/finance-center/expense-manage",endpoints:[{protocol:"chatCompletions",baseUrl:lt,region:"cn"}],modelDiscovery:{strategy:"openaiCompatible",path:"/models",endpointProtocol:"chatCompletions"},quota:{strategy:"console",url:"https://open.bigmodel.cn/finance-center/expense-manage"},usagePolicyUrl:Q,region:"cn"},{id:"coding-plan",label:"GLM Coding Plan",kind:"token-plan",lifecycle:"active",authModes:["apiKey"],authorizationMethods:w,productLabel:"智谱 AI",runtimeProviderIds:["zhipu"],credentialPrefixHints:["id."],consoleUrl:Z,subscriptionUrl:"https://bigmodel.cn/glm-coding",endpoints:[{protocol:"chatCompletions",baseUrl:ut,region:"cn"}],modelDiscovery:{strategy:"openaiCompatible",path:"/models",endpointProtocol:"chatCompletions"},quota:{strategy:"subscription",url:"https://bigmodel.cn/glm-coding"},usagePolicyUrl:Q,region:"cn"}]};function v(e){return{id:e.id,label:e.label,kind:e.kind,lifecycle:"active",authModes:e.authModes,authorizationMethods:w,productLabel:e.productLabel,runtimeProviderIds:e.runtimeProviderIds,credentialPrefixHints:e.credentialPrefixHints,consoleUrl:e.consoleUrl,subscriptionUrl:e.subscriptionUrl,endpoints:ge(e.baseUrl,e.anthropicBaseUrl,"cn",e.supportsDeveloperMessages),modelDiscovery:{strategy:"openaiCompatible",path:"/models",endpointProtocol:"chatCompletions"},quota:{strategy:e.quotaStrategy,url:e.quotaUrl},usagePolicyUrl:e.usagePolicyUrl,region:"cn"}}function O(e){return{id:e.id,label:e.label,lifecycle:"active",productLabel:"Alibaba Bailian",kind:e.kind,authModes:["apiKey"],authorizationMethods:w,runtimeProviderIds:e.runtimeProviderIds,credentialPrefixHints:e.credentialPrefixHints,consoleUrl:e.consoleUrl,subscriptionUrl:e.consoleUrl,endpoints:ge(e.baseUrl,e.anthropicBaseUrl,e.region),modelDiscovery:{strategy:"openaiCompatible",path:"/models",endpointProtocol:"chatCompletions"},quota:{strategy:e.quotaStrategy,url:e.consoleUrl},usagePolicyUrl:e.usagePolicyUrl,region:e.region}}function ge(e,t,n,a){return[{protocol:"chatCompletions",baseUrl:e,region:n,...a===void 0?{}:{supportsDeveloperMessages:a}},...t?[{protocol:"anthropic",baseUrl:t,region:n}]:[]]}function ft(e,t=!1){return(he[e]??me).map(n=>e==="openai"&&n.id==="official-subscription"&&t?{...n,lifecycle:"active",authModes:Array.from(new Set([...n.authModes??[],"local"])),authorizationMethods:[{id:"device-code",authMode:"deviceCode",connectMode:"deviceCodeOAuth",lifecycle:"active"},{id:"local-session-import",authMode:"local",lifecycle:"active"}]}:{...n})}const Rt=H.flatMap(e=>[e,...yt(e).map(t=>`${e}-${t.id}`)]);function yt(e){return e==="custom"?rt:he[e]??me}function xt(e,t){return e==="anthropic"||t==="anthropic-compatible"?"anthropic":"openai"}function mt(e,t){return e==="openai"&&(t==="local"||t==="oauth"||t==="deviceCode")?"official-subscription":e==="kimi"&&(t==="oauth"||t==="deviceCode")?"subscription-key":e==="bailian"?"pay-as-you-go":e==="ollama"?"local":e==="custom"?"openai-compatible":"api-platform"}function Lt(e,t){const n=ft(e).find(c=>c.id===(t??mt(e,"apiKey")));if(!n)return;const a=n.modelDiscovery?.endpointProtocol;return n.endpoints?.find(c=>c.protocol===a)?.baseUrl??n.endpoints?.[0]?.baseUrl}function qt(e,t){const n=t.trim().toLowerCase();if(e==="bailian"){if(n==="token-plan-personal")return"token-plan";if(n==="coding-plan-pro")return"coding-plan"}return n}function $t(e){return{offeringId:e.offeringId,priority:e.priority??100,enabled:e.enabled??!0,health:e.health??"unknown",...e.baseUrl?{baseUrl:e.baseUrl}:{}}}const ht=3e4;function Nt({webId:e,podUrl:t,authenticatedFetch:n}){return tt(Ye({webId:e,podBaseUrl:t,authenticatedFetch:gt(n)}))}function gt(e){return(async(t,n)=>z(await e(t,n)))}function bt({podUrl:e,authenticatedFetch:t,invocationFetch:n=t,now:a=()=>new Date,invocationSelector:c=wt}){const d=j(e);let f,h;const r=async(l,m)=>{const b=await t(l,m);return f=await Pt(b.clone(),c),b},i=async()=>{if(Ct(f,a()))return f;if(h)return h;h=s();try{return await h}finally{h=void 0}},s=async()=>{if(!(await r(`${d}/api/applets/service-access/ai-connections`,{method:"GET",credentials:"include",headers:{accept:"application/json"}})).ok)throw new Error("AI Connection request failed. Please try again.");const m=f;if(!m?.token)throw new Error("AI Connection request failed. Please try again.");return m},p=async(l,m)=>{const b=await i(),k=_t(b);if(!k)throw new Error("AI Connection request failed. Please try again.");const B=new Headers(m?.headers);return B.set("Authorization",`Bearer ${k}`),n(l,{...m,credentials:"omit",headers:B})};return(async(l,m)=>{if(It(l,d))return r(l,m);if(!At(l,d))return t(l,m);const b=await p(l,m);if(b.status!==401)return z(b);await b.arrayBuffer(),f=void 0;const k=await p(l,m);return z(k)})}function Dt({podUrl:e,controlPlaneOrigin:t,authenticatedFetch:n,invocationFetch:a,now:c}){const d=j(e),f=a??n,r=bt({podUrl:e,authenticatedFetch:n,invocationFetch:(i,s)=>{const p=new URL(i instanceof Request?i.url:String(i),d);if(t&&p.origin===d&&p.pathname.startsWith("/api/ai/client-configuration/")){const l=new URL(`${p.pathname}${p.search}`,t);return f(i instanceof Request?new Request(l,i):l.href,s)}return f(i,s)},now:c,invocationSelector:Ut});return{inspect:async i=>{const s=await r(A(d,i),{method:"GET",credentials:"omit",headers:{accept:"application/json"}});return s.status===403||s.status===404||s.status===503?(await s.arrayBuffer(),ee()):P(s)},plan:async i=>P(await r(`${A(d,i.client)}/plan`,{method:"POST",credentials:"omit",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({endpoint:t?new URL(t).origin:i.endpoint,...i.activeModels!==void 0?{activeModels:i.activeModels}:{}})})),apply:async i=>P(await r(`${A(d,i.client)}/apply`,{method:"POST",credentials:"omit",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({planId:i.planId,apiKey:i.apiKey,confirmation:i.confirmation})})),verify:async i=>P(await r(`${A(d,i.client)}/verify`,{method:"POST",credentials:"omit",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({planId:i.planId})})),launch:async i=>P(await r(`${A(d,i)}/launch`,{method:"POST",credentials:"omit",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({})})),restore:async i=>{const s=await r(`${A(d,i)}/restore`,{method:"POST",credentials:"omit",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({})});return s.status===403||s.status===404||s.status===503?(await s.arrayBuffer(),ee()):P(s)}}}function It(e,t){try{const n=new URL(String(e),t),a=new URL(t);return n.origin===a.origin&&n.pathname==="/api/applets/service-access/ai-connections"}catch{return!1}}function At(e,t){try{const n=new URL(String(e),t),a=new URL(t);return n.origin===a.origin&&(n.pathname.startsWith("/api/ai/")||n.pathname.startsWith("/v1/"))}catch{return!1}}async function Pt(e,t){if(!(!e.ok||!e.headers.get("content-type")?.includes("application/json")))try{const n=await e.json();return kt(t(n))}catch{return}}function wt(e){return e.invocation}function Ut(e){const t=e.aiClientConfiguration;return x(t)?t.invocation:void 0}function Ct(e,t){if(!e?.token)return!1;if(!e.expiresAt)return!0;const n=Date.parse(e.expiresAt);return Number.isFinite(n)&&n-t.getTime()>ht}function _t(e){return e?.token}function kt(e){if(!x(e))return;const t=["gateway","Key"].join("");return{token:typeof e.token=="string"?e.token:typeof e.apiKey=="string"?e.apiKey:typeof e[t]=="string"?e[t]:void 0,baseUrl:typeof e.baseUrl=="string"?e.baseUrl:void 0,expiresAt:typeof e.expiresAt=="string"?e.expiresAt:void 0}}async function z(e){return e.ok?e:e.headers.get("content-type")?.includes("application/json")?Mt(e):(await e.arrayBuffer(),new Response(JSON.stringify({error:"internal_error"}),{status:e.status,statusText:e.statusText,headers:{"content-type":"application/json"}}))}function A(e,t){return`${e}/api/ai/client-configuration/${encodeURIComponent(t)}`}async function P(e){if(!e.ok)throw await St(e);if(!e.headers.get("content-type")?.includes("application/json"))throw await e.arrayBuffer(),new Error("AI client configuration request failed. Please try again.");return await e.json()}async function St(e){let t;try{t=e.headers.get("content-type")?.includes("application/json")?await e.json():void 0}catch{t=void 0}if(x(t)){const n=typeof t.code=="string"?t.code:typeof t.error=="string"?t.error:void 0,a=typeof t.message=="string"?t.message:"AI client configuration request failed. Please try again.",c=new Error(a);return c.code=n,c.status=e.status,c.details=t.details,c}return await e.arrayBuffer().catch(()=>{}),new Error("AI client configuration request failed. Please try again.")}function ee(){return{status:"unavailable",message:"Host does not support local client configuration. Use the manual setup instructions for your client."}}async function Mt(e){let t;try{t=await e.clone().json()}catch{return e}const n=Ot(t);return n?new Response(JSON.stringify({code:n}),{status:e.status,statusText:e.statusText,headers:{"content-type":"application/json"}}):Et(t)?new Response(JSON.stringify({code:t.error.code,error:t.error.message}),{status:e.status,statusText:e.statusText,headers:{"content-type":"application/json"}}):e}function Et(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;const t=e.error;return!!(t&&typeof t=="object"&&!Array.isArray(t)&&typeof t.code=="string"&&typeof t.message=="string"&&typeof t.status=="number")}function Ot(e){if(!(!x(e)||typeof e.error!="string")&&e.error==="Gateway API Key plaintext is not available")return"gateway_api_key_plaintext_unavailable"}function x(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}export{H as A,rt as C,Nt as a,xt as b,$t as c,mt as d,Rt as e,Ye as f,T as g,Xe as h,Dt as i,Tt as n,Lt as o,ft as p,qt as s};
@@ -1 +0,0 @@
1
- import{j as u,r as h,z as V,A as oe,D as ce,B as M,E as de,F as le,G as X,H as U,I as C,J as ue,K,N as H,L as fe,M as Q,O as ge,Q as me,S as he,T as pe,U as we,V as ve,l as be,W as xe,m as Re,X as ye,n as Se}from"./global-DMtP8ZF4.js";const Ie="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2064%2064'%20fill='none'%3e%3cpath%20d='M32%207%2051%2016.5v13.8c0%2012.4-7.4%2021.2-19%2027.7-11.6-6.5-19-15.3-19-27.7V16.5L32%207Z'%20stroke='%238A72BE'%20stroke-width='5'%20stroke-linecap='round'%20stroke-linejoin='round'%20/%3e%3c/svg%3e";function Z({compact:e=!1,showSubtitle:t=!e,subtitle:r="使用 WebID 登录"}){const n=e&&t;return u.jsxs("div",{"data-testid":"xpod-login-brand","data-presentation":e?"compact":"standard",className:n?"flex flex-col items-center justify-center gap-1 text-center":e?"flex items-center justify-center gap-2 text-center":"flex flex-col items-center gap-3 text-center",children:[u.jsx("img",{src:Ie,alt:"",className:e?n?"h-16 w-16":"h-7 w-7":"h-11 w-11"}),u.jsxs("div",{className:n?"space-y-1 text-center":e?"text-left":"space-y-1",children:[u.jsx("h1",{className:e?"text-base font-semibold leading-none text-foreground":"text-lg font-semibold text-foreground",children:"Xpod"}),t?u.jsx("p",{className:"text-xs text-primary/80",children:r}):null]})]})}const $="xpod.auth.callback.identity.v1.",Pe=new Set(["provision-status-unavailable","profile-read-failed","no-usable-access-route","pod-open-failed"]),P="xpod.auth.callback.completed.v1.",ee=600*1e3,F="solidClientAuthn:currentUrl",I=new Map,z=new Set(["webid-mismatch","binding-mismatch"]),O={"missing-transaction":{title:"登录请求已失效",message:"这次登录请求已经失效,请重新登录。",action:"重新登录"},"replayed-transaction":{title:"登录请求已使用",message:"这次登录请求已经完成,不能再次使用。请重新登录。",action:"重新登录"},"expired-transaction":{title:"登录请求已过期",message:"登录等待时间过长,请重新登录。",action:"重新登录"},"malformed-transaction":{title:"登录请求无效",message:"登录信息不完整或已被修改,请重新登录。",action:"重新登录"},"oidc-state-invalid":{title:"登录验证已失效",message:"登录页面与当前会话不再匹配,请重新登录。",action:"重新登录"},"oidc-provider-error":{title:"授权未完成",message:"身份服务未能完成此次授权,请重新登录。",action:"重新登录"},unauthenticated:{title:"登录没有完成",message:"Xpod 没有收到有效的 WebID,请重新登录。",action:"重新登录"},"unsafe-route":{title:"登录请求不安全",message:"Xpod 已阻止异常的登录来源,请从应用内重新登录。",action:"重新登录"},"unsafe-return-to":{title:"登录请求不安全",message:"Xpod 已阻止异常的返回地址,请从应用内重新登录。",action:"重新登录"},"missing-storage":{title:"没有可用的 Pod",message:"当前账号还没有可用于本次登录的 Pod,请返回后重试。",action:"返回并重试"},"provision-status-unavailable":{title:"暂时无法确认本机 Pod",message:"Xpod 暂时无法读取存储服务状态,请稍后重试。",action:"重试连接"},"local-binding-missing":{title:"本机绑定尚未完成",message:"当前账号还没有绑定到这台 Xpod。请先修复本机初始化,再重新登录。",action:"修复本机绑定"},"webid-mismatch":{title:"身份与 Pod 不匹配",message:"本次登录身份与所选 Pod 不一致,请重新登录。",action:"重新登录"},"binding-mismatch":{title:"身份与 Pod 不匹配",message:"Xpod 无法确认当前身份拥有所选 Pod,请重新登录。",action:"重新登录"},"profile-read-failed":{title:"暂时无法读取身份资料",message:"未能读取你的 WebID 资料,暂时无法确认 Pod 地址。请稍后重试,不需要重新创建 Pod。",action:"重试连接"},"no-usable-access-route":{title:"暂时无法连接本机 Pod",message:"Xpod 找不到可用的访问通道,请确认本机服务正在运行后重试。你的资料没有丢失。",action:"重试连接"},"pod-open-failed":{title:"暂时无法打开 Pod",message:"Xpod 无法连接到你的 Pod,请检查服务状态后重试。",action:"重试连接"},"storage-unavailable":{title:"无法保存登录状态",message:"当前环境无法保存本次登录状态,请重新打开 Xpod 后重试。",action:"重新登录"},"redirect-failed":{title:"登录已完成",message:"身份验证已经完成,但目标页面没有正常打开。",action:"返回概览"}};async function q(e){const t=new URL(e.href),r=t.origin,n=Ae(),i=re(t,e.storage,e.now);if(i)return e.locationReplace?.(i),{status:"redirected",destination:i};let c=t.searchParams.get("transaction");const d=t.searchParams.has("code")||t.searchParams.has("state")||t.searchParams.has("error"),a=d?E(t):void 0;let s,o,g;try{s=e.transactionStore??X({storage:e.storage,origin:r});const f=s.readSinglePending();!c&&f&&(c=f.id),c?!f||f.id!==c?(s.consume(c),g=l("missing-transaction")):o=f:g=l("missing-transaction")}catch(f){g=l(De(f))}const x=c?ne(t,c,e.storage,e.now):void 0;if(x){if(d&&a&&!o){const f=await D(e.runtime,e.href);if(f.status==="failure"){const m=await _({callbackUrl:t,destination:a,recoveryPointers:n,storage:e.storage,locationReplace:e.locationReplace});return m||f}return e.locationReplace?.(a),{status:"redirected",destination:a}}return e.locationReplace?.(x),{status:"redirected",destination:x}}if(!o){if(a){const f=await D(e.runtime,e.href);if(f.status==="failure"){const m=await _({callbackUrl:t,destination:a,recoveryPointers:n,storage:e.storage,locationReplace:e.locationReplace});return m||f}return e.locationReplace?.(a),{status:"redirected",destination:a}}return g??l("missing-transaction")}if(!s||!c)return l("missing-transaction");const p=await Le(e,o);if(p.status==="failure"){const f=await _({callbackUrl:t,destination:Ne(o,r),recoveryPointers:n,transactionStore:s,transactionId:c,storage:e.storage,locationReplace:e.locationReplace});return f||p}const b=p.webId,R=e.runtime.session.createAuthenticatedFetch(b);let w=!1;const S=e.runtime.session.subscribe(()=>{w=!0,e.runtime.pod.clear({webId:b})});try{try{ue(o.route,r)}catch{return l("unsafe-route")}let f;try{f=U(o.returnTo)}catch{return l("unsafe-return-to")}const m=o.selectedStorage&&new URL(o.selectedStorage.storageUrl).origin===r?{storageRoot:r,available:!0}:await Te(e.fetch??fetch,r);if(w)return l("pod-open-failed");if(!m.available)return l("provision-status-unavailable");const y=m.storageRoot;e.runtime.setLocalPodRoutes(K(y,m));let v;try{v=o.selectedStorage??await Oe(R,b,y)}catch(W){return W instanceof H?l("no-usable-access-route"):l("profile-read-failed")}if(w)return l("pod-open-failed");if(v&&!Y(v,r,y))return l("binding-mismatch");if(v&&v.webId!==b)return l("webid-mismatch");if(!v)return m.managed?l("local-binding-missing",m.provisionUrl):l("missing-storage");let k;try{e.runtime.setLocalPodRoutes(K(v.storageUrl,m)),k=await e.runtime.pod.open({webId:b,podUrl:v.storageUrl,fetch:R})}catch{return{...l("pod-open-failed")}}if(w)return l("pod-open-failed");const L=v;if(!Y(L,r,y)||k.webId!==L.webId||!Fe(k.podUrl,L.storageUrl))return l("binding-mismatch");try{fe(L,{storage:e.storage,origin:r,storageRoot:y,now:e.now})}catch{return l("storage-unavailable")}const A=new URL(f??C,r).href;try{s.consume(c),Ue(c,A,t,e.storage,e.now),(e.storage??window.sessionStorage).removeItem(`${$}${c}`),e.locationReplace?.(A)}catch{return Q({storage:e.storage}),l("redirect-failed")}return{status:"redirected",destination:A,transaction:o,selectedStorage:L,pod:k}}finally{S()}}async function Le(e,t){const r=new URL(e.href),n=e.storage??window.sessionStorage,i=`${$}${t.id}`,c=j(r),d=e.now??Date.now;try{const s=n.getItem(i);if(s){const o=JSON.parse(s);if(!B(o)||o.callback!==c||typeof o.webId!="string"||typeof o.completedAt!="number"||!Number.isFinite(o.completedAt))return l("oidc-state-invalid");if(d()<o.completedAt||d()-o.completedAt>ee)return l("expired-transaction");const g=e.runtime.session.getSnapshot();return g.status!=="authenticated"?l("unauthenticated"):g.webId!==o.webId?l("webid-mismatch"):{status:"success",webId:g.webId}}}catch{return l("storage-unavailable")}const a=await D(e.runtime,e.href);if(a.status==="failure")return a;try{n.setItem(i,JSON.stringify({callback:c,webId:a.webId,completedAt:d()}))}catch{return l("storage-unavailable")}return a}function J(e){const t=new URL(e.href);if(re(t,e.storage,e.now))return q(e);const r=te(t,e.transactionStore),n=I.get(r);if(n)return n;const i=q(e);return I.set(r,i),i}function te(e,t){let r=e.searchParams.get("transaction");if(!r)try{r=t?.readSinglePending()?.id??X({origin:e.origin}).readSinglePending()?.id??(E(e)?"<silent>":"<missing>")}catch{r=E(e)?"<silent>":"<missing>"}return`${e.origin}:${r}`}function j(e){return`${e.origin}${e.pathname}?state=${encodeURIComponent(e.searchParams.get("state")??"")}`}function re(e,t,r){if(e.searchParams.get("state"))try{const n=t??window.sessionStorage,i=e.searchParams.get("transaction");for(let c=0;c<n.length;c+=1){const d=n.key(c);if(!d?.startsWith(P))continue;const a=d.slice(P.length);if(i&&i!==a)continue;const s=n.getItem(d);if(!s)continue;const o=JSON.parse(s);if(B(o)&&o.callback===j(e))return ne(e,a,n,r)}}catch{}}function ne(e,t,r,n=()=>Date.now()){try{const i=r??window.sessionStorage,c=`${P}${t}`,d=i.getItem(c);if(!d)return;const a=JSON.parse(d);if(a.callback!==void 0&&a.callback!==j(e)||typeof a.destination!="string"||typeof a.completedAt!="number"||!Number.isFinite(a.completedAt))return;if(n()<a.completedAt||n()-a.completedAt>ee){i.removeItem(c);return}const s=new URL(a.destination);if(s.origin!==e.origin||s.username||s.password)return;const o=U(`${s.pathname}${s.search}${s.hash}`);return o?new URL(o,e.origin).href:void 0}catch{return}}function E(e){try{const t=window.localStorage.getItem(F);if(!t)return;const r=new URL(t,e.origin);if(r.origin!==e.origin)return;const n=`${r.pathname}${r.search}`,i=U(n);return i===void 0?void 0:new URL(i,e.origin).href}catch{return}}function Ue(e,t,r,n,i=()=>Date.now()){(n??window.sessionStorage).setItem(`${P}${e}`,JSON.stringify({destination:t,callback:j(r),completedAt:i()}))}function ke({runtime:e,transactionStore:t,href:r=typeof window>"u"?"http://localhost/auth/callback":window.location.href,location:n=typeof window>"u"?void 0:window.location,restartSignIn:i,renderRedirected:c}){const[d]=h.useState(()=>e?void 0:Be()),a=e??d,[s,o]=h.useState(),[g,x]=h.useState(!1),p=h.useRef(void 0),b=h.useRef(!1),[R]=h.useState(()=>{const f=new URL(r);return ae(f,t)?.id??f.searchParams.get("transaction")}),w=h.useMemo(()=>Ce({href:r,transactionStore:t}),[r,t]);if(h.useEffect(()=>{p.current||(p.current=J({href:r,runtime:a,transactionStore:t,locationReplace:n?.replace.bind(n)}),p.current.then(o))},[a,r,n,t]),h.useEffect(()=>{typeof document>"u"||s?.status==="redirected"&&c||(document.title=s?.status==="failure"?`Xpod - ${O[s.code].title}`:s?.status==="redirected"?"Xpod - 登录完成":"Xpod - 正在登录")},[c,s]),h.useEffect(()=>{!s||s.status!=="failure"||z.has(s.code)&&(b.current||(b.current=!0,queueMicrotask(()=>{x(!0),T({href:r,runtime:a,transactionStore:t,associatedTransactionId:R}).finally(()=>{(i??(m=>window.location.replace(m)))(w)})})))},[a,R,r,w,i,s,t]),!s)return u.jsx(N,{title:"正在完成登录",message:"请稍候,不要关闭这个窗口。"});if(s.status==="redirected")return c?.(s)??u.jsx(N,{title:"登录完成",message:"正在打开 Xpod。"});if(z.has(s.code))return u.jsx(N,{title:"正在重新登录",message:"Xpod 正在清理不匹配的登录状态。"});const S=O[s.code];return u.jsx(V,{mode:"modal",title:S.title,lead:u.jsx(Z,{compact:!0}),closeOnEscape:!1,children:u.jsxs("div",{className:"flex min-h-0 flex-1 flex-col px-5 pb-5",children:[u.jsx("div",{className:"flex min-h-0 flex-1 flex-col justify-center py-5",children:u.jsxs("div",{className:"min-w-0",children:[u.jsxs("div",{className:"flex items-center gap-2",children:[u.jsx(oe,{"aria-hidden":"true",className:"h-4 w-4 shrink-0 text-destructive"}),u.jsx("h2",{className:"text-[15px] font-semibold leading-6 text-foreground",children:S.title})]}),u.jsx("p",{role:"alert",className:"mt-2 text-xs leading-5 text-muted-foreground",children:S.message}),u.jsxs("details",{className:"group mt-3 text-[11px] leading-4 text-muted-foreground",children:[u.jsxs("summary",{className:"-ml-1 inline-flex min-h-8 cursor-pointer list-none items-center gap-1 rounded-md px-1 outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring [&::-webkit-details-marker]:hidden",children:[u.jsx(ce,{"aria-hidden":"true",className:"h-3 w-3 shrink-0 group-open:rotate-90"}),"技术详情"]}),u.jsxs("div",{className:"mt-1 max-h-24 overflow-y-auto overscroll-contain",children:[u.jsx("code",{className:"block break-all text-left",children:s.code}),!1]})]})]})}),u.jsx(M,{type:"button",className:"w-full shrink-0 rounded-xl",disabled:g,"aria-busy":g,onClick:()=>{if(!g){if(Pe.has(s.code)){I.delete(te(new URL(r),t)),o(void 0),p.current=J({href:r,runtime:a,transactionStore:t,locationReplace:n?.replace.bind(n)}),p.current.then(o);return}x(!0),(s.code==="redirect-failed"?Promise.resolve():T({href:r,runtime:a,transactionStore:t,associatedTransactionId:R})).finally(()=>{if(s.actionUrl){(i??(y=>window.location.replace(y)))(s.actionUrl);return}(i??(m=>window.location.replace(m)))(w)})}},children:g?"正在重置…":S.action}),u.jsx(M,{type:"button",variant:"ghost",disabled:g,onClick:()=>{g||(x(!0),de(!0),T({href:r,runtime:a,transactionStore:t,associatedTransactionId:R,preserveSession:!0}).finally(()=>{(i??(m=>window.location.replace(m)))(w)}))},children:"返回应用"})]})})}function Ce({href:e,transactionStore:t,basePath:r="/settings/"}){const n=new URL(e),c=ae(n,t)?.returnTo;if(c)try{const a=U(c);if(a)return a}catch{}const d=E(n);if(d)try{const a=new URL(d);if(a.origin===n.origin)return`${a.pathname}${a.search}${a.hash}`}catch{}return Ee(r,n.pathname)}function ae(e,t){try{const r=t?t.readSinglePending():X({origin:e.origin}).readSinglePending(),n=e.searchParams.get("transaction");return n&&r?.id!==n?void 0:r}catch{return}}function Ee(e,t){return Xe(e)==="/settings/"||t==="/settings/auth-callback.html"||t.startsWith("/settings/")?"/settings/":C}function Xe(e){if(e)try{const t=new URL(e,"https://xpod.local");return t.pathname.endsWith("/")?t.pathname:`${t.pathname}/`}catch{return}}function N({title:e,message:t}){return u.jsx(V,{mode:"modal",title:e,lead:u.jsx(Z,{compact:!0}),closeOnEscape:!1,children:u.jsxs("div",{className:"flex h-full flex-col items-center justify-center px-6 text-center",children:[u.jsx("h2",{className:"text-[15px] font-semibold text-foreground",children:e}),u.jsx("p",{role:"status","aria-live":"polite",className:"mt-2 max-w-[13rem] text-xs leading-5 text-muted-foreground",children:t})]})})}async function T({href:e,runtime:t,transactionStore:r,storage:n,preserveSession:i=!1,associatedTransactionId:c}){const d=new URL(e);let a=c===void 0?d.searchParams.get("transaction"):c;try{const s=r??X({storage:n,origin:d.origin}),o=s.readSinglePending();c===void 0&&!a&&o&&(a=o.id),o&&o.id===a&&s.cancel(o.id)}catch{}try{const s=n??window.sessionStorage;a&&(s.removeItem(`${P}${a}`),s.removeItem(`${$}${a}`)),window.localStorage.removeItem(F)}catch{}try{i||await t.session.logout()}catch{}I.delete(`${d.origin}:${a??"<missing>"}`),I.delete(`${d.origin}:<silent>`),I.delete(`${d.origin}:<missing>`)}async function D(e,t){let r="oidc-state-invalid";try{if(new URL(t).searchParams.has("error")&&(r="oidc-provider-error"),!e.session.handleIncomingRedirect)return l("oidc-state-invalid");const n=await e.session.handleIncomingRedirect(t);if(r==="oidc-provider-error")return l(r);const i=B(n)?n:void 0;if(i?.status==="error"||i?.status==="expired")return l("oidc-state-invalid");const c=i?.status==="authenticated"||i?.isLoggedIn===!0?G(i.webId):void 0,d=e.session.getSnapshot();if(d.status==="error"||d.status==="expired")return l("oidc-state-invalid");const a=c??(d.status==="authenticated"?d.webId:void 0);return a?{status:"success",webId:a}:l("unauthenticated")}catch{return l(r)}}function B(e){return typeof e=="object"&&e!==null}async function _({callbackUrl:e,destination:t,recoveryPointers:r,transactionStore:n,transactionId:i,storage:c,locationReplace:d}){const a=e.searchParams.get("error");if($e(a)){je({transactionStore:n,transactionId:i,storage:c});for(const{storage:s,key:o,value:g}of r)try{s.getItem(o)===g&&s.removeItem(o)}catch{}return d?.(t),{status:"redirected",destination:t}}}function $e(e){return e==="login_required"||e==="interaction_required"||e==="consent_required"||e==="account_selection_required"}function je({transactionStore:e,transactionId:t,storage:r}){try{const n=e?.readSinglePending(),i=t;i&&n?.id===i&&e?.cancel(i),i&&n?.id===i&&((r??window.sessionStorage).removeItem(`${P}${i}`),(r??window.sessionStorage).removeItem(`${$}${i}`))}catch{}Q({storage:r})}function Ae(){const e=[];for(const t of["localStorage","sessionStorage"])try{const r=window[t];for(const n of[F,"solidClientAuthn:currentSession",ge,me]){const i=r.getItem(n);i!==null&&e.push({storage:r,key:n,value:i})}}catch{}return e}function Ne(e,t){try{const r=U(e.returnTo);return new URL(r??C,t).href}catch{return new URL(C,t).href}}function G(e){return typeof e=="string"&&e?e:void 0}function Y(e,t,r){try{const n=new URL(e.storageUrl),i=new URL(e.webId);return(n.origin===t||we(n.href,r))&&["http:","https:"].includes(n.protocol)&&["http:","https:"].includes(i.protocol)&&!n.username&&!n.password&&!n.hash&&!i.username&&!i.password}catch{return!1}}async function Te(e,t){const r=await e(new URL("/provision/status",t),{headers:{Accept:"application/json"},credentials:"include"}).catch(()=>{});if(r?.status===404)return{storageRoot:t,available:!0};if(!r?.ok)return{storageRoot:t,available:!1};const n=await r.json().catch(()=>{});return!n||typeof n.managed!="boolean"&&typeof n.publicUrl!="string"?{storageRoot:t,available:!1}:{available:!0,storageRoot:typeof n?.publicUrl=="string"&&n.publicUrl?n.publicUrl:t,managed:n?.managed===!0,provisionUrl:_e(n?.provisionUrl),routes:he(n?.routes)}}function _e(e){if(!(typeof e!="string"||!e))try{const t=new URL(e);return t.protocol==="https:"&&!t.username&&!t.password?t.href:void 0}catch{return}}async function Oe(e,t,r){let n=!1,i;const d=await pe(async(a,s)=>{const o=await e(a,s).catch(g=>{throw String(a)===t&&(n=!0,i=g),g});return String(a)===t&&!o.ok&&(n=!0),o},[t],r);if(i instanceof H)throw i;if(n)throw new Error("Unable to read WebID profile storage bindings");if(d.length===1)return d[0]}function De(e){switch(e?.code){case"consumed":return"replayed-transaction";case"expired":return"expired-transaction";case"malformed":return"malformed-transaction";default:return"missing-transaction"}}function l(e,t){return{status:"failure",code:e,message:O[e].message,...t?{actionUrl:t}:{}}}function Fe(e,t){try{return new URL(e).href===new URL(t).href}catch{return e===t}}function Be(){return le()}function We({location:e,history:t}){return{origin:e.origin,replace(r){const n=new URL(r,e.origin);if(n.origin===e.origin&&Ke(n.pathname)){t.replaceState({},"",`${n.pathname}${n.search}${n.hash}`);return}e.replace(n.href)}}}function Me(e,t){try{const r=new URL(e,t);if(r.origin!==t)return;const n=ie(r.pathname);return n?{app:n,pathname:r.pathname,target:`${r.pathname}${r.search}${r.hash}`}:void 0}catch{return}}function Ke(e){return ie(e)!==void 0}function ie(e){return ve.find(({basename:t})=>e===t||e.startsWith(`${t}/`))?.app}be();const se=xe(),ze=We({location:window.location,history:window.history});function qe(e){const t=Me(e.destination,window.location.origin);return t?(`${window.location.pathname}${window.location.search}${window.location.hash}`!==t.target&&window.history.replaceState({},"",t.target),u.jsx(Se,{runtime:se,initialPathname:t.pathname},t.target)):u.jsx("main",{role:"status","aria-live":"polite",children:"Sign-in complete. Opening Xpod…"})}Re.createRoot(document.getElementById("root")).render(u.jsx(ye,{children:u.jsx(ke,{runtime:se,location:ze,renderRedirected:qe})}));
@@ -1 +0,0 @@
1
- import{j as a,f as s,g as o,i as d}from"./global-DMtP8ZF4.js";const n=o(`inline-flex items-center rounded-lg border px-2.5 py-0.5 text-xs font-semibold transition-all duration-200 ${d}`,{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow-sm shadow-primary/20 hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow-sm shadow-destructive/20 hover:bg-destructive/90",outline:"border-border/40 text-foreground bg-muted/30 backdrop-blur-sm"}},defaultVariants:{variant:"default"}});function u({className:r,variant:e,...t}){return a.jsx("div",{className:s(n({variant:e}),r),...t})}export{u as B};
@@ -1 +0,0 @@
1
- import{h as u,k as b}from"./global-DMtP8ZF4.js";import{c as p}from"./ModelsPage-DWFic09l.js";import{s as L,d as x,o as P,n as R,c as _}from"./ai-connections-DexTPyfC.js";import{c as m,a as O,b as I}from"./XpodAiConnectionsPodStore-OndzbigX.js";import{r as K}from"./layout-DB3pMyTl.js";import"./workspace-layout-BSMCQq35.js";import"./index-CQR3iePj.js";import"./index-DURnCfoQ.js";import"./dialog-_7AVvv5q.js";import"./badge-Cpol0LWF.js";import"./index-browser-kAl2JmYB.js";async function D(o){const a=o.capabilities.podCollections;if(a)try{return a.load?{collection:await a.load(u,{table:b})}:{collection:a.define(u,{table:b})}}catch{return}}function h(o){return o.includes("#")?K(u,{id:o}):o}async function M(o,a){await o.insert(a).isPersisted.promise}async function C(o,a,l){await o.update(a,d=>{Object.assign(d,l)}).isPersisted.promise}async function U(o,a){await o.delete(a).isPersisted.promise}function g(o,a){const{provider:l}=a,d=L(l,a.offeringId??x(l,a.authMode)),c=a.baseUrl??P(l,d),f=R(a.proxyUrl);return{id:o,service:"ai",provider:l==="custom"?O(o):I(l),authMode:a.authMode,status:"active",accountLabel:a.accountLabel,label:a.accountLabel,keyVersion:"1",reauthRequired:!1,encryptionAlgorithm:"PLAINTEXT",offeringId:d,...c?{baseUrl:c}:{},...f?{proxyUrl:f}:{},metadata:_({offeringId:d,baseUrl:c})}}function N(o,a){const{collection:l}=o,d=async r=>{await U(l,r).catch(()=>{})},c=(r,t)=>{const e=l.get(r);return e?p(e,t):void 0},f=async(r,t,e,n)=>{await M(l,e);try{const s=await n(b.buildId({id:t}))??c(t,r);if(!s)throw new Error("credential_create_failed");return s}catch(i){throw await d(t),i}};return{async createApiKeyCredential(r,t){if(!a.createApiKeyCredential)throw new Error("credential_store_unavailable");const e=m(r,"apiKey"),n=t.label??r;return await f(r,e,g(e,{provider:r,authMode:"apiKey",accountLabel:n,offeringId:t.offeringId,baseUrl:t.baseUrl,proxyUrl:t.proxyUrl}),i=>a.createApiKeyCredential(r,{...t,label:n,id:i}))},async createLocalCredential(r,t){if(!a.createLocalCredential)throw new Error("credential_store_unavailable");const e=m(r,"local"),n=t.label??"Local";return await f(r,e,g(e,{provider:r,authMode:"local",accountLabel:n,offeringId:t.offeringId,baseUrl:t.baseUrl}),i=>a.createLocalCredential(r,{...t,label:n,id:i}))},async updateProviderCredential(r,t,e){const n=h(t);if(!n)throw new Error("credential_not_found");const i={...e.label===void 0?{}:{label:e.label,accountLabel:e.label},...e.enabled===void 0?{}:{status:e.enabled?"active":"disabled"}},s=l.get(n);Object.keys(i).length>0&&await C(l,n,i);const y={...e.priority===void 0?{}:{priority:e.priority},...e.baseUrl===void 0?{}:{baseUrl:e.baseUrl},...e.proxyUrl===void 0?{}:{proxyUrl:e.proxyUrl}};if(Object.keys(y).length===0)return c(n,r);if(!a.updateProviderCredential)throw new Error("credential_store_unavailable");try{return await a.updateProviderCredential(r,t,{expectedVersion:e.expectedVersion,...y})??c(n,r)}catch(w){throw s&&Object.keys(i).length>0&&await C(l,n,{...i.label===void 0?{}:{label:s.label,accountLabel:s.accountLabel},...i.status===void 0?{}:{status:s.status}}).catch(()=>{}),w}},async deleteProviderCredential(r,t){const e=h(t);if(!e)return;const n=c(e,r);return await U(l,e),n}}}export{N as collectionCredentialMutations,h as credentialRowKey,D as openCredentialCollection};
@@ -1 +0,0 @@
1
- import{j as n,r as l,P as x,u as b,o as _,p as z,q as G,s as H,f as g,i as q}from"./global-DMtP8ZF4.js";import{P as R,a as K,c as p,h as U,u as V,R as X,b as Y,F as Z,D as B,d as J,e as C}from"./index-CQR3iePj.js";var Q=Object.defineProperty,d=(s,e)=>Q(s,"name",{value:e,configurable:!0}),y="Dialog",[O,_e]=z(y),[W,f]=O(y),ee=d(s=>{const{__scopeDialog:e,children:o,open:r,defaultOpen:i,onOpenChange:a,modal:t=!0}=s,c=l.useRef(null),u=l.useRef(null),[P,v]=J({prop:r,defaultProp:i??!1,onChange:a,caller:y}),[A,S]=l.useState(0),[k,L]=l.useState(0);return n.jsx(W,{scope:e,triggerRef:c,contentRef:u,contentId:C(),titleId:C(),descriptionId:C(),titlePresent:A>0,descriptionPresent:k>0,setTitleCount:S,setDescriptionCount:L,open:P,onOpenChange:v,onOpenToggle:l.useCallback(()=>v($=>!$),[v]),modal:t,children:o})},"Dialog"),te="DialogTrigger",oe=l.forwardRef(d(function(e,o){const{__scopeDialog:r,...i}=e,a=f(te,r),t=_(o,a.triggerRef);return n.jsx(x.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":m(a.open),...i,ref:t,onClick:p(e.onClick,a.onOpenToggle)})},"DialogTrigger")),j="DialogPortal",[ae,N]=O(j,{forceMount:void 0}),ne=d(s=>{const{__scopeDialog:e,forceMount:o,children:r,container:i}=s,a=f(j,e);return n.jsx(ae,{scope:e,forceMount:o,children:l.Children.map(r,t=>n.jsx(R,{present:o||a.open,children:n.jsx(K,{asChild:!0,container:i,children:t})}))})},"DialogPortal"),h="DialogOverlay",w=l.forwardRef(d(function(e,o){const r=N(h,e.__scopeDialog),{forceMount:i=r.forceMount,...a}=e,t=f(h,e.__scopeDialog);return t.modal?n.jsx(R,{present:i||t.open,children:n.jsx(re,{...a,ref:o})}):null},"DialogOverlay")),se=G("DialogOverlay.RemoveScroll"),re=l.forwardRef(d(function(e,o){const{__scopeDialog:r,...i}=e,a=f(h,r),t=V(),c=_(o,t);return n.jsx(X,{as:se,allowPinchZoom:!0,shards:[a.contentRef],children:n.jsx(x.div,{"data-state":m(a.open),...i,ref:c,style:{pointerEvents:"auto",...i.style}})})},"DialogOverlayImpl")),D="DialogContent",E=l.forwardRef(d(function(e,o){const r=N(D,e.__scopeDialog),{forceMount:i=r.forceMount,...a}=e,t=f(D,e.__scopeDialog);return n.jsx(R,{present:i||t.open,children:t.modal?n.jsx(ie,{...a,ref:o}):n.jsx(le,{...a,ref:o})})},"DialogContent")),ie=l.forwardRef(d(function(e,o){const r=f(D,e.__scopeDialog),i=l.useRef(null),a=_(o,r.contentRef,i);return l.useEffect(()=>{const t=i.current;if(t)return U(t)},[]),n.jsx(I,{...e,ref:a,trapFocus:r.open,disableOutsidePointerEvents:r.open,onCloseAutoFocus:p(e.onCloseAutoFocus,t=>{t.preventDefault(),r.triggerRef.current?.focus()}),onPointerDownOutside:p(e.onPointerDownOutside,t=>{const c=t.detail.originalEvent,u=c.button===0&&c.ctrlKey===!0;(c.button===2||u)&&t.preventDefault()}),onFocusOutside:p(e.onFocusOutside,t=>t.preventDefault())})},"DialogContentModal")),le=l.forwardRef(d(function(e,o){const r=f(D,e.__scopeDialog),i=l.useRef(!1),a=l.useRef(!1);return n.jsx(I,{...e,ref:o,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(i.current||r.triggerRef.current?.focus(),t.preventDefault()),i.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(i.current=!0,t.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const c=t.target;r.triggerRef.current?.contains(c)&&t.preventDefault(),t.detail.originalEvent.type==="focusin"&&a.current&&t.preventDefault()}})},"DialogContentNonModal")),I=l.forwardRef(d(function(e,o){const{__scopeDialog:r,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:t,...c}=e,u=f(D,r);return Y(),n.jsx(n.Fragment,{children:n.jsx(Z,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:a,onUnmountAutoFocus:t,children:n.jsx(B,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionPresent?u.descriptionId:void 0,"aria-labelledby":u.titlePresent?u.titleId:void 0,"data-state":m(u.open),...c,ref:o,deferPointerDownOutside:!0,onDismiss:()=>u.onOpenChange(!1)})})})},"DialogContentImpl")),ce="DialogTitle",T=l.forwardRef(d(function(e,o){const{__scopeDialog:r,...i}=e,a=f(ce,r),{setTitleCount:t}=a;return b(()=>(t(c=>c+1),()=>t(c=>c-1)),[t]),n.jsx(x.h2,{id:a.titleId,...i,ref:o})},"DialogTitle")),de="DialogDescription",M=l.forwardRef(d(function(e,o){const{__scopeDialog:r,...i}=e,a=f(de,r),{setDescriptionCount:t}=a;return b(()=>(t(c=>c+1),()=>t(c=>c-1)),[t]),n.jsx(x.p,{id:a.descriptionId,...i,ref:o})},"DialogDescription")),ue="DialogClose",fe=l.forwardRef(d(function(e,o){const{__scopeDialog:r,...i}=e,a=f(ue,r);return n.jsx(x.button,{type:"button",...i,ref:o,onClick:p(e.onClick,()=>a.onOpenChange(!1))})},"DialogClose"));function m(s){return s?"open":"closed"}d(m,"getState");const Re=ee,ye=oe,ge=ne,F=l.forwardRef(({className:s,...e},o)=>n.jsx(w,{ref:o,className:g("fixed inset-0 z-50 bg-black/40","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...e}));F.displayName=w.displayName;const pe=l.forwardRef(({className:s,children:e,variant:o="center",...r},i)=>n.jsxs(ge,{children:[n.jsx(F,{}),n.jsxs(E,{ref:i,className:g(o==="sheet-left"?"fixed inset-y-0 left-0 z-50 flex h-dvh w-[min(88vw,320px)] flex-col border-r bg-background p-0 shadow-[16px_0_30px_rgba(15,23,42,0.08)] duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:slide-out-to-left-full data-[state=open]:slide-in-from-left-full rounded-none":o==="sheet-right"?"fixed inset-y-0 right-0 z-50 flex h-dvh w-full max-w-4xl flex-col border-l bg-background p-0 shadow-[-16px_0_30px_rgba(15,23,42,0.08)] duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-right-full rounded-none":"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] rounded-lg",s),...r,children:[e,n.jsxs(fe,{className:g("absolute right-4 top-4 rounded-xl opacity-70 transition-all hover:opacity-100 hover:bg-muted/50 p-1 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",q),children:[n.jsx(H,{className:"h-4 w-4"}),n.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));pe.displayName=E.displayName;const De=({className:s,...e})=>n.jsx("div",{className:g("flex flex-col space-y-1.5 text-center sm:text-left",s),...e});De.displayName="DialogHeader";const xe=({className:s,...e})=>n.jsx("div",{className:g("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...e});xe.displayName="DialogFooter";const me=l.forwardRef(({className:s,...e},o)=>n.jsx(T,{ref:o,className:g("text-lg font-semibold leading-none tracking-tight",s),...e}));me.displayName=T.displayName;const ve=l.forwardRef(({className:s,...e},o)=>n.jsx(M,{ref:o,className:g("text-sm text-muted-foreground",s),...e}));ve.displayName=M.displayName;export{Re as D,pe as a,De as b,me as c,ve as d,xe as e,ye as f};
@@ -1 +0,0 @@
1
- import{c as o}from"./global-DMtP8ZF4.js";const a=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],e=o("download",a);export{e as D};
@@ -1 +0,0 @@
1
- import{c as a}from"./global-DMtP8ZF4.js";const e=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],n=a("external-link",e);export{n as E};