@undefineds.co/xpod 0.4.18 → 0.4.19

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 (837) hide show
  1. package/config/components-ignore.json +8 -13
  2. package/dist/api/ai-gateway/pod/HostedPodRoute.d.ts +7 -0
  3. package/dist/api/ai-gateway/pod/HostedPodRoute.js +68 -1
  4. package/dist/api/chatkit/pod-store.js +14 -0
  5. package/dist/api/container/common.js +6 -3
  6. package/dist/api/container/routes.js +9 -6
  7. package/dist/api/handlers/AgentWakeHandler.d.ts +10 -0
  8. package/dist/api/handlers/AgentWakeHandler.js +62 -0
  9. package/dist/api/handlers/AiGatewayManagementHandler.js +43 -0
  10. package/dist/api/handlers/MatrixHandler.d.ts +3 -0
  11. package/dist/api/handlers/MatrixHandler.js +120 -105
  12. package/dist/api/handlers/NetworkSettingsHandler.d.ts +1 -31
  13. package/dist/api/handlers/NetworkSettingsHandler.js +3 -76
  14. package/dist/api/handlers/PodAccessFailureResponse.d.ts +1 -2
  15. package/dist/api/handlers/PodAccessFailureResponse.js +5 -4
  16. package/dist/api/handlers/ReachabilityHandler.js +0 -5
  17. package/dist/api/handlers/readBoundedRequestBody.d.ts +3 -0
  18. package/dist/api/handlers/readBoundedRequestBody.js +37 -0
  19. package/dist/api/matrix/MatrixError.d.ts +6 -0
  20. package/dist/api/matrix/MatrixError.js +14 -0
  21. package/dist/api/matrix/MatrixEventJournal.d.ts +39 -0
  22. package/dist/api/matrix/MatrixEventJournal.js +169 -0
  23. package/dist/api/matrix/MatrixPodResolver.d.ts +12 -0
  24. package/dist/api/matrix/MatrixPodResolver.js +61 -0
  25. package/dist/api/matrix/PodMatrixStore.d.ts +58 -12
  26. package/dist/api/matrix/PodMatrixStore.js +527 -204
  27. package/dist/api/matrix/types.d.ts +15 -0
  28. package/dist/api/reconciler/AgentWakeRuntimeService.d.ts +66 -0
  29. package/dist/api/reconciler/AgentWakeRuntimeService.js +79 -0
  30. package/dist/api/reconciler/AgentWakeRuntimeService.jsonld +173 -0
  31. package/dist/api/reconciler/ServerGroupReconcilerService.d.ts +3 -0
  32. package/dist/api/reconciler/ServerGroupReconcilerService.js +12 -4
  33. package/dist/api/reconciler/ServerGroupReconcilerService.jsonld +8 -0
  34. package/dist/api/reconciler/WakeAgentQueue.d.ts +32 -2
  35. package/dist/api/reconciler/WakeAgentQueue.js +183 -66
  36. package/dist/api/reconciler/WakeAgentQueue.jsonld +152 -6
  37. package/dist/api/reconciler/coordination.d.ts +5 -0
  38. package/dist/api/reconciler/coordination.js +1 -1
  39. package/dist/api/reconciler/coordination.jsonld +20 -0
  40. package/dist/api/reconciler/index.d.ts +1 -0
  41. package/dist/api/reconciler/index.js +1 -0
  42. package/dist/api/runs/store.d.ts +4 -0
  43. package/dist/api/runtime.js +21 -44
  44. package/dist/cli/commands/start.d.ts +18 -11
  45. package/dist/cli/commands/start.js +49 -44
  46. package/dist/cli/commands/stop.js +1 -7
  47. package/dist/components/components.jsonld +1 -1
  48. package/dist/components/context.jsonld +52 -61
  49. package/dist/dns/cloudflare/CloudflareDnsProvider.d.ts +1 -10
  50. package/dist/dns/cloudflare/CloudflareDnsProvider.js +28 -59
  51. package/dist/edge/EdgeNodeAgent.d.ts +0 -5
  52. package/dist/edge/EdgeNodeAgent.js +0 -8
  53. package/dist/edge/acme/AcmeCertificateManager.d.ts +0 -24
  54. package/dist/edge/acme/AcmeCertificateManager.js +7 -75
  55. package/dist/edge/acme/AcmeCertificateManager.jsonld +0 -24
  56. package/dist/edge/frp/FrpcProcessManager.d.ts +0 -16
  57. package/dist/edge/frp/FrpcProcessManager.js +13 -73
  58. package/dist/edge/reachability/ManagedClientFetch.d.ts +0 -2
  59. package/dist/edge/reachability/ManagedClientFetch.js +12 -24
  60. package/dist/edge/reachability/ManagedClientFetch.jsonld +0 -4
  61. package/dist/edge/reachability/ManagedRouteSelector.d.ts +0 -2
  62. package/dist/edge/reachability/ManagedRouteSelector.js +13 -7
  63. package/dist/edge/reachability/ManagedRouteSelector.jsonld +0 -4
  64. package/dist/edge/reachability/P2PDataPlane.d.ts +4 -67
  65. package/dist/edge/reachability/P2PDataPlane.js +15 -156
  66. package/dist/edge/reachability/P2PDataPlane.jsonld +0 -64
  67. package/dist/edge/reachability/P2PSignalingClient.d.ts +0 -2
  68. package/dist/edge/reachability/P2PSignalingClient.js +0 -1
  69. package/dist/edge/reachability/P2PSignalingClient.jsonld +0 -4
  70. package/dist/edge/reachability/ReachabilitySessionService.d.ts +0 -19
  71. package/dist/edge/reachability/ReachabilitySessionService.js +52 -122
  72. package/dist/edge/reachability/ReachabilitySessionService.jsonld +0 -26
  73. package/dist/edge/reachability/TcpP2PDataPlaneTransport.d.ts +4 -28
  74. package/dist/edge/reachability/TcpP2PDataPlaneTransport.js +32 -540
  75. package/dist/edge/reachability/TcpP2PDataPlaneTransport.jsonld +0 -51
  76. package/dist/edge/reachability/TcpP2PSignalingSession.d.ts +0 -7
  77. package/dist/edge/reachability/TcpP2PSignalingSession.js +1 -25
  78. package/dist/edge/reachability/TcpP2PSignalingSession.jsonld +0 -12
  79. package/dist/edge/reachability/index.d.ts +0 -1
  80. package/dist/edge/reachability/index.js +0 -1
  81. package/dist/edge/reachability/types.d.ts +0 -8
  82. package/dist/edge/reachability/types.jsonld +0 -8
  83. package/dist/identity/drizzle/EdgeNodeRepository.d.ts +0 -12
  84. package/dist/identity/drizzle/EdgeNodeRepository.js +0 -37
  85. package/dist/identity/drizzle/PodLookupRepository.js +5 -4
  86. package/dist/identity/drizzle/db.d.ts +0 -8
  87. package/dist/identity/drizzle/db.js +0 -17
  88. package/dist/runtime/GatewayAdminProxyAuth.d.ts +2 -2
  89. package/dist/runtime/Proxy.js +2 -5
  90. package/dist/runtime/css-process.d.ts +3 -3
  91. package/dist/runtime/index.d.ts +1 -7
  92. package/dist/runtime/index.js +1 -21
  93. package/dist/runtime/port-finder.d.ts +3 -27
  94. package/dist/runtime/port-finder.js +22 -52
  95. package/dist/runtime/safe-env.d.ts +1 -1
  96. package/dist/runtime/user-env.d.ts +2 -2
  97. package/dist/supervisor/Supervisor.d.ts +3 -26
  98. package/dist/supervisor/Supervisor.js +23 -130
  99. package/dist/supervisor/types.d.ts +1 -14
  100. package/dist/test-utils/local-managed-client-p2p-e2e-smoke.js +0 -15
  101. package/dist/tunnel/LocalTunnelProvider.d.ts +0 -7
  102. package/dist/tunnel/LocalTunnelProvider.js +3 -11
  103. package/dist/tunnel/LocalTunnelProvider.jsonld +0 -39
  104. package/dist/tunnel/NgrokTunnelProvider.d.ts +0 -2
  105. package/dist/tunnel/NgrokTunnelProvider.js +1 -3
  106. package/dist/tunnel/NgrokTunnelProvider.jsonld +0 -39
  107. package/dist/tunnel/SakuraFrpTunnelProvider.d.ts +1 -3
  108. package/dist/tunnel/SakuraFrpTunnelProvider.js +3 -7
  109. package/dist/tunnel/TunnelLifecycle.d.ts +1 -9
  110. package/dist/tunnel/TunnelLifecycle.js +3 -24
  111. package/dist/tunnel/TunnelProviderCatalog.d.ts +0 -32
  112. package/dist/tunnel/TunnelProviderCatalog.js +0 -43
  113. package/node_modules/@solid/access-token-verifier/node_modules/n3/browser/n3.min.js +1 -0
  114. package/node_modules/@solid/community-server/node_modules/n3/browser/n3.min.js +1 -0
  115. package/node_modules/@undefineds.co/ai-connections/dist/AiClientConfigurationSection.js +10 -39
  116. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsList.js +4 -15
  117. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsPanel.d.ts +1 -1
  118. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsPanel.js +1 -4
  119. package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeyRow.d.ts +1 -5
  120. package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeyRow.js +2 -2
  121. package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeysSection.js +1 -5
  122. package/node_modules/@undefineds.co/ai-connections/dist/controller.d.ts +0 -4
  123. package/node_modules/@undefineds.co/ai-connections/dist/controller.js +1 -3
  124. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/aggregates.d.ts +19 -0
  125. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/ast-to-sparql.d.ts +66 -0
  126. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/compile-time-types.d.ts +40 -0
  127. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/comunica-patch.d.ts +2 -0
  128. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/conflict-resolution.d.ts +110 -0
  129. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/composite-discovery.d.ts +18 -0
  130. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/index.d.ts +7 -0
  131. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-discovery.d.ts +36 -0
  132. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-tables.d.ts +37 -0
  133. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-types.d.ts +36 -0
  134. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/provider-cache.d.ts +99 -0
  135. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/typeindex-discovery.d.ts +32 -0
  136. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/types.d.ts +132 -0
  137. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/exact-records.d.ts +21 -0
  138. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/index.d.ts +14 -0
  139. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts +76 -0
  140. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.d.ts +53 -0
  141. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor-types.d.ts +9 -0
  142. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.d.ts +73 -0
  143. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts +31 -0
  144. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/strategy-factory.d.ts +42 -0
  145. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/types.d.ts +85 -0
  146. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/expressions.d.ts +40 -0
  147. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/executor.d.ts +98 -0
  148. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/index.d.ts +3 -0
  149. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/types.d.ts +69 -0
  150. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/base-channel.d.ts +29 -0
  151. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/index.d.ts +4 -0
  152. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/sse-channel.d.ts +50 -0
  153. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/websocket-channel.d.ts +16 -0
  154. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/index.d.ts +3 -0
  155. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts +88 -0
  156. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/types.d.ts +228 -0
  157. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/order-by.d.ts +9 -0
  158. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.d.ts +548 -0
  159. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.d.ts +324 -0
  160. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-discovery.d.ts +20 -0
  161. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.d.ts +52 -0
  162. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/profile-manager.d.ts +90 -0
  163. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/default-id-template.d.ts +10 -0
  164. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/delete-query-builder.d.ts +31 -0
  165. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/helpers.d.ts +11 -0
  166. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/index.d.ts +7 -0
  167. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.d.ts +37 -0
  168. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts +150 -0
  169. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/types.d.ts +40 -0
  170. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/update-query-builder.d.ts +34 -0
  171. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-conditions.d.ts +60 -0
  172. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts +8 -0
  173. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-constants.d.ts +16 -0
  174. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-schema-parser.d.ts +34 -0
  175. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/repository.d.ts +78 -0
  176. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.d.ts +31 -0
  177. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.d.ts +141 -0
  178. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.d.ts +36 -0
  179. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/factory.d.ts +27 -0
  180. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.d.ts +34 -0
  181. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/index.d.ts +11 -0
  182. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/types.d.ts +57 -0
  183. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.d.ts +60 -0
  184. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/columns.d.ts +74 -0
  185. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/defs.d.ts +101 -0
  186. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.d.ts +29 -0
  187. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/index.d.ts +9 -0
  188. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.d.ts +118 -0
  189. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/relations.d.ts +26 -0
  190. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.d.ts +22 -0
  191. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/types.d.ts +45 -0
  192. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/utils.d.ts +15 -0
  193. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/select-plan.d.ts +50 -0
  194. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/services/pod-services.d.ts +43 -0
  195. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/generator.d.ts +12 -0
  196. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/index.d.ts +4 -0
  197. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/manager.d.ts +45 -0
  198. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl-parser.d.ts +19 -0
  199. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl.d.ts +11 -0
  200. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/types.d.ts +149 -0
  201. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/validator.d.ts +11 -0
  202. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/solid-n3-client.d.ts +86 -0
  203. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.d.ts +56 -0
  204. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/select-builder.d.ts +44 -0
  205. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/update-builder.d.ts +33 -0
  206. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/helpers.d.ts +19 -0
  207. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/types.d.ts +10 -0
  208. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-engine.d.ts +16 -0
  209. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts +40 -0
  210. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/index.d.ts +29 -0
  211. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.d.ts +116 -0
  212. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/types.d.ts +97 -0
  213. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/builder.d.ts +86 -0
  214. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/array.d.ts +23 -0
  215. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/default.d.ts +20 -0
  216. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/index.d.ts +35 -0
  217. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.d.ts +35 -0
  218. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inverse.d.ts +26 -0
  219. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/uri.d.ts +28 -0
  220. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/index.d.ts +9 -0
  221. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/types.d.ts +156 -0
  222. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/typeindex-manager.d.ts +130 -0
  223. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/types.d.ts +57 -0
  224. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/index.d.ts +8 -0
  225. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.d.ts +153 -0
  226. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/types.d.ts +154 -0
  227. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/debug-logger.d.ts +19 -0
  228. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/origin-auth.d.ts +28 -0
  229. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/pod-root.d.ts +15 -0
  230. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/zod-integration.d.ts +97 -0
  231. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.d.ts +60 -0
  232. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/index.d.ts +31 -0
  233. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.d.ts +140 -0
  234. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/solid.d.ts +21 -0
  235. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/test-utils/real-test-helpers.d.ts +5 -0
  236. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/types/sparql-types.d.ts +27 -0
  237. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/find-by-iri.d.ts +11 -0
  238. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/helpers.d.ts +17 -0
  239. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/namespace.d.ts +4 -0
  240. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-helpers.d.ts +17 -0
  241. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-validation.d.ts +27 -0
  242. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/thing-operations.d.ts +28 -0
  243. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/webid-resolver.d.ts +23 -0
  244. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/index.ts +4 -0
  245. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/locales/index.ts +1 -0
  246. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/mini/index.ts +3 -0
  247. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/ZodError.ts +330 -0
  248. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
  249. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
  250. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
  251. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
  252. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
  253. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
  254. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
  255. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
  256. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
  257. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/errors.ts +13 -0
  258. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/external.ts +6 -0
  259. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
  260. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
  261. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
  262. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
  263. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
  264. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/util.ts +224 -0
  265. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/index.ts +4 -0
  266. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/locales/en.ts +124 -0
  267. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/standard-schema.ts +113 -0
  268. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
  269. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
  270. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
  271. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/array.test.ts +71 -0
  272. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
  273. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
  274. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/base.test.ts +29 -0
  275. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
  276. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
  277. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
  278. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
  279. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
  280. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
  281. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/date.test.ts +32 -0
  282. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
  283. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/default.test.ts +112 -0
  284. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/description.test.ts +33 -0
  285. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
  286. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
  287. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/error.test.ts +551 -0
  288. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
  289. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
  290. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/function.test.ts +261 -0
  291. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
  292. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
  293. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
  294. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
  295. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
  296. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
  297. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/map.test.ts +110 -0
  298. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
  299. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
  300. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
  301. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
  302. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
  303. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/number.test.ts +176 -0
  304. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
  305. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
  306. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/object.test.ts +434 -0
  307. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
  308. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
  309. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
  310. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
  311. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
  312. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
  313. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
  314. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
  315. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
  316. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
  317. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/record.test.ts +171 -0
  318. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
  319. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
  320. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
  321. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/set.test.ts +142 -0
  322. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
  323. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/string.test.ts +916 -0
  324. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
  325. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
  326. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
  327. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
  328. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/void.test.ts +15 -0
  329. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/types.ts +5138 -0
  330. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/checks.ts +32 -0
  331. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/coerce.ts +27 -0
  332. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/compat.ts +70 -0
  333. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/errors.ts +82 -0
  334. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/external.ts +52 -0
  335. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/from-json-schema.ts +659 -0
  336. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/index.ts +5 -0
  337. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/iso.ts +90 -0
  338. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/parse.ts +82 -0
  339. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/schemas.ts +2672 -0
  340. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
  341. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
  342. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
  343. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/assignability.test.ts +216 -0
  344. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
  345. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
  346. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
  347. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
  348. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
  349. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/catch.test.ts +326 -0
  350. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
  351. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
  352. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/codec.test.ts +703 -0
  353. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
  354. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
  355. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
  356. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
  357. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
  358. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/default.test.ts +409 -0
  359. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
  360. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
  361. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +197 -0
  362. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +694 -0
  363. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
  364. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +807 -0
  365. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
  366. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
  367. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
  368. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
  369. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +895 -0
  370. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
  371. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
  372. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/global-config.test.ts +39 -0
  373. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
  374. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
  375. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
  376. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
  377. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +46 -0
  378. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
  379. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
  380. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
  381. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
  382. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
  383. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
  384. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
  385. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
  386. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
  387. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
  388. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/number.test.ts +325 -0
  389. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/object.test.ts +717 -0
  390. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/optional.test.ts +333 -0
  391. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/partial.test.ts +450 -0
  392. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
  393. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
  394. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
  395. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +26 -0
  396. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +351 -0
  397. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
  398. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
  399. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
  400. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
  401. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/record.test.ts +717 -0
  402. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +631 -0
  403. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/refine.test.ts +633 -0
  404. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
  405. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
  406. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
  407. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
  408. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/string.test.ts +1224 -0
  409. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
  410. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
  411. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
  412. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +3125 -0
  413. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/transform.test.ts +378 -0
  414. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/tuple.test.ts +496 -0
  415. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/union.test.ts +273 -0
  416. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
  417. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
  418. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
  419. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/api.ts +1823 -0
  420. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/checks.ts +1293 -0
  421. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/config.ts +15 -0
  422. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/core.ts +153 -0
  423. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/doc.ts +44 -0
  424. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/errors.ts +455 -0
  425. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/index.ts +16 -0
  426. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
  427. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/json-schema-processors.ts +666 -0
  428. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/json-schema.ts +147 -0
  429. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/parse.ts +195 -0
  430. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/regexes.ts +190 -0
  431. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/registries.ts +105 -0
  432. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/schemas.ts +4730 -0
  433. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
  434. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
  435. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
  436. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
  437. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/el.test.ts +215 -0
  438. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
  439. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
  440. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
  441. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
  442. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
  443. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
  444. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
  445. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
  446. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +105 -0
  447. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +125 -0
  448. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
  449. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/to-json-schema.ts +622 -0
  450. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/util.ts +983 -0
  451. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/versions.ts +5 -0
  452. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/zsf.ts +323 -0
  453. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/index.ts +4 -0
  454. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ar.ts +115 -0
  455. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/az.ts +111 -0
  456. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/be.ts +176 -0
  457. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/bg.ts +128 -0
  458. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ca.ts +116 -0
  459. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/cs.ts +118 -0
  460. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/da.ts +123 -0
  461. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/de.ts +116 -0
  462. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/el.ts +121 -0
  463. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/en.ts +123 -0
  464. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/eo.ts +118 -0
  465. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/es.ts +141 -0
  466. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/fa.ts +126 -0
  467. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/fi.ts +121 -0
  468. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
  469. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/fr.ts +132 -0
  470. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/he.ts +246 -0
  471. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/hr.ts +131 -0
  472. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/hu.ts +117 -0
  473. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/hy.ts +164 -0
  474. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/id.ts +115 -0
  475. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/index.ts +52 -0
  476. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/is.ts +119 -0
  477. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/it.ts +116 -0
  478. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ja.ts +114 -0
  479. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ka.ts +123 -0
  480. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/kh.ts +7 -0
  481. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/km.ts +119 -0
  482. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ko.ts +121 -0
  483. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/lt.ts +239 -0
  484. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/mk.ts +118 -0
  485. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ms.ts +115 -0
  486. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/nl.ts +121 -0
  487. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/no.ts +116 -0
  488. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ota.ts +117 -0
  489. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/pl.ts +118 -0
  490. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ps.ts +126 -0
  491. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/pt.ts +116 -0
  492. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ro.ts +129 -0
  493. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ru.ts +176 -0
  494. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/sl.ts +118 -0
  495. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/sv.ts +119 -0
  496. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ta.ts +118 -0
  497. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/th.ts +119 -0
  498. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/tr.ts +111 -0
  499. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ua.ts +7 -0
  500. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/uk.ts +117 -0
  501. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ur.ts +119 -0
  502. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/uz.ts +117 -0
  503. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/vi.ts +117 -0
  504. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/yo.ts +124 -0
  505. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
  506. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
  507. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/checks.ts +32 -0
  508. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/coerce.ts +27 -0
  509. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/external.ts +41 -0
  510. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/index.ts +3 -0
  511. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/iso.ts +66 -0
  512. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/parse.ts +14 -0
  513. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/schemas.ts +1947 -0
  514. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
  515. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
  516. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
  517. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
  518. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/codec.test.ts +548 -0
  519. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
  520. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
  521. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
  522. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/index.test.ts +993 -0
  523. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
  524. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
  525. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
  526. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +325 -0
  527. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
  528. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/string.test.ts +352 -0
  529. package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4-mini/index.ts +3 -0
  530. package/node_modules/@undefineds.co/extension-sdk/dist/layout.d.ts +0 -39
  531. package/node_modules/@undefineds.co/extension-sdk/dist/layout.js +0 -40
  532. package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.d.ts +1 -13
  533. package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.js +3 -11
  534. package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.d.ts +4 -13
  535. package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.js +11 -68
  536. package/node_modules/@undefineds.co/models/node_modules/n3/browser/n3.min.js +1 -0
  537. package/node_modules/@undefineds.co/shared-ui/dist/auth-surface.js +6 -6
  538. package/node_modules/@undefineds.co/shared-ui/dist/dialog.js +4 -4
  539. package/node_modules/@undefineds.co/shared-ui/dist/login.js +1 -1
  540. package/node_modules/@undefineds.co/shared-ui/dist/theme.css +79 -128
  541. package/node_modules/@undefineds.co/shared-ui/dist/toast.js +1 -1
  542. package/node_modules/@undefineds.co/shared-ui/dist/tooltip.js +1 -1
  543. package/node_modules/jose/dist/browser/index.js +30 -0
  544. package/node_modules/jose/dist/browser/jwe/compact/decrypt.js +27 -0
  545. package/node_modules/jose/dist/browser/jwe/compact/encrypt.js +26 -0
  546. package/node_modules/jose/dist/browser/jwe/flattened/decrypt.js +161 -0
  547. package/node_modules/jose/dist/browser/jwe/flattened/encrypt.js +153 -0
  548. package/node_modules/jose/dist/browser/jwe/general/decrypt.js +31 -0
  549. package/node_modules/jose/dist/browser/jwe/general/encrypt.js +174 -0
  550. package/node_modules/jose/dist/browser/jwk/embedded.js +17 -0
  551. package/node_modules/jose/dist/browser/jwk/thumbprint.js +53 -0
  552. package/node_modules/jose/dist/browser/jwks/local.js +124 -0
  553. package/node_modules/jose/dist/browser/jwks/remote.js +139 -0
  554. package/node_modules/jose/dist/browser/jws/compact/sign.js +17 -0
  555. package/node_modules/jose/dist/browser/jws/compact/verify.js +21 -0
  556. package/node_modules/jose/dist/browser/jws/flattened/sign.js +81 -0
  557. package/node_modules/jose/dist/browser/jws/flattened/verify.js +122 -0
  558. package/node_modules/jose/dist/browser/jws/general/sign.js +67 -0
  559. package/node_modules/jose/dist/browser/jws/general/verify.js +24 -0
  560. package/node_modules/jose/dist/browser/jwt/decrypt.js +23 -0
  561. package/node_modules/jose/dist/browser/jwt/encrypt.js +68 -0
  562. package/node_modules/jose/dist/browser/jwt/produce.js +75 -0
  563. package/node_modules/jose/dist/browser/jwt/sign.js +20 -0
  564. package/node_modules/jose/dist/browser/jwt/unsecured.js +32 -0
  565. package/node_modules/jose/dist/browser/jwt/verify.js +15 -0
  566. package/node_modules/jose/dist/browser/key/export.js +12 -0
  567. package/node_modules/jose/dist/browser/key/generate_key_pair.js +4 -0
  568. package/node_modules/jose/dist/browser/key/generate_secret.js +4 -0
  569. package/node_modules/jose/dist/browser/key/import.js +45 -0
  570. package/node_modules/jose/dist/browser/lib/aesgcmkw.js +16 -0
  571. package/node_modules/jose/dist/browser/lib/buffer_utils.js +51 -0
  572. package/node_modules/jose/dist/browser/lib/cek.js +20 -0
  573. package/node_modules/jose/dist/browser/lib/check_iv_length.js +8 -0
  574. package/node_modules/jose/dist/browser/lib/check_key_type.js +77 -0
  575. package/node_modules/jose/dist/browser/lib/check_p2s.js +6 -0
  576. package/node_modules/jose/dist/browser/lib/crypto_key.js +157 -0
  577. package/node_modules/jose/dist/browser/lib/decrypt_key_management.js +129 -0
  578. package/node_modules/jose/dist/browser/lib/encrypt_key_management.js +89 -0
  579. package/node_modules/jose/dist/browser/lib/epoch.js +1 -0
  580. package/node_modules/jose/dist/browser/lib/format_pem.js +4 -0
  581. package/node_modules/jose/dist/browser/lib/invalid_key_input.js +31 -0
  582. package/node_modules/jose/dist/browser/lib/is_disjoint.js +22 -0
  583. package/node_modules/jose/dist/browser/lib/is_jwk.js +13 -0
  584. package/node_modules/jose/dist/browser/lib/is_object.js +16 -0
  585. package/node_modules/jose/dist/browser/lib/iv.js +20 -0
  586. package/node_modules/jose/dist/browser/lib/jwt_claims_set.js +104 -0
  587. package/node_modules/jose/dist/browser/lib/private_symbols.js +1 -0
  588. package/node_modules/jose/dist/browser/lib/secs.js +55 -0
  589. package/node_modules/jose/dist/browser/lib/validate_algorithms.js +11 -0
  590. package/node_modules/jose/dist/browser/lib/validate_crit.js +34 -0
  591. package/node_modules/jose/dist/browser/package.json +1 -0
  592. package/node_modules/jose/dist/browser/runtime/aeskw.js +32 -0
  593. package/node_modules/jose/dist/browser/runtime/asn1.js +205 -0
  594. package/node_modules/jose/dist/browser/runtime/base64url.js +37 -0
  595. package/node_modules/jose/dist/browser/runtime/bogus.js +6 -0
  596. package/node_modules/jose/dist/browser/runtime/check_cek_length.js +8 -0
  597. package/node_modules/jose/dist/browser/runtime/check_key_length.js +8 -0
  598. package/node_modules/jose/dist/browser/runtime/decrypt.js +91 -0
  599. package/node_modules/jose/dist/browser/runtime/digest.js +6 -0
  600. package/node_modules/jose/dist/browser/runtime/ecdhes.js +47 -0
  601. package/node_modules/jose/dist/browser/runtime/encrypt.js +76 -0
  602. package/node_modules/jose/dist/browser/runtime/fetch_jwks.js +34 -0
  603. package/node_modules/jose/dist/browser/runtime/generate.js +143 -0
  604. package/node_modules/jose/dist/browser/runtime/get_sign_verify_key.js +24 -0
  605. package/node_modules/jose/dist/browser/runtime/is_key_like.js +8 -0
  606. package/node_modules/jose/dist/browser/runtime/jwk_to_key.js +104 -0
  607. package/node_modules/jose/dist/browser/runtime/key_to_jwk.js +21 -0
  608. package/node_modules/jose/dist/browser/runtime/normalize_key.js +68 -0
  609. package/node_modules/jose/dist/browser/runtime/pbes2kw.js +51 -0
  610. package/node_modules/jose/dist/browser/runtime/random.js +2 -0
  611. package/node_modules/jose/dist/browser/runtime/rsaes.js +37 -0
  612. package/node_modules/jose/dist/browser/runtime/runtime.js +1 -0
  613. package/node_modules/jose/dist/browser/runtime/sign.js +11 -0
  614. package/node_modules/jose/dist/browser/runtime/subtle_dsa.js +28 -0
  615. package/node_modules/jose/dist/browser/runtime/subtle_rsaes.js +12 -0
  616. package/node_modules/jose/dist/browser/runtime/timing_safe_equal.js +19 -0
  617. package/node_modules/jose/dist/browser/runtime/verify.js +16 -0
  618. package/node_modules/jose/dist/browser/runtime/webcrypto.js +2 -0
  619. package/node_modules/jose/dist/browser/util/base64url.js +3 -0
  620. package/node_modules/jose/dist/browser/util/decode_jwt.js +32 -0
  621. package/node_modules/jose/dist/browser/util/decode_protected_header.js +34 -0
  622. package/node_modules/jose/dist/browser/util/errors.js +114 -0
  623. package/node_modules/jose/dist/browser/util/runtime.js +2 -0
  624. package/node_modules/openid-client/node_modules/jose/dist/browser/index.js +32 -0
  625. package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/compact/decrypt.js +27 -0
  626. package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/compact/encrypt.js +26 -0
  627. package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/flattened/decrypt.js +166 -0
  628. package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/flattened/encrypt.js +175 -0
  629. package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/general/decrypt.js +31 -0
  630. package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/general/encrypt.js +178 -0
  631. package/node_modules/openid-client/node_modules/jose/dist/browser/jwk/embedded.js +17 -0
  632. package/node_modules/openid-client/node_modules/jose/dist/browser/jwk/thumbprint.js +53 -0
  633. package/node_modules/openid-client/node_modules/jose/dist/browser/jwks/local.js +116 -0
  634. package/node_modules/openid-client/node_modules/jose/dist/browser/jwks/remote.js +76 -0
  635. package/node_modules/openid-client/node_modules/jose/dist/browser/jws/compact/sign.js +17 -0
  636. package/node_modules/openid-client/node_modules/jose/dist/browser/jws/compact/verify.js +21 -0
  637. package/node_modules/openid-client/node_modules/jose/dist/browser/jws/flattened/sign.js +81 -0
  638. package/node_modules/openid-client/node_modules/jose/dist/browser/jws/flattened/verify.js +115 -0
  639. package/node_modules/openid-client/node_modules/jose/dist/browser/jws/general/sign.js +67 -0
  640. package/node_modules/openid-client/node_modules/jose/dist/browser/jws/general/verify.js +24 -0
  641. package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/decrypt.js +23 -0
  642. package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/encrypt.js +68 -0
  643. package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/produce.js +54 -0
  644. package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/sign.js +21 -0
  645. package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/unsecured.js +32 -0
  646. package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/verify.js +16 -0
  647. package/node_modules/openid-client/node_modules/jose/dist/browser/key/export.js +12 -0
  648. package/node_modules/openid-client/node_modules/jose/dist/browser/key/generate_key_pair.js +4 -0
  649. package/node_modules/openid-client/node_modules/jose/dist/browser/key/generate_secret.js +4 -0
  650. package/node_modules/openid-client/node_modules/jose/dist/browser/key/import.js +50 -0
  651. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/aesgcmkw.js +14 -0
  652. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/buffer_utils.js +51 -0
  653. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/cek.js +20 -0
  654. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/check_iv_length.js +8 -0
  655. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/check_key_type.js +45 -0
  656. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/check_p2s.js +6 -0
  657. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/crypto_key.js +152 -0
  658. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/decrypt_key_management.js +127 -0
  659. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/encrypt_key_management.js +87 -0
  660. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/epoch.js +1 -0
  661. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/format_pem.js +4 -0
  662. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/invalid_key_input.js +30 -0
  663. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/is_disjoint.js +22 -0
  664. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/is_object.js +16 -0
  665. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/iv.js +20 -0
  666. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/jwt_claims_set.js +102 -0
  667. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/secs.js +44 -0
  668. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/validate_algorithms.js +11 -0
  669. package/node_modules/openid-client/node_modules/jose/dist/browser/lib/validate_crit.js +34 -0
  670. package/node_modules/openid-client/node_modules/jose/dist/browser/package.json +1 -0
  671. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/aeskw.js +32 -0
  672. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/asn1.js +202 -0
  673. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/base64url.js +37 -0
  674. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/bogus.js +6 -0
  675. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/check_cek_length.js +8 -0
  676. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/check_key_length.js +8 -0
  677. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/decrypt.js +85 -0
  678. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/digest.js +6 -0
  679. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/ecdhes.js +46 -0
  680. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/encrypt.js +68 -0
  681. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/fetch_jwks.js +34 -0
  682. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/generate.js +141 -0
  683. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/get_sign_verify_key.js +17 -0
  684. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/is_key_like.js +5 -0
  685. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/jwk_to_key.js +143 -0
  686. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/key_to_jwk.js +21 -0
  687. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/pbes2kw.js +51 -0
  688. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/random.js +2 -0
  689. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/rsaes.js +37 -0
  690. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/runtime.js +1 -0
  691. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/sign.js +11 -0
  692. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/subtle_dsa.js +26 -0
  693. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/subtle_rsaes.js +12 -0
  694. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/timing_safe_equal.js +19 -0
  695. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/verify.js +16 -0
  696. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/webcrypto.js +2 -0
  697. package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/zlib.js +7 -0
  698. package/node_modules/openid-client/node_modules/jose/dist/browser/util/base64url.js +3 -0
  699. package/node_modules/openid-client/node_modules/jose/dist/browser/util/decode_jwt.js +32 -0
  700. package/node_modules/openid-client/node_modules/jose/dist/browser/util/decode_protected_header.js +34 -0
  701. package/node_modules/openid-client/node_modules/jose/dist/browser/util/errors.js +158 -0
  702. package/node_modules/openid-client/node_modules/jose/dist/browser/util/runtime.js +2 -0
  703. package/package.json +2 -3
  704. package/static/app/assets/{index-BeAi28iA.js → index-BCZVzMpj.js} +1 -1
  705. package/static/app/assets/inrupt-smoke.js +36 -37
  706. package/static/app/assets/main.css +1 -0
  707. package/static/app/assets/main.js +13 -12
  708. package/static/app/index.html +2 -2
  709. package/static/app/inrupt-smoke.html +1 -2
  710. package/static/dashboard/assets/{AiConfigContext-DelSqO6L.js → AiConfigContext-B5QP7ow2.js} +1 -1
  711. package/static/dashboard/assets/{AiConfigPage-dbg0aDvd.js → AiConfigPage-C_TdlUjq.js} +1 -1
  712. package/static/dashboard/assets/DocumentProcessingPanel-CormNOdI.js +1 -0
  713. package/static/dashboard/assets/IndexLifecyclePanel-S9wNNyHO.js +1 -0
  714. package/static/dashboard/assets/{IndexSubjectPanel-ClDgj0SY.js → IndexSubjectPanel-CofZT1oE.js} +1 -1
  715. package/static/dashboard/assets/ModelAssignmentsPanel-9tgOjj-y.js +1 -0
  716. package/static/dashboard/assets/ModelsPage-DZ46VnUh.js +11 -0
  717. package/static/dashboard/assets/NetworkPage-TwbIWASf.js +2 -0
  718. package/static/dashboard/assets/{PaneListHeader-xEjcBu9g.js → PaneListHeader-BtVnyutC.js} +1 -1
  719. package/static/dashboard/assets/SearchIndexingPanel-BCq_YMOP.js +1 -0
  720. package/static/dashboard/assets/{StatusSubjectPanel-6s3JXbOd.js → StatusSubjectPanel-DsUKTysU.js} +1 -1
  721. package/static/dashboard/assets/StatusWorkspace-CaVJBRqI.js +1 -0
  722. package/static/dashboard/assets/{SystemSettingsPage-CF_vH-qe.js → SystemSettingsPage-DRWfPjtu.js} +1 -1
  723. package/static/dashboard/assets/SystemSettingsSubjectPanel-CgDP7Ii2.js +33 -0
  724. package/static/dashboard/assets/{XpodAiConnectionsPodStore-CHM-ZwI3.js → XpodAiConnectionsPodStore-C9tHqutw.js} +1 -1
  725. package/static/dashboard/assets/{activity-B7UdTZ1N.js → activity-tgjewO88.js} +1 -1
  726. package/static/dashboard/assets/{badge-B6RuxNt1.js → badge-Czun47II.js} +1 -1
  727. package/static/dashboard/assets/collection-runtime-DnYlU23-.js +1 -0
  728. package/static/dashboard/assets/{dashboard-Dm_h60lA.js → dashboard-CF8SbVSR.js} +92 -132
  729. package/static/dashboard/assets/dashboard-DvuM3VTP.css +1 -0
  730. package/static/dashboard/assets/dialog-D-Yc_lg-.js +1 -0
  731. package/static/dashboard/assets/{download-BW035kpj.js → download-vFuOkjCi.js} +1 -1
  732. package/static/dashboard/assets/{external-link-BMrNvf3c.js → external-link-Cg_VIecD.js} +1 -1
  733. package/static/dashboard/assets/{index-2jlFzexm.js → index-0au0WwkE.js} +1 -1
  734. package/static/dashboard/assets/index-IXCNeEwi.js +41 -0
  735. package/static/dashboard/assets/index-YDcVky3o.js +4 -0
  736. package/static/dashboard/assets/{key-round-C9vxhn7T.js → key-round-9n1xgLbG.js} +1 -1
  737. package/static/dashboard/assets/{rotate-ccw-8Vm0-INc.js → rotate-ccw-DJ6s86DW.js} +1 -1
  738. package/static/dashboard/assets/{skeleton-CY_602wn.js → skeleton-Dg9HePtI.js} +1 -1
  739. package/static/dashboard/assets/{waypoints-DdEdgkxD.js → waypoints-uxc_qOzk.js} +1 -1
  740. package/static/dashboard/assets/workspace-layout-BNtAXhPW.js +1 -0
  741. package/static/dashboard/dashboard.html +2 -2
  742. package/static/settings/assets/{AiConfigContext-CR3YhTA-.js → AiConfigContext-y6ha7pGs.js} +1 -1
  743. package/static/settings/assets/{AiConfigPage-DnOvX2Kx.js → AiConfigPage-CIcIWdXA.js} +1 -1
  744. package/static/settings/assets/DocumentProcessingPanel-Oa_cxMcn.js +1 -0
  745. package/static/settings/assets/IndexLifecyclePanel-DlrnI0Kh.js +1 -0
  746. package/static/settings/assets/{IndexSubjectPanel-CP84xXye.js → IndexSubjectPanel-Dhsl0W32.js} +1 -1
  747. package/static/settings/assets/ModelAssignmentsPanel-CHoiRZeL.js +1 -0
  748. package/static/settings/assets/ModelsPage-CuNW1hGX.js +11 -0
  749. package/static/settings/assets/NetworkPage-BBD2Lc_P.js +2 -0
  750. package/static/settings/assets/{PaneListHeader-Bz0UAhZr.js → PaneListHeader-C81adSBX.js} +1 -1
  751. package/static/settings/assets/SearchIndexingPanel-Dc4QKWd0.js +1 -0
  752. package/static/settings/assets/{StatusSubjectPanel-B2Y6ib3d.js → StatusSubjectPanel-DuxOvqzS.js} +1 -1
  753. package/static/settings/assets/StatusWorkspace-DeD3zi3G.js +1 -0
  754. package/static/settings/assets/{SystemSettingsPage-BbFkv_Wn.js → SystemSettingsPage-8sHOaPb8.js} +1 -1
  755. package/static/settings/assets/SystemSettingsSubjectPanel-B1JXut7S.js +33 -0
  756. package/static/settings/assets/{XpodAiConnectionsPodStore-B11u0BOi.js → XpodAiConnectionsPodStore-G0ClZksP.js} +1 -1
  757. package/static/settings/assets/{activity-BE8Hz8WF.js → activity-DT8pzOea.js} +1 -1
  758. package/static/settings/assets/{auth-callback-5waKJF0n.js → auth-callback-1BlsOtMG.js} +1 -1
  759. package/static/settings/assets/{badge-xeRbYBMf.js → badge-CvKRjSY2.js} +1 -1
  760. package/static/settings/assets/collection-runtime-C6ZAp2cM.js +1 -0
  761. package/static/settings/assets/dialog-LFluK7Nx.js +1 -0
  762. package/static/settings/assets/{download-xI5yyfk7.js → download-CZJeqUm1.js} +1 -1
  763. package/static/settings/assets/{external-link-DmbiCMuc.js → external-link-BsDft3Oe.js} +1 -1
  764. package/static/settings/assets/global-DvuM3VTP.css +1 -0
  765. package/static/settings/assets/{global-BOl78fr8.js → global-cmKEraT4.js} +77 -117
  766. package/static/settings/assets/index-BMPlaRWG.js +1 -0
  767. package/static/settings/assets/index-BiqSFOS1.js +4 -0
  768. package/static/settings/assets/index-XRgmPBKw.js +41 -0
  769. package/static/settings/assets/{index-browser-Bk7jaLCd.js → index-browser-B0slhJKc.js} +1 -1
  770. package/static/settings/assets/{key-round-B3VIp8oI.js → key-round-D1XsWbN_.js} +1 -1
  771. package/static/settings/assets/{rotate-ccw-DRzTN49Z.js → rotate-ccw-CEe0P0fY.js} +1 -1
  772. package/static/settings/assets/settings-DfjkqEJ8.js +1 -0
  773. package/static/settings/assets/{skeleton-Ckhw5HG7.js → skeleton-DA404w6m.js} +1 -1
  774. package/static/settings/assets/{waypoints-BFMI-qS6.js → waypoints-DJDWc4S9.js} +1 -1
  775. package/static/settings/assets/workspace-layout-K38jT4OV.js +1 -0
  776. package/static/settings/auth-callback.html +3 -3
  777. package/static/settings/settings.html +3 -3
  778. package/dist/api/background-service-supervisor.d.ts +0 -63
  779. package/dist/api/background-service-supervisor.js +0 -144
  780. package/dist/api/network/EndpointReachabilityProbe.d.ts +0 -40
  781. package/dist/api/network/EndpointReachabilityProbe.js +0 -129
  782. package/dist/edge/acme/CertificateRenewalScheduler.d.ts +0 -67
  783. package/dist/edge/acme/CertificateRenewalScheduler.js +0 -116
  784. package/dist/edge/reachability/P2PDataPlaneCrypto.d.ts +0 -42
  785. package/dist/edge/reachability/P2PDataPlaneCrypto.js +0 -113
  786. package/dist/edge/reachability/P2PDataPlaneCrypto.jsonld +0 -69
  787. package/dist/edge/reachability/RouteValidation.d.ts +0 -29
  788. package/dist/edge/reachability/RouteValidation.js +0 -58
  789. package/dist/runtime/ingress-occupant.d.ts +0 -39
  790. package/dist/runtime/ingress-occupant.js +0 -111
  791. package/dist/runtime/ingress-port.d.ts +0 -89
  792. package/dist/runtime/ingress-port.js +0 -165
  793. package/dist/runtime/port-reservations.d.ts +0 -86
  794. package/dist/runtime/port-reservations.js +0 -183
  795. package/dist/tunnel/TunnelClientManager.d.ts +0 -73
  796. package/dist/tunnel/TunnelClientManager.js +0 -181
  797. package/dist/tunnel/TunnelClientResolver.d.ts +0 -56
  798. package/dist/tunnel/TunnelClientResolver.js +0 -135
  799. package/dist/tunnel/TunnelDeclaredOrigin.d.ts +0 -78
  800. package/dist/tunnel/TunnelDeclaredOrigin.js +0 -185
  801. package/node_modules/@undefineds.co/extensions/dist-cjs/adapters/langchain.js +0 -49
  802. package/node_modules/@undefineds.co/extensions/dist-cjs/adapters/llamaindex.js +0 -54
  803. package/node_modules/@undefineds.co/extensions/dist-cjs/index.js +0 -22
  804. package/node_modules/@undefineds.co/extensions/dist-cjs/package.json +0 -3
  805. package/node_modules/@undefineds.co/extensions/dist-cjs/paddleocr.js +0 -304
  806. package/node_modules/@undefineds.co/extensions/dist-cjs/reader.js +0 -44
  807. package/node_modules/@undefineds.co/extensions/dist-cjs/registry.js +0 -99
  808. package/node_modules/@undefineds.co/extensions/dist-cjs/types.js +0 -2
  809. package/node_modules/openid-client/types/index.d.ts +0 -623
  810. package/static/app/assets/global.css +0 -1
  811. package/static/dashboard/assets/DocumentProcessingPanel-0-3nlwQf.js +0 -1
  812. package/static/dashboard/assets/IndexLifecyclePanel-DOI3IxOD.js +0 -1
  813. package/static/dashboard/assets/ModelAssignmentsPanel-BSWH19oT.js +0 -1
  814. package/static/dashboard/assets/ModelsPage-BrzxCkEl.js +0 -11
  815. package/static/dashboard/assets/NetworkPage-CxEKeaPz.js +0 -2
  816. package/static/dashboard/assets/SearchIndexingPanel-BGlSvEl5.js +0 -1
  817. package/static/dashboard/assets/StatusWorkspace-LYMDa4b0.js +0 -1
  818. package/static/dashboard/assets/SystemSettingsSubjectPanel-hsfHcJRV.js +0 -33
  819. package/static/dashboard/assets/collection-runtime-CKBQm3Fl.js +0 -1
  820. package/static/dashboard/assets/dashboard-1zrtbMhM.css +0 -1
  821. package/static/dashboard/assets/index-CQDQ8WVr.js +0 -4
  822. package/static/dashboard/assets/workspace-layout-Wed840qR.js +0 -1
  823. package/static/settings/assets/DocumentProcessingPanel-CccpHBs3.js +0 -1
  824. package/static/settings/assets/IndexLifecyclePanel-BrECzBoM.js +0 -1
  825. package/static/settings/assets/ModelAssignmentsPanel-DbFi67Kk.js +0 -1
  826. package/static/settings/assets/ModelsPage-xjHA88qy.js +0 -11
  827. package/static/settings/assets/NetworkPage-Bj4wc0bh.js +0 -2
  828. package/static/settings/assets/SearchIndexingPanel-ykhvw1Vl.js +0 -1
  829. package/static/settings/assets/StatusWorkspace-tx3Xg56J.js +0 -1
  830. package/static/settings/assets/SystemSettingsSubjectPanel-CcbpQmTc.js +0 -33
  831. package/static/settings/assets/collection-runtime-DIBObcT5.js +0 -1
  832. package/static/settings/assets/global-1zrtbMhM.css +0 -1
  833. package/static/settings/assets/index-CFVXiUnV.js +0 -4
  834. package/static/settings/assets/index-DK6qlahe.js +0 -1
  835. package/static/settings/assets/settings-CCM17CMX.js +0 -1
  836. package/static/settings/assets/workspace-layout-Co0KpMKd.js +0 -1
  837. /package/static/app/assets/{global-BGMlqT2c.js → _commonjsHelpers-B-UnjaXt.js} +0 -0
@@ -22,16 +22,10 @@ export function AiClientIcon({ client, className = 'h-4 w-4' }) {
22
22
  }
23
23
  export function AiClientConfigurationSection({ bridge, endpoint, client, createClientCredential, manualApiKey, autoApply = false, compact = false, onComplete, }) {
24
24
  const [status, setStatus] = useState({ status: 'notConfigured' });
25
- // §7.3 第 5–6 步:密钥结果、配置写入、Gateway 检查、客户端验证分开呈现
26
- const [stages, setStages] = useState([]);
27
25
  const [dryRun, setDryRun] = useState();
28
26
  const [confirmationValue, setConfirmationValue] = useState('');
29
27
  const [busy, setBusy] = useState(false);
30
28
  const autoApplyStarted = useRef(false);
31
- /** §7.3 第 3 步:明确选择为这个客户端新建 Key,还是使用用户已有的 Key。 */
32
- const [keySource, setKeySource] = useState('create');
33
- /** 写入失败后保留的凭据:重试只重写配置,不再新建 Key(§7.3)。 */
34
- const leaseRef = useRef(undefined);
35
29
  useEffect(() => {
36
30
  setDryRun(undefined);
37
31
  setConfirmationValue('');
@@ -64,23 +58,7 @@ export function AiClientConfigurationSection({ bridge, endpoint, client, createC
64
58
  let lease;
65
59
  let applied = false;
66
60
  try {
67
- // 已经有上次失败留下的凭据就沿用,只有第一次才申请
68
- lease = leaseRef.current;
69
- if (!lease) {
70
- lease = await createClientCredential(client);
71
- leaseRef.current = lease;
72
- }
73
- setStages([
74
- {
75
- id: 'key',
76
- label: '密钥',
77
- state: 'ok',
78
- detail: '本次使用这个 Xpod Key;重试不会新建 Key。',
79
- },
80
- { id: 'write', label: '配置写入', state: 'unknown', detail: '正在写入配置…' },
81
- { id: 'gateway', label: 'Gateway 检查', state: 'unknown', detail: '本步骤未检查 Xpod 网关。' },
82
- { id: 'client', label: '客户端验证', state: 'unknown', detail: '配置已写入,尚未验证客户端。' },
83
- ]);
61
+ lease = await createClientCredential(client);
84
62
  await bridge.apply({
85
63
  client,
86
64
  planId: plan.planId,
@@ -93,10 +71,6 @@ export function AiClientConfigurationSection({ bridge, endpoint, client, createC
93
71
  } : {}),
94
72
  });
95
73
  applied = true;
96
- leaseRef.current = undefined;
97
- setStages((current) => current.map((stage) => (stage.id === 'write'
98
- ? { ...stage, state: 'ok', detail: '配置已写入;客户端是否已采用仍未验证。' }
99
- : stage)));
100
74
  setStatus({ status: 'configured' });
101
75
  setDryRun(undefined);
102
76
  onComplete?.();
@@ -107,13 +81,13 @@ export function AiClientConfigurationSection({ bridge, endpoint, client, createC
107
81
  recoveryMessage = `${AI_CLIENT_LABELS[client]} 配置失败。请重试。`;
108
82
  }
109
83
  if (lease && !applied) {
110
- // §7.3:写入失败时保留这个 Key 和原任务,重试只重写配置,不重复建 Key;
111
- // 用户仍可在 API KEYS 里手动撤销。
112
- recoveryMessage = `${recoveryMessage};已保留本次使用的 Xpod Key,重试只会重新写入配置。`;
84
+ try {
85
+ await lease.revoke();
86
+ }
87
+ catch (revokeError) {
88
+ recoveryMessage = `${recoveryMessage};自动撤销 API Key 失败:${errorMessage(revokeError)}。请在“API KEYS”中手动撤销。`;
89
+ }
113
90
  }
114
- setStages((current) => current.map((stage) => (stage.id === 'write'
115
- ? { ...stage, state: 'failed', detail: recoveryMessage }
116
- : stage)));
117
91
  setStatus(failedAndRestoredError(error)
118
92
  ? { status: 'failedAndRestored', message: '配置写入失败,已自动恢复原配置。' }
119
93
  : { status: 'unavailable', message: recoveryMessage });
@@ -174,14 +148,11 @@ export function AiClientConfigurationSection({ bridge, endpoint, client, createC
174
148
  const confirmation = dryRun?.confirmation;
175
149
  const confirmationSatisfied = !confirmation?.required || confirmationValue === confirmation.token;
176
150
  const clientLabel = AI_CLIENT_LABELS[client];
177
- // 选择「使用已有 Key」时走手动配置路径:本页不申请新凭据,只给可复制的配置
178
- const manual = !bridge || keySource === 'existing';
151
+ const manual = !bridge;
179
152
  const manualConfig = manualConfigurationText(client, endpoint, manualApiKey);
180
- return (_jsxs("div", { className: compact ? '' : 'overflow-hidden rounded-md border border-border/60', children: [bridge && createClientCredential ? (_jsxs("div", { className: "border-b border-border/60 px-3 py-2", children: [_jsxs("div", { role: "tablist", "aria-label": `${clientLabel} 的 Key 来源`, className: "flex flex-wrap gap-2", children: [_jsx("button", { type: "button", role: "tab", "aria-selected": keySource === 'create', "data-testid": "client-key-source-create", className: `rounded-lg border px-3 py-1 text-xs ${keySource === 'create' ? 'border-primary bg-accent text-accent-foreground' : 'border-border text-foreground hover:bg-accent/60'}`, onClick: () => setKeySource('create'), children: "\u4E3A\u8FD9\u4E2A\u5BA2\u6237\u7AEF\u65B0\u5EFA Key" }), _jsx("button", { type: "button", role: "tab", "aria-selected": keySource === 'existing', "data-testid": "client-key-source-existing", className: `rounded-lg border px-3 py-1 text-xs ${keySource === 'existing' ? 'border-primary bg-accent text-accent-foreground' : 'border-border text-foreground hover:bg-accent/60'}`, onClick: () => setKeySource('existing'), children: "\u4F7F\u7528\u6211\u5DF2\u7ECF\u6709\u7684 Key" })] }), _jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: keySource === 'existing'
181
- ? '本页不会新建 Key:请把已有 Key 粘进客户端配置。共用一个 Key 时,停用它会影响所有使用它的客户端。'
182
- : '会为这个客户端单独创建一个 Key;停用只影响它自己。' })] })) : null, !compact ? _jsxs("div", { className: "flex flex-wrap items-center gap-2 px-3 py-2", children: [_jsx("span", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-muted text-muted-foreground", children: _jsx(AiClientIcon, { client: client }) }), _jsxs("div", { className: "min-w-[10rem] flex-1", children: [_jsx("div", { className: "text-sm font-medium", children: clientLabel }), !manual ? _jsx("div", { className: "mt-0.5 text-xs text-muted-foreground", children: status.message ?? (status.status === 'configured'
153
+ return (_jsxs("div", { className: compact ? '' : 'overflow-hidden rounded-md border border-border/60', children: [!compact ? _jsxs("div", { className: "flex flex-wrap items-center gap-2 px-3 py-2", children: [_jsx("span", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-muted text-muted-foreground", children: _jsx(AiClientIcon, { client: client }) }), _jsxs("div", { className: "min-w-[10rem] flex-1", children: [_jsx("div", { className: "text-sm font-medium", children: clientLabel }), !manual ? _jsx("div", { className: "mt-0.5 text-xs text-muted-foreground", children: status.message ?? (status.status === 'configured'
183
154
  ? `${clientLabel} 正在使用 Xpod。`
184
- : '可自动写入本机配置。') }) : null] }), !manual ? _jsx(Badge, { variant: "secondary", children: statusLabel(status.status) }) : null, manual ? (_jsx(AiCopyButton, { value: manualConfig, label: `${clientLabel} 配置`, variant: "ghost", size: "icon", iconClassName: "h-4 w-4" })) : (_jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Button, { variant: "outline", size: "sm", "aria-label": `配置 ${clientLabel}`, disabled: busy, onClick: () => void plan(), children: "\u914D\u7F6E" }), _jsx(Button, { variant: "ghost", size: "icon", "aria-label": `恢复 ${clientLabel} 配置`, disabled: status.status === 'notConfigured' || busy, onClick: () => void restore(), children: _jsx(RotateCcw, { className: "h-4 w-4" }) })] }))] }) : null, compact && busy ? (_jsxs("div", { className: "py-1 text-xs text-muted-foreground", children: ["\u6B63\u5728\u5E94\u7528 ", clientLabel, " \u914D\u7F6E\u2026"] })) : null, compact && !busy && status.message ? (_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2 py-1 text-xs text-destructive", children: [_jsx("span", { children: status.message }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => void plan(), children: "\u91CD\u8BD5\u5E94\u7528\u914D\u7F6E" })] })) : null, stages.length > 0 ? (_jsx("ul", { "data-testid": "client-setup-stages", className: "space-y-1 border-t border-border/60 px-4 py-3 text-xs", children: stages.map((stage) => (_jsxs("li", { "data-testid": "client-setup-stage", "data-stage": stage.id, "data-stage-state": stage.state, className: "flex gap-2", children: [_jsx("span", { "aria-hidden": "true", children: stage.state === 'ok' ? '✓' : stage.state === 'failed' ? '✕' : '?' }), _jsx("span", { className: "font-medium", children: stage.label }), _jsx("span", { className: "min-w-0 flex-1 text-muted-foreground", children: stage.detail })] }, stage.id))) })) : null, dryRun ? (_jsxs("div", { className: "space-y-3 border-t border-border/60 bg-muted/20 px-4 py-3", children: [_jsx("div", { className: "text-xs font-medium", children: "\u5C06\u6267\u884C\u4EE5\u4E0B\u66F4\u6539" }), dryRun.changes.map((change) => (_jsxs("div", { className: "text-xs text-muted-foreground", children: [_jsx("span", { className: "font-mono", children: change.target }), ' · ', changeActionLabel(change.action), change.backup ? ' · 创建备份' : ''] }, `${change.target}:${change.action}`))), confirmation?.required ? (_jsxs("div", { className: "space-y-2", children: [confirmation.message ? _jsx("div", { className: "text-xs text-muted-foreground", children: confirmation.message }) : null, _jsxs("div", { className: "text-xs text-muted-foreground", children: ["\u786E\u8BA4\u7801\uFF1A", _jsx("code", { className: "font-mono text-foreground", children: confirmation.token })] }), _jsx(Input, { "aria-label": `输入确认码以应用 ${clientLabel} 配置`, value: confirmationValue, onChange: (event) => setConfirmationValue(event.target.value) })] })) : null, _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { size: "sm", "aria-label": confirmation?.required
155
+ : '可自动写入本机配置。') }) : null] }), !manual ? _jsx(Badge, { variant: "secondary", children: statusLabel(status.status) }) : null, manual ? (_jsx(AiCopyButton, { value: manualConfig, label: `${clientLabel} 配置`, variant: "ghost", size: "icon", iconClassName: "h-4 w-4" })) : (_jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Button, { variant: "outline", size: "sm", "aria-label": `配置 ${clientLabel}`, disabled: busy, onClick: () => void plan(), children: "\u914D\u7F6E" }), _jsx(Button, { variant: "ghost", size: "icon", "aria-label": `恢复 ${clientLabel} 配置`, disabled: status.status === 'notConfigured' || busy, onClick: () => void restore(), children: _jsx(RotateCcw, { className: "h-4 w-4" }) })] }))] }) : null, compact && busy ? (_jsxs("div", { className: "py-1 text-xs text-muted-foreground", children: ["\u6B63\u5728\u5E94\u7528 ", clientLabel, " \u914D\u7F6E\u2026"] })) : null, compact && !busy && status.message ? (_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2 py-1 text-xs text-destructive", children: [_jsx("span", { children: status.message }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => void plan(), children: "\u91CD\u8BD5\u5E94\u7528\u914D\u7F6E" })] })) : null, dryRun ? (_jsxs("div", { className: "space-y-3 border-t border-border/60 bg-muted/20 px-4 py-3", children: [_jsx("div", { className: "text-xs font-medium", children: "\u5C06\u6267\u884C\u4EE5\u4E0B\u66F4\u6539" }), dryRun.changes.map((change) => (_jsxs("div", { className: "text-xs text-muted-foreground", children: [_jsx("span", { className: "font-mono", children: change.target }), ' · ', changeActionLabel(change.action), change.backup ? ' · 创建备份' : ''] }, `${change.target}:${change.action}`))), confirmation?.required ? (_jsxs("div", { className: "space-y-2", children: [confirmation.message ? _jsx("div", { className: "text-xs text-muted-foreground", children: confirmation.message }) : null, _jsxs("div", { className: "text-xs text-muted-foreground", children: ["\u786E\u8BA4\u7801\uFF1A", _jsx("code", { className: "font-mono text-foreground", children: confirmation.token })] }), _jsx(Input, { "aria-label": `输入确认码以应用 ${clientLabel} 配置`, value: confirmationValue, onChange: (event) => setConfirmationValue(event.target.value) })] })) : null, _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { size: "sm", "aria-label": confirmation?.required
185
156
  ? `确认并应用 ${clientLabel} 配置`
186
157
  : `应用 ${clientLabel} 配置`, disabled: !createClientCredential || busy || !confirmationSatisfied, onClick: () => void apply(), children: confirmation?.required ? '确认并应用' : '应用配置' }), _jsx(Button, { variant: "ghost", size: "sm", disabled: busy, onClick: () => {
187
158
  setDryRun(undefined);
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useContext, useRef, useState } from 'react';
2
+ import { useContext, useRef } from 'react';
3
3
  import { Avatar, AvatarFallback, AvatarImage, cn } from '@undefineds.co/shared-ui';
4
4
  import { WorkspaceLayoutContext } from '@undefineds.co/extension-sdk/react';
5
5
  import { XPOD_AVATAR, getProviderAvatar, getProviderAvatarBackground } from './provider-visuals.js';
@@ -26,20 +26,9 @@ export function AiConnectionsList({ controller }) {
26
26
  const providers = searchQuery
27
27
  ? providerItems.filter((provider) => providerDisplayName(provider, providerProducts).toLocaleLowerCase().includes(searchQuery))
28
28
  : providerItems;
29
- // §7.3:已有配置时先呈现已连接对象,全量 Provider 目录只在"添加连接"时出现;
30
- // 什么都没配置时,目录本身就是连接任务的入口,直接出现。
31
- const [adding, setAdding] = useState(false);
32
- const configured = (provider) => {
33
- const state = providerStates[provider.id];
34
- return state === 'configured' || state === 'connected';
35
- };
36
- const configuredProviders = providers.filter(configured);
37
- const catalogProviders = providers.filter((provider) => !configured(provider));
38
- const showCatalog = adding || configuredProviders.length === 0;
39
- const shownProviders = showCatalog ? providers : configuredProviders;
40
29
  const items = [
41
30
  ...AI_CONNECTIONS_PINNED_SECTIONS.map((section) => ({ kind: 'section', id: section.id, label: section.label })),
42
- ...shownProviders.map((provider) => ({ kind: 'provider', provider })),
31
+ ...providers.map((provider) => ({ kind: 'provider', provider })),
43
32
  ];
44
33
  const optionRefs = useRef([]);
45
34
  const selectedIndex = items.findIndex((item) => item.kind === 'section'
@@ -56,14 +45,14 @@ export function AiConnectionsList({ controller }) {
56
45
  return (_jsxs("div", { role: "listbox", "aria-label": "AI \u670D\u52A1", "aria-orientation": "vertical", className: "py-2", children: [_jsx("section", { className: "mb-3", "aria-label": "API Keys", children: items.filter((item) => item.kind === 'section').map((item) => {
57
46
  const index = items.indexOf(item);
58
47
  return (_jsxs(WorkspaceOption, { index: index, selected: selectedSection === item.id, tabbable: selectedIndex === index || (selectedIndex < 0 && index === 0), label: item.label, optionRefs: optionRefs, onActivate: () => activate(item), onMove: (nextIndex) => moveSelection(items, nextIndex, controller, optionRefs), children: [_jsx(PinnedMark, { section: item.id }), _jsx("span", { className: cn('min-w-0 flex-1 truncate text-sm font-medium', selectedSection === item.id ? 'text-foreground' : 'text-foreground/80'), children: item.label })] }, item.id));
59
- }) }), _jsxs("section", { "data-testid": "ai-provider-section", children: [_jsxs("div", { className: "flex items-center justify-between gap-2 px-5 py-1", children: [_jsx("h2", { className: "text-[11px] font-semibold uppercase tracking-wider text-muted-foreground", children: configuredProviders.length > 0 && !showCatalog ? '已连接' : 'Provider' }), configuredProviders.length > 0 ? (_jsx("button", { type: "button", "data-testid": "ai-add-connection", className: "text-[11px] text-primary underline-offset-4 hover:underline", "aria-expanded": showCatalog, onClick: () => setAdding((value) => !value), children: showCatalog ? '收起目录' : '添加连接' })) : null] }), shownProviders.map((provider) => {
48
+ }) }), _jsxs("section", { children: [_jsx("h2", { className: "px-5 py-1 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground", children: "Provider" }), providers.map((provider) => {
60
49
  const index = items.findIndex((item) => item.kind === 'provider'
61
50
  && item.provider.id === provider.id
62
51
  && item.provider.credentialId === provider.credentialId);
63
52
  const selected = selectedSection === 'provider' && selectedProvider === provider.id && provider.credentialId === selectedCredentialId;
64
53
  const state = providerStates[provider.id] ?? 'loading';
65
54
  return (_jsxs(WorkspaceOption, { index: index, selected: selected, tabbable: selected || (selectedIndex < 0 && index === 0), label: providerDisplayName(provider, providerProducts), describedBy: `ai-connections-provider-${provider.id}-${provider.credentialId ?? 'default'}-status`, optionRefs: optionRefs, onActivate: () => activate({ kind: 'provider', provider }), onMove: (nextIndex) => moveSelection(items, nextIndex, controller, optionRefs), children: [_jsxs(Avatar, { className: "h-9 w-9 shrink-0 rounded-md border border-border/20", style: getProviderAvatarBackground(provider.id) ? { backgroundColor: getProviderAvatarBackground(provider.id) } : undefined, children: [_jsx(AvatarImage, { src: getProviderAvatar(provider.id), className: "object-cover" }), _jsx(AvatarFallback, { className: "rounded-md bg-muted text-[10px] font-bold uppercase text-muted-foreground", children: providerMark(provider.id) })] }), _jsx("span", { className: cn('min-w-0 flex-1 truncate text-sm font-medium', selected ? 'text-foreground' : 'text-foreground/80'), children: providerDisplayName(provider, providerProducts) }), _jsx(ProviderStateIndicator, { state: state, statusId: `ai-connections-provider-${provider.id}-${provider.credentialId ?? 'default'}-status` })] }, `${provider.id}:${provider.credentialId ?? 'default'}`));
66
- }), shownProviders.length === 0 ? (_jsx("p", { className: "p-8 text-center text-xs text-muted-foreground", children: "\u65E0\u7ED3\u679C" })) : null] }), providerLoadError ? (_jsxs("p", { className: "px-4 py-2 text-xs text-destructive", children: ["Provider \u72B6\u6001\u8BFB\u53D6\u5931\u8D25\uFF1A", providerLoadError] })) : null] }));
55
+ }), providers.length === 0 ? (_jsx("p", { className: "p-8 text-center text-xs text-muted-foreground", children: "\u65E0\u7ED3\u679C" })) : null] }), providerLoadError ? (_jsxs("p", { className: "px-4 py-2 text-xs text-destructive", children: ["Provider \u72B6\u6001\u8BFB\u53D6\u5931\u8D25\uFF1A", providerLoadError] })) : null] }));
67
56
  }
68
57
  function WorkspaceOption({ index, selected, tabbable, label, describedBy, statusId, optionRefs, onActivate, onMove, children, }) {
69
58
  const handleKeyDown = (event) => {
@@ -1,6 +1,6 @@
1
1
  import { type AiConnectionsClient, type AiConnectionsProvider, type AiProviderConnectionSummary, type AiProviderSummary } from './contract/ai-connections-client';
2
2
  import { type AiConnectionsWorkspaceSection, type ProviderProductState } from './controller';
3
- import { type AiClientConfigurationBridge } from './AiClientConfigurationSection';
3
+ import type { AiClientConfigurationBridge } from './AiClientConfigurationSection';
4
4
  import { type CredentialRow } from './collections';
5
5
  export interface AiConnectionsPanelProps {
6
6
  client: AiConnectionsClient;
@@ -7,13 +7,11 @@ import { offeringTitle } from './offering-label.js';
7
7
  import { AiProviderCard, } from './AiProviderCard.js';
8
8
  import { AiModelEditorDialog, } from './AiModelEditorDialog.js';
9
9
  import { AiGatewayKeysSection } from './AiGatewayKeysSection.js';
10
- import { AI_CLIENT_LABELS, AI_CONNECTIONS_CLIENTS, AiClientConfigurationSection, } from './AiClientConfigurationSection.js';
11
10
  import { credentialCarriers, withLiveCredentials } from './collections.js';
12
11
  import { modelCatalogId, withCatalogModelId } from './AiModelCatalog.js';
13
12
  const EMPTY_PROVIDER_SUMMARIES = {};
14
13
  export function AiConnectionsPanel({ client, renderToaster = true, openExternal = openExternalUrl, clientConfigurationBridge, selectedSection = 'provider', selectedProvider, selectedCredentialId, providerSummaries: providerSummariesInput = EMPTY_PROVIDER_SUMMARIES, providerProducts = {}, providerLoadError, providerLoading = false, onProviderStateChange, onModelSelectionChange, liveRevision = 0, liveCredentialRows, }) {
15
14
  const [connectionStates, setConnectionStates] = useState({});
16
- const [activeClient, setActiveClient] = useState(AI_CONNECTIONS_CLIENTS[0]);
17
15
  const [models, setModels] = useState([]);
18
16
  const [gatewayModels, setGatewayModels] = useState();
19
17
  const [gatewayCatalogVersion, setGatewayCatalogVersion] = useState(0);
@@ -707,9 +705,8 @@ export function AiConnectionsPanel({ client, renderToaster = true, openExternal
707
705
  [definition.id]: value,
708
706
  })), onBeginApiKey: () => void beginApiKey(definition.id), onBeginOffering: (offering, mode, method) => void beginOfferingConnect(definition.id, offering, mode, method), onCancelConnect: (attempt) => void cancelConnect(definition.id, attempt), onBeginBrowser: () => void beginBrowserConnect(definition), onSaveApiKey: () => void saveApiKey(definition), onDisconnect: (credential) => void disconnect(definition.id, credential?.id), onCreateApiKeyCredential: (offering, input) => createApiKeyCredential(definition.id, offering, input), onCreateLocalCredential: (offering, method) => createLocalCredential(definition.id, offering, method), onUpdateCredential: (credential, patch) => updateProviderCredential(definition.id, credential, patch), onDeleteCredential: (credential) => void deleteProviderCredential(definition.id, credential), onTestCredential: (credential) => void testProviderCredential(definition.id, credential), onReorderCredentials: (offering, credentials, fromIndex, toIndex) => void reorderProviderCredentials(definition.id, offering, credentials, fromIndex, toIndex), onRefreshQuota: (offering, credential) => void refreshQuota(definition.id, offering, credential), verifyPending: Boolean(verifyingProviders[definition.id]), onVerify: () => void verifyProvider(definition.id), onAddModel: () => openModelEditor(definition.id), onEditModel: (model) => openModelEditor(definition.id, model), onDeleteModel: (model) => void deleteProviderModel(definition.id, model), onModelSelectionChange: handleModelSelectionChange, onDismissError: () => setProviderError(definition.id) }, definition.id));
709
707
  })] }));
710
- const clientsContent = (_jsxs("section", { "data-testid": "ai-client-first", className: "space-y-4", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-base font-semibold", children: "\u8FDE\u63A5\u5BA2\u6237\u7AEF" }), _jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: "\u5148\u9009\u8981\u63A5\u5165\u7684\u5BA2\u6237\u7AEF\uFF0C\u518D\u51B3\u5B9A\u590D\u7528\u5DF2\u6709 API Key \u8FD8\u662F\u65B0\u5EFA\u4E00\u4E2A\uFF1B\u914D\u7F6E\u5199\u5165\u4E0E\u9A8C\u8BC1\u7ED3\u679C\u4F1A\u5206\u6B65\u663E\u793A\u3002" })] }), _jsx("div", { role: "tablist", "aria-label": "\u9009\u62E9\u5BA2\u6237\u7AEF", className: "flex flex-wrap gap-2", children: AI_CONNECTIONS_CLIENTS.map((candidate) => (_jsx("button", { type: "button", role: "tab", "aria-selected": candidate === activeClient, "data-testid": `ai-client-choice-${candidate}`, className: `rounded-lg border px-3 py-1.5 text-sm ${candidate === activeClient ? 'border-primary bg-accent text-accent-foreground' : 'border-border text-foreground hover:bg-accent/60'}`, onClick: () => setActiveClient(candidate), children: AI_CLIENT_LABELS[candidate] }, candidate))) }), _jsx(AiClientConfigurationSection, { bridge: clientConfigurationBridge, client: activeClient, endpoint: client.apiBase })] }));
711
708
  const keyContent = (_jsx(AiGatewayKeysSection, { client: client, clientConfigurationBridge: clientConfigurationBridge, gatewayModels: gatewayModels, modelSelection: gatewayModelSelection, liveRevision: liveRevision }));
712
- return (_jsxs("div", { "data-testid": "ai-connections-panel", className: "mx-auto w-full max-w-5xl space-y-10 px-4 py-6 sm:px-8 sm:py-8", children: [renderToaster ? _jsx(Toaster, {}) : null, selectedSection === 'clients' ? clientsContent : null, selectedSection === 'keys' ? keyContent : null, selectedSection === 'provider' ? providerContent : null, selectedSection === 'provider' && modelEditor ? (_jsx(AiModelEditorDialog, { open: true, providerName: PROVIDERS.find((definition) => definition.id === modelEditor.provider)?.name ?? modelEditor.provider, initialValue: modelEditor.model
709
+ return (_jsxs("div", { "data-testid": "ai-connections-panel", className: "mx-auto w-full max-w-5xl space-y-10 px-4 py-6 sm:px-8 sm:py-8", children: [renderToaster ? _jsx(Toaster, {}) : null, selectedSection === 'keys' ? keyContent : null, selectedSection === 'provider' ? providerContent : null, selectedSection === 'provider' && modelEditor ? (_jsx(AiModelEditorDialog, { open: true, providerName: PROVIDERS.find((definition) => definition.id === modelEditor.provider)?.name ?? modelEditor.provider, initialValue: modelEditor.model
713
710
  ? {
714
711
  id: modelEditor.model.id,
715
712
  name: modelEditor.model.displayName ?? '',
@@ -9,13 +9,9 @@ export interface AiGatewayKeyBinding {
9
9
  * carries only the purpose declared at creation, the client it was written
10
10
  * into, when it was last used, and the one action that still applies: destroy.
11
11
  */
12
- export declare function AiGatewayKeyRow({ record, busy, confirming, onRequestDestroy, onCancelDestroy, onDestroy, }: {
12
+ export declare function AiGatewayKeyRow({ record, busy, onDestroy, }: {
13
13
  record: GatewayKeyRecord;
14
14
  busy: boolean;
15
- /** §7.3:销毁前先说明影响,第二次点击才真正删除。 */
16
- confirming?: boolean;
17
- onRequestDestroy: () => void;
18
- onCancelDestroy: () => void;
19
15
  onDestroy: () => void;
20
16
  }): import("react").JSX.Element;
21
17
  /** Where the credential is in effect: the client application and the device. */
@@ -7,14 +7,14 @@ import { AI_CLIENT_LABELS, AI_CONNECTIONS_CLIENTS, AiClientIcon, } from './AiCli
7
7
  * carries only the purpose declared at creation, the client it was written
8
8
  * into, when it was last used, and the one action that still applies: destroy.
9
9
  */
10
- export function AiGatewayKeyRow({ record, busy, confirming = false, onRequestDestroy, onCancelDestroy, onDestroy, }) {
10
+ export function AiGatewayKeyRow({ record, busy, onDestroy, }) {
11
11
  const label = record.name || '未命名 API Key';
12
12
  const binding = gatewayKeyBinding(record);
13
13
  // Credentials issued through CSS are revoked by client id; a record without
14
14
  // one cannot be destroyed from here, so the row says so instead of offering
15
15
  // an action that always fails.
16
16
  const destroyable = record.kind !== 'client-credentials' || Boolean(record.clientCredentialId);
17
- return (_jsxs("li", { "data-key-id": record.id, "data-key-binding": record.appliedTo ? 'bound' : 'unbound', className: "flex flex-wrap items-center gap-x-4 gap-y-2 border-b border-border/60 px-4 py-3 first:rounded-t-xl last:rounded-b-xl last:border-b-0", children: [_jsxs("dl", { className: "flex min-w-0 flex-1 basis-64 flex-wrap items-center gap-x-6 gap-y-2", children: [_jsx(KeyField, { label: "\u7528\u9014", className: "min-w-0 flex-1 basis-28", children: _jsx("span", { className: "block truncate text-sm font-medium text-foreground/90", title: label, children: label }) }), _jsx(KeyField, { label: "\u7ED1\u5B9A", className: "min-w-0 flex-1 basis-28", children: _jsxs("span", { className: "flex min-w-0 items-center gap-1.5 text-xs text-muted-foreground", children: [binding.clientId ? _jsx(AiClientIcon, { client: binding.clientId, className: "h-3.5 w-3.5" }) : null, _jsx("span", { className: "truncate", title: binding.label, children: binding.label })] }) }), _jsx(KeyField, { label: "\u6700\u540E\u4F7F\u7528", className: "shrink-0", children: _jsx("span", { className: "block text-xs text-muted-foreground", children: record.lastUsedAt ? formatTimestamp(record.lastUsedAt) : '暂无调用记录' }) })] }), destroyable ? confirming ? (_jsxs("div", { "data-testid": "gateway-key-destroy-confirm", className: "mt-2 shrink-0 rounded-lg border border-destructive/40 bg-destructive/5 p-3 text-xs", children: [_jsx("p", { className: "text-foreground", children: "\u5220\u9664\u540E\uFF0C\u6B63\u5728\u4F7F\u7528\u8FD9\u4E2A Key \u7684\u5BA2\u6237\u7AEF\u4F1A\u7ACB\u5373\u5931\u6548\u3002Xpod \u76EE\u524D\u4E0D\u8BB0\u5F55 Key \u4E0E\u5BA2\u6237\u7AEF/\u7528\u9014\u7684\u5173\u8054\uFF0C \u56E0\u6B64\u65E0\u6CD5\u5217\u51FA\u53D7\u5F71\u54CD\u7684\u5BF9\u8C61\uFF1B\u8BF7\u5148\u786E\u8BA4\u6CA1\u6709\u5BA2\u6237\u7AEF\u5728\u7528\u3002\u66F4\u7A33\u59A5\u7684\u505A\u6CD5\u662F\u7ED9\u65B0\u5BA2\u6237\u7AEF\u5355\u72EC\u5EFA\u4E00\u4E2A Key\u3002" }), _jsxs("div", { className: "mt-2 flex flex-wrap gap-2", children: [_jsx(Button, { variant: "secondary", size: "sm", className: "h-8 text-xs", "aria-label": `确认删除 ${label}`, disabled: busy, onClick: onDestroy, children: "\u786E\u8BA4\u5220\u9664" }), _jsx(Button, { variant: "ghost", size: "sm", className: "h-8 text-xs", "aria-label": `取消删除 ${label}`, disabled: busy, onClick: onCancelDestroy, children: "\u53D6\u6D88" })] })] })) : (_jsxs(Button, { variant: "ghost", size: "sm", className: "h-8 shrink-0 gap-1.5 text-xs text-muted-foreground hover:text-destructive", "aria-label": `销毁 ${label}`, title: `销毁 ${label}`, disabled: busy, onClick: onRequestDestroy, children: [_jsx(Trash2, { "aria-hidden": "true", className: "h-3.5 w-3.5" }), "\u9500\u6BC1"] })) : (_jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground", children: "\u7F3A\u5C11 CSS \u51ED\u636E\u6807\u8BC6\uFF0C\u65E0\u6CD5\u5728\u6B64\u9500\u6BC1" }))] }));
17
+ return (_jsxs("li", { "data-key-id": record.id, "data-key-binding": record.appliedTo ? 'bound' : 'unbound', className: "flex flex-wrap items-center gap-x-4 gap-y-2 border-b border-border/60 px-4 py-3 first:rounded-t-xl last:rounded-b-xl last:border-b-0", children: [_jsxs("dl", { className: "flex min-w-0 flex-1 basis-64 flex-wrap items-center gap-x-6 gap-y-2", children: [_jsx(KeyField, { label: "\u7528\u9014", className: "min-w-0 flex-1 basis-28", children: _jsx("span", { className: "block truncate text-sm font-medium text-foreground/90", title: label, children: label }) }), _jsx(KeyField, { label: "\u7ED1\u5B9A", className: "min-w-0 flex-1 basis-28", children: _jsxs("span", { className: "flex min-w-0 items-center gap-1.5 text-xs text-muted-foreground", children: [binding.clientId ? _jsx(AiClientIcon, { client: binding.clientId, className: "h-3.5 w-3.5" }) : null, _jsx("span", { className: "truncate", title: binding.label, children: binding.label })] }) }), _jsx(KeyField, { label: "\u6700\u540E\u4F7F\u7528", className: "shrink-0", children: _jsx("span", { className: "block text-xs text-muted-foreground", children: record.lastUsedAt ? formatTimestamp(record.lastUsedAt) : '暂无调用记录' }) })] }), destroyable ? (_jsxs(Button, { variant: "ghost", size: "sm", className: "h-8 shrink-0 gap-1.5 text-xs text-muted-foreground hover:text-destructive", "aria-label": `销毁 ${label}`, title: `销毁 ${label}`, disabled: busy, onClick: onDestroy, children: [_jsx(Trash2, { "aria-hidden": "true", className: "h-3.5 w-3.5" }), "\u9500\u6BC1"] })) : (_jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground", children: "\u7F3A\u5C11 CSS \u51ED\u636E\u6807\u8BC6\uFF0C\u65E0\u6CD5\u5728\u6B64\u9500\u6BC1" }))] }));
18
18
  }
19
19
  /** Where the credential is in effect: the client application and the device. */
20
20
  export function gatewayKeyBinding(record) {
@@ -31,7 +31,6 @@ const SELECT_CLASS = [
31
31
  */
32
32
  export function AiGatewayKeysSection({ client, clientConfigurationBridge, gatewayModels, modelSelection, liveRevision = 0, }) {
33
33
  const [keys, setKeys] = useState([]);
34
- const [confirmingKeyId, setConfirmingKeyId] = useState(undefined);
35
34
  const [loading, setLoading] = useState(true);
36
35
  const [showCreate, setShowCreate] = useState(false);
37
36
  const [name, setName] = useState(DEFAULT_KEY_NAME);
@@ -225,10 +224,7 @@ export function AiGatewayKeysSection({ client, clientConfigurationBridge, gatewa
225
224
  setBusyKeyId(undefined);
226
225
  }
227
226
  };
228
- return (_jsx(TooltipProvider, { children: _jsxs("section", { className: "space-y-8", "aria-label": "API Keys", children: [_jsx(AiProviderHeader, { name: "Xpod", mark: "XP", avatar: XPOD_AVATAR, infoLabel: "Xpod \u8BF4\u660E", infoLines: [XPOD_DESCRIPTION, XPOD_CREDENTIAL_NOTE], link: { href: client.apiBase, label: '访问 Xpod' }, badge: (_jsx(Badge, { variant: keys.length > 0 ? 'default' : 'secondary', children: keys.length > 0 ? `已签发 ${keys.length} 个` : '未配置' })) }), _jsxs("section", { className: "space-y-3", "aria-label": "\u5F53\u524D\u8FDE\u63A5", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsxs("h3", { className: "flex items-center gap-2 text-sm font-medium text-foreground/90", children: [_jsx(Settings2, { "aria-hidden": "true", className: "h-4 w-4 text-primary" }), "\u5F53\u524D\u8FDE\u63A5"] }), _jsx("div", { className: "flex flex-wrap items-center justify-end gap-2", children: _jsxs(Button, { variant: "outline", size: "sm", className: "h-8 gap-1.5 text-xs", "aria-label": "\u65B0\u5EFA API Key", disabled: creating || loading, onClick: openCreate, children: [_jsx(Plus, { "aria-hidden": "true", className: "h-3.5 w-3.5" }), "API Key"] }) })] }), loading ? (_jsxs("div", { className: "flex items-center gap-2 py-6 text-sm text-muted-foreground", children: [_jsx(Loader2, { "aria-hidden": "true", className: "h-4 w-4 animate-spin" }), "\u6B63\u5728\u8BFB\u53D6 API Key"] })) : keys.length === 0 ? (_jsx("p", { className: "py-2 text-xs text-muted-foreground", children: "\u5C1A\u672A\u7B7E\u53D1 API Key" })) : (_jsx("ul", { "aria-label": "API Key \u5217\u8868", className: "rounded-xl border border-border/70", children: keys.map((record) => (_jsx(AiGatewayKeyRow, { record: record, busy: Boolean(busyKeyId), confirming: confirmingKeyId === record.id, onRequestDestroy: () => setConfirmingKeyId(record.id), onCancelDestroy: () => setConfirmingKeyId((current) => (current === record.id ? undefined : current)), onDestroy: () => {
229
- setConfirmingKeyId(undefined);
230
- void destroy(record);
231
- } }, record.id))) })), _jsxs("details", { className: "text-xs text-muted-foreground", children: [_jsx("summary", { className: "w-fit cursor-pointer", children: "\u63A5\u5165\u4FE1\u606F" }), _jsx("div", { className: "mt-2 space-y-3", children: _jsxs("section", { className: "space-y-2", "aria-labelledby": "xpod-access-info", children: [_jsx("h4", { id: "xpod-access-info", className: "text-sm font-medium text-foreground", children: "Xpod \u63A5\u5165\u4FE1\u606F" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "API Key \u662F\u7B7E\u53D1\u7ED9\u5BA2\u6237\u7AEF\u5E94\u7528\u7684 CSS \u5BA2\u6237\u7AEF\u51ED\u636E\uFF1BPod \u53EA\u8BB0\u5F55\u5B83\u7ED1\u5B9A\u5230\u54EA\u4E2A\u5BA2\u6237\u7AEF\uFF0C\u4E0D\u4FDD\u5B58 Key \u660E\u6587\u3002" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "\u540C\u4E00\u4E2A API Key \u652F\u6301\u4EE5\u4E0B\u517C\u5BB9\u534F\u8BAE\uFF0C\u6309\u5BA2\u6237\u7AEF\u9009\u62E9\u5E76\u590D\u5236\u5BF9\u5E94\u5730\u5740\uFF1A" }), _jsx(AiEndpointList, { endpoints: xpodProtocolEndpoints(client.apiBase), copy: true, display: "protocol" })] }) })] })] }), _jsx(AiGatewayModelsSection, { models: gatewayModels, selection: modelSelection }), _jsx(Dialog, { open: showCreate, onOpenChange: (open) => { if (!open && (creating || applying))
227
+ return (_jsx(TooltipProvider, { children: _jsxs("section", { className: "space-y-8", "aria-label": "API Keys", children: [_jsx(AiProviderHeader, { name: "Xpod", mark: "XP", avatar: XPOD_AVATAR, infoLabel: "Xpod \u8BF4\u660E", infoLines: [XPOD_DESCRIPTION, XPOD_CREDENTIAL_NOTE], link: { href: client.apiBase, label: '访问 Xpod' }, badge: (_jsx(Badge, { variant: keys.length > 0 ? 'default' : 'secondary', children: keys.length > 0 ? `已签发 ${keys.length} 个` : '未配置' })) }), _jsxs("section", { className: "space-y-3", "aria-label": "\u5F53\u524D\u8FDE\u63A5", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsxs("h3", { className: "flex items-center gap-2 text-sm font-medium text-foreground/90", children: [_jsx(Settings2, { "aria-hidden": "true", className: "h-4 w-4 text-primary" }), "\u5F53\u524D\u8FDE\u63A5"] }), _jsx("div", { className: "flex flex-wrap items-center justify-end gap-2", children: _jsxs(Button, { variant: "outline", size: "sm", className: "h-8 gap-1.5 text-xs", "aria-label": "\u65B0\u5EFA API Key", disabled: creating || loading, onClick: openCreate, children: [_jsx(Plus, { "aria-hidden": "true", className: "h-3.5 w-3.5" }), "API Key"] }) })] }), loading ? (_jsxs("div", { className: "flex items-center gap-2 py-6 text-sm text-muted-foreground", children: [_jsx(Loader2, { "aria-hidden": "true", className: "h-4 w-4 animate-spin" }), "\u6B63\u5728\u8BFB\u53D6 API Key"] })) : keys.length === 0 ? (_jsx("p", { className: "py-2 text-xs text-muted-foreground", children: "\u5C1A\u672A\u7B7E\u53D1 API Key" })) : (_jsx("ul", { "aria-label": "API Key \u5217\u8868", className: "rounded-xl border border-border/70", children: keys.map((record) => (_jsx(AiGatewayKeyRow, { record: record, busy: Boolean(busyKeyId), onDestroy: () => void destroy(record) }, record.id))) })), _jsxs("details", { className: "text-xs text-muted-foreground", children: [_jsx("summary", { className: "w-fit cursor-pointer", children: "\u63A5\u5165\u4FE1\u606F" }), _jsx("div", { className: "mt-2 space-y-3", children: _jsxs("section", { className: "space-y-2", "aria-labelledby": "xpod-access-info", children: [_jsx("h4", { id: "xpod-access-info", className: "text-sm font-medium text-foreground", children: "Xpod \u63A5\u5165\u4FE1\u606F" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "API Key \u662F\u7B7E\u53D1\u7ED9\u5BA2\u6237\u7AEF\u5E94\u7528\u7684 CSS \u5BA2\u6237\u7AEF\u51ED\u636E\uFF1BPod \u53EA\u8BB0\u5F55\u5B83\u7ED1\u5B9A\u5230\u54EA\u4E2A\u5BA2\u6237\u7AEF\uFF0C\u4E0D\u4FDD\u5B58 Key \u660E\u6587\u3002" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "\u540C\u4E00\u4E2A API Key \u652F\u6301\u4EE5\u4E0B\u517C\u5BB9\u534F\u8BAE\uFF0C\u6309\u5BA2\u6237\u7AEF\u9009\u62E9\u5E76\u590D\u5236\u5BF9\u5E94\u5730\u5740\uFF1A" }), _jsx(AiEndpointList, { endpoints: xpodProtocolEndpoints(client.apiBase), copy: true, display: "protocol" })] }) })] })] }), _jsx(AiGatewayModelsSection, { models: gatewayModels, selection: modelSelection }), _jsx(Dialog, { open: showCreate, onOpenChange: (open) => { if (!open && (creating || applying))
232
228
  return; setShowCreate(open); }, children: _jsxs(DialogContent, { className: "sm:max-w-md", "aria-describedby": undefined, children: [_jsx(DialogHeader, { children: _jsx(DialogTitle, { children: issued ? 'API Key 已签发' : '新建 API Key' }) }), issued && issuedClient ? (_jsxs("div", { className: "space-y-5", children: [_jsxs("div", { className: "space-y-1.5", children: [_jsxs("p", { className: "text-sm", children: ["\u5DF2\u7B7E\u53D1\u300C", issued.name || '未命名 API Key', "\u300D\uFF0C\u7528\u9014\uFF1A", AI_CLIENT_LABELS[issuedClient], "\u3002"] }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Xpod \u4E0D\u4FDD\u5B58 Key \u660E\u6587\uFF0C\u8BF7\u7ACB\u5373\u590D\u5236\u6216\u76F4\u63A5\u5E94\u7528\u5230\u5BA2\u6237\u7AEF\uFF1B\u79BB\u5F00\u672C\u6B21\u4F1A\u8BDD\u540E\u65E0\u6CD5\u518D\u6B21\u83B7\u53D6\u3002" })] }), issued.maskedHint ? (_jsx("code", { className: "block truncate rounded-md border border-border/60 bg-muted/30 px-3 py-2 font-mono text-xs text-muted-foreground", children: issued.maskedHint })) : null, !clientConfigurationBridge ? (_jsx("p", { className: "text-xs text-muted-foreground", children: "\u5F53\u524D Web \u73AF\u5883\u65E0\u6CD5\u81EA\u52A8\u5199\u5165\u5BA2\u6237\u7AEF\u914D\u7F6E\uFF0C\u8BF7\u590D\u5236\u540E\u624B\u52A8\u7C98\u8D34\uFF1B\u81EA\u52A8\u5E94\u7528\u9700\u8981\u672C\u673A\u8FDE\u63A5\u3002" })) : null, error ? _jsx("p", { role: "alert", className: "text-sm text-destructive", children: error }) : null, _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(AiCopyButton, { value: () => sessionPlaintext(issued, UNPERSISTED_COPY_MESSAGE), label: "API Key", text: "\u590D\u5236 API Key", disabled: applying, iconClassName: "mr-1.5 h-3.5 w-3.5", copiedIconClassName: "mr-1.5 h-3.5 w-3.5 text-emerald-600", onError: (cause) => setError(errorMessage(cause)) }), _jsx(AiCopyButton, { value: () => manualConfigurationText(issuedClient, client.apiBase, sessionPlaintext(issued, UNPERSISTED_COPY_MESSAGE)), label: `${AI_CLIENT_LABELS[issuedClient]} 配置`, text: `复制 ${AI_CLIENT_LABELS[issuedClient]} 配置`, disabled: applying, iconClassName: "mr-1.5 h-3.5 w-3.5", copiedIconClassName: "mr-1.5 h-3.5 w-3.5 text-emerald-600", onError: (cause) => setError(errorMessage(cause)) }), clientConfigurationBridge ? (appliedClient ? (_jsxs("span", { role: "status", className: "inline-flex items-center gap-1 text-xs text-muted-foreground", children: [_jsx(Check, { "aria-hidden": "true", className: "h-3.5 w-3.5" }), "\u5DF2\u5E94\u7528\u5230 ", AI_CLIENT_LABELS[appliedClient]] })) : (_jsxs(Button, { type: "button", size: "sm", disabled: applying, "aria-label": `应用到 ${AI_CLIENT_LABELS[issuedClient]}`, onClick: () => void apply(), children: [applying ? _jsx(Loader2, { "aria-hidden": "true", className: "mr-2 h-4 w-4 animate-spin" }) : null, applying ? '正在应用…' : `应用到 ${AI_CLIENT_LABELS[issuedClient]}`] }))) : null] }), _jsxs(DialogFooter, { children: [_jsx(Button, { type: "button", variant: "ghost", disabled: applying, onClick: beginAnother, children: "\u518D\u5EFA\u4E00\u4E2A" }), _jsx(Button, { type: "button", variant: "outline", onClick: () => setShowCreate(false), children: "\u5B8C\u6210" })] })] })) : (_jsxs("form", { className: "space-y-5", onSubmit: (event) => { event.preventDefault(); if (!creating)
233
229
  void create(); }, children: [_jsxs("label", { className: "block space-y-2", children: [_jsx("span", { className: "text-sm font-medium", children: "\u540D\u79F0" }), _jsx(Input, { autoFocus: true, "aria-label": "API Key \u540D\u79F0", value: name, disabled: creating, onChange: (event) => setName(event.target.value) })] }), _jsxs("label", { className: "block space-y-2", children: [_jsx("span", { className: "text-sm font-medium", children: "\u7528\u9014" }), _jsxs("select", { "aria-label": "API Key \u7528\u9014", className: SELECT_CLASS, value: purpose, disabled: creating, onChange: (event) => setPurpose(event.target.value), children: [_jsx("option", { value: "", disabled: true, children: "\u9009\u62E9\u5BA2\u6237\u7AEF\u5E94\u7528" }), AI_CONNECTIONS_CLIENTS.map((clientId) => (_jsx("option", { value: clientId, children: AI_CLIENT_LABELS[clientId] }, clientId)))] })] }), _jsx("p", { className: "text-xs text-muted-foreground", children: "\u7528\u9014\u5728\u521B\u5EFA\u65F6\u786E\u5B9A\uFF0CKey \u4F1A\u7ED1\u5B9A\u5230\u8BE5\u5BA2\u6237\u7AEF\u5E94\u7528\u3002" }), error ? _jsx("p", { role: "alert", className: "text-sm text-destructive", children: error }) : null, _jsxs(DialogFooter, { children: [_jsx(Button, { type: "button", variant: "outline", disabled: creating, onClick: () => setShowCreate(false), children: "\u53D6\u6D88" }), _jsxs(Button, { type: "submit", "aria-label": "\u521B\u5EFA API Key", disabled: creating || !name.trim() || !purpose, children: [creating ? _jsx(Loader2, { "aria-hidden": "true", className: "mr-2 h-4 w-4 animate-spin" }) : null, creating ? '正在创建…' : '创建 API Key'] })] })] }))] }) })] }) }));
234
230
  }
@@ -25,10 +25,6 @@ export interface AiProviderDefinition {
25
25
  export declare const PROVIDERS: AiProviderDefinition[];
26
26
  export type ProviderProductState = 'loading' | 'unconfigured' | 'configured' | 'connected' | 'attention';
27
27
  export declare const AI_CONNECTIONS_PINNED_SECTIONS: readonly [{
28
- readonly id: "clients";
29
- readonly label: "连接客户端";
30
- readonly title: "CONNECT CLIENT";
31
- }, {
32
28
  readonly id: "keys";
33
29
  readonly label: "Xpod";
34
30
  readonly title: "API KEYS";
@@ -23,8 +23,6 @@ export const PROVIDERS = [
23
23
  { id: 'custom', name: 'Custom', description: '任意 OpenAI 或 Anthropic 兼容服务,自填地址与 API Key。', homeUrl: 'https://undefineds.co', apiKeyPlaceholder: 'sk-...', defaultBaseUrl: 'https://example.com/v1' },
24
24
  ];
25
25
  export const AI_CONNECTIONS_PINNED_SECTIONS = [
26
- // §7.3:入口以"把客户端接上"的任务开场,密钥管理紧随其后
27
- { id: 'clients', label: '连接客户端', title: 'CONNECT CLIENT' },
28
26
  { id: 'keys', label: 'Xpod', title: 'API KEYS' },
29
27
  ];
30
28
  /**
@@ -127,7 +125,7 @@ export function createAiConnectionsController(host) {
127
125
  authenticatedFetch: host.solid.session.fetch,
128
126
  }), host.capabilities.aiClientCredentials), host.capabilities.aiConnectionsPodStore, liveCredentials, beginProviderLoad)
129
127
  : null;
130
- let selectedSection = 'clients';
128
+ let selectedSection = 'keys';
131
129
  let selectedProvider = 'openai';
132
130
  let selectedCredentialId;
133
131
  let searchQuery = '';
@@ -0,0 +1,19 @@
1
+ import { PodColumnBase } from './schema';
2
+ export type AggregateFunction = 'count' | 'sum' | 'avg' | 'min' | 'max';
3
+ export interface AggregateExpression {
4
+ kind: 'aggregate';
5
+ func: AggregateFunction;
6
+ column?: PodColumnBase | string;
7
+ distinct?: boolean;
8
+ }
9
+ interface AggregateOptions {
10
+ distinct?: boolean;
11
+ }
12
+ export declare function count(column?: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
13
+ export declare function sum(column: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
14
+ export declare function avg(column: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
15
+ export declare function min(column: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
16
+ export declare function max(column: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
17
+ export declare function isAggregateExpression(value: unknown): value is AggregateExpression;
18
+ export {};
19
+ //# sourceMappingURL=aggregates.d.ts.map
@@ -0,0 +1,66 @@
1
+ import { SQL } from 'drizzle-orm';
2
+ import { PodColumnBase, PodTable } from './schema';
3
+ import { SPARQLQuery } from './sparql/types';
4
+ import { SelectQueryPlan } from './select-plan';
5
+ import { QueryCondition } from './query-conditions';
6
+ import type { UriResolver } from './uri';
7
+ export type { SPARQLQuery };
8
+ interface SimpleSelectOperation {
9
+ table: PodTable;
10
+ where?: Record<string, unknown>;
11
+ limit?: number;
12
+ offset?: number;
13
+ orderBy?: Array<{
14
+ column: string;
15
+ direction: 'asc' | 'desc';
16
+ }>;
17
+ distinct?: boolean;
18
+ }
19
+ interface InsertPlanInput {
20
+ table: PodTable;
21
+ rows: Array<Record<string, unknown>>;
22
+ }
23
+ /**
24
+ * Table registry context for URI resolution
25
+ */
26
+ export interface TableRegistryContext {
27
+ tableRegistry: Map<string, PodTable[]>;
28
+ tableNameRegistry: Map<string, PodTable>;
29
+ baseUri?: string;
30
+ record?: Record<string, unknown>;
31
+ currentTable?: PodTable;
32
+ }
33
+ export declare class ASTToSPARQLConverter {
34
+ private podUrl;
35
+ private webId?;
36
+ private selectBuilder;
37
+ private updateBuilder;
38
+ private expressionBuilder;
39
+ private tableContext?;
40
+ private uriResolver;
41
+ private prefixes;
42
+ constructor(podUrl: string, webId?: string | undefined, uriResolver?: UriResolver);
43
+ /**
44
+ * Set table registry for URI link resolution
45
+ */
46
+ setTableRegistry(tableRegistry: Map<string, PodTable[]>, tableNameRegistry: Map<string, PodTable>, baseUri?: string): void;
47
+ convertSelect(ast: Record<string, unknown>, table: PodTable, targetGraph?: string, fromSources?: string[], allowGraphVariable?: boolean): SPARQLQuery;
48
+ buildWhereClauseForCondition(whereAst: QueryCondition, table: PodTable): string;
49
+ convertSelectPlan(plan: SelectQueryPlan, targetGraph?: string, fromSources?: string[], allowGraphVariable?: boolean): SPARQLQuery;
50
+ convertSimpleSelect(operation: SimpleSelectOperation, targetGraph?: string, fromSources?: string[], allowGraphVariable?: boolean): SPARQLQuery;
51
+ convertInsert(valuesOrPlan: Array<Record<string, unknown>> | InsertPlanInput, table?: PodTable, targetGraph?: string): SPARQLQuery;
52
+ convertUpdate(setData: Record<string, unknown>, whereConditions: QueryCondition | Record<string, unknown>, table: PodTable, targetGraph?: string): SPARQLQuery;
53
+ convertDelete(whereConditions: QueryCondition | Record<string, unknown>, table: PodTable, targetGraph?: string): SPARQLQuery;
54
+ getPrefixes(): Record<string, string>;
55
+ addPrefix(prefix: string, uri: string): void;
56
+ getPredicateForColumnPublic(column: PodColumnBase | string | Record<string, unknown>, table: PodTable): string;
57
+ formatLiteralValue(value: unknown, column?: PodColumnBase | Record<string, unknown>): string | string[];
58
+ generateSubjectUri(record: Record<string, unknown>, table: PodTable): string;
59
+ parseDrizzleAST(sql: SQL, _table?: PodTable): {
60
+ type: 'select';
61
+ columns: '*';
62
+ where: Record<string, never>;
63
+ };
64
+ private parseWhereClause;
65
+ }
66
+ //# sourceMappingURL=ast-to-sparql.d.ts.map
@@ -0,0 +1,40 @@
1
+ import { PodTable, PodTableOptions } from './schema';
2
+ type AnyTypedField = TypedField<string>;
3
+ type TypedFieldMap = Record<string, AnyTypedField>;
4
+ export interface TypedField<T extends string> {
5
+ name: T;
6
+ predicate: string;
7
+ type: 'string' | 'number' | 'boolean' | 'Date';
8
+ primaryKey?: boolean;
9
+ }
10
+ export type TypedTableDefinition<T extends TypedFieldMap> = {
11
+ [K in keyof T]: T[K];
12
+ };
13
+ export declare function createTypedTable<T extends TypedFieldMap>(name: string, definition: TypedTableDefinition<T>, options: PodTableOptions): PodTable;
14
+ export declare function field<T extends string>(name: T, predicate: string, type: 'string' | 'number' | 'boolean' | 'Date', options?: {
15
+ primaryKey?: boolean;
16
+ }): TypedField<T>;
17
+ export declare const CommonFields: {
18
+ readonly name: (predicate?: string) => TypedField<"name">;
19
+ readonly email: (predicate?: string) => TypedField<"email">;
20
+ readonly age: (predicate?: string) => TypedField<"age">;
21
+ readonly dateCreated: (predicate?: string) => TypedField<"dateCreated">;
22
+ readonly isActive: (predicate?: string) => TypedField<"isActive">;
23
+ readonly url: (predicate?: string) => TypedField<"url">;
24
+ readonly description: (predicate?: string) => TypedField<"description">;
25
+ readonly identifier: (predicate?: string) => TypedField<"identifier">;
26
+ };
27
+ export declare class TypedTableBuilder<T extends TypedFieldMap> {
28
+ private name;
29
+ private options;
30
+ private definition;
31
+ constructor(name: string, options: PodTableOptions, definition?: TypedTableDefinition<T>);
32
+ addField<K extends string>(fieldDef: TypedField<K>): TypedTableBuilder<T & Record<K, TypedField<K>>>;
33
+ build(): PodTable;
34
+ }
35
+ export declare function typedTable(name: string, options: PodTableOptions): TypedTableBuilder<Record<string, never>>;
36
+ export type TypedTableResult<T extends TypedFieldMap> = {
37
+ [K in keyof T]: T[K] extends TypedField<string> ? T[K]['type'] extends 'string' ? string : T[K]['type'] extends 'number' ? number : T[K]['type'] extends 'boolean' ? boolean : T[K]['type'] extends 'Date' ? Date : never : never;
38
+ };
39
+ export {};
40
+ //# sourceMappingURL=compile-time-types.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare const applyComunicaPatches: (requireModule?: NodeRequire | null) => boolean;
2
+ //# sourceMappingURL=comunica-patch.d.ts.map
@@ -0,0 +1,110 @@
1
+ import { SolidDataset, Thing } from '@inrupt/solid-client';
2
+ /**
3
+ * 合并策略类型
4
+ */
5
+ export type MergeStrategy = 'last-write-wins' | 'field-level-merge' | 'timestamp-based' | 'user-resolution';
6
+ /**
7
+ * 冲突解析配置
8
+ */
9
+ export interface ConflictResolutionConfig {
10
+ /** 最大重试次数 */
11
+ maxRetries?: number;
12
+ /** 合并策略 */
13
+ strategy?: MergeStrategy;
14
+ /** 用户自定义解析函数(当 strategy = 'user-resolution' 时使用) */
15
+ resolver?: (local: Thing, remote: Thing, predicates: string[]) => Thing;
16
+ /** 重试延迟(毫秒) */
17
+ retryDelay?: number;
18
+ /** 是否启用日志 */
19
+ logging?: boolean;
20
+ }
21
+ /**
22
+ * 冲突解析结果
23
+ */
24
+ export interface ConflictResolutionResult {
25
+ success: boolean;
26
+ retries: number;
27
+ strategy?: string;
28
+ error?: string;
29
+ }
30
+ /**
31
+ * 并发写入冲突解析器
32
+ *
33
+ * 处理 412 Precondition Failed 错误(ETag 不匹配),
34
+ * 通过不同的合并策略自动重试保存操作。
35
+ */
36
+ export declare class ConflictResolver {
37
+ private config;
38
+ private fetchFn;
39
+ constructor(fetchFn: typeof fetch, config?: ConflictResolutionConfig);
40
+ /**
41
+ * 执行带冲突解析的保存操作
42
+ *
43
+ * @param resourceUrl - 资源 URL
44
+ * @param modifier - 修改函数,接收当前 dataset 并返回修改后的 dataset
45
+ * @returns 解析结果
46
+ */
47
+ saveWithRetry(resourceUrl: string, modifier: (dataset: SolidDataset) => SolidDataset | Promise<SolidDataset>): Promise<ConflictResolutionResult>;
48
+ /**
49
+ * 执行带字段级合并的保存操作
50
+ *
51
+ * @param resourceUrl - 资源 URL
52
+ * @param thingUrl - Thing URL
53
+ * @param localChanges - 本地修改的 Thing
54
+ * @param predicates - 需要更新的谓词列表
55
+ * @returns 解析结果
56
+ */
57
+ saveThingWithMerge(resourceUrl: string, thingUrl: string, localChanges: Thing, predicates: string[]): Promise<ConflictResolutionResult>;
58
+ /**
59
+ * 合并两个 Thing
60
+ *
61
+ * @param local - 本地版本(包含我们的修改)
62
+ * @param remote - 远程版本(最新状态)
63
+ * @param predicates - 需要合并的谓词列表
64
+ * @returns 合并后的 Thing
65
+ */
66
+ private mergeThings;
67
+ /**
68
+ * 字段级合并
69
+ *
70
+ * 策略:
71
+ * - 对于 predicates 中的谓词,使用本地版本
72
+ * - 对于其他谓词,保留远程版本
73
+ */
74
+ private fieldLevelMerge;
75
+ /**
76
+ * 基于时间戳的合并
77
+ *
78
+ * 策略:
79
+ * - 如果有 updatedAt 字段,比较时间戳,选择最新的
80
+ * - 否则 fallback 到 field-level-merge
81
+ */
82
+ private timestampBasedMerge;
83
+ /**
84
+ * 获取 Thing 的 updatedAt 时间戳
85
+ */
86
+ private getUpdatedAt;
87
+ /**
88
+ * 获取谓词的值(支持多种类型)
89
+ */
90
+ private getPredicateValue;
91
+ /**
92
+ * 设置谓词的值(根据类型)
93
+ *
94
+ * 注意:这是简化实现,实际使用时应该用 buildThing 模式
95
+ */
96
+ private setPredicateValue;
97
+ /**
98
+ * 延迟函数
99
+ */
100
+ private delay;
101
+ }
102
+ /**
103
+ * 便捷函数:使用默认配置创建冲突解析器
104
+ */
105
+ export declare function createConflictResolver(fetchFn: typeof fetch, config?: ConflictResolutionConfig): ConflictResolver;
106
+ /**
107
+ * 便捷函数:执行单次带重试的保存操作
108
+ */
109
+ export declare function saveWithConflictResolution(fetchFn: typeof fetch, resourceUrl: string, modifier: (dataset: SolidDataset) => SolidDataset | Promise<SolidDataset>, config?: ConflictResolutionConfig): Promise<ConflictResolutionResult>;
110
+ //# sourceMappingURL=conflict-resolution.d.ts.map
@@ -0,0 +1,18 @@
1
+ import { PodTable } from '../schema';
2
+ import { DataDiscovery, DataLocation, DiscoverOptions, RegisterOptions, DataRegistrationInfo } from './types';
3
+ export declare class CompositeDiscovery implements DataDiscovery {
4
+ private strategies;
5
+ constructor(strategies: DataDiscovery[]);
6
+ register(table: PodTable, options?: RegisterOptions): Promise<void>;
7
+ discover(rdfClass: string, options?: DiscoverOptions): Promise<DataLocation[]>;
8
+ isRegistered(rdfClass: string): Promise<boolean>;
9
+ /**
10
+ * 获取所有数据注册 - 聚合所有支持此方法的策略结果
11
+ */
12
+ discoverAll(): Promise<DataRegistrationInfo[]>;
13
+ /**
14
+ * 按应用 ID 发现数据位置 - 聚合所有支持此方法的策略结果
15
+ */
16
+ discoverByApp(appId: string): Promise<DataLocation[]>;
17
+ }
18
+ //# sourceMappingURL=composite-discovery.d.ts.map
@@ -0,0 +1,7 @@
1
+ export * from './types';
2
+ export * from './typeindex-discovery';
3
+ export * from './interop-discovery';
4
+ export * from './interop-types';
5
+ export * from './composite-discovery';
6
+ export * from './provider-cache';
7
+ //# sourceMappingURL=index.d.ts.map