@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.
- package/config/components-ignore.json +8 -13
- package/dist/api/ai-gateway/pod/HostedPodRoute.d.ts +7 -0
- package/dist/api/ai-gateway/pod/HostedPodRoute.js +68 -1
- package/dist/api/chatkit/pod-store.js +14 -0
- package/dist/api/container/common.js +6 -3
- package/dist/api/container/routes.js +9 -6
- package/dist/api/handlers/AgentWakeHandler.d.ts +10 -0
- package/dist/api/handlers/AgentWakeHandler.js +62 -0
- package/dist/api/handlers/AiGatewayManagementHandler.js +43 -0
- package/dist/api/handlers/MatrixHandler.d.ts +3 -0
- package/dist/api/handlers/MatrixHandler.js +120 -105
- package/dist/api/handlers/NetworkSettingsHandler.d.ts +1 -31
- package/dist/api/handlers/NetworkSettingsHandler.js +3 -76
- package/dist/api/handlers/PodAccessFailureResponse.d.ts +1 -2
- package/dist/api/handlers/PodAccessFailureResponse.js +5 -4
- package/dist/api/handlers/ReachabilityHandler.js +0 -5
- package/dist/api/handlers/readBoundedRequestBody.d.ts +3 -0
- package/dist/api/handlers/readBoundedRequestBody.js +37 -0
- package/dist/api/matrix/MatrixError.d.ts +6 -0
- package/dist/api/matrix/MatrixError.js +14 -0
- package/dist/api/matrix/MatrixEventJournal.d.ts +39 -0
- package/dist/api/matrix/MatrixEventJournal.js +169 -0
- package/dist/api/matrix/MatrixPodResolver.d.ts +12 -0
- package/dist/api/matrix/MatrixPodResolver.js +61 -0
- package/dist/api/matrix/PodMatrixStore.d.ts +58 -12
- package/dist/api/matrix/PodMatrixStore.js +527 -204
- package/dist/api/matrix/types.d.ts +15 -0
- package/dist/api/reconciler/AgentWakeRuntimeService.d.ts +66 -0
- package/dist/api/reconciler/AgentWakeRuntimeService.js +79 -0
- package/dist/api/reconciler/AgentWakeRuntimeService.jsonld +173 -0
- package/dist/api/reconciler/ServerGroupReconcilerService.d.ts +3 -0
- package/dist/api/reconciler/ServerGroupReconcilerService.js +12 -4
- package/dist/api/reconciler/ServerGroupReconcilerService.jsonld +8 -0
- package/dist/api/reconciler/WakeAgentQueue.d.ts +32 -2
- package/dist/api/reconciler/WakeAgentQueue.js +183 -66
- package/dist/api/reconciler/WakeAgentQueue.jsonld +152 -6
- package/dist/api/reconciler/coordination.d.ts +5 -0
- package/dist/api/reconciler/coordination.js +1 -1
- package/dist/api/reconciler/coordination.jsonld +20 -0
- package/dist/api/reconciler/index.d.ts +1 -0
- package/dist/api/reconciler/index.js +1 -0
- package/dist/api/runs/store.d.ts +4 -0
- package/dist/api/runtime.js +21 -44
- package/dist/cli/commands/start.d.ts +18 -11
- package/dist/cli/commands/start.js +49 -44
- package/dist/cli/commands/stop.js +1 -7
- package/dist/components/components.jsonld +1 -1
- package/dist/components/context.jsonld +52 -61
- package/dist/dns/cloudflare/CloudflareDnsProvider.d.ts +1 -10
- package/dist/dns/cloudflare/CloudflareDnsProvider.js +28 -59
- package/dist/edge/EdgeNodeAgent.d.ts +0 -5
- package/dist/edge/EdgeNodeAgent.js +0 -8
- package/dist/edge/acme/AcmeCertificateManager.d.ts +0 -24
- package/dist/edge/acme/AcmeCertificateManager.js +7 -75
- package/dist/edge/acme/AcmeCertificateManager.jsonld +0 -24
- package/dist/edge/frp/FrpcProcessManager.d.ts +0 -16
- package/dist/edge/frp/FrpcProcessManager.js +13 -73
- package/dist/edge/reachability/ManagedClientFetch.d.ts +0 -2
- package/dist/edge/reachability/ManagedClientFetch.js +12 -24
- package/dist/edge/reachability/ManagedClientFetch.jsonld +0 -4
- package/dist/edge/reachability/ManagedRouteSelector.d.ts +0 -2
- package/dist/edge/reachability/ManagedRouteSelector.js +13 -7
- package/dist/edge/reachability/ManagedRouteSelector.jsonld +0 -4
- package/dist/edge/reachability/P2PDataPlane.d.ts +4 -67
- package/dist/edge/reachability/P2PDataPlane.js +15 -156
- package/dist/edge/reachability/P2PDataPlane.jsonld +0 -64
- package/dist/edge/reachability/P2PSignalingClient.d.ts +0 -2
- package/dist/edge/reachability/P2PSignalingClient.js +0 -1
- package/dist/edge/reachability/P2PSignalingClient.jsonld +0 -4
- package/dist/edge/reachability/ReachabilitySessionService.d.ts +0 -19
- package/dist/edge/reachability/ReachabilitySessionService.js +52 -122
- package/dist/edge/reachability/ReachabilitySessionService.jsonld +0 -26
- package/dist/edge/reachability/TcpP2PDataPlaneTransport.d.ts +4 -28
- package/dist/edge/reachability/TcpP2PDataPlaneTransport.js +32 -540
- package/dist/edge/reachability/TcpP2PDataPlaneTransport.jsonld +0 -51
- package/dist/edge/reachability/TcpP2PSignalingSession.d.ts +0 -7
- package/dist/edge/reachability/TcpP2PSignalingSession.js +1 -25
- package/dist/edge/reachability/TcpP2PSignalingSession.jsonld +0 -12
- package/dist/edge/reachability/index.d.ts +0 -1
- package/dist/edge/reachability/index.js +0 -1
- package/dist/edge/reachability/types.d.ts +0 -8
- package/dist/edge/reachability/types.jsonld +0 -8
- package/dist/identity/drizzle/EdgeNodeRepository.d.ts +0 -12
- package/dist/identity/drizzle/EdgeNodeRepository.js +0 -37
- package/dist/identity/drizzle/PodLookupRepository.js +5 -4
- package/dist/identity/drizzle/db.d.ts +0 -8
- package/dist/identity/drizzle/db.js +0 -17
- package/dist/runtime/GatewayAdminProxyAuth.d.ts +2 -2
- package/dist/runtime/Proxy.js +2 -5
- package/dist/runtime/css-process.d.ts +3 -3
- package/dist/runtime/index.d.ts +1 -7
- package/dist/runtime/index.js +1 -21
- package/dist/runtime/port-finder.d.ts +3 -27
- package/dist/runtime/port-finder.js +22 -52
- package/dist/runtime/safe-env.d.ts +1 -1
- package/dist/runtime/user-env.d.ts +2 -2
- package/dist/supervisor/Supervisor.d.ts +3 -26
- package/dist/supervisor/Supervisor.js +23 -130
- package/dist/supervisor/types.d.ts +1 -14
- package/dist/test-utils/local-managed-client-p2p-e2e-smoke.js +0 -15
- package/dist/tunnel/LocalTunnelProvider.d.ts +0 -7
- package/dist/tunnel/LocalTunnelProvider.js +3 -11
- package/dist/tunnel/LocalTunnelProvider.jsonld +0 -39
- package/dist/tunnel/NgrokTunnelProvider.d.ts +0 -2
- package/dist/tunnel/NgrokTunnelProvider.js +1 -3
- package/dist/tunnel/NgrokTunnelProvider.jsonld +0 -39
- package/dist/tunnel/SakuraFrpTunnelProvider.d.ts +1 -3
- package/dist/tunnel/SakuraFrpTunnelProvider.js +3 -7
- package/dist/tunnel/TunnelLifecycle.d.ts +1 -9
- package/dist/tunnel/TunnelLifecycle.js +3 -24
- package/dist/tunnel/TunnelProviderCatalog.d.ts +0 -32
- package/dist/tunnel/TunnelProviderCatalog.js +0 -43
- package/node_modules/@solid/access-token-verifier/node_modules/n3/browser/n3.min.js +1 -0
- package/node_modules/@solid/community-server/node_modules/n3/browser/n3.min.js +1 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiClientConfigurationSection.js +10 -39
- package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsList.js +4 -15
- package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsPanel.d.ts +1 -1
- package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsPanel.js +1 -4
- package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeyRow.d.ts +1 -5
- package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeyRow.js +2 -2
- package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeysSection.js +1 -5
- package/node_modules/@undefineds.co/ai-connections/dist/controller.d.ts +0 -4
- package/node_modules/@undefineds.co/ai-connections/dist/controller.js +1 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/aggregates.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/ast-to-sparql.d.ts +66 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/compile-time-types.d.ts +40 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/comunica-patch.d.ts +2 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/conflict-resolution.d.ts +110 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/composite-discovery.d.ts +18 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/index.d.ts +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-discovery.d.ts +36 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-tables.d.ts +37 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/interop-types.d.ts +36 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/provider-cache.d.ts +99 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/typeindex-discovery.d.ts +32 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/types.d.ts +132 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/exact-records.d.ts +21 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/index.d.ts +14 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts +76 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.d.ts +53 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor-types.d.ts +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.d.ts +73 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts +31 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/strategy-factory.d.ts +42 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/types.d.ts +85 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/expressions.d.ts +40 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/executor.d.ts +98 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/index.d.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/federated/types.d.ts +69 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/base-channel.d.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/index.d.ts +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/sse-channel.d.ts +50 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/channels/websocket-channel.d.ts +16 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/index.d.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts +88 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/types.d.ts +228 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/order-by.d.ts +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.d.ts +548 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.d.ts +324 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-discovery.d.ts +20 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.d.ts +52 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/profile-manager.d.ts +90 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/default-id-template.d.ts +10 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/delete-query-builder.d.ts +31 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/helpers.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/index.d.ts +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.d.ts +37 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts +150 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/types.d.ts +40 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/update-query-builder.d.ts +34 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-conditions.d.ts +60 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts +8 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-constants.d.ts +16 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/rdf-schema-parser.d.ts +34 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/repository.d.ts +78 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.d.ts +31 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.d.ts +141 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.d.ts +36 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/factory.d.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.d.ts +34 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/index.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/types.d.ts +57 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.d.ts +60 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/columns.d.ts +74 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/defs.d.ts +101 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.d.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/index.d.ts +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.d.ts +118 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/relations.d.ts +26 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.d.ts +22 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/types.d.ts +45 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/utils.d.ts +15 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/select-plan.d.ts +50 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/services/pod-services.d.ts +43 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/generator.d.ts +12 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/index.d.ts +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/manager.d.ts +45 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl-parser.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/shacl.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/types.d.ts +149 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/shape/validator.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/solid-n3-client.d.ts +86 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.d.ts +56 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/select-builder.d.ts +44 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/update-builder.d.ts +33 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/helpers.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/types.d.ts +10 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-engine.d.ts +16 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts +40 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/index.d.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.d.ts +116 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/types.d.ts +97 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/builder.d.ts +86 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/array.d.ts +23 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/default.d.ts +20 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/index.d.ts +35 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.d.ts +35 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inverse.d.ts +26 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/uri.d.ts +28 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/index.d.ts +9 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/types.d.ts +156 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/typeindex-manager.d.ts +130 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/types.d.ts +57 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/index.d.ts +8 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.d.ts +153 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/types.d.ts +154 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/debug-logger.d.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/origin-auth.d.ts +28 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/utils/pod-root.d.ts +15 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/zod-integration.d.ts +97 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.d.ts +60 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/index.d.ts +31 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.d.ts +140 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/solid.d.ts +21 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/test-utils/real-test-helpers.d.ts +5 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/types/sparql-types.d.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/find-by-iri.d.ts +11 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/helpers.d.ts +17 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/namespace.d.ts +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-helpers.d.ts +17 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/rdf-validation.d.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/thing-operations.d.ts +28 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/webid-resolver.d.ts +23 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/index.ts +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/locales/index.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/mini/index.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/ZodError.ts +330 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/errors.ts +13 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/external.ts +6 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/helpers/util.ts +224 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/index.ts +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/locales/en.ts +124 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/standard-schema.ts +113 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/array.test.ts +71 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/base.test.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/date.test.ts +32 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/default.test.ts +112 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/description.test.ts +33 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/error.test.ts +551 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/function.test.ts +261 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/map.test.ts +110 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/number.test.ts +176 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/object.test.ts +434 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/record.test.ts +171 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/set.test.ts +142 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/string.test.ts +916 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/tests/void.test.ts +15 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v3/types.ts +5138 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/checks.ts +32 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/coerce.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/compat.ts +70 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/errors.ts +82 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/external.ts +52 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/from-json-schema.ts +659 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/index.ts +5 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/iso.ts +90 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/parse.ts +82 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/schemas.ts +2672 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/assignability.test.ts +216 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/catch.test.ts +326 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/codec.test.ts +703 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/default.test.ts +409 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +197 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +694 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +807 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +895 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/global-config.test.ts +39 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +46 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/number.test.ts +325 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/object.test.ts +717 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/optional.test.ts +333 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/partial.test.ts +450 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +26 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +351 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/record.test.ts +717 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +631 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/refine.test.ts +633 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/string.test.ts +1224 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +3125 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/transform.test.ts +378 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/tuple.test.ts +496 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/union.test.ts +273 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/api.ts +1823 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/checks.ts +1293 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/config.ts +15 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/core.ts +153 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/doc.ts +44 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/errors.ts +455 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/index.ts +16 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/json-schema-processors.ts +666 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/json-schema.ts +147 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/parse.ts +195 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/regexes.ts +190 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/registries.ts +105 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/schemas.ts +4730 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/el.test.ts +215 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +105 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +125 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/to-json-schema.ts +622 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/util.ts +983 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/versions.ts +5 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/core/zsf.ts +323 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/index.ts +4 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ar.ts +115 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/az.ts +111 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/be.ts +176 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/bg.ts +128 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ca.ts +116 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/cs.ts +118 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/da.ts +123 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/de.ts +116 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/el.ts +121 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/en.ts +123 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/eo.ts +118 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/es.ts +141 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/fa.ts +126 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/fi.ts +121 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/fr.ts +132 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/he.ts +246 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/hr.ts +131 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/hu.ts +117 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/hy.ts +164 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/id.ts +115 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/index.ts +52 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/is.ts +119 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/it.ts +116 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ja.ts +114 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ka.ts +123 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/kh.ts +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/km.ts +119 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ko.ts +121 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/lt.ts +239 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/mk.ts +118 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ms.ts +115 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/nl.ts +121 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/no.ts +116 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ota.ts +117 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/pl.ts +118 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ps.ts +126 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/pt.ts +116 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ro.ts +129 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ru.ts +176 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/sl.ts +118 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/sv.ts +119 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ta.ts +118 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/th.ts +119 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/tr.ts +111 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ua.ts +7 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/uk.ts +117 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/ur.ts +119 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/uz.ts +117 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/vi.ts +117 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/yo.ts +124 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/checks.ts +32 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/coerce.ts +27 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/external.ts +41 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/index.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/iso.ts +66 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/parse.ts +14 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/schemas.ts +1947 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/codec.test.ts +548 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/index.test.ts +993 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +325 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4/mini/tests/string.test.ts +352 -0
- package/node_modules/@undefineds.co/drizzle-solid/node_modules/zod/src/v4-mini/index.ts +3 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/layout.d.ts +0 -39
- package/node_modules/@undefineds.co/extension-sdk/dist/layout.js +0 -40
- package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.d.ts +1 -13
- package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.js +3 -11
- package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.d.ts +4 -13
- package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.js +11 -68
- package/node_modules/@undefineds.co/models/node_modules/n3/browser/n3.min.js +1 -0
- package/node_modules/@undefineds.co/shared-ui/dist/auth-surface.js +6 -6
- package/node_modules/@undefineds.co/shared-ui/dist/dialog.js +4 -4
- package/node_modules/@undefineds.co/shared-ui/dist/login.js +1 -1
- package/node_modules/@undefineds.co/shared-ui/dist/theme.css +79 -128
- package/node_modules/@undefineds.co/shared-ui/dist/toast.js +1 -1
- package/node_modules/@undefineds.co/shared-ui/dist/tooltip.js +1 -1
- package/node_modules/jose/dist/browser/index.js +30 -0
- package/node_modules/jose/dist/browser/jwe/compact/decrypt.js +27 -0
- package/node_modules/jose/dist/browser/jwe/compact/encrypt.js +26 -0
- package/node_modules/jose/dist/browser/jwe/flattened/decrypt.js +161 -0
- package/node_modules/jose/dist/browser/jwe/flattened/encrypt.js +153 -0
- package/node_modules/jose/dist/browser/jwe/general/decrypt.js +31 -0
- package/node_modules/jose/dist/browser/jwe/general/encrypt.js +174 -0
- package/node_modules/jose/dist/browser/jwk/embedded.js +17 -0
- package/node_modules/jose/dist/browser/jwk/thumbprint.js +53 -0
- package/node_modules/jose/dist/browser/jwks/local.js +124 -0
- package/node_modules/jose/dist/browser/jwks/remote.js +139 -0
- package/node_modules/jose/dist/browser/jws/compact/sign.js +17 -0
- package/node_modules/jose/dist/browser/jws/compact/verify.js +21 -0
- package/node_modules/jose/dist/browser/jws/flattened/sign.js +81 -0
- package/node_modules/jose/dist/browser/jws/flattened/verify.js +122 -0
- package/node_modules/jose/dist/browser/jws/general/sign.js +67 -0
- package/node_modules/jose/dist/browser/jws/general/verify.js +24 -0
- package/node_modules/jose/dist/browser/jwt/decrypt.js +23 -0
- package/node_modules/jose/dist/browser/jwt/encrypt.js +68 -0
- package/node_modules/jose/dist/browser/jwt/produce.js +75 -0
- package/node_modules/jose/dist/browser/jwt/sign.js +20 -0
- package/node_modules/jose/dist/browser/jwt/unsecured.js +32 -0
- package/node_modules/jose/dist/browser/jwt/verify.js +15 -0
- package/node_modules/jose/dist/browser/key/export.js +12 -0
- package/node_modules/jose/dist/browser/key/generate_key_pair.js +4 -0
- package/node_modules/jose/dist/browser/key/generate_secret.js +4 -0
- package/node_modules/jose/dist/browser/key/import.js +45 -0
- package/node_modules/jose/dist/browser/lib/aesgcmkw.js +16 -0
- package/node_modules/jose/dist/browser/lib/buffer_utils.js +51 -0
- package/node_modules/jose/dist/browser/lib/cek.js +20 -0
- package/node_modules/jose/dist/browser/lib/check_iv_length.js +8 -0
- package/node_modules/jose/dist/browser/lib/check_key_type.js +77 -0
- package/node_modules/jose/dist/browser/lib/check_p2s.js +6 -0
- package/node_modules/jose/dist/browser/lib/crypto_key.js +157 -0
- package/node_modules/jose/dist/browser/lib/decrypt_key_management.js +129 -0
- package/node_modules/jose/dist/browser/lib/encrypt_key_management.js +89 -0
- package/node_modules/jose/dist/browser/lib/epoch.js +1 -0
- package/node_modules/jose/dist/browser/lib/format_pem.js +4 -0
- package/node_modules/jose/dist/browser/lib/invalid_key_input.js +31 -0
- package/node_modules/jose/dist/browser/lib/is_disjoint.js +22 -0
- package/node_modules/jose/dist/browser/lib/is_jwk.js +13 -0
- package/node_modules/jose/dist/browser/lib/is_object.js +16 -0
- package/node_modules/jose/dist/browser/lib/iv.js +20 -0
- package/node_modules/jose/dist/browser/lib/jwt_claims_set.js +104 -0
- package/node_modules/jose/dist/browser/lib/private_symbols.js +1 -0
- package/node_modules/jose/dist/browser/lib/secs.js +55 -0
- package/node_modules/jose/dist/browser/lib/validate_algorithms.js +11 -0
- package/node_modules/jose/dist/browser/lib/validate_crit.js +34 -0
- package/node_modules/jose/dist/browser/package.json +1 -0
- package/node_modules/jose/dist/browser/runtime/aeskw.js +32 -0
- package/node_modules/jose/dist/browser/runtime/asn1.js +205 -0
- package/node_modules/jose/dist/browser/runtime/base64url.js +37 -0
- package/node_modules/jose/dist/browser/runtime/bogus.js +6 -0
- package/node_modules/jose/dist/browser/runtime/check_cek_length.js +8 -0
- package/node_modules/jose/dist/browser/runtime/check_key_length.js +8 -0
- package/node_modules/jose/dist/browser/runtime/decrypt.js +91 -0
- package/node_modules/jose/dist/browser/runtime/digest.js +6 -0
- package/node_modules/jose/dist/browser/runtime/ecdhes.js +47 -0
- package/node_modules/jose/dist/browser/runtime/encrypt.js +76 -0
- package/node_modules/jose/dist/browser/runtime/fetch_jwks.js +34 -0
- package/node_modules/jose/dist/browser/runtime/generate.js +143 -0
- package/node_modules/jose/dist/browser/runtime/get_sign_verify_key.js +24 -0
- package/node_modules/jose/dist/browser/runtime/is_key_like.js +8 -0
- package/node_modules/jose/dist/browser/runtime/jwk_to_key.js +104 -0
- package/node_modules/jose/dist/browser/runtime/key_to_jwk.js +21 -0
- package/node_modules/jose/dist/browser/runtime/normalize_key.js +68 -0
- package/node_modules/jose/dist/browser/runtime/pbes2kw.js +51 -0
- package/node_modules/jose/dist/browser/runtime/random.js +2 -0
- package/node_modules/jose/dist/browser/runtime/rsaes.js +37 -0
- package/node_modules/jose/dist/browser/runtime/runtime.js +1 -0
- package/node_modules/jose/dist/browser/runtime/sign.js +11 -0
- package/node_modules/jose/dist/browser/runtime/subtle_dsa.js +28 -0
- package/node_modules/jose/dist/browser/runtime/subtle_rsaes.js +12 -0
- package/node_modules/jose/dist/browser/runtime/timing_safe_equal.js +19 -0
- package/node_modules/jose/dist/browser/runtime/verify.js +16 -0
- package/node_modules/jose/dist/browser/runtime/webcrypto.js +2 -0
- package/node_modules/jose/dist/browser/util/base64url.js +3 -0
- package/node_modules/jose/dist/browser/util/decode_jwt.js +32 -0
- package/node_modules/jose/dist/browser/util/decode_protected_header.js +34 -0
- package/node_modules/jose/dist/browser/util/errors.js +114 -0
- package/node_modules/jose/dist/browser/util/runtime.js +2 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/index.js +32 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/compact/decrypt.js +27 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/compact/encrypt.js +26 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/flattened/decrypt.js +166 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/flattened/encrypt.js +175 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/general/decrypt.js +31 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwe/general/encrypt.js +178 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwk/embedded.js +17 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwk/thumbprint.js +53 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwks/local.js +116 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwks/remote.js +76 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jws/compact/sign.js +17 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jws/compact/verify.js +21 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jws/flattened/sign.js +81 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jws/flattened/verify.js +115 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jws/general/sign.js +67 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jws/general/verify.js +24 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/decrypt.js +23 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/encrypt.js +68 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/produce.js +54 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/sign.js +21 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/unsecured.js +32 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/jwt/verify.js +16 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/key/export.js +12 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/key/generate_key_pair.js +4 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/key/generate_secret.js +4 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/key/import.js +50 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/aesgcmkw.js +14 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/buffer_utils.js +51 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/cek.js +20 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/check_iv_length.js +8 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/check_key_type.js +45 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/check_p2s.js +6 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/crypto_key.js +152 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/decrypt_key_management.js +127 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/encrypt_key_management.js +87 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/epoch.js +1 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/format_pem.js +4 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/invalid_key_input.js +30 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/is_disjoint.js +22 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/is_object.js +16 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/iv.js +20 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/jwt_claims_set.js +102 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/secs.js +44 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/validate_algorithms.js +11 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/lib/validate_crit.js +34 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/package.json +1 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/aeskw.js +32 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/asn1.js +202 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/base64url.js +37 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/bogus.js +6 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/check_cek_length.js +8 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/check_key_length.js +8 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/decrypt.js +85 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/digest.js +6 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/ecdhes.js +46 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/encrypt.js +68 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/fetch_jwks.js +34 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/generate.js +141 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/get_sign_verify_key.js +17 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/is_key_like.js +5 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/jwk_to_key.js +143 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/key_to_jwk.js +21 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/pbes2kw.js +51 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/random.js +2 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/rsaes.js +37 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/runtime.js +1 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/sign.js +11 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/subtle_dsa.js +26 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/subtle_rsaes.js +12 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/timing_safe_equal.js +19 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/verify.js +16 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/webcrypto.js +2 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/runtime/zlib.js +7 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/util/base64url.js +3 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/util/decode_jwt.js +32 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/util/decode_protected_header.js +34 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/util/errors.js +158 -0
- package/node_modules/openid-client/node_modules/jose/dist/browser/util/runtime.js +2 -0
- package/package.json +2 -3
- package/static/app/assets/{index-BeAi28iA.js → index-BCZVzMpj.js} +1 -1
- package/static/app/assets/inrupt-smoke.js +36 -37
- package/static/app/assets/main.css +1 -0
- package/static/app/assets/main.js +13 -12
- package/static/app/index.html +2 -2
- package/static/app/inrupt-smoke.html +1 -2
- package/static/dashboard/assets/{AiConfigContext-DelSqO6L.js → AiConfigContext-B5QP7ow2.js} +1 -1
- package/static/dashboard/assets/{AiConfigPage-dbg0aDvd.js → AiConfigPage-C_TdlUjq.js} +1 -1
- package/static/dashboard/assets/DocumentProcessingPanel-CormNOdI.js +1 -0
- package/static/dashboard/assets/IndexLifecyclePanel-S9wNNyHO.js +1 -0
- package/static/dashboard/assets/{IndexSubjectPanel-ClDgj0SY.js → IndexSubjectPanel-CofZT1oE.js} +1 -1
- package/static/dashboard/assets/ModelAssignmentsPanel-9tgOjj-y.js +1 -0
- package/static/dashboard/assets/ModelsPage-DZ46VnUh.js +11 -0
- package/static/dashboard/assets/NetworkPage-TwbIWASf.js +2 -0
- package/static/dashboard/assets/{PaneListHeader-xEjcBu9g.js → PaneListHeader-BtVnyutC.js} +1 -1
- package/static/dashboard/assets/SearchIndexingPanel-BCq_YMOP.js +1 -0
- package/static/dashboard/assets/{StatusSubjectPanel-6s3JXbOd.js → StatusSubjectPanel-DsUKTysU.js} +1 -1
- package/static/dashboard/assets/StatusWorkspace-CaVJBRqI.js +1 -0
- package/static/dashboard/assets/{SystemSettingsPage-CF_vH-qe.js → SystemSettingsPage-DRWfPjtu.js} +1 -1
- package/static/dashboard/assets/SystemSettingsSubjectPanel-CgDP7Ii2.js +33 -0
- package/static/dashboard/assets/{XpodAiConnectionsPodStore-CHM-ZwI3.js → XpodAiConnectionsPodStore-C9tHqutw.js} +1 -1
- package/static/dashboard/assets/{activity-B7UdTZ1N.js → activity-tgjewO88.js} +1 -1
- package/static/dashboard/assets/{badge-B6RuxNt1.js → badge-Czun47II.js} +1 -1
- package/static/dashboard/assets/collection-runtime-DnYlU23-.js +1 -0
- package/static/dashboard/assets/{dashboard-Dm_h60lA.js → dashboard-CF8SbVSR.js} +92 -132
- package/static/dashboard/assets/dashboard-DvuM3VTP.css +1 -0
- package/static/dashboard/assets/dialog-D-Yc_lg-.js +1 -0
- package/static/dashboard/assets/{download-BW035kpj.js → download-vFuOkjCi.js} +1 -1
- package/static/dashboard/assets/{external-link-BMrNvf3c.js → external-link-Cg_VIecD.js} +1 -1
- package/static/dashboard/assets/{index-2jlFzexm.js → index-0au0WwkE.js} +1 -1
- package/static/dashboard/assets/index-IXCNeEwi.js +41 -0
- package/static/dashboard/assets/index-YDcVky3o.js +4 -0
- package/static/dashboard/assets/{key-round-C9vxhn7T.js → key-round-9n1xgLbG.js} +1 -1
- package/static/dashboard/assets/{rotate-ccw-8Vm0-INc.js → rotate-ccw-DJ6s86DW.js} +1 -1
- package/static/dashboard/assets/{skeleton-CY_602wn.js → skeleton-Dg9HePtI.js} +1 -1
- package/static/dashboard/assets/{waypoints-DdEdgkxD.js → waypoints-uxc_qOzk.js} +1 -1
- package/static/dashboard/assets/workspace-layout-BNtAXhPW.js +1 -0
- package/static/dashboard/dashboard.html +2 -2
- package/static/settings/assets/{AiConfigContext-CR3YhTA-.js → AiConfigContext-y6ha7pGs.js} +1 -1
- package/static/settings/assets/{AiConfigPage-DnOvX2Kx.js → AiConfigPage-CIcIWdXA.js} +1 -1
- package/static/settings/assets/DocumentProcessingPanel-Oa_cxMcn.js +1 -0
- package/static/settings/assets/IndexLifecyclePanel-DlrnI0Kh.js +1 -0
- package/static/settings/assets/{IndexSubjectPanel-CP84xXye.js → IndexSubjectPanel-Dhsl0W32.js} +1 -1
- package/static/settings/assets/ModelAssignmentsPanel-CHoiRZeL.js +1 -0
- package/static/settings/assets/ModelsPage-CuNW1hGX.js +11 -0
- package/static/settings/assets/NetworkPage-BBD2Lc_P.js +2 -0
- package/static/settings/assets/{PaneListHeader-Bz0UAhZr.js → PaneListHeader-C81adSBX.js} +1 -1
- package/static/settings/assets/SearchIndexingPanel-Dc4QKWd0.js +1 -0
- package/static/settings/assets/{StatusSubjectPanel-B2Y6ib3d.js → StatusSubjectPanel-DuxOvqzS.js} +1 -1
- package/static/settings/assets/StatusWorkspace-DeD3zi3G.js +1 -0
- package/static/settings/assets/{SystemSettingsPage-BbFkv_Wn.js → SystemSettingsPage-8sHOaPb8.js} +1 -1
- package/static/settings/assets/SystemSettingsSubjectPanel-B1JXut7S.js +33 -0
- package/static/settings/assets/{XpodAiConnectionsPodStore-B11u0BOi.js → XpodAiConnectionsPodStore-G0ClZksP.js} +1 -1
- package/static/settings/assets/{activity-BE8Hz8WF.js → activity-DT8pzOea.js} +1 -1
- package/static/settings/assets/{auth-callback-5waKJF0n.js → auth-callback-1BlsOtMG.js} +1 -1
- package/static/settings/assets/{badge-xeRbYBMf.js → badge-CvKRjSY2.js} +1 -1
- package/static/settings/assets/collection-runtime-C6ZAp2cM.js +1 -0
- package/static/settings/assets/dialog-LFluK7Nx.js +1 -0
- package/static/settings/assets/{download-xI5yyfk7.js → download-CZJeqUm1.js} +1 -1
- package/static/settings/assets/{external-link-DmbiCMuc.js → external-link-BsDft3Oe.js} +1 -1
- package/static/settings/assets/global-DvuM3VTP.css +1 -0
- package/static/settings/assets/{global-BOl78fr8.js → global-cmKEraT4.js} +77 -117
- package/static/settings/assets/index-BMPlaRWG.js +1 -0
- package/static/settings/assets/index-BiqSFOS1.js +4 -0
- package/static/settings/assets/index-XRgmPBKw.js +41 -0
- package/static/settings/assets/{index-browser-Bk7jaLCd.js → index-browser-B0slhJKc.js} +1 -1
- package/static/settings/assets/{key-round-B3VIp8oI.js → key-round-D1XsWbN_.js} +1 -1
- package/static/settings/assets/{rotate-ccw-DRzTN49Z.js → rotate-ccw-CEe0P0fY.js} +1 -1
- package/static/settings/assets/settings-DfjkqEJ8.js +1 -0
- package/static/settings/assets/{skeleton-Ckhw5HG7.js → skeleton-DA404w6m.js} +1 -1
- package/static/settings/assets/{waypoints-BFMI-qS6.js → waypoints-DJDWc4S9.js} +1 -1
- package/static/settings/assets/workspace-layout-K38jT4OV.js +1 -0
- package/static/settings/auth-callback.html +3 -3
- package/static/settings/settings.html +3 -3
- package/dist/api/background-service-supervisor.d.ts +0 -63
- package/dist/api/background-service-supervisor.js +0 -144
- package/dist/api/network/EndpointReachabilityProbe.d.ts +0 -40
- package/dist/api/network/EndpointReachabilityProbe.js +0 -129
- package/dist/edge/acme/CertificateRenewalScheduler.d.ts +0 -67
- package/dist/edge/acme/CertificateRenewalScheduler.js +0 -116
- package/dist/edge/reachability/P2PDataPlaneCrypto.d.ts +0 -42
- package/dist/edge/reachability/P2PDataPlaneCrypto.js +0 -113
- package/dist/edge/reachability/P2PDataPlaneCrypto.jsonld +0 -69
- package/dist/edge/reachability/RouteValidation.d.ts +0 -29
- package/dist/edge/reachability/RouteValidation.js +0 -58
- package/dist/runtime/ingress-occupant.d.ts +0 -39
- package/dist/runtime/ingress-occupant.js +0 -111
- package/dist/runtime/ingress-port.d.ts +0 -89
- package/dist/runtime/ingress-port.js +0 -165
- package/dist/runtime/port-reservations.d.ts +0 -86
- package/dist/runtime/port-reservations.js +0 -183
- package/dist/tunnel/TunnelClientManager.d.ts +0 -73
- package/dist/tunnel/TunnelClientManager.js +0 -181
- package/dist/tunnel/TunnelClientResolver.d.ts +0 -56
- package/dist/tunnel/TunnelClientResolver.js +0 -135
- package/dist/tunnel/TunnelDeclaredOrigin.d.ts +0 -78
- package/dist/tunnel/TunnelDeclaredOrigin.js +0 -185
- package/node_modules/@undefineds.co/extensions/dist-cjs/adapters/langchain.js +0 -49
- package/node_modules/@undefineds.co/extensions/dist-cjs/adapters/llamaindex.js +0 -54
- package/node_modules/@undefineds.co/extensions/dist-cjs/index.js +0 -22
- package/node_modules/@undefineds.co/extensions/dist-cjs/package.json +0 -3
- package/node_modules/@undefineds.co/extensions/dist-cjs/paddleocr.js +0 -304
- package/node_modules/@undefineds.co/extensions/dist-cjs/reader.js +0 -44
- package/node_modules/@undefineds.co/extensions/dist-cjs/registry.js +0 -99
- package/node_modules/@undefineds.co/extensions/dist-cjs/types.js +0 -2
- package/node_modules/openid-client/types/index.d.ts +0 -623
- package/static/app/assets/global.css +0 -1
- package/static/dashboard/assets/DocumentProcessingPanel-0-3nlwQf.js +0 -1
- package/static/dashboard/assets/IndexLifecyclePanel-DOI3IxOD.js +0 -1
- package/static/dashboard/assets/ModelAssignmentsPanel-BSWH19oT.js +0 -1
- package/static/dashboard/assets/ModelsPage-BrzxCkEl.js +0 -11
- package/static/dashboard/assets/NetworkPage-CxEKeaPz.js +0 -2
- package/static/dashboard/assets/SearchIndexingPanel-BGlSvEl5.js +0 -1
- package/static/dashboard/assets/StatusWorkspace-LYMDa4b0.js +0 -1
- package/static/dashboard/assets/SystemSettingsSubjectPanel-hsfHcJRV.js +0 -33
- package/static/dashboard/assets/collection-runtime-CKBQm3Fl.js +0 -1
- package/static/dashboard/assets/dashboard-1zrtbMhM.css +0 -1
- package/static/dashboard/assets/index-CQDQ8WVr.js +0 -4
- package/static/dashboard/assets/workspace-layout-Wed840qR.js +0 -1
- package/static/settings/assets/DocumentProcessingPanel-CccpHBs3.js +0 -1
- package/static/settings/assets/IndexLifecyclePanel-BrECzBoM.js +0 -1
- package/static/settings/assets/ModelAssignmentsPanel-DbFi67Kk.js +0 -1
- package/static/settings/assets/ModelsPage-xjHA88qy.js +0 -11
- package/static/settings/assets/NetworkPage-Bj4wc0bh.js +0 -2
- package/static/settings/assets/SearchIndexingPanel-ykhvw1Vl.js +0 -1
- package/static/settings/assets/StatusWorkspace-tx3Xg56J.js +0 -1
- package/static/settings/assets/SystemSettingsSubjectPanel-CcbpQmTc.js +0 -33
- package/static/settings/assets/collection-runtime-DIBObcT5.js +0 -1
- package/static/settings/assets/global-1zrtbMhM.css +0 -1
- package/static/settings/assets/index-CFVXiUnV.js +0 -4
- package/static/settings/assets/index-DK6qlahe.js +0 -1
- package/static/settings/assets/settings-CCM17CMX.js +0 -1
- package/static/settings/assets/workspace-layout-Co0KpMKd.js +0 -1
- /package/static/app/assets/{global-BGMlqT2c.js → _commonjsHelpers-B-UnjaXt.js} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{c as $,Z as xe,r as d,ak as U,j as e,C as k,a as C,b as S,d as P,e as R,B as g,al as se,R as he,$ as fe,a0 as ve,a1 as be}from"./global-cmKEraT4.js";import{P as ge}from"./PaneListHeader-C81adSBX.js";import{N as ie,W as je}from"./waypoints-DJDWc4S9.js";import{A as oe}from"./activity-DT8pzOea.js";import{T as ye,u as Ne}from"./workspace-layout-K38jT4OV.js";import{E as le}from"./external-link-BsDft3Oe.js";import{B as M}from"./badge-CvKRjSY2.js";import{R as we}from"./rotate-ccw-CEe0P0fY.js";import{D as ke}from"./download-CZJeqUm1.js";const Ce=[["path",{d:"M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z",key:"trhst0"}],["path",{d:"M17 21v-2",key:"ds4u3f"}],["path",{d:"M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10",key:"1mo9zo"}],["path",{d:"M21 21v-2",key:"eo0ou"}],["path",{d:"M3 5V3",key:"1k5hjh"}],["path",{d:"M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z",key:"1dd30t"}],["path",{d:"M7 5V3",key:"1t1388"}]],Se=$("cable",Ce);const Pe=[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],de=$("earth",Pe);const Re=[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]],De=$("lock-keyhole",Re);const Te=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],Ae=$("radio",Te);const Ee=[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]],Le=$("route",Ee);const $e=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Ie=$("shield-check",$e);const Me=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],Oe=$("wifi",Me);async function Ue({fetchImpl:t}){return Z(t,Y("/api/network/settings/status"),{method:"GET",credentials:"include",headers:{accept:"application/json"}})}async function qe({fetchImpl:t}){return Z(t,Y("/api/network/settings/diagnose"),{method:"POST",credentials:"include",headers:{accept:"application/json"}})}async function ze({fetchImpl:t}){await Z(t,Y("/api/network/settings/certificate/renew"),{method:"POST",credentials:"include",headers:{accept:"application/json"}})}async function Ve({podUrl:t,fetchImpl:n,patch:r}){return Z(n,He("/api/network/settings/configuration",t),{method:"PUT",credentials:"include",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(r)})}function Y(t){const n=typeof window>"u"?"http://localhost":window.location.origin;return new URL(t,n).toString()}function He(t,n){return n?new URL(t,n).toString():Y(t)}async function Z(t,n,r){const i=await t(n,r);if(!i.ok)throw await i.arrayBuffer(),new Error("Network settings request failed. Please try again.");if(!i.headers.get("content-type")?.includes("application/json"))throw await i.arrayBuffer(),new Error("Network settings request failed. Please try again.");return await i.json()}const ne=[{id:"overview",label:"Overview",path:"",icon:ie},{id:"endpoints",label:"Endpoints",path:"endpoints",icon:Se},{id:"addresses",label:"Addresses",path:"addresses",icon:de},{id:"domain-dns",label:"Domain & DNS",path:"domain-dns",icon:Le},{id:"https",label:"HTTPS",path:"https",icon:De},{id:"tunnel-profiles",label:"Tunnel Profiles",path:"tunnel-profiles",icon:je},{id:"p2p",label:"P2P",path:"p2p",icon:Ae},{id:"diagnostics",label:"Diagnostics",path:"diagnostics",icon:oe}];function _e(t){const n=["Xpod Network Diagnostics",`Generated: ${t.generatedAt}`,`Canonical URL: ${t.endpoint??"Unavailable"}`],r=t.checks.flatMap(i=>["",`[${i.status.toUpperCase()}] ${i.label}`,...i.detail?[i.detail]:[]]);return[...n,...r].join(`
|
|
2
|
+
`)}function bt(){const t=xe(),[n,r]=d.useState(),[i,s]=d.useState([]),[o,l]=d.useState(),[x,u]=d.useState(),[y,h]=d.useState(!1),[D,T]=d.useState(!1),[B,E]=d.useState(!1),[I,F]=d.useState(!1),[a,m]=d.useState(),v=d.useRef(0),N=d.useRef(0),z=d.useRef(0),V=d.useRef(void 0),H=d.useRef(!0),K=typeof window>"u"?void 0:window.location.origin,w=K?`local-host:${K}`:void 0,A=globalThis.fetch;d.useEffect(()=>(H.current=!0,()=>{H.current=!1,v.current+=1,N.current+=1,z.current+=1}),[]);const W=d.useCallback((c,p)=>H.current&&v.current===c&&V.current===p,[]),G=d.useCallback((c,p)=>H.current&&N.current===c&&V.current===p,[]),J=d.useCallback((c,p)=>H.current&&z.current===c&&V.current===p,[]),_=d.useCallback(async()=>{const c=w;if(!c)return;const p=v.current+1;v.current=p,h(!0),u(void 0);try{const L=await Ue({fetchImpl:A});W(p,c)&&r(L)}catch{W(p,c)&&u("网络设置请求失败,请重试。")}finally{W(p,c)&&h(!1)}},[A,w,W]);d.useEffect(()=>{let c=!1;return V.current=w,v.current+=1,N.current+=1,z.current+=1,queueMicrotask(()=>{c||V.current!==w||(r(void 0),s([]),l(void 0),u(void 0),h(!1),T(!1),E(!1),w&&_())}),()=>{c=!0}},[w,_]);const ue=d.useCallback(async()=>{const c=w;if(!c)return;const p=N.current+1;N.current=p,T(!0),u(void 0);try{const L=await qe({fetchImpl:A});G(p,c)&&(s(L.checks),l(new Date),U({description:"诊断完成"}))}catch{G(p,c)&&u("网络诊断失败,请重试。")}finally{G(p,c)&&T(!1)}},[A,w,G]),me=d.useCallback(async()=>{const c=w;if(!c)return;const p=z.current+1;z.current=p,E(!0),u(void 0);try{await ze({fetchImpl:A}),J(p,c)&&(U({variant:"success",description:"证书续签成功"}),await _())}catch{J(p,c)&&u("证书续签失败,请重试。")}finally{J(p,c)&&E(!1)}},[A,w,J,_]),X=d.useCallback(async c=>{if(K){F(!0),u(void 0);try{const p=await Ve({fetchImpl:A,patch:c});r(L=>L&&{...L,configuration:p.configuration}),m(p.applyState),U({variant:"success",description:"Network configuration saved"})}catch{u("网络配置保存失败,请重试。")}finally{F(!1)}}},[A,K]),pe=d.useMemo(()=>[{key:"local",title:"本机",values:n?.addresses.local??[]},{key:"lan",title:"局域网",values:n?.addresses.lan??[]},{key:"public",title:"公网",values:n?.addresses.public??[]}],[n]),re=t.pathname.split("/").filter(Boolean).at(-1),b=ne.some(c=>c.path===re)?re:"overview";return e.jsx(ye,{mode:"auto",listHeader:e.jsx(ge,{title:"Network"}),list:e.jsx(Be,{}),mainHeader:e.jsx(Fe,{title:ne.find(c=>(c.path||"overview")===b)?.label??"Overview",loading:y,stale:y&&!!n,onRefresh:_}),main:e.jsxs("section",{className:"flex min-h-full flex-col gap-4 bg-background p-6",children:[x?e.jsx("div",{role:"alert",className:"rounded-md border border-destructive/30 bg-destructive/10 px-4 py-3 text-sm text-destructive",children:x}):null,(b==="overview"||b==="endpoints")&&e.jsx(Qe,{endpoint:n?.endpoint,loading:y&&!n}),b==="overview"&&e.jsx(Ke,{status:n}),(b==="overview"||b==="addresses")&&e.jsx(tt,{sections:pe,loading:y&&!n,diagnostics:i,checkedAt:o}),b==="overview"&&e.jsx(it,{status:n}),b==="domain-dns"&&e.jsxs(e.Fragment,{children:[e.jsx(at,{status:n}),e.jsx(Ge,{configuration:n?.configuration,saving:I,applyState:a,onSave:X})]}),b==="https"&&e.jsxs(e.Fragment,{children:[e.jsx(rt,{status:n}),e.jsx(Je,{configuration:n?.configuration,saving:I,applyState:a,onSave:X})]}),b==="tunnel-profiles"&&e.jsxs(e.Fragment,{children:[e.jsx(We,{title:"Observed tunnel",label:"Tunnel",capability:n?.tunnel}),e.jsx(Xe,{configuration:n?.configuration,providers:n?.providers??[],ingress:n?.ingress,saving:I,applyState:a,onSave:X})]}),b==="p2p"&&e.jsx(Ze,{configuration:n?.configuration,saving:I,applyState:a,onSave:X}),(b==="overview"||b==="diagnostics"||b==="https")&&e.jsx(ot,{status:n,endpoint:n?.endpoint,diagnostics:i,diagnosing:D,renewing:B,onDiagnose:ue,onRenewCertificate:me})]}),className:"min-h-full"})}function Be(){const t=Ne();return e.jsx("aside",{className:"h-full border-r border-border bg-muted/20 py-2",children:e.jsx("nav",{"aria-label":"Network sections","data-list-navigation":!0,children:ne.map(n=>{const r=n.icon,i=`/network${n.path?`/${n.path}`:""}`;return e.jsxs(fe,{to:i,onClick:()=>t.openMain(),onKeyDown:ve,className:({isActive:s})=>be(s,{compact:!1}),end:n.path==="",children:[e.jsx(r,{className:"h-4 w-4","aria-hidden":"true"}),n.label]},n.id)})})})}function Fe({title:t,loading:n,stale:r,onRefresh:i}){return e.jsxs("div",{className:"flex h-full min-w-0 items-center justify-between gap-4 px-4",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("h1",{className:"text-sm font-semibold text-foreground",children:["Network · ",t]}),e.jsx("div",{className:"truncate text-xs text-muted-foreground","aria-live":"polite",children:r?"Refreshing · showing previous snapshot":"接入点、DNS、TLS、隧道与连通性诊断"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs(g,{type:"button",size:"sm",variant:"outline",onClick:i,disabled:n,children:[e.jsx(he,{className:"mr-2 h-4 w-4","aria-hidden":"true"}),"刷新"]})})]})}function Ke({status:t}){const n=t?.addresses.public[0]??t?.addresses.lan[0]??t?.addresses.local[0]??t?.endpoint,r=t?!t.dns.supported||t.dns.status==="unsupported"?"Configure Domain & DNS, then recheck observed DNS.":!t.tls.supported||!["valid","active","ready"].includes(t.tls.status)?"Review HTTPS configuration and certificate renewal evidence.":"No connectivity action is currently required.":"Refresh network status.",i=t?.tunnel.supported===!0;return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsx(S,{className:"text-base",children:"Preferred access path"}),e.jsx(P,{children:"First address this runtime has configured, in public → LAN → local order"})]}),e.jsxs(R,{className:"space-y-3 text-sm",children:[e.jsx("div",{className:"break-words font-medium",children:n??"Not configured"}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-4",children:[e.jsxs(M,{variant:"outline",children:["Local ",t?.addresses.local.length?"configured":"not configured"]}),e.jsxs(M,{variant:"outline",children:["LAN ",t?.addresses.lan.length?"configured":"not configured"]}),e.jsxs(M,{variant:"outline",children:["Public ",t?.addresses.public.length?"configured":"not configured"]}),e.jsxs(M,{variant:"outline",children:["Tunnel ",i?t?.tunnel.status??"unknown":"not observed"]})]}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:"Configured addresses are not probe results; reachability is reported per route."}),e.jsxs("div",{className:"rounded-md border border-border bg-muted/30 p-3",children:[e.jsx("div",{className:"font-medium",children:"Next action"}),e.jsx("div",{className:"mt-1 text-muted-foreground",children:r})]})]})]})}function We({title:t,label:n,capability:r,extra:i}){return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsx(S,{className:"text-base",children:t}),e.jsx(P,{children:"Observed runtime state"})]}),e.jsx(R,{children:e.jsx(q,{label:n,capability:r,extra:i})})]})}function Q({title:t}){return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsx(S,{className:"text-base",children:t}),e.jsx(P,{children:"Desired configuration"})]}),e.jsxs(R,{className:"text-sm text-muted-foreground",children:["This runtime does not report a configurable ",t," capability."]})]})}function Ge({configuration:t,saving:n,applyState:r,onSave:i}){const[s,o]=d.useState(t?.domainDns),[l,x]=d.useState("");return d.useEffect(()=>{let u=!1;return queueMicrotask(()=>{u||o(t?.domainDns)}),()=>{u=!0}},[t]),s?e.jsxs(ee,{title:"Saved configuration",applyState:r,children:[e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx(j,{name:"domain",label:"Domain",value:s.domain,onChange:u=>o({...s,domain:u})}),e.jsx(j,{name:"provider",label:"DNS provider",value:s.provider,onChange:u=>o({...s,provider:u})}),e.jsx(ce,{name:"recordTtl",label:"Record TTL (seconds)",value:s.recordTtl,min:30,max:86400,onChange:u=>o({...s,recordTtl:u})}),e.jsx(j,{name:"dnsCredential",label:s.credentialConfigured?"Replace credential (configured)":"Credential",value:l,type:"password",onChange:x})]}),e.jsx(ae,{label:"Enable DDNS",checked:s.ddnsEnabled,onChange:u=>o({...s,ddnsEnabled:u})}),e.jsx(te,{label:"Save DNS configuration",saving:n,onClick:()=>i({domainDns:{domain:s.domain,ddnsEnabled:s.ddnsEnabled,provider:s.provider,recordTtl:s.recordTtl,...l?{credential:l}:{}}})})]}):e.jsx(Q,{title:"Domain & DNS"})}function Je({configuration:t,saving:n,applyState:r,onSave:i}){const[s,o]=d.useState(t?.https);return d.useEffect(()=>{let l=!1;return queueMicrotask(()=>{l||o(t?.https)}),()=>{l=!0}},[t]),s?e.jsxs(ee,{title:"Saved configuration",applyState:r,children:[e.jsx(ae,{label:"Enable HTTPS",checked:s.enabled,onChange:l=>o({...s,enabled:l})}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx(j,{name:"acmeEmail",label:"ACME email",value:s.acmeEmail,onChange:l=>o({...s,acmeEmail:l})}),e.jsx(j,{name:"acmeDomains",label:"Certificate domains",value:s.domains.join(", "),onChange:l=>o({...s,domains:l.split(",").map(x=>x.trim()).filter(Boolean)})}),e.jsx(j,{name:"certificatePath",label:"Certificate path",value:s.certificatePath??"",onChange:l=>o({...s,certificatePath:l})}),e.jsx(j,{name:"certificateKeyPath",label:"Private-key path",value:s.certificateKeyPath??"",onChange:l=>o({...s,certificateKeyPath:l})}),e.jsx(ce,{name:"renewBeforeDays",label:"Renew before (days)",value:s.renewBeforeDays,min:1,max:90,onChange:l=>o({...s,renewBeforeDays:l})})]}),e.jsx(te,{label:"Save HTTPS configuration",saving:n,onClick:()=>i({https:s})})]}):e.jsx(Q,{title:"HTTPS"})}function Xe({configuration:t,providers:n,ingress:r,saving:i,applyState:s,onSave:o}){const[l,x]=d.useState(t?.tunnelProfiles.activeProfileId??""),[u,y]=d.useState(t?.tunnelProfiles.profiles??[]),[h,D]=d.useState({});if(d.useEffect(()=>{let a=!1;return queueMicrotask(()=>{a||(x(t?.tunnelProfiles.activeProfileId??""),y(t?.tunnelProfiles.profiles??[]),D({}))}),()=>{a=!0}},[t]),!t)return e.jsx(Q,{title:"Tunnel Profiles"});const T=(a,m)=>y(v=>v.map(N=>N.id===a?{...N,...m}:N)),B=n.filter(a=>a.runtimeSupported),E=a=>n.find(m=>m.id===a),I=()=>{const a=`tunnel-${Date.now()}`,m=B[0]?.id??"ngrok";y(v=>[...v,{id:a,provider:m,label:"New tunnel",credentialConfigured:!1,parameters:{}}])},F=a=>{y(m=>m.filter(v=>v.id!==a)),l===a&&x("none")};return e.jsxs(ee,{title:"Saved tunnel profiles",applyState:s,children:[e.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:["Active profile",e.jsxs("select",{value:l||"none",onChange:a=>x(a.target.value),className:"block h-10 w-full rounded-md border border-input bg-background px-3 sm:max-w-sm",children:[e.jsx("option",{value:"none",children:"None"}),u.map(a=>e.jsxs("option",{value:a.id,children:[a.label," · ",a.provider]},a.id))]})]}),e.jsx("div",{className:"space-y-3",children:u.map(a=>e.jsxs("div",{className:"space-y-3 rounded-md border border-border p-3 text-sm",children:[e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsx(j,{name:`tunnel-label-${a.id}`,label:"Label",value:a.label,onChange:m=>T(a.id,{label:m})}),e.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:["Provider",e.jsx("select",{value:a.provider,onChange:m=>T(a.id,{provider:m.target.value,parameters:{}}),className:"block h-10 w-full rounded-md border border-input bg-background px-3",children:B.map(m=>e.jsx("option",{value:m.id,children:m.label},m.id))})]}),E(a.provider)?.endpointSource==="declared"?e.jsx(j,{name:`tunnel-url-${a.id}`,label:"Public endpoint (declared)",value:a.publicUrl??"",onChange:m=>T(a.id,{publicUrl:m})}):e.jsx("p",{className:"text-xs text-muted-foreground",children:"The provider reports its public endpoint; there is nothing to type here."}),e.jsx(j,{name:`tunnel-credential-${a.id}`,label:a.credentialConfigured?"Replace credential (configured)":"Credential",type:"password",value:h[a.id]??"",onChange:m=>D(v=>({...v,[a.id]:m}))})]}),e.jsxs("details",{children:[e.jsx("summary",{className:"cursor-pointer font-medium",children:"Provider-specific parameters"}),e.jsx("div",{className:"mt-3 grid gap-3 sm:grid-cols-2",children:(E(a.provider)?.parameterFields??[]).map(({key:m,label:v})=>e.jsx(j,{name:`tunnel-${m}-${a.id}`,label:v,value:a.parameters?.[m]??"",onChange:N=>T(a.id,{parameters:{...a.parameters,[m]:N}})},m))})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsxs("span",{className:"text-xs text-muted-foreground",children:[l===a.id?"Active after restart":"Inactive"," · credential ",a.credentialConfigured?"configured":"missing"]}),e.jsx(g,{type:"button",size:"sm",variant:"ghost",onClick:()=>F(a.id),children:"Remove"})]})]},a.id))}),e.jsx(g,{type:"button",size:"sm",variant:"outline",onClick:I,children:"Add tunnel profile"}),e.jsx(Ye,{ingress:r,descriptor:E(u.find(a=>a.id===l)?.provider??"")}),e.jsx(te,{label:"Save tunnel profiles",saving:i,onClick:()=>o({tunnelProfiles:{activeProfileId:l,profiles:u.map(a=>({id:a.id,provider:a.provider,label:a.label,publicUrl:a.publicUrl,parameters:a.parameters,...h[a.id]?{credential:h[a.id]}:{}}))}})})]})}function Ye({ingress:t,descriptor:n}){if(!t||n?.originOwner!=="console")return null;const r=async()=>{await window.navigator.clipboard.writeText(t.originUrl),U({description:"Tunnel origin copied"})};return e.jsxs("div",{className:"rounded-md border border-border bg-muted/30 p-3","data-testid":"ingress-origin",children:[e.jsx("div",{className:"text-xs font-medium text-muted-foreground",children:"Tunnel origin (paste into the provider console)"}),e.jsxs("div",{className:"mt-1 flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"break-all font-mono text-sm",children:t.originUrl}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:"Set the tunnel's local port / service to this address, not the Gateway port: this is the entry that never treats a tunnelled caller as local."})]}),e.jsxs("div",{className:"flex shrink-0 gap-1",children:[e.jsx(g,{type:"button",size:"icon",variant:"ghost","aria-label":"Copy tunnel origin",onClick:()=>{r()},children:e.jsx(se,{className:"h-4 w-4","aria-hidden":"true"})}),n.consoleUrl?e.jsx(g,{type:"button",size:"icon",variant:"ghost","aria-label":`Open ${n.label} console`,onClick:()=>window.open(n.consoleUrl,"_blank","noopener,noreferrer"),children:e.jsx(le,{className:"h-4 w-4","aria-hidden":"true"})}):null]})]})]})}function Ze({configuration:t,saving:n,applyState:r,onSave:i}){const[s,o]=d.useState(t?.p2p);return d.useEffect(()=>{let l=!1;return queueMicrotask(()=>{l||o(t?.p2p)}),()=>{l=!0}},[t]),s?e.jsxs(ee,{title:"Saved P2P configuration",applyState:r,children:[e.jsx(ae,{label:"Enable P2P fallback",checked:s.enabled,onChange:l=>o({...s,enabled:l})}),e.jsx(j,{name:"signalService",label:"Signal service",value:s.signalService,onChange:l=>o({...s,signalService:l})}),e.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:["Fallback policy",e.jsxs("select",{value:s.fallbackPolicy,onChange:l=>o({...s,fallbackPolicy:l.target.value}),className:"block h-10 w-full rounded-md border border-input bg-background px-3 sm:max-w-sm",children:[e.jsx("option",{value:"never",children:"Never"}),e.jsx("option",{value:"when-direct-unavailable",children:"When direct is unavailable"}),e.jsx("option",{value:"prefer-p2p",children:"Prefer P2P"})]})]}),e.jsx(te,{label:"Save P2P configuration",saving:n,onClick:()=>i({p2p:s})})]}):e.jsx(Q,{title:"P2P"})}function ee({title:t,applyState:n,children:r}){return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsx(S,{className:"text-base",children:t}),e.jsx(P,{children:"Desired configuration · not presented as observed until verified"})]}),e.jsxs(R,{className:"space-y-4",children:[n==="restart-required"?e.jsx("div",{role:"status",className:"rounded-md border border-amber-300 bg-amber-50 px-3 py-2 text-sm text-amber-800 dark:bg-amber-950/20 dark:text-amber-200",children:"Saved · restart required"}):null,r]})]})}function j({name:t,label:n,value:r,type:i="text",onChange:s}){return e.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:[n,e.jsx("input",{name:t,type:i,value:r,onChange:o=>s(o.target.value),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm"})]})}function ce({name:t,label:n,value:r,min:i,max:s,onChange:o}){return e.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:[n,e.jsx("input",{name:t,type:"number",value:r,min:i,max:s,onChange:l=>o(l.target.valueAsNumber),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm"})]})}function ae({label:t,checked:n,onChange:r}){return e.jsxs("label",{className:"flex items-center justify-between gap-3 rounded-md border border-border p-3 text-sm font-medium",children:[t,e.jsx("input",{type:"checkbox",checked:n,onChange:i=>r(i.target.checked)})]})}function te({label:t,saving:n,onClick:r}){return e.jsx("div",{className:"flex justify-end",children:e.jsx(g,{type:"button",onClick:r,disabled:n,children:n?"Saving…":t})})}function Qe({endpoint:t,loading:n}){const r=[{label:"Canonical URL",value:t},{label:"API endpoint",value:t?et(t,"/api/"):void 0}],i=async(s,o)=>{await window.navigator.clipboard.writeText(o),U({description:`${s} copied`})};return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(de,{className:"h-4 w-4","aria-hidden":"true"}),"接入点"]}),e.jsx(P,{children:n?"正在解析接入点":"Observed endpoints · Currently effective route is the canonical URL"})]}),e.jsx(R,{className:"space-y-3",children:r.map(({label:s,value:o})=>e.jsxs("div",{className:"flex items-start justify-between gap-3 rounded-md border border-border p-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-xs font-medium text-muted-foreground",children:s}),e.jsx("div",{className:"mt-1 break-words text-sm text-foreground",children:o||"Unavailable"})]}),o?e.jsxs("div",{className:"flex shrink-0 gap-1",children:[e.jsx(g,{type:"button",size:"icon",variant:"ghost","aria-label":`Copy ${s}`,onClick:()=>{i(s,o)},children:e.jsx(se,{className:"h-4 w-4","aria-hidden":"true"})}),e.jsx(g,{type:"button",size:"icon",variant:"ghost","aria-label":`Open ${s}`,onClick:()=>window.open(o,"_blank","noopener,noreferrer"),children:e.jsx(le,{className:"h-4 w-4","aria-hidden":"true"})})]}):null]},s))})]})}function et(t,n){try{return new URL(n,t).toString()}catch{return t}}function tt({sections:t,loading:n,diagnostics:r,checkedAt:i}){return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(Oe,{className:"h-4 w-4","aria-hidden":"true"}),"网络地址"]}),e.jsx(P,{children:n?"正在刷新地址":"由运行时网络能力上报"})]}),e.jsx(R,{className:"space-y-4",children:t.map(s=>e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-medium text-muted-foreground",children:s.title}),s.values.length>0?e.jsx("div",{className:"mt-1 space-y-1",children:s.values.map(o=>e.jsx(nt,{scope:s.key,value:o,diagnostics:r,checkedAt:i},o))}):e.jsx("div",{className:"mt-1 text-sm text-muted-foreground",children:"未提供"})]},s.key))})]})}function nt({scope:t,value:n,diagnostics:r,checkedAt:i}){const s=st(n),o=r.find(l=>l.id==="address-configuration");return e.jsxs("div",{className:"rounded-md border border-border p-3 text-sm",children:[e.jsx("div",{className:"break-words font-medium text-foreground",children:n}),e.jsxs("dl",{className:"mt-2 grid gap-x-4 gap-y-1 text-xs sm:grid-cols-2",children:[e.jsx(f,{label:"Interface",value:t==="local"?"Loopback":t==="lan"?"LAN interface (name not reported)":"Public route"}),e.jsx(f,{label:"IP version",value:s.ipVersion}),e.jsx(f,{label:"Port",value:s.port}),e.jsx(f,{label:"Configured",value:o?o.status==="ok"?"Yes":"No":"Not checked"}),e.jsx(f,{label:"Reachability",value:"Not probed"}),e.jsx(f,{label:"Configuration checked",value:o?.checkedAt?O(o.checkedAt):i?i.toLocaleString():"Not checked"})]})]})}function f({label:t,value:n}){return e.jsxs("div",{className:"flex justify-between gap-3",children:[e.jsx("dt",{className:"text-muted-foreground",children:t}),e.jsx("dd",{className:"text-right text-foreground",children:n})]})}function st(t){try{const n=new URL(t),r=n.hostname.replace(/^\[|\]$/g,"");return{ipVersion:r.includes(":")?"IPv6":/^\d{1,3}(?:\.\d{1,3}){3}$/.test(r)?"IPv4":"Resolved hostname",port:n.port||(n.protocol==="https:"?"443":n.protocol==="http:"?"80":"Not reported")}}catch{return{ipVersion:"Not reported",port:"Not reported"}}}function at({status:t}){const n=t?.configuration?.domainDns,r=(t?.addresses.public??[]).map(i=>{try{return new URL(i).hostname}catch{return i}});return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsx(S,{className:"text-base",children:"Observed DNS"}),e.jsx(P,{children:"Observed state is kept separate from desired DNS policy."})]}),e.jsxs(R,{className:"space-y-3",children:[e.jsx(q,{label:"Runtime status",capability:t?.dns}),e.jsxs("dl",{className:"grid gap-2 text-sm sm:grid-cols-2",children:[e.jsx(f,{label:"Observed hostnames",value:r.join(", ")||"Not reported"}),e.jsx(f,{label:"Expected domain",value:n?.domain||"Not configured"}),e.jsx(f,{label:"Expected value",value:t?.addresses.public[0]||"Not reported"}),e.jsx(f,{label:"Provider",value:n?.provider||"Not configured"})]})]})]})}function rt({status:t}){const n=t?.configuration?.https;return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsx(S,{className:"text-base",children:"Observed HTTPS"}),e.jsx(P,{children:"Certificate evidence reported by the active runtime."})]}),e.jsxs(R,{className:"space-y-3",children:[e.jsx(q,{label:"TLS",capability:t?.tls,extra:t?.tls.expiresAt?`Expires ${O(t.tls.expiresAt)}`:void 0}),e.jsxs("dl",{className:"grid gap-2 text-sm sm:grid-cols-2",children:[e.jsx(f,{label:"Certificate domains",value:t?.tls.domains?.join(", ")||n?.domains.join(", ")||"Not reported"}),e.jsx(f,{label:"Issuer",value:t?.tls.issuer||"Not reported by runtime"}),e.jsx(f,{label:"Validity",value:t?.tls.validFrom?`${O(t.tls.validFrom)} — ${t.tls.expiresAt?O(t.tls.expiresAt):"open"}`:t?.tls.status??"Not reported"}),e.jsx(f,{label:"Expiry",value:t?.tls.expiresAt?O(t.tls.expiresAt):"Not reported"}),e.jsx(f,{label:"Renewal status",value:t?.tls.renewalStatus||(t?.actions.renewCertificate?"Renewal available":"Renewal unavailable")}),e.jsx(f,{label:"Renewal policy",value:n?`${n.renewBeforeDays} days before expiry`:"Not configured"})]})]})]})}function it({status:t}){return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(ie,{className:"h-4 w-4","aria-hidden":"true"}),"网络能力"]}),e.jsx(P,{children:"服务端声明的网络支持"})]}),e.jsxs(R,{className:"grid gap-3 text-sm",children:[e.jsx(q,{label:"TLS",capability:t?.tls,extra:t?.tls.expiresAt?`到期时间 ${O(t.tls.expiresAt)}`:void 0}),e.jsx(q,{label:"DNS",capability:t?.dns}),e.jsx(q,{label:"Tunnel",capability:t?.tunnel})]})]})}function ot({status:t,endpoint:n,diagnostics:r,diagnosing:i,renewing:s,onDiagnose:o,onRenewCertificate:l}){const x=r.length>0?_e({generatedAt:new Date().toISOString(),endpoint:n,checks:r}):void 0,u=async()=>{x&&(await window.navigator.clipboard.writeText(x),U({description:"Diagnostic report copied"}))},y=()=>{if(!x)return;const h=URL.createObjectURL(new Blob([x],{type:"text/plain;charset=utf-8"})),D=document.createElement("a");D.href=h,D.download=`xpod-network-diagnostics-${new Date().toISOString().replace(/[:.]/g,"-")}.txt`,D.click(),URL.revokeObjectURL(h)};return e.jsxs(k,{children:[e.jsxs(C,{children:[e.jsxs(S,{className:"flex items-center gap-2 text-base",children:[e.jsx(oe,{className:"h-4 w-4","aria-hidden":"true"}),"操作"]}),e.jsx(P,{children:"仅显示网络能力允许的操作"})]}),e.jsxs(R,{className:"space-y-4",children:[e.jsxs("div",{className:"flex flex-wrap gap-2",children:[t?.actions.diagnose?e.jsxs(g,{type:"button",size:"sm",variant:"outline",onClick:o,disabled:i,children:[e.jsx(Ie,{className:"mr-2 h-4 w-4","aria-hidden":"true"}),"连通性诊断"]}):null,t?.actions.renewCertificate?e.jsxs(g,{type:"button",size:"sm",variant:"subtle",onClick:l,disabled:s,children:[e.jsx(we,{className:"mr-2 h-4 w-4","aria-hidden":"true"}),"续签证书"]}):null,e.jsxs(g,{type:"button",size:"sm",variant:"outline",onClick:()=>{u()},disabled:!x,children:[e.jsx(se,{className:"mr-2 h-4 w-4","aria-hidden":"true"}),"Copy diagnostics"]}),e.jsxs(g,{type:"button",size:"sm",variant:"outline",onClick:y,disabled:!x,children:[e.jsx(ke,{className:"mr-2 h-4 w-4","aria-hidden":"true"}),"Export diagnostics"]})]}),r.length>0?e.jsx("div",{className:"space-y-2",children:r.map(h=>e.jsxs("div",{className:"rounded-md border border-border bg-muted/30 p-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("div",{className:"text-sm font-medium text-foreground",children:h.label}),e.jsx(M,{variant:h.status==="ok"?"secondary":"outline",children:h.status})]}),h.detail?e.jsx("div",{className:"mt-1 break-words text-xs text-muted-foreground",children:h.detail}):null]},h.id))}):e.jsx("div",{className:"text-sm text-muted-foreground",children:"尚未运行过诊断。"})]})]})}function q({label:t,capability:n,extra:r}){const i=n?.supported===!0;return e.jsxs("div",{className:"rounded-md border border-border bg-muted/30 p-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-medium text-foreground",children:i?t:`${t} 不支持`}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[n?.status??"读取中",n?.detail?` · ${n.detail}`:""]})]}),e.jsx(M,{variant:i?"secondary":"outline",children:i?"支持":"不支持"})]}),r?e.jsx("div",{className:"mt-2 text-xs text-muted-foreground",children:r}):null]})}function O(t){if(!t)return"暂无记录";const n=new Date(t);return Number.isNaN(n.getTime())?"暂无记录":n.toLocaleString()}export{bt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t}from"./global-
|
|
1
|
+
import{j as t}from"./global-cmKEraT4.js";function s({title:e}){return t.jsx("div",{className:"flex h-full items-center px-4 text-sm font-semibold text-foreground",children:e})}export{s as P};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as g,j as n}from"./global-cmKEraT4.js";import{i as p,A as f}from"./ModelAssignmentsPanel-CHoiRZeL.js";import{u as k}from"./AiConfigContext-y6ha7pGs.js";import"./dialog-LFluK7Nx.js";import"./index-XRgmPBKw.js";import"./ai-connections-DexTPyfC.js";import"./XpodAiConnectionsPodStore-G0ClZksP.js";import"./index-browser-B0slhJKc.js";function w(){const{config:r,capabilities:d,save:o,rebuild:c,saveAndRebuild:i,saving:l,rebuilding:s}=k(),[e,a]=g.useState(r?.searchIndexing);if(g.useEffect(()=>{let t=!1;return queueMicrotask(()=>{t||a(r?.searchIndexing)}),()=>{t=!0}},[r]),!e)return null;const u=async t=>{t.preventDefault(),await o({searchIndexing:e})},x=e.ftsEnabled&&e.vectorEnabled?"all":e.vectorEnabled?"vector":"fts",b=d?.rebuildTargets?.includes(x)===!0,m=p(e,r?.searchIndexing);return n.jsxs(f,{title:"Search & Indexing",description:"Choose which derived search indexes Xpod maintains for this Pod.",onSubmit:u,onRestore:()=>o({searchIndexing:{ftsEnabled:!0,vectorEnabled:!0,progressiveIndexingEnabled:!0,textBackend:"auto",vectorBackend:"auto"}}),saving:l||s,dirty:m,footerActions:n.jsx("button",{type:"button",disabled:!b||l||s,onClick:()=>m?i({searchIndexing:e},x):c(x),className:"h-9 rounded-md border border-input px-3 text-sm font-medium disabled:opacity-50",children:s?"Scheduling…":m&&b?"Save and schedule rebuild":b?"Schedule rebuild":"Rebuild unavailable on this runtime"}),children:[n.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[n.jsx(h,{title:"Full-text Search",enabled:e.ftsEnabled,onEnabled:t=>a({...e,ftsEnabled:t}),backend:e.textBackend,onBackend:t=>a({...e,textBackend:t}),backends:[["auto","Auto"],...(d?.textBackends??[]).map(t=>[t,t==="fts5"?"FTS5":"PostgreSQL FTS"])]}),n.jsx(h,{title:"Vector Search",enabled:e.vectorEnabled,onEnabled:t=>a({...e,vectorEnabled:t}),backend:e.vectorBackend,onBackend:t=>a({...e,vectorBackend:t}),backends:[["auto","Auto"],...(d?.vectorBackends??[]).map(t=>[t,t==="vec"?"VEC":"pgvector"])]})]}),n.jsxs("label",{className:"flex items-start justify-between gap-4 rounded-xl border border-border p-4",children:[n.jsxs("span",{children:[n.jsx("span",{className:"block text-sm font-medium",children:"Progressive indexing"}),n.jsx("span",{className:"block text-xs text-muted-foreground",children:"Expand coverage as content becomes relevant instead of embedding everything eagerly."})]}),n.jsx("input",{name:"progressiveIndexingEnabled",type:"checkbox",checked:e.progressiveIndexingEnabled,onChange:t=>a({...e,progressiveIndexingEnabled:t.target.checked}),className:"mt-1 h-4 w-4 rounded border-input"})]})]})}function h({title:r,enabled:d,onEnabled:o,backend:c,onBackend:i,backends:l}){const s=l.filter(([a])=>a!=="auto"),e=v(c);return n.jsxs("section",{className:"rounded-xl border border-border p-4",children:[n.jsxs("label",{className:"flex items-center justify-between gap-3 text-sm font-medium",children:[r,n.jsx("input",{type:"checkbox",checked:d,onChange:a=>o(a.target.checked),className:"h-4 w-4 rounded border-input"})]}),n.jsxs("label",{className:"mt-4 flex items-center justify-between gap-3 text-xs font-medium text-muted-foreground",children:["Choose backend manually",n.jsx("input",{type:"checkbox",checked:e,disabled:s.length===0,onChange:a=>i(a.target.checked?s[0]?.[0]??"auto":"auto"),className:"h-4 w-4 rounded border-input"})]}),e?n.jsxs("label",{className:"mt-3 block space-y-2 text-xs font-medium text-muted-foreground",children:["Backend",n.jsx("select",{value:c,onChange:a=>i(a.target.value),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm text-foreground",children:s.map(([a,u])=>n.jsx("option",{value:a,children:u},a))})]}):n.jsx("p",{className:"mt-3 text-xs text-muted-foreground",children:"Auto selects the runtime-supported backend."})]})}function v(r){return r!=="auto"}export{w as SearchIndexingPanel,v as isManualBackendSelection};
|
package/static/settings/assets/{StatusSubjectPanel-B2Y6ib3d.js → StatusSubjectPanel-DuxOvqzS.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as L,r as o,j as e,B as N,R as T,C as l,a as u,b as h,d as f,e as m}from"./global-
|
|
1
|
+
import{c as L,r as o,j as e,B as N,R as T,C as l,a as u,b as h,d as f,e as m}from"./global-cmKEraT4.js";import{f as D,a as M,t as _,r as O}from"./admin-C6qCRFiY.js";import{E as q}from"./external-link-BsDft3Oe.js";const G=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],U=L("rotate-cw",G);function Q({serviceId:t,title:r}){const[s,d]=o.useState(),[g,R]=o.useState(),[j,k]=o.useState([]),[v,p]=o.useState(),[b,S]=o.useState(!0),[y,w]=o.useState(!1),[C,$]=o.useState(),c=o.useCallback(async a=>{S(!0);try{const[n,A]=await Promise.all([D({signal:a}),M({source:t,level:"error",limit:5})]);d(t==="gateway"?{name:"gateway",status:"running",pid:n.adminData?.pid,uptime:n.adminData?.uptime?n.adminData.uptime*1e3:void 0,restartCount:0}:n.servicesData?.find(E=>E.name===t)),R(n.configData??void 0),k(A),$(n.checkedAt),p(void 0)}catch(n){n instanceof DOMException&&n.name==="AbortError"||p("Service status could not be loaded. The previous snapshot is retained.")}finally{S(!1)}},[t]);o.useEffect(()=>{const a=new AbortController;let n=!0;return Promise.resolve().then(()=>{n&&c(a.signal)}),()=>{n=!1,a.abort()}},[c]);const x=o.useMemo(()=>X(t,g),[g,t]),P=async()=>{const a=t==="gateway"?"the whole Xpod runtime":`${r} only`;if(!window.confirm(`Restart ${a}? Active requests may be interrupted.`))return;w(!0);const n=t==="gateway"?await _():await O(t);w(!1),n?setTimeout(()=>{c()},750):p(`Restart request for ${r} was not accepted by this runtime.`)};return e.jsxs("div",{className:"space-y-4 p-6",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsx("div",{"aria-live":"polite",className:"text-xs text-muted-foreground",children:b?"Refreshing service evidence…":C?`Checked ${C.toLocaleString()}`:"Not checked"}),e.jsxs(N,{type:"button",size:"sm",variant:"outline",onClick:()=>{c()},disabled:b,children:[e.jsx(T,{className:"mr-2 h-4 w-4"}),"Refresh"]})]}),v&&e.jsx("div",{role:"alert",className:"rounded-md border border-destructive/30 p-3 text-sm text-destructive",children:v}),e.jsxs(l,{children:[e.jsxs(u,{children:[e.jsx(h,{children:r}),e.jsx(f,{children:"Observed state, endpoint, health evidence, dependencies, and explicitly scoped lifecycle action."})]}),e.jsxs(m,{className:"grid gap-3 text-sm sm:grid-cols-2 xl:grid-cols-3",children:[e.jsx(i,{label:"State",value:s?.status??"Unknown"}),e.jsx(i,{label:"PID",value:s?.pid?.toString()??"Not reported"}),e.jsx(i,{label:"Uptime",value:s?.uptime?z(s.uptime):"Not reported"}),e.jsx(i,{label:"Restart count",value:s?.restartCount?.toString()??"Not reported"}),e.jsx(i,{label:"Internal endpoint",value:x.endpoint}),e.jsx(i,{label:"Health check",value:x.healthCheck})]})]}),e.jsxs(l,{children:[e.jsx(u,{children:e.jsx(h,{children:"Dependencies"})}),e.jsx(m,{className:"grid gap-3 text-sm sm:grid-cols-2",children:x.dependencies.map(a=>e.jsx(i,{label:a,value:B(a,t,s)},a))})]}),e.jsxs(l,{children:[e.jsxs(u,{children:[e.jsx(h,{children:"Recent errors"}),e.jsxs(f,{children:["Latest supervisor errors scoped to ",r,"."]})]}),e.jsxs(m,{className:"space-y-2",children:[j.length?j.map(a=>e.jsxs("div",{className:"rounded-lg border border-border p-3 text-sm",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:new Date(a.timestamp).toLocaleString()}),e.jsx("div",{className:"mt-1 break-words",children:a.message})]},`${a.timestamp}-${a.message}`)):e.jsx("p",{className:"text-sm text-muted-foreground",children:"No recent errors reported."}),e.jsxs("a",{className:"inline-flex items-center text-sm font-medium text-primary hover:underline",href:`/status/logs?source=${t}`,children:[e.jsx(q,{className:"mr-1.5 h-4 w-4"}),"Open related logs"]})]})]}),e.jsxs(l,{children:[e.jsxs(u,{children:[e.jsx(h,{children:"Lifecycle"}),e.jsx(f,{children:t==="gateway"?"Gateway is the parent process, so this action restarts the whole Xpod runtime.":`This action restarts ${r} only; dependent requests may briefly fail.`})]}),e.jsx(m,{children:e.jsxs(N,{type:"button",variant:"destructive",onClick:()=>{P()},disabled:y,children:[e.jsx(U,{className:"mr-2 h-4 w-4"}),y?"Restarting…":t==="gateway"?"Restart Xpod runtime…":`Restart ${r}…`]})})]})]})}function X(t,r){const s=r?.env??{};return t==="gateway"?{endpoint:window.location.origin,healthCheck:"GET /service/status",dependencies:["Solid Server","API Server"]}:t==="css"?{endpoint:s.CSS_PORT?`http://127.0.0.1:${s.CSS_PORT}`:"Internal endpoint not reported",healthCheck:"TCP readiness + Solid root request",dependencies:["Authority storage","Identity service"]}:{endpoint:s.API_INTERNAL_URL||(s.API_PORT?`http://127.0.0.1:${s.API_PORT}`:"Internal endpoint not reported"),healthCheck:"GET /health",dependencies:["Solid Server","Configuration store"]}}function B(t,r,s){return s?s.status!=="running"?`${H(r)} is ${s.status}; dependency health is not implied`:`${t} required; direct probe evidence is not reported by this runtime`:"Not reported"}function H(t){return t==="gateway"?"Gateway":t==="css"?"Solid Server":"API Server"}function i({label:t,value:r}){return e.jsxs("div",{className:"rounded-lg border border-border p-3",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:t}),e.jsx("div",{className:"mt-1 break-all font-medium",children:r})]})}function z(t){const r=Math.floor(t/1e3),s=Math.floor(r/3600),d=Math.floor(r%3600/60);return s?`${s}h ${d}m`:`${d}m ${r%60}s`}export{Q as ServiceStatusPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as r,a2 as l,ag as h,ah as x,Z as y,j as a,_ as v,$ as p,a0 as m,a1 as k}from"./global-cmKEraT4.js";import{A as u}from"./activity-DT8pzOea.js";import{W as f,N as g}from"./waypoints-DJDWc4S9.js";import{P as w}from"./PaneListHeader-C81adSBX.js";import{T as N,u as j}from"./workspace-layout-K38jT4OV.js";const b=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],I=r("boxes",b);const S=[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]],M=r("braces",S);const _=[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]],L=r("hard-drive",_);const z=[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]],d=r("scroll-text",z);const H=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],D=r("server",H);const V=[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]],$=r("timer",V);function s(i,t,e,n,o){return{id:i,label:t,path:e,href:`/status/${e}`,end:!0,group:n,icon:o}}const c=[s("overview","Overview","overview","Overview",u),s("gateway","Gateway","services/gateway","Services",f),s("solid-server","Solid Server","services/solid-server","Services",l),s("api-server","API Server","services/api-server","Services",D),s("logs","Logs","logs","Diagnostics",d),s("index-overview","Index Overview","index","Index",I),s("rdf","RDF","index/rdf","Index",M),s("fts","FTS","index/fts","Index",d),s("vector","Vector","index/vector","Index",h),s("retrieval-points","Retrieval Points","index/retrieval-points","Index",g),s("cache","Cache","index/cache","Index",L),s("slow-queries","Slow Queries","index/slow-queries","Index",$),s("benchmark","Benchmark","index/benchmark","Index",x)],q=["Overview","Services","Diagnostics","Index"];function B(){const i=y(),t=[...c].sort((e,n)=>n.path.length-e.path.length).find(e=>i.pathname.endsWith(e.path))??c[0];return a.jsx(N,{mode:"auto",listHeader:a.jsx(w,{title:"Status"}),list:a.jsx(A,{}),mainHeader:a.jsx("div",{className:"flex h-full items-center px-4",children:a.jsxs("div",{children:[a.jsxs("h1",{className:"text-sm font-semibold",children:["Status · ",t.label]}),a.jsx("div",{className:"text-xs text-muted-foreground",children:"Observed state and operational evidence"})]})}),main:a.jsx("section",{className:"min-h-full bg-background",children:a.jsx(v,{})}),className:"min-h-full"})}function A(){const i=j();return a.jsx("aside",{"data-list-navigation":!0,className:"h-full overflow-y-auto border-r border-border bg-muted/20 py-2",children:q.map(t=>a.jsxs("section",{className:"mb-3",children:[a.jsx("h2",{className:"px-5 py-1 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:t}),c.filter(e=>e.group===t).map(e=>{const n=e.icon;return a.jsxs(p,{to:e.path,end:e.end,onKeyDown:m,onClick:()=>i.openMain(),className:({isActive:o})=>k(o,{compact:!1}),children:[a.jsx(n,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}),e.label]},e.id)})]},t))})}export{B as default};
|
package/static/settings/assets/{SystemSettingsPage-BbFkv_Wn.js → SystemSettingsPage-8sHOaPb8.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as l,a2 as h,Z as u,r as c,j as e,_ as x,$ as
|
|
1
|
+
import{c as l,a2 as h,Z as u,r as c,j as e,_ as x,$ as b,a0 as y,a1 as g}from"./global-cmKEraT4.js";import{K as f}from"./key-round-D1XsWbN_.js";import{b as v,c as k}from"./admin-C6qCRFiY.js";import{p as j}from"./settings-projection-CUkyprDQ.js";import{P as N}from"./PaneListHeader-C81adSBX.js";import{T as S,u as w}from"./workspace-layout-K38jT4OV.js";const M=[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]],P=l("box",M);const L=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],C=l("cloud",L);const _=[["path",{d:"m10.852 14.772-.383.923",key:"11vil6"}],["path",{d:"M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923",key:"1v3clb"}],["path",{d:"m13.148 9.228.383-.923",key:"t2zzyc"}],["path",{d:"m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544",key:"1bxfiv"}],["path",{d:"m14.772 10.852.923-.383",key:"k9m8cz"}],["path",{d:"m14.772 13.148.923.383",key:"1xvhww"}],["path",{d:"M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5",key:"tn8das"}],["path",{d:"M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5",key:"1g2pve"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M6 6h.01",key:"1utrut"}],["path",{d:"m9.228 10.852-.923-.383",key:"1wtb30"}],["path",{d:"m9.228 13.148-.923.383",key:"1a830x"}]],A=l("server-cog",_);const H=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],D=l("wrench",H),I=[{scope:"account",label:"Account",description:"Your Pod and its session.",items:[{id:"pod",label:"Pod",path:"pod",description:"Current Pod identity and data boundary.",icon:P},{id:"identity-access",label:"Identity & Access",path:"identity-access",description:"Session, WebID, and account access.",icon:f}]},{scope:"node",label:"This node",description:"Shared by every Pod on this machine.",items:[{id:"storage",label:"Storage",path:"storage",description:"Authority storage backend and limits.",icon:h},{id:"runtime",label:"Runtime",path:"runtime",description:"Low-frequency runtime configuration.",icon:A},{id:"cloud",label:"Cloud",path:"cloud",description:"Cloud coordination settings when supported.",icon:C},{id:"advanced",label:"Advanced",path:"advanced",description:"Expert and compatibility controls.",icon:D}]}];function Z(){const r=u(),[n,s]=c.useState(!1);c.useEffect(()=>{let t=!1;return Promise.all([v(),k()]).then(([d,p])=>{t||s(j({registered:d?.registered===!0,managed:d?.managed===!0,domainAllocated:p?.allocated===!0}).cloud)}),()=>{t=!0}},[]);const a=c.useMemo(()=>I.map(t=>({...t,items:t.items.filter(d=>d.id!=="cloud"||n)})).filter(t=>t.items.length>0),[n]),o=c.useMemo(()=>a.flatMap(t=>t.items),[a]),i=o.find(t=>r.pathname.endsWith(`/${t.path}`))??o[0],m=a.find(t=>t.items.includes(i))?.scope;return e.jsx(S,{mode:"auto",listHeader:e.jsx(N,{title:"Settings"}),list:e.jsx($,{groups:a}),mainHeader:e.jsx("div",{className:"flex h-full items-center px-4",children:e.jsxs("div",{children:[e.jsxs("h1",{className:"text-sm font-semibold",children:["Settings · ",i.label]}),e.jsx("div",{className:"text-xs text-muted-foreground",children:i.description}),m==="node"?e.jsx("div",{className:"text-xs text-amber-700 dark:text-amber-300",children:"Applies to every Pod on this machine."}):null]})}),main:e.jsx("section",{className:"min-h-full bg-background",children:e.jsx(x,{})}),className:"min-h-full"})}function $({groups:r}){const n=w();return e.jsx("aside",{className:"h-full border-r border-border bg-muted/20 py-2",children:e.jsx("nav",{"aria-label":"Settings sections","data-list-navigation":!0,children:r.map(s=>e.jsxs("div",{children:[e.jsxs("div",{className:"px-4 pb-1 pt-3",children:[e.jsx("div",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:s.label}),e.jsx("div",{className:"text-xs leading-4 text-muted-foreground",children:s.description})]}),s.items.map(a=>{const o=a.icon;return e.jsxs(b,{to:a.path,"aria-label":a.label,onKeyDown:y,onClick:()=>n.openMain(),className:({isActive:i})=>g(i,{compact:!1}),children:[e.jsx(o,{className:"mt-0.5 h-4 w-4 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[e.jsx("span",{className:"block text-sm font-medium",children:a.label}),e.jsx("span",{className:"block text-xs leading-4 text-muted-foreground",children:a.description})]})]},a.id)})]},s.scope))})})}export{Z as default};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import{a3 as Z,a4 as ee,a5 as te,a6 as I,a7 as ie,a8 as T,a9 as ce,aa as G,ab as de,ac as le,S as ue,ad as he,t as pe,r as u,j as s,B as C,R as fe,C as ge,a as me,b as we,d as be,e as ve,ae as xe,af as ye}from"./global-cmKEraT4.js";import{d as Ae,e as Se,b as Ce,c as Ie,h as Ne,i as _e,t as je,u as Re}from"./admin-C6qCRFiY.js";import{a as Ee}from"./settings-projection-CUkyprDQ.js";import{e as Ue,a as X}from"./ai-connections-DexTPyfC.js";import{R as Pe}from"./rotate-ccw-CEe0P0fY.js";import{S as H}from"./skeleton-DA404w6m.js";import{E as ke}from"./external-link-BsDft3Oe.js";class v extends Error{code;constructor(t,r){super(r),this.name="AccountStorageBindingsError",this.code=t}}async function Oe(e){const t=De(e.origin),r=e.controls?.account?.bindings;if(typeof r!="string"||r.trim()==="")throw new v("missing-control","Account storage bindings control is unavailable");const n=e.fetchImpl??fetch,a=Te(r,t),o=a.origin===t?a.href:await Z(a.href,n,e.trustedAccountIndex);if(!o)throw new v("cross-origin","Account storage bindings control is not hosted by this Xpod");const c=ee({Accept:"application/json",...e.headers});let i;try{i=await n(o,{headers:c,credentials:"include"})}catch(l){throw new v("request-failed",l instanceof Error?l.message:"Failed to load Account storage bindings")}if(i.status===401||i.status===403)throw new v("forbidden","Account storage bindings require an authenticated Account");if(!i.ok)throw new v("request-failed",`Account storage bindings request failed (${i.status})`);let d;try{d=await i.json()}catch{throw new v("invalid-response","Account storage bindings response is not valid JSON")}return Le(d,a.origin,We(a,e.trustedAccountIndex,t))}function Le(e,t,r=!1){if(!z(e)||!Array.isArray(e.bindings))throw new v("invalid-response","Account storage bindings response is malformed");const n=[],a=new Set;for(const o of e.bindings){if(!z(o)||typeof o.webId!="string"||typeof o.storageUrl!="string")throw new v("invalid-response","Account storage binding row is malformed");const c=Be(o.webId),i=Fe(o.storageUrl,r?void 0:t);if(!c||!i)throw new v("cross-origin","Account storage binding is outside the trusted storage scope");const d={webId:c,storageUrl:i,...typeof o.label=="string"?{label:o.label}:{}},l=`${d.webId}
|
|
2
|
+
${d.storageUrl}`;a.has(l)||(a.add(l),n.push(d))}return n}function De(e){try{return new URL(e??(typeof window>"u"?"http://localhost":window.location.origin)).origin}catch{throw new v("cross-origin","Current Xpod origin is invalid")}}function Te(e,t){try{const r=new URL(e,t);if(!["http:","https:"].includes(r.protocol)||r.username||r.password||r.hash)throw new Error("unsafe control URL");return r}catch{throw new v("cross-origin","Account storage bindings control is not a valid URL")}}function Be(e){if(!te(e))try{const t=new URL(e);return!["http:","https:"].includes(t.protocol)||t.username||t.password?void 0:e}catch{return}}function Fe(e,t){try{const r=new URL(e.trim());return t!==void 0&&r.origin!==t||!["http:","https:"].includes(r.protocol)||r.username||r.password||r.search||r.hash?void 0:(r.pathname=r.pathname.endsWith("/")?r.pathname:`${r.pathname}/`,r.href)}catch{return}}function We(e,t,r){if(!t)return!1;try{const n=new URL(t,r);return n.pathname.startsWith("/.account/")&&e.origin===n.origin&&e.pathname.startsWith("/.account/")}catch{return!1}}function z(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}const q="co.undefineds.ai-connections",Me={providerCredentials:"settings/credentials.ttl",providerDefinitions:"settings/providers/__service_access__.ttl",gatewayAccessKeys:".data/ai/gateway/access-keys.ttl",quotaSnapshots:".data/ai/gateway/quota.ttl"},$e=new Set(Ue);function V(e,t){if(!U(e))throw new Error("invalid_descriptor");if(e.appletId!==q)throw new Error("invalid_applet_id");const r=e.service;if(!U(r)||typeof r.webId!="string"||typeof r.label!="string"||!Je(r.webId))throw new Error("invalid_service");if(!Array.isArray(e.resources)||e.resources.length===0)throw new Error("invalid_empty_resources");const n=Ve(t),a=new Set,o=e.resources.map(c=>Ge(c,n,a));return{appletId:q,service:{webId:r.webId,label:r.label},resources:o}}function Ge(e,t,r){if(!U(e)||typeof e.id!="string"||typeof e.url!="string"||e.mediaType!=="text/turtle"||!U(e.access))throw new Error("invalid_resource");const n=Xe(e.id,t);if(!n||r.has(e.id))throw new Error("invalid_resource");He(e.url);let a;try{a=new URL(e.url)}catch{throw new Error("invalid_resource")}if(!Ke(a,t))throw new Error("invalid_resource");if(a.href!==n)throw new Error("invalid_resource");return r.add(e.id),{id:e.id,url:a.href,mediaType:"text/turtle",access:qe(e.access)}}function Xe(e,t){const r=Me[e];if(r)return new URL(r,t).href;const n=e.startsWith("providerDocument:")?e.slice(17):void 0;if(n&&$e.has(n))return new URL(`settings/providers/${n}.ttl`,t).href}function He(e){if(/%(?![0-9a-fA-F]{2})/.test(e)||/%(?:2f|5c)/i.test(e)||e.includes("\\"))throw new Error("invalid_resource");const t=ze(e);if(K(t))throw new Error("invalid_resource");try{const r=decodeURIComponent(t);if(r.includes("\\")||K(r))throw new Error("invalid_resource")}catch{throw new Error("invalid_resource")}}function ze(e){const t=e.split("#",1)[0]??e;return(t.split("?",1)[0]??t).replace(/^[a-z][a-z0-9+.-]*:\/\/[^/\\?#]*/i,"")}function K(e){return e.split("/").some(t=>t==="."||t==="..")}function qe(e){if(Object.keys(e).some(r=>r!=="read"&&r!=="append"&&r!=="write")||e.read!==!0||e.append!==!0||e.write!==!0)throw new Error("invalid_resource");return{read:!0,append:!0,write:!0}}function Ve(e){const t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Error("invalid_current_pod");return t.pathname.endsWith("/")||(t.pathname=`${t.pathname}/`),t}function Ke(e,t){return(e.protocol==="http:"||e.protocol==="https:")&&e.origin===t.origin&&e.pathname.startsWith(t.pathname)}function Je(e){try{const t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}function U(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}const Qe=3,Ye=63,Ze=/^[a-z0-9-]+$/;function B(e){return e.trim().toLowerCase()}function re(e){const t=B(e);if(!t)return I.usernameRequired;if(t.length<Qe||t.length>Ye)return I.usernameLength;if(!Ze.test(t))return I.usernameCharset;if(t.startsWith("-")||t.endsWith("-"))return I.usernameHyphen}const et="已有 Pod 的身份绑定尚未确认。请重试读取绑定或返回账号,不需要重新创建 Pod。",tt="暂时无法确认已有 Pod,请重试读取或返回账号。";class x extends Error{code;constructor(t){super(t==="binding-missing"?et:t==="inventory-unavailable"?tt:"账号已切换,请返回当前账号重新操作。"),this.name="FirstPodReadinessError",this.code=t}}function rt(e){const t=G(),r=de(t,{...e.headers}),n=new Headers(r).get("Authorization"),a=()=>{try{e.assertCurrentAccount?.()}catch{throw new x("account-changed")}if(G()!==t||n?.startsWith("CSS-Account-Token ")&&n!==(t?`CSS-Account-Token ${t}`:void 0))throw new x("account-changed")},o=e.fetchImpl??fetch;return{headers:r,assertCurrentAccount:a,fetch:async(i,d)=>{a();const l=await o(i,d);try{a()}catch(b){throw l.body?.cancel().catch(()=>{}),b}const g=async b=>{a();const y=await b();return a(),y},m=l.json.bind(l),w=l.text.bind(l);return l.json=()=>g(m),l.text=()=>g(w),l}}}async function nt(e,t,r,n){n.assertCurrentAccount();let a;try{const i=await e(T(t),{headers:{...n.headers,Accept:"application/json"},credentials:"include"});if(!i.ok)throw new x("inventory-unavailable");a=await i.json()}catch{throw n.assertCurrentAccount(),new x("inventory-unavailable")}if(n.assertCurrentAccount(),!D(a)||!D(a.pods))throw new x("inventory-unavailable");const o=Object.entries(a.pods);if(o.some(([i,d])=>!ae(i)||typeof d!="string"||!d))throw new x("inventory-unavailable");const c=le(r);if(o.some(([i])=>!c||ue(i,c.storageRoot)))throw new x("binding-missing")}function st(e){for(const t of e){if(!t)continue;const r=ut(t);if(!r)continue;const n=B(r).replace(/[^a-z0-9-]/gu,"-").replace(/-+/gu,"-").replace(/^-+|-+$/gu,"");if(n&&!re(n))return n}return""}async function at(e){const t=rt(e),r=t.fetch,n=B(e.username),a=re(n);if(a)throw new Error(a);const o=await ie(e.provisionCode),c=await Z(e.createPodUrl,r,e.trustedAccountIndex);if(!c)throw new Error("Pod creation control is not hosted by this Xpod");await nt(r,c,o,t);const i=await dt(r,n,o);t.assertCurrentAccount();const d=await r(T(c),{method:"POST",headers:{...t.headers,Accept:"application/json","Content-Type":"application/json"},credentials:"include",body:JSON.stringify(ce(n,i?.provisionCode??o,i?.provisionReceipt))});if(t.assertCurrentAccount(),!d.ok){const w=await ct(d);throw d.status===409||ne(w)?new Error(I.podNameTaken):new Error(w||"Failed to create Pod")}const l=await d.json().catch(P);t.assertCurrentAccount();const g=lt(l);if(!e.pickWebIdUrl)return g;const m=await ot({fetchImpl:r,headers:t.headers,maxAttempts:e.maxAttempts,pickWebIdUrl:e.pickWebIdUrl,pollIntervalMs:e.pollIntervalMs});return t.assertCurrentAccount(),m.length>0?m:g}async function ot(e){const t=e.fetchImpl??fetch,r=Math.max(1,e.maxAttempts??30),n=Math.max(0,e.pollIntervalMs??500);for(let a=0;a<r;a+=1){const o=await it(t,e.pickWebIdUrl,e.headers);if(o.length>0)return o;a<r-1&&n>0&&await new Promise(c=>setTimeout(c,n))}return[]}function P(e){if(e instanceof x)throw e}async function it(e,t,r){const n=await e(T(t),{headers:r,credentials:"include"}).catch(P);if(!n?.ok)return[];const a=await n.json().catch(P);if(!Array.isArray(a?.entries))return[];const o=new Set,c=[];for(const i of a.entries){if(!D(i)||typeof i.webId!="string"||typeof i.storageUrl!="string")continue;const d=se(i.webId,i.storageUrl);if(!d)continue;const l=`${d.webId}
|
|
3
|
+
${d.storageUrl}`;o.has(l)||(o.add(l),c.push(d))}return c}async function ct(e){const t=await e.text?.().catch(P);if(t)try{const r=JSON.parse(t);return typeof r.message=="string"?r.message:typeof r.error=="string"?r.error:t}catch{return t}}function ne(e){return e?/already (?:is )?(?:a )?resource/iu.test(e)||/already taken/iu.test(e)||/already exists/iu.test(e):!1}async function dt(e,t,r){try{return await he(e,t,r)}catch(n){const a=n instanceof Error?n.message:String(n);throw ne(a)?new Error(I.podNameTaken):n}}function lt(e){if(typeof e?.podUrl!="string")return[];const t=ae(e.podUrl);if(!t)return[];const r=new Set;if(typeof e.webId=="string"&&e.webId.length>0&&r.add(e.webId),Array.isArray(e.webIds))for(const n of e.webIds)typeof n=="string"&&n.length>0&&r.add(n);return Array.from(r).map(n=>se(n,t)).filter(n=>!!n)}function ut(e){try{return new URL(e).pathname.split("/").filter(Boolean)[0]}catch{return e.includes("@")?e.split("@",1)[0]:e}}function se(e,t){if(!te(e))try{const r=new URL(e),n=new URL(t);return!["http:","https:"].includes(r.protocol)||!["http:","https:"].includes(n.protocol)?void 0:(n.pathname=n.pathname.endsWith("/")?n.pathname:`${n.pathname}/`,{webId:e,storageUrl:n.href})}catch{return}}function ae(e){try{const t=new URL(e);return!["http:","https:"].includes(t.protocol)||t.username||t.password||t.hash||t.search?void 0:(t.pathname=t.pathname.endsWith("/")?t.pathname:`${t.pathname}/`,t.href)}catch{return}}function D(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function ht(e,t){if(e)try{return new URL(new URL(e).pathname,t).toString()}catch{return}}const pt="http://www.w3.org/ns/solid/acp#",ft="http://www.w3.org/ns/auth/acl#";function J(e,{ownerWebId:t,serviceWebId:r},n=!0){const a=n?`
|
|
4
|
+
<#serviceAccess>
|
|
5
|
+
a acp:AccessControl;
|
|
6
|
+
acp:apply [
|
|
7
|
+
a acp:Policy;
|
|
8
|
+
acp:allow acl:Read, acl:Write;
|
|
9
|
+
acp:anyOf [
|
|
10
|
+
a acp:Matcher;
|
|
11
|
+
acp:agent <${r}>
|
|
12
|
+
]
|
|
13
|
+
].
|
|
14
|
+
`:"",o=n?"<#ownerAccess>, <#serviceAccess>":"<#ownerAccess>";return`@prefix acl: <${ft}>.
|
|
15
|
+
@prefix acp: <${pt}>.
|
|
16
|
+
|
|
17
|
+
<#managed>
|
|
18
|
+
a acp:AccessControlResource;
|
|
19
|
+
acp:resource <${e}>;
|
|
20
|
+
acp:accessControl ${o};
|
|
21
|
+
acp:memberAccessControl ${o}.
|
|
22
|
+
|
|
23
|
+
<#ownerAccess>
|
|
24
|
+
a acp:AccessControl;
|
|
25
|
+
acp:apply [
|
|
26
|
+
a acp:Policy;
|
|
27
|
+
acp:allow acl:Read, acl:Write, acl:Control;
|
|
28
|
+
acp:anyOf [
|
|
29
|
+
a acp:Matcher;
|
|
30
|
+
acp:agent <${t}>
|
|
31
|
+
]
|
|
32
|
+
].
|
|
33
|
+
${a}`}function gt(e){const t=new URL(e);return t.pathname.endsWith("/")||(t.pathname=t.pathname.slice(0,t.pathname.lastIndexOf("/")+1)),t.toString()}function O(e){return new URL(".acr",e).toString()}function L(e){return[...new Set(e.resources.map(t=>gt(t.url)))]}async function Q(e,t,r){const n=await e(t,{method:"PUT",headers:{"content-type":"text/turtle"},body:r});if(!n.ok)throw await n.arrayBuffer().catch(()=>{}),new Error(`service_acr_write_failed:${n.status}`)}function E(e,t,r){return{status:t?"granted":"missing",resources:e.resources}}function Y(e){const t=()=>{if(!e.ownerWebId)throw new Error("service_acr_owner_missing");return e.ownerWebId};return{async ensureAgentAccess(r){const n=t();for(const a of L(r))await Q(e.authenticatedFetch,O(a),J(a,{ownerWebId:n,serviceWebId:r.service.webId}));return{status:"granted",resources:r.resources}},async inspectAgentAccess(r){try{for(const n of L(r)){const a=await e.authenticatedFetch(O(n),{headers:{accept:"text/turtle"}});if(!a.ok)return await a.arrayBuffer().catch(()=>{}),E(r,!1);const o=await a.text();if(!o.includes(`<${r.service.webId}>`)||!o.includes("acp:AccessControlResource"))return E(r,!1)}return E(r,!0)}catch{return E(r,!1)}},async revokeAgentAccess(r){const n=t();for(const a of L(r))await Q(e.authenticatedFetch,O(a),J(a,{ownerWebId:n,serviceWebId:r.service.webId},!1));return{status:"missing",resources:r.resources}}}}function Pt({kind:e}){const t=pe(),[r,n]=u.useState(null),[a,o]=u.useState(null),[c,i]=u.useState(null),[d,l]=u.useState(null),[g,m]=u.useState(!0),[w,b]=u.useState(""),[y,A]=u.useState(""),S=u.useCallback(async()=>{m(!0),b("");try{const[h,p,k,f]=await Promise.all([Ae(),Se(),Ce(),Ie()]);if(!h||!p)throw new Error("unavailable");n(h),o(p),i(k),l(await Ne(_e(p.env,f,h.env.CSS_BASE_URL??"")))}catch{b("Settings evidence could not be loaded.")}finally{m(!1)}},[]);u.useEffect(()=>{let h=!1;return queueMicrotask(()=>{h||S()}),()=>{h=!0}},[S]);const _=async h=>{if(b(""),!await Re(h)){b("Configuration could not be saved.");return}o(p=>p&&{...p,env:{...p.env,...h}}),A("Saved · restart required")},R=St[e];return s.jsxs("div",{className:"space-y-4 p-6",children:[s.jsx("div",{className:"flex justify-end",children:s.jsxs(C,{type:"button",size:"sm",variant:"outline",onClick:S,disabled:g,children:[s.jsx(fe,{className:"mr-2 h-4 w-4"}),"Refresh"]})}),w?s.jsx("div",{role:"alert",className:"rounded-md border border-destructive/30 p-3 text-sm text-destructive",children:w}):null,y?s.jsxs("div",{role:"status",className:"flex flex-wrap items-center justify-between gap-3 rounded-md border border-amber-300 bg-amber-50 p-3 text-sm text-amber-800 dark:bg-amber-950/20 dark:text-amber-200",children:[s.jsx("span",{children:y}),s.jsxs(C,{type:"button",size:"sm",variant:"outline",onClick:()=>{je()},children:[s.jsx(Pe,{className:"mr-2 h-4 w-4"}),"Restart Xpod"]})]}):null,s.jsxs(ge,{children:[s.jsxs(me,{children:[s.jsx(we,{children:R}),s.jsx(be,{children:Ct[e]})]}),s.jsx(ve,{className:"space-y-4",children:g&&!a?s.jsx("div",{role:"status","aria-label":"Loading settings",className:"grid gap-3 sm:grid-cols-2","aria-live":"polite",children:[0,1,2,3].map(h=>s.jsxs("div",{className:"rounded-lg border border-border p-3","aria-hidden":"true",children:[s.jsx(H,{className:"h-3 w-24"}),s.jsx(H,{className:"mt-2 h-5 w-36"})]},h))}):s.jsx(wt,{kind:e,runtime:t,admin:r,configuration:a,provision:c,publicRoute:d,save:_})})]})]})}function mt({runtime:e,publicRoute:t}){const r=xe(),[n,a]=u.useState(null),[o,c]=u.useState(""),[i,d]=u.useState(""),[l,g]=u.useState(!1),[m,w]=u.useState(""),[b,y]=u.useState(""),A=r.controls,S=r.idpIndex,_=u.useCallback(async()=>{c("");try{a(await Oe({controls:A,origin:window.location.origin,trustedAccountIndex:S}))}catch{a(null),c("暂时无法读取存储绑定,请重试。")}},[A,S]);u.useEffect(()=>{let f=!1;return queueMicrotask(()=>{f||_()}),()=>{f=!0}},[_]);const R=u.useMemo(()=>st([e.webId,r.identity?.username,A?.account?.username]),[e.webId,r.identity?.username,A?.account?.username]),h=async f=>{f.preventDefault();const W=A?.account?.pod,M=(i.trim()||R||"").trim();if(!l){if(!W){w("当前部署没有公布创建存储空间的入口。");return}if(!M){w("无法从当前账号推断 Pod 名称,请手动填写。");return}g(!0),w(""),y("");try{await at({assertCurrentAccount:r.bindAccountCapability?.(),createPodUrl:W,headers:ee(),provisionCode:await ye(),trustedAccountIndex:S,username:M}),d(""),y("存储空间已创建。"),await _()}catch($){w($ instanceof Error?$.message:"无法创建存储空间,请重试。")}finally{g(!1)}}},p=ht(e.podUrl,window.location.origin),k=[{label:"Pod name",value:oe(e.podUrl)},{label:"Pod URL",value:p??"Not discovered"},{label:"Public route",value:At(t),detail:t?.detail??"Not checked by this runtime"},{label:"Session",value:e.state.status}];return s.jsxs(s.Fragment,{children:[s.jsx(N,{rows:k}),s.jsxs(C,{type:"button",variant:"outline",disabled:!p,onClick:()=>p&&window.open(p,"_blank","noopener,noreferrer"),children:[s.jsx(ke,{className:"mr-2 h-4 w-4"}),"Open Pod"]}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("div",{className:"text-sm font-medium",children:"属于当前账号的存储空间"}),o?s.jsx("div",{role:"alert",className:"rounded-md border border-destructive/30 p-3 text-sm text-destructive",children:o}):null,n===null&&!o?s.jsx("div",{role:"status",className:"text-sm text-muted-foreground",children:"正在读取…"}):null,n?.length===0?s.jsx("div",{role:"status",className:"rounded-lg border border-border p-3 text-sm text-muted-foreground",children:"这个账号还没有任何存储空间。创建后即可用它授权应用访问。"}):null,n&&n.length>0?s.jsx("ul",{className:"space-y-2",children:n.map(f=>s.jsxs("li",{className:"rounded-lg border border-border p-3 text-sm",children:[s.jsx("div",{className:"break-all font-medium",children:f.storageUrl}),s.jsx("div",{className:"mt-1 break-all text-xs text-muted-foreground",children:f.webId})]},`${f.webId}|${f.storageUrl}`))}):null]}),s.jsxs("form",{onSubmit:h,className:"space-y-2 rounded-lg border border-border p-3",children:[s.jsx("label",{className:"block text-sm font-medium",htmlFor:"pod-management-name",children:"创建存储空间"}),s.jsx("p",{className:"text-xs text-muted-foreground",children:"创建是一次显式操作:不会因为登录或授权而自动发生。"}),s.jsxs("div",{className:"flex flex-wrap gap-2",children:[s.jsx("input",{id:"pod-management-name",className:"h-10 min-w-48 flex-1 rounded-md border border-input bg-background px-3",value:i,placeholder:R||"my-pod",disabled:l,onChange:f=>d(f.currentTarget.value)}),s.jsx(C,{type:"submit",disabled:l,children:l?"正在创建…":"创建"})]}),m?s.jsx("div",{role:"alert",className:"text-sm text-destructive",children:m}):null,b?s.jsx("div",{role:"status",className:"text-sm text-muted-foreground",children:b}):null]})]})}function wt({kind:e,runtime:t,admin:r,configuration:n,provision:a,publicRoute:o,save:c}){const i=n?.env??{};return e==="pod"?s.jsx(mt,{runtime:t,publicRoute:o}):e==="identity-access"?s.jsx(bt,{runtime:t}):e==="storage"?s.jsxs(s.Fragment,{children:[s.jsx(N,{rows:Ee(i,n?.secrets)}),s.jsx("p",{className:"text-xs text-muted-foreground",children:"Measured storage and bandwidth are intentionally shown in Status → Usage, not here. Storage migration is unavailable because this runtime does not report a migration capability."})]}):e==="runtime"?s.jsx(vt,{env:i,admin:r,save:c}):e==="cloud"?s.jsx(xt,{env:i,provision:a,save:c}):s.jsx(yt,{env:i,save:c})}function bt({runtime:e}){const[t,r]=u.useState("checking"),[n,a]=u.useState(!1),o=u.useCallback(async()=>{if(!e.webId||!e.podUrl||e.state.status!=="authenticated"){r("unavailable");return}r("checking");try{const d=X({webId:e.webId,podUrl:e.podUrl,authenticatedFetch:e.fetch}),l=V(await d.getServiceAccess(),e.podUrl),m=await Y({authenticatedFetch:e.fetch,ownerWebId:e.webId}).inspectAgentAccess(l);r(m.status==="granted"?"granted":"missing")}catch{r("error")}},[e.fetch,e.podUrl,e.state.status,e.webId]);u.useEffect(()=>{let d=!1;return queueMicrotask(()=>{d||o()}),()=>{d=!0}},[o]);const c=async()=>{if(!(!e.webId||!e.podUrl||!window.confirm("Revoke AI Gateway service access to Xpod settings resources? Provider credentials remain stored but the service can no longer use them."))){a(!0);try{const d=X({webId:e.webId,podUrl:e.podUrl,authenticatedFetch:e.fetch}),l=V(await d.getServiceAccess(),e.podUrl);await Y({authenticatedFetch:e.fetch,ownerWebId:e.webId}).revokeAgentAccess(l),r("missing")}catch{r("error")}finally{a(!1)}}},i=t==="granted"?"Granted":t==="missing"?"Not granted":t==="checking"?"Checking…":t==="unavailable"?"Unavailable while signed out":"Could not inspect";return s.jsxs(s.Fragment,{children:[s.jsx(N,{rows:[{label:"WebID",value:e.webId??"Signed out"},{label:"OIDC issuer",value:e.issuer??"Not reported"},{label:"Current account",value:e.webId?oe(e.webId):"Signed out"},{label:"Session",value:e.state.status},{label:"ACP / ACR",value:t==="error"?"Capability unavailable or permission denied":"Managed ACR capability available"},{label:"AI Gateway service access",value:i,detail:"Inspected from the managed ACRs for declared settings resources"}]}),s.jsxs("div",{className:"flex flex-wrap gap-2",children:[s.jsx(C,{type:"button",variant:"outline",onClick:()=>{o()},disabled:t==="checking",children:"Recheck access"}),s.jsx(C,{type:"button",variant:"destructive",onClick:()=>{c()},disabled:t!=="granted"||n,children:n?"Revoking…":"Revoke service access"})]})]})}function vt({env:e,admin:t,save:r}){const n=e.CSS_BASE_URL??t?.env.CSS_BASE_URL??"",[a,o]=u.useState(n),[c,i]=u.useState(e.CSS_ROOT_FILE_PATH??"");return u.useEffect(()=>{let d=!1;return queueMicrotask(()=>{d||(o(n),i(e.CSS_ROOT_FILE_PATH??""))}),()=>{d=!0}},[e,n]),s.jsxs("div",{className:"space-y-4",children:[s.jsx(N,{rows:[{label:"Edition",value:t?.env.XPOD_EDITION??e.XPOD_EDITION??"local"},{label:"Configuration source",value:".env.local / runtime bootstrap"},{label:"Service startup",value:"Gateway supervises Solid Server and API Server"},{label:"Automatic restart",value:"Enabled for managed child services"}]}),s.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[s.jsx(j,{label:"Base URL",value:a,onChange:o}),s.jsx(j,{label:"Data directory",value:c,onChange:i})]}),s.jsx(F,{onClick:()=>r({CSS_BASE_URL:a,CSS_ROOT_FILE_PATH:c})})]})}function xt({env:e,provision:t,save:r}){const[n,a]=u.useState(e.XPOD_CLOUD_API_ENDPOINT??""),[o,c]=u.useState(e.XPOD_NODE_ID??""),[i,d]=u.useState(e.XPOD_SP_DOMAIN??"");return u.useEffect(()=>{let l=!1;return queueMicrotask(()=>{l||(a(e.XPOD_CLOUD_API_ENDPOINT??""),c(e.XPOD_NODE_ID??""),d(e.XPOD_SP_DOMAIN??""))}),()=>{l=!0}},[e]),s.jsxs("div",{className:"space-y-4",children:[s.jsx(N,{rows:[{label:"Node registration",value:t?.registered?"Registered":"Not registered",detail:t?.nodeId??"Node ID not reported"},{label:"Cluster coordination",value:t?.cloudUrl??"Not configured",detail:t?.managed?"This node is cluster-managed":"Not cluster-managed"},{label:"Service-provider domain",value:t?.serviceProviderDomain??"Not allocated"}]}),s.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[s.jsx(j,{label:"Cloud endpoint",value:n,onChange:a}),s.jsx(j,{label:"Node ID",value:o,onChange:c}),s.jsx(j,{label:"Service-provider domain",value:i,onChange:d})]}),s.jsx(F,{onClick:()=>r({XPOD_CLOUD_API_ENDPOINT:n,XPOD_NODE_ID:o,XPOD_SP_DOMAIN:i})})]})}function yt({env:e,save:t}){const[r,n]=u.useState(e.CSS_LOGGING_LEVEL??"info"),[a,o]=u.useState(e.CSS_SHOW_STACK_TRACE==="true");return u.useEffect(()=>{let c=!1;return queueMicrotask(()=>{c||(n(e.CSS_LOGGING_LEVEL??"info"),o(e.CSS_SHOW_STACK_TRACE==="true"))}),()=>{c=!0}},[e]),s.jsxs("div",{className:"space-y-4",children:[s.jsx(N,{rows:[{label:"Log retention",value:"30 days",detail:"Runtime logging profile"},{label:"Configuration provenance",value:".env.local allowlist"},{label:"Restart requirement",value:"Required after save"}]}),s.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:["Logging level",s.jsxs("select",{value:r,onChange:c=>n(c.target.value),className:"block h-10 w-full rounded-md border border-input bg-background px-3 sm:max-w-xs",children:[s.jsx("option",{children:"debug"}),s.jsx("option",{children:"info"}),s.jsx("option",{children:"warn"}),s.jsx("option",{children:"error"})]})]}),s.jsxs("label",{className:"flex items-center justify-between gap-3 rounded-md border border-border p-3 text-sm font-medium",children:["Show stack traces",s.jsx("input",{type:"checkbox",checked:a,onChange:c=>o(c.target.checked)})]}),s.jsx(F,{onClick:()=>t({CSS_LOGGING_LEVEL:r,CSS_SHOW_STACK_TRACE:String(a)})})]})}function N({rows:e}){return s.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:e.map(t=>s.jsxs("div",{className:"rounded-lg border border-border p-3",children:[s.jsx("div",{className:"text-xs text-muted-foreground",children:t.label}),s.jsx("div",{className:"mt-1 break-all text-sm font-medium",children:t.value}),t.detail?s.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:t.detail}):null]},t.label))})}function j({label:e,value:t,onChange:r}){return s.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:[e,s.jsx("input",{value:t,onChange:n=>r(n.target.value),className:"block h-10 w-full rounded-md border border-input bg-background px-3"})]})}function F({onClick:e}){return s.jsx("div",{className:"flex justify-end",children:s.jsx(C,{type:"button",onClick:e,children:"Save configuration"})})}function oe(e){if(!e)return"Not discovered";try{return new URL(e).pathname.split("/").filter(Boolean).at(-1)||new URL(e).hostname}catch{return e}}function At(e){return e?e.status==="pass"?"Reachable":e.status==="fail"?"Not reachable":"Not verified":"Not checked"}const St={pod:"Pod","identity-access":"Identity & Access",storage:"Storage",runtime:"Runtime",cloud:"Cloud",advanced:"Advanced"},Ct={pod:"Current Pod identity and authority boundary.","identity-access":"Session, account, and app/service access.",storage:"Authority storage backends and health configuration.",runtime:"Edition, startup, paths, and restart behavior.",cloud:"Node registration and cluster coordination.",advanced:"Bounded logging and runtime compatibility controls."};export{Pt as PodSettingsSubjectPanel};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{V as h,k as f,W as w,h as J,Y as pe}from"./global-BOl78fr8.js";import{r as me,a as he,b as be}from"./index-browser-Bk7jaLCd.js";import{A as ae,s as M,d as B,c as k,o as X,p as ye,b as we,C as L}from"./ai-connections-DexTPyfC.js";function ve(e){const t=new TextEncoder().encode(JSON.stringify(e));let r="";for(const o of t)r+=String.fromCharCode(o);return btoa(r)}function Ie(e){const t=atob(e),r=Uint8Array.from(t,o=>o.charCodeAt(0));return JSON.parse(new TextDecoder().decode(r))}function ge(e){return JSON.stringify({algorithm:"PLAINTEXT",encoding:"base64",ciphertext:ve(e.secret),webId:e.webId,credentialIri:e.credentialIri,provider:e.provider})}function Se(e){if(!(typeof e.envelope!="string"||!e.envelope.trim()))try{const t=JSON.parse(e.envelope);if(t.algorithm!=="PLAINTEXT"||t.webId!==e.webId||t.provider!==e.provider||t.credentialIri!==e.credentialIri)return;const r=t.encoding==="base64"?Ie(String(t.ciphertext)):JSON.parse(String(t.ciphertext));return typeof r=="object"&&r!==null&&!Array.isArray(r)?r:void 0}catch{return}}function _e(e){return h.buildId({id:e})}function Re(e){return h.buildId({id:`custom-instance-${encodeURIComponent(e)}.ttl#this`})}function Q(e,t){const r=crypto.randomUUID();return t==="local"?`${e}-local-${r}`:`${e}-${r}`}function et(e){const t=(e.split("#",1)[0]??e).split("/").filter(Boolean).at(-1)??"",r=t.endsWith(".ttl")?t.slice(0,-4):t;if(r)return r.startsWith("custom-")||r==="custom"?"custom":ae.find(o=>r===o||r.startsWith(`${o}-`))}function A(e){if(!e)return;const t=e.split("#",1)[0]??e,r=t.split("/").filter(Boolean).at(-1)??t;if(!r)return;const o=r.endsWith(".ttl")?r:`${r}.ttl`,n=e.indexOf("#");return n<0?o:`${o}${e.slice(n)}`}function R(e){const t=A(e);if(t)return(t.split("#",1)[0]??t).replace(/\.ttl$/u,"")}const xe={"api-key":"添加 API Key","browser-login":"浏览器登录","browser-oauth":"浏览器登录","device-code":"设备码登录","local-session-import":"已有登录态","local-service":"本地服务"};function Ee(e){return e.label??xe[e.id]}function tt(e){return e.map(t=>{const r=Ee(t);return r===t.label?t:{...t,label:r}})}function z(e){switch(e){case"openai":return"OpenAI";case"anthropic":return"Anthropic";case"kimi":return"Kimi";case"bailian":return"百炼";case"deepseek":return"DeepSeek";case"zhipu":return"智谱 AI";case"ollama":return"Ollama";case"custom":return"Custom"}}var Ae=me(),Ce=he();const O=Array.from(new Set([...ae,"zhipu","ollama","custom"])),Y=new WeakMap,Pe=J.storage.base.slice(J.storage.base.lastIndexOf("/")+1);function Ue(e){const t=e.indexOf("#");return t<0?e:e.slice(0,t)}function rt(e){Me(),pe({createQueryEngine:async()=>new be.QueryEngine});const t=new URL("settings/-/sparql",e.podUrl).toString();return f.setSparqlEndpoint(t),h.setSparqlEndpoint(t),w.setSparqlEndpoint(t),{credentialsTableDocument(){return f.buildIri(e.podUrl,{id:Pe})},providerTableDocument(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");const i=n==="custom"&&o?j(o):x(n);return h.buildIri(e.podUrl,{id:Ue(i)})},async listModels(){return await e.database.init?.(w),(await e.database.select().from(w).execute()).map(ze).filter(U)},async listProviders(){await e.database.init?.(f,h,w);const r=await e.database.select().from(f).execute(),o=await e.database.select().from(h).execute(),n=await e.database.select().from(w).execute();return ke(e,r,o,n)},async createApiKeyCredential(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");await e.database.init?.(f,h);const i=c(o.id),a=i??f.buildId({id:Q(n,"apiKey")}),d=1,u=M(n,o.offeringId??B(n,"apiKey")),l=o.baseUrl??X(n,u),s=F(o.proxyUrl),p={id:a,provider:n==="custom"?j(a):x(n),service:"ai",authMode:"apiKey",offeringId:u,status:"active",accountLabel:o.label,label:o.label,baseUrl:l,proxyUrl:s,keyVersion:String(d),reauthRequired:!1,encryptedSecret:$(e,n,a,{type:"apiKey",apiKey:o.apiKey}),encryptionAlgorithm:"PLAINTEXT",metadata:{...k({offeringId:u,baseUrl:l,priority:o.priority}),...o.compatibility?{compatibility:o.compatibility}:{}}};return await ee(e,a,p,i!==void 0),y(e,n,p)},async createLocalCredential(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");await e.database.init?.(f,h);const i=c(o.id),a=i??f.buildId({id:Q(n,"local")}),d=M(n,o.offeringId??B(n,"local")),u=o.baseUrl??X(n,d),l={id:a,provider:x(n),service:"ai",authMode:"local",offeringId:d,status:"active",accountLabel:o.label??"Local",label:o.label??"Local",baseUrl:u,keyVersion:"1",reauthRequired:!1,encryptedSecret:$(e,n,a,{type:"local"}),encryptionAlgorithm:"PLAINTEXT",metadata:k({offeringId:d,baseUrl:u,priority:o.priority})};return await ee(e,a,l,i!==void 0),y(e,n,l)},async saveOAuthCredential(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");const a=(Y.get(e.database)??Promise.resolve()).then(async()=>{await e.database.init?.(f,h);const d=M(n,o.offeringId??B(n,"deviceCode")),l=(await e.database.select().from(f).execute()).find(_=>{const C=y(e,n,_);if(!C||C.authMode!=="deviceCode"&&C.authMode!=="oauth"||re(n,C.offeringId)!==re(n,d)||_.status!=="active"&&_.status!=="disabled")return!1;const fe=T(e,n,C.id,_.encryptedSecret);return Le(o,I(_.metadata),fe)}),s=l&&y(e,n,l),p=I(l?.metadata),m=s&&T(e,n,s.id,l?.encryptedSecret),b=s?.id??f.buildId({id:`${n}-oauth-${crypto.randomUUID()}`}),g=o.accountLabel??"OAuth",S=o.accountId??c(p?.accountId)??c(m?.accountId),H=o.accountSubject??c(p?.authoritativeSubject)??c(m?.accountSubject)??c(m?.authoritativeSubject),N={...l,id:b,provider:x(n),service:"ai",authMode:"deviceCodeOAuth",offeringId:d,status:s?.enabled===!1?"disabled":"active",accountLabel:l?.accountLabel??g,label:l?.label??g,expiresAt:o.expiresAt,scopes:o.scope?o.scope.split(/\s+/u).filter(Boolean):void 0,keyVersion:String((s?.version??0)+1),reauthRequired:!1,encryptedSecret:$(e,n,b,{type:"deviceCodeOAuth",accessToken:o.accessToken,refreshToken:o.refreshToken,expiresAt:o.expiresAt,scope:o.scope,idToken:o.idToken,accountId:S,accountSubject:H,accountLabel:o.accountLabel,offeringId:d,authorizationMethodId:o.authorizationMethodId}),encryptionAlgorithm:"PLAINTEXT",metadata:{...p,...k({offeringId:d,priority:s?.priority,enabled:s?.enabled,health:"healthy"}),authoritativeSubject:H,accountId:S,authorizationMethodId:o.authorizationMethodId}};if(l){const _={...N};if(delete _.id,!await e.database.updateById(f,b,_))throw new Error("credential_version_conflict")}else await e.database.insert(f).values(N).execute();return y(e,n,N)});return Y.set(e.database,a.then(()=>{},()=>{})),a},async updateOAuthCredential(r,o,n,i){const a=v(r);if(!a)throw new Error("unsupported_provider");await e.database.init?.(f,h);const d=await e.database.findById(f,o),u=d&&y(e,a,d);if(!d||!u||u.authMode!=="deviceCode")throw new Error("oauth_credential_not_found");if(u.version!==n)throw new Error("credential_version_conflict");const l=T(e,a,o,d.encryptedSecret),s=i.accountId??c(I(d.metadata)?.accountId)??c(l?.accountId),p=i.accountSubject??c(I(d.metadata)?.authoritativeSubject)??c(l?.accountSubject)??c(l?.authoritativeSubject),m=M(a,i.offeringId??u.offeringId),b={expiresAt:i.expiresAt,scopes:i.scope?i.scope.split(/\s+/u).filter(Boolean):void 0,keyVersion:String(n+1),reauthRequired:!1,status:"active",encryptedSecret:$(e,a,o,{type:"deviceCodeOAuth",accessToken:i.accessToken,refreshToken:i.refreshToken,expiresAt:i.expiresAt,scope:i.scope,idToken:i.idToken,accountId:s,accountSubject:p,accountLabel:i.accountLabel??c(d.accountLabel),offeringId:m,authorizationMethodId:i.authorizationMethodId??c(I(d.metadata)?.authorizationMethodId)}),accountLabel:i.accountLabel??c(d.accountLabel),label:i.accountLabel??c(d.label),offeringId:m,metadata:{...I(d.metadata),...k({offeringId:m,health:"healthy"}),authoritativeSubject:p,accountId:s,authorizationMethodId:i.authorizationMethodId??c(I(d.metadata)?.authorizationMethodId)}},g=await e.database.updateById(f,o,b);if(!g)throw new Error("credential_version_conflict");return y(e,a,g)},async updateProviderCredential(r,o,n){const i=v(r);if(!i)throw new Error("unsupported_provider");await e.database.init?.(f,h);const a=await e.database.findById(f,o),d=a&&y(e,i,a);if(!a||!d)throw new Error("credential_not_found");if(d.version!==n.expectedVersion)throw new Error("credential_version_conflict");const u={...I(a.metadata),...n.priority===void 0?{}:{priority:n.priority},...n.enabled===void 0?{}:{enabled:n.enabled},...n.baseUrl===void 0?{}:{baseUrl:n.baseUrl},...n.proxyUrl===void 0?{}:{proxyUrl:F(n.proxyUrl)}},l={...n.label===void 0?{}:{accountLabel:n.label,label:n.label},...n.baseUrl===void 0?{}:{baseUrl:n.baseUrl},...n.proxyUrl===void 0?{}:{proxyUrl:F(n.proxyUrl)},...n.enabled===void 0?{}:{status:n.enabled?"active":"disabled"},keyVersion:String(d.version+1),metadata:u},s=await e.database.updateById(f,o,l);if(!s)throw new Error("credential_update_failed");const p=y(e,i,s);if(!p)throw new Error("credential_update_failed");return p},async markCredentialHealth(r,o,n,i){const a=v(r);if(!a)throw new Error("unsupported_provider");await e.database.init?.(f);const d=await e.database.findById(f,o),u=d&&y(e,a,d);if(!d||!u)throw new Error("credential_not_found");if(u.version!==i)throw new Error("credential_version_conflict");const l=await e.database.updateById(f,o,{keyVersion:String(u.version+1),metadata:{...I(d.metadata),health:n}});if(!l)throw new Error("credential_update_failed");const s=y(e,a,l);if(!s)throw new Error("credential_update_failed");return s},async deleteProviderCredential(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");await e.database.init?.(f,h);const i=await e.database.findById(f,o),a=i&&y(e,n,i);if(a)return await e.database.deleteById(f,o),a},async readCredentialSecret(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");const i=await e.database.findById(f,o);if(!i||!y(e,n,i))throw new Error("credential_not_found");const a=T(e,n,o,i.encryptedSecret);if(!a)throw new Error("credential_secret_unavailable");return a},async saveDiscoveredModels(r,o,n){const i=v(r);if(!i)throw new Error("unsupported_provider");await e.database.init?.(f,h,w);const a=await G(e,o),d=te(i,a);await oe(e.database,d,z(i));const u=await e.database.select().from(w).execute(),l=new Set(u.map(m=>c(m.id)).filter(U)),s=n.map(Ne).filter(U),p=new Set(s.map(m=>m.id));for(const m of u.filter(b=>De(b,d,i))){const b=E(c(m.id),d)??de(c(m.id));b&&!p.has(b)&&c(m.status)!=="unavailable"&&await e.database.updateById(w,String(m.id),{status:"unavailable"})}for(const m of s)await Fe(e.database,d,m,l)},async saveModelSelection(r,o,n){const i=v(r);if(!i)throw new Error("unsupported_provider");await e.database.init?.(h,w);const a=i==="custom"&&n?await G(e,n):null;if(i==="custom"&&n&&!a)throw new Error("credential_not_found");const d=a?te(i,a):x(i);await oe(e.database,d,z(i));const l=(await e.database.select().from(h).execute()).find(S=>P(c(S.id),d)),s=c(l?.id)??d,p=le(l?.hasModel),m=await e.database.select().from(w).execute(),b=[...new Set(o.map(S=>Ke(i,S,m,a?d:void 0)))];if(!await e.database.updateById(h,s,{hasModel:b}))throw new Error("provider_model_selection_update_failed");e.authenticatedFetch&&await Oe(e,s,p,b)}}}const Te="https://undefineds.co/ns#hasModel";async function Oe(e,t,r,o){const n=D(h,e.podUrl,t),i=r.map(s=>D(w,e.podUrl,s)),a=o.map(s=>D(w,e.podUrl,s)),d=s=>s.map(p=>`<${n}> <${Te}> <${p}> .`).join(`
|
|
1
|
+
import{V as h,k as f,W as w,h as J,Y as pe}from"./global-cmKEraT4.js";import{r as me,a as he,b as be}from"./index-browser-B0slhJKc.js";import{A as ae,s as M,d as B,c as k,o as X,p as ye,b as we,C as L}from"./ai-connections-DexTPyfC.js";function ve(e){const t=new TextEncoder().encode(JSON.stringify(e));let r="";for(const o of t)r+=String.fromCharCode(o);return btoa(r)}function Ie(e){const t=atob(e),r=Uint8Array.from(t,o=>o.charCodeAt(0));return JSON.parse(new TextDecoder().decode(r))}function ge(e){return JSON.stringify({algorithm:"PLAINTEXT",encoding:"base64",ciphertext:ve(e.secret),webId:e.webId,credentialIri:e.credentialIri,provider:e.provider})}function Se(e){if(!(typeof e.envelope!="string"||!e.envelope.trim()))try{const t=JSON.parse(e.envelope);if(t.algorithm!=="PLAINTEXT"||t.webId!==e.webId||t.provider!==e.provider||t.credentialIri!==e.credentialIri)return;const r=t.encoding==="base64"?Ie(String(t.ciphertext)):JSON.parse(String(t.ciphertext));return typeof r=="object"&&r!==null&&!Array.isArray(r)?r:void 0}catch{return}}function _e(e){return h.buildId({id:e})}function Re(e){return h.buildId({id:`custom-instance-${encodeURIComponent(e)}.ttl#this`})}function Q(e,t){const r=crypto.randomUUID();return t==="local"?`${e}-local-${r}`:`${e}-${r}`}function et(e){const t=(e.split("#",1)[0]??e).split("/").filter(Boolean).at(-1)??"",r=t.endsWith(".ttl")?t.slice(0,-4):t;if(r)return r.startsWith("custom-")||r==="custom"?"custom":ae.find(o=>r===o||r.startsWith(`${o}-`))}function A(e){if(!e)return;const t=e.split("#",1)[0]??e,r=t.split("/").filter(Boolean).at(-1)??t;if(!r)return;const o=r.endsWith(".ttl")?r:`${r}.ttl`,n=e.indexOf("#");return n<0?o:`${o}${e.slice(n)}`}function R(e){const t=A(e);if(t)return(t.split("#",1)[0]??t).replace(/\.ttl$/u,"")}const xe={"api-key":"添加 API Key","browser-login":"浏览器登录","browser-oauth":"浏览器登录","device-code":"设备码登录","local-session-import":"已有登录态","local-service":"本地服务"};function Ee(e){return e.label??xe[e.id]}function tt(e){return e.map(t=>{const r=Ee(t);return r===t.label?t:{...t,label:r}})}function z(e){switch(e){case"openai":return"OpenAI";case"anthropic":return"Anthropic";case"kimi":return"Kimi";case"bailian":return"百炼";case"deepseek":return"DeepSeek";case"zhipu":return"智谱 AI";case"ollama":return"Ollama";case"custom":return"Custom"}}var Ae=me(),Ce=he();const O=Array.from(new Set([...ae,"zhipu","ollama","custom"])),Y=new WeakMap,Pe=J.storage.base.slice(J.storage.base.lastIndexOf("/")+1);function Ue(e){const t=e.indexOf("#");return t<0?e:e.slice(0,t)}function rt(e){Me(),pe({createQueryEngine:async()=>new be.QueryEngine});const t=new URL("settings/-/sparql",e.podUrl).toString();return f.setSparqlEndpoint(t),h.setSparqlEndpoint(t),w.setSparqlEndpoint(t),{credentialsTableDocument(){return f.buildIri(e.podUrl,{id:Pe})},providerTableDocument(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");const i=n==="custom"&&o?j(o):x(n);return h.buildIri(e.podUrl,{id:Ue(i)})},async listModels(){return await e.database.init?.(w),(await e.database.select().from(w).execute()).map(ze).filter(U)},async listProviders(){await e.database.init?.(f,h,w);const r=await e.database.select().from(f).execute(),o=await e.database.select().from(h).execute(),n=await e.database.select().from(w).execute();return ke(e,r,o,n)},async createApiKeyCredential(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");await e.database.init?.(f,h);const i=c(o.id),a=i??f.buildId({id:Q(n,"apiKey")}),d=1,u=M(n,o.offeringId??B(n,"apiKey")),l=o.baseUrl??X(n,u),s=F(o.proxyUrl),p={id:a,provider:n==="custom"?j(a):x(n),service:"ai",authMode:"apiKey",offeringId:u,status:"active",accountLabel:o.label,label:o.label,baseUrl:l,proxyUrl:s,keyVersion:String(d),reauthRequired:!1,encryptedSecret:$(e,n,a,{type:"apiKey",apiKey:o.apiKey}),encryptionAlgorithm:"PLAINTEXT",metadata:{...k({offeringId:u,baseUrl:l,priority:o.priority}),...o.compatibility?{compatibility:o.compatibility}:{}}};return await ee(e,a,p,i!==void 0),y(e,n,p)},async createLocalCredential(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");await e.database.init?.(f,h);const i=c(o.id),a=i??f.buildId({id:Q(n,"local")}),d=M(n,o.offeringId??B(n,"local")),u=o.baseUrl??X(n,d),l={id:a,provider:x(n),service:"ai",authMode:"local",offeringId:d,status:"active",accountLabel:o.label??"Local",label:o.label??"Local",baseUrl:u,keyVersion:"1",reauthRequired:!1,encryptedSecret:$(e,n,a,{type:"local"}),encryptionAlgorithm:"PLAINTEXT",metadata:k({offeringId:d,baseUrl:u,priority:o.priority})};return await ee(e,a,l,i!==void 0),y(e,n,l)},async saveOAuthCredential(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");const a=(Y.get(e.database)??Promise.resolve()).then(async()=>{await e.database.init?.(f,h);const d=M(n,o.offeringId??B(n,"deviceCode")),l=(await e.database.select().from(f).execute()).find(_=>{const C=y(e,n,_);if(!C||C.authMode!=="deviceCode"&&C.authMode!=="oauth"||re(n,C.offeringId)!==re(n,d)||_.status!=="active"&&_.status!=="disabled")return!1;const fe=T(e,n,C.id,_.encryptedSecret);return Le(o,I(_.metadata),fe)}),s=l&&y(e,n,l),p=I(l?.metadata),m=s&&T(e,n,s.id,l?.encryptedSecret),b=s?.id??f.buildId({id:`${n}-oauth-${crypto.randomUUID()}`}),g=o.accountLabel??"OAuth",S=o.accountId??c(p?.accountId)??c(m?.accountId),H=o.accountSubject??c(p?.authoritativeSubject)??c(m?.accountSubject)??c(m?.authoritativeSubject),N={...l,id:b,provider:x(n),service:"ai",authMode:"deviceCodeOAuth",offeringId:d,status:s?.enabled===!1?"disabled":"active",accountLabel:l?.accountLabel??g,label:l?.label??g,expiresAt:o.expiresAt,scopes:o.scope?o.scope.split(/\s+/u).filter(Boolean):void 0,keyVersion:String((s?.version??0)+1),reauthRequired:!1,encryptedSecret:$(e,n,b,{type:"deviceCodeOAuth",accessToken:o.accessToken,refreshToken:o.refreshToken,expiresAt:o.expiresAt,scope:o.scope,idToken:o.idToken,accountId:S,accountSubject:H,accountLabel:o.accountLabel,offeringId:d,authorizationMethodId:o.authorizationMethodId}),encryptionAlgorithm:"PLAINTEXT",metadata:{...p,...k({offeringId:d,priority:s?.priority,enabled:s?.enabled,health:"healthy"}),authoritativeSubject:H,accountId:S,authorizationMethodId:o.authorizationMethodId}};if(l){const _={...N};if(delete _.id,!await e.database.updateById(f,b,_))throw new Error("credential_version_conflict")}else await e.database.insert(f).values(N).execute();return y(e,n,N)});return Y.set(e.database,a.then(()=>{},()=>{})),a},async updateOAuthCredential(r,o,n,i){const a=v(r);if(!a)throw new Error("unsupported_provider");await e.database.init?.(f,h);const d=await e.database.findById(f,o),u=d&&y(e,a,d);if(!d||!u||u.authMode!=="deviceCode")throw new Error("oauth_credential_not_found");if(u.version!==n)throw new Error("credential_version_conflict");const l=T(e,a,o,d.encryptedSecret),s=i.accountId??c(I(d.metadata)?.accountId)??c(l?.accountId),p=i.accountSubject??c(I(d.metadata)?.authoritativeSubject)??c(l?.accountSubject)??c(l?.authoritativeSubject),m=M(a,i.offeringId??u.offeringId),b={expiresAt:i.expiresAt,scopes:i.scope?i.scope.split(/\s+/u).filter(Boolean):void 0,keyVersion:String(n+1),reauthRequired:!1,status:"active",encryptedSecret:$(e,a,o,{type:"deviceCodeOAuth",accessToken:i.accessToken,refreshToken:i.refreshToken,expiresAt:i.expiresAt,scope:i.scope,idToken:i.idToken,accountId:s,accountSubject:p,accountLabel:i.accountLabel??c(d.accountLabel),offeringId:m,authorizationMethodId:i.authorizationMethodId??c(I(d.metadata)?.authorizationMethodId)}),accountLabel:i.accountLabel??c(d.accountLabel),label:i.accountLabel??c(d.label),offeringId:m,metadata:{...I(d.metadata),...k({offeringId:m,health:"healthy"}),authoritativeSubject:p,accountId:s,authorizationMethodId:i.authorizationMethodId??c(I(d.metadata)?.authorizationMethodId)}},g=await e.database.updateById(f,o,b);if(!g)throw new Error("credential_version_conflict");return y(e,a,g)},async updateProviderCredential(r,o,n){const i=v(r);if(!i)throw new Error("unsupported_provider");await e.database.init?.(f,h);const a=await e.database.findById(f,o),d=a&&y(e,i,a);if(!a||!d)throw new Error("credential_not_found");if(d.version!==n.expectedVersion)throw new Error("credential_version_conflict");const u={...I(a.metadata),...n.priority===void 0?{}:{priority:n.priority},...n.enabled===void 0?{}:{enabled:n.enabled},...n.baseUrl===void 0?{}:{baseUrl:n.baseUrl},...n.proxyUrl===void 0?{}:{proxyUrl:F(n.proxyUrl)}},l={...n.label===void 0?{}:{accountLabel:n.label,label:n.label},...n.baseUrl===void 0?{}:{baseUrl:n.baseUrl},...n.proxyUrl===void 0?{}:{proxyUrl:F(n.proxyUrl)},...n.enabled===void 0?{}:{status:n.enabled?"active":"disabled"},keyVersion:String(d.version+1),metadata:u},s=await e.database.updateById(f,o,l);if(!s)throw new Error("credential_update_failed");const p=y(e,i,s);if(!p)throw new Error("credential_update_failed");return p},async markCredentialHealth(r,o,n,i){const a=v(r);if(!a)throw new Error("unsupported_provider");await e.database.init?.(f);const d=await e.database.findById(f,o),u=d&&y(e,a,d);if(!d||!u)throw new Error("credential_not_found");if(u.version!==i)throw new Error("credential_version_conflict");const l=await e.database.updateById(f,o,{keyVersion:String(u.version+1),metadata:{...I(d.metadata),health:n}});if(!l)throw new Error("credential_update_failed");const s=y(e,a,l);if(!s)throw new Error("credential_update_failed");return s},async deleteProviderCredential(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");await e.database.init?.(f,h);const i=await e.database.findById(f,o),a=i&&y(e,n,i);if(a)return await e.database.deleteById(f,o),a},async readCredentialSecret(r,o){const n=v(r);if(!n)throw new Error("unsupported_provider");const i=await e.database.findById(f,o);if(!i||!y(e,n,i))throw new Error("credential_not_found");const a=T(e,n,o,i.encryptedSecret);if(!a)throw new Error("credential_secret_unavailable");return a},async saveDiscoveredModels(r,o,n){const i=v(r);if(!i)throw new Error("unsupported_provider");await e.database.init?.(f,h,w);const a=await G(e,o),d=te(i,a);await oe(e.database,d,z(i));const u=await e.database.select().from(w).execute(),l=new Set(u.map(m=>c(m.id)).filter(U)),s=n.map(Ne).filter(U),p=new Set(s.map(m=>m.id));for(const m of u.filter(b=>De(b,d,i))){const b=E(c(m.id),d)??de(c(m.id));b&&!p.has(b)&&c(m.status)!=="unavailable"&&await e.database.updateById(w,String(m.id),{status:"unavailable"})}for(const m of s)await Fe(e.database,d,m,l)},async saveModelSelection(r,o,n){const i=v(r);if(!i)throw new Error("unsupported_provider");await e.database.init?.(h,w);const a=i==="custom"&&n?await G(e,n):null;if(i==="custom"&&n&&!a)throw new Error("credential_not_found");const d=a?te(i,a):x(i);await oe(e.database,d,z(i));const l=(await e.database.select().from(h).execute()).find(S=>P(c(S.id),d)),s=c(l?.id)??d,p=le(l?.hasModel),m=await e.database.select().from(w).execute(),b=[...new Set(o.map(S=>Ke(i,S,m,a?d:void 0)))];if(!await e.database.updateById(h,s,{hasModel:b}))throw new Error("provider_model_selection_update_failed");e.authenticatedFetch&&await Oe(e,s,p,b)}}}const Te="https://undefineds.co/ns#hasModel";async function Oe(e,t,r,o){const n=D(h,e.podUrl,t),i=r.map(s=>D(w,e.podUrl,s)),a=o.map(s=>D(w,e.podUrl,s)),d=s=>s.map(p=>`<${n}> <${Te}> <${p}> .`).join(`
|
|
2
2
|
`),u=[i.length>0?`DELETE DATA { ${d(i)} }`:void 0,a.length>0?`INSERT DATA { ${d(a)} }`:void 0].filter(s=>!!s);if(u.length===0)return;const l=await e.authenticatedFetch(n.split("#",1)[0],{method:"PATCH",headers:{"content-type":"application/sparql-update"},body:u.join(`;
|
|
3
3
|
`)});if(!l.ok)throw new Error(`provider_model_selection_persist_failed:${l.status}`)}function D(e,t,r){return/^https?:\/\//u.test(r)?r:e.buildIri(t,{id:r})}async function G(e,t){const r=await e.database.findById(f,t);return r||((await e.database.select().from(f).execute()).find(n=>{const i=c(n.id);return i===t||(i?f.buildIri(e.podUrl,{id:i})===t:!1)})??null)}function Me(){Z(Ae.ActionObserverHttp.prototype),Z(Ce.ActionObserverHttp.prototype)}function Z(e){const t=e;if(t.__xpodObservedActorsPatch)return;const r=t.onRun;t.onRun=function(o,n,i){return Array.isArray(this.observedActors)||(this.observedActors=[]),r.call(this,o,n,i)},t.__xpodObservedActorsPatch=!0}function ke(e,t,r,o){const n=t.filter(i=>c(i.service)==="ai").filter(i=>c(i.status)!=="revoked");return O.map(i=>{const a=n.map(s=>y(e,i,s)).filter(U).sort((s,p)=>s.priority-p.priority||s.id.localeCompare(p.id)),d=r.find(s=>R(c(s.id))===i),l=le(d?.hasModel).map(s=>Be(i,s,o));return{id:i,name:i==="custom"?a.find(s=>s.label)?.label??z(i):z(i),offerings:i==="custom"?Ve(n.filter(s=>y(e,i,s))):ye(i,e.openAiSubscriptionImportAvailable===!0),credentials:a,selectedModels:l,status:qe(a)}})}async function ee(e,t,r,o){if(!(o?await e.database.findById(f,t):null)){await e.database.insert(f).values(r).execute();return}const i={...r};if(delete i.id,!await e.database.updateById(f,t,i))throw new Error("credential_create_failed")}function $(e,t,r,o){return ge({webId:e.webId,provider:t,credentialIri:f.buildIri(e.podUrl,{id:r}),secret:o})}function Le(e,t,r){let o=!1;for(const[n,i]of[[e.accountId,[t?.accountId,r?.accountId]],[e.accountSubject,[t?.authoritativeSubject,r?.accountSubject,r?.authoritativeSubject]]]){const a=[...new Set(i.map(c).filter(U).filter(d=>d.trim()))];if(a.length>1)return!1;if(!(!n?.trim()||!a.length)){if(a[0]!==n)return!1;o=!0}}return o}function y(e,t,r){const o=c(r.id);if(!o)return;const n=q(c(r.provider))??He(o);if(n!==t)return;const i=I(r.metadata),a=ue(r.authMode);if(a)return{id:o,provider:n,offeringId:ce(r,n,a),authMode:a,label:c(r.accountLabel)??c(r.label),enabled:ie(i?.enabled)??c(r.status)==="active",priority:ne(i?.priority)??100,health:Xe(i?.health)??(ie(r.reauthRequired)?"expired":"healthy"),maskedHint:We(e,n,o,r.encryptedSecret),baseUrl:c(r.baseUrl),proxyUrl:Je(c(r.proxyUrl)??c(i?.proxyUrl)),compatibility:$e(i?.compatibility),expiresAt:Qe(r.expiresAt),version:ne(r.keyVersion)??0}}function $e(e){return e==="auto"||e==="openai"||e==="anthropic"?e:void 0}function ce(e,t,r){return c(e.offeringId)??c(I(e.metadata)?.offeringId)??W(c(e.provider))??B(t,r)}function Be(e,t,r){const o=r.find(d=>A(c(d.id))===A(t)),n=c(o?.isProvidedBy),i=o?E(t,n??e)??t:E(t,e)??t,a=o??r.find(d=>{const u=c(d.id),l=c(d.isProvidedBy);return u===t||E(u,e)===i||q(l)===e&&E(u,l??e)===i});return{id:i,provider:e,offeringId:W(c(a?.isProvidedBy)),credentialId:V(n),resourceId:c(a?.id)??t,displayName:c(a?.displayName),availability:c(a?.status)==="unavailable"||!a?"unavailable":"available"}}function ze(e){const t=c(e.isProvidedBy),r=q(t),o=r&&E(c(e.id),t??r);if(!(!r||!o))return{id:o,provider:r,offeringId:W(t),credentialId:V(t),resourceId:c(e.id),displayName:c(e.displayName),availability:c(e.status)==="unavailable"?"unavailable":"available",...je(e)}}function Ne(e){const t=I(e),r=c(t?.id);if(r)return{id:r,displayName:c(t?.displayName),modelType:se(t?.modelType)}}function te(e,t){const r=V(c(t?.provider));return r?j(r):x(e)}function x(e){return _e(e)}function j(e){return Re(e)}function V(e){const t=R(e),r=t?.startsWith("custom-instance-")?t.slice(16):void 0;if(r)try{return decodeURIComponent(r)}catch{return}}function re(e,t){if(!t)return;const r=t.trim().toLowerCase();if(e==="bailian"){if(r==="token-plan")return"token-plan-personal";if(r==="coding-plan")return"coding-plan-pro";if(r==="payg")return"pay-as-you-go"}return r}function P(e,t){const r=A(e),o=A(t);return r!==void 0&&r===o}function De(e,t,r){const o=c(e.isProvidedBy);return P(o,t)?!0:r==="custom"?!1:R(o)?.startsWith(`${r}-`)===!0}function de(e){if(!e)return;const t=e.lastIndexOf("#");if(t<0||t===e.length-1)return;const r=e.slice(t+1);try{return decodeURIComponent(r)}catch{return r}}async function oe(e,t,r){(await e.select().from(h).execute()).some(n=>P(c(n.id),t))||await e.insert(h).values({id:t,displayName:r}).execute()}async function Fe(e,t,r,o){const n=K(t,r.id),i={displayName:r.displayName??r.id,isProvidedBy:t,status:"active",...r.modelType?{modelType:r.modelType}:{}};if(o.has(n)){await e.updateById(w,n,i);return}await e.insert(w).values({id:n,...i}).execute(),o.add(n)}function je(e){const t=se(e.modelType);return t?{modelType:t,...t==="embedding"?{capabilities:["embedding"]}:{}}:{}}function se(e){const t=c(e)?.trim().toLowerCase();return t==="chat"||t==="embedding"?t:void 0}function K(e,t){const r=A(e)??`${e}.ttl`;return`${r.split("#",1)[0]??r}#${encodeURIComponent(t)}`}function Ke(e,t,r,o){const n=c(t.resourceId),i=o??x(e),a=c(t.id),d=a?r.filter(l=>{const s=c(l.isProvidedBy),p=R(s);return(o?P(s,o):p===e||p?.startsWith(`${e}-`)===!0)&&E(c(l.id),s??i)===a}):[],u=o||d.length===1?d[0]:void 0;if(n){const l=r.find(b=>c(b.id)===n);if(!l&&u)return String(u.id);const s=c(l?.isProvidedBy),p=R(s),m=o?P(s,o):p===e||p?.startsWith(`${e}-`)===!0;if(l&&!m)throw new Error("invalid_model_selection_resource");if(!l){const b=a??de(n),g=R(n),S=o?P(g,o):g===e||g?.startsWith(`${e}-`)===!0;if(!b||!S)throw new Error("invalid_model_selection_resource");return K(i,b)}return n}if(!a)throw new Error("invalid_model_selection_resource");return c(u?.id)??K(i,a)}function E(e,t){if(!e)return;const o=A(t)?.split("#",1)[0]??t,n=o.endsWith(".ttl")?`${o}#`:`${o}.ttl#`,i=e.lastIndexOf(n);if(!(i<0))try{return decodeURIComponent(e.slice(i+n.length))}catch{return e.slice(i+n.length)}}function le(e){if(Array.isArray(e))return e.map(c).filter(U);const t=c(e);return t?[t]:[]}function Ve(e){const t=new Map;for(const r of e){const o=I(r.metadata),n=ce(r,"custom",ue(r.authMode)??"apiKey"),i=we(o?.compatibility,n),a=c(r.baseUrl)??c(o?.baseUrl),d=L.find(u=>u.id===n)??L.find(u=>u.id===`${i}-compatible`)??L[0];t.set(n,{...d,id:n,endpoints:a?[{protocol:i==="anthropic"?"anthropic":"chatCompletions",baseUrl:a}]:d.endpoints,modelDiscovery:i==="anthropic"?{strategy:"anthropic",path:"/models",endpointProtocol:"anthropic"}:{strategy:"openaiCompatible",path:"/models",endpointProtocol:"chatCompletions"}})}return t.size>0?[...t.values()]:L}function qe(e){return e.some(t=>t.health==="expired"||t.health==="invalid")?"attention":e.some(t=>t.enabled)?"available":e.length>0?"configured":"unconfigured"}function We(e,t,r,o){const n=T(e,t,r,o),i=c(n?.apiKey);if(i)return i.length<=8?`${i.slice(0,2)}…`:`${i.slice(0,3)}...${i.slice(-4)}`}function T(e,t,r,o){return Se({webId:e.webId,provider:t,credentialIri:f.buildIri(e.podUrl,{id:r}),envelope:o})}function q(e){const t=R(e),r=v(t);return r||O.find(o=>t?.startsWith(`${o}-`))}function W(e){const t=R(e);if(t&&!t.startsWith("custom-instance-")){if(t==="bailian-token-plan-personal")return"token-plan";if(t==="bailian-token-plan-team")return"token-plan-team";if(t==="bailian-coding-plan-pro")return"coding-plan";if(t==="bailian-pay-as-you-go")return"pay-as-you-go";for(const r of O)if(t.startsWith(`${r}-`))return t.slice(r.length+1)}}function He(e){const t=/\/([^/#]+)\.ttl#/u.exec(e);return v(t?.[1])}function v(e){if(typeof e!="string"||!e.trim())return;const t=e.trim().toLowerCase();if(t==="zhipu"||t.startsWith("zhipu-"))return"zhipu";if(O.includes(t))return t;for(const r of O)if(t.startsWith(`${r}-`)||r==="bailian"&&(t==="bailian-token-plan"||t==="bailian-coding-plan"))return r}function F(e){if(e==null||!e.trim())return;let t;try{t=new URL(e.trim())}catch{throw new Error("invalid_proxy_url")}if(!["http:","https:"].includes(t.protocol)||t.username||t.password||t.hash||!t.hostname)throw new Error("invalid_proxy_url");return t.toString().replace(/\/$/u,"")}function Je(e){if(e==null||!e.trim())return;let t;try{t=new URL(e.trim())}catch{return}if(!(!["http:","https:"].includes(t.protocol)||!t.hostname))return t.username="",t.password="",t.search="",t.hash="",t.toString().replace(/\/$/u,"")}function ue(e){if(e==="oauth"||e==="deviceCode"||e==="apiKey"||e==="local")return e;if(e==="deviceCodeOAuth")return"deviceCode"}function Xe(e){if(e==="healthy"||e==="expired"||e==="invalid"||e==="unknown")return e;if(e==="reauthRequired")return"expired";if(e==="disabled")return"unknown"}function I(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function c(e){return typeof e=="string"&&e.trim()?e:void 0}function ne(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const t=Number(e);return Number.isFinite(t)?t:void 0}}function ie(e){if(typeof e=="boolean")return e;if(e==="true")return!0;if(e==="false")return!1}function Qe(e){return e instanceof Date?e.toISOString():c(e)}function U(e){return e!==void 0}export{Re as a,_e as b,Q as c,rt as d,et as e,R as p,tt as w};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as t}from"./global-
|
|
1
|
+
import{c as t}from"./global-cmKEraT4.js";const c=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],o=t("activity",c);export{o as A};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as h,j as u,p as H,q as se,s as ce,B as K,t as de,v as V,w as le,x as X,y as U,z as $,A as ue,D as M,N as Q,E as fe,F as Z,G as ge,H as me,I as he,J as pe,K as we,L as ve,l as Re,M as be,m as ye,X as xe,n as Se}from"./global-BOl78fr8.js";const k="xpod.auth.callback.identity.v1.",Ie=new Set(["provision-status-unavailable","profile-read-failed","no-usable-access-route","pod-open-failed"]),P="xpod.auth.callback.completed.v1.",ee=600*1e3,F="solidClientAuthn:currentUrl",I=new Map,q=new Set(["webid-mismatch","binding-mismatch"]),O={"missing-transaction":{title:"登录请求已失效",message:"这次登录请求已经失效,请重新登录。",action:"重新登录"},"replayed-transaction":{title:"登录请求已使用",message:"这次登录请求已经完成,不能再次使用。请重新登录。",action:"重新登录"},"expired-transaction":{title:"登录请求已过期",message:"登录等待时间过长,请重新登录。",action:"重新登录"},"malformed-transaction":{title:"登录请求无效",message:"登录信息不完整或已被修改,请重新登录。",action:"重新登录"},"oidc-state-invalid":{title:"登录验证已失效",message:"登录页面与当前会话不再匹配,请重新登录。",action:"重新登录"},"oidc-provider-error":{title:"授权未完成",message:"身份服务未能完成此次授权,请重新登录。",action:"重新登录"},unauthenticated:{title:"登录没有完成",message:"Xpod 没有收到有效的 WebID,请重新登录。",action:"重新登录"},"unsafe-route":{title:"登录请求不安全",message:"Xpod 已阻止异常的登录来源,请从应用内重新登录。",action:"重新登录"},"unsafe-return-to":{title:"登录请求不安全",message:"Xpod 已阻止异常的返回地址,请从应用内重新登录。",action:"重新登录"},"missing-storage":{title:"没有可用的 Pod",message:"当前账号还没有可用于本次登录的 Pod,请返回后重试。",action:"返回并重试"},"provision-status-unavailable":{title:"暂时无法确认本机 Pod",message:"Xpod 暂时无法读取存储服务状态,请稍后重试。",action:"重试连接"},"local-binding-missing":{title:"本机绑定尚未完成",message:"当前账号还没有绑定到这台 Xpod。请先修复本机初始化,再重新登录。",action:"修复本机绑定"},"webid-mismatch":{title:"身份与 Pod 不匹配",message:"本次登录身份与所选 Pod 不一致,请重新登录。",action:"重新登录"},"binding-mismatch":{title:"身份与 Pod 不匹配",message:"Xpod 无法确认当前身份拥有所选 Pod,请重新登录。",action:"重新登录"},"profile-read-failed":{title:"暂时无法读取身份资料",message:"未能读取你的 WebID 资料,暂时无法确认 Pod 地址。请稍后重试,不需要重新创建 Pod。",action:"重试连接"},"no-usable-access-route":{title:"暂时无法连接本机 Pod",message:"Xpod 找不到可用的访问通道,请确认本机服务正在运行后重试。你的资料没有丢失。",action:"重试连接"},"pod-open-failed":{title:"暂时无法打开 Pod",message:"Xpod 无法连接到你的 Pod,请检查服务状态后重试。",action:"重试连接"},"storage-unavailable":{title:"无法保存登录状态",message:"当前环境无法保存本次登录状态,请重新打开 Xpod 后重试。",action:"重新登录"},"redirect-failed":{title:"登录已完成",message:"身份验证已经完成,但目标页面没有正常打开。",action:"返回概览"}};async function z(e){const t=new URL(e.href),r=t.origin,n=Ae(),i=re(t,e.storage,e.now);if(i)return e.locationReplace?.(i),{status:"redirected",destination:i};let c=t.searchParams.get("transaction");const d=t.searchParams.has("code")||t.searchParams.has("state")||t.searchParams.has("error"),a=d?E(t):void 0;let o,s,g;try{o=e.transactionStore??X({storage:e.storage,origin:r});const f=o.readSinglePending();!c&&f&&(c=f.id),c?!f||f.id!==c?(o.consume(c),g=l("missing-transaction")):s=f:g=l("missing-transaction")}catch(f){g=l(Oe(f))}const b=c?ne(t,c,e.storage,e.now):void 0;if(b){if(d&&a&&!s){const f=await D(e.runtime,e.href);if(f.status==="failure"){const m=await N({callbackUrl:t,destination:a,recoveryPointers:n,storage:e.storage,locationReplace:e.locationReplace});return m||f}return e.locationReplace?.(a),{status:"redirected",destination:a}}return e.locationReplace?.(b),{status:"redirected",destination:b}}if(!s){if(a){const f=await D(e.runtime,e.href);if(f.status==="failure"){const m=await N({callbackUrl:t,destination:a,recoveryPointers:n,storage:e.storage,locationReplace:e.locationReplace});return m||f}return e.locationReplace?.(a),{status:"redirected",destination:a}}return g??l("missing-transaction")}if(!o||!c)return l("missing-transaction");const p=await Pe(e,s);if(p.status==="failure"){const f=await N({callbackUrl:t,destination:je(s,r),recoveryPointers:n,transactionStore:o,transactionId:c,storage:e.storage,locationReplace:e.locationReplace});return f||p}const R=p.webId,y=e.runtime.session.createAuthenticatedFetch(R);let w=!1;const S=e.runtime.session.subscribe(()=>{w=!0,e.runtime.pod.clear({webId:R})});try{try{ue(s.route,r)}catch{return l("unsafe-route")}let f;try{f=U(s.returnTo)}catch{return l("unsafe-return-to")}const m=s.selectedStorage&&new URL(s.selectedStorage.storageUrl).origin===r?{storageRoot:r,available:!0}:await _e(e.fetch??fetch,r);if(w)return l("pod-open-failed");if(!m.available)return l("provision-status-unavailable");const x=m.storageRoot;e.runtime.setLocalPodRoutes(M(x,m));let v;try{v=s.selectedStorage??await Ne(y,R,x)}catch(W){return W instanceof Q?l("no-usable-access-route"):l("profile-read-failed")}if(w)return l("pod-open-failed");if(v&&!Y(v,r,x))return l("binding-mismatch");if(v&&v.webId!==R)return l("webid-mismatch");if(!v)return m.managed?l("local-binding-missing",m.provisionUrl):l("missing-storage");let C;try{e.runtime.setLocalPodRoutes(M(v.storageUrl,m)),C=await e.runtime.pod.open({webId:R,podUrl:v.storageUrl,fetch:y})}catch{return{...l("pod-open-failed")}}if(w)return l("pod-open-failed");const L=v;if(!Y(L,r,x)||C.webId!==L.webId||!De(C.podUrl,L.storageUrl))return l("binding-mismatch");try{fe(L,{storage:e.storage,origin:r,storageRoot:x,now:e.now})}catch{return l("storage-unavailable")}const j=new URL(f??$,r).href;try{o.consume(c),Le(c,j,t,e.storage,e.now),(e.storage??window.sessionStorage).removeItem(`${k}${c}`),e.locationReplace?.(j)}catch{return Z({storage:e.storage}),l("redirect-failed")}return{status:"redirected",destination:j,transaction:s,selectedStorage:L,pod:C}}finally{S()}}async function Pe(e,t){const r=new URL(e.href),n=e.storage??window.sessionStorage,i=`${k}${t.id}`,c=A(r),d=e.now??Date.now;try{const o=n.getItem(i);if(o){const s=JSON.parse(o);if(!B(s)||s.callback!==c||typeof s.webId!="string"||typeof s.completedAt!="number"||!Number.isFinite(s.completedAt))return l("oidc-state-invalid");if(d()<s.completedAt||d()-s.completedAt>ee)return l("expired-transaction");const g=e.runtime.session.getSnapshot();return g.status!=="authenticated"?l("unauthenticated"):g.webId!==s.webId?l("webid-mismatch"):{status:"success",webId:g.webId}}}catch{return l("storage-unavailable")}const a=await D(e.runtime,e.href);if(a.status==="failure")return a;try{n.setItem(i,JSON.stringify({callback:c,webId:a.webId,completedAt:d()}))}catch{return l("storage-unavailable")}return a}function J(e){const t=new URL(e.href);if(re(t,e.storage,e.now))return z(e);const r=te(t,e.transactionStore),n=I.get(r);if(n)return n;const i=z(e);return I.set(r,i),i}function te(e,t){let r=e.searchParams.get("transaction");if(!r)try{r=t?.readSinglePending()?.id??X({origin:e.origin}).readSinglePending()?.id??(E(e)?"<silent>":"<missing>")}catch{r=E(e)?"<silent>":"<missing>"}return`${e.origin}:${r}`}function A(e){return`${e.origin}${e.pathname}?state=${encodeURIComponent(e.searchParams.get("state")??"")}`}function re(e,t,r){if(e.searchParams.get("state"))try{const n=t??window.sessionStorage,i=e.searchParams.get("transaction");for(let c=0;c<n.length;c+=1){const d=n.key(c);if(!d?.startsWith(P))continue;const a=d.slice(P.length);if(i&&i!==a)continue;const o=n.getItem(d);if(!o)continue;const s=JSON.parse(o);if(B(s)&&s.callback===A(e))return ne(e,a,n,r)}}catch{}}function ne(e,t,r,n=()=>Date.now()){try{const i=r??window.sessionStorage,c=`${P}${t}`,d=i.getItem(c);if(!d)return;const a=JSON.parse(d);if(a.callback!==void 0&&a.callback!==A(e)||typeof a.destination!="string"||typeof a.completedAt!="number"||!Number.isFinite(a.completedAt))return;if(n()<a.completedAt||n()-a.completedAt>ee){i.removeItem(c);return}const o=new URL(a.destination);if(o.origin!==e.origin||o.username||o.password)return;const s=U(`${o.pathname}${o.search}${o.hash}`);return s?new URL(s,e.origin).href:void 0}catch{return}}function E(e){try{const t=window.localStorage.getItem(F);if(!t)return;const r=new URL(t,e.origin);if(r.origin!==e.origin)return;const n=`${r.pathname}${r.search}`,i=U(n);return i===void 0?void 0:new URL(i,e.origin).href}catch{return}}function Le(e,t,r,n,i=()=>Date.now()){(n??window.sessionStorage).setItem(`${P}${e}`,JSON.stringify({destination:t,callback:A(r),completedAt:i()}))}function Ue({runtime:e,transactionStore:t,href:r=typeof window>"u"?"http://localhost/auth/callback":window.location.href,location:n=typeof window>"u"?void 0:window.location,restartSignIn:i,renderRedirected:c}){const[d]=h.useState(()=>e?void 0:Fe()),a=e??d,[o,s]=h.useState(),[g,b]=h.useState(!1),p=h.useRef(void 0),R=h.useRef(!1),[y]=h.useState(()=>{const f=new URL(r);return ae(f,t)?.id??f.searchParams.get("transaction")}),w=h.useMemo(()=>Ce({href:r,transactionStore:t}),[r,t]);if(h.useEffect(()=>{p.current||(p.current=J({href:r,runtime:a,transactionStore:t,locationReplace:n?.replace.bind(n)}),p.current.then(s))},[a,r,n,t]),h.useEffect(()=>{typeof document>"u"||o?.status==="redirected"&&c||(document.title=o?.status==="failure"?`Xpod - ${O[o.code].title}`:o?.status==="redirected"?"Xpod - 登录完成":"Xpod - 正在登录")},[c,o]),h.useEffect(()=>{!o||o.status!=="failure"||q.has(o.code)&&(R.current||(R.current=!0,queueMicrotask(()=>{b(!0),T({href:r,runtime:a,transactionStore:t,associatedTransactionId:y}).finally(()=>{(i??(m=>window.location.replace(m)))(w)})})))},[a,y,r,w,i,o,t]),!o)return u.jsx(_,{title:"正在完成登录",message:"请稍候,不要关闭这个窗口。"});if(o.status==="redirected")return c?.(o)??u.jsx(_,{title:"登录完成",message:"正在打开 Xpod。"});if(q.has(o.code))return u.jsx(_,{title:"正在重新登录",message:"Xpod 正在清理不匹配的登录状态。"});const S=O[o.code];return u.jsx(H,{mode:"modal",title:S.title,lead:u.jsx(V,{compact:!0}),closeOnEscape:!1,children:u.jsxs("div",{className:"flex min-h-0 flex-1 flex-col px-5 pb-5",children:[u.jsx("div",{className:"flex min-h-0 flex-1 flex-col justify-center py-5",children:u.jsxs("div",{className:"min-w-0",children:[u.jsxs("div",{className:"flex items-center gap-2",children:[u.jsx(se,{"aria-hidden":"true",className:"h-4 w-4 shrink-0 text-destructive"}),u.jsx("h2",{className:"text-[15px] font-semibold leading-6 text-foreground",children:S.title})]}),u.jsx("p",{role:"alert",className:"mt-2 text-xs leading-5 text-muted-foreground",children:S.message}),u.jsxs("details",{className:"group mt-3 text-[11px] leading-4 text-muted-foreground",children:[u.jsxs("summary",{className:"-ml-1 inline-flex min-h-8 cursor-pointer list-none items-center gap-1 rounded-md px-1 outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring [&::-webkit-details-marker]:hidden",children:[u.jsx(ce,{"aria-hidden":"true",className:"h-3 w-3 shrink-0 group-open:rotate-90"}),"技术详情"]}),u.jsxs("div",{className:"mt-1 max-h-24 overflow-y-auto overscroll-contain",children:[u.jsx("code",{className:"block break-all text-left",children:o.code}),!1]})]})]})}),u.jsx(K,{type:"button",className:"w-full shrink-0 rounded-xl",disabled:g,"aria-busy":g,onClick:()=>{if(!g){if(Ie.has(o.code)){I.delete(te(new URL(r),t)),s(void 0),p.current=J({href:r,runtime:a,transactionStore:t,locationReplace:n?.replace.bind(n)}),p.current.then(s);return}b(!0),(o.code==="redirect-failed"?Promise.resolve():T({href:r,runtime:a,transactionStore:t,associatedTransactionId:y})).finally(()=>{if(o.actionUrl){(i??(x=>window.location.replace(x)))(o.actionUrl);return}(i??(m=>window.location.replace(m)))(w)})}},children:g?"正在重置…":S.action}),u.jsx(K,{type:"button",variant:"ghost",disabled:g,onClick:()=>{g||(b(!0),de(!0),T({href:r,runtime:a,transactionStore:t,associatedTransactionId:y,preserveSession:!0}).finally(()=>{(i??(m=>window.location.replace(m)))(w)}))},children:"返回应用"})]})})}function Ce({href:e,transactionStore:t,basePath:r="/settings/"}){const n=new URL(e),c=ae(n,t)?.returnTo;if(c)try{const a=U(c);if(a)return a}catch{}const d=E(n);if(d)try{const a=new URL(d);if(a.origin===n.origin)return`${a.pathname}${a.search}${a.hash}`}catch{}return $e(r,n.pathname)}function ae(e,t){try{const r=t?t.readSinglePending():X({origin:e.origin}).readSinglePending(),n=e.searchParams.get("transaction");return n&&r?.id!==n?void 0:r}catch{return}}function $e(e,t){return Ee(e)==="/settings/"||t==="/settings/auth-callback.html"||t.startsWith("/settings/")?"/settings/":$}function Ee(e){if(e)try{const t=new URL(e,"https://xpod.local");return t.pathname.endsWith("/")?t.pathname:`${t.pathname}/`}catch{return}}function _({title:e,message:t}){return u.jsx(H,{mode:"modal",title:e,lead:u.jsx(V,{compact:!0}),closeOnEscape:!1,children:u.jsxs("div",{className:"flex h-full flex-col items-center justify-center px-6 text-center",children:[u.jsx("h2",{className:"text-[15px] font-semibold text-foreground",children:e}),u.jsx("p",{role:"status","aria-live":"polite",className:"mt-2 max-w-[13rem] text-xs leading-5 text-muted-foreground",children:t})]})})}async function T({href:e,runtime:t,transactionStore:r,storage:n,preserveSession:i=!1,associatedTransactionId:c}){const d=new URL(e);let a=c===void 0?d.searchParams.get("transaction"):c;try{const o=r??X({storage:n,origin:d.origin}),s=o.readSinglePending();c===void 0&&!a&&s&&(a=s.id),s&&s.id===a&&o.cancel(s.id)}catch{}try{const o=n??window.sessionStorage;a&&(o.removeItem(`${P}${a}`),o.removeItem(`${k}${a}`)),window.localStorage.removeItem(F)}catch{}try{i||await t.session.logout()}catch{}I.delete(`${d.origin}:${a??"<missing>"}`),I.delete(`${d.origin}:<silent>`),I.delete(`${d.origin}:<missing>`)}async function D(e,t){let r="oidc-state-invalid";try{if(new URL(t).searchParams.has("error")&&(r="oidc-provider-error"),!e.session.handleIncomingRedirect)return l("oidc-state-invalid");const n=await e.session.handleIncomingRedirect(t);if(r==="oidc-provider-error")return l(r);const i=B(n)?n:void 0;if(i?.status==="error"||i?.status==="expired")return l("oidc-state-invalid");const c=i?.status==="authenticated"||i?.isLoggedIn===!0?G(i.webId):void 0,d=e.session.getSnapshot();if(d.status==="error"||d.status==="expired")return l("oidc-state-invalid");const a=c??(d.status==="authenticated"?d.webId:void 0);return a?{status:"success",webId:a}:l("unauthenticated")}catch{return l(r)}}function B(e){return typeof e=="object"&&e!==null}async function N({callbackUrl:e,destination:t,recoveryPointers:r,transactionStore:n,transactionId:i,storage:c,locationReplace:d}){const a=e.searchParams.get("error");if(Xe(a)){ke({transactionStore:n,transactionId:i,storage:c});for(const{storage:o,key:s,value:g}of r)try{o.getItem(s)===g&&o.removeItem(s)}catch{}return d?.(t),{status:"redirected",destination:t}}}function Xe(e){return e==="login_required"||e==="interaction_required"||e==="consent_required"||e==="account_selection_required"}function ke({transactionStore:e,transactionId:t,storage:r}){try{const n=e?.readSinglePending(),i=t;i&&n?.id===i&&e?.cancel(i),i&&n?.id===i&&((r??window.sessionStorage).removeItem(`${P}${i}`),(r??window.sessionStorage).removeItem(`${k}${i}`))}catch{}Z({storage:r})}function Ae(){const e=[];for(const t of["localStorage","sessionStorage"])try{const r=window[t];for(const n of[F,"solidClientAuthn:currentSession",ge,me]){const i=r.getItem(n);i!==null&&e.push({storage:r,key:n,value:i})}}catch{}return e}function je(e,t){try{const r=U(e.returnTo);return new URL(r??$,t).href}catch{return new URL($,t).href}}function G(e){return typeof e=="string"&&e?e:void 0}function Y(e,t,r){try{const n=new URL(e.storageUrl),i=new URL(e.webId);return(n.origin===t||we(n.href,r))&&["http:","https:"].includes(n.protocol)&&["http:","https:"].includes(i.protocol)&&!n.username&&!n.password&&!n.hash&&!i.username&&!i.password}catch{return!1}}async function _e(e,t){const r=await e(new URL("/provision/status",t),{headers:{Accept:"application/json"},credentials:"include"}).catch(()=>{});if(r?.status===404)return{storageRoot:t,available:!0};if(!r?.ok)return{storageRoot:t,available:!1};const n=await r.json().catch(()=>{});return!n||typeof n.managed!="boolean"&&typeof n.publicUrl!="string"?{storageRoot:t,available:!1}:{available:!0,storageRoot:typeof n?.publicUrl=="string"&&n.publicUrl?n.publicUrl:t,managed:n?.managed===!0,provisionUrl:Te(n?.provisionUrl),routes:he(n?.routes)}}function Te(e){if(!(typeof e!="string"||!e))try{const t=new URL(e);return t.protocol==="https:"&&!t.username&&!t.password?t.href:void 0}catch{return}}async function Ne(e,t,r){let n=!1,i;const d=await pe(async(a,o)=>{const s=await e(a,o).catch(g=>{throw String(a)===t&&(n=!0,i=g),g});return String(a)===t&&!s.ok&&(n=!0),s},[t],r);if(i instanceof Q)throw i;if(n)throw new Error("Unable to read WebID profile storage bindings");if(d.length===1)return d[0]}function Oe(e){switch(e?.code){case"consumed":return"replayed-transaction";case"expired":return"expired-transaction";case"malformed":return"malformed-transaction";default:return"missing-transaction"}}function l(e,t){return{status:"failure",code:e,message:O[e].message,...t?{actionUrl:t}:{}}}function De(e,t){try{return new URL(e).href===new URL(t).href}catch{return e===t}}function Fe(){return le()}function Be({location:e,history:t}){return{origin:e.origin,replace(r){const n=new URL(r,e.origin);if(n.origin===e.origin&&Ke(n.pathname)){t.replaceState({},"",`${n.pathname}${n.search}${n.hash}`);return}e.replace(n.href)}}}function We(e,t){try{const r=new URL(e,t);if(r.origin!==t)return;const n=ie(r.pathname);return n?{app:n,pathname:r.pathname,target:`${r.pathname}${r.search}${r.hash}`}:void 0}catch{return}}function Ke(e){return ie(e)!==void 0}function ie(e){return ve.find(({basename:t})=>e===t||e.startsWith(`${t}/`))?.app}Re();const oe=be(),Me=Be({location:window.location,history:window.history});function qe(e){const t=We(e.destination,window.location.origin);return t?(`${window.location.pathname}${window.location.search}${window.location.hash}`!==t.target&&window.history.replaceState({},"",t.target),u.jsx(Se,{runtime:oe,initialPathname:t.pathname},t.target)):u.jsx("main",{role:"status","aria-live":"polite",children:"Sign-in complete. Opening Xpod…"})}ye.createRoot(document.getElementById("root")).render(u.jsx(xe,{children:u.jsx(Ue,{runtime:oe,location:Me,renderRedirected:qe})}));
|
|
1
|
+
import{r as h,j as u,w as H,x as se,y as ce,B as K,z as de,A as V,D as le,E as X,F as U,G as $,H as ue,I as M,N as Q,J as fe,K as Z,L as ge,M as me,O as he,Q as pe,S as we,T as ve,l as Re,U as be,m as ye,X as xe,n as Se}from"./global-cmKEraT4.js";const k="xpod.auth.callback.identity.v1.",Ie=new Set(["provision-status-unavailable","profile-read-failed","no-usable-access-route","pod-open-failed"]),P="xpod.auth.callback.completed.v1.",ee=600*1e3,F="solidClientAuthn:currentUrl",I=new Map,z=new Set(["webid-mismatch","binding-mismatch"]),O={"missing-transaction":{title:"登录请求已失效",message:"这次登录请求已经失效,请重新登录。",action:"重新登录"},"replayed-transaction":{title:"登录请求已使用",message:"这次登录请求已经完成,不能再次使用。请重新登录。",action:"重新登录"},"expired-transaction":{title:"登录请求已过期",message:"登录等待时间过长,请重新登录。",action:"重新登录"},"malformed-transaction":{title:"登录请求无效",message:"登录信息不完整或已被修改,请重新登录。",action:"重新登录"},"oidc-state-invalid":{title:"登录验证已失效",message:"登录页面与当前会话不再匹配,请重新登录。",action:"重新登录"},"oidc-provider-error":{title:"授权未完成",message:"身份服务未能完成此次授权,请重新登录。",action:"重新登录"},unauthenticated:{title:"登录没有完成",message:"Xpod 没有收到有效的 WebID,请重新登录。",action:"重新登录"},"unsafe-route":{title:"登录请求不安全",message:"Xpod 已阻止异常的登录来源,请从应用内重新登录。",action:"重新登录"},"unsafe-return-to":{title:"登录请求不安全",message:"Xpod 已阻止异常的返回地址,请从应用内重新登录。",action:"重新登录"},"missing-storage":{title:"没有可用的 Pod",message:"当前账号还没有可用于本次登录的 Pod,请返回后重试。",action:"返回并重试"},"provision-status-unavailable":{title:"暂时无法确认本机 Pod",message:"Xpod 暂时无法读取存储服务状态,请稍后重试。",action:"重试连接"},"local-binding-missing":{title:"本机绑定尚未完成",message:"当前账号还没有绑定到这台 Xpod。请先修复本机初始化,再重新登录。",action:"修复本机绑定"},"webid-mismatch":{title:"身份与 Pod 不匹配",message:"本次登录身份与所选 Pod 不一致,请重新登录。",action:"重新登录"},"binding-mismatch":{title:"身份与 Pod 不匹配",message:"Xpod 无法确认当前身份拥有所选 Pod,请重新登录。",action:"重新登录"},"profile-read-failed":{title:"暂时无法读取身份资料",message:"未能读取你的 WebID 资料,暂时无法确认 Pod 地址。请稍后重试,不需要重新创建 Pod。",action:"重试连接"},"no-usable-access-route":{title:"暂时无法连接本机 Pod",message:"Xpod 找不到可用的访问通道,请确认本机服务正在运行后重试。你的资料没有丢失。",action:"重试连接"},"pod-open-failed":{title:"暂时无法打开 Pod",message:"Xpod 无法连接到你的 Pod,请检查服务状态后重试。",action:"重试连接"},"storage-unavailable":{title:"无法保存登录状态",message:"当前环境无法保存本次登录状态,请重新打开 Xpod 后重试。",action:"重新登录"},"redirect-failed":{title:"登录已完成",message:"身份验证已经完成,但目标页面没有正常打开。",action:"返回概览"}};async function q(e){const t=new URL(e.href),r=t.origin,n=Ae(),i=re(t,e.storage,e.now);if(i)return e.locationReplace?.(i),{status:"redirected",destination:i};let c=t.searchParams.get("transaction");const d=t.searchParams.has("code")||t.searchParams.has("state")||t.searchParams.has("error"),a=d?E(t):void 0;let o,s,g;try{o=e.transactionStore??X({storage:e.storage,origin:r});const f=o.readSinglePending();!c&&f&&(c=f.id),c?!f||f.id!==c?(o.consume(c),g=l("missing-transaction")):s=f:g=l("missing-transaction")}catch(f){g=l(Oe(f))}const b=c?ne(t,c,e.storage,e.now):void 0;if(b){if(d&&a&&!s){const f=await D(e.runtime,e.href);if(f.status==="failure"){const m=await N({callbackUrl:t,destination:a,recoveryPointers:n,storage:e.storage,locationReplace:e.locationReplace});return m||f}return e.locationReplace?.(a),{status:"redirected",destination:a}}return e.locationReplace?.(b),{status:"redirected",destination:b}}if(!s){if(a){const f=await D(e.runtime,e.href);if(f.status==="failure"){const m=await N({callbackUrl:t,destination:a,recoveryPointers:n,storage:e.storage,locationReplace:e.locationReplace});return m||f}return e.locationReplace?.(a),{status:"redirected",destination:a}}return g??l("missing-transaction")}if(!o||!c)return l("missing-transaction");const p=await Pe(e,s);if(p.status==="failure"){const f=await N({callbackUrl:t,destination:je(s,r),recoveryPointers:n,transactionStore:o,transactionId:c,storage:e.storage,locationReplace:e.locationReplace});return f||p}const R=p.webId,y=e.runtime.session.createAuthenticatedFetch(R);let w=!1;const S=e.runtime.session.subscribe(()=>{w=!0,e.runtime.pod.clear({webId:R})});try{try{ue(s.route,r)}catch{return l("unsafe-route")}let f;try{f=U(s.returnTo)}catch{return l("unsafe-return-to")}const m=s.selectedStorage&&new URL(s.selectedStorage.storageUrl).origin===r?{storageRoot:r,available:!0}:await Te(e.fetch??fetch,r);if(w)return l("pod-open-failed");if(!m.available)return l("provision-status-unavailable");const x=m.storageRoot;e.runtime.setLocalPodRoutes(M(x,m));let v;try{v=s.selectedStorage??await Ne(y,R,x)}catch(W){return W instanceof Q?l("no-usable-access-route"):l("profile-read-failed")}if(w)return l("pod-open-failed");if(v&&!Y(v,r,x))return l("binding-mismatch");if(v&&v.webId!==R)return l("webid-mismatch");if(!v)return m.managed?l("local-binding-missing",m.provisionUrl):l("missing-storage");let C;try{e.runtime.setLocalPodRoutes(M(v.storageUrl,m)),C=await e.runtime.pod.open({webId:R,podUrl:v.storageUrl,fetch:y})}catch{return{...l("pod-open-failed")}}if(w)return l("pod-open-failed");const L=v;if(!Y(L,r,x)||C.webId!==L.webId||!De(C.podUrl,L.storageUrl))return l("binding-mismatch");try{fe(L,{storage:e.storage,origin:r,storageRoot:x,now:e.now})}catch{return l("storage-unavailable")}const j=new URL(f??$,r).href;try{o.consume(c),Le(c,j,t,e.storage,e.now),(e.storage??window.sessionStorage).removeItem(`${k}${c}`),e.locationReplace?.(j)}catch{return Z({storage:e.storage}),l("redirect-failed")}return{status:"redirected",destination:j,transaction:s,selectedStorage:L,pod:C}}finally{S()}}async function Pe(e,t){const r=new URL(e.href),n=e.storage??window.sessionStorage,i=`${k}${t.id}`,c=A(r),d=e.now??Date.now;try{const o=n.getItem(i);if(o){const s=JSON.parse(o);if(!B(s)||s.callback!==c||typeof s.webId!="string"||typeof s.completedAt!="number"||!Number.isFinite(s.completedAt))return l("oidc-state-invalid");if(d()<s.completedAt||d()-s.completedAt>ee)return l("expired-transaction");const g=e.runtime.session.getSnapshot();return g.status!=="authenticated"?l("unauthenticated"):g.webId!==s.webId?l("webid-mismatch"):{status:"success",webId:g.webId}}}catch{return l("storage-unavailable")}const a=await D(e.runtime,e.href);if(a.status==="failure")return a;try{n.setItem(i,JSON.stringify({callback:c,webId:a.webId,completedAt:d()}))}catch{return l("storage-unavailable")}return a}function J(e){const t=new URL(e.href);if(re(t,e.storage,e.now))return q(e);const r=te(t,e.transactionStore),n=I.get(r);if(n)return n;const i=q(e);return I.set(r,i),i}function te(e,t){let r=e.searchParams.get("transaction");if(!r)try{r=t?.readSinglePending()?.id??X({origin:e.origin}).readSinglePending()?.id??(E(e)?"<silent>":"<missing>")}catch{r=E(e)?"<silent>":"<missing>"}return`${e.origin}:${r}`}function A(e){return`${e.origin}${e.pathname}?state=${encodeURIComponent(e.searchParams.get("state")??"")}`}function re(e,t,r){if(e.searchParams.get("state"))try{const n=t??window.sessionStorage,i=e.searchParams.get("transaction");for(let c=0;c<n.length;c+=1){const d=n.key(c);if(!d?.startsWith(P))continue;const a=d.slice(P.length);if(i&&i!==a)continue;const o=n.getItem(d);if(!o)continue;const s=JSON.parse(o);if(B(s)&&s.callback===A(e))return ne(e,a,n,r)}}catch{}}function ne(e,t,r,n=()=>Date.now()){try{const i=r??window.sessionStorage,c=`${P}${t}`,d=i.getItem(c);if(!d)return;const a=JSON.parse(d);if(a.callback!==void 0&&a.callback!==A(e)||typeof a.destination!="string"||typeof a.completedAt!="number"||!Number.isFinite(a.completedAt))return;if(n()<a.completedAt||n()-a.completedAt>ee){i.removeItem(c);return}const o=new URL(a.destination);if(o.origin!==e.origin||o.username||o.password)return;const s=U(`${o.pathname}${o.search}${o.hash}`);return s?new URL(s,e.origin).href:void 0}catch{return}}function E(e){try{const t=window.localStorage.getItem(F);if(!t)return;const r=new URL(t,e.origin);if(r.origin!==e.origin)return;const n=`${r.pathname}${r.search}`,i=U(n);return i===void 0?void 0:new URL(i,e.origin).href}catch{return}}function Le(e,t,r,n,i=()=>Date.now()){(n??window.sessionStorage).setItem(`${P}${e}`,JSON.stringify({destination:t,callback:A(r),completedAt:i()}))}function Ue({runtime:e,transactionStore:t,href:r=typeof window>"u"?"http://localhost/auth/callback":window.location.href,location:n=typeof window>"u"?void 0:window.location,restartSignIn:i,renderRedirected:c}){const[d]=h.useState(()=>e?void 0:Fe()),a=e??d,[o,s]=h.useState(),[g,b]=h.useState(!1),p=h.useRef(void 0),R=h.useRef(!1),[y]=h.useState(()=>{const f=new URL(r);return ae(f,t)?.id??f.searchParams.get("transaction")}),w=h.useMemo(()=>Ce({href:r,transactionStore:t}),[r,t]);if(h.useEffect(()=>{p.current||(p.current=J({href:r,runtime:a,transactionStore:t,locationReplace:n?.replace.bind(n)}),p.current.then(s))},[a,r,n,t]),h.useEffect(()=>{typeof document>"u"||o?.status==="redirected"&&c||(document.title=o?.status==="failure"?`Xpod - ${O[o.code].title}`:o?.status==="redirected"?"Xpod - 登录完成":"Xpod - 正在登录")},[c,o]),h.useEffect(()=>{!o||o.status!=="failure"||z.has(o.code)&&(R.current||(R.current=!0,queueMicrotask(()=>{b(!0),_({href:r,runtime:a,transactionStore:t,associatedTransactionId:y}).finally(()=>{(i??(m=>window.location.replace(m)))(w)})})))},[a,y,r,w,i,o,t]),!o)return u.jsx(T,{title:"正在完成登录",message:"请稍候,不要关闭这个窗口。"});if(o.status==="redirected")return c?.(o)??u.jsx(T,{title:"登录完成",message:"正在打开 Xpod。"});if(z.has(o.code))return u.jsx(T,{title:"正在重新登录",message:"Xpod 正在清理不匹配的登录状态。"});const S=O[o.code];return u.jsx(H,{mode:"modal",title:S.title,lead:u.jsx(V,{compact:!0}),closeOnEscape:!1,children:u.jsxs("div",{className:"flex min-h-0 flex-1 flex-col px-5 pb-5",children:[u.jsx("div",{className:"flex min-h-0 flex-1 flex-col justify-center py-5",children:u.jsxs("div",{className:"min-w-0",children:[u.jsxs("div",{className:"flex items-center gap-2",children:[u.jsx(se,{"aria-hidden":"true",className:"h-4 w-4 shrink-0 text-destructive"}),u.jsx("h2",{className:"text-[15px] font-semibold leading-6 text-foreground",children:S.title})]}),u.jsx("p",{role:"alert",className:"mt-2 text-xs leading-5 text-muted-foreground",children:S.message}),u.jsxs("details",{className:"group mt-3 text-[11px] leading-4 text-muted-foreground",children:[u.jsxs("summary",{className:"-ml-1 inline-flex min-h-8 cursor-pointer list-none items-center gap-1 rounded-md px-1 outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring [&::-webkit-details-marker]:hidden",children:[u.jsx(ce,{"aria-hidden":"true",className:"h-3 w-3 shrink-0 group-open:rotate-90"}),"技术详情"]}),u.jsxs("div",{className:"mt-1 max-h-24 overflow-y-auto overscroll-contain",children:[u.jsx("code",{className:"block break-all text-left",children:o.code}),!1]})]})]})}),u.jsx(K,{type:"button",className:"w-full shrink-0 rounded-xl",disabled:g,"aria-busy":g,onClick:()=>{if(!g){if(Ie.has(o.code)){I.delete(te(new URL(r),t)),s(void 0),p.current=J({href:r,runtime:a,transactionStore:t,locationReplace:n?.replace.bind(n)}),p.current.then(s);return}b(!0),(o.code==="redirect-failed"?Promise.resolve():_({href:r,runtime:a,transactionStore:t,associatedTransactionId:y})).finally(()=>{if(o.actionUrl){(i??(x=>window.location.replace(x)))(o.actionUrl);return}(i??(m=>window.location.replace(m)))(w)})}},children:g?"正在重置…":S.action}),u.jsx(K,{type:"button",variant:"ghost",disabled:g,onClick:()=>{g||(b(!0),de(!0),_({href:r,runtime:a,transactionStore:t,associatedTransactionId:y,preserveSession:!0}).finally(()=>{(i??(m=>window.location.replace(m)))(w)}))},children:"返回应用"})]})})}function Ce({href:e,transactionStore:t,basePath:r="/settings/"}){const n=new URL(e),c=ae(n,t)?.returnTo;if(c)try{const a=U(c);if(a)return a}catch{}const d=E(n);if(d)try{const a=new URL(d);if(a.origin===n.origin)return`${a.pathname}${a.search}${a.hash}`}catch{}return $e(r,n.pathname)}function ae(e,t){try{const r=t?t.readSinglePending():X({origin:e.origin}).readSinglePending(),n=e.searchParams.get("transaction");return n&&r?.id!==n?void 0:r}catch{return}}function $e(e,t){return Ee(e)==="/settings/"||t==="/settings/auth-callback.html"||t.startsWith("/settings/")?"/settings/":$}function Ee(e){if(e)try{const t=new URL(e,"https://xpod.local");return t.pathname.endsWith("/")?t.pathname:`${t.pathname}/`}catch{return}}function T({title:e,message:t}){return u.jsx(H,{mode:"modal",title:e,lead:u.jsx(V,{compact:!0}),closeOnEscape:!1,children:u.jsxs("div",{className:"flex h-full flex-col items-center justify-center px-6 text-center",children:[u.jsx("h2",{className:"text-[15px] font-semibold text-foreground",children:e}),u.jsx("p",{role:"status","aria-live":"polite",className:"mt-2 max-w-[13rem] text-xs leading-5 text-muted-foreground",children:t})]})})}async function _({href:e,runtime:t,transactionStore:r,storage:n,preserveSession:i=!1,associatedTransactionId:c}){const d=new URL(e);let a=c===void 0?d.searchParams.get("transaction"):c;try{const o=r??X({storage:n,origin:d.origin}),s=o.readSinglePending();c===void 0&&!a&&s&&(a=s.id),s&&s.id===a&&o.cancel(s.id)}catch{}try{const o=n??window.sessionStorage;a&&(o.removeItem(`${P}${a}`),o.removeItem(`${k}${a}`)),window.localStorage.removeItem(F)}catch{}try{i||await t.session.logout()}catch{}I.delete(`${d.origin}:${a??"<missing>"}`),I.delete(`${d.origin}:<silent>`),I.delete(`${d.origin}:<missing>`)}async function D(e,t){let r="oidc-state-invalid";try{if(new URL(t).searchParams.has("error")&&(r="oidc-provider-error"),!e.session.handleIncomingRedirect)return l("oidc-state-invalid");const n=await e.session.handleIncomingRedirect(t);if(r==="oidc-provider-error")return l(r);const i=B(n)?n:void 0;if(i?.status==="error"||i?.status==="expired")return l("oidc-state-invalid");const c=i?.status==="authenticated"||i?.isLoggedIn===!0?G(i.webId):void 0,d=e.session.getSnapshot();if(d.status==="error"||d.status==="expired")return l("oidc-state-invalid");const a=c??(d.status==="authenticated"?d.webId:void 0);return a?{status:"success",webId:a}:l("unauthenticated")}catch{return l(r)}}function B(e){return typeof e=="object"&&e!==null}async function N({callbackUrl:e,destination:t,recoveryPointers:r,transactionStore:n,transactionId:i,storage:c,locationReplace:d}){const a=e.searchParams.get("error");if(Xe(a)){ke({transactionStore:n,transactionId:i,storage:c});for(const{storage:o,key:s,value:g}of r)try{o.getItem(s)===g&&o.removeItem(s)}catch{}return d?.(t),{status:"redirected",destination:t}}}function Xe(e){return e==="login_required"||e==="interaction_required"||e==="consent_required"||e==="account_selection_required"}function ke({transactionStore:e,transactionId:t,storage:r}){try{const n=e?.readSinglePending(),i=t;i&&n?.id===i&&e?.cancel(i),i&&n?.id===i&&((r??window.sessionStorage).removeItem(`${P}${i}`),(r??window.sessionStorage).removeItem(`${k}${i}`))}catch{}Z({storage:r})}function Ae(){const e=[];for(const t of["localStorage","sessionStorage"])try{const r=window[t];for(const n of[F,"solidClientAuthn:currentSession",ge,me]){const i=r.getItem(n);i!==null&&e.push({storage:r,key:n,value:i})}}catch{}return e}function je(e,t){try{const r=U(e.returnTo);return new URL(r??$,t).href}catch{return new URL($,t).href}}function G(e){return typeof e=="string"&&e?e:void 0}function Y(e,t,r){try{const n=new URL(e.storageUrl),i=new URL(e.webId);return(n.origin===t||we(n.href,r))&&["http:","https:"].includes(n.protocol)&&["http:","https:"].includes(i.protocol)&&!n.username&&!n.password&&!n.hash&&!i.username&&!i.password}catch{return!1}}async function Te(e,t){const r=await e(new URL("/provision/status",t),{headers:{Accept:"application/json"},credentials:"include"}).catch(()=>{});if(r?.status===404)return{storageRoot:t,available:!0};if(!r?.ok)return{storageRoot:t,available:!1};const n=await r.json().catch(()=>{});return!n||typeof n.managed!="boolean"&&typeof n.publicUrl!="string"?{storageRoot:t,available:!1}:{available:!0,storageRoot:typeof n?.publicUrl=="string"&&n.publicUrl?n.publicUrl:t,managed:n?.managed===!0,provisionUrl:_e(n?.provisionUrl),routes:he(n?.routes)}}function _e(e){if(!(typeof e!="string"||!e))try{const t=new URL(e);return t.protocol==="https:"&&!t.username&&!t.password?t.href:void 0}catch{return}}async function Ne(e,t,r){let n=!1,i;const d=await pe(async(a,o)=>{const s=await e(a,o).catch(g=>{throw String(a)===t&&(n=!0,i=g),g});return String(a)===t&&!s.ok&&(n=!0),s},[t],r);if(i instanceof Q)throw i;if(n)throw new Error("Unable to read WebID profile storage bindings");if(d.length===1)return d[0]}function Oe(e){switch(e?.code){case"consumed":return"replayed-transaction";case"expired":return"expired-transaction";case"malformed":return"malformed-transaction";default:return"missing-transaction"}}function l(e,t){return{status:"failure",code:e,message:O[e].message,...t?{actionUrl:t}:{}}}function De(e,t){try{return new URL(e).href===new URL(t).href}catch{return e===t}}function Fe(){return le()}function Be({location:e,history:t}){return{origin:e.origin,replace(r){const n=new URL(r,e.origin);if(n.origin===e.origin&&Ke(n.pathname)){t.replaceState({},"",`${n.pathname}${n.search}${n.hash}`);return}e.replace(n.href)}}}function We(e,t){try{const r=new URL(e,t);if(r.origin!==t)return;const n=ie(r.pathname);return n?{app:n,pathname:r.pathname,target:`${r.pathname}${r.search}${r.hash}`}:void 0}catch{return}}function Ke(e){return ie(e)!==void 0}function ie(e){return ve.find(({basename:t})=>e===t||e.startsWith(`${t}/`))?.app}Re();const oe=be(),Me=Be({location:window.location,history:window.history});function ze(e){const t=We(e.destination,window.location.origin);return t?(`${window.location.pathname}${window.location.search}${window.location.hash}`!==t.target&&window.history.replaceState({},"",t.target),u.jsx(Se,{runtime:oe,initialPathname:t.pathname},t.target)):u.jsx("main",{role:"status","aria-live":"polite",children:"Sign-in complete. Opening Xpod…"})}ye.createRoot(document.getElementById("root")).render(u.jsx(xe,{children:u.jsx(Ue,{runtime:oe,location:Me,renderRedirected:ze})}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as a,f as s,g as o,i as d}from"./global-
|
|
1
|
+
import{j as a,f as s,g as o,i as d}from"./global-cmKEraT4.js";const n=o(`inline-flex items-center rounded-lg border px-2.5 py-0.5 text-xs font-semibold transition-all duration-200 ${d}`,{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow-sm shadow-primary/20 hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow-sm shadow-destructive/20 hover:bg-destructive/90",outline:"border-border/40 text-foreground bg-muted/30 backdrop-blur-sm"}},defaultVariants:{variant:"default"}});function u({className:r,variant:e,...t}){return a.jsx("div",{className:s(n({variant:e}),r),...t})}export{u as B};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as u,k as b}from"./global-cmKEraT4.js";import{c as p}from"./ModelsPage-CuNW1hGX.js";import{s as L,d as x,o as P,n as R,c as _}from"./ai-connections-DexTPyfC.js";import{c as m,a as O,b as I}from"./XpodAiConnectionsPodStore-G0ClZksP.js";import{r as K}from"./layout-DB3pMyTl.js";import"./workspace-layout-K38jT4OV.js";import"./index-XRgmPBKw.js";import"./index-BMPlaRWG.js";import"./dialog-LFluK7Nx.js";import"./badge-CvKRjSY2.js";import"./index-browser-B0slhJKc.js";async function D(o){const a=o.capabilities.podCollections;if(a)try{return a.load?{collection:await a.load(u,{table:b})}:{collection:a.define(u,{table:b})}}catch{return}}function h(o){return o.includes("#")?K(u,{id:o}):o}async function M(o,a){await o.insert(a).isPersisted.promise}async function C(o,a,l){await o.update(a,d=>{Object.assign(d,l)}).isPersisted.promise}async function U(o,a){await o.delete(a).isPersisted.promise}function g(o,a){const{provider:l}=a,d=L(l,a.offeringId??x(l,a.authMode)),c=a.baseUrl??P(l,d),f=R(a.proxyUrl);return{id:o,service:"ai",provider:l==="custom"?O(o):I(l),authMode:a.authMode,status:"active",accountLabel:a.accountLabel,label:a.accountLabel,keyVersion:"1",reauthRequired:!1,encryptionAlgorithm:"PLAINTEXT",offeringId:d,...c?{baseUrl:c}:{},...f?{proxyUrl:f}:{},metadata:_({offeringId:d,baseUrl:c})}}function N(o,a){const{collection:l}=o,d=async r=>{await U(l,r).catch(()=>{})},c=(r,t)=>{const e=l.get(r);return e?p(e,t):void 0},f=async(r,t,e,n)=>{await M(l,e);try{const s=await n(b.buildId({id:t}))??c(t,r);if(!s)throw new Error("credential_create_failed");return s}catch(i){throw await d(t),i}};return{async createApiKeyCredential(r,t){if(!a.createApiKeyCredential)throw new Error("credential_store_unavailable");const e=m(r,"apiKey"),n=t.label??r;return await f(r,e,g(e,{provider:r,authMode:"apiKey",accountLabel:n,offeringId:t.offeringId,baseUrl:t.baseUrl,proxyUrl:t.proxyUrl}),i=>a.createApiKeyCredential(r,{...t,label:n,id:i}))},async createLocalCredential(r,t){if(!a.createLocalCredential)throw new Error("credential_store_unavailable");const e=m(r,"local"),n=t.label??"Local";return await f(r,e,g(e,{provider:r,authMode:"local",accountLabel:n,offeringId:t.offeringId,baseUrl:t.baseUrl}),i=>a.createLocalCredential(r,{...t,label:n,id:i}))},async updateProviderCredential(r,t,e){const n=h(t);if(!n)throw new Error("credential_not_found");const i={...e.label===void 0?{}:{label:e.label,accountLabel:e.label},...e.enabled===void 0?{}:{status:e.enabled?"active":"disabled"}},s=l.get(n);Object.keys(i).length>0&&await C(l,n,i);const y={...e.priority===void 0?{}:{priority:e.priority},...e.baseUrl===void 0?{}:{baseUrl:e.baseUrl},...e.proxyUrl===void 0?{}:{proxyUrl:e.proxyUrl}};if(Object.keys(y).length===0)return c(n,r);if(!a.updateProviderCredential)throw new Error("credential_store_unavailable");try{return await a.updateProviderCredential(r,t,{expectedVersion:e.expectedVersion,...y})??c(n,r)}catch(w){throw s&&Object.keys(i).length>0&&await C(l,n,{...i.label===void 0?{}:{label:s.label,accountLabel:s.accountLabel},...i.status===void 0?{}:{status:s.status}}).catch(()=>{}),w}},async deleteProviderCredential(r,t){const e=h(t);if(!e)return;const n=c(e,r);return await U(l,e),n}}}export{N as collectionCredentialMutations,h as credentialRowKey,D as openCredentialCollection};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as n,r as l,P as x,u as b,o as _,p as z,q as G,s as H,f as g,i as q}from"./global-cmKEraT4.js";import{P as R,a as K,c as p,h as U,u as V,R as X,b as Y,F as Z,D as B,d as J,e as C}from"./index-XRgmPBKw.js";var Q=Object.defineProperty,d=(s,e)=>Q(s,"name",{value:e,configurable:!0}),y="Dialog",[O,_e]=z(y),[W,f]=O(y),ee=d(s=>{const{__scopeDialog:e,children:o,open:r,defaultOpen:i,onOpenChange:a,modal:t=!0}=s,c=l.useRef(null),u=l.useRef(null),[P,v]=J({prop:r,defaultProp:i??!1,onChange:a,caller:y}),[A,S]=l.useState(0),[k,L]=l.useState(0);return n.jsx(W,{scope:e,triggerRef:c,contentRef:u,contentId:C(),titleId:C(),descriptionId:C(),titlePresent:A>0,descriptionPresent:k>0,setTitleCount:S,setDescriptionCount:L,open:P,onOpenChange:v,onOpenToggle:l.useCallback(()=>v($=>!$),[v]),modal:t,children:o})},"Dialog"),te="DialogTrigger",oe=l.forwardRef(d(function(e,o){const{__scopeDialog:r,...i}=e,a=f(te,r),t=_(o,a.triggerRef);return n.jsx(x.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":m(a.open),...i,ref:t,onClick:p(e.onClick,a.onOpenToggle)})},"DialogTrigger")),j="DialogPortal",[ae,N]=O(j,{forceMount:void 0}),ne=d(s=>{const{__scopeDialog:e,forceMount:o,children:r,container:i}=s,a=f(j,e);return n.jsx(ae,{scope:e,forceMount:o,children:l.Children.map(r,t=>n.jsx(R,{present:o||a.open,children:n.jsx(K,{asChild:!0,container:i,children:t})}))})},"DialogPortal"),h="DialogOverlay",w=l.forwardRef(d(function(e,o){const r=N(h,e.__scopeDialog),{forceMount:i=r.forceMount,...a}=e,t=f(h,e.__scopeDialog);return t.modal?n.jsx(R,{present:i||t.open,children:n.jsx(re,{...a,ref:o})}):null},"DialogOverlay")),se=G("DialogOverlay.RemoveScroll"),re=l.forwardRef(d(function(e,o){const{__scopeDialog:r,...i}=e,a=f(h,r),t=V(),c=_(o,t);return n.jsx(X,{as:se,allowPinchZoom:!0,shards:[a.contentRef],children:n.jsx(x.div,{"data-state":m(a.open),...i,ref:c,style:{pointerEvents:"auto",...i.style}})})},"DialogOverlayImpl")),D="DialogContent",E=l.forwardRef(d(function(e,o){const r=N(D,e.__scopeDialog),{forceMount:i=r.forceMount,...a}=e,t=f(D,e.__scopeDialog);return n.jsx(R,{present:i||t.open,children:t.modal?n.jsx(ie,{...a,ref:o}):n.jsx(le,{...a,ref:o})})},"DialogContent")),ie=l.forwardRef(d(function(e,o){const r=f(D,e.__scopeDialog),i=l.useRef(null),a=_(o,r.contentRef,i);return l.useEffect(()=>{const t=i.current;if(t)return U(t)},[]),n.jsx(I,{...e,ref:a,trapFocus:r.open,disableOutsidePointerEvents:r.open,onCloseAutoFocus:p(e.onCloseAutoFocus,t=>{t.preventDefault(),r.triggerRef.current?.focus()}),onPointerDownOutside:p(e.onPointerDownOutside,t=>{const c=t.detail.originalEvent,u=c.button===0&&c.ctrlKey===!0;(c.button===2||u)&&t.preventDefault()}),onFocusOutside:p(e.onFocusOutside,t=>t.preventDefault())})},"DialogContentModal")),le=l.forwardRef(d(function(e,o){const r=f(D,e.__scopeDialog),i=l.useRef(!1),a=l.useRef(!1);return n.jsx(I,{...e,ref:o,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(i.current||r.triggerRef.current?.focus(),t.preventDefault()),i.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(i.current=!0,t.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const c=t.target;r.triggerRef.current?.contains(c)&&t.preventDefault(),t.detail.originalEvent.type==="focusin"&&a.current&&t.preventDefault()}})},"DialogContentNonModal")),I=l.forwardRef(d(function(e,o){const{__scopeDialog:r,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:t,...c}=e,u=f(D,r);return Y(),n.jsx(n.Fragment,{children:n.jsx(Z,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:a,onUnmountAutoFocus:t,children:n.jsx(B,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionPresent?u.descriptionId:void 0,"aria-labelledby":u.titlePresent?u.titleId:void 0,"data-state":m(u.open),...c,ref:o,deferPointerDownOutside:!0,onDismiss:()=>u.onOpenChange(!1)})})})},"DialogContentImpl")),ce="DialogTitle",T=l.forwardRef(d(function(e,o){const{__scopeDialog:r,...i}=e,a=f(ce,r),{setTitleCount:t}=a;return b(()=>(t(c=>c+1),()=>t(c=>c-1)),[t]),n.jsx(x.h2,{id:a.titleId,...i,ref:o})},"DialogTitle")),de="DialogDescription",M=l.forwardRef(d(function(e,o){const{__scopeDialog:r,...i}=e,a=f(de,r),{setDescriptionCount:t}=a;return b(()=>(t(c=>c+1),()=>t(c=>c-1)),[t]),n.jsx(x.p,{id:a.descriptionId,...i,ref:o})},"DialogDescription")),ue="DialogClose",fe=l.forwardRef(d(function(e,o){const{__scopeDialog:r,...i}=e,a=f(ue,r);return n.jsx(x.button,{type:"button",...i,ref:o,onClick:p(e.onClick,()=>a.onOpenChange(!1))})},"DialogClose"));function m(s){return s?"open":"closed"}d(m,"getState");const Re=ee,ye=oe,ge=ne,F=l.forwardRef(({className:s,...e},o)=>n.jsx(w,{ref:o,className:g("fixed inset-0 z-50 bg-black/40","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...e}));F.displayName=w.displayName;const pe=l.forwardRef(({className:s,children:e,variant:o="center",...r},i)=>n.jsxs(ge,{children:[n.jsx(F,{}),n.jsxs(E,{ref:i,className:g(o==="sheet-left"?"fixed inset-y-0 left-0 z-50 flex h-dvh w-[min(88vw,320px)] flex-col border-r bg-background p-0 shadow-[16px_0_30px_rgba(15,23,42,0.08)] duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:slide-out-to-left-full data-[state=open]:slide-in-from-left-full rounded-none":o==="sheet-right"?"fixed inset-y-0 right-0 z-50 flex h-dvh w-full max-w-4xl flex-col border-l bg-background p-0 shadow-[-16px_0_30px_rgba(15,23,42,0.08)] duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-right-full rounded-none":"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] rounded-lg",s),...r,children:[e,n.jsxs(fe,{className:g("absolute right-4 top-4 rounded-xl opacity-70 transition-all hover:opacity-100 hover:bg-muted/50 p-1 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",q),children:[n.jsx(H,{className:"h-4 w-4"}),n.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));pe.displayName=E.displayName;const De=({className:s,...e})=>n.jsx("div",{className:g("flex flex-col space-y-1.5 text-center sm:text-left",s),...e});De.displayName="DialogHeader";const xe=({className:s,...e})=>n.jsx("div",{className:g("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...e});xe.displayName="DialogFooter";const me=l.forwardRef(({className:s,...e},o)=>n.jsx(T,{ref:o,className:g("text-lg font-semibold leading-none tracking-tight",s),...e}));me.displayName=T.displayName;const ve=l.forwardRef(({className:s,...e},o)=>n.jsx(M,{ref:o,className:g("text-sm text-muted-foreground",s),...e}));ve.displayName=M.displayName;export{Re as D,pe as a,De as b,me as c,ve as d,xe as e,ye as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as o}from"./global-
|
|
1
|
+
import{c as o}from"./global-cmKEraT4.js";const a=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],e=o("download",a);export{e as D};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as a}from"./global-
|
|
1
|
+
import{c as a}from"./global-cmKEraT4.js";const e=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],n=a("external-link",e);export{n as E};
|