@omnitron-dev/omnitron 0.3.3 → 0.4.6
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/README.md +296 -6
- package/bin/{pnpmfile-sdk.mjs → pnpmfile-sdk.js} +19 -1
- package/bin/sdk.d.ts +19 -0
- package/bin/sdk.js +932 -0
- package/dist/BUILD.json +2 -2
- package/dist/cli/omnitron.js +68 -20
- package/dist/cli/omnitron.js.map +1 -1
- package/dist/commands/infra.d.ts +8 -2
- package/dist/commands/infra.d.ts.map +1 -1
- package/dist/commands/infra.js +52 -59
- package/dist/commands/infra.js.map +1 -1
- package/dist/commands/node.d.ts.map +1 -1
- package/dist/commands/node.js +8 -1
- package/dist/commands/node.js.map +1 -1
- package/dist/commands/release-store.d.ts.map +1 -1
- package/dist/commands/release-store.js +6 -9
- package/dist/commands/release-store.js.map +1 -1
- package/dist/commands/release.d.ts +4 -1
- package/dist/commands/release.d.ts.map +1 -1
- package/dist/commands/release.js +125 -5
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/stack.d.ts +3 -6
- package/dist/commands/stack.d.ts.map +1 -1
- package/dist/commands/stack.js +51 -9
- package/dist/commands/stack.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +1 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/config/saved.d.ts +3 -0
- package/dist/config/saved.d.ts.map +1 -1
- package/dist/config/saved.js +1 -0
- package/dist/config/saved.js.map +1 -1
- package/dist/config/types.d.ts +4 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/daemon/daemon-client.d.ts +3 -15
- package/dist/daemon/daemon-client.d.ts.map +1 -1
- package/dist/daemon/daemon-client.js +4 -0
- package/dist/daemon/daemon-client.js.map +1 -1
- package/dist/daemon/daemon.d.ts +5 -11
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +58 -48
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/daemon.rpc-service.d.ts +3 -41
- package/dist/daemon/daemon.rpc-service.d.ts.map +1 -1
- package/dist/daemon/daemon.rpc-service.js +50 -117
- package/dist/daemon/daemon.rpc-service.js.map +1 -1
- package/dist/daemon/darwin-owner-evidence.js +1 -1
- package/dist/daemon/darwin-owner-evidence.js.map +1 -1
- package/dist/daemon/execution-capabilities.d.ts +1 -1
- package/dist/daemon/execution-capabilities.d.ts.map +1 -1
- package/dist/daemon/execution-capabilities.js +3 -3
- package/dist/daemon/execution-capabilities.js.map +1 -1
- package/dist/daemon/execution-client.d.ts +5 -1
- package/dist/daemon/execution-client.d.ts.map +1 -1
- package/dist/daemon/execution-client.js +45 -19
- package/dist/daemon/execution-client.js.map +1 -1
- package/dist/daemon/execution-host.d.ts +4 -11
- package/dist/daemon/execution-host.d.ts.map +1 -1
- package/dist/daemon/execution-host.js +3 -9
- package/dist/daemon/execution-host.js.map +1 -1
- package/dist/daemon/execution-owner.d.ts.map +1 -1
- package/dist/daemon/execution-owner.js +2 -16
- package/dist/daemon/execution-owner.js.map +1 -1
- package/dist/daemon/execution-shutdown.d.ts +1 -1
- package/dist/daemon/execution-shutdown.d.ts.map +1 -1
- package/dist/daemon/managed-owner-build.d.ts +4 -0
- package/dist/daemon/managed-owner-build.d.ts.map +1 -1
- package/dist/daemon/managed-owner-build.js +14 -2
- package/dist/daemon/managed-owner-build.js.map +1 -1
- package/dist/daemon/managed-runtime.js +1 -1
- package/dist/daemon/managed-runtime.js.map +1 -1
- package/dist/daemon/owner-reconciliation.d.ts.map +1 -1
- package/dist/daemon/owner-reconciliation.js +1 -2
- package/dist/daemon/owner-reconciliation.js.map +1 -1
- package/dist/daemon/startup-config.d.ts +1 -0
- package/dist/daemon/startup-config.d.ts.map +1 -1
- package/dist/daemon/system-guardian-cgroup.js +1 -1
- package/dist/daemon/system-guardian-cgroup.js.map +1 -1
- package/dist/infrastructure/container-runtime.d.ts +8 -0
- package/dist/infrastructure/container-runtime.d.ts.map +1 -1
- package/dist/infrastructure/container-runtime.js +5 -0
- package/dist/infrastructure/container-runtime.js.map +1 -1
- package/dist/infrastructure/existing-containers.d.ts +25 -0
- package/dist/infrastructure/existing-containers.d.ts.map +1 -0
- package/dist/infrastructure/existing-containers.js +183 -0
- package/dist/infrastructure/existing-containers.js.map +1 -0
- package/dist/infrastructure/infrastructure.service.d.ts +19 -1
- package/dist/infrastructure/infrastructure.service.d.ts.map +1 -1
- package/dist/infrastructure/infrastructure.service.js +136 -17
- package/dist/infrastructure/infrastructure.service.js.map +1 -1
- package/dist/infrastructure/presets/postgres.js +1 -1
- package/dist/infrastructure/presets/postgres.js.map +1 -1
- package/dist/infrastructure/presets/registry.d.ts.map +1 -1
- package/dist/infrastructure/presets/registry.js +11 -19
- package/dist/infrastructure/presets/registry.js.map +1 -1
- package/dist/infrastructure/stack-infra-manager.d.ts +11 -1
- package/dist/infrastructure/stack-infra-manager.d.ts.map +1 -1
- package/dist/infrastructure/stack-infra-manager.js +79 -8
- package/dist/infrastructure/stack-infra-manager.js.map +1 -1
- package/dist/mcp/tool-groups/infra.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/infra.tools.js +4 -1
- package/dist/mcp/tool-groups/infra.tools.js.map +1 -1
- package/dist/monitoring/log-journal.d.ts.map +1 -1
- package/dist/monitoring/log-journal.js +1 -2
- package/dist/monitoring/log-journal.js.map +1 -1
- package/dist/operations.d.ts +1 -0
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +1 -0
- package/dist/operations.js.map +1 -1
- package/dist/orchestrator/app-name.d.ts +33 -0
- package/dist/orchestrator/app-name.d.ts.map +1 -0
- package/dist/orchestrator/app-name.js +68 -0
- package/dist/orchestrator/app-name.js.map +1 -0
- package/dist/orchestrator/bootstrap-loader.d.ts +2 -0
- package/dist/orchestrator/bootstrap-loader.d.ts.map +1 -1
- package/dist/orchestrator/bootstrap-loader.js +2 -1
- package/dist/orchestrator/bootstrap-loader.js.map +1 -1
- package/dist/orchestrator/classic-launcher.d.ts.map +1 -1
- package/dist/orchestrator/classic-launcher.js +2 -1
- package/dist/orchestrator/classic-launcher.js.map +1 -1
- package/dist/orchestrator/execution-contract.d.ts +2 -3
- package/dist/orchestrator/execution-contract.d.ts.map +1 -1
- package/dist/orchestrator/file-watcher.d.ts +11 -23
- package/dist/orchestrator/file-watcher.d.ts.map +1 -1
- package/dist/orchestrator/file-watcher.js +57 -42
- package/dist/orchestrator/file-watcher.js.map +1 -1
- package/dist/orchestrator/orchestrator.service.d.ts +11 -31
- package/dist/orchestrator/orchestrator.service.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.service.js +127 -109
- package/dist/orchestrator/orchestrator.service.js.map +1 -1
- package/dist/project/bootstrap-metadata.d.ts +1 -1
- package/dist/project/bootstrap-metadata.d.ts.map +1 -1
- package/dist/project/bootstrap-metadata.js +3 -2
- package/dist/project/bootstrap-metadata.js.map +1 -1
- package/dist/project/node-stack-stop.d.ts +2 -1
- package/dist/project/node-stack-stop.d.ts.map +1 -1
- package/dist/project/node-stack-stop.js +5 -1
- package/dist/project/node-stack-stop.js.map +1 -1
- package/dist/project/stack-diagnosis.d.ts.map +1 -1
- package/dist/project/stack-diagnosis.js +2 -3
- package/dist/project/stack-diagnosis.js.map +1 -1
- package/dist/release/artifact-store.d.ts +42 -7
- package/dist/release/artifact-store.d.ts.map +1 -1
- package/dist/release/artifact-store.js +176 -62
- package/dist/release/artifact-store.js.map +1 -1
- package/dist/release/closure-library-path.d.ts +8 -2
- package/dist/release/closure-library-path.d.ts.map +1 -1
- package/dist/release/closure-library-path.js +72 -28
- package/dist/release/closure-library-path.js.map +1 -1
- package/dist/release/configured-store.d.ts +6 -0
- package/dist/release/configured-store.d.ts.map +1 -0
- package/dist/release/configured-store.js +54 -0
- package/dist/release/configured-store.js.map +1 -0
- package/dist/release/load.d.ts +3 -0
- package/dist/release/load.d.ts.map +1 -1
- package/dist/release/load.js +8 -2
- package/dist/release/load.js.map +1 -1
- package/dist/release/local-installation.d.ts +2 -0
- package/dist/release/local-installation.d.ts.map +1 -1
- package/dist/release/local-installation.js +1 -1
- package/dist/release/local-installation.js.map +1 -1
- package/dist/release/portable-archive.d.ts +3 -0
- package/dist/release/portable-archive.d.ts.map +1 -1
- package/dist/release/portable-archive.js +13 -7
- package/dist/release/portable-archive.js.map +1 -1
- package/dist/release/registry-framework.d.ts +25 -0
- package/dist/release/registry-framework.d.ts.map +1 -1
- package/dist/release/registry-framework.js +51 -3
- package/dist/release/registry-framework.js.map +1 -1
- package/dist/release/target-runtime.d.ts +4 -0
- package/dist/release/target-runtime.d.ts.map +1 -1
- package/dist/release/target-runtime.js +9 -0
- package/dist/release/target-runtime.js.map +1 -1
- package/dist/services/host-upgrade.d.ts +2 -0
- package/dist/services/host-upgrade.d.ts.map +1 -1
- package/dist/services/host-upgrade.js +6 -2
- package/dist/services/host-upgrade.js.map +1 -1
- package/dist/services/infrastructure.rpc-service.d.ts +14 -2
- package/dist/services/infrastructure.rpc-service.d.ts.map +1 -1
- package/dist/services/infrastructure.rpc-service.js +128 -17
- package/dist/services/infrastructure.rpc-service.js.map +1 -1
- package/dist/services/kernel-rollout.service.d.ts.map +1 -1
- package/dist/services/kernel-rollout.service.js +1 -2
- package/dist/services/kernel-rollout.service.js.map +1 -1
- package/dist/services/migration-process.d.ts +1 -0
- package/dist/services/migration-process.d.ts.map +1 -1
- package/dist/services/migration-process.js +4 -2
- package/dist/services/migration-process.js.map +1 -1
- package/dist/services/node-deploy-lease.d.ts +4 -1
- package/dist/services/node-deploy-lease.d.ts.map +1 -1
- package/dist/services/node-deploy-lease.js +29 -4
- package/dist/services/node-deploy-lease.js.map +1 -1
- package/dist/services/node-manager.service.d.ts +5 -25
- package/dist/services/node-manager.service.d.ts.map +1 -1
- package/dist/services/node-manager.service.js +150 -139
- package/dist/services/node-manager.service.js.map +1 -1
- package/dist/services/pipeline-definition.d.ts.map +1 -1
- package/dist/services/pipeline-definition.js +32 -6
- package/dist/services/pipeline-definition.js.map +1 -1
- package/dist/services/pipeline.service.d.ts +7 -1
- package/dist/services/pipeline.service.d.ts.map +1 -1
- package/dist/services/pipeline.service.js +106 -13
- package/dist/services/pipeline.service.js.map +1 -1
- package/dist/services/project.rpc-service.d.ts +6 -5
- package/dist/services/project.rpc-service.d.ts.map +1 -1
- package/dist/services/project.rpc-service.js +13 -0
- package/dist/services/project.rpc-service.js.map +1 -1
- package/dist/services/project.service.d.ts +30 -6
- package/dist/services/project.service.d.ts.map +1 -1
- package/dist/services/project.service.js +414 -66
- package/dist/services/project.service.js.map +1 -1
- package/dist/services/release.rpc-service.d.ts +2 -1
- package/dist/services/release.rpc-service.d.ts.map +1 -1
- package/dist/services/release.rpc-service.js +19 -3
- package/dist/services/release.rpc-service.js.map +1 -1
- package/dist/services/release.service.d.ts +24 -11
- package/dist/services/release.service.d.ts.map +1 -1
- package/dist/services/release.service.js +162 -39
- package/dist/services/release.service.js.map +1 -1
- package/dist/services/remote-deployer.service.d.ts +1 -1
- package/dist/services/remote-deployer.service.d.ts.map +1 -1
- package/dist/services/remote-deployer.service.js +3 -0
- package/dist/services/remote-deployer.service.js.map +1 -1
- package/dist/services/secrets.service.d.ts +6 -0
- package/dist/services/secrets.service.d.ts.map +1 -1
- package/dist/services/secrets.service.js +95 -51
- package/dist/services/secrets.service.js.map +1 -1
- package/dist/shared/dto/backend.d.ts +3 -0
- package/dist/shared/dto/backend.d.ts.map +1 -1
- package/dist/shared/dto/backend.js.map +1 -1
- package/dist/shared/dto/nodes.d.ts +2 -0
- package/dist/shared/dto/nodes.d.ts.map +1 -1
- package/dist/shared/dto/pipelines.d.ts +54 -5
- package/dist/shared/dto/pipelines.d.ts.map +1 -1
- package/dist/shared/dto/pipelines.js +0 -7
- package/dist/shared/dto/pipelines.js.map +1 -1
- package/dist/shared/dto/project.d.ts +61 -1
- package/dist/shared/dto/project.d.ts.map +1 -1
- package/dist/shared/dto/releases.d.ts +8 -1
- package/dist/shared/dto/releases.d.ts.map +1 -1
- package/dist/shared/dto/services.d.ts +44 -18
- package/dist/shared/dto/services.d.ts.map +1 -1
- package/dist/shared/dto/services.js.map +1 -1
- package/dist/shared/release-reading.d.ts +6 -0
- package/dist/shared/release-reading.d.ts.map +1 -1
- package/dist/shared/release-reading.js +42 -0
- package/dist/shared/release-reading.js.map +1 -1
- package/dist/workers/system-worker-manager.d.ts +1 -2
- package/dist/workers/system-worker-manager.d.ts.map +1 -1
- package/dist/workers/system-worker-manager.js +5 -3
- package/dist/workers/system-worker-manager.js.map +1 -1
- package/package.json +20 -19
- package/webapp/dist/BUILD.json +2 -2
- package/webapp/dist/assets/{access-jWkHxGc7.js → access-B2gXuoMG.js} +1 -1
- package/webapp/dist/assets/{access-48hkC2-P.js → access-I0f72P9m.js} +1 -1
- package/webapp/dist/assets/{admin-data-table-BKSDI8sU.js → admin-data-table-CAEL2f-m.js} +1 -1
- package/webapp/dist/assets/{alert-uBG6r9NW.js → alert-BdJ2uaY0.js} +1 -1
- package/webapp/dist/assets/{alerts-CuPQ9YQJ.js → alerts-DeVkMXWo.js} +1 -1
- package/webapp/dist/assets/{apps-Drio028B.js → apps-9SuDvyGQ.js} +1 -1
- package/webapp/dist/assets/{audit-npSFJECe.js → audit-DT8cY7Ys.js} +1 -1
- package/webapp/dist/assets/backend-status.store-BbBE9cn8.js +4 -0
- package/webapp/dist/assets/{card-DkH32gMY.js → card-DaUEmUI5.js} +1 -1
- package/webapp/dist/assets/{chart-BpGXlCJc.js → chart-BKXP2ter.js} +1 -1
- package/webapp/dist/assets/{client-DFnuv2z3.js → client-CgyTwq9g.js} +1 -1
- package/webapp/dist/assets/{code-editor-DK6Tmmxv.js → code-editor-JVuQ4m-z.js} +1 -1
- package/webapp/dist/assets/{comparison-bars-BtC0dHjF.js → comparison-bars-Ds5Dt1oj.js} +1 -1
- package/webapp/dist/assets/{confirm-dialog-BbGsAz7_.js → confirm-dialog-BayExVbF.js} +1 -1
- package/webapp/dist/assets/{console-keyboard-D3YCA0yU.js → console-keyboard-uSLt92dB.js} +1 -1
- package/webapp/dist/assets/{containers-Bl8gAyZX.js → containers-DkXTgcrY.js} +1 -1
- package/webapp/dist/assets/{controls-C5W8gHU4.js → controls-CqeGPnaF.js} +1 -1
- package/webapp/dist/assets/{dashboard-UHlet3H9.js → dashboard-By5yPuOf.js} +1 -1
- package/webapp/dist/assets/{dashboard-builder-67PZFqhE.js → dashboard-builder-C0hvBwkd.js} +1 -1
- package/webapp/dist/assets/deploy-progress-B39cvvCE.js +1 -0
- package/webapp/dist/assets/deploy-release-dialog-CnzaO_xL.js +1 -0
- package/webapp/dist/assets/deployments-BXP943hA.js +1 -0
- package/webapp/dist/assets/{detail-B4TiBfxU.js → detail-B84RgiOb.js} +1 -1
- package/webapp/dist/assets/{detail-CYS81K6Y.js → detail-CVXDks9-.js} +1 -1
- package/webapp/dist/assets/detail-D9DixtaK.js +2 -0
- package/webapp/dist/assets/{empty-content-7jOFhG4C.js → empty-content-eyDOuOVp.js} +1 -1
- package/webapp/dist/assets/{error-boundary-CLLI8PWw.js → error-boundary-CQmDr_HS.js} +1 -1
- package/webapp/dist/assets/{event-fields-CiyqrRO8.js → event-fields-C7p2a2HY.js} +1 -1
- package/webapp/dist/assets/{files-DigwXndm.js → files-BsfGT3t6.js} +2 -2
- package/webapp/dist/assets/{icons-OboZgWSt.js → icons-B9Ct8PJ9.js} +1 -1
- package/webapp/dist/assets/index-BEfv96EF.js +1 -0
- package/webapp/dist/assets/{label-B1SF0RTL.js → label-avMhe08g.js} +1 -1
- package/webapp/dist/assets/{log-level-filter-Bcn31D1F.js → log-level-filter-oaUGdbpk.js} +1 -1
- package/webapp/dist/assets/{logs-BqHOufk8.js → logs-iC1OEDv3.js} +1 -1
- package/webapp/dist/assets/{metric-chart-M-kI-XOt.js → metric-chart-CSa_qv4F.js} +1 -1
- package/webapp/dist/assets/{metrics-QIQaF7iS.js → metrics-CKCmcGKw.js} +1 -1
- package/webapp/dist/assets/{mui-Cd711nOk.js → mui-B3fJdIMc.js} +1 -1
- package/webapp/dist/assets/{mui-CdB_p2lt.js → mui-Bdr6Ks5j.js} +1 -1
- package/webapp/dist/assets/{mui-BIz4LSVs.js → mui-CADnFGCx.js} +1 -1
- package/webapp/dist/assets/{mui-AnEgAVjz.js → mui-CMWGTMXv.js} +1 -1
- package/webapp/dist/assets/{mui-DyT2n1lx.js → mui-CN3dT7bb.js} +1 -1
- package/webapp/dist/assets/{mui-BwsIrivo.js → mui-CPEkFAPo.js} +1 -1
- package/webapp/dist/assets/{mui-B1jrje6Z.js → mui-D3qAWvfZ.js} +1 -1
- package/webapp/dist/assets/{mui-C_hromOc.js → mui-D7tBU80e.js} +1 -1
- package/webapp/dist/assets/{mui-y44PQOfG.js → mui-DaJavAoc.js} +1 -1
- package/webapp/dist/assets/{mui-BXSXx9c9.js → mui-SNRRJ_vi.js} +1 -1
- package/webapp/dist/assets/{nodes-BJPk02vv.js → nodes-DtLyXH0V.js} +1 -1
- package/webapp/dist/assets/{operation-status-Bm1x1wTz.js → operation-status-DHyYOT7G.js} +1 -1
- package/webapp/dist/assets/{page-breadcrumbs-fR7Jmpp4.js → page-breadcrumbs-3R8RZ3nA.js} +1 -1
- package/webapp/dist/assets/pipelines-Do2NAAqK.js +3 -0
- package/webapp/dist/assets/project.store-D5IR3fo9.js +1 -0
- package/webapp/dist/assets/{projects-YoBzcQ24.js → projects-BqlGbzeG.js} +1 -1
- package/webapp/dist/assets/{realtime.store-CBDO4Abj.js → realtime.store-C8D235-B.js} +1 -1
- package/webapp/dist/assets/release-bits-IehuBssK.js +1 -0
- package/webapp/dist/assets/release-build-panel-C48hP_9w.js +1 -0
- package/webapp/dist/assets/release-deployment-state-BfmxZP4Y.js +1 -0
- package/webapp/dist/assets/releases-Cm0RV5Xu.js +2 -0
- package/webapp/dist/assets/{search-input-C0MHI8vO.js → search-input-SWD1dXxD.js} +1 -1
- package/webapp/dist/assets/settings-DwuEPQGg.js +1 -0
- package/webapp/dist/assets/sign-in-CQ-WeS5A.js +1 -0
- package/webapp/dist/assets/{skeleton-BmWDJWF9.js → skeleton-BnVxAoeX.js} +1 -1
- package/webapp/dist/assets/{snackbar-DSPmjMyi.js → snackbar-CRX6eqRT.js} +1 -1
- package/webapp/dist/assets/{stack-health-status-BIv2C10x.js → stack-health-status-DfErRNb1.js} +1 -1
- package/webapp/dist/assets/{stack-start-notice-BVnMOwRQ.js → stack-start-notice-NkYDjR-f.js} +1 -1
- package/webapp/dist/assets/{stacks-IZ1mfizi.js → stacks-BOGCfW90.js} +1 -1
- package/webapp/dist/assets/{store-bqUBn2A4.js → store-DtTtbc9H.js} +1 -1
- package/webapp/dist/assets/{system-info-BFKNM-hf.js → system-info-Cw-xywgI.js} +1 -1
- package/webapp/dist/assets/{table-BOWT6Y9d.js → table-D-so_B1p.js} +1 -1
- package/webapp/dist/assets/{table-viewport-Bp4pq-c_.js → table-viewport-DdZ1yAKm.js} +1 -1
- package/webapp/dist/assets/{tabs-k5NPGLnJ.js → tabs-DGqBkXh_.js} +1 -1
- package/webapp/dist/assets/{terminal-QWBau-Us.js → terminal-Bbl0XNeB.js} +1 -1
- package/webapp/dist/assets/{topology-CPey5dP6.js → topology-DmrRy7nN.js} +1 -1
- package/webapp/dist/assets/{topology-metadata-dialog-BivuU2y6.js → topology-metadata-dialog-Dpfp4YF1.js} +1 -1
- package/webapp/dist/assets/{traces-By0rdfDC.js → traces-CKHsOabJ.js} +1 -1
- package/webapp/dist/assets/{use-stack-context-UkBsF-l7.js → use-stack-context-BuraYaeY.js} +1 -1
- package/webapp/dist/assets/webapp-D8h_eabt.js +35 -0
- package/webapp/dist/console-version.json +1 -1
- package/webapp/dist/index.html +34 -34
- package/webapp/dist/logo.svg +1 -80
- package/bin/sdk.d.mts +0 -8
- package/bin/sdk.mjs +0 -576
- package/dist/monitoring/process-lifetime.d.ts +0 -11
- package/dist/monitoring/process-lifetime.d.ts.map +0 -1
- package/dist/monitoring/process-lifetime.js +0 -45
- package/dist/monitoring/process-lifetime.js.map +0 -1
- package/dist/shared/host-boot-identity.d.ts +0 -12
- package/dist/shared/host-boot-identity.d.ts.map +0 -1
- package/dist/shared/host-boot-identity.js +0 -89
- package/dist/shared/host-boot-identity.js.map +0 -1
- package/webapp/dist/assets/deploy-release-dialog-BOXcD5Wo.js +0 -1
- package/webapp/dist/assets/deployments-qV20Ak0P.js +0 -1
- package/webapp/dist/assets/detail-B85-Wees.js +0 -2
- package/webapp/dist/assets/index-uq8Dkk4c.js +0 -1
- package/webapp/dist/assets/omnitron-logo-koMCbsCv.js +0 -1
- package/webapp/dist/assets/pipelines-T6Ch9LTw.js +0 -3
- package/webapp/dist/assets/project.store--G5pIF-J.js +0 -1
- package/webapp/dist/assets/release-bits-B2a_wbft.js +0 -1
- package/webapp/dist/assets/release-build-panel-BQmIdKW9.js +0 -1
- package/webapp/dist/assets/release-deployment-state-DRrEI2pP.js +0 -1
- package/webapp/dist/assets/release-wire-f2VuBoBF.js +0 -1
- package/webapp/dist/assets/releases-Bp3CDgmo.js +0 -2
- package/webapp/dist/assets/settings-B3egRvbI.js +0 -1
- package/webapp/dist/assets/sign-in-9q-Nfy83.js +0 -1
- package/webapp/dist/assets/webapp-D-UhjFhS.js +0 -35
- package/webapp/dist/favicon.png +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{t}from"./react-BN8qLIAi.js";import{P as n,z as r}from"./client-CgyTwq9g.js";import{Vt as i,Yt as a}from"./mui-BTN91yBK.js";import{D as o,F as s,H as c,I as l,M as u,O as d,Q as f,V as p,Z as m,i as h,j as g,r as _}from"./mui-SNRRJ_vi.js";import{B as v,F as y,I as b,z as x}from"./mui-B3fJdIMc.js";import{it as S,rt as C}from"./mui-CMWGTMXv.js";import{_ as w,v as T}from"./mui-CPEkFAPo.js";import{d as E,j as D,o as O}from"./controls-CqeGPnaF.js";import{n as k,t as A}from"./use-copy-to-clipboard-BWYpToS3.js";import{n as j,s as M}from"./access-I0f72P9m.js";import{G as N,z as P}from"./icons-B9Ct8PJ9.js";import{c as F,l as I,n as L,o as R,t as z,u as B}from"./release-bits-IehuBssK.js";function V({record:e,onStop:t,onDeploy:r,compact:a}){let c=z[e.state]??{label:e.state,color:`info`},l=e.state===`running`||e.state===`queued`,u=e.history.slice(-60),d=e.request,f=k();return(0,H.jsx)(g,{variant:`outlined`,sx:{borderColor:l?`primary.main`:void 0},children:(0,H.jsxs)(o,{sx:{pb:2},children:[(0,H.jsxs)(w,{direction:`row`,spacing:1.5,sx:{alignItems:`center`,flexWrap:`wrap`,mb:1},children:[(0,H.jsx)(m,{label:c.label,size:`small`,color:c.color,sx:{fontWeight:600}}),(0,H.jsx)(x,{variant:`subtitle2`,children:d.project}),(0,H.jsx)(y,{title:f.state===`success`?`Copied`:`Copy build ID`,children:(0,H.jsx)(C,{size:`small`,"aria-label":`Copy build ID`,onClick:()=>void f.copy(e.buildId),children:f.state===`success`?(0,H.jsx)(O,{fontSize:`inherit`}):(0,H.jsx)(E,{fontSize:`inherit`})})}),f.state===`error`&&(0,H.jsx)(x,{component:`code`,role:`status`,variant:`caption`,sx:{overflowWrap:`anywhere`},children:e.buildId}),e.releaseId&&(0,H.jsx)(x,{component:n,to:`/releases/${e.releaseId}`,variant:`caption`,sx:{fontFamily:`monospace`,color:`text.secondary`,textDecoration:`none`,"&:hover":{textDecoration:`underline`}},children:e.releaseId}),(0,H.jsx)(p,{sx:{flex:1}}),(0,H.jsxs)(x,{variant:`caption`,sx:{color:`text.secondary`},children:[F(e.durationMs),e.requestedBy?` · ${e.requestedBy}`:``]}),l&&t&&(0,H.jsx)(j,{permission:`OmnitronRelease.stopBuild`,children:(0,H.jsx)(s,{size:`small`,color:`warning`,startIcon:(0,H.jsx)(P,{}),onClick:()=>t(e.buildId),children:e.state===`queued`?`Cancel`:`Stop`})}),e.state===`done`&&e.releaseId&&r&&(0,H.jsx)(j,{permission:`OmnitronProject.startStack`,children:(0,H.jsx)(s,{size:`small`,variant:`contained`,onClick:()=>r(e.releaseId),children:`Deploy…`})})]}),(0,H.jsx)(L,{percent:e.percent,state:e.state}),(0,H.jsxs)(w,{direction:`row`,spacing:1,sx:{alignItems:`baseline`,flexWrap:`wrap`,mt:1},children:[(0,H.jsx)(x,{variant:`body2`,sx:{fontWeight:500,minWidth:0,overflowWrap:`anywhere`},children:e.phase}),(0,H.jsxs)(x,{variant:`caption`,sx:{color:`text.secondary`},children:[e.percent,`%`]})]}),(0,H.jsxs)(w,{direction:`row`,spacing:.75,sx:{mt:.5,flexWrap:`wrap`},children:[d.forStack&&(0,H.jsx)(m,{size:`small`,variant:`outlined`,label:`statics: ${d.forStack}`,sx:{height:20,fontSize:11}}),d.projectCommit&&(0,H.jsx)(m,{size:`small`,variant:`outlined`,label:`project ${d.projectCommit}`,sx:{height:20,fontSize:11}}),d.omniCommit&&(0,H.jsx)(m,{size:`small`,variant:`outlined`,label:`omni ${d.omniCommit}`,sx:{height:20,fontSize:11}}),d.skipGates&&(0,H.jsx)(m,{size:`small`,color:`warning`,variant:`outlined`,label:`gates skipped`,sx:{height:20,fontSize:11}}),(d.envKeys??[]).map(e=>(0,H.jsx)(m,{size:`small`,variant:`outlined`,label:e,sx:{height:20,fontSize:11,fontFamily:`monospace`}},e))]}),d.frameworkSource&&(0,H.jsxs)(x,{variant:`caption`,component:`div`,sx:{mt:.75,color:`text.secondary`,overflowWrap:`anywhere`},children:[`SDK source: `,d.frameworkSource.repository,d.frameworkSource.ref?` · ${d.frameworkSource.ref}`:``]}),e.publication&&(0,H.jsxs)(x,{variant:`caption`,component:`div`,sx:{mt:.75,color:`text.secondary`,overflowWrap:`anywhere`},children:[e.publication.location,` · SHA-256 `,(0,H.jsx)(`code`,{children:e.publication.indexSha256})]}),e.gates.length>0&&(0,H.jsxs)(p,{sx:{mt:1.5},children:[(0,H.jsx)(x,{variant:`caption`,sx:{color:`text.secondary`},children:I(e.gates)}),(0,H.jsx)(p,{sx:{mt:.5},children:(0,H.jsx)(R,{gates:e.gates})})]}),e.error&&(0,H.jsx)(p,{sx:{mt:1.5,p:1.25,borderRadius:1,bgcolor:e=>i(e.palette.error.main,.08)},children:(0,H.jsx)(x,{variant:`caption`,sx:{whiteSpace:`pre-wrap`,overflowWrap:`anywhere`,fontFamily:`monospace`,color:`error.main`},children:e.error})}),!a&&u.length>0&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(_,{sx:{my:1.5}}),(0,H.jsx)(p,{sx:{maxHeight:220,overflowY:`auto`,fontFamily:`monospace`,fontSize:12,lineHeight:1.7},children:u.map((e,t)=>(0,H.jsxs)(p,{sx:{display:`flex`,gap:1.5},children:[(0,H.jsx)(x,{component:`span`,variant:`caption`,sx:{color:`text.disabled`,fontFamily:`monospace`,flexShrink:0},children:e.at.slice(11,19)}),(0,H.jsxs)(x,{component:`span`,variant:`caption`,sx:{color:`text.disabled`,fontFamily:`monospace`,width:34,flexShrink:0,textAlign:`right`},children:[e.percent,`%`]}),(0,H.jsx)(x,{component:`span`,variant:`caption`,sx:{fontFamily:`monospace`,minWidth:0,overflowWrap:`anywhere`},children:e.phase})]},`${e.at}-${t}`))})]})]})})}var H;function U(){return(U=e((()=>{M(),c(),l(),u(),d(),f(),h(),T(),v(),a(),r(),A(),D(),S(),b(),N(),B(),H=t()})))()}export{U as n,V as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{B as r,P as i,h as a,l as o,z as s}from"./client-CgyTwq9g.js";import{F as c,H as l,I as u,Q as d,V as f,Z as p}from"./mui-SNRRJ_vi.js";import{B as m,F as h,I as g,z as _}from"./mui-B3fJdIMc.js";import{it as v,rt as y}from"./mui-CMWGTMXv.js";import{_ as b,v as x}from"./mui-CPEkFAPo.js";import{r as S,t as C}from"./alert-BdJ2uaY0.js";import{n as w,t as T}from"./use-polled-resource-B22hhr5L.js";import{S as E,i as D,m as O,t as k,v as A}from"./project.store-D5IR3fo9.js";import{G as j,M}from"./icons-B9Ct8PJ9.js";import{n as N,t as P}from"./operation-status-DHyYOT7G.js";import{i as F,r as I}from"./deploy-progress-B39cvvCE.js";import{p as L,u as R}from"./release-bits-IehuBssK.js";function z({project:e,stack:t}){let[n,r]=(0,B.useState)(null),[a,s]=(0,B.useState)(!1),[l,u]=(0,B.useState)(!1),d=async()=>{s(!0),u(!1);try{r(await o.invoke(`daemon`,`OmnitronProject`,`inspectInstalledArtifacts`,[{project:e,stack:t}],{timeout:9e4}))}catch{u(!0)}finally{s(!1)}};return(0,V.jsxs)(f,{sx:{minWidth:0,width:1},children:[(0,V.jsx)(c,{size:`small`,variant:`text`,disabled:a,onClick:()=>void d(),sx:{px:0,justifyContent:`flex-start`},children:n?`Inspect installed files again`:`Inspect installed files`}),(0,V.jsx)(P,{active:a,label:`Comparing installed files and retained release archives…`,detail:`Read-only inspection; applications keep running.`}),l&&(0,V.jsx)(C,{severity:`warning`,children:`Inspection is unavailable. The backend may need an update; any results below are the previous observation.`}),n&&(0,V.jsxs)(b,{spacing:.75,children:[(0,V.jsxs)(_,{variant:`caption`,color:`text.secondary`,children:[`Installed files · `,L(n.observedAt)]}),!n.catalogComplete&&(0,V.jsxs)(C,{severity:`warning`,children:[`Release catalog is incomplete. `,n.catalogReasons.join(` `)]}),n.nodes.map((e,t)=>(0,V.jsxs)(_,{variant:`caption`,color:`warning.main`,children:[e.node,`: `,e.error]},`${e.node}:${t}`)),n.apps.map((e,t)=>(0,V.jsxs)(f,{component:`details`,sx:{minWidth:0,overflowWrap:`anywhere`},children:[(0,V.jsxs)(_,{component:`summary`,variant:`caption`,sx:{cursor:`pointer`,color:e.candidates.some(e=>e.state===`modified`)||e.state!==`observed`?`warning.main`:`text.secondary`},children:[e.node,` / `,e.app.split(`/`).at(-1),` · `,e.state===`observed`?e.candidates.length>1?`Ambiguous base (${e.candidates.length} matches)`:e.candidates.length?e.candidates[0].state===`modified`?`Installed files modified`:e.candidates[0].state===`entry-matches`?`Entry matches (partial check)`:`Comparison incomplete`:`No catalog match`:e.state.replaceAll(`-`,` `)]}),(0,V.jsxs)(b,{spacing:.5,sx:{py:.5},children:[(0,V.jsxs)(_,{variant:`caption`,color:`text.secondary`,children:[`Observed PID `,e.pid??`none`,` · `,L(e.observedAt)]}),e.reasons.map(e=>(0,V.jsx)(_,{variant:`caption`,color:`warning.main`,children:e},e)),e.candidates.map(e=>(0,V.jsxs)(f,{children:[(0,V.jsxs)(_,{variant:`caption`,component:`div`,children:[`Retained archive matches `,(0,V.jsx)(_,{component:i,variant:`caption`,to:`/releases/${encodeURIComponent(e.releaseId)}`,sx:{color:`primary.main`,textDecoration:`none`,fontFamily:`monospace`},children:e.releaseId})]}),e.reasons.map(e=>(0,V.jsx)(_,{variant:`caption`,component:`div`,color:`warning.main`,children:e},e))]},e.releaseId))]})]},`${e.node}:${e.app}:${t}`)),n.apps.length===0&&n.nodes.length===0&&(0,V.jsx)(_,{variant:`caption`,color:`text.secondary`,children:`No application installation handles were reported.`}),n.limitations.map(e=>(0,V.jsx)(_,{variant:`caption`,color:`text.secondary`,children:e},e))]})]})}var B,V;function H(){return(H=e((()=>{B=t(),s(),l(),u(),x(),m(),S(),a(),N(),R(),V=n()})))()}function U({project:e,stack:t}){let n=r(),{data:a,loading:o,error:s,refresh:c}=w(()=>A(e,{stacks:async()=>{let t=await D.getState().fetchStacks(e);if(!t)throw Error(`Stack inventory unavailable`);return t},deployments:()=>F.deployments()}),{intervalMs:2e4,resourceKey:e}),l=a?.stacks.filter(e=>!t||e.stack===t)??[];return(0,W.jsxs)(f,{component:`section`,"aria-label":`Deployment state`,sx:{minWidth:0},children:[(0,W.jsxs)(b,{direction:`row`,spacing:1,sx:{alignItems:`center`,mb:.5},children:[(0,W.jsx)(_,{variant:`subtitle2`,sx:{flex:1},children:`Deployment state`}),a&&(0,W.jsxs)(_,{variant:`caption`,color:`text.secondary`,children:[`Observed `,L(a.observedAt)]}),(0,W.jsx)(h,{title:`Refresh deployment state`,children:(0,W.jsx)(`span`,{children:(0,W.jsx)(y,{size:`small`,"aria-label":`Refresh deployment state`,disabled:o,onClick:()=>void c(),children:(0,W.jsx)(M,{})})})})]}),(0,W.jsx)(P,{active:o&&!a,label:`Reading stack state and deployment history…`}),s&&(0,W.jsx)(C,{severity:`warning`,children:`Cannot refresh deployment state. Any values below are the last observation.`}),a&&!a.inventory.known&&(0,W.jsx)(C,{severity:`warning`,children:a.inventory.why}),a?.inventory.known&&l.length===0&&(0,W.jsx)(_,{variant:`body2`,color:`text.secondary`,children:t?`This stack is no longer in the project inventory.`:`No stacks configured for this project.`}),l.map(t=>(0,W.jsxs)(f,{sx:{display:`grid`,gridTemplateColumns:{xs:`minmax(0, 1fr)`,md:`minmax(140px, .7fr) minmax(180px, 1fr) minmax(0, 1.3fr)`},gap:{xs:1,md:2},py:1.5,borderBottom:1,borderColor:`divider`,overflowWrap:`anywhere`},children:[(0,W.jsxs)(b,{spacing:.5,sx:{minWidth:0},children:[(0,W.jsx)(_,{component:i,to:`/stacks/${encodeURIComponent(t.stack)}`,variant:`body2`,onClick:t=>{if(t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let r=D.getState();r.activeProject!==e&&r.selectProject(e,n.pathname)},sx:{color:`primary.main`,textDecoration:`none`,fontWeight:600},children:t.stack}),(0,W.jsx)(_,{variant:`caption`,color:`text.secondary`,children:t.type===`local`?`Controller node`:t.type===`cluster`?`Distributed stack`:`Remote stack`}),t.type!==`local`&&t.nodes.map(e=>(0,W.jsxs)(_,{variant:`caption`,color:e.connected&&!s?`text.secondary`:`warning.main`,children:[e.label?`${e.label} · `:``,e.endpoint,` · `,s?`last observed`:e.connected?`inventory observed`:`inventory unavailable`]},`${e.host}:${e.port}`))]}),(0,W.jsxs)(b,{spacing:.5,sx:{minWidth:0,alignItems:`flex-start`},children:[(0,W.jsxs)(b,{direction:`row`,useFlexGap:!0,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,W.jsx)(p,{size:`small`,variant:`outlined`,label:t.status,color:!s&&t.status===`running`?`success`:t.status===`stopped`?`default`:`warning`}),(0,W.jsxs)(_,{variant:`body2`,children:[`Apps `,t.apps.online,`/`,t.apps.total,t.apps.unknown?` · ${t.apps.unknown} unknown`:``]})]}),(0,W.jsx)(_,{variant:`caption`,color:t.runningRelease===`confirmed`||t.runningRelease===`not-running`?`text.secondary`:`warning.main`,children:E(t)}),t.releaseEvidence.releases.map(e=>(0,W.jsx)(h,{describeChild:!0,title:`Manifest SHA-256: ${e.manifestSha256}`,children:(0,W.jsx)(_,{component:i,to:`/releases/${encodeURIComponent(e.releaseId)}`,variant:`body2`,sx:{color:`primary.main`,textDecoration:`none`,fontFamily:`monospace`},children:e.releaseId})},`${e.releaseId}:${e.manifestSha256}`)),t.releaseEvidence.total>0&&(0,W.jsxs)(f,{component:`details`,sx:{minWidth:0,width:1},children:[(0,W.jsxs)(_,{component:`summary`,variant:`caption`,sx:{cursor:`pointer`,color:`text.secondary`},children:[t.releaseEvidence.verified,`/`,t.releaseEvidence.total,` launch identities verified`]}),(0,W.jsx)(b,{spacing:.75,sx:{pt:.75},children:t.releaseEvidence.observations.map((e,t)=>(0,W.jsxs)(f,{children:[(0,W.jsxs)(_,{variant:`caption`,component:`div`,children:[e.node?`${e.node} / `:``,e.app,` · `,e.state,e.releaseId?` · ${e.releaseId}`:``]}),e.consumer&&e.consumer.releaseId!==e.releaseId&&(0,W.jsxs)(_,{variant:`caption`,color:`text.secondary`,component:`div`,sx:{overflowWrap:`anywhere`},children:[`Producer `,e.releaseId,` · selected consumer `,e.consumer.releaseId]}),e.reason&&(0,W.jsx)(_,{variant:`caption`,color:`warning.main`,component:`div`,children:e.reason}),e.observedAt&&(0,W.jsxs)(_,{variant:`caption`,color:`text.secondary`,component:`div`,children:[`Launch verified `,L(e.observedAt)]})]},`${e.node}:${e.app}:${t}`))})]}),(0,W.jsx)(z,{project:e,stack:t.stack},`${e}:${t.stack}`)]}),(0,W.jsxs)(b,{spacing:.5,sx:{minWidth:0},children:[(0,W.jsx)(_,{variant:`caption`,color:`text.secondary`,children:`Last recorded deployment`}),t.history.known?t.history.last?(0,W.jsxs)(W.Fragment,{children:[t.history.last.release?(0,W.jsx)(_,{component:i,to:`/releases/${encodeURIComponent(t.history.last.release)}`,variant:`body2`,sx:{color:`text.primary`,textDecoration:`none`,fontFamily:`monospace`,overflowWrap:`anywhere`},children:t.history.last.release}):(0,W.jsx)(_,{variant:`body2`,children:t.history.last.releaseUnnamed?`Release name not recorded`:`Working tree`}),(0,W.jsxs)(_,{variant:`caption`,color:`text.secondary`,children:[L(t.history.last.at),` · `,t.history.last.source??`source not recorded`]})]}):(0,W.jsx)(_,{variant:`body2`,color:`text.secondary`,children:`No deployment record`}):(0,W.jsx)(_,{variant:`body2`,color:`warning.main`,children:t.history.why})]})]},t.stack)),l.length>0&&(0,W.jsx)(_,{variant:`caption`,color:`text.secondary`,sx:{display:`block`,pt:1},children:`Verified launch receipts identify the admitted release, not continuous in-memory code integrity. Deployment history is a separate record.`})]})}var W;function G(){return(G=e((()=>{s(),l(),d(),v(),x(),g(),m(),S(),O(),j(),T(),I(),k(),N(),R(),H(),W=n()})))()}export{G as n,U as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{P as r,S as i,h as a,z as o}from"./client-CgyTwq9g.js";import{F as s,H as c,I as l,Q as u,V as d,Z as f,_t as ee,at as p,c as m,ct as h,d as te,f as g,g as _,gt as v,h as ne,ht as y,lt as re,m as ie,ot as b,p as ae,s as x,st as oe,ut as S,vt as C}from"./mui-SNRRJ_vi.js";import{B as w,F as T,I as E,a as D,o as O,z as k}from"./mui-B3fJdIMc.js";import{U as A,W as j,it as M,l as N,rt as se,u as P}from"./mui-CMWGTMXv.js";import{_ as F,n as I,t as ce,v as L}from"./mui-CPEkFAPo.js";import{r as le,t as R}from"./alert-BdJ2uaY0.js";import{c as ue,n as z,s as de}from"./access-I0f72P9m.js";import{n as B,t as fe}from"./use-polled-resource-B22hhr5L.js";import{C as pe,i as me,m as V,n as he,t as H}from"./project.store-D5IR3fo9.js";import{A as ge,G as U,M as _e,m as W,o as ve,p as G}from"./icons-B9Ct8PJ9.js";import{n as ye,t as K}from"./operation-status-DHyYOT7G.js";import{n as be,t as xe}from"./page-breadcrumbs-3R8RZ3nA.js";import{n as Se,t as Ce}from"./admin-data-table-CAEL2f-m.js";import{i as we,r as Te}from"./deploy-progress-B39cvvCE.js";import{a as Ee,d as De,f as Oe,o as ke,p as Ae,r as je,s as q,u as Me}from"./release-bits-IehuBssK.js";import{n as Ne,t as Pe}from"./deploy-release-dialog-CnzaO_xL.js";import{n as Fe,t as Ie}from"./release-build-panel-C48hP_9w.js";import{n as Le,t as Re}from"./release-deployment-state-BfmxZP4Y.js";function ze(e){if(typeof e!=`string`||!e||e.length>4096||e.trim()!==e||/\p{Cc}/u.test(e))return!1;if(/^(?:\/|\.\.?\/|~\/|[A-Za-z]:[\\/])/.test(e))return!0;if(/^[A-Za-z][A-Za-z0-9+.-]*:\/\//.test(e))try{let t=new URL(e);if(![`https:`,`http:`,`ssh:`,`git:`,`git+ssh:`,`git+https:`,`git+http:`,`file:`].includes(t.protocol)||/[?#\\]/.test(e)||t.password)return!1;let n=e.slice(e.indexOf(`://`)+3).split(`/`)[0];return(n.includes(`@`)?n.slice(0,n.lastIndexOf(`@`)):``).includes(`:`)||t.username&&![`ssh:`,`git+ssh:`].includes(t.protocol)?!1:t.protocol===`file:`?!t.username:!!t.hostname}catch{return!1}return e.includes(`://`)||/^(?:https?|ssh|git|file):/i.test(e)||/^[A-Za-z][A-Za-z0-9+.-]*::/.test(e)?!1:e.includes(`/`)&&e.indexOf(`/`)<e.indexOf(`:`)?!0:e.includes(`:`)?/[?#\\]/.test(e)||/^[^/:]+:[^/]*@[^/:]+:/.test(e)?!1:/^(?:[^/@:\s]+@)?(?:\[[0-9A-Fa-f:]+\]|[^/@:\s]+):.+$/.test(e):!0}function Be(e){if(!ze(e))throw new He}var Ve,He;function Ue(){return(Ue=e((()=>{Ve=`Release repository identity is unsafe or invalid; use a credential-free Git remote without query or fragment parameters`,He=class extends Error{constructor(){super(Ve),this.name=`RepositoryIdentityError`}}})))()}function We(e){return typeof e==`string`&&e.length<=1024&&/^refs\/(?:heads|tags)\/.+/.test(e)&&!/[\s~^:?*[\\]|\p{Cc}/u.test(e)&&!e.includes(`..`)&&!e.includes(`@{`)&&!e.endsWith(`.`)&&e.split(`/`).every(e=>e&&!e.startsWith(`.`)&&!e.endsWith(`.lock`))}function Ge(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Framework source must contain a repository and an optional full Git ref`);let t=e;if(Object.keys(t).some(e=>e!==`repository`&&e!==`ref`))throw Error(`Unknown framework source option`);if(Be(t.repository),t.repository===`(no origin)`)throw Error(`Framework source requires a repository`);if(t.repository.startsWith(`-`))throw Error(`Framework repository cannot start with an option; use ./ for a local path`);if(t.ref!==void 0&&!We(t.ref))throw Error(`Framework ref must be a full refs/heads/ or refs/tags/ name`);return Object.freeze({repository:t.repository,...t.ref===void 0?{}:{ref:t.ref}})}function Ke(){return(Ke=e((()=>{Ue()})))()}function qe(e){let t={},n=[];for(let r of e.split(`
|
|
2
|
+
`)){let e=r.trim();if(!e||e.startsWith(`#`))continue;let i=e.indexOf(`=`);if(i<=0){n.push(e);continue}let a=e.slice(0,i).trim();/^[A-Z][A-Z0-9_]*$/.test(a)?t[a]=e.slice(i+1):n.push(e)}return{env:t,bad:n}}function Je({open:e,onClose:t,defaultProject:n,onStarted:r,preflight:a,activeBuilds:o=[]}){let{snapshot:c}=ue(),l=me(e=>e.projects),u=me(e=>e.stacksByProject),m=me(e=>e.fetchStacks),[h,g]=(0,J.useState)(n??``),_=e=>o.find(t=>(t.request.project===e||!a?.buildSlots)&&(t.state===`running`||t.state===`queued`)),v=_(h),[ie,b]=(0,J.useState)(null),[S,C]=(0,J.useState)(``),[w,T]=(0,J.useState)(``),[E,O]=(0,J.useState)(``),[j,M]=(0,J.useState)(``),[se,P]=(0,J.useState)(``),[I,L]=(0,J.useState)(!1),[le,R]=(0,J.useState)(!1),[z,de]=(0,J.useState)(!1),[B,fe]=(0,J.useState)(!1),[pe,V]=(0,J.useState)(null),he=(0,J.useMemo)(()=>u[h]??[],[u,h]);(0,J.useEffect)(()=>{e&&(g(n??``),V(null),O(``),M(``),P(``),b(null),de(!1),L(!1),R(!1),C(``),T(``))},[e,n]),(0,J.useEffect)(()=>{e&&h&&!u[h]&&m(h)},[e,h,u,m]);let H=ie??he.find(e=>e.config?.release?.mode===`required`)?.name??``,{env:ge,bad:U}=(0,J.useMemo)(()=>qe(se),[se]),_e=a?.frameworkSource===1,W=c?.role===`admin`,G=_e&&W,ye=Object.keys(ge).length>0,K=(0,J.useMemo)(()=>{if(!E.trim()&&!j.trim())return{source:void 0,error:null};try{return{source:Ge({repository:E.trim(),...j.trim()?{ref:j.trim()}:{}}),error:null}}catch(e){return{source:void 0,error:e.message}}},[E,j]);return(0,Y.jsxs)(ne,{open:e,onClose:B?void 0:t,maxWidth:`sm`,fullWidth:!0,children:[(0,Y.jsx)(x,{children:`Build a release`}),(0,Y.jsx)(te,{children:(0,Y.jsxs)(F,{spacing:2.5,sx:{mt:1},children:[(0,Y.jsx)(k,{variant:`body2`,sx:{color:`text.secondary`},children:`The controller builds the selected project commit with its locked framework packages or linked Omnitron revision. Gate results and artifact checksums are saved with the release.`}),a?.load&&a.cpus!==null&&a.load[0]>a.cpus&&(0,Y.jsxs)(p,{severity:`warning`,children:[`This machine is carrying more than its cores right now — load`,` `,(0,Y.jsx)(`strong`,{children:a.load.map(e=>e.toFixed(1)).join(` / `)}),` on `,a.cpus,` cores. The gates time out on a machine like this: tests that pass alone fail on connection deadlines, and a different set each run. A release built now records the machine as much as the code.`]}),(0,Y.jsxs)(D,{select:!0,label:`Project`,value:h,helperText:v?`${v.request.project} · ${v.buildId} · ${v.phase}`:a?.buildSlots?`${a.buildSlots.running}/${a.buildSlots.limit} build slots in use · ${a.buildSlots.queued} queued`:void 0,onChange:e=>{g(e.target.value),b(null),P(``),C(``),T(``),O(``),M(``)},size:`small`,fullWidth:!0,disabled:B,children:[l.length===0&&(0,Y.jsx)(N,{disabled:!0,value:``,children:`No projects registered`}),l.map(e=>(0,Y.jsx)(N,{value:e.name,disabled:!!_(e.name),children:e.name},e.name))]}),(0,Y.jsxs)(D,{select:!0,label:`Static bundle for`,value:H,onChange:e=>b(e.target.value),size:`small`,fullWidth:!0,disabled:B,helperText:`A frontend bakes its environment in, so the bundle belongs to one stack. A stack whose gateway serves one refuses a release built without it.`,children:[(0,Y.jsx)(N,{value:``,children:(0,Y.jsx)(`em`,{children:`none — backends only`})}),he.map(e=>(0,Y.jsx)(N,{value:e.name,children:(0,Y.jsxs)(F,{direction:`row`,spacing:1,sx:{alignItems:`center`},children:[(0,Y.jsx)(k,{variant:`body2`,children:e.name}),e.config?.release?.mode===`required`&&(0,Y.jsx)(f,{label:`releases only`,size:`small`,color:`info`,variant:`outlined`,sx:{height:18,fontSize:10}})]})},e.name))]}),(0,Y.jsxs)(F,{direction:{xs:`column`,sm:`row`},spacing:1.5,children:[(0,Y.jsx)(D,{label:`Project commit`,placeholder:`HEAD`,value:S,onChange:e=>C(e.target.value),size:`small`,fullWidth:!0,disabled:B}),(0,Y.jsx)(D,{label:`Framework commit`,placeholder:`From project lockfile or linked checkout`,value:w,onChange:e=>T(e.target.value),size:`small`,fullWidth:!0,disabled:B})]}),(0,Y.jsxs)(ee,{disableGutters:!0,variant:`outlined`,disabled:B,children:[(0,Y.jsx)(re,{expandIcon:(0,Y.jsx)(ve,{sx:{transform:`rotate(90deg)`}}),"aria-controls":`release-source-options`,id:`release-source-toggle`,children:(0,Y.jsxs)(k,{variant:`body2`,children:[`SDK source`,K.source?` · overridden for this build`:_e?` · project defaults`:` · controller defaults`]})}),(0,Y.jsx)(y,{id:`release-source-options`,children:(0,Y.jsxs)(F,{spacing:1.5,children:[(0,Y.jsx)(k,{variant:`caption`,sx:{color:`text.secondary`},children:_e?G?`Project settings and package metadata choose the source. An override runs code from another SDK repository and requires administrator access.`:`Builds use project settings and package metadata. Selecting another SDK source requires administrator access.`:`This controller has not reported support for SDK source configuration. Update it to use committed omnitron.framework settings or a build override. Ordinary builds use its existing source selection.`}),(0,Y.jsx)(D,{label:`SDK repository`,value:E,onChange:e=>O(e.target.value),placeholder:`https://git.example.org/platform/omni.git`,size:`small`,fullWidth:!0,disabled:B||!G,helperText:`HTTPS, SSH or a local path on the build controller. Keep credentials in its Git configuration.`}),(0,Y.jsx)(D,{label:`Required source ref (optional)`,value:j,onChange:e=>M(e.target.value),placeholder:`refs/heads/stable or refs/tags/v1.0.0`,size:`small`,fullWidth:!0,disabled:B||!G,helperText:`The exact framework commit must belong to this branch or match this tag.`}),K.error&&(0,Y.jsx)(p,{severity:`error`,children:K.error})]})})]}),(0,Y.jsx)(D,{label:`Environment for the gates`,placeholder:`TEST_DATABASE__PORT=5432`,value:se,onChange:e=>P(e.target.value),size:`small`,fullWidth:!0,multiline:!0,minRows:2,disabled:B||!W,helperText:W?U.length>0?`Not a NAME=value line: ${U.slice(0,2).join(` · `)}`:`One NAME=value per line. The daemon has the system environment, not your shell’s.`:`Environment overrides require administrator access. Ordinary builds use the project and controller environment.`,error:U.length>0}),(0,Y.jsxs)(d,{children:[a?.publish===1&&(0,Y.jsx)(A,{control:(0,Y.jsx)(ce,{checked:z,onChange:e=>de(e.target.checked),size:`small`,disabled:B||I}),label:(0,Y.jsx)(k,{variant:`body2`,children:`Publish verified build to shared store`})}),(0,Y.jsx)(A,{control:(0,Y.jsx)(ce,{checked:I,onChange:e=>L(e.target.checked),size:`small`,disabled:B||z}),label:(0,Y.jsx)(k,{variant:`body2`,children:`Skip the gates`})}),a?.store&&(0,Y.jsx)(k,{variant:`caption`,component:`p`,color:`text.secondary`,sx:{overflowWrap:`anywhere`},children:a.store.state===`configured`?a.store.location:a.store.state===`invalid`?`Release store configuration is invalid.`:`Release store is not configured.`}),I&&(0,Y.jsxs)(p,{severity:`warning`,sx:{mt:.5},children:[`Every gate is recorded as `,(0,Y.jsx)(`strong`,{children:`not-run`}),`, and a stack that requires any will refuse the release. For a look at what would be built, never for a deployment.`]}),(0,Y.jsx)(A,{control:(0,Y.jsx)(ce,{checked:le,onChange:e=>R(e.target.checked),size:`small`,disabled:B}),label:(0,Y.jsx)(k,{variant:`body2`,children:`Keep the clones (about 2 GB)`})})]}),pe&&(0,Y.jsx)(p,{severity:`error`,children:(0,Y.jsx)(k,{variant:`body2`,sx:{whiteSpace:`pre-wrap`},children:pe})})]})}),(0,Y.jsxs)(ae,{children:[(0,Y.jsx)(s,{onClick:t,size:`small`,disabled:B,children:`Cancel`}),(0,Y.jsx)(s,{variant:`contained`,size:`small`,disabled:!h||!!v||B||U.length>0||K.error!==null||!!K.source&&!G||ye&&!W||z&&a?.publish!==1,startIcon:B?(0,Y.jsx)(oe,{size:14,color:`inherit`}):void 0,onClick:async()=>{if(!z||a?.publish===1&&!I){if(K.error)V(K.error);else if(K.source&&!G)V(_e?`An administrator must select an SDK source override. Build with project defaults or sign in with administrator access.`:`This controller does not support SDK source overrides. Update it before using an override.`);else if(ye&&!W)V(`Environment overrides require administrator access. Reopen the dialog to build with project defaults.`);else{fe(!0),V(null);try{r(await i.build({project:h,...S.trim()?{projectCommit:S.trim()}:{},...w.trim()?{omniCommit:w.trim()}:{},...K.source?{frameworkSource:K.source}:{},...H?{forStack:H}:{},...I?{skipGates:!0}:{},...le?{keepSource:!0}:{},...z&&{publish:!0},...Object.keys(ge).length?{env:ge}:{}})),t()}catch(e){V(e.message)}finally{fe(!1)}}}},children:B?`Starting…`:`Build`})]})]})}var J,Y;function Ye(){return(Ye=e((()=>{J=t(),b(),C(),v(),S(),c(),l(),u(),h(),_(),ie(),g(),m(),j(),P(),L(),I(),O(),w(),Ke(),a(),H(),U(),de(),Y=n()})))()}function Xe({open:e,onClose:t,onPruned:n}){let[r,a]=(0,X.useState)(5),[o,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(null),f=l!==null,[ee,m]=(0,X.useState)(null),[h,g]=(0,X.useState)(null),_=(0,X.useCallback)(async()=>{u(`measuring`),m(null);try{c(await i.prune({keep:r}))}catch(e){m(e.message),c(null)}finally{u(null)}},[r]);return(0,X.useEffect)(()=>{e&&(g(null),_())},[e,_]),(0,Z.jsxs)(ne,{open:e,onClose:f?void 0:t,maxWidth:`sm`,fullWidth:!0,children:[(0,Z.jsx)(x,{children:`Prune releases`}),(0,Z.jsx)(te,{children:(0,Z.jsxs)(F,{spacing:2.5,sx:{mt:1},children:[(0,Z.jsx)(D,{label:`Keep the newest`,type:`number`,size:`small`,value:r,onChange:e=>a(Math.max(0,Number(e.target.value)||0)),onBlur:()=>void _(),disabled:f,sx:{width:180}}),o?.unknown&&(0,Z.jsxs)(p,{severity:`warning`,children:[`Which of these a stack is running cannot be told — `,o.unknown,`. The daemon will not remove anything until it can; `,(0,Z.jsx)(`code`,{children:`omnitron release prune --yes --allow-unprotected`}),` removes them without knowing.`]}),o&&o.protectedByDeployment.length>0&&(0,Z.jsxs)(k,{variant:`caption`,sx:{color:`text.secondary`},children:[`Kept whatever their age, because a stack runs them: `,o.protectedByDeployment.join(`, `),`.`]}),(0,Z.jsx)(K,{active:f,label:l===`removing`?`Removing reviewed releases`:`Measuring release storage`}),h&&(0,Z.jsxs)(p,{severity:`success`,children:[`Removed `,h.removed.length,` release`,h.removed.length===1?``:`s`,`, `,q(h.freedBytes),` freed;`,` `,h.kept,` kept.`]}),!h&&o&&(o.doomed.length===0?(0,Z.jsxs)(p,{severity:`info`,children:[`Nothing to remove — `,o.kept,` release(s) and all of them are kept.`]}):(0,Z.jsxs)(d,{children:[(0,Z.jsxs)(k,{variant:`body2`,sx:{mb:1},children:[o.doomed.length,` release`,o.doomed.length===1?``:`s`,` would go, freeing `,q(o.freedBytes),`:`]}),(0,Z.jsx)(d,{sx:{maxHeight:220,overflowY:`auto`},children:o.doomed.map(e=>(0,Z.jsxs)(F,{direction:`row`,spacing:1.5,sx:{py:.25},children:[(0,Z.jsx)(k,{variant:`caption`,sx:{fontFamily:`monospace`,flex:1},children:e.id}),(0,Z.jsx)(k,{variant:`caption`,sx:{color:`text.secondary`,fontFamily:`monospace`},children:q(e.bytes)})]},e.id))})]})),ee&&(0,Z.jsx)(p,{severity:`error`,children:(0,Z.jsx)(k,{variant:`body2`,sx:{whiteSpace:`pre-wrap`},children:ee})})]})}),(0,Z.jsxs)(ae,{children:[(0,Z.jsx)(s,{onClick:t,size:`small`,disabled:f,children:h?`Close`:`Cancel`}),!h&&(0,Z.jsxs)(s,{variant:`contained`,color:`error`,loading:l===`removing`,size:`small`,disabled:f||!o||o.doomed.length===0||o.unknown!==null,onClick:async()=>{u(`removing`),m(null);try{let e=await i.prune({keep:r,apply:!0});g(e),n()}catch(e){m(e.message)}finally{u(null)}},children:[`Remove `,o?.doomed.length??0]})]})]})}var X,Z;function Ze(){return(Ze=e((()=>{X=t(),b(),c(),l(),ye(),_(),ie(),g(),m(),L(),O(),w(),a(),Me(),Z=n()})))()}async function Qe(){let[e,t,n,r]=await Promise.allSettled([we.list(),we.builds(),we.preflight(),we.deployments(200)]),i=[];if(e.status===`rejected`&&i.push(`releases: ${e.reason?.message??`unavailable`}`),t.status===`rejected`&&i.push(`builds: ${t.reason?.message??`unavailable`}`),n.status===`rejected`&&i.push(`preflight: ${n.reason?.message??`unavailable`}`),r.status===`rejected`&&i.push(`deployments: ${r.reason?.message??`unavailable`}`),e.status===`rejected`)throw e.reason;return{releases:e.value.releases,root:e.value.root,builds:t.status===`fulfilled`?t.value:[],preflight:n.status===`fulfilled`?n.value:null,deployments:r.status===`fulfilled`?r.value:{known:!1,why:`Deployment history could not be read`},partial:i.length>0?i.join(` · `):null}}function $e(){let e=he(),[t,n]=(0,Q.useState)(!1),[a,o]=(0,Q.useState)(!1),[c,l]=(0,Q.useState)(null),[u,ee]=(0,Q.useState)(null),[p,m]=(0,Q.useState)(null),[h,te]=(0,Q.useState)(0),[g,_]=(0,Q.useState)(25),[v,ne]=(0,Q.useState)(!0),{data:y,loading:re,error:ie,refresh:b}=B(Qe,{intervalMs:2e4}),ae=(y?.builds??[]).some(e=>e.state===`running`||e.state===`queued`)||u!==null,x=B(async()=>we.builds(),{intervalMs:3e3,enabled:ae}),oe=x.data??y?.builds??[],S=u&&!oe.some(e=>e.buildId===u.buildId)?[u,...oe]:oe,C=(0,Q.useMemo)(()=>y?.releases??[],[y?.releases]),w=(0,Q.useMemo)(()=>v&&e?C.filter(t=>t.project===e):C,[C,v,e]),E=(0,Q.useMemo)(()=>y?.deployments.known?pe(y.deployments.deployments):new Map,[y?.deployments]),D=(0,Q.useCallback)(async e=>{try{await i.stopBuild({buildId:e}),await x.refresh()}catch(e){m(e.message)}},[x]),O=[{key:`id`,header:`Release`,render:e=>{let t=E.get(e.id)??[];return(0,$.jsxs)(F,{spacing:.5,children:[(0,$.jsx)(k,{component:r,to:`/releases/${e.id}`,variant:`body2`,sx:{fontFamily:`monospace`,fontWeight:600,textDecoration:`none`,color:`text.primary`,wordBreak:`break-all`,"&:hover":{color:`primary.main`}},children:e.id}),(0,$.jsxs)(F,{direction:`row`,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,$.jsx)(je,{projectCommit:e.projectCommit,omniCommit:e.omniCommit,onRemote:e.onRemote,project:e.project}),!e.complete&&(0,$.jsx)(T,{title:e.manifestError??`This directory holds no manifest: the build did not finish. Its logs are still there.`,arrow:!0,children:(0,$.jsx)(f,{label:e.manifestError?`invalid manifest`:`unfinished`,size:`small`,color:e.manifestError?`error`:`warning`,variant:`outlined`,sx:{height:18,fontSize:10}})}),t.map(e=>(0,$.jsx)(T,{title:`Last recorded deployment to ${e.project}/${e.stack}: ${Ae(e.at)} · ${e.source??`unknown`}. Current runtime identity is not verified by this record.`,arrow:!0,children:(0,$.jsx)(f,{label:`History: ${e.stack}`,size:`small`,variant:`outlined`})},`${e.project}/${e.stack}`))]})]})}},{key:`built`,header:`Built`,render:e=>(0,$.jsxs)(F,{spacing:.25,sx:{maxWidth:170},children:[(0,$.jsx)(k,{variant:`body2`,sx:{whiteSpace:`nowrap`},children:Ae(e.builtAt)}),(0,$.jsx)(T,{title:e.builtBy??``,arrow:!0,children:(0,$.jsx)(k,{variant:`caption`,noWrap:!0,sx:{color:`text.secondary`,display:`block`},children:e.builtBy??`—`})})]})},{key:`gates`,header:`Gates`,render:e=>(0,$.jsxs)(F,{spacing:.5,children:[(0,$.jsxs)(F,{direction:`row`,spacing:.75,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,$.jsx)(Ee,{release:e}),e.machine&&Oe(e.machine)&&(0,$.jsx)(T,{title:`Recorded during this build: the host's five-minute load average exceeded its core count when gates finished — ${De(e.machine)}. Gate outcomes are shown separately.`,arrow:!0,children:(0,$.jsx)(f,{label:`High host load`,size:`small`,color:`warning`,variant:`outlined`,sx:{height:18,fontSize:10}})})]}),(0,$.jsx)(ke,{gates:e.gateList,size:8,columns:7}),e.verified.map(e=>(0,$.jsx)(T,{title:`Recorded probe result on ${e.stack} at ${Ae(e.at)}. This is historical evidence, not current process identity.`,arrow:!0,children:(0,$.jsxs)(k,{variant:`caption`,sx:{color:e.passed===e.total?`text.secondary`:`warning.main`,fontFamily:`monospace`,whiteSpace:`nowrap`},children:[`Probed `,e.stack,`: `,e.passed,`/`,e.total]})},e.stack))]})},{key:`carries`,header:`Carries`,render:e=>(0,$.jsxs)(F,{spacing:.5,sx:{alignItems:`flex-start`},children:[(0,$.jsx)(T,{title:e.artifacts.apps.join(`, `)||`none`,arrow:!0,children:(0,$.jsxs)(k,{variant:`body2`,sx:{whiteSpace:`nowrap`,color:e.complete?`text.primary`:`text.disabled`},children:[e.complete?`${e.artifacts.count} app${e.artifacts.count===1?``:`s`}`:`—`,e.artifacts.failed.length>0&&(0,$.jsxs)(k,{component:`span`,variant:`caption`,sx:{color:`error.main`,ml:.75},children:[e.artifacts.failed.length,` did not build`]})]})}),e.statics&&(0,$.jsx)(T,{title:`Static bundle built with ${e.statics.stack}'s environment — ${e.statics.files} files, ${q(e.statics.bytes)}`,arrow:!0,children:(0,$.jsx)(f,{label:`statics: ${e.statics.stack}`,size:`small`,variant:`outlined`,sx:{height:18,fontSize:10}})}),(0,$.jsxs)(k,{variant:`caption`,sx:{color:`text.secondary`,fontFamily:`monospace`,whiteSpace:`nowrap`},children:[q(e.bytes),e.keptSource&&(0,$.jsx)(T,{title:`The build's two clones are still on disk — kept on purpose, or left by a build that failed. They are not counted in this size.`,arrow:!0,children:(0,$.jsx)(d,{component:`span`,sx:{color:`warning.main`,ml:.75},children:`+ clones`})})]})]})},{key:`actions`,header:``,render:e=>(0,$.jsx)(F,{direction:`row`,sx:{justifyContent:`flex-end`},children:(0,$.jsx)(z,{permission:`OmnitronProject.startStack`,children:(0,$.jsx)(s,{size:`small`,variant:`outlined`,startIcon:(0,$.jsx)(W,{}),disabled:!e.complete,onClick:()=>l(e),sx:{whiteSpace:`nowrap`},children:`Deploy…`})})})}],A=Math.min(h,Math.max(0,Math.ceil(w.length/g)-1)),j=w.slice(A*g,A*g+g),M=S.filter(t=>!e||t.request.project===e),N=[...M.filter(e=>e.state===`running`||e.state===`queued`),...M.filter(e=>e.state!==`running`&&e.state!==`queued`).slice(0,3)],P=y?.preflight?.canBuild!==!1,I=w.reduce((e,t)=>e+t.bytes,0);return(0,$.jsxs)(F,{spacing:3,children:[(0,$.jsx)(xe,{links:[{name:`Releases`}],action:(0,$.jsxs)(F,{direction:`row`,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,$.jsx)(se,{"data-console-command":`refresh`,size:`small`,onClick:()=>void b(),title:`Refresh`,children:(0,$.jsx)(_e,{})}),(0,$.jsx)(z,{permission:`OmnitronRelease.prune`,children:(0,$.jsx)(s,{size:`small`,startIcon:(0,$.jsx)(G,{}),onClick:()=>o(!0),children:`Prune…`})}),(0,$.jsx)(T,{title:P?``:`This master cannot run a build — see the banner`,arrow:!0,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(z,{permission:`OmnitronRelease.build`,children:(0,$.jsx)(s,{variant:`contained`,size:`small`,startIcon:(0,$.jsx)(ge,{}),disabled:!P,onClick:()=>n(!0),children:`Build`})})})})]})}),y?.preflight&&!y.preflight.canBuild&&(0,$.jsxs)(R,{severity:`error`,variant:`outlined`,children:[`This master cannot run a release build: `,(0,$.jsx)(`strong`,{children:y.preflight.missingTools.join(`, `)}),` `,y.preflight.missingTools.length===1?`is`:`are`,` not on the daemon's PATH. A daemon started by launchd has the system PATH, not a shell's. It looked in: `,y.preflight.path.slice(0,6).join(`, `),y.preflight.path.length>6?`, …`:``]}),p&&(0,$.jsx)(R,{closable:!0,severity:`warning`,variant:`outlined`,onClose:()=>m(null),children:p}),y?.partial&&(0,$.jsxs)(R,{severity:`warning`,variant:`outlined`,children:[`Part of this page could not be read — `,y.partial]}),y&&!y.deployments.known&&(0,$.jsxs)(R,{severity:`warning`,variant:`outlined`,children:[`Deployment history is unavailable — `,y.deployments.why,`. Pruning is refused while deployment protection cannot be determined.`]}),N.length>0&&(0,$.jsx)(F,{spacing:1.5,children:N.map(e=>(0,$.jsx)(Ie,{record:e,onStop:D,onDeploy:e=>{let t=C.find(t=>t.id===e);t?l(t):b()}},e.buildId))}),e&&(0,$.jsx)(Re,{project:e},e),(0,$.jsxs)(F,{direction:`row`,spacing:1.5,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,$.jsx)(k,{variant:`caption`,sx:{color:`text.secondary`,fontFamily:`monospace`,overflowWrap:`anywhere`},children:y?.root??``}),(0,$.jsxs)(k,{variant:`caption`,sx:{color:`text.secondary`},children:[w.length,` release`,w.length===1?``:`s`,` · `,q(I),` · controller storage`]}),(0,$.jsx)(d,{sx:{flex:1}}),e&&(0,$.jsx)(f,{size:`small`,variant:v?`filled`:`outlined`,label:v?`only ${e}`:`all projects`,onClick:()=>ne(e=>!e),sx:{height:22,fontSize:11}})]}),(0,$.jsx)(Ce,{minWidth:640,scrollLabel:`Releases`,columns:O,data:j,total:w.length,loading:re,loadError:ie??null,emptyMessage:`Nothing has been built on this master yet`,rowKey:e=>e.id,page:A,pageSize:g,onPageChange:te,onPageSizeChange:e=>{_(e),te(0)},dense:!0}),(0,$.jsx)(z,{permission:`OmnitronRelease.build`,children:(0,$.jsx)(Je,{open:t,onClose:()=>n(!1),defaultProject:e,activeBuilds:S,preflight:y?.preflight??null,onStarted:e=>{ee(e),x.refresh().then(()=>b())}})}),(0,$.jsx)(z,{permission:`OmnitronRelease.prune`,children:(0,$.jsx)(Xe,{open:a,onClose:()=>o(!1),onPruned:()=>void b()})}),(0,$.jsx)(z,{permission:`OmnitronProject.startStack`,children:(0,$.jsx)(Pe,{open:c!==null,onClose:()=>l(null),project:c?.project??e??``,release:c})})]})}var Q,$;function et(){return(et=e((()=>{de(),Q=t(),o(),c(),l(),u(),M(),L(),E(),w(),le(),Se(),be(),V(),U(),Ne(),Fe(),Le(),Me(),fe(),a(),Te(),H(),Ye(),Ze(),$=n()})))()}et();export{$e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{Vt as r,Yt as i}from"./mui-BTN91yBK.js";import{_n as a,gn as o}from"./mui-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{Vt as r,Yt as i}from"./mui-BTN91yBK.js";import{_n as a,gn as o}from"./mui-Bdr6Ks5j.js";import{H as s,V as c}from"./mui-SNRRJ_vi.js";import{F as l,I as u}from"./mui-B3fJdIMc.js";import{A as d,bt as f,k as p,yt as m}from"./mui-CMWGTMXv.js";import{E as h,j as g,u as _}from"./controls-CqeGPnaF.js";function v({size:e=18}){return(0,S.jsx)(h,{sx:{fontSize:e}})}function y(){return(0,S.jsx)(_,{sx:{fontSize:16}})}function b({value:e,onChange:t,placeholder:n=`Search...`,"aria-label":i,debounce:o=0,compact:s=!1,fullWidth:u=!0,width:d,minWidth:f,clearTooltip:h=`Clear`,autoFocus:g,onFocus:_,onBlur:b,onKeyDown:C,sx:w,ref:T}){let E=a(),[D,O]=(0,x.useState)(e??``),k=(0,x.useRef)(void 0);(0,x.useEffect)(()=>{e!==void 0&&(clearTimeout(k.current),O(e))},[e]);let A=e!==void 0&&o===0?e:D,j=e=>{let n=e.target.value;O(n),o>0?(clearTimeout(k.current),k.current=setTimeout(()=>t?.(n),o)):t?.(n)},M=()=>{O(``),clearTimeout(k.current),t?.(``)};(0,x.useEffect)(()=>()=>clearTimeout(k.current),[]);let N=s?.625:.75,P=s?1.25:1.5,F=s?`3px`:`4px`;return(0,S.jsx)(m,{"data-keyboard-search":!0,ref:T,fullWidth:u,placeholder:n,inputProps:{"aria-label":i??n},value:A,onChange:j,autoFocus:g,onFocus:_,onBlur:b,onKeyDown:C,startAdornment:(0,S.jsx)(p,{position:`start`,sx:{color:`text.disabled`,mr:s?.75:1},children:(0,S.jsx)(v,{size:s?16:18})}),endAdornment:A?(0,S.jsx)(p,{position:`end`,children:(0,S.jsx)(l,{title:h,children:(0,S.jsx)(c,{component:`button`,type:`button`,"aria-label":h,onClick:M,sx:{p:.25,border:`none`,background:`none`,cursor:`pointer`,color:`text.disabled`,display:`flex`,alignItems:`center`,borderRadius:`50%`,"&:hover":{color:`text.secondary`}},children:(0,S.jsx)(y,{})})})}):null,sx:{px:P,py:N,borderRadius:1,fontSize:`0.875rem`,bgcolor:r(E.palette.grey[500],.08),transition:E.transitions.create([`background-color`],{duration:E.transitions.duration.shorter}),"&:hover":{bgcolor:r(E.palette.grey[500],.12)},"&.Mui-focused":{bgcolor:r(E.palette.grey[500],.16)},"& .MuiInputBase-input":{py:F,px:0,overflow:`visible`,"&::placeholder":{opacity:.64}},...d!=null&&{width:d},...f!=null&&{minWidth:f},...!u&&{width:d??`auto`},...Array.isArray(w)?Object.assign({},...w):w}})}var x,S;function C(){return(C=e((()=>{g(),x=t(),f(),d(),u(),s(),i(),o(),S=n()})))()}export{C as n,b as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{h as r,i,o as a}from"./client-CgyTwq9g.js";import{n as o}from"./services-BddvcFi8.js";import{D as s,E as c,F as l,H as u,I as d,M as f,O as p,Q as m,T as h,V as g,Z as _,ct as v,i as y,j as b,r as x,st as S}from"./mui-SNRRJ_vi.js";import{B as C,a as w,o as T,z as E}from"./mui-B3fJdIMc.js";import{A as ee,G as D,K as te,U as O,W as ne,it as re,k,l as ie,rt as A,u as ae}from"./mui-CMWGTMXv.js";import{C as oe,_ as j,n as se,t as M,v as N,w as ce}from"./mui-CPEkFAPo.js";import{n as P,r as F,t as I}from"./alert-BdJ2uaY0.js";import{t as le}from"./auth-CcgjP7hR.js";import{n as L,t as ue}from"./store-DtTtbc9H.js";import{n as de,t as fe}from"./use-polled-resource-B22hhr5L.js";import{a as pe}from"./storage-CKXnhqkt.js";import{G as me,g as R,p as z}from"./icons-B9Ct8PJ9.js";import{n as he,r as ge}from"./alert-expression-CSblScoa.js";import{a as _e,c as ve,l as B,n as V,r as H,s as U,t as ye}from"./alert-notify-settings-C_CHZrFm.js";import{n as be,t as xe}from"./table-D-so_B1p.js";import{n as Se,t as Ce}from"./page-breadcrumbs-3R8RZ3nA.js";import{l as we,n as W}from"./formatters-RnRy4bXm.js";import{n as Te,r as Ee,t as G}from"./tabs-DGqBkXh_.js";function De(){let{data:e,error:t}=de(()=>a.status(),{intervalMs:5e3}),n=e?.connection;return(0,K.jsx)(b,{variant:`outlined`,sx:{minWidth:0,maxWidth:480},children:(0,K.jsx)(s,{sx:{p:2,"&:last-child":{pb:2}},children:(0,K.jsxs)(j,{spacing:1.5,children:[(0,K.jsx)(E,{variant:`subtitle2`,children:`Execution control`}),t&&(0,K.jsxs)(I,{severity:`warning`,children:[`Cannot refresh execution control: `,t,`. Any values below are the last observation.`]}),!e&&!t&&(0,K.jsx)(E,{variant:`body2`,color:`text.secondary`,children:`Waiting for the backend.`}),e&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(j,{direction:`row`,useFlexGap:!0,spacing:1,sx:{flexWrap:`wrap`},children:[(0,K.jsx)(_,{size:`small`,variant:`outlined`,label:e.mode===`resident`?`Resident owner`:`Coupled execution`}),n&&(0,K.jsx)(_,{size:`small`,variant:`outlined`,color:t?`default`:n.status===`connected`?`success`:`warning`,label:t?`Last observed`:n.status===`connected`?`Owner connected`:n.status===`owner-changed`?`Owner identity changed`:`Owner unavailable`})]}),e.owner&&(0,K.jsxs)(E,{variant:`body2`,sx:{fontVariantNumeric:`tabular-nums`,overflowWrap:`anywhere`},children:[`Owner PID `,e.owner.pid,` · epoch `,e.epoch,` · `,e.phase]}),e.ownerRuntime&&(0,K.jsxs)(E,{variant:`body2`,color:`text.secondary`,sx:{overflowWrap:`anywhere`},children:[`Node `,e.ownerRuntime.node,` · ABI `,e.ownerRuntime.abi,` · `,e.ownerRuntime.platform,`/`,e.ownerRuntime.arch]}),e.supervision&&(0,K.jsxs)(E,{variant:`body2`,color:`text.secondary`,sx:{overflowWrap:`anywhere`},children:[`Independent OS supervision · guardian PID `,e.supervision.guardianPid]}),n?.observedAt&&(0,K.jsxs)(E,{variant:`caption`,color:`text.secondary`,children:[`Last owner observation: `,W(n.observedAt)]}),!t&&n?.error&&(0,K.jsxs)(I,{severity:`warning`,children:[n.error,`. Application state is unknown; a lost control channel does not establish that applications stopped.`]}),e.reason&&(0,K.jsx)(E,{variant:`body2`,color:`text.secondary`,children:e.reason}),e.mode===`resident`&&!n&&(0,K.jsx)(E,{variant:`body2`,color:`text.secondary`,children:`This backend does not report owner connection freshness.`}),e.recovery&&(0,K.jsxs)(E,{variant:`body2`,color:`text.secondary`,sx:{overflowWrap:`anywhere`},children:[`Recovery checkpoint: `,e.recovery.status,e.recovery.reason?` · ${e.recovery.reason}`:``]})]})]})})})}var K;function q(){return(q=e((()=>{f(),p(),m(),N(),C(),F(),r(),fe(),K=n()})))()}function J({label:e,value:t,mono:n}){return(0,X.jsxs)(j,{direction:`row`,sx:{justifyContent:`space-between`,alignItems:`center`,gap:2,minWidth:0,py:.5},children:[(0,X.jsx)(E,{variant:`body2`,sx:{color:`text.secondary`},children:e}),(0,X.jsx)(E,{component:`div`,variant:`body2`,sx:{fontWeight:600,minWidth:0,overflowWrap:`anywhere`,textAlign:`right`,...n&&{fontFamily:`monospace`,fontSize:`0.8rem`}},children:t})]})}function Oe(){let e=L(e=>e.user);return e?(0,X.jsxs)(j,{spacing:2,children:[(0,X.jsxs)(b,{variant:`outlined`,sx:{...Z,maxWidth:480},children:[(0,X.jsx)(h,{title:`Profile`,subheader:`Account information`}),(0,X.jsx)(s,{sx:{...Q,pt:0},children:(0,X.jsxs)(j,{spacing:.5,children:[(0,X.jsx)(J,{label:`Username`,value:e.username,mono:!0}),(0,X.jsx)(J,{label:`Display Name`,value:e.displayName}),(0,X.jsx)(J,{label:`Role`,value:(0,X.jsx)(_,{label:e.role,size:`small`,variant:`outlined`,sx:{height:22,fontSize:`0.7rem`,fontWeight:600}})}),(0,X.jsx)(J,{label:`User ID`,value:e.id,mono:!0})]})})]}),(0,X.jsx)(De,{})]}):null}function ke(){let[e,t]=(0,Y.useState)(``),[n,r]=(0,Y.useState)(``),[a,o]=(0,Y.useState)(``),[c,u]=(0,Y.useState)(!1),[d,f]=(0,Y.useState)(!1),[p,m]=(0,Y.useState)(!1),[g,_]=(0,Y.useState)(!1),[v,y]=(0,Y.useState)(null),x=async s=>{if(s.preventDefault(),y(null),_(!1),!e||!n){y(`All fields are required.`);return}if(n!==a){y(`New passwords do not match.`);return}let c=le(n);if(c)y(c);else{m(!0);try{await i.changePassword({oldPassword:e,newPassword:n}),_(!0),t(``),r(``),o(``)}catch(e){y(e?.message??`Failed to change password`)}finally{m(!1)}}};return(0,X.jsxs)(b,{variant:`outlined`,sx:{...Z,maxWidth:480},children:[(0,X.jsx)(h,{slotProps:{title:{variant:`subtitle1`,fontWeight:700},subheader:{variant:`caption`}},title:`Change Password`,subheader:`Update your account credentials`}),(0,X.jsxs)(s,{sx:{...Q,pt:0},children:[g&&(0,X.jsx)(I,{closable:!0,severity:`success`,variant:`outlined`,sx:{mb:2},onClose:()=>_(!1),children:`Password changed successfully.`}),v&&(0,X.jsx)(P,{sx:{mb:2},onClose:()=>y(null),children:v}),(0,X.jsx)(`form`,{onSubmit:x,noValidate:!0,children:(0,X.jsxs)(j,{spacing:2,children:[(0,X.jsx)(w,{size:`small`,label:`Current Password`,type:c?`text`:`password`,value:e,onChange:e=>t(e.target.value),autoComplete:`current-password`,fullWidth:!0,slotProps:{input:{endAdornment:(0,X.jsx)(k,{position:`end`,children:(0,X.jsx)(A,{size:`small`,onClick:()=>u(!c),edge:`end`,children:(0,X.jsx)(R,{open:c,sx:{fontSize:18}})})})}}}),(0,X.jsx)(w,{size:`small`,label:`New Password`,type:d?`text`:`password`,value:n,onChange:e=>r(e.target.value),autoComplete:`new-password`,fullWidth:!0,slotProps:{input:{endAdornment:(0,X.jsx)(k,{position:`end`,children:(0,X.jsx)(A,{size:`small`,onClick:()=>f(!d),edge:`end`,children:(0,X.jsx)(R,{open:d,sx:{fontSize:18}})})})}}}),(0,X.jsx)(w,{size:`small`,label:`Confirm New Password`,type:d?`text`:`password`,value:a,onChange:e=>o(e.target.value),autoComplete:`new-password`,fullWidth:!0}),(0,X.jsx)(l,{type:`submit`,variant:`contained`,size:`small`,disabled:p,startIcon:p?(0,X.jsx)(S,{size:16,color:`inherit`}):void 0,sx:{alignSelf:`flex-start`},children:p?`Changing...`:`Change Password`})]})})]})]})}function Ae(){let e=L(e=>e.user),[t,n]=(0,Y.useState)([]),[r,a]=(0,Y.useState)(!0),[o,s]=(0,Y.useState)(null),[c,u]=(0,Y.useState)(null),d=(0,Y.useCallback)(async()=>{if(e)try{let e=await i.getActiveSessions();n(Array.isArray(e)?e:[]),s(null)}catch(e){s(e?.message??`Failed to fetch sessions`)}finally{a(!1)}},[e]);(0,Y.useEffect)(()=>{d()},[d]);let f=async e=>{u(e);try{await i.signOut({sessionId:e}),n(t=>t.filter(t=>t.id!==e))}catch(e){s(`Failed to revoke: ${e?.message??`Unknown error`}`)}finally{u(null)}};return(0,X.jsxs)(b,{variant:`outlined`,sx:Z,children:[(0,X.jsx)(h,{slotProps:{subheader:{variant:`caption`},title:{variant:`subtitle1`,fontWeight:700}},title:`Active Sessions`,subheader:r?`Loading...`:`${t.length} active session${t.length===1?``:`s`}`,action:t.filter(e=>!e.current).length>1?(0,X.jsx)(l,{size:`small`,color:`error`,variant:`text`,onClick:async()=>{for(let e of t.filter(e=>!e.current))try{await i.signOut({sessionId:e.id})}catch{}await d()},sx:{fontSize:`0.7rem`},children:`Revoke All Others`}):void 0}),o&&(0,X.jsx)(P,{sx:{mx:2,mb:1},onClose:()=>s(null),children:o}),(0,X.jsx)(xe,{scrollLabel:`Active sessions`,sx:{minWidth:560},columns:[{id:`id`,label:`Session`,render:e=>(0,X.jsxs)(j,{direction:`row`,spacing:1,sx:{alignItems:`center`},children:[(0,X.jsxs)(E,{variant:`body2`,sx:{fontFamily:`monospace`,fontSize:12},children:[e.id.slice(0,8),`...`]}),e.current&&(0,X.jsx)(_,{label:`current`,size:`small`,color:`primary`,variant:`outlined`,sx:{height:20,fontSize:10}})]})},{id:`ipAddress`,label:`IP Address`,render:e=>(0,X.jsx)(E,{variant:`body2`,sx:{fontFamily:`monospace`,fontSize:12},children:e.ipAddress??`--`})},{id:`createdAt`,label:`Created`,render:e=>(0,X.jsx)(E,{variant:`caption`,sx:{color:`text.secondary`},children:we(e.createdAt)})},{id:`expiresAt`,label:`Expires`,render:e=>(0,X.jsx)(E,{variant:`caption`,sx:{color:`text.secondary`},children:W(e.expiresAt)})},{id:`actions`,label:`Actions`,align:`center`,render:e=>e.current?null:(0,X.jsx)(A,{size:`small`,color:`error`,disabled:c===e.id,onClick:()=>f(e.id),title:`Revoke session`,children:c===e.id?(0,X.jsx)(S,{size:16,color:`inherit`}):(0,X.jsx)(z,{sx:{fontSize:18}})})}],data:t,rowKey:e=>e.id,loading:r,loadingRows:2,dense:!0,containerSx:{border:`none`,borderRadius:0},emptyContent:(0,X.jsx)(E,{variant:`body2`,sx:{color:`text.secondary`},children:`No active sessions found.`})})]})}function je(){let[e,t]=(0,Y.useState)(()=>U(V,!1)),[n,r]=(0,Y.useState)(()=>U(H,!0)),[i,a]=(0,Y.useState)(()=>ve()),[o,c]=(0,Y.useState)(()=>typeof Notification<`u`?Notification.permission:`unsupported`),l=async(e,n)=>{if(n&&typeof Notification<`u`&&Notification.permission==="default"){let e=await Notification.requestPermission();if(c(e),e!==`granted`){t(!1),B(V,!1);return}}t(n),B(V,n)};return(0,X.jsxs)(b,{variant:`outlined`,sx:{...Z,maxWidth:480},children:[(0,X.jsx)(h,{slotProps:{subheader:{variant:`caption`},title:{variant:`subtitle1`,fontWeight:700}},title:`Notifications`,subheader:`Configure alert delivery preferences`}),(0,X.jsx)(s,{sx:{...Q,pt:0},children:(0,X.jsxs)(j,{spacing:3,children:[(0,X.jsx)(O,{control:(0,X.jsx)(M,{size:`small`,checked:e,onChange:l,disabled:o===`denied`}),label:(0,X.jsxs)(g,{children:[(0,X.jsx)(E,{variant:`body2`,sx:{fontWeight:600},children:`Desktop notifications`}),(0,X.jsx)(E,{variant:`caption`,sx:{color:`text.secondary`},children:o===`denied`?`Blocked by browser — enable in site settings`:o===`unsupported`?`Not supported`:`Show browser notifications for alerts`})]}),sx:{alignItems:`flex-start`,ml:0}}),(0,X.jsx)(O,{control:(0,X.jsx)(M,{size:`small`,checked:n,onChange:(e,t)=>{r(t),B(H,t)}}),label:(0,X.jsxs)(g,{children:[(0,X.jsx)(E,{variant:`body2`,sx:{fontWeight:600},children:`Sound alerts`}),(0,X.jsx)(E,{variant:`caption`,sx:{color:`text.secondary`},children:`Play a tone when an alert fires at or above the minimum severity`})]}),sx:{alignItems:`flex-start`,ml:0}}),(0,X.jsx)(x,{}),(0,X.jsxs)(g,{children:[(0,X.jsx)(E,{variant:`body2`,sx:{fontWeight:600,mb:1},children:`Minimum alert severity`}),(0,X.jsx)(E,{variant:`caption`,sx:{color:`text.secondary`,mb:1.5,display:`block`},children:`Only receive notifications at or above this level`}),(0,X.jsx)(D,{size:`small`,fullWidth:!0,children:(0,X.jsx)(oe,{inputProps:{"aria-label":`Minimum alert severity`},value:i,onChange:e=>{a(e.target.value),pe(ye,e.target.value)},children:he.map(e=>(0,X.jsx)(ie,{value:e,sx:{textTransform:`capitalize`},children:e},e))})})]})]})})]})}function Me(){return(0,X.jsxs)(j,{spacing:2,children:[(0,X.jsx)(Ce,{heading:`Settings`,links:[{name:`System`},{name:`Settings`}]}),(0,X.jsxs)(Te,{defaultValue:`general`,keepMounted:!0,children:[(0,X.jsx)(G,{value:`general`,label:`General`,children:(0,X.jsx)(Oe,{})}),(0,X.jsx)(G,{value:`security`,label:`Security`,children:(0,X.jsx)(ke,{})}),(0,X.jsx)(G,{value:`sessions`,label:`Sessions`,children:(0,X.jsx)(Ae,{})}),(0,X.jsx)(G,{value:`notifications`,label:`Notifications`,children:(0,X.jsx)(je,{})})]})]})}var Y,X,Z,Q;function $(){return($=e((()=>{Se(),q(),Y=t(),f(),p(),c(),C(),N(),T(),d(),re(),m(),ee(),v(),se(),ne(),ae(),ce(),te(),y(),u(),me(),F(),Ee(),be(),ue(),r(),o(),ge(),_e(),X=n(),Z={borderRadius:2},Q={p:3,"&:last-child":{pb:3}}})))()}$();export{Me as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{U as r,V as i,z as a}from"./client-CgyTwq9g.js";import{F as o,I as s,ct as c,st as l}from"./mui-SNRRJ_vi.js";import{B as u,a as d,o as f,z as p}from"./mui-B3fJdIMc.js";import{A as m,it as h,k as g,rt as _}from"./mui-CMWGTMXv.js";import{_ as v,v as y}from"./mui-CPEkFAPo.js";import{n as b,r as x}from"./alert-BdJ2uaY0.js";import{n as S,o as C,s as w,t as T}from"./backend-status.store-BbBE9cn8.js";import{a as E,n as D,r as O,t as k}from"./store-DtTtbc9H.js";import{G as A,g as j}from"./icons-B9Ct8PJ9.js";function M(){let e=i(),[t]=r(),n=D(e=>e.signIn),a=D(e=>e.initError),s=D(e=>e.clearInitError),c=S(),[u,f]=(0,N.useState)(``),[m,h]=(0,N.useState)(``),[y,x]=(0,N.useState)(!1),[w,T]=(0,N.useState)(``),[k,A]=(0,N.useState)(!1),M=E(t.get(`returnTo`));return(0,P.jsxs)(v,{spacing:3,sx:{maxWidth:420,mx:`auto`,width:1},children:[(0,P.jsxs)(v,{spacing:1.5,sx:{alignItems:`center`,textAlign:`center`},children:[(0,P.jsx)(C,{size:64,label:null}),(0,P.jsx)(p,{variant:`h4`,children:`Omnitron Console`}),(0,P.jsx)(p,{variant:`body2`,sx:{color:`text.secondary`},children:`Sign in to manage your infrastructure`})]}),a&&!w&&(0,P.jsx)(b,{severity:`warning`,onClose:s,children:a}),w&&(0,P.jsx)(b,{onClose:()=>T(``),children:w}),(0,P.jsx)(`form`,{onSubmit:async t=>{if(t.preventDefault(),u.trim()&&m.trim()){T(``),A(!0);try{await n(u,m),e(M,{replace:!0})}catch(e){h(``),T(O(e))}finally{A(!1)}}},noValidate:!0,children:(0,P.jsxs)(v,{spacing:2.5,children:[(0,P.jsx)(d,{fullWidth:!0,label:`Username`,autoComplete:`username`,autoFocus:!0,value:u,onChange:e=>f(e.target.value)}),(0,P.jsx)(d,{fullWidth:!0,label:`Password`,type:y?`text`:`password`,autoComplete:`current-password`,value:m,onChange:e=>h(e.target.value),slotProps:{input:{endAdornment:(0,P.jsx)(g,{position:`end`,children:(0,P.jsx)(_,{"aria-label":y?`Hide password`:`Show password`,"aria-pressed":y,onClick:()=>x(!y),edge:`end`,children:(0,P.jsx)(j,{open:y})})})}}}),(0,P.jsx)(o,{fullWidth:!0,size:`large`,type:`submit`,variant:`contained`,disabled:k||!c,startIcon:k?(0,P.jsx)(l,{size:20,color:`inherit`}):void 0,children:k?`Signing in...`:c?`Sign In`:`Daemon offline`})]})})]})}var N,P;function F(){return(F=e((()=>{N=t(),x(),a(),y(),f(),u(),s(),m(),h(),c(),A(),k(),w(),T(),P=n()})))()}F();export{M as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{t}from"./react-BN8qLIAi.js";import{S as n,x as r}from"./mui-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{t}from"./react-BN8qLIAi.js";import{S as n,x as r}from"./mui-CPEkFAPo.js";function i({variant:e=`text`,...t}){return(0,a.jsx)(r,{variant:e,...t})}var a;function o(){return(o=e((()=>{n(),a=t()})))()}export{o as n,i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{at as r,ot as i}from"./mui-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{at as r,ot as i}from"./mui-SNRRJ_vi.js";import{it as a,rt as o}from"./mui-CMWGTMXv.js";import{b as s,y as c}from"./mui-CPEkFAPo.js";import{j as l,u}from"./controls-CqeGPnaF.js";function d(){let e=(0,p.useContext)(h);if(!e)throw Error(`useSnackbar must be used within a SnackbarProvider`);return e}function f({children:e,defaultDuration:t=5e3,defaultPosition:n={vertical:`bottom`,horizontal:`left`},sx:i}){let[a,s]=(0,p.useState)({...g,duration:t,position:n}),l=(0,p.useCallback)(e=>{let r=typeof e==`string`?{message:e}:e;s(e=>({open:!0,message:r.message,severity:r.severity??`info`,duration:r.duration??t,position:r.position??n,action:r.action,key:r.key??Date.now()}))},[t,n]),d=(0,p.useCallback)((e,t)=>{l({message:e,severity:`success`,...t})},[l]),f=(0,p.useCallback)((e,t)=>{l({message:e,severity:`error`,...t})},[l]),_=(0,p.useCallback)((e,t)=>{l({message:e,severity:`warning`,...t})},[l]),v=(0,p.useCallback)((e,t)=>{l({message:e,severity:`info`,...t})},[l]),y=(0,p.useCallback)(()=>{s(e=>({...e,open:!1}))},[]),b=(0,p.useCallback)((e,t)=>{t!==`clickaway`&&y()},[y]),x=(0,p.useMemo)(()=>({show:l,success:d,error:f,warning:_,info:v,close:y}),[l,d,f,_,v,y]);return(0,m.jsxs)(h.Provider,{value:x,children:[e,(0,m.jsx)(c,{open:a.open,autoHideDuration:a.duration,onClose:b,anchorOrigin:a.position,sx:i,children:(0,m.jsx)(r,{severity:a.severity,variant:`filled`,onClose:b,action:a.action||(0,m.jsx)(o,{size:`small`,"aria-label":`close`,color:`inherit`,onClick:y,children:(0,m.jsx)(u,{fontSize:`small`})}),sx:{width:`100%`,alignItems:`center`},children:a.message})},a.key)]})}var p,m,h,g;function _(){return(_=e((()=>{p=t(),s(),i(),a(),l(),m=n(),h=(0,p.createContext)(null),g={open:!1,message:``,severity:`info`,duration:5e3,position:{vertical:`bottom`,horizontal:`left`},key:0}})))()}export{_ as n,d as r,f as t};
|
package/webapp/dist/assets/{stack-health-status-BIv2C10x.js → stack-health-status-DfErRNb1.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{t}from"./react-BN8qLIAi.js";import{Q as n,Z as r}from"./mui-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{t}from"./react-BN8qLIAi.js";import{Q as n,Z as r}from"./mui-SNRRJ_vi.js";import{B as i,z as a}from"./mui-B3fJdIMc.js";import{_ as o,v as s}from"./mui-CPEkFAPo.js";function c(e=`unknown`){return e===`not-running`?`Not running`:e===`unknown`?`Health unknown`:e===`healthy`?`Healthy`:e===`degraded`?`Health warning`:`Unhealthy`}function l(e){let t=e?.status??`unknown`,n=new Map;for(let t of e?.apps??[])n.set(t.status,(n.get(t.status)??0)+1);let r=[...n].map(([e,t])=>`${t} ${e===`degraded`?`warning`:e}`).join(` · `);return{status:t,label:c(t),detail:r||`Application health has not been observed`,findings:(e?.apps??[]).filter(e=>e.status!==`healthy`&&e.status!==`not-running`)}}function u({stack:e,compact:t=!1}){let n=l(e.health);return e.status===`stopped`&&!e.health?null:(0,f.jsxs)(o,{spacing:.5,sx:{mt:1.5,minWidth:0},children:[(0,f.jsxs)(o,{direction:`row`,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,f.jsx)(r,{size:`small`,variant:`outlined`,label:n.label,color:n.status===`healthy`?`success`:n.status===`unhealthy`?`error`:n.status===`degraded`?`warning`:`default`}),(0,f.jsx)(a,{variant:`caption`,color:`text.secondary`,children:n.detail})]}),!t&&n.findings.map(e=>(0,f.jsxs)(a,{variant:`caption`,sx:{overflowWrap:`anywhere`},children:[e.node===`local`?e.name:`${e.node} / ${e.name}`,` · `,e.checks.filter(e=>e.status!==`pass`).map(e=>e.message||e.name).join(` · `)||e.status]},`${e.node}/${e.name}`)),!t&&e.health?.observedAt&&(0,f.jsxs)(a,{variant:`caption`,color:`text.secondary`,children:[`Health observed `,new Date(e.health.observedAt).toLocaleString()]})]})}function d({status:e=`unknown`}){return(0,f.jsx)(r,{size:`small`,variant:`outlined`,label:c(e),color:e===`healthy`?`success`:e===`unhealthy`?`error`:e===`degraded`?`warning`:`default`})}var f;function p(){return(p=e((()=>{s(),n(),i(),f=t()})))()}export{u as n,p as r,d as t};
|
package/webapp/dist/assets/{stack-start-notice-BVnMOwRQ.js → stack-start-notice-NkYDjR-f.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{h as r,l as i}from"./client-DFnuv2z3.js";import{C as a,F as o,H as s,I as c,Q as l,V as u,Z as d,c as f,d as p,f as m,g as h,h as g,m as _,p as v,s as y,w as b}from"./mui-BXSXx9c9.js";import{B as x,z as S}from"./mui-Cd711nOk.js";import{U as C,W as w}from"./mui-AnEgAVjz.js";import{_ as T,n as ee,t as te,v as E}from"./mui-BwsIrivo.js";import{r as D,t as O}from"./alert-uBG6r9NW.js";import{n as k,s as A}from"./access-48hkC2-P.js";import{n as j,t as M}from"./operation-status-Bm1x1wTz.js";import{o as N}from"./formatters-RnRy4bXm.js";import{n as P,t as F}from"./topology-metadata-dialog-BivuU2y6.js";function I(e){let t=e.stopOperation;return!!(t?.phase===`stopped`&&!t.supersededAt&&t.nodes.length&&t.nodes.every(e=>e.outcome===`stopped`&&e.authority))}function ne({stack:e,onResume:t,onReviewStop:n}){if(!I(e))return null;let r=e.stopOperation;return!r.intentCommitted||r.nodes.some(e=>!e.operationId||!e.observedAt)||e.resumeOperation?.stopOperationId===r.id?(0,L.jsx)(k,{permission:`OmnitronProject.reviewStackStop`,children:(0,L.jsx)(o,{size:`small`,onClick:n,children:`Review new stop…`})}):(0,L.jsx)(k,{permission:`OmnitronProject.resumeInstalledStack`,children:(0,L.jsx)(o,{size:`small`,color:`success`,onClick:t,children:`Resume installed apps`})})}function re({stack:e}){let t=e.resumeOperation;if(!t||t.stopOperationId!==e.stopOperation?.id)return null;let n=t.outcome===`running`,r=t.nodes.filter(e=>e.outcome===`running`).length;return(0,L.jsxs)(u,{component:`details`,open:!n,sx:{mb:2,typography:`body2`,overflowWrap:`anywhere`},children:[(0,L.jsxs)(`summary`,{children:[`Installed recovery · `,t.outcome,` · `,r,`/`,t.nodes.length,` nodes confirmed`]}),!n&&(0,L.jsx)(O,{severity:`warning`,children:`Inspect each node before requesting a new stop and recovery.`}),(0,L.jsxs)(S,{variant:`caption`,children:[`Operation `,t.operationId]}),t.nodes.map(e=>(0,L.jsx)(S,{variant:`body2`,children:[e.node,e.outcome,e.apps?.join(`, `),e.reason,e.observedAt&&N(e.observedAt)].filter(Boolean).join(` · `)},e.node))]})}var L;function R(){return(R=e((()=>{s(),c(),x(),D(),A(),L=n()})))()}function ie({project:e,stack:t,onClose:n,onConfirm:r}){let[s,c]=(0,z.useState)(!1),[l,d]=(0,z.useState)(0),[f,m]=(0,z.useState)(null),[h,_]=(0,z.useState)(null);(0,z.useEffect)(()=>{let n=!0;return m(null),_(null),i.invoke(`daemon`,`OmnitronProject`,`reviewStackStop`,[{project:e,stack:t,...s&&{keepInfrastructure:!0}}],{timeout:12e4}).then(e=>{n&&(s&&e.keepInfrastructure!==!0?_(`This controller cannot confirm infrastructure preservation. Update it before stopping applications separately.`):m(e))}).catch(e=>{n&&_(e instanceof Error?e.message:`Stop review unavailable`)}),()=>{n=!1}},[e,t,l,s]);let b=!f&&!h,x=!!f?.digest&&f.keepInfrastructure===!0===s;return(0,B.jsxs)(g,{open:!0,fullWidth:!0,maxWidth:`sm`,onClose:n,"aria-labelledby":`stack-stop-title`,children:[(0,B.jsxs)(y,{id:`stack-stop-title`,children:[`Review stop · `,e,` / `,t]}),(0,B.jsxs)(p,{dividers:!0,"aria-busy":b,children:[(0,B.jsx)(C,{control:(0,B.jsx)(a,{checked:s,onChange:e=>{m(null),_(null),c(e.target.checked)}}),label:`Keep infrastructure`,sx:{mb:1}}),(0,B.jsx)(M,{active:b,label:`Checking current owners and resources`}),h&&(0,B.jsx)(O,{severity:`error`,children:h}),f&&(0,B.jsxs)(T,{spacing:1.5,children:[(0,B.jsx)(S,{variant:`body2`,role:`status`,children:f.digest?`Stopping will disable automatic resume for this stack.`:`Some targets could not be verified. Review their status before stopping.`}),(0,B.jsx)(u,{component:`ul`,sx:{listStyle:`none`,m:0,p:0},children:f.targets.map(e=>(0,B.jsxs)(u,{component:`li`,sx:{py:1,overflowWrap:`anywhere`,"& + li":{borderTop:1,borderColor:`divider`}},children:[(0,B.jsxs)(S,{variant:`subtitle2`,children:[e.node,e.runtime&&` · ${e.runtime.project}/${e.runtime.stack}`]}),e.reason?(0,B.jsx)(S,{color:`warning.main`,variant:`body2`,children:e.reason}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(S,{variant:`body2`,children:[`Applications to stop · `,e.applications?.join(`, `)||`None`]}),(0,B.jsxs)(S,{variant:`body2`,children:[`Containers `,s?`kept`:`to remove`,` · `,e.containers?.join(`, `)||`None`]})]})]},e.node))})]})]}),(0,B.jsxs)(v,{sx:{flexWrap:`wrap`},children:[(0,B.jsx)(o,{disabled:b,onClick:()=>{m(null),_(null),d(e=>e+1)},children:`Check again`}),(0,B.jsx)(o,{autoFocus:!0,onClick:n,children:`Close`}),(0,B.jsx)(k,{permission:`OmnitronProject.stopStack`,children:(0,B.jsx)(o,{disabled:!x,color:`error`,variant:`contained`,onClick:()=>{x&&f?.digest&&r(f.digest,s)},children:s?`Stop applications`:`Stop stack`})})]})]})}var z,B;function V(){return(V=e((()=>{z=t(),s(),c(),b(),h(),_(),m(),f(),w(),E(),x(),D(),A(),r(),j(),B=n()})))()}function ae(e,t={}){let{initialData:n=null,immediate:r=!1,onSuccess:i,onError:a}=t,[o,s]=(0,H.useState)({data:n,loading:r,error:null}),c=(0,H.useRef)(!0),l=(0,H.useRef)(!1);(0,H.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]);let u=(0,H.useCallback)(async(...t)=>{if(l.current)return Promise.reject(Error(`Operation already in progress`));l.current=!0,c.current&&s(e=>({...e,loading:!0,error:null}));try{let n=await e(...t);return c.current&&(s({data:n,loading:!1,error:null}),i?.(n)),n}catch(e){let t=e instanceof Error?e:Error(String(e));throw c.current&&(s(e=>({...e,loading:!1,error:t})),a?.(t)),t}finally{l.current=!1}},[e,i,a]),d=(0,H.useCallback)(()=>{s({data:n,loading:!1,error:null})},[n]),f=(0,H.useCallback)(e=>{s(t=>({...t,data:e}))},[]),p=(0,H.useCallback)(e=>{s(t=>({...t,error:e}))},[]);return(0,H.useEffect)(()=>{r&&u().catch(()=>{})},[]),(0,H.useMemo)(()=>({...o,execute:u,reset:d,setData:f,setError:p}),[o,u,d,f,p])}var H;function U(){return(U=e((()=>{H=t()})))()}function oe({project:e,stack:t}){let{data:n,loading:r,error:a,execute:s}=ae(()=>i.invoke(`daemon`,`OmnitronProject`,`inspectStackHost`,[{project:e,stack:t}],{timeout:12e4}));return(0,W.jsxs)(T,{spacing:1,sx:{minWidth:0,overflowWrap:`anywhere`},children:[(0,W.jsx)(o,{size:`small`,sx:{alignSelf:`flex-start`},disabled:r,onClick:()=>void s().catch(()=>void 0),children:n?`Inspect hosts again`:`Inspect hosts`}),(0,W.jsx)(M,{active:r,label:`Inspecting target nodes`,detail:`Reading host services and local package indices`}),a&&(0,W.jsxs)(O,{severity:`error`,children:[a.message,n&&` The previous host readings below are stale.`]}),n?.length===0&&(0,W.jsx)(O,{severity:`warning`,children:`No target node returned a reading.`}),n?.map(({node:e,inspection:t,error:n})=>(0,W.jsxs)(u,{sx:{borderTop:1,borderColor:`divider`,pt:1},children:[(0,W.jsx)(S,{variant:`subtitle2`,children:e}),n||!t?(0,W.jsx)(O,{severity:`warning`,children:n||`Host inspection unavailable.`}):(0,W.jsxs)(W.Fragment,{children:[!t.services.length&&(0,W.jsx)(S,{variant:`body2`,children:`No host services reported.`}),t.services.map(({name:e,onHost:t,external:n})=>{let r=t?.probe??n?.probe,i=n?n.reachable?`reachable`:`unreachable`:t?.unit?.state??`no unit reported`;return(0,W.jsxs)(u,{sx:{py:.5},children:[(0,W.jsxs)(S,{variant:`body2`,sx:{fontWeight:600},children:[e,` · `,i]}),t?.packages?.map(e=>(0,W.jsxs)(S,{variant:`body2`,color:e.state===`blocked`?`error.main`:`text.secondary`,children:[e.name,` · installed `,e.installed??`—`,` · candidate `,e.candidate??`—`,` · `,e.state,` ·`,` `,e.detail]},e.name)),t&&!t.packages?.length&&(0,W.jsx)(S,{variant:`caption`,color:`text.secondary`,children:`No package version evidence reported.`}),r&&(0,W.jsx)(S,{variant:`body2`,children:r.ok?`Service probe passed`:r.error??`Service probe failed`}),t?.actions.map(e=>(0,W.jsxs)(S,{variant:`body2`,children:[`Would `,e]},e)),t?.refusals.map(e=>(0,W.jsx)(S,{variant:`body2`,color:`error.main`,children:e},e))]},e)})]})]},e))]})}var W;function G(){return(G=e((()=>{s(),c(),E(),x(),D(),U(),r(),j(),W=n()})))()}function se({project:e,stack:t,onClose:n}){let[r,a]=(0,K.useState)(null),[s,c]=(0,K.useState)(!0),[l,f]=(0,K.useState)(null),[m,h]=(0,K.useState)(!1),[_,b]=(0,K.useState)(!1),x=(0,K.useRef)({value:0}),w=(0,K.useCallback)(async()=>{let n=++x.current.value;c(!0),f(null);try{let r=await i.invoke(`daemon`,`OmnitronProject`,`diagnoseStack`,[{project:e,stack:t}],{timeout:12e4});n===x.current.value&&a(r)}catch(e){n===x.current.value&&f(e instanceof Error?e.message:`Diagnosis failed`)}finally{n===x.current.value&&c(!1)}},[e,t]);return(0,K.useEffect)(()=>{let e=x.current;return w(),()=>{e.value++}},[w]),(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(g,{open:!0,fullWidth:!0,maxWidth:`md`,onClose:n,"aria-labelledby":`stack-diagnosis-title`,children:[(0,q.jsxs)(y,{id:`stack-diagnosis-title`,children:[e,` / `,t,` · Start prerequisites`]}),(0,q.jsx)(p,{dividers:!0,sx:{minWidth:0},children:(0,q.jsxs)(T,{spacing:2,children:[(0,q.jsx)(S,{variant:`body2`,color:`text.secondary`,children:`Inspect configuration and host prerequisites without starting applications, provisioning services or applying migrations.`}),(0,q.jsx)(M,{active:s,label:`Checking stack prerequisites`,detail:`Reading declarations and Docker inventory; no services are changed`}),l&&(0,q.jsxs)(O,{severity:`error`,children:[l,r?` The previous report is retained below and is stale.`:``]}),r&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(T,{direction:`row`,sx:{alignItems:`center`,flexWrap:`wrap`,gap:1},children:[(0,q.jsx)(S,{variant:`subtitle2`,role:`status`,children:X[r.status]}),(0,q.jsxs)(S,{variant:`caption`,color:`text.secondary`,children:[new Date(r.checkedAt).toLocaleString(),` · `,(r.durationMs/1e3).toFixed(1),` s`,s||l?` · previous observation`:``]}),(0,q.jsx)(C,{sx:{ml:`auto`},control:(0,q.jsx)(te,{size:`small`,checked:m,onChange:(e,t)=>h(t)}),label:(0,q.jsx)(S,{variant:`caption`,children:`Needs attention`})})]}),(0,q.jsx)(u,{component:`ul`,sx:{m:0,p:0,listStyle:`none`},children:r.checks.filter(e=>!m||e.state!==`pass`).map((e,t)=>(0,q.jsxs)(u,{component:`li`,sx:{py:1.25,borderBottom:`1px solid`,borderColor:`divider`,display:`grid`,gridTemplateColumns:{xs:`1fr`,sm:`minmax(130px, 1fr) 3fr`},gap:1,overflowWrap:`anywhere`},children:[(0,q.jsxs)(u,{children:[(0,q.jsx)(S,{variant:`body2`,sx:{fontWeight:600},children:e.resource}),(0,q.jsx)(d,{size:`small`,variant:`outlined`,color:J[e.state],label:Y[e.state],sx:{mt:.5}})]}),(0,q.jsxs)(u,{children:[(0,q.jsx)(S,{variant:`body2`,children:e.message}),e.action&&(0,q.jsx)(S,{variant:`body2`,color:`text.secondary`,sx:{mt:.5},children:e.action})]})]},`${e.code}/${e.resource}/${t}`))}),m&&r.checks.every(e=>e.state===`pass`)&&(0,q.jsx)(S,{variant:`body2`,children:`No prerequisite warnings.`}),r.checks.some(e=>e.code===`remote.prerequisites`)&&(0,q.jsx)(k,{permission:`OmnitronProject.inspectStackHost`,children:(0,q.jsx)(oe,{project:e,stack:t},JSON.stringify([e,t]))}),(0,q.jsxs)(O,{severity:`info`,children:[`Not verified: `,r.deferred.join(`; `),`. This report is an observation, not a guarantee that startup will succeed.`]})]})]})}),(0,q.jsxs)(v,{sx:{flexWrap:`wrap`,gap:1},children:[r?.checks.some(e=>e.code===`declaration.unknown`)&&(0,q.jsx)(k,{permission:`OmnitronProject.refreshTopologyMetadata`,children:(0,q.jsx)(o,{disabled:s,onClick:()=>b(!0),children:`Refresh declarations…`})}),(0,q.jsx)(o,{disabled:s,onClick:()=>void w(),children:`Check again`}),(0,q.jsx)(o,{autoFocus:!0,onClick:n,children:`Close`})]})]}),_&&(0,q.jsx)(F,{project:e,stack:t,onClose:()=>b(!1),onUpdated:w})]})}var K,q,J,Y,X;function Z(){return(Z=e((()=>{K=t(),s(),c(),l(),h(),_(),m(),f(),w(),E(),ee(),x(),D(),j(),P(),G(),A(),r(),q=n(),J={pass:`success`,change:`info`,blocked:`error`,unknown:`warning`},Y={pass:`Verified`,change:`Planned change`,blocked:`Blocked`,unknown:`Not verified`},X={ready:`Prerequisites verified`,changes:`Changes required at start`,blocked:`Start blockers found`,unknown:`Verification incomplete`}})))()}function ce({stack:e,compact:t=!1}){if(!e.notUp?.length)return null;let n=t?e.notUp.slice(0,1):e.notUp;return(0,Q.jsxs)(O,{severity:e.status===`error`?`error`:`warning`,sx:{my:2,minWidth:0,"& .MuiAlert-message":{minWidth:0}},children:[(0,Q.jsxs)(S,{variant:`subtitle2`,children:[`Not up · `,e.notUp.length]}),(0,Q.jsx)(u,{component:`ul`,sx:{m:0,pl:2,overflowWrap:`anywhere`},children:n.map(e=>(0,Q.jsx)(S,{component:`li`,variant:`body2`,children:e},e))}),t&&e.notUp.length>n.length&&(0,Q.jsxs)(S,{variant:`caption`,children:[e.notUp.length-n.length,` more · Open stack for details`]})]})}var Q;function $(){return($=e((()=>{s(),x(),D(),Q=n()})))()}export{ie as a,re as c,Z as i,I as l,$ as n,V as o,se as r,ne as s,ce as t,R as u};
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{h as r,l as i}from"./client-CgyTwq9g.js";import{C as a,F as o,H as s,I as c,Q as l,V as u,Z as d,c as f,d as p,f as m,g as h,h as g,m as _,p as v,s as y,w as b}from"./mui-SNRRJ_vi.js";import{B as x,z as S}from"./mui-B3fJdIMc.js";import{U as C,W as w}from"./mui-CMWGTMXv.js";import{_ as T,n as ee,t as te,v as E}from"./mui-CPEkFAPo.js";import{r as D,t as O}from"./alert-BdJ2uaY0.js";import{n as k,s as A}from"./access-I0f72P9m.js";import{n as j,t as M}from"./operation-status-DHyYOT7G.js";import{o as N}from"./formatters-RnRy4bXm.js";import{n as P,t as F}from"./topology-metadata-dialog-Dpfp4YF1.js";function I(e){let t=e.stopOperation;return!!(t?.phase===`stopped`&&!t.supersededAt&&t.nodes.length&&t.nodes.every(e=>e.outcome===`stopped`&&e.authority))}function ne({stack:e,onResume:t,onReviewStop:n}){if(!I(e))return null;let r=e.stopOperation;return!r.intentCommitted||r.nodes.some(e=>!e.operationId||!e.observedAt)||e.resumeOperation?.stopOperationId===r.id?(0,L.jsx)(k,{permission:`OmnitronProject.reviewStackStop`,children:(0,L.jsx)(o,{size:`small`,onClick:n,children:`Review new stop…`})}):(0,L.jsx)(k,{permission:`OmnitronProject.resumeInstalledStack`,children:(0,L.jsx)(o,{size:`small`,color:`success`,onClick:t,children:`Resume installed apps`})})}function re({stack:e}){let t=e.resumeOperation;if(!t||t.stopOperationId!==e.stopOperation?.id)return null;let n=t.outcome===`running`,r=t.nodes.filter(e=>e.outcome===`running`).length;return(0,L.jsxs)(u,{component:`details`,open:!n,sx:{mb:2,typography:`body2`,overflowWrap:`anywhere`},children:[(0,L.jsxs)(`summary`,{children:[`Installed recovery · `,t.outcome,` · `,r,`/`,t.nodes.length,` nodes confirmed`]}),!n&&(0,L.jsx)(O,{severity:`warning`,children:`Inspect each node before requesting a new stop and recovery.`}),(0,L.jsxs)(S,{variant:`caption`,children:[`Operation `,t.operationId]}),t.nodes.map(e=>(0,L.jsx)(S,{variant:`body2`,children:[e.node,e.outcome,e.apps?.join(`, `),e.reason,e.observedAt&&N(e.observedAt)].filter(Boolean).join(` · `)},e.node))]})}var L;function R(){return(R=e((()=>{s(),c(),x(),D(),A(),L=n()})))()}function ie({project:e,stack:t,onClose:n,onConfirm:r}){let[s,c]=(0,z.useState)(!1),[l,d]=(0,z.useState)(0),[f,m]=(0,z.useState)(null),[h,_]=(0,z.useState)(null);(0,z.useEffect)(()=>{let n=!0;return m(null),_(null),i.invoke(`daemon`,`OmnitronProject`,`reviewStackStop`,[{project:e,stack:t,...s&&{keepInfrastructure:!0}}],{timeout:12e4}).then(e=>{n&&(s&&e.keepInfrastructure!==!0?_(`This controller cannot confirm infrastructure preservation. Update it before stopping applications separately.`):m(e))}).catch(e=>{n&&_(e instanceof Error?e.message:`Stop review unavailable`)}),()=>{n=!1}},[e,t,l,s]);let b=!f&&!h,x=!!f?.digest&&f.keepInfrastructure===!0===s;return(0,B.jsxs)(g,{open:!0,fullWidth:!0,maxWidth:`sm`,onClose:n,"aria-labelledby":`stack-stop-title`,children:[(0,B.jsxs)(y,{id:`stack-stop-title`,children:[`Review stop · `,e,` / `,t]}),(0,B.jsxs)(p,{dividers:!0,"aria-busy":b,children:[(0,B.jsx)(C,{control:(0,B.jsx)(a,{checked:s,onChange:e=>{m(null),_(null),c(e.target.checked)}}),label:`Keep infrastructure`,sx:{mb:1}}),(0,B.jsx)(M,{active:b,label:`Checking current owners and resources`}),h&&(0,B.jsx)(O,{severity:`error`,children:h}),f&&(0,B.jsxs)(T,{spacing:1.5,children:[(0,B.jsx)(S,{variant:`body2`,role:`status`,children:f.digest?`Stopping will disable automatic resume for this stack.`:`Some targets could not be verified. Review their status before stopping.`}),(0,B.jsx)(u,{component:`ul`,sx:{listStyle:`none`,m:0,p:0},children:f.targets.map(e=>(0,B.jsxs)(u,{component:`li`,sx:{py:1,overflowWrap:`anywhere`,"& + li":{borderTop:1,borderColor:`divider`}},children:[(0,B.jsxs)(S,{variant:`subtitle2`,children:[e.node,e.runtime&&` · ${e.runtime.project}/${e.runtime.stack}`]}),e.reason?(0,B.jsx)(S,{color:`warning.main`,variant:`body2`,children:e.reason}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(S,{variant:`body2`,children:[`Applications to stop · `,e.applications?.join(`, `)||`None`]}),(0,B.jsxs)(S,{variant:`body2`,children:[`Containers `,s?`kept`:`to remove`,` · `,e.containers?.join(`, `)||`None`]})]})]},e.node))})]})]}),(0,B.jsxs)(v,{sx:{flexWrap:`wrap`},children:[(0,B.jsx)(o,{disabled:b,onClick:()=>{m(null),_(null),d(e=>e+1)},children:`Check again`}),(0,B.jsx)(o,{autoFocus:!0,onClick:n,children:`Close`}),(0,B.jsx)(k,{permission:`OmnitronProject.stopStack`,children:(0,B.jsx)(o,{disabled:!x,color:`error`,variant:`contained`,onClick:()=>{x&&f?.digest&&r(f.digest,s)},children:s?`Stop applications`:`Stop stack`})})]})]})}var z,B;function V(){return(V=e((()=>{z=t(),s(),c(),b(),h(),_(),m(),f(),w(),E(),x(),D(),A(),r(),j(),B=n()})))()}function ae(e,t={}){let{initialData:n=null,immediate:r=!1,onSuccess:i,onError:a}=t,[o,s]=(0,H.useState)({data:n,loading:r,error:null}),c=(0,H.useRef)(!0),l=(0,H.useRef)(!1);(0,H.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]);let u=(0,H.useCallback)(async(...t)=>{if(l.current)return Promise.reject(Error(`Operation already in progress`));l.current=!0,c.current&&s(e=>({...e,loading:!0,error:null}));try{let n=await e(...t);return c.current&&(s({data:n,loading:!1,error:null}),i?.(n)),n}catch(e){let t=e instanceof Error?e:Error(String(e));throw c.current&&(s(e=>({...e,loading:!1,error:t})),a?.(t)),t}finally{l.current=!1}},[e,i,a]),d=(0,H.useCallback)(()=>{s({data:n,loading:!1,error:null})},[n]),f=(0,H.useCallback)(e=>{s(t=>({...t,data:e}))},[]),p=(0,H.useCallback)(e=>{s(t=>({...t,error:e}))},[]);return(0,H.useEffect)(()=>{r&&u().catch(()=>{})},[]),(0,H.useMemo)(()=>({...o,execute:u,reset:d,setData:f,setError:p}),[o,u,d,f,p])}var H;function U(){return(U=e((()=>{H=t()})))()}function oe({project:e,stack:t}){let{data:n,loading:r,error:a,execute:s}=ae(()=>i.invoke(`daemon`,`OmnitronProject`,`inspectStackHost`,[{project:e,stack:t}],{timeout:12e4}));return(0,W.jsxs)(T,{spacing:1,sx:{minWidth:0,overflowWrap:`anywhere`},children:[(0,W.jsx)(o,{size:`small`,sx:{alignSelf:`flex-start`},disabled:r,onClick:()=>void s().catch(()=>void 0),children:n?`Inspect hosts again`:`Inspect hosts`}),(0,W.jsx)(M,{active:r,label:`Inspecting target nodes`,detail:`Reading host services and local package indices`}),a&&(0,W.jsxs)(O,{severity:`error`,children:[a.message,n&&` The previous host readings below are stale.`]}),n?.length===0&&(0,W.jsx)(O,{severity:`warning`,children:`No target node returned a reading.`}),n?.map(({node:e,inspection:t,error:n})=>(0,W.jsxs)(u,{sx:{borderTop:1,borderColor:`divider`,pt:1},children:[(0,W.jsx)(S,{variant:`subtitle2`,children:e}),n||!t?(0,W.jsx)(O,{severity:`warning`,children:n||`Host inspection unavailable.`}):(0,W.jsxs)(W.Fragment,{children:[!t.services.length&&(0,W.jsx)(S,{variant:`body2`,children:`No host services reported.`}),t.services.map(({name:e,onHost:t,external:n})=>{let r=t?.probe??n?.probe,i=n?n.reachable?`reachable`:`unreachable`:t?.unit?.state??`no unit reported`;return(0,W.jsxs)(u,{sx:{py:.5},children:[(0,W.jsxs)(S,{variant:`body2`,sx:{fontWeight:600},children:[e,` · `,i]}),t?.packages?.map(e=>(0,W.jsxs)(S,{variant:`body2`,color:e.state===`blocked`?`error.main`:`text.secondary`,children:[e.name,` · installed `,e.installed??`—`,` · candidate `,e.candidate??`—`,` · `,e.state,` ·`,` `,e.detail]},e.name)),t&&!t.packages?.length&&(0,W.jsx)(S,{variant:`caption`,color:`text.secondary`,children:`No package version evidence reported.`}),r&&(0,W.jsx)(S,{variant:`body2`,children:r.ok?`Service probe passed`:r.error??`Service probe failed`}),t?.actions.map(e=>(0,W.jsxs)(S,{variant:`body2`,children:[`Would `,e]},e)),t?.refusals.map(e=>(0,W.jsx)(S,{variant:`body2`,color:`error.main`,children:e},e))]},e)})]})]},e))]})}var W;function G(){return(G=e((()=>{s(),c(),E(),x(),D(),U(),r(),j(),W=n()})))()}function se({project:e,stack:t,onClose:n}){let[r,a]=(0,K.useState)(null),[s,c]=(0,K.useState)(!0),[l,f]=(0,K.useState)(null),[m,h]=(0,K.useState)(!1),[_,b]=(0,K.useState)(!1),x=(0,K.useRef)({value:0}),w=(0,K.useCallback)(async()=>{let n=++x.current.value;c(!0),f(null);try{let r=await i.invoke(`daemon`,`OmnitronProject`,`diagnoseStack`,[{project:e,stack:t}],{timeout:12e4});n===x.current.value&&a(r)}catch(e){n===x.current.value&&f(e instanceof Error?e.message:`Diagnosis failed`)}finally{n===x.current.value&&c(!1)}},[e,t]);return(0,K.useEffect)(()=>{let e=x.current;return w(),()=>{e.value++}},[w]),(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(g,{open:!0,fullWidth:!0,maxWidth:`md`,onClose:n,"aria-labelledby":`stack-diagnosis-title`,children:[(0,q.jsxs)(y,{id:`stack-diagnosis-title`,children:[e,` / `,t,` · Start prerequisites`]}),(0,q.jsx)(p,{dividers:!0,sx:{minWidth:0},children:(0,q.jsxs)(T,{spacing:2,children:[(0,q.jsx)(S,{variant:`body2`,color:`text.secondary`,children:`Inspect configuration and host prerequisites without starting applications, provisioning services or applying migrations.`}),(0,q.jsx)(M,{active:s,label:`Checking stack prerequisites`,detail:`Reading declarations and Docker inventory; no services are changed`}),l&&(0,q.jsxs)(O,{severity:`error`,children:[l,r?` The previous report is retained below and is stale.`:``]}),r&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(T,{direction:`row`,sx:{alignItems:`center`,flexWrap:`wrap`,gap:1},children:[(0,q.jsx)(S,{variant:`subtitle2`,role:`status`,children:X[r.status]}),(0,q.jsxs)(S,{variant:`caption`,color:`text.secondary`,children:[new Date(r.checkedAt).toLocaleString(),` · `,(r.durationMs/1e3).toFixed(1),` s`,s||l?` · previous observation`:``]}),(0,q.jsx)(C,{sx:{ml:`auto`},control:(0,q.jsx)(te,{size:`small`,checked:m,onChange:(e,t)=>h(t)}),label:(0,q.jsx)(S,{variant:`caption`,children:`Needs attention`})})]}),(0,q.jsx)(u,{component:`ul`,sx:{m:0,p:0,listStyle:`none`},children:r.checks.filter(e=>!m||e.state!==`pass`).map((e,t)=>(0,q.jsxs)(u,{component:`li`,sx:{py:1.25,borderBottom:`1px solid`,borderColor:`divider`,display:`grid`,gridTemplateColumns:{xs:`1fr`,sm:`minmax(130px, 1fr) 3fr`},gap:1,overflowWrap:`anywhere`},children:[(0,q.jsxs)(u,{children:[(0,q.jsx)(S,{variant:`body2`,sx:{fontWeight:600},children:e.resource}),(0,q.jsx)(d,{size:`small`,variant:`outlined`,color:J[e.state],label:Y[e.state],sx:{mt:.5}})]}),(0,q.jsxs)(u,{children:[(0,q.jsx)(S,{variant:`body2`,children:e.message}),e.action&&(0,q.jsx)(S,{variant:`body2`,color:`text.secondary`,sx:{mt:.5},children:e.action})]})]},`${e.code}/${e.resource}/${t}`))}),m&&r.checks.every(e=>e.state===`pass`)&&(0,q.jsx)(S,{variant:`body2`,children:`No prerequisite warnings.`}),r.checks.some(e=>e.code===`remote.prerequisites`)&&(0,q.jsx)(k,{permission:`OmnitronProject.inspectStackHost`,children:(0,q.jsx)(oe,{project:e,stack:t},JSON.stringify([e,t]))}),(0,q.jsxs)(O,{severity:`info`,children:[`Not verified: `,r.deferred.join(`; `),`. This report is an observation, not a guarantee that startup will succeed.`]})]})]})}),(0,q.jsxs)(v,{sx:{flexWrap:`wrap`,gap:1},children:[r?.checks.some(e=>e.code===`declaration.unknown`)&&(0,q.jsx)(k,{permission:`OmnitronProject.refreshTopologyMetadata`,children:(0,q.jsx)(o,{disabled:s,onClick:()=>b(!0),children:`Refresh declarations…`})}),(0,q.jsx)(o,{disabled:s,onClick:()=>void w(),children:`Check again`}),(0,q.jsx)(o,{autoFocus:!0,onClick:n,children:`Close`})]})]}),_&&(0,q.jsx)(F,{project:e,stack:t,onClose:()=>b(!1),onUpdated:w})]})}var K,q,J,Y,X;function Z(){return(Z=e((()=>{K=t(),s(),c(),l(),h(),_(),m(),f(),w(),E(),ee(),x(),D(),j(),P(),G(),A(),r(),q=n(),J={pass:`success`,change:`info`,blocked:`error`,unknown:`warning`},Y={pass:`Verified`,change:`Planned change`,blocked:`Blocked`,unknown:`Not verified`},X={ready:`Prerequisites verified`,changes:`Changes required at start`,blocked:`Start blockers found`,unknown:`Verification incomplete`}})))()}function ce({stack:e,compact:t=!1}){if(!e.notUp?.length)return null;let n=t?e.notUp.slice(0,1):e.notUp;return(0,Q.jsxs)(O,{severity:e.status===`error`?`error`:`warning`,sx:{my:2,minWidth:0,"& .MuiAlert-message":{minWidth:0}},children:[(0,Q.jsxs)(S,{variant:`subtitle2`,children:[`Not up · `,e.notUp.length]}),(0,Q.jsx)(u,{component:`ul`,sx:{m:0,pl:2,overflowWrap:`anywhere`},children:n.map(e=>(0,Q.jsx)(S,{component:`li`,variant:`body2`,children:e},e))}),t&&e.notUp.length>n.length&&(0,Q.jsxs)(S,{variant:`caption`,children:[e.notUp.length-n.length,` more · Open stack for details`]})]})}var Q;function $(){return($=e((()=>{s(),x(),D(),Q=n()})))()}export{ie as a,re as c,Z as i,I as l,$ as n,V as o,se as r,ne as s,ce as t,R as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{P as r,V as i,c as a,h as o,x as s,y as c,z as l}from"./client-DFnuv2z3.js";import{Vt as u,Yt as d}from"./mui-BTN91yBK.js";import{A as f,C as p,D as m,F as h,H as g,I as _,M as v,O as y,Q as b,V as x,Z as S,c as C,ct as w,d as ee,f as T,g as E,h as te,j as D,k as O,l as ne,m as k,p as re,s as ie,st as A,u as j,w as M}from"./mui-BXSXx9c9.js";import{B as N,a as ae,o as P,z as F}from"./mui-Cd711nOk.js";import{B as I,U as oe,W as L,it as R,rt as z,z as B}from"./mui-AnEgAVjz.js";import{_ as V,a as se,c as ce,g as le,h as ue,l as de,o as fe,s as pe,u as me,v as he}from"./mui-BwsIrivo.js";import{n as ge,r as _e,t as H}from"./alert-uBG6r9NW.js";import{n as U,s as ve}from"./access-48hkC2-P.js";import{r as ye,t as be}from"./use-polled-resource-B22hhr5L.js";import{i as W,n as xe,r as Se,t as Ce}from"./project.store--G5pIF-J.js";import{A as we,B as Te,G as Ee,M as De,k as Oe,m as ke,p as Ae,z as je}from"./icons-OboZgWSt.js";import{n as Me,t as Ne}from"./page-breadcrumbs-fR7Jmpp4.js";import{n as Pe,t as Fe}from"./skeleton-BmWDJWF9.js";import{s as Ie}from"./formatters-RnRy4bXm.js";import{n as Le,r as Re}from"./stack-health-status-BIv2C10x.js";import{n as ze,t as Be}from"./empty-content-7jOFhG4C.js";import{a as Ve,n as He,r as Ue}from"./sync-reading-CN0jPKAg.js";import{n as We,t as Ge}from"./deploy-release-dialog-BOXcD5Wo.js";import{a as Ke,i as qe,l as Je,n as Ye,o as Xe,r as Ze,s as Qe,t as $e,u as et}from"./stack-start-notice-BVnMOwRQ.js";function tt({steps:e,activeStep:t=0,onStepChange:n,orientation:r=`horizontal`,nonLinear:i=!1,alternativeLabel:a=!1,showContent:o=!1,...s}){let c=e=>{i&&n&&n(e)};return(0,K.jsx)(se,{activeStep:t,orientation:r,nonLinear:i,alternativeLabel:a,...s,children:e.map((e,n)=>(0,K.jsxs)(ue,{completed:e.completed??n<t,children:[(0,K.jsx)(de,{optional:e.optional?(0,K.jsx)(`span`,{style:{fontSize:`0.75rem`,color:`text.secondary`},children:`Optional`}):e.description?(0,K.jsx)(`span`,{style:{fontSize:`0.75rem`,color:`text.secondary`},children:e.description}):void 0,error:e.error,icon:e.icon,sx:{cursor:i?`pointer`:`default`},onClick:()=>c(n),children:e.label}),r===`vertical`&&o&&e.content&&(0,K.jsx)(pe,{children:e.content})]},n))})}function nt({initialStep:e=0,totalSteps:t,onStepChange:n,onComplete:r}){let[i,a]=(0,G.useState)(e),[o,s]=(0,G.useState)(!1),c=(0,G.useCallback)(e=>{e>=0&&e<t&&(a(e),n?.(e))},[t,n]);return{activeStep:i,nextStep:(0,G.useCallback)(()=>{i===t-1?(s(!0),r?.()):c(i+1)},[i,t,c,r]),prevStep:(0,G.useCallback)(()=>{c(i-1)},[i,c]),goToStep:c,reset:(0,G.useCallback)(()=>{a(0),s(!1),n?.(0)},[n]),isFirstStep:i===0,isLastStep:i===t-1,isCompleted:o}}var G,K;function rt(){return(rt=e((()=>{G=t(),fe(),le(),me(),ce(),K=n()})))()}function it({open:e,onClose:t,onCreated:n}){let r=W(e=>e.createStack),i=W(e=>e.activeProject),[o,l]=(0,J.useState)(null),[d,f]=(0,J.useState)([]),[g,_]=(0,J.useState)([]),[v,y]=(0,J.useState)(``),[b,C]=(0,J.useState)(!1),[w,T]=(0,J.useState)(null),[E,O]=(0,J.useState)([]),[ne,k]=(0,J.useState)(!1),[j,M]=(0,J.useState)([]),[N,P]=(0,J.useState)(!1),I=(0,J.useMemo)(()=>o===`local`?X.filter(e=>e.label!==`Nodes`):X,[o]),L=nt({totalSteps:I.length});(0,J.useEffect)(()=>{if(!e)return;let t=I.findIndex(e=>e.label===`Nodes`);L.activeStep===t&&t!==-1&&(k(!0),c.listNodes().then(e=>{let t=Array.isArray(e)?e:e?.nodes??[];O(t)}).catch(()=>O([])).finally(()=>k(!1)))},[e,L.activeStep,I]),(0,J.useEffect)(()=>{if(!e)return;let t=I.findIndex(e=>e.label===`Applications`);if(L.activeStep===t){P(!0);let e=W.getState().activeProject;e?s.scanRequirements({project:e}).then(e=>{let t=Object.keys(e?.apps??{}),n=t.map(e=>({name:e}));M(n),_(e=>e.length===0?t:e)}).catch(()=>{a.list().then(e=>{let t=Array.isArray(e)?e:[];M(t),_(e=>e.length===0?t.map(e=>e.name):e)}).catch(()=>M([]))}).finally(()=>P(!1)):P(!1)}},[e,L.activeStep,I]),(0,J.useEffect)(()=>{if(!e)return;let t=I.findIndex(e=>e.label===`Name`);L.activeStep===t&&!v&&y(`${o===`cluster`?`prod`:o===`remote`?`staging`:`dev`}-1`)},[e,L.activeStep,I,o,v]);let R=(0,J.useCallback)(()=>{l(null),f([]),_([]),y(``),T(null),C(!1),O([]),M([]),L.reset()},[L]),z=(0,J.useCallback)(()=>{b||(R(),t())},[b,R,t]),B=I[L.activeStep]?.label,se=(0,J.useMemo)(()=>{switch(B){case`Type`:return o!==null;case`Nodes`:return o===`remote`?d.length===1:o!==`cluster`||d.length>=2;case`Applications`:return g.length>0;case`Name`:return/^[a-z][a-z0-9-]*$/.test(v);default:return!1}},[B,o,d,g,v]),ce=(0,J.useCallback)(async()=>{if(i&&o){C(!0),T(null);try{await r(i,{name:v.trim(),type:o,apps:g.length===j.length?`all`:g,nodeIds:o===`local`?void 0:d}),R(),n()}catch(e){T(e?.message??`Failed to create stack.`)}finally{C(!1)}}},[i,o,v,g,j.length,d,r,R,n]),le=(0,J.useCallback)(()=>{L.isLastStep?ce():L.nextStep()},[L,ce]),ue=(0,J.useCallback)(e=>{f(o===`remote`?t=>t.includes(e)?[]:[e]:t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[o]),de=(0,J.useCallback)(e=>{_(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),fe=(0,J.useCallback)(()=>{g.length===j.length?_([]):_(j.map(e=>e.name))},[g.length,j]);return(0,Y.jsxs)(te,{open:e,onClose:z,maxWidth:`sm`,fullWidth:!0,children:[(0,Y.jsx)(ie,{sx:{fontWeight:700},children:`Create Stack`}),(0,Y.jsxs)(ee,{children:[(0,Y.jsx)(x,{sx:{mb:3,mt:1},children:(0,Y.jsx)(tt,{steps:I,activeStep:L.activeStep,alternativeLabel:!0})}),w&&(0,Y.jsx)(ge,{sx:{mb:2},onClose:()=>T(null),children:w}),B===`Type`&&(0,Y.jsx)(V,{spacing:1.5,children:at.map(e=>(0,Y.jsx)(D,{variant:`outlined`,onClick:()=>l(e.value),sx:{cursor:`pointer`,transition:`border-color 0.2s, background-color 0.2s`,borderColor:o===e.value?e=>e.palette.primary.main:void 0,bgcolor:o===e.value?e=>u(e.palette.primary.main,.06):void 0,"&:hover":{borderColor:e=>u(e.palette.primary.main,.4)}},children:(0,Y.jsxs)(m,{sx:{py:1.5,"&:last-child":{pb:1.5}},children:[(0,Y.jsx)(F,{variant:`subtitle2`,sx:{fontWeight:700},children:e.title}),(0,Y.jsx)(F,{variant:`caption`,sx:{color:`text.secondary`},children:e.description})]})},e.value))}),B===`Nodes`&&(0,Y.jsxs)(V,{spacing:1.5,children:[(0,Y.jsx)(F,{variant:`body2`,sx:{color:`text.secondary`,mb:.5},children:o===`remote`?`Select a target node for deployment.`:`Select at least 2 nodes for the cluster.`}),ne?(0,Y.jsx)(x,{sx:{display:`flex`,justifyContent:`center`,py:4},children:(0,Y.jsx)(A,{size:28})}):E.length===0?(0,Y.jsx)(H,{severity:`info`,variant:`outlined`,children:`No remote nodes configured. Add nodes in the Nodes section first.`}):E.map(e=>{let t=d.includes(e.id),n=e.status===`online`;return(0,Y.jsx)(D,{variant:`outlined`,onClick:()=>ue(e.id),sx:{cursor:`pointer`,transition:`border-color 0.2s, background-color 0.2s`,borderColor:t?e=>e.palette.primary.main:void 0,bgcolor:t?e=>u(e.palette.primary.main,.06):void 0,"&:hover":{borderColor:e=>u(e.palette.primary.main,.4)}},children:(0,Y.jsxs)(m,{sx:{py:1.5,"&:last-child":{pb:1.5},display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,Y.jsxs)(x,{children:[(0,Y.jsx)(F,{variant:`subtitle2`,sx:{fontWeight:600},children:e.name}),(0,Y.jsx)(F,{variant:`caption`,sx:{color:`text.secondary`,fontFamily:`monospace`},children:e.host})]}),(0,Y.jsx)(S,{label:n?`Online`:`Offline`,color:n?`success`:`default`,size:`small`,sx:{height:20,fontSize:`0.65rem`}})]})},e.id)})]}),B===`Applications`&&(0,Y.jsx)(V,{spacing:1,children:N?(0,Y.jsx)(x,{sx:{display:`flex`,justifyContent:`center`,py:4},children:(0,Y.jsx)(A,{size:28})}):j.length===0?(0,Y.jsx)(H,{severity:`info`,variant:`outlined`,children:`No applications found in the project.`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(oe,{control:(0,Y.jsx)(p,{checked:g.length===j.length,indeterminate:g.length>0&&g.length<j.length,onChange:fe,size:`small`}),label:(0,Y.jsx)(F,{variant:`subtitle2`,sx:{fontWeight:600},children:`Select All`}),sx:{mb:.5}}),j.map(e=>(0,Y.jsx)(oe,{control:(0,Y.jsx)(p,{checked:g.includes(e.name),onChange:()=>de(e.name),size:`small`}),label:(0,Y.jsx)(F,{variant:`body2`,sx:{fontFamily:`monospace`},children:e.name}),sx:{ml:1}},e.name))]})}),B===`Name`&&(0,Y.jsxs)(V,{spacing:2.5,children:[(0,Y.jsx)(ae,{label:`Stack Name`,value:v,onChange:e=>y(e.target.value.toLowerCase().replace(/[^a-z0-9-]/g,``)),placeholder:`e.g., dev-1, staging, prod`,fullWidth:!0,size:`small`,helperText:`Lowercase letters, numbers, and hyphens only.`,slotProps:{input:{sx:{fontFamily:`monospace`}}}}),(0,Y.jsxs)(x,{children:[(0,Y.jsx)(F,{variant:`subtitle2`,sx:{fontWeight:700,mb:1},children:`Review`}),(0,Y.jsxs)(V,{spacing:.5,children:[(0,Y.jsx)(q,{label:`Type`,value:o??``}),o!==`local`&&(0,Y.jsx)(q,{label:`Nodes`,value:d.length>0?E.filter(e=>d.includes(e.id)).map(e=>e.name).join(`, `):`None`}),(0,Y.jsx)(q,{label:`Applications`,value:g.length===j.length?`All (${j.length})`:`${g.length} of ${j.length}`})]})]})]})]}),(0,Y.jsxs)(re,{sx:{px:3,py:2},children:[(0,Y.jsx)(h,{onClick:z,disabled:b,children:`Cancel`}),(0,Y.jsx)(x,{sx:{flex:1}}),!L.isFirstStep&&(0,Y.jsx)(h,{onClick:L.prevStep,disabled:b,children:`Back`}),(0,Y.jsx)(h,{variant:`contained`,onClick:le,disabled:!se||b,startIcon:b?(0,Y.jsx)(A,{size:16}):void 0,children:L.isLastStep?`Create`:`Next`})]})]})}function q({label:e,value:t}){return(0,Y.jsxs)(x,{sx:{display:`flex`,justifyContent:`space-between`},children:[(0,Y.jsx)(F,{variant:`caption`,sx:{color:`text.secondary`},children:e}),(0,Y.jsx)(F,{variant:`caption`,sx:{fontWeight:600,textTransform:`capitalize`},children:t})]})}var J,Y,at,X;function ot(){return(ot=e((()=>{J=t(),g(),_(),E(),C(),T(),k(),he(),v(),y(),N(),P(),M(),L(),w(),b(),d(),_e(),rt(),o(),Ce(),Y=n(),at=[{value:`local`,title:`Local`,description:`Run everything on this machine. Docker containers for infrastructure.`},{value:`remote`,title:`Remote`,description:`Deploy to a single remote server via SSH.`},{value:`cluster`,title:`Cluster`,description:`Distribute across multiple nodes.`}],X=[{label:`Type`},{label:`Nodes`},{label:`Applications`},{label:`Name`}]})))()}function st(){let e=xe(),t=Se(),n=W(e=>e.loading),a=W(e=>e.stackNotices),o=W(e=>e.clearStackNotice),s=W(t=>e&&t.stackReadErrors[e]),c=W(t=>!!(e&&t.stacksByProject[e])),l=W(e=>e.pendingOps),u=W(e=>e.fetchStacks),d=W(e=>e.resumeInstalledStack),f=W(e=>e.startStack),p=W(e=>e.stopStack),m=W(e=>e.deleteStack),g=i(),[_,v]=(0,Q.useState)(!1),[y,b]=(0,Q.useState)(null),[S,C]=(0,Q.useState)(null),[w,T]=(0,Q.useState)(null),[E,D]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{e&&u(e)},[e,u]);let O=Object.keys(l).length>0;ye(()=>void(e&&u(e)),{intervalMs:O?3e3:1e4,enabled:!!e});let k=(0,Q.useCallback)(async t=>{e&&await f(e,t)},[e,f]),A=(0,Q.useCallback)(async()=>{if(e&&w){try{await m(e,w)}catch{}T(null)}},[e,w,m]);return e?(0,$.jsxs)(V,{spacing:3,sx:{flex:1},children:[(0,$.jsx)(Ne,{linkComponent:r,links:[{name:`Stacks`}],action:(0,$.jsxs)(x,{sx:{display:`flex`,gap:1,alignItems:`center`},children:[(0,$.jsx)(z,{"data-console-command":`refresh`,size:`small`,onClick:()=>u(e),title:`Refresh`,children:(0,$.jsx)(De,{})}),(0,$.jsx)(U,{permission:`OmnitronProject.createStack`,children:(0,$.jsx)(h,{variant:`contained`,size:`small`,startIcon:(0,$.jsx)(we,{}),onClick:()=>v(!0),children:`Create`})})]})}),(0,$.jsx)(U,{permission:`OmnitronProject.createStack`,children:(0,$.jsx)(it,{open:_,onClose:()=>v(!1),onCreated:()=>{v(!1),u(e)}})}),s&&(0,$.jsxs)(H,{severity:`warning`,children:[c?`Showing the last stack inventory`:`Stack inventory unavailable`,` · `,s]}),Object.entries(a).filter(([t])=>t.startsWith(`${e}/`)).map(([e,t])=>(0,$.jsxs)(H,{closable:!0,severity:`warning`,onClose:()=>o(e),children:[e,` · `,t]},e)),!c&&s?null:(!c||n)&&t.length===0?(0,$.jsx)(B,{container:!0,spacing:2,children:[1,2,3].map(e=>(0,$.jsx)(B,{size:{xs:12,sm:6,md:4},children:(0,$.jsx)(Fe,{variant:`rounded`,height:200})},e))}):t.length===0?(0,$.jsx)(x,{sx:{flex:1,display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,$.jsx)(Be,{title:`No stacks`,description:`Create your first stack to deploy applications.`})}):(0,$.jsx)(B,{container:!0,spacing:2,children:t.map(t=>(0,$.jsx)(B,{size:{xs:12,sm:6,md:4},children:(0,$.jsx)(ct,{stack:t,pendingOp:e?l[`${e}/${t.name}`]??null:null,onDiagnose:()=>C(t.name),onResume:()=>void d(e,t.name),onStart:()=>k(t.name),onDeploy:()=>D(t.name),onStop:()=>b({project:e,stack:t.name}),onDelete:()=>T(t.name),onDetail:()=>g(`/stacks/${t.name}`)})},t.name))}),(0,$.jsx)(U,{permission:`OmnitronProject.startStack`,children:(0,$.jsx)(Ge,{open:E!==null,onClose:()=>D(null),project:e??``,release:null,...E?{stack:E}:{}})}),y&&y.project===e&&(0,$.jsx)(Ke,{...y,onClose:()=>b(null),onConfirm:(e,t)=>{b(null),p(y.project,y.stack,e,t)}},`${y.project}/${y.stack}`),S&&e&&(0,$.jsx)(Ze,{project:e,stack:S,onClose:()=>C(null)},`${e}/${S}`),(0,$.jsxs)(te,{open:w!==null,onClose:()=>T(null),children:[(0,$.jsx)(ie,{children:`Delete Stack`}),(0,$.jsx)(ee,{children:(0,$.jsxs)(ne,{children:[`Are you sure you want to delete stack `,(0,$.jsx)(`strong`,{children:w}),`? This action cannot be undone.`]})}),(0,$.jsxs)(re,{children:[(0,$.jsx)(h,{onClick:()=>T(null),children:`Cancel`}),(0,$.jsx)(U,{permission:`OmnitronProject.deleteStack`,children:(0,$.jsx)(h,{onClick:A,color:`error`,variant:`contained`,children:`Delete`})})]})]})]}):(0,$.jsx)(V,{spacing:3,children:(0,$.jsx)(H,{severity:`info`,children:`No project selected. Register a project first.`})})}function ct({stack:e,pendingOp:t,onStart:n,onResume:r,onDiagnose:i,onStop:a,onDeploy:o,onDelete:s,onDetail:c}){let l=lt[e.status]??{color:`warning`,label:`Unknown`},d=e.config?.release?.mode===`required`,f=e.status===`running`,p=e.status===`stopped`,g=e.status===`starting`||e.status===`stopping`||!!t,_=!!t;return(0,$.jsxs)(D,{sx:{height:`100%`,display:`flex`,flexDirection:`column`,cursor:`pointer`,transition:`border-color 0.2s`,"&:hover":{borderColor:e=>u(e.palette.primary.main,.3)}},variant:`outlined`,onClick:c,children:[(0,$.jsxs)(m,{sx:{flex:1},children:[(0,$.jsxs)(x,{sx:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,mb:1.5},children:[(0,$.jsx)(F,{variant:`h6`,sx:{fontWeight:700,fontSize:`1.1rem`},children:e.name}),(0,$.jsx)(S,{label:l.label,color:l.color,size:`small`,sx:{height:22,fontSize:`0.7rem`}})]}),(0,$.jsxs)(x,{sx:{display:`flex`,alignItems:`center`,gap:1,mb:1.5},children:[(0,$.jsx)(F,{variant:`caption`,sx:{color:`text.secondary`},children:ut[e.type]??e.type}),d&&(0,$.jsx)(S,{label:`releases only`,size:`small`,color:`info`,variant:`outlined`,sx:{height:18,fontSize:`0.6rem`}})]}),(0,$.jsxs)(x,{sx:{display:`grid`,gridTemplateColumns:`1fr 1fr`,gap:1},children:[(0,$.jsx)(Z,{label:`Apps`,value:`${e.apps.filter(e=>e.status===`online`).length}/${e.apps.length}`}),(0,$.jsx)(Z,{label:`Nodes`,value:String(e.nodes.length)}),f&&e.uptime>0&&(0,$.jsx)(Z,{label:`Uptime`,value:Ie(e.uptime)}),e.type!==`local`&&(0,$.jsxs)(x,{sx:{display:`flex`,alignItems:`center`,gap:.5},children:[(0,$.jsx)(Te,{sx:{fontSize:14,color:`text.secondary`}}),(0,$.jsxs)(F,{variant:`caption`,sx:{color:`text.secondary`},children:[e.nodes.filter(e=>e.syncStatus&&He(Ve(e.syncStatus))).length,`/`,e.nodes.length,` in sync`]})]})]}),(0,$.jsx)($e,{stack:e,compact:!0}),(0,$.jsx)(Le,{stack:e,compact:!0}),e.portRange&&(0,$.jsxs)(F,{variant:`caption`,sx:{color:`text.disabled`,mt:1,display:`block`,fontFamily:`monospace`},children:[`Ports: `,e.portRange.start,`–`,e.portRange.end]})]}),(0,$.jsxs)(O,{sx:{px:2,pb:1.5,justifyContent:`space-between`,flexWrap:`wrap`,gap:1},onClick:e=>e.stopPropagation(),children:[p&&!_&&(0,$.jsx)(U,{permission:`OmnitronProject.deleteStack`,children:(0,$.jsx)(z,{size:`small`,color:`error`,onClick:s,title:`Delete stack`,"aria-label":`Delete stack ${e.name}`,sx:{marginInlineEnd:1},children:(0,$.jsx)(Ae,{})})}),(0,$.jsxs)(x,{sx:{marginInlineStart:`auto`,display:`flex`,alignItems:`center`,flexWrap:`wrap`,gap:1},children:[(0,$.jsx)(U,{permission:`OmnitronProject.diagnoseStack`,children:(0,$.jsx)(h,{size:`small`,onClick:i,children:`Diagnose`})}),g?(0,$.jsx)(h,{size:`small`,disabled:!0,startIcon:(0,$.jsx)(A,{size:14}),children:t===`resuming`?`Resuming installed apps…`:t===`starting`||e.status===`starting`?`Starting…`:`Stopping…`}):Je(e)?(0,$.jsx)(Qe,{stack:e,onResume:r,onReviewStop:a}):p?d&&!e.selectedRelease?(0,$.jsx)(U,{permission:`OmnitronProject.startStack`,children:(0,$.jsx)(h,{size:`small`,startIcon:(0,$.jsx)(ke,{}),color:`success`,onClick:o,children:`Deploy release…`})}):(0,$.jsx)(U,{permission:`OmnitronProject.startStack`,children:(0,$.jsx)(h,{size:`small`,startIcon:(0,$.jsx)(Oe,{}),color:`success`,onClick:n,children:`Start`})}):f?(0,$.jsxs)($.Fragment,{children:[e.type!==`local`&&(0,$.jsx)(U,{permission:`OmnitronProject.startStack`,children:(0,$.jsx)(h,{size:`small`,startIcon:(0,$.jsx)(ke,{}),onClick:o,children:`Deploy…`})}),(0,$.jsx)(U,{permission:`OmnitronProject.reviewStackStop`,children:(0,$.jsx)(h,{size:`small`,startIcon:(0,$.jsx)(je,{}),color:`error`,onClick:a,children:`Review stop…`})})]}):(0,$.jsx)(S,{label:l.label,size:`small`,color:l.color,sx:{height:20,fontSize:`0.65rem`}})]})]})]})}function Z({label:e,value:t}){return(0,$.jsxs)(x,{children:[(0,$.jsx)(F,{variant:`caption`,sx:{color:`text.secondary`,fontSize:`0.6rem`,textTransform:`uppercase`},children:e}),(0,$.jsx)(F,{variant:`body2`,sx:{fontWeight:600,fontFamily:`monospace`,fontSize:`0.85rem`},children:t})]})}var Q,$,lt,ut;function dt(){return(dt=e((()=>{Re(),et(),Xe(),qe(),Ye(),ve(),Q=t(),g(),he(),I(),v(),y(),f(),N(),b(),_(),R(),w(),E(),C(),T(),j(),k(),d(),_e(),Me(),ze(),Pe(),l(),Ee(),We(),ot(),Ce(),Ue(),be(),$=n(),lt={running:{color:`success`,label:`Running`},starting:{color:`warning`,label:`Starting`},stopping:{color:`warning`,label:`Stopping`},degraded:{color:`warning`,label:`Degraded`},error:{color:`error`,label:`Error`},stopped:{color:`default`,label:`Stopped`}},ut={local:`Local`,remote:`Remote (SSH)`,cluster:`Cluster`}})))()}dt();export{st as default};
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{P as r,V as i,c as a,h as o,x as s,y as c,z as l}from"./client-CgyTwq9g.js";import{Vt as u,Yt as d}from"./mui-BTN91yBK.js";import{A as f,C as p,D as m,F as h,H as g,I as _,M as v,O as y,Q as b,V as x,Z as S,c as C,ct as w,d as ee,f as T,g as E,h as te,j as D,k as O,l as ne,m as k,p as re,s as ie,st as A,u as j,w as M}from"./mui-SNRRJ_vi.js";import{B as N,a as ae,o as P,z as F}from"./mui-B3fJdIMc.js";import{B as I,U as oe,W as L,it as R,rt as z,z as B}from"./mui-CMWGTMXv.js";import{_ as V,a as se,c as ce,g as le,h as ue,l as de,o as fe,s as pe,u as me,v as he}from"./mui-CPEkFAPo.js";import{n as ge,r as _e,t as H}from"./alert-BdJ2uaY0.js";import{n as U,s as ve}from"./access-I0f72P9m.js";import{r as ye,t as be}from"./use-polled-resource-B22hhr5L.js";import{i as W,n as xe,r as Se,t as Ce}from"./project.store-D5IR3fo9.js";import{A as we,B as Te,G as Ee,M as De,k as Oe,m as ke,p as Ae,z as je}from"./icons-B9Ct8PJ9.js";import{n as Me,t as Ne}from"./page-breadcrumbs-3R8RZ3nA.js";import{n as Pe,t as Fe}from"./skeleton-BnVxAoeX.js";import{s as Ie}from"./formatters-RnRy4bXm.js";import{n as Le,r as Re}from"./stack-health-status-DfErRNb1.js";import{n as ze,t as Be}from"./empty-content-eyDOuOVp.js";import{a as Ve,n as He,r as Ue}from"./sync-reading-CN0jPKAg.js";import{n as We,t as Ge}from"./deploy-release-dialog-CnzaO_xL.js";import{a as Ke,i as qe,l as Je,n as Ye,o as Xe,r as Ze,s as Qe,t as $e,u as et}from"./stack-start-notice-NkYDjR-f.js";function tt({steps:e,activeStep:t=0,onStepChange:n,orientation:r=`horizontal`,nonLinear:i=!1,alternativeLabel:a=!1,showContent:o=!1,...s}){let c=e=>{i&&n&&n(e)};return(0,K.jsx)(se,{activeStep:t,orientation:r,nonLinear:i,alternativeLabel:a,...s,children:e.map((e,n)=>(0,K.jsxs)(ue,{completed:e.completed??n<t,children:[(0,K.jsx)(de,{optional:e.optional?(0,K.jsx)(`span`,{style:{fontSize:`0.75rem`,color:`text.secondary`},children:`Optional`}):e.description?(0,K.jsx)(`span`,{style:{fontSize:`0.75rem`,color:`text.secondary`},children:e.description}):void 0,error:e.error,icon:e.icon,sx:{cursor:i?`pointer`:`default`},onClick:()=>c(n),children:e.label}),r===`vertical`&&o&&e.content&&(0,K.jsx)(pe,{children:e.content})]},n))})}function nt({initialStep:e=0,totalSteps:t,onStepChange:n,onComplete:r}){let[i,a]=(0,G.useState)(e),[o,s]=(0,G.useState)(!1),c=(0,G.useCallback)(e=>{e>=0&&e<t&&(a(e),n?.(e))},[t,n]);return{activeStep:i,nextStep:(0,G.useCallback)(()=>{i===t-1?(s(!0),r?.()):c(i+1)},[i,t,c,r]),prevStep:(0,G.useCallback)(()=>{c(i-1)},[i,c]),goToStep:c,reset:(0,G.useCallback)(()=>{a(0),s(!1),n?.(0)},[n]),isFirstStep:i===0,isLastStep:i===t-1,isCompleted:o}}var G,K;function rt(){return(rt=e((()=>{G=t(),fe(),le(),me(),ce(),K=n()})))()}function it({open:e,onClose:t,onCreated:n}){let r=W(e=>e.createStack),i=W(e=>e.activeProject),[o,l]=(0,J.useState)(null),[d,f]=(0,J.useState)([]),[g,_]=(0,J.useState)([]),[v,y]=(0,J.useState)(``),[b,C]=(0,J.useState)(!1),[w,T]=(0,J.useState)(null),[E,O]=(0,J.useState)([]),[ne,k]=(0,J.useState)(!1),[j,M]=(0,J.useState)([]),[N,P]=(0,J.useState)(!1),I=(0,J.useMemo)(()=>o===`local`?X.filter(e=>e.label!==`Nodes`):X,[o]),L=nt({totalSteps:I.length});(0,J.useEffect)(()=>{if(!e)return;let t=I.findIndex(e=>e.label===`Nodes`);L.activeStep===t&&t!==-1&&(k(!0),c.listNodes().then(e=>{let t=Array.isArray(e)?e:e?.nodes??[];O(t)}).catch(()=>O([])).finally(()=>k(!1)))},[e,L.activeStep,I]),(0,J.useEffect)(()=>{if(!e)return;let t=I.findIndex(e=>e.label===`Applications`);if(L.activeStep===t){P(!0);let e=W.getState().activeProject;e?s.scanRequirements({project:e}).then(e=>{let t=Object.keys(e?.apps??{}),n=t.map(e=>({name:e}));M(n),_(e=>e.length===0?t:e)}).catch(()=>{a.list().then(e=>{let t=Array.isArray(e)?e:[];M(t),_(e=>e.length===0?t.map(e=>e.name):e)}).catch(()=>M([]))}).finally(()=>P(!1)):P(!1)}},[e,L.activeStep,I]),(0,J.useEffect)(()=>{if(!e)return;let t=I.findIndex(e=>e.label===`Name`);L.activeStep===t&&!v&&y(`${o===`cluster`?`prod`:o===`remote`?`staging`:`dev`}-1`)},[e,L.activeStep,I,o,v]);let R=(0,J.useCallback)(()=>{l(null),f([]),_([]),y(``),T(null),C(!1),O([]),M([]),L.reset()},[L]),z=(0,J.useCallback)(()=>{b||(R(),t())},[b,R,t]),B=I[L.activeStep]?.label,se=(0,J.useMemo)(()=>{switch(B){case`Type`:return o!==null;case`Nodes`:return o===`remote`?d.length===1:o!==`cluster`||d.length>=2;case`Applications`:return g.length>0;case`Name`:return/^[a-z][a-z0-9-]*$/.test(v);default:return!1}},[B,o,d,g,v]),ce=(0,J.useCallback)(async()=>{if(i&&o){C(!0),T(null);try{await r(i,{name:v.trim(),type:o,apps:g.length===j.length?`all`:g,nodeIds:o===`local`?void 0:d}),R(),n()}catch(e){T(e?.message??`Failed to create stack.`)}finally{C(!1)}}},[i,o,v,g,j.length,d,r,R,n]),le=(0,J.useCallback)(()=>{L.isLastStep?ce():L.nextStep()},[L,ce]),ue=(0,J.useCallback)(e=>{f(o===`remote`?t=>t.includes(e)?[]:[e]:t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[o]),de=(0,J.useCallback)(e=>{_(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),fe=(0,J.useCallback)(()=>{g.length===j.length?_([]):_(j.map(e=>e.name))},[g.length,j]);return(0,Y.jsxs)(te,{open:e,onClose:z,maxWidth:`sm`,fullWidth:!0,children:[(0,Y.jsx)(ie,{sx:{fontWeight:700},children:`Create Stack`}),(0,Y.jsxs)(ee,{children:[(0,Y.jsx)(x,{sx:{mb:3,mt:1},children:(0,Y.jsx)(tt,{steps:I,activeStep:L.activeStep,alternativeLabel:!0})}),w&&(0,Y.jsx)(ge,{sx:{mb:2},onClose:()=>T(null),children:w}),B===`Type`&&(0,Y.jsx)(V,{spacing:1.5,children:at.map(e=>(0,Y.jsx)(D,{variant:`outlined`,onClick:()=>l(e.value),sx:{cursor:`pointer`,transition:`border-color 0.2s, background-color 0.2s`,borderColor:o===e.value?e=>e.palette.primary.main:void 0,bgcolor:o===e.value?e=>u(e.palette.primary.main,.06):void 0,"&:hover":{borderColor:e=>u(e.palette.primary.main,.4)}},children:(0,Y.jsxs)(m,{sx:{py:1.5,"&:last-child":{pb:1.5}},children:[(0,Y.jsx)(F,{variant:`subtitle2`,sx:{fontWeight:700},children:e.title}),(0,Y.jsx)(F,{variant:`caption`,sx:{color:`text.secondary`},children:e.description})]})},e.value))}),B===`Nodes`&&(0,Y.jsxs)(V,{spacing:1.5,children:[(0,Y.jsx)(F,{variant:`body2`,sx:{color:`text.secondary`,mb:.5},children:o===`remote`?`Select a target node for deployment.`:`Select at least 2 nodes for the cluster.`}),ne?(0,Y.jsx)(x,{sx:{display:`flex`,justifyContent:`center`,py:4},children:(0,Y.jsx)(A,{size:28})}):E.length===0?(0,Y.jsx)(H,{severity:`info`,variant:`outlined`,children:`No remote nodes configured. Add nodes in the Nodes section first.`}):E.map(e=>{let t=d.includes(e.id),n=e.status===`online`;return(0,Y.jsx)(D,{variant:`outlined`,onClick:()=>ue(e.id),sx:{cursor:`pointer`,transition:`border-color 0.2s, background-color 0.2s`,borderColor:t?e=>e.palette.primary.main:void 0,bgcolor:t?e=>u(e.palette.primary.main,.06):void 0,"&:hover":{borderColor:e=>u(e.palette.primary.main,.4)}},children:(0,Y.jsxs)(m,{sx:{py:1.5,"&:last-child":{pb:1.5},display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,Y.jsxs)(x,{children:[(0,Y.jsx)(F,{variant:`subtitle2`,sx:{fontWeight:600},children:e.name}),(0,Y.jsx)(F,{variant:`caption`,sx:{color:`text.secondary`,fontFamily:`monospace`},children:e.host})]}),(0,Y.jsx)(S,{label:n?`Online`:`Offline`,color:n?`success`:`default`,size:`small`,sx:{height:20,fontSize:`0.65rem`}})]})},e.id)})]}),B===`Applications`&&(0,Y.jsx)(V,{spacing:1,children:N?(0,Y.jsx)(x,{sx:{display:`flex`,justifyContent:`center`,py:4},children:(0,Y.jsx)(A,{size:28})}):j.length===0?(0,Y.jsx)(H,{severity:`info`,variant:`outlined`,children:`No applications found in the project.`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(oe,{control:(0,Y.jsx)(p,{checked:g.length===j.length,indeterminate:g.length>0&&g.length<j.length,onChange:fe,size:`small`}),label:(0,Y.jsx)(F,{variant:`subtitle2`,sx:{fontWeight:600},children:`Select All`}),sx:{mb:.5}}),j.map(e=>(0,Y.jsx)(oe,{control:(0,Y.jsx)(p,{checked:g.includes(e.name),onChange:()=>de(e.name),size:`small`}),label:(0,Y.jsx)(F,{variant:`body2`,sx:{fontFamily:`monospace`},children:e.name}),sx:{ml:1}},e.name))]})}),B===`Name`&&(0,Y.jsxs)(V,{spacing:2.5,children:[(0,Y.jsx)(ae,{label:`Stack Name`,value:v,onChange:e=>y(e.target.value.toLowerCase().replace(/[^a-z0-9-]/g,``)),placeholder:`e.g., dev-1, staging, prod`,fullWidth:!0,size:`small`,helperText:`Lowercase letters, numbers, and hyphens only.`,slotProps:{input:{sx:{fontFamily:`monospace`}}}}),(0,Y.jsxs)(x,{children:[(0,Y.jsx)(F,{variant:`subtitle2`,sx:{fontWeight:700,mb:1},children:`Review`}),(0,Y.jsxs)(V,{spacing:.5,children:[(0,Y.jsx)(q,{label:`Type`,value:o??``}),o!==`local`&&(0,Y.jsx)(q,{label:`Nodes`,value:d.length>0?E.filter(e=>d.includes(e.id)).map(e=>e.name).join(`, `):`None`}),(0,Y.jsx)(q,{label:`Applications`,value:g.length===j.length?`All (${j.length})`:`${g.length} of ${j.length}`})]})]})]})]}),(0,Y.jsxs)(re,{sx:{px:3,py:2},children:[(0,Y.jsx)(h,{onClick:z,disabled:b,children:`Cancel`}),(0,Y.jsx)(x,{sx:{flex:1}}),!L.isFirstStep&&(0,Y.jsx)(h,{onClick:L.prevStep,disabled:b,children:`Back`}),(0,Y.jsx)(h,{variant:`contained`,onClick:le,disabled:!se||b,startIcon:b?(0,Y.jsx)(A,{size:16}):void 0,children:L.isLastStep?`Create`:`Next`})]})]})}function q({label:e,value:t}){return(0,Y.jsxs)(x,{sx:{display:`flex`,justifyContent:`space-between`},children:[(0,Y.jsx)(F,{variant:`caption`,sx:{color:`text.secondary`},children:e}),(0,Y.jsx)(F,{variant:`caption`,sx:{fontWeight:600,textTransform:`capitalize`},children:t})]})}var J,Y,at,X;function ot(){return(ot=e((()=>{J=t(),g(),_(),E(),C(),T(),k(),he(),v(),y(),N(),P(),M(),L(),w(),b(),d(),_e(),rt(),o(),Ce(),Y=n(),at=[{value:`local`,title:`Local`,description:`Run everything on this machine. Docker containers for infrastructure.`},{value:`remote`,title:`Remote`,description:`Deploy to a single remote server via SSH.`},{value:`cluster`,title:`Cluster`,description:`Distribute across multiple nodes.`}],X=[{label:`Type`},{label:`Nodes`},{label:`Applications`},{label:`Name`}]})))()}function st(){let e=xe(),t=Se(),n=W(e=>e.loading),a=W(e=>e.stackNotices),o=W(e=>e.clearStackNotice),s=W(t=>e&&t.stackReadErrors[e]),c=W(t=>!!(e&&t.stacksByProject[e])),l=W(e=>e.pendingOps),u=W(e=>e.fetchStacks),d=W(e=>e.resumeInstalledStack),f=W(e=>e.startStack),p=W(e=>e.stopStack),m=W(e=>e.deleteStack),g=i(),[_,v]=(0,Q.useState)(!1),[y,b]=(0,Q.useState)(null),[S,C]=(0,Q.useState)(null),[w,T]=(0,Q.useState)(null),[E,D]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{e&&u(e)},[e,u]);let O=Object.keys(l).length>0;ye(()=>void(e&&u(e)),{intervalMs:O?3e3:1e4,enabled:!!e});let k=(0,Q.useCallback)(async t=>{e&&await f(e,t)},[e,f]),A=(0,Q.useCallback)(async()=>{if(e&&w){try{await m(e,w)}catch{}T(null)}},[e,w,m]);return e?(0,$.jsxs)(V,{spacing:3,sx:{flex:1},children:[(0,$.jsx)(Ne,{linkComponent:r,links:[{name:`Stacks`}],action:(0,$.jsxs)(x,{sx:{display:`flex`,gap:1,alignItems:`center`},children:[(0,$.jsx)(z,{"data-console-command":`refresh`,size:`small`,onClick:()=>u(e),title:`Refresh`,children:(0,$.jsx)(De,{})}),(0,$.jsx)(U,{permission:`OmnitronProject.createStack`,children:(0,$.jsx)(h,{variant:`contained`,size:`small`,startIcon:(0,$.jsx)(we,{}),onClick:()=>v(!0),children:`Create`})})]})}),(0,$.jsx)(U,{permission:`OmnitronProject.createStack`,children:(0,$.jsx)(it,{open:_,onClose:()=>v(!1),onCreated:()=>{v(!1),u(e)}})}),s&&(0,$.jsxs)(H,{severity:`warning`,children:[c?`Showing the last stack inventory`:`Stack inventory unavailable`,` · `,s]}),Object.entries(a).filter(([t])=>t.startsWith(`${e}/`)).map(([e,t])=>(0,$.jsxs)(H,{closable:!0,severity:`warning`,onClose:()=>o(e),children:[e,` · `,t]},e)),!c&&s?null:(!c||n)&&t.length===0?(0,$.jsx)(B,{container:!0,spacing:2,children:[1,2,3].map(e=>(0,$.jsx)(B,{size:{xs:12,sm:6,md:4},children:(0,$.jsx)(Fe,{variant:`rounded`,height:200})},e))}):t.length===0?(0,$.jsx)(x,{sx:{flex:1,display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,$.jsx)(Be,{title:`No stacks`,description:`Create your first stack to deploy applications.`})}):(0,$.jsx)(B,{container:!0,spacing:2,children:t.map(t=>(0,$.jsx)(B,{size:{xs:12,sm:6,md:4},children:(0,$.jsx)(ct,{stack:t,pendingOp:e?l[`${e}/${t.name}`]??null:null,onDiagnose:()=>C(t.name),onResume:()=>void d(e,t.name),onStart:()=>k(t.name),onDeploy:()=>D(t.name),onStop:()=>b({project:e,stack:t.name}),onDelete:()=>T(t.name),onDetail:()=>g(`/stacks/${t.name}`)})},t.name))}),(0,$.jsx)(U,{permission:`OmnitronProject.startStack`,children:(0,$.jsx)(Ge,{open:E!==null,onClose:()=>D(null),project:e??``,release:null,...E?{stack:E}:{}})}),y&&y.project===e&&(0,$.jsx)(Ke,{...y,onClose:()=>b(null),onConfirm:(e,t)=>{b(null),p(y.project,y.stack,e,t)}},`${y.project}/${y.stack}`),S&&e&&(0,$.jsx)(Ze,{project:e,stack:S,onClose:()=>C(null)},`${e}/${S}`),(0,$.jsxs)(te,{open:w!==null,onClose:()=>T(null),children:[(0,$.jsx)(ie,{children:`Delete Stack`}),(0,$.jsx)(ee,{children:(0,$.jsxs)(ne,{children:[`Are you sure you want to delete stack `,(0,$.jsx)(`strong`,{children:w}),`? This action cannot be undone.`]})}),(0,$.jsxs)(re,{children:[(0,$.jsx)(h,{onClick:()=>T(null),children:`Cancel`}),(0,$.jsx)(U,{permission:`OmnitronProject.deleteStack`,children:(0,$.jsx)(h,{onClick:A,color:`error`,variant:`contained`,children:`Delete`})})]})]})]}):(0,$.jsx)(V,{spacing:3,children:(0,$.jsx)(H,{severity:`info`,children:`No project selected. Register a project first.`})})}function ct({stack:e,pendingOp:t,onStart:n,onResume:r,onDiagnose:i,onStop:a,onDeploy:o,onDelete:s,onDetail:c}){let l=lt[e.status]??{color:`warning`,label:`Unknown`},d=e.config?.release?.mode===`required`,f=e.status===`running`,p=e.status===`stopped`,g=e.status===`starting`||e.status===`stopping`||!!t,_=!!t;return(0,$.jsxs)(D,{sx:{height:`100%`,display:`flex`,flexDirection:`column`,cursor:`pointer`,transition:`border-color 0.2s`,"&:hover":{borderColor:e=>u(e.palette.primary.main,.3)}},variant:`outlined`,onClick:c,children:[(0,$.jsxs)(m,{sx:{flex:1},children:[(0,$.jsxs)(x,{sx:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,mb:1.5},children:[(0,$.jsx)(F,{variant:`h6`,sx:{fontWeight:700,fontSize:`1.1rem`},children:e.name}),(0,$.jsx)(S,{label:l.label,color:l.color,size:`small`,sx:{height:22,fontSize:`0.7rem`}})]}),(0,$.jsxs)(x,{sx:{display:`flex`,alignItems:`center`,gap:1,mb:1.5},children:[(0,$.jsx)(F,{variant:`caption`,sx:{color:`text.secondary`},children:ut[e.type]??e.type}),d&&(0,$.jsx)(S,{label:`releases only`,size:`small`,color:`info`,variant:`outlined`,sx:{height:18,fontSize:`0.6rem`}})]}),(0,$.jsxs)(x,{sx:{display:`grid`,gridTemplateColumns:`1fr 1fr`,gap:1},children:[(0,$.jsx)(Z,{label:`Apps`,value:`${e.apps.filter(e=>e.status===`online`).length}/${e.apps.length}`}),(0,$.jsx)(Z,{label:`Nodes`,value:String(e.nodes.length)}),f&&e.uptime>0&&(0,$.jsx)(Z,{label:`Uptime`,value:Ie(e.uptime)}),e.type!==`local`&&(0,$.jsxs)(x,{sx:{display:`flex`,alignItems:`center`,gap:.5},children:[(0,$.jsx)(Te,{sx:{fontSize:14,color:`text.secondary`}}),(0,$.jsxs)(F,{variant:`caption`,sx:{color:`text.secondary`},children:[e.nodes.filter(e=>e.syncStatus&&He(Ve(e.syncStatus))).length,`/`,e.nodes.length,` in sync`]})]})]}),(0,$.jsx)($e,{stack:e,compact:!0}),(0,$.jsx)(Le,{stack:e,compact:!0}),e.portRange&&(0,$.jsxs)(F,{variant:`caption`,sx:{color:`text.disabled`,mt:1,display:`block`,fontFamily:`monospace`},children:[`Ports: `,e.portRange.start,`–`,e.portRange.end]})]}),(0,$.jsxs)(O,{sx:{px:2,pb:1.5,justifyContent:`space-between`,flexWrap:`wrap`,gap:1},onClick:e=>e.stopPropagation(),children:[p&&!_&&(0,$.jsx)(U,{permission:`OmnitronProject.deleteStack`,children:(0,$.jsx)(z,{size:`small`,color:`error`,onClick:s,title:`Delete stack`,"aria-label":`Delete stack ${e.name}`,sx:{marginInlineEnd:1},children:(0,$.jsx)(Ae,{})})}),(0,$.jsxs)(x,{sx:{marginInlineStart:`auto`,display:`flex`,alignItems:`center`,flexWrap:`wrap`,gap:1},children:[(0,$.jsx)(U,{permission:`OmnitronProject.diagnoseStack`,children:(0,$.jsx)(h,{size:`small`,onClick:i,children:`Diagnose`})}),g?(0,$.jsx)(h,{size:`small`,disabled:!0,startIcon:(0,$.jsx)(A,{size:14}),children:t===`resuming`?`Resuming installed apps…`:t===`starting`||e.status===`starting`?`Starting…`:`Stopping…`}):Je(e)?(0,$.jsx)(Qe,{stack:e,onResume:r,onReviewStop:a}):p?d&&!e.selectedRelease?(0,$.jsx)(U,{permission:`OmnitronProject.startStack`,children:(0,$.jsx)(h,{size:`small`,startIcon:(0,$.jsx)(ke,{}),color:`success`,onClick:o,children:`Deploy release…`})}):(0,$.jsx)(U,{permission:`OmnitronProject.startStack`,children:(0,$.jsx)(h,{size:`small`,startIcon:(0,$.jsx)(Oe,{}),color:`success`,onClick:n,children:`Start`})}):f?(0,$.jsxs)($.Fragment,{children:[e.type!==`local`&&(0,$.jsx)(U,{permission:`OmnitronProject.startStack`,children:(0,$.jsx)(h,{size:`small`,startIcon:(0,$.jsx)(ke,{}),onClick:o,children:`Deploy…`})}),(0,$.jsx)(U,{permission:`OmnitronProject.reviewStackStop`,children:(0,$.jsx)(h,{size:`small`,startIcon:(0,$.jsx)(je,{}),color:`error`,onClick:a,children:`Review stop…`})})]}):(0,$.jsx)(S,{label:l.label,size:`small`,color:l.color,sx:{height:20,fontSize:`0.65rem`}})]})]})]})}function Z({label:e,value:t}){return(0,$.jsxs)(x,{children:[(0,$.jsx)(F,{variant:`caption`,sx:{color:`text.secondary`,fontSize:`0.6rem`,textTransform:`uppercase`},children:e}),(0,$.jsx)(F,{variant:`body2`,sx:{fontWeight:600,fontFamily:`monospace`,fontSize:`0.85rem`},children:t})]})}var Q,$,lt,ut;function dt(){return(dt=e((()=>{Re(),et(),Xe(),qe(),Ye(),ve(),Q=t(),g(),he(),I(),v(),y(),f(),N(),b(),_(),R(),w(),E(),C(),T(),j(),k(),d(),_e(),Me(),ze(),Pe(),l(),Ee(),We(),ot(),Ce(),Ue(),be(),$=n(),lt={running:{color:`success`,label:`Running`},starting:{color:`warning`,label:`Starting`},stopping:{color:`warning`,label:`Stopping`},degraded:{color:`warning`,label:`Degraded`},error:{color:`error`,label:`Error`},stopped:{color:`default`,label:`Stopped`}},ut={local:`Local`,remote:`Remote (SSH)`,cluster:`Cluster`}})))()}dt();export{st as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{C as t,a as n,f as r,h as i,s as a}from"./client-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{C as t,a as n,f as r,h as i,s as a}from"./client-CgyTwq9g.js";import{n as o,t as s}from"./react-CEuifcaQ.js";function c(){let e=window[_];if(e)return e;let t=new g;return window[_]=t,t}var l,u,d,f,p,m,h,g,_,v;function y(){return(y=e((()=>{i(),l=`omnitron_token`,u=3e4,d=5e3,f=3e5,p=3,m=2e3,h=new Set([`SESSION_EXPIRED`,`SESSION_REVOKED`]),g=class{refreshTimer=null;expiresAt=null;lastRefreshAt=0;inflightRefresh=null;running=!1;handler=null;boundVisibilityHandler=null;start(e,t){this.stop(),this.running=!0,this.handler=t,this.expiresAt=new Date(e),this.scheduleRefresh(),this.setupVisibilityListener()}stop(){this.running=!1,this.handler=null,this.cancelTimer(),this.removeVisibilityListener(),this.expiresAt=null,this.inflightRefresh=null}get isActive(){return this.running}isAccessTokenStale(){let e=this.getJwtExpiryMs();return e===null||e-Date.now()<=u}async refresh(){if(!this.getSessionId())return!1;if(this.inflightRefresh)return this.inflightRefresh;if(Date.now()-this.lastRefreshAt<d)return!0;this.inflightRefresh=this.performRefreshWithRetry();try{return await this.inflightRefresh}finally{this.inflightRefresh=null}}async performRefreshWithRetry(){for(let e=0;e<=p;e++)try{return await this.performRefresh()}catch(t){let n=String(t?.code??``);if(h.has(n)){let e=this.handler;return this.stop(),e?.(`expired`),!1}if(e<p){let t=m*2**e;await new Promise(e=>setTimeout(e,t))}else return!1}return!1}async performRefresh(){let e=this.getSessionId();if(!e)return!1;let r=await n(`refreshSession`,{sessionId:e});if(!r?.success||!r?.result)return!1;let{accessToken:i,session:a}=r.result;return i&&(sessionStorage.setItem(l,i),t(i)),a?.expiresAt&&(this.expiresAt=new Date(a.expiresAt)),this.lastRefreshAt=Date.now(),this.running&&this.scheduleRefresh(),this.handler?.(`refreshed`),!0}scheduleRefresh(){if(this.cancelTimer(),!this.running||!this.expiresAt)return;let e=Date.now(),t=this.expiresAt.getTime(),n=this.getJwtExpiryMs();n&&n<t&&(t=n);let r=t-e-u;r<=0&&(r=0),r=Math.min(r,f),this.refreshTimer=setTimeout(()=>{this.running&&this.refresh()},r)}getJwtExpiryMs(){try{let e=sessionStorage.getItem(l);if(!e)return null;let t=e.split(`.`);if(t.length!==3)return null;let n=JSON.parse(atob(t[1].replace(/-/g,`+`).replace(/_/g,`/`)));return typeof n.exp==`number`?n.exp*1e3:null}catch{return null}}getSessionId(){try{let e=sessionStorage.getItem(l);if(!e)return null;let t=e.split(`.`);return t.length===3?JSON.parse(atob(t[1].replace(/-/g,`+`).replace(/_/g,`/`))).sid??null:null}catch{return null}}cancelTimer(){this.refreshTimer!==null&&(clearTimeout(this.refreshTimer),this.refreshTimer=null)}setupVisibilityListener(){this.removeVisibilityListener(),this.boundVisibilityHandler=()=>{this.running&&document.visibilityState===`visible`&&this.refresh()},document.addEventListener(`visibilitychange`,this.boundVisibilityHandler)}removeVisibilityListener(){this.boundVisibilityHandler&&=(document.removeEventListener(`visibilitychange`,this.boundVisibilityHandler),null)}},_=`__omnitronSessionManager`,v=typeof window<`u`?c():new g})))()}function b(e){let t=S(e);return/502|503|bad gateway|service unavailable/i.test(t)?`Service unavailable — the daemon is not running. Start it with omnitron dev.`:/failed to fetch|networkerror|network request failed|econnrefused|econnreset|etimedout|load failed/i.test(t)?`Cannot reach the server. Check that the daemon is running and your network is connected.`:/401|unauthorized|invalid.*credential|invalid.*password|incorrect.*password/i.test(t)?`Invalid username or password.`:/429|too many|rate limit/i.test(t)?`Too many sign-in attempts. Please wait a moment and try again.`:/500|internal server error/i.test(t)?`The server encountered an error. Please try again.`:/timeout|timed out/i.test(t)?`The request timed out. The daemon may be overloaded.`:t.replace(/^HTTP \d{3}:\s*/i,``).trim()||`An unexpected error occurred.`}function x(e,t=`/`){if(!e)return t;try{let n=decodeURIComponent(e),r=`https://console.invalid`,i=new URL(n,r);if(i.origin!==r)return t;let a=i.pathname+i.search+i.hash;return!a.startsWith(`/`)||a.startsWith(`//`)?t:a}catch{return t}}function S(e){if(!e)return``;if(typeof e==`string`)return e;if(typeof e==`object`){let t=e;return String(t.message??t.msg??t.error??``)}return String(e)}function C(){return(C=e((()=>{})))()}function w(e){if(e===`expired`&&(a(),A.setState({user:null,sessionId:null}),typeof window<`u`)){let e=window.location.pathname+window.location.search+window.location.hash,t=encodeURIComponent(x(e));window.location.href=`/auth/sign-in?returnTo=${t}`}}function T(e){let t=e?.code;return t==null||t===401||t===`UNAUTHORIZED`||t===`SESSION_REVOKED`}function E(e){let t=e?.code;return t===`ECONNREFUSED`||t===`SESSION_STORE_UNAVAILABLE`?"The daemon could not reach its database, so your session could not be checked. This is not a sign-in problem — run `omnitron doctor` for the reason.":"The daemon could not check your session. Signing in again will not help until it can — run `omnitron doctor` for the reason."}async function D(e){let t=r();if(!t)e({initialized:!0});else{try{v.isAccessTokenStale()&&await v.refresh().catch(()=>!1);let i=await n(`validateSession`,{sessionId:r()??t});if(i.valid&&i.user){let n=i.session?.expiresAt??new Date(Date.now()+36e5).toISOString();e({user:{id:i.user.id,username:i.user.username,displayName:i.user.displayName??i.user.username,role:i.user.role??O},sessionId:t,initialized:!0}),v.start(n,w);return}}catch(t){if(!T(t)){e({initialized:!0,initError:E(t)});return}try{if(await v.refresh()){let t=r();if(!t){a(),e({initialized:!0});return}let i=await n(`validateSession`,{sessionId:t});if(i.valid&&i.user){e({user:{id:i.user.id,username:i.user.username,displayName:i.user.displayName??i.user.username,role:i.user.role??O},sessionId:r(),initialized:!0});return}}}catch{}}a(),e({initialized:!0})}}var O,k,A;function j(){return(j=e((()=>{o(),i(),y(),O=`unknown`,k=null,A=s((e,i)=>({user:null,sessionId:null,initialized:!1,initError:null,loading:!1,clearInitError:()=>e({initError:null}),initialize:async()=>{if(!i().initialized)return k||(k=D(e).finally(()=>{k=null}),k)},signIn:async(i,a)=>{e({loading:!0});try{let o=await n(`signIn`,{username:i,password:a});if(!o||typeof o!=`object`||Array.isArray(o)||!o.user)throw Error(`Invalid credentials`);o.accessToken&&t(o.accessToken);let s=o.session?.id??r(),c=o.session?.expiresAt??new Date(Date.now()+36e5).toISOString();e({user:{id:o.user.id,username:o.user.username,displayName:o.user.displayName??o.user.username,role:o.user.role??O},sessionId:s,loading:!1}),v.start(c,w)}catch(t){throw e({loading:!1}),t}},signOut:async()=>{v.stop();let{sessionId:t}=i();try{t&&await n(`signOut`,{sessionId:t})}finally{a(),e({user:null,sessionId:null})}},setUser:t=>e({user:t})}))})))()}export{x as a,C as i,A as n,b as r,j as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{U as r,h as i,w as a,y as o,z as s}from"./client-DFnuv2z3.js";import{n as c}from"./services-BddvcFi8.js";import{F as l,H as u,I as d,Q as f,V as p,Z as m,i as h,r as g}from"./mui-BXSXx9c9.js";import{B as _,a as v,o as y,z as b}from"./mui-Cd711nOk.js";import{E as x,T as S,U as ee,W as te,it as C,l as w,rt as T,u as E}from"./mui-AnEgAVjz.js";import{_ as D,n as ne,t as re,v as ie}from"./mui-BwsIrivo.js";import{r as ae,t as O}from"./alert-uBG6r9NW.js";import{c as oe,s as se}from"./access-48hkC2-P.js";import{n as k,r as A,t as j}from"./use-polled-resource-B22hhr5L.js";import{G as M,M as N}from"./icons-OboZgWSt.js";import{n as P,t as F}from"./operation-status-Bm1x1wTz.js";import{n as I,t as L}from"./page-breadcrumbs-fR7Jmpp4.js";import{s as R}from"./formatters-RnRy4bXm.js";import{i as z,n as B,r as V}from"./metric-series-WxePniyw.js";import{n as H,r as U}from"./tabs-k5NPGLnJ.js";function W(e,t=Date.now()){let n=t-e.timestamp,r=Number.isFinite(n)?n<-15e3?`clock-skew`:n>15e3?`stale`:`current`:`unknown`,i=Object.entries(e.unanswered??{});return{ageMs:n,timing:r,missing:i,complete:!i.length&&r===`current`}}function G({title:e,children:t}){return(0,X.jsxs)(p,{component:`section`,sx:{minWidth:0},children:[(0,X.jsx)(b,{component:`h2`,variant:`subtitle2`,sx:{pb:1,borderBottom:1,borderColor:`divider`,mb:1},children:e}),t]})}function K({rows:e}){return(0,X.jsx)(p,{component:`dl`,sx:{display:`grid`,gridTemplateColumns:`minmax(0,2fr) minmax(0,3fr)`,columnGap:2,rowGap:.75,m:0},children:e.map(([e,t])=>(0,X.jsxs)(p,{component:`div`,sx:{display:`contents`},children:[(0,X.jsx)(b,{component:`dt`,variant:`body2`,color:`text.secondary`,children:e}),(0,X.jsx)(b,{component:`dd`,variant:`body2`,sx:{...Q,m:0,textAlign:`end`},children:t??`—`})]},e))})}function q({label:e,value:t,detail:n,percent:r}){return(0,X.jsxs)(p,{sx:{minWidth:0,py:1.25,borderTop:`1px solid`,borderColor:`divider`},children:[(0,X.jsx)(b,{variant:`caption`,color:`text.secondary`,children:e}),(0,X.jsx)(b,{component:`div`,variant:`h5`,sx:{...Q,my:.4},children:t}),r!=null&&Number.isFinite(r)&&(0,X.jsx)(S,{"aria-label":e,variant:`determinate`,value:Math.min(100,Math.max(0,r)),sx:{height:3,mb:.75}}),(0,X.jsx)(b,{variant:`caption`,color:`text.secondary`,sx:{overflowWrap:`anywhere`},children:n})]})}function ce({network:e,unanswered:t}){return t.network||e.rateAvailable===!1||e.rxSec<0||e.txSec<0?null:{rx:`${B(e.rxSec)}/s`,tx:`${B(e.txSec)}/s`}}function le({data:e}){let{cpu:t,memory:n,disks:r,unanswered:i}=e,a=i.disks?void 0:r.reduce((e,t)=>!e||t.usedPercent>e.usedPercent?t:e,void 0),o=ce(e);return(0,X.jsxs)(p,{"aria-label":`Host measurements`,sx:{display:`grid`,gridTemplateColumns:{xs:`repeat(2,minmax(0,1fr))`,md:`repeat(4,minmax(0,1fr))`},columnGap:{xs:1.5,md:3}},children:[(0,X.jsx)(q,{label:`CPU load`,value:i.cpu?`—`:V(t.currentLoad),detail:i.cpu?`Reading unavailable`:`${t.cores} logical cores`,percent:i.cpu?void 0:t.currentLoad}),(0,X.jsx)(q,{label:`Committed memory`,value:i.memory?`—`:B(n.committed),detail:i.memory?`Reading unavailable`:`${B(n.available)} available`,percent:i.memory?void 0:n.usedPercent}),(0,X.jsx)(q,{label:`Fullest mount`,value:a?V(a.usedPercent):`—`,detail:a?`${a.mount} · ${B(a.available)} available`:i.disks?`Reading unavailable`:`No reported mounts`,percent:a?.usedPercent}),(0,X.jsx)(q,{label:`Network receive`,value:o?.rx??`—`,detail:o?`Transmit ${o.tx}`:`Transfer rate unavailable`})]})}function ue({data:e}){let{os:t,cpu:n,memory:r,daemon:i,docker:a,unanswered:o}=e;return(0,X.jsxs)(p,{sx:Z,children:[(0,X.jsx)(G,{title:`Host`,children:o.os?(0,X.jsx)(b,{variant:`body2`,children:`Host details unavailable`}):(0,X.jsx)(K,{rows:[[`Hostname`,t.hostname],[`Operating system`,[t.distro||t.platform,t.release].filter(Boolean).join(` `)],[`Kernel`,t.kernel],[`Architecture`,t.arch],[`Host uptime`,R(t.uptime*1e3)]]})}),(0,X.jsx)(G,{title:`Daemon`,children:(0,X.jsx)(K,{rows:[[`Role / PID`,`${i.role} / ${i.pid}`],[`Daemon uptime`,R(i.uptimeMs)],[`Omnitron`,i.version??`Version not reported`],[`Build commit`,i.build?i.build.commit+(i.build.dirty?` (dirty)`:``):`Build not reported`],[`Node.js / V8`,`${i.nodeVersion} / ${i.v8Version}`],[`Resident memory`,B(i.memoryUsage.rss)],[`Heap used / allocated`,`${B(i.memoryUsage.heapUsed)} / ${B(i.memoryUsage.heapTotal)}`],[`External memory`,B(i.memoryUsage.external)]]})}),(0,X.jsxs)(G,{title:`Compute`,children:[!o.cpu&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(K,{rows:[[`Processor`,[n.manufacturer,n.brand].filter(Boolean).join(` `)],[`Physical / logical cores`,`${n.physicalCores} / ${n.cores}`],[`Clock`,n.speed>0?`${n.speed} GHz`:`—`],[`Temperature`,n.temperature!=null&&n.temperature>0?`${n.temperature} °C`:`—`]]}),n.loadPerCore.length>0&&(0,X.jsxs)(p,{component:`details`,sx:{my:1.25},children:[(0,X.jsxs)(b,{component:`summary`,variant:`body2`,sx:{cursor:`pointer`},children:[`Per-core load · `,n.loadPerCore.length]}),(0,X.jsx)(p,{sx:{display:`grid`,gridTemplateColumns:`repeat(auto-fill,minmax(6rem,1fr))`,gap:1,mt:1},children:n.loadPerCore.map((e,t)=>(0,X.jsxs)(b,{variant:`caption`,sx:Q,children:[`CPU `,t,` · `,V(e)]},t))})]})]}),!o.memory&&(0,X.jsx)(K,{rows:[[`RAM capacity`,B(r.total)],[`Free / available`,`${B(r.free)} / ${B(r.available)}`],[`Swap used / total`,`${B(r.swapUsed)} / ${B(r.swapTotal)}`]]}),o.cpu&&o.memory&&(0,X.jsx)(b,{variant:`body2`,children:`Compute details unavailable`})]}),(0,X.jsx)(G,{title:`Docker`,children:a&&!o.docker?(0,X.jsx)(K,{rows:[[`Running`,a.running],[`Paused`,a.paused],[`Stopped`,a.stopped]]}):(0,X.jsx)(b,{variant:`body2`,color:`text.secondary`,children:o.docker?`Container inventory unavailable`:`No container runtime reported`})})]})}function de({data:e}){if(e.unanswered.disks)return(0,X.jsx)(b,{variant:`body2`,children:`Mount inventory unavailable.`});if(!e.disks.length)return(0,X.jsx)(b,{variant:`body2`,children:`No mounted filesystems reported.`});let t=[...e.disks].sort((e,t)=>t.usedPercent-e.usedPercent||e.mount.localeCompare(t.mount));return(0,X.jsx)(p,{sx:Z,children:t.map(e=>(0,X.jsxs)(G,{title:e.mount,children:[(0,X.jsx)(K,{rows:[[`Filesystem`,`${e.fs} · ${e.type}`],[`Available`,B(e.available)],[`Used / capacity`,`${B(e.used)} / ${B(e.size)}`],[`Utilization`,V(e.usedPercent)]]}),(0,X.jsx)(S,{"aria-label":`Usage of ${e.mount}`,variant:`determinate`,value:Math.min(100,Math.max(0,e.usedPercent)),sx:{mt:1,height:3}})]},JSON.stringify([e.mount,e.fs])))})}function J({data:e}){return e.unanswered.network?(0,X.jsx)(b,{variant:`body2`,children:`Interface inventory unavailable.`}):e.network.interfaces.length?(0,X.jsx)(p,{sx:Z,children:e.network.interfaces.map(e=>(0,X.jsx)(G,{title:e.iface,children:(0,X.jsx)(K,{rows:[[`Link`,e.operstate],[`IPv4`,e.ip4||`—`],[`IPv6`,e.ip6||`—`],[`MAC`,e.mac||`—`],[`Link speed`,e.speed!=null&&e.speed>0?`${e.speed} Mbit/s`:`—`]]})},e.iface))}):(0,X.jsx)(b,{variant:`body2`,children:`No external network interfaces reported.`})}function fe({data:e,live:t}){let[n,r]=(0,Y.useState)(Date.now);A(()=>r(Date.now()),{intervalMs:5e3});let{ageMs:i,timing:a}=W(e,Math.max(n,Date.now())),o=new Date(e.timestamp);return(0,X.jsxs)(b,{component:`div`,variant:`caption`,color:a===`current`?`text.secondary`:`warning.main`,children:[a===`clock-skew`?`Host clock ahead`:a===`unknown`?`Collection time unavailable`:`Collected ${Math.max(0,Math.round(i/1e3))} s ago in ${e.collectedMs} ms`,Number.isFinite(o.getTime())&&(0,X.jsxs)(X.Fragment,{children:[` `,`·`,` `,(0,X.jsx)(`time`,{dateTime:o.toISOString(),title:o.toISOString(),children:o.toLocaleTimeString()})]}),a===`stale`&&` · Stale sample`,!t&&` · Updates paused`]})}function pe(){let[e,t]=r(),n=e.get(`node`)||``,i=e.get(`view`)||`overview`,{can:a}=oe(),s=a(`OmnitronNodes.getNodeSystemSnapshot`),c=s&&a(`OmnitronNodes.listNodes`),l=k(()=>o.listNodes(),{intervalMs:3e4,enabled:c,resourceKey:Number(c)}),u=(l.data??[]).filter(e=>!e.isLocal);function d(e,n){t(t=>{let r=new URLSearchParams(t);return n?r.set(e,n):r.delete(e),r})}return(0,X.jsx)(me,{target:n,allowed:!n||s,view:[`storage`,`network`].includes(i)?i:`overview`,onView:e=>d(`view`,e===`overview`?``:e),selector:(c||n)&&(0,X.jsxs)(v,{select:!0,label:`Host`,size:`small`,value:n,onChange:e=>d(`node`,e.target.value),slotProps:{select:{displayEmpty:!0},inputLabel:{shrink:!0}},sx:{minWidth:`10rem`,maxWidth:`100%`},children:[(0,X.jsx)(w,{value:``,children:`Connected daemon`}),n&&!u.some(e=>e.id===n)&&(0,X.jsx)(w,{value:n,children:n}),u.map(e=>(0,X.jsx)(w,{value:e.id,children:e.name},e.id))]}),inventoryError:c?l.error:null},JSON.stringify([n,!n||s]))}function me({target:e,allowed:t,view:n,onView:r,selector:i,inventoryError:s}){let[c,u]=(0,Y.useState)(!0),[d,f]=(0,Y.useState)(!1),{data:p,error:h,loading:_,refresh:v}=k(()=>e?o.getNodeSystemSnapshot({nodeId:e}):a.getSnapshot({fresh:!0}),{intervalMs:5e3,enabled:t,paused:!c,resourceKey:e}),y=async()=>{f(!0);try{await v()}finally{f(!1)}},x=p?W(p).missing:[];return(0,X.jsxs)(D,{spacing:2,sx:{minWidth:0},children:[(0,X.jsx)(L,{links:[{name:`System`}],action:(0,X.jsxs)(D,{direction:`row`,spacing:1,sx:{alignItems:`center`},children:[i,(0,X.jsx)(ee,{control:(0,X.jsx)(re,{size:`small`,checked:c,disabled:!t,onChange:e=>u(e.target.checked)}),label:`Live`,sx:{m:0}}),(0,X.jsx)(T,{size:`small`,"aria-label":`Refresh system snapshot`,"data-console-command":`refresh`,disabled:d||!t,onClick:()=>void y(),children:(0,X.jsx)(N,{})})]})}),s&&(0,X.jsxs)(O,{severity:`warning`,children:[`Node inventory unavailable · `,s]}),t?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(F,{active:_||d,label:_?`Reading host measurements`:`Requesting a system snapshot`}),h&&(0,X.jsxs)(O,{severity:p?`warning`:`error`,children:[p?`Showing the last snapshot`:`Host measurements unavailable`,` · `,h]}),p&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(D,{spacing:.25,children:[(0,X.jsxs)(D,{direction:`row`,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,X.jsx)(b,{variant:`subtitle1`,sx:Q,children:!p.unanswered.os&&p.os.hostname||e||`Connected daemon`}),(0,X.jsx)(m,{size:`small`,variant:`outlined`,label:e?`Mesh node`:`Connected daemon`})]}),(0,X.jsx)(fe,{data:p,live:c})]}),x.length>0&&(0,X.jsxs)(O,{severity:`warning`,variant:`outlined`,children:[(0,X.jsxs)(b,{variant:`subtitle2`,children:[`Partial snapshot · `,x.length,` `,x.length===1?`section`:`sections`,` unavailable`]}),x.map(([e,t])=>(0,X.jsxs)(b,{component:`div`,variant:`body2`,children:[(0,X.jsx)(`strong`,{children:e}),` · `,(0,X.jsxs)(`span`,{children:[`Did not answer — `,t]})]},e))]}),(0,X.jsx)(le,{data:p}),(0,X.jsx)(g,{}),(0,X.jsx)(H,{"aria-label":`System details`,value:n,onChange:r,variant:`scrollable`,scrollButtons:`auto`,tabs:[{value:`overview`,label:`Overview`,content:(0,X.jsx)(ue,{data:p})},{value:`storage`,label:`Storage`,content:(0,X.jsx)(de,{data:p})},{value:`network`,label:`Network`,content:(0,X.jsx)(J,{data:p})}]})]}),!c&&!p&&!h&&(0,X.jsx)(l,{onClick:()=>void y(),children:`Read snapshot`})]}):(0,X.jsx)(O,{severity:`warning`,children:`Remote system readings are unavailable for this session. Select the connected daemon to inspect its host.`})]})}var Y,X,Z,Q;function $(){return($=e((()=>{Y=t(),s(),u(),d(),f(),h(),C(),x(),E(),ie(),ne(),te(),y(),_(),ae(),U(),c(),se(),M(),I(),P(),j(),i(),z(),X=n(),Z={display:`grid`,gridTemplateColumns:{xs:`minmax(0,1fr)`,md:`repeat(2,minmax(0,1fr))`},gap:{xs:2,md:3}},Q={fontFamily:`monospace`,fontVariantNumeric:`tabular-nums`,overflowWrap:`anywhere`}})))()}$();export{pe as default};
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{U as r,h as i,w as a,y as o,z as s}from"./client-CgyTwq9g.js";import{n as c}from"./services-BddvcFi8.js";import{F as l,H as u,I as d,Q as f,V as p,Z as m,i as h,r as g}from"./mui-SNRRJ_vi.js";import{B as _,a as v,o as y,z as b}from"./mui-B3fJdIMc.js";import{E as x,T as S,U as ee,W as te,it as C,l as w,rt as T,u as E}from"./mui-CMWGTMXv.js";import{_ as D,n as ne,t as re,v as ie}from"./mui-CPEkFAPo.js";import{r as ae,t as O}from"./alert-BdJ2uaY0.js";import{c as oe,s as se}from"./access-I0f72P9m.js";import{n as k,r as A,t as j}from"./use-polled-resource-B22hhr5L.js";import{G as M,M as N}from"./icons-B9Ct8PJ9.js";import{n as P,t as F}from"./operation-status-DHyYOT7G.js";import{n as I,t as L}from"./page-breadcrumbs-3R8RZ3nA.js";import{s as R}from"./formatters-RnRy4bXm.js";import{i as z,n as B,r as V}from"./metric-series-WxePniyw.js";import{n as H,r as U}from"./tabs-DGqBkXh_.js";function W(e,t=Date.now()){let n=t-e.timestamp,r=Number.isFinite(n)?n<-15e3?`clock-skew`:n>15e3?`stale`:`current`:`unknown`,i=Object.entries(e.unanswered??{});return{ageMs:n,timing:r,missing:i,complete:!i.length&&r===`current`}}function G({title:e,children:t}){return(0,X.jsxs)(p,{component:`section`,sx:{minWidth:0},children:[(0,X.jsx)(b,{component:`h2`,variant:`subtitle2`,sx:{pb:1,borderBottom:1,borderColor:`divider`,mb:1},children:e}),t]})}function K({rows:e}){return(0,X.jsx)(p,{component:`dl`,sx:{display:`grid`,gridTemplateColumns:`minmax(0,2fr) minmax(0,3fr)`,columnGap:2,rowGap:.75,m:0},children:e.map(([e,t])=>(0,X.jsxs)(p,{component:`div`,sx:{display:`contents`},children:[(0,X.jsx)(b,{component:`dt`,variant:`body2`,color:`text.secondary`,children:e}),(0,X.jsx)(b,{component:`dd`,variant:`body2`,sx:{...Q,m:0,textAlign:`end`},children:t??`—`})]},e))})}function q({label:e,value:t,detail:n,percent:r}){return(0,X.jsxs)(p,{sx:{minWidth:0,py:1.25,borderTop:`1px solid`,borderColor:`divider`},children:[(0,X.jsx)(b,{variant:`caption`,color:`text.secondary`,children:e}),(0,X.jsx)(b,{component:`div`,variant:`h5`,sx:{...Q,my:.4},children:t}),r!=null&&Number.isFinite(r)&&(0,X.jsx)(S,{"aria-label":e,variant:`determinate`,value:Math.min(100,Math.max(0,r)),sx:{height:3,mb:.75}}),(0,X.jsx)(b,{variant:`caption`,color:`text.secondary`,sx:{overflowWrap:`anywhere`},children:n})]})}function ce({network:e,unanswered:t}){return t.network||e.rateAvailable===!1||e.rxSec<0||e.txSec<0?null:{rx:`${B(e.rxSec)}/s`,tx:`${B(e.txSec)}/s`}}function le({data:e}){let{cpu:t,memory:n,disks:r,unanswered:i}=e,a=i.disks?void 0:r.reduce((e,t)=>!e||t.usedPercent>e.usedPercent?t:e,void 0),o=ce(e);return(0,X.jsxs)(p,{"aria-label":`Host measurements`,sx:{display:`grid`,gridTemplateColumns:{xs:`repeat(2,minmax(0,1fr))`,md:`repeat(4,minmax(0,1fr))`},columnGap:{xs:1.5,md:3}},children:[(0,X.jsx)(q,{label:`CPU load`,value:i.cpu?`—`:V(t.currentLoad),detail:i.cpu?`Reading unavailable`:`${t.cores} logical cores`,percent:i.cpu?void 0:t.currentLoad}),(0,X.jsx)(q,{label:`Committed memory`,value:i.memory?`—`:B(n.committed),detail:i.memory?`Reading unavailable`:`${B(n.available)} available`,percent:i.memory?void 0:n.usedPercent}),(0,X.jsx)(q,{label:`Fullest mount`,value:a?V(a.usedPercent):`—`,detail:a?`${a.mount} · ${B(a.available)} available`:i.disks?`Reading unavailable`:`No reported mounts`,percent:a?.usedPercent}),(0,X.jsx)(q,{label:`Network receive`,value:o?.rx??`—`,detail:o?`Transmit ${o.tx}`:`Transfer rate unavailable`})]})}function ue({data:e}){let{os:t,cpu:n,memory:r,daemon:i,docker:a,unanswered:o}=e;return(0,X.jsxs)(p,{sx:Z,children:[(0,X.jsx)(G,{title:`Host`,children:o.os?(0,X.jsx)(b,{variant:`body2`,children:`Host details unavailable`}):(0,X.jsx)(K,{rows:[[`Hostname`,t.hostname],[`Operating system`,[t.distro||t.platform,t.release].filter(Boolean).join(` `)],[`Kernel`,t.kernel],[`Architecture`,t.arch],[`Host uptime`,R(t.uptime*1e3)]]})}),(0,X.jsx)(G,{title:`Daemon`,children:(0,X.jsx)(K,{rows:[[`Role / PID`,`${i.role} / ${i.pid}`],[`Daemon uptime`,R(i.uptimeMs)],[`Omnitron`,i.version??`Version not reported`],[`Build commit`,i.build?i.build.commit+(i.build.dirty?` (dirty)`:``):`Build not reported`],[`Node.js / V8`,`${i.nodeVersion} / ${i.v8Version}`],[`Resident memory`,B(i.memoryUsage.rss)],[`Heap used / allocated`,`${B(i.memoryUsage.heapUsed)} / ${B(i.memoryUsage.heapTotal)}`],[`External memory`,B(i.memoryUsage.external)]]})}),(0,X.jsxs)(G,{title:`Compute`,children:[!o.cpu&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(K,{rows:[[`Processor`,[n.manufacturer,n.brand].filter(Boolean).join(` `)],[`Physical / logical cores`,`${n.physicalCores} / ${n.cores}`],[`Clock`,n.speed>0?`${n.speed} GHz`:`—`],[`Temperature`,n.temperature!=null&&n.temperature>0?`${n.temperature} °C`:`—`]]}),n.loadPerCore.length>0&&(0,X.jsxs)(p,{component:`details`,sx:{my:1.25},children:[(0,X.jsxs)(b,{component:`summary`,variant:`body2`,sx:{cursor:`pointer`},children:[`Per-core load · `,n.loadPerCore.length]}),(0,X.jsx)(p,{sx:{display:`grid`,gridTemplateColumns:`repeat(auto-fill,minmax(6rem,1fr))`,gap:1,mt:1},children:n.loadPerCore.map((e,t)=>(0,X.jsxs)(b,{variant:`caption`,sx:Q,children:[`CPU `,t,` · `,V(e)]},t))})]})]}),!o.memory&&(0,X.jsx)(K,{rows:[[`RAM capacity`,B(r.total)],[`Free / available`,`${B(r.free)} / ${B(r.available)}`],[`Swap used / total`,`${B(r.swapUsed)} / ${B(r.swapTotal)}`]]}),o.cpu&&o.memory&&(0,X.jsx)(b,{variant:`body2`,children:`Compute details unavailable`})]}),(0,X.jsx)(G,{title:`Docker`,children:a&&!o.docker?(0,X.jsx)(K,{rows:[[`Running`,a.running],[`Paused`,a.paused],[`Stopped`,a.stopped]]}):(0,X.jsx)(b,{variant:`body2`,color:`text.secondary`,children:o.docker?`Container inventory unavailable`:`No container runtime reported`})})]})}function de({data:e}){if(e.unanswered.disks)return(0,X.jsx)(b,{variant:`body2`,children:`Mount inventory unavailable.`});if(!e.disks.length)return(0,X.jsx)(b,{variant:`body2`,children:`No mounted filesystems reported.`});let t=[...e.disks].sort((e,t)=>t.usedPercent-e.usedPercent||e.mount.localeCompare(t.mount));return(0,X.jsx)(p,{sx:Z,children:t.map(e=>(0,X.jsxs)(G,{title:e.mount,children:[(0,X.jsx)(K,{rows:[[`Filesystem`,`${e.fs} · ${e.type}`],[`Available`,B(e.available)],[`Used / capacity`,`${B(e.used)} / ${B(e.size)}`],[`Utilization`,V(e.usedPercent)]]}),(0,X.jsx)(S,{"aria-label":`Usage of ${e.mount}`,variant:`determinate`,value:Math.min(100,Math.max(0,e.usedPercent)),sx:{mt:1,height:3}})]},JSON.stringify([e.mount,e.fs])))})}function J({data:e}){return e.unanswered.network?(0,X.jsx)(b,{variant:`body2`,children:`Interface inventory unavailable.`}):e.network.interfaces.length?(0,X.jsx)(p,{sx:Z,children:e.network.interfaces.map(e=>(0,X.jsx)(G,{title:e.iface,children:(0,X.jsx)(K,{rows:[[`Link`,e.operstate],[`IPv4`,e.ip4||`—`],[`IPv6`,e.ip6||`—`],[`MAC`,e.mac||`—`],[`Link speed`,e.speed!=null&&e.speed>0?`${e.speed} Mbit/s`:`—`]]})},e.iface))}):(0,X.jsx)(b,{variant:`body2`,children:`No external network interfaces reported.`})}function fe({data:e,live:t}){let[n,r]=(0,Y.useState)(Date.now);A(()=>r(Date.now()),{intervalMs:5e3});let{ageMs:i,timing:a}=W(e,Math.max(n,Date.now())),o=new Date(e.timestamp);return(0,X.jsxs)(b,{component:`div`,variant:`caption`,color:a===`current`?`text.secondary`:`warning.main`,children:[a===`clock-skew`?`Host clock ahead`:a===`unknown`?`Collection time unavailable`:`Collected ${Math.max(0,Math.round(i/1e3))} s ago in ${e.collectedMs} ms`,Number.isFinite(o.getTime())&&(0,X.jsxs)(X.Fragment,{children:[` `,`·`,` `,(0,X.jsx)(`time`,{dateTime:o.toISOString(),title:o.toISOString(),children:o.toLocaleTimeString()})]}),a===`stale`&&` · Stale sample`,!t&&` · Updates paused`]})}function pe(){let[e,t]=r(),n=e.get(`node`)||``,i=e.get(`view`)||`overview`,{can:a}=oe(),s=a(`OmnitronNodes.getNodeSystemSnapshot`),c=s&&a(`OmnitronNodes.listNodes`),l=k(()=>o.listNodes(),{intervalMs:3e4,enabled:c,resourceKey:Number(c)}),u=(l.data??[]).filter(e=>!e.isLocal);function d(e,n){t(t=>{let r=new URLSearchParams(t);return n?r.set(e,n):r.delete(e),r})}return(0,X.jsx)(me,{target:n,allowed:!n||s,view:[`storage`,`network`].includes(i)?i:`overview`,onView:e=>d(`view`,e===`overview`?``:e),selector:(c||n)&&(0,X.jsxs)(v,{select:!0,label:`Host`,size:`small`,value:n,onChange:e=>d(`node`,e.target.value),slotProps:{select:{displayEmpty:!0},inputLabel:{shrink:!0}},sx:{minWidth:`10rem`,maxWidth:`100%`},children:[(0,X.jsx)(w,{value:``,children:`Connected daemon`}),n&&!u.some(e=>e.id===n)&&(0,X.jsx)(w,{value:n,children:n}),u.map(e=>(0,X.jsx)(w,{value:e.id,children:e.name},e.id))]}),inventoryError:c?l.error:null},JSON.stringify([n,!n||s]))}function me({target:e,allowed:t,view:n,onView:r,selector:i,inventoryError:s}){let[c,u]=(0,Y.useState)(!0),[d,f]=(0,Y.useState)(!1),{data:p,error:h,loading:_,refresh:v}=k(()=>e?o.getNodeSystemSnapshot({nodeId:e}):a.getSnapshot({fresh:!0}),{intervalMs:5e3,enabled:t,paused:!c,resourceKey:e}),y=async()=>{f(!0);try{await v()}finally{f(!1)}},x=p?W(p).missing:[];return(0,X.jsxs)(D,{spacing:2,sx:{minWidth:0},children:[(0,X.jsx)(L,{links:[{name:`System`}],action:(0,X.jsxs)(D,{direction:`row`,spacing:1,sx:{alignItems:`center`},children:[i,(0,X.jsx)(ee,{control:(0,X.jsx)(re,{size:`small`,checked:c,disabled:!t,onChange:e=>u(e.target.checked)}),label:`Live`,sx:{m:0}}),(0,X.jsx)(T,{size:`small`,"aria-label":`Refresh system snapshot`,"data-console-command":`refresh`,disabled:d||!t,onClick:()=>void y(),children:(0,X.jsx)(N,{})})]})}),s&&(0,X.jsxs)(O,{severity:`warning`,children:[`Node inventory unavailable · `,s]}),t?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(F,{active:_||d,label:_?`Reading host measurements`:`Requesting a system snapshot`}),h&&(0,X.jsxs)(O,{severity:p?`warning`:`error`,children:[p?`Showing the last snapshot`:`Host measurements unavailable`,` · `,h]}),p&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(D,{spacing:.25,children:[(0,X.jsxs)(D,{direction:`row`,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,X.jsx)(b,{variant:`subtitle1`,sx:Q,children:!p.unanswered.os&&p.os.hostname||e||`Connected daemon`}),(0,X.jsx)(m,{size:`small`,variant:`outlined`,label:e?`Mesh node`:`Connected daemon`})]}),(0,X.jsx)(fe,{data:p,live:c})]}),x.length>0&&(0,X.jsxs)(O,{severity:`warning`,variant:`outlined`,children:[(0,X.jsxs)(b,{variant:`subtitle2`,children:[`Partial snapshot · `,x.length,` `,x.length===1?`section`:`sections`,` unavailable`]}),x.map(([e,t])=>(0,X.jsxs)(b,{component:`div`,variant:`body2`,children:[(0,X.jsx)(`strong`,{children:e}),` · `,(0,X.jsxs)(`span`,{children:[`Did not answer — `,t]})]},e))]}),(0,X.jsx)(le,{data:p}),(0,X.jsx)(g,{}),(0,X.jsx)(H,{"aria-label":`System details`,value:n,onChange:r,variant:`scrollable`,scrollButtons:`auto`,tabs:[{value:`overview`,label:`Overview`,content:(0,X.jsx)(ue,{data:p})},{value:`storage`,label:`Storage`,content:(0,X.jsx)(de,{data:p})},{value:`network`,label:`Network`,content:(0,X.jsx)(J,{data:p})}]})]}),!c&&!p&&!h&&(0,X.jsx)(l,{onClick:()=>void y(),children:`Read snapshot`})]}):(0,X.jsx)(O,{severity:`warning`,children:`Remote system readings are unavailable for this session. Select the connected daemon to inspect its host.`})]})}var Y,X,Z,Q;function $(){return($=e((()=>{Y=t(),s(),u(),d(),f(),h(),C(),x(),E(),ie(),ne(),te(),y(),_(),ae(),U(),c(),se(),M(),I(),P(),j(),i(),z(),X=n(),Z={display:`grid`,gridTemplateColumns:{xs:`minmax(0,1fr)`,md:`repeat(2,minmax(0,1fr))`},gap:{xs:2,md:3}},Q={fontFamily:`monospace`,fontVariantNumeric:`tabular-nums`,overflowWrap:`anywhere`}})))()}$();export{pe as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{Vt as r,Yt as i}from"./mui-BTN91yBK.js";import{dn as a,un as o}from"./mui-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{Vt as r,Yt as i}from"./mui-BTN91yBK.js";import{dn as a,un as o}from"./mui-Bdr6Ks5j.js";import{C as s,H as c,V as l,w as u}from"./mui-SNRRJ_vi.js";import{A as d,B as f,C as p,D as m,O as h,b as g,d as _,f as v,g as y,h as b,k as x,l as S,u as C,w,y as T,z as E}from"./mui-B3fJdIMc.js";import{ct as D,st as O}from"./mui-CMWGTMXv.js";import{S as k,x as A}from"./mui-CPEkFAPo.js";import{n as j,r as M,t as N}from"./table-viewport-DdZ1yAKm.js";function P({columns:e,data:t,rowKey:n=`id`,selectable:r=!1,selected:i=[],onSelectChange:a,sortable:o=!1,sortBy:c,sortOrder:u=`asc`,onSortChange:d,paginated:f=!1,page:h=0,rowsPerPage:g=10,totalRows:v,onPageChange:y,onRowsPerPageChange:C,rowsPerPageOptions:w=[5,10,25,50],emptyContent:T,loading:D=!1,loadingRows:O=5,dense:k=!1,stickyHeader:j=!1,maxHeight:P,onRowClick:B,containerSx:V,scrollLabel:H,sx:U,ref:W,...G}){let K=(0,F.useCallback)((e,t)=>{if(typeof n==`function`)return n(e);let r=e[n];return r===void 0?t:String(r)},[n]),q=(0,F.useMemo)(()=>t.length>0&&i.length===t.length,[t.length,i.length]),J=(0,F.useMemo)(()=>i.length>0&&i.length<t.length,[t.length,i.length]),Y=(0,F.useCallback)(e=>{if(e.target.checked){let e=t.map((e,t)=>K(e,t));a?.(e)}else a?.([])},[t,K,a]),X=(0,F.useCallback)(e=>{let t=i.includes(e)?i.filter(t=>t!==e):[...i,e];a?.(t)},[i,a]),Z=(0,F.useCallback)(e=>{d?.(e,c===e&&u===`asc`?`desc`:`asc`)},[c,u,d]),Q=(0,F.useCallback)((e,t)=>{y?.(t)},[y]),$=(0,F.useCallback)(e=>{C?.(parseInt(e.target.value,10)),y?.(0)},[C,y]),ee=v??t.length,te=(0,F.useMemo)(()=>f&&v===void 0?t.slice(h*g,h*g+g):t,[t,f,h,g,v]);return!D&&t.length===0?(0,I.jsx)(L,{sx:V,children:(0,I.jsx)(l,{sx:{p:4,textAlign:`center`},children:T||(0,I.jsx)(E,{sx:{color:`text.secondary`},children:`No data available`})})}):(0,I.jsxs)(L,{sx:V,children:[(0,I.jsx)(N,{label:H,maxHeight:P,children:(0,I.jsxs)(x,{ref:W,stickyHeader:j,size:k?`small`:`medium`,sx:U,...G,children:[(0,I.jsx)(R,{children:(0,I.jsxs)(_,{children:[r&&(0,I.jsx)(p,{padding:`checkbox`,children:(0,I.jsx)(s,{indeterminate:J,checked:q,onChange:Y})}),e.map(e=>(0,I.jsx)(p,{align:e.align||`left`,style:{width:e.width,minWidth:e.minWidth},sortDirection:c===e.id&&u,children:o&&e.sortable!==!1?(0,I.jsx)(S,{active:c===e.id,direction:c===e.id?u:`asc`,onClick:()=>Z(String(e.id)),children:e.label}):e.label},String(e.id)))]})}),(0,I.jsxs)(m,{children:[D&&Array.from({length:Math.max(1,O)},(t,n)=>(0,I.jsxs)(_,{children:[r&&(0,I.jsx)(p,{padding:`checkbox`,children:(0,I.jsx)(A,{variant:`rectangular`,width:18,height:18})}),e.map(e=>(0,I.jsx)(p,{align:e.align||`left`,children:(0,I.jsx)(A,{variant:`text`,width:e.width??`80%`})},String(e.id)))]},`loading-${n}`)),!D&&te.map((t,n)=>{let a=K(t,n),o=i.includes(a);return(0,I.jsxs)(z,{hover:!0,selected:o,tabIndex:B||r?-1:void 0,"data-row-action":B?!0:void 0,onClick:B?e=>{M(e.target)&&B(t,n)}:void 0,sx:{cursor:B?`pointer`:`default`,"&:focus-visible":{outline:`2px solid`,outlineColor:`primary.main`,outlineOffset:-2}},children:[r&&(0,I.jsx)(p,{padding:`checkbox`,children:(0,I.jsx)(s,{checked:o,onClick:e=>e.stopPropagation(),onChange:()=>X(a)})}),e.map(e=>{let r=t[e.id];return(0,I.jsx)(p,{align:e.align||`left`,children:e.render?e.render(t,n):e.format?e.format(r):String(r??``)},String(e.id))})]},a)})]})]})}),f&&(0,I.jsx)(b,{component:`div`,count:ee,page:h,rowsPerPage:g,rowsPerPageOptions:w,onPageChange:Q,onRowsPerPageChange:$})]})}var F,I,L,R,z;function B(){return(B=e((()=>{F=t(),d(),j(),h(),w(),g(),v(),C(),y(),u(),k(),D(),c(),f(),o(),i(),I=n(),L=a(O)(({theme:e})=>({borderRadius:e.shape.borderRadius,border:`1px solid ${e.palette.divider}`,overflow:`hidden`,minWidth:0,maxWidth:`100%`})),R=a(T)(({theme:e})=>({backgroundColor:r(e.palette.grey[500],.08),"& .MuiTableCell-head":{fontWeight:600,backgroundColor:e.vars?.palette.background.paper??e.palette.background.paper}})),z=a(_)(({theme:e})=>({"&:hover":{backgroundColor:r(e.palette.primary.main,.04)},"&.Mui-selected":{backgroundColor:r(e.palette.primary.main,.08),"&:hover":{backgroundColor:r(e.palette.primary.main,.12)}}}))})))()}export{B as n,P as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{t}from"./react-BN8qLIAi.js";import{S as n,x as r}from"./mui-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{t}from"./react-BN8qLIAi.js";import{S as n,x as r}from"./mui-B3fJdIMc.js";function i(e){return e instanceof Element&&!e.closest(c)}function a(e){if(e.defaultPrevented||e.nativeEvent.isComposing||e.ctrlKey||e.metaKey||e.altKey)return;let t=e.target;if(!i(t))return;let n=e.currentTarget,r=Array.from(n.querySelectorAll(`tbody > tr`)).filter(e=>!e.querySelector(`[role="progressbar"],.MuiSkeleton-root`)),a=t.closest(`tbody > tr`),o=a?r.indexOf(a):-1,s=Math.max(1,Math.floor(n.clientHeight/(a?.getBoundingClientRect().height||40))||10),c={ArrowDown:o+1,ArrowUp:o<0?r.length-1:o-1,Home:0,End:r.length-1,PageDown:o+s,PageUp:o-s};if(e.key in c&&r.length){e.preventDefault();let t=r[Math.max(0,Math.min(r.length-1,c[e.key]))];t.tabIndex=-1,t.focus({preventScroll:!0}),t.scrollIntoView?.({block:`nearest`})}else if(e.key===`Escape`&&a)e.preventDefault(),e.stopPropagation(),n.focus({preventScroll:!0});else if(a&&(e.key===`Enter`||e.key===` `)){let t=e.key===` `?a.querySelector(`input[type="checkbox"]:not(:disabled)`):null;(t||e.key===`Enter`||a.hasAttribute(`data-row-action`))&&(e.preventDefault(),(t??a).click())}}function o({label:e=`Table`,maxHeight:t,keyboardNavigation:n=!0,onKeyDown:i,sx:o,...c}){return(0,s.jsx)(r,{role:`region`,"aria-label":e,tabIndex:0,"data-keyboard-region":n?e:void 0,onKeyDown:e=>{i?.(e),n&&a(e)},...c,sx:[{minWidth:0,maxWidth:`100%`,maxHeight:t,overflow:`auto`,overscrollBehaviorX:`contain`,"&:focus-visible":{outline:`2px solid`,outlineColor:`primary.main`,outlineOffset:-2},"& tbody > tr:focus-visible":{outline:`2px solid`,outlineColor:`primary.main`,outlineOffset:-2}},...Array.isArray(o)?o:[o]]})}var s,c;function l(){return(l=e((()=>{n(),s=t(),c=`input,textarea,select,button,a,[contenteditable="true"],[role="button"],[role="checkbox"]`})))()}export{l as n,i as r,o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{H as r,V as i}from"./mui-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{H as r,V as i}from"./mui-SNRRJ_vi.js";import{M as a,c as o,j as s,s as c}from"./mui-B3fJdIMc.js";import{it as l,rt as u}from"./mui-CMWGTMXv.js";import{j as d,u as f}from"./controls-CqeGPnaF.js";function p({tabs:e,value:t,defaultValue:n,onChange:r,onClose:a,children:o,keepMounted:l=!1,action:d,sx:p,..._}){let[v,y]=(0,h.useState)(n??e?.[0]?.value??``),b=t??v,x=(0,h.useId)(),S=(0,h.useRef)(new Map),C=(0,h.useRef)(null),w=(0,h.useCallback)((e,n)=>{t===void 0&&y(n),r?.(n)},[t,r]),T=(0,h.useMemo)(()=>{if(e)return e;let t=[];return h.Children.forEach(o,e=>{if((0,h.isValidElement)(e)&&e.type===m){let n=e.props;t.push({value:n.value,label:n.label??n.value,icon:n.icon,content:n.children,disabled:n.disabled,closable:n.closable,closeDisabled:n.closeDisabled,closeLabel:n.closeLabel})}}),t},[e,o]),E=e=>{if(!a||!e.closable||e.disabled||e.closeDisabled)return;let t=T.indexOf(e),n=T.slice(t+1).find(e=>!e.disabled)??T.slice(0,t).reverse().find(e=>!e.disabled);C.current={value:e.value,next:n?.value},a(e.value)};(0,h.useEffect)(()=>{let e=C.current;e&&!T.some(t=>t.value===e.value)&&(C.current=null,t===void 0&&b===e.value&&(y(e.next??``),e.next&&r?.(e.next)),e.next&&S.current.get(e.next)?.focus())},[T,t,b,r]);let D=d!=null&&d!==!1;return(0,g.jsxs)(i,{sx:{width:`100%`,minWidth:0,flexShrink:0},children:[(0,g.jsxs)(i,{sx:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:2,minWidth:0},children:[(0,g.jsx)(c,{value:b||!1,onChange:w,..._,sx:[{flex:1,minWidth:0},...Array.isArray(p)?p:[p]],children:T.map(e=>{let t=!!(e.closable&&a);return(0,g.jsx)(s,{ref:t=>{t?S.current.set(e.value,t):S.current.delete(e.value)},component:t?`div`:`button`,id:`${x}-tab-${e.value}`,"aria-controls":e.content===void 0?void 0:`${x}-panel-${e.value}`,"aria-label":e.label,"aria-keyshortcuts":t&&!e.closeDisabled?`Delete`:void 0,value:e.value,label:t?(0,g.jsxs)(i,{component:`span`,sx:{display:`inline-flex`,alignItems:`center`,gap:.5,minWidth:0,maxWidth:`100%`},children:[(0,g.jsx)(i,{component:`span`,sx:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.label}),(0,g.jsx)(u,{component:`button`,type:`button`,size:`small`,tabIndex:-1,"aria-label":e.closeLabel??`Close ${e.label}`,title:e.closeLabel??`Close ${e.label}`,disabled:e.disabled||e.closeDisabled,sx:{p:.25,flexShrink:0,color:`text.secondary`},onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:t=>{t.stopPropagation(),E(e)},onKeyDown:e=>e.stopPropagation(),children:(0,g.jsx)(f,{sx:{fontSize:16}})})]}):e.label,icon:e.icon,iconPosition:`start`,disabled:e.disabled,onKeyDown:n=>{n.key===`Delete`&&t&&!e.closeDisabled&&(n.preventDefault(),n.stopPropagation(),E(e))}},e.value)})}),D&&(0,g.jsx)(i,{sx:{display:`flex`,alignItems:`center`,gap:1,flexShrink:0},children:d})]}),T.map(e=>{let t=e.value===b;return!t&&!l||e.content===void 0?null:(0,g.jsx)(i,{role:`tabpanel`,hidden:!t,id:`${x}-panel-${e.value}`,"aria-labelledby":`${x}-tab-${e.value}`,sx:{pt:2},children:e.content},e.value)})]})}function m({children:e}){return(0,g.jsx)(g.Fragment,{children:e})}var h,g;function _(){return(_=e((()=>{h=t(),o(),a(),r(),l(),d(),g=n()})))()}export{p as n,_ as r,m as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{O as r,P as i,T as a,U as o,h as s,y as c,z as l}from"./client-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{O as r,P as i,T as a,U as o,h as s,y as c,z as l}from"./client-CgyTwq9g.js";import{Vt as u,Yt as d}from"./mui-BTN91yBK.js";import{_n as f,gn as p}from"./mui-Bdr6Ks5j.js";import{F as m,H as h,I as g,M as _,Q as v,V as ee,Z as te,at as y,c as ne,d as re,f as ie,g as b,h as ae,j as x,m as oe,ot as S,p as se,s as ce}from"./mui-SNRRJ_vi.js";import{B as le,F as C,I as w,a as ue,i as de,o as T,r as fe,z as E}from"./mui-B3fJdIMc.js";import{d as pe,f as me,it as he,l as ge,rt as _e,u as ve}from"./mui-CMWGTMXv.js";import{_ as ye,v as D}from"./mui-CPEkFAPo.js";import{E as be,a as xe,b as Se,j as Ce,n as we,t as Te,u as Ee}from"./controls-CqeGPnaF.js";import{n as De,t as Oe}from"./use-copy-to-clipboard-BWYpToS3.js";import{n as ke,t as Ae}from"./store-DtTtbc9H.js";import{n as je,t as Me}from"./operation-status-DHyYOT7G.js";import{n as Ne,t as Pe}from"./page-breadcrumbs-3R8RZ3nA.js";import{a as Fe,i as Ie,n as Le,o as Re,r as ze,t as Be}from"./terminal-input-b7f2VoE_.js";import{n as Ve,r as He}from"./tabs-DGqBkXh_.js";function Ue(e){return e.replace(/\r?\n/g,`\r`)}function We(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function Ge(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function Ke(e,t,n,r){e.stopPropagation(),e.clipboardData&&qe(e.clipboardData.getData(`text/plain`),t,n,r)}function qe(e,t,n,r){e=Ue(e),e=We(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function Je(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function Ye(e,t,n,r,i){Je(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function Xe(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function Ze(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}function Qe(e){return e[$n]||[]}function O(e){if(er.has(e))return er.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);$e(t,e,r)};return t._id=e,er.set(e,t),t}function $e(e,t,n){t[Qn]===t?t[$n].push({id:e,index:n}):(t[$n]=[{id:e,index:n}],t[Qn]=t)}function et(e,t){if(confirm(`Do you want to navigate to ${t}?
|
|
2
2
|
|
|
3
3
|
WARNING: This link could potentially be dangerous`)){let e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}}function tt(e){nt(e)||xr.onUnexpectedError(e)}function nt(e){return e instanceof Cr||e instanceof Error&&e.name===Sr&&e.message===Sr}function rt(e){return Error(e?`Illegal argument: ${e}`:`Illegal argument`)}function it(e,t,n=0,r=e.length){let i=n,a=r;for(;i<a;){let n=Math.floor((i+a)/2);t(e[n])?i=n+1:a=n}return i-1}function at(e,t=0){return e[e.length-(1+t)]}function ot(e,t){return(n,r)=>t(e(n),e(r))}function st(e,t){let n=Object.create(null);for(let r of e){let e=t(r),i=n[e];i||=n[e]=[],i.push(r)}return n}function ct(e,t){let n=this,r=!1,i;return function(){if(r)return i;if(r=!0,t)try{i=e.apply(n,arguments)}finally{t()}else i=e.apply(n,arguments);return i}}function lt(e){Nr=e}function ut(e){return Nr?.trackDisposable(e),e}function dt(e){Nr?.markAsDisposed(e)}function ft(e,t){Nr?.setParent(e,t)}function pt(e,t){if(Nr)for(let n of e)Nr.setParent(n,t)}function mt(e){return Nr?.markAsSingleton(e),e}function ht(e){if(jr.is(e)){let t=[];for(let n of e)if(n)try{n.dispose()}catch(e){t.push(e)}if(t.length===1)throw t[0];if(t.length>1)throw AggregateError(t,`Encountered errors while disposing of store`);return Array.isArray(e)?[]:e}if(e)return e.dispose(),e}function gt(...e){let t=k(()=>ht(e));return pt(e,t),t}function k(e){let t=ut({dispose:ct(()=>{dt(t),e()})});return t}function _t(e,t,n){typeof t==`string`&&(t=e.matchMedia(t)),t.addEventListener(`change`,n)}function vt(e){return ci.INSTANCE.getZoomFactor(e)}function yt(){return mi}function bt(e){if(e.charCode){let t=String.fromCharCode(e.charCode).toUpperCase();return Vi.fromString(t)}let t=e.keyCode;if(t===3)return 7;if(ui)switch(t){case 59:return 85;case 60:if(Oi)return 97;break;case 61:return 86;case 107:return 109;case 109:return 111;case 173:return 88;case 224:if(Di)return 57}else if(di&&(Di&&t===93||!Di&&t===92))return 57;return Bi[t]||0}function xt(e){if(!e.parent||e.parent===e)return null;try{let t=e.location,n=e.parent.location;if(t.origin!==`null`&&n.origin!==`null`&&t.origin!==n.origin)return null}catch{return null}return e.parent}function St(e){return 55296<=e&&e<=56319}function Ct(e){return 56320<=e&&e<=57343}function wt(e,t){return(e-55296<<10)+(t-56320)+65536}function Tt(e){return Et(e,0)}function Et(e,t){switch(typeof e){case`object`:return e===null?Dt(349,t):Array.isArray(e)?At(e,t):jt(e,t);case`string`:return kt(e,t);case`boolean`:return Ot(e,t);case`number`:return Dt(e,t);case`undefined`:return Dt(937,t);default:return Dt(617,t)}}function Dt(e,t){return(t<<5)-t+e|0}function Ot(e,t){return Dt(e?433:863,t)}function kt(e,t){t=Dt(149417,t);for(let n=0,r=e.length;n<r;n++)t=Dt(e.charCodeAt(n),t);return t}function At(e,t){return t=Dt(104579,t),e.reduce((e,t)=>Et(t,e),t)}function jt(e,t){return t=Dt(181387,t),Object.keys(e).sort().reduce((t,n)=>(t=kt(n,t),Et(e[n],t)),t)}function Mt(e,t,n=32){let r=n-t,i=~((1<<r)-1);return(e<<t|(i&e)>>>r)>>>0}function Nt(e,t=0,n=e.byteLength,r=0){for(let i=0;i<n;i++)e[t+i]=r}function Pt(e,t,n=`0`){for(;e.length<t;)e=n+e;return e}function Ft(e,t=32){return e instanceof ArrayBuffer?Array.from(new Uint8Array(e)).map(e=>e.toString(16).padStart(2,`0`)).join(``):Pt((e>>>0).toString(16),t/4)}function A(e,t,n,r){return new va(e,t,n,r)}function It(e,t){return function(n){return t(new Zi(e,n))}}function Lt(e){return function(t){return e(new Ji(t))}}function Rt(e){let t=e.getBoundingClientRect(),n=ca(e);return{left:t.left+n.scrollX,top:t.top+n.scrollY,width:t.width,height:t.height}}function zt(e){return typeof e==`number`?`${e}px`:e}function Bt(e){return new wa(e)}function Vt(e,t,n){let r=null,i=null;if(typeof n.value==`function`?(r=`value`,i=n.value,i.length!==0&&console.warn(`Memoize should only be used in functions with zero parameters`)):typeof n.get==`function`&&(r=`get`,i=n.get),!i)throw Error(`not supported`);let a=`$memoize$${t}`;n[r]=function(...e){return this.hasOwnProperty(a)||Object.defineProperty(this,a,{configurable:!1,enumerable:!1,writable:!1,value:i.apply(this,e)}),this[a]}}function Ht(e,t){let n=t-e;return function(t){return e+n*Gt(t)}}function Ut(e,t,n){return function(r){return r<n?e(r/n):t((r-n)/(1-n))}}function Wt(e){return e**3}function Gt(e){return 1-Wt(1-e)}function Kt(e){let t={lazyRender:typeof e.lazyRender<`u`&&e.lazyRender,className:typeof e.className<`u`?e.className:``,useShadows:typeof e.useShadows<`u`?e.useShadows:!0,handleMouseWheel:typeof e.handleMouseWheel<`u`?e.handleMouseWheel:!0,flipAxes:typeof e.flipAxes<`u`&&e.flipAxes,consumeMouseWheelIfScrollbarIsNeeded:typeof e.consumeMouseWheelIfScrollbarIsNeeded<`u`&&e.consumeMouseWheelIfScrollbarIsNeeded,alwaysConsumeMouseWheel:typeof e.alwaysConsumeMouseWheel<`u`&&e.alwaysConsumeMouseWheel,scrollYToX:typeof e.scrollYToX<`u`&&e.scrollYToX,mouseWheelScrollSensitivity:typeof e.mouseWheelScrollSensitivity<`u`?e.mouseWheelScrollSensitivity:1,fastScrollSensitivity:typeof e.fastScrollSensitivity<`u`?e.fastScrollSensitivity:5,scrollPredominantAxis:typeof e.scrollPredominantAxis<`u`?e.scrollPredominantAxis:!0,mouseWheelSmoothScroll:typeof e.mouseWheelSmoothScroll<`u`?e.mouseWheelSmoothScroll:!0,arrowSize:typeof e.arrowSize<`u`?e.arrowSize:11,listenOnDomNode:typeof e.listenOnDomNode<`u`?e.listenOnDomNode:null,horizontal:typeof e.horizontal<`u`?e.horizontal:1,horizontalScrollbarSize:typeof e.horizontalScrollbarSize<`u`?e.horizontalScrollbarSize:10,horizontalSliderSize:typeof e.horizontalSliderSize<`u`?e.horizontalSliderSize:0,horizontalHasArrows:typeof e.horizontalHasArrows<`u`&&e.horizontalHasArrows,vertical:typeof e.vertical<`u`?e.vertical:1,verticalScrollbarSize:typeof e.verticalScrollbarSize<`u`?e.verticalScrollbarSize:10,verticalHasArrows:typeof e.verticalHasArrows<`u`&&e.verticalHasArrows,verticalSliderSize:typeof e.verticalSliderSize<`u`?e.verticalSliderSize:0,scrollByPage:typeof e.scrollByPage<`u`&&e.scrollByPage};return t.horizontalSliderSize=typeof e.horizontalSliderSize<`u`?e.horizontalSliderSize:t.horizontalScrollbarSize,t.verticalSliderSize=typeof e.verticalSliderSize<`u`?e.verticalSliderSize:t.verticalScrollbarSize,Di&&(t.className+=` mac`),t}function qt(e){let t=e.toString(16);return t.length<2?`0`+t:t}function Jt(e,t){return e<t?(t+.05)/(e+.05):(e+.05)/(t+.05)}function Yt(e){return 57508<=e&&e<=57558}function Xt(e){return 9472<=e&&e<=9631}function Zt(e){return Yt(e)||Xt(e)}function Qt(){return{css:{canvas:$t(),cell:$t()},device:{canvas:$t(),cell:$t(),char:{width:0,height:0,left:0,top:0}}}}function $t(){return{width:0,height:0}}function en(e,t,n){for(;e.length<n;)e=t+e;return e}function tn(){return new mo}function nn(e,t,n){let r=n.getBoundingClientRect(),i=e.getComputedStyle(n),a=parseInt(i.getPropertyValue(`padding-left`)),o=parseInt(i.getPropertyValue(`padding-top`));return[t.clientX-r.left-a,t.clientY-r.top-o]}function rn(e,t,n,r,i,a,o,s,c){if(!a)return;let l=nn(e,t,n);if(l)return l[0]=Math.ceil((l[0]+(c?o/2:0))/o),l[1]=Math.ceil(l[1]/s),l[0]=Math.min(Math.max(l[0],1),r+ +!!c),l[1]=Math.min(Math.max(l[1],1),i),l}function an(){if(!Ro)return 0;let e=Po.match(/Version\/(\d+)/);return e===null||e.length<2?0:parseInt(e[1])}function on(e,t,n,r){let i=n.buffer.x,a=n.buffer.y;if(!n.buffer.hasScrollback)return ln(i,a,e,t,n,r)+un(a,t,n,r)+dn(i,a,e,t,n,r);let o;if(a===t)return o=i>e?`D`:`C`,vn(Math.abs(i-e),_n(o,r));o=a>t?`D`:`C`;let s=Math.abs(a-t);return vn(cn(a>t?e:i,n)+(s-1)*n.cols+1+sn(a>t?i:e,n),_n(o,r))}function sn(e,t){return e-1}function cn(e,t){return t.cols-e}function ln(e,t,n,r,i,a){return un(t,r,i,a).length===0?``:vn(gn(e,t,e,t-pn(t,i),!1,i).length,_n(`D`,a))}function un(e,t,n,r){let i=e-pn(e,n),a=t-pn(t,n);return vn(Math.abs(i-a)-fn(e,t,n),_n(hn(e,t),r))}function dn(e,t,n,r,i,a){let o;o=un(t,r,i,a).length>0?r-pn(r,i):t;let s=r,c=mn(e,t,n,r,i,a);return vn(gn(e,o,n,s,c===`C`,i).length,_n(c,a))}function fn(e,t,n){let r=0,i=e-pn(e,n),a=t-pn(t,n);for(let o=0;o<Math.abs(i-a);o++){let a=hn(e,t)===`A`?-1:1;n.buffer.lines.get(i+a*o)?.isWrapped&&r++}return r}function pn(e,t){let n=0,r=t.buffer.lines.get(e),i=r?.isWrapped;for(;i&&e>=0&&e<t.rows;)n++,r=t.buffer.lines.get(--e),i=r?.isWrapped;return n}function mn(e,t,n,r,i,a){let o;return o=un(n,r,i,a).length>0?r-pn(r,i):t,e<n&&o<=r||e>=n&&o<r?`C`:`D`}function hn(e,t){return e>t?`A`:`B`}function gn(e,t,n,r,i,a){let o=e,s=t,c=``;for(;(o!==n||s!==r)&&s>=0&&s<a.buffer.lines.length;)o+=i?1:-1,i&&o>a.cols-1?(c+=a.buffer.translateBufferLineToString(s,!1,e,o),o=0,e=0,s++):!i&&o<0&&(c+=a.buffer.translateBufferLineToString(s,!1,0,e+1),o=a.cols-1,e=o,s--);return c+a.buffer.translateBufferLineToString(s,!1,e,o)}function _n(e,t){let n=t?`O`:`[`;return R.ESC+n+e}function vn(e,t){e=Math.floor(e);let n=``;for(let r=0;r<e;r++)n+=t;return n}function yn(e,t){if(e.start.y>e.end.y)throw Error(`Buffer range end (${e.end.x}, ${e.end.y}) cannot be before start (${e.start.x}, ${e.start.y})`);return t*(e.end.y-e.start.y)+(e.end.x-e.start.x+1)}function j(e,t){if(e!==void 0)try{return G.toColor(e)}catch{}return t}function bn(e,t,n,r,i,a){let o=[];for(let s=0;s<e.length-1;s++){let c=s,l=e.get(++c);if(!l.isWrapped)continue;let u=[e.get(s)];for(;c<e.length&&l.isWrapped;)u.push(l),l=e.get(++c);if(!a&&r>=s&&r<c){s+=u.length-1;continue}let d=0,f=wn(u,d,t),p=1,m=0;for(;p<u.length;){let e=wn(u,p,t),r=e-m,a=n-f,o=Math.min(r,a);u[d].copyCellsFrom(u[p],m,f,o,!1),f+=o,f===n&&(d++,f=0),m+=o,m===e&&(p++,m=0),f===0&&d!==0&&u[d-1].getWidth(n-1)===2&&(u[d].copyCellsFrom(u[d-1],n-1,f++,1,!1),u[d-1].setCell(n-1,i))}u[d].replaceCells(f,n,i);let h=0;for(let e=u.length-1;e>0&&(e>d||u[e].getTrimmedLength()===0);e--)h++;h>0&&(o.push(s+u.length-h),o.push(h)),s+=u.length-1}return o}function xn(e,t){let n=[],r=0,i=t[r],a=0;for(let o=0;o<e.length;o++)if(i===o){let n=t[++r];e.onDeleteEmitter.fire({index:o-a,amount:n}),o+=n-1,a+=n,i=t[++r]}else n.push(o);return{layout:n,countRemoved:a}}function Sn(e,t){let n=[];for(let r=0;r<t.length;r++)n.push(e.get(t[r]));for(let t=0;t<n.length;t++)e.set(t,n[t]);e.length=t.length}function Cn(e,t,n){let r=[],i=e.map((n,r)=>wn(e,r,t)).reduce((e,t)=>e+t),a=0,o=0,s=0;for(;s<i;){if(i-s<n){r.push(i-s);break}a+=n;let c=wn(e,o,t);a>c&&(a-=c,o++);let l=e[o].getWidth(a-1)===2;l&&a--;let u=l?n-1:n;r.push(u),s+=u}return r}function wn(e,t,n){if(t===e.length-1)return e[t].getTrimmedLength();let r=!e[t].hasContent(n-1)&&e[t].getWidth(n-1)===1,i=e[t+1].getWidth(0)===2;return r&&i?n-1:n}function Tn(e){return e===`block`||e===`underline`||e===`bar`}function En(e,t=5){if(typeof e!=`object`)return e;let n=Array.isArray(e)?[]:{};for(let r in e)n[r]=t<=1?e[r]:e[r]&&En(e[r],t-1);return n}function Dn(e,t){let n=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return e.button===4?(n|=64,n|=e.action):(n|=e.button&3,e.button&4&&(n|=64),e.button&8&&(n|=128),e.action===32?n|=32:e.action===0&&!t&&(n|=3)),n}function On(e,t){let n=0,r=t.length-1,i;if(e<t[0][0]||e>t[r][1])return!1;for(;r>=n;)if(i=n+r>>1,e>t[i][1])n=i+1;else if(e<t[i][0])r=i-1;else return!0;return!1}function kn(e){let t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1)?.get(e.cols-1),n=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);n&&t&&(n.isWrapped=t[3]!==0&&t[3]!==32)}function An(e){if(!e)return;let t=e.toLowerCase();if(t.indexOf(`rgb:`)===0){t=t.slice(4);let e=sc.exec(t);if(e){let t=e[1]?15:e[4]?255:e[7]?4095:65535;return[Math.round(parseInt(e[1]||e[4]||e[7]||e[10],16)/t*255),Math.round(parseInt(e[2]||e[5]||e[8]||e[11],16)/t*255),Math.round(parseInt(e[3]||e[6]||e[9]||e[12],16)/t*255)]}}else if(t.indexOf(`#`)===0&&(t=t.slice(1),cc.exec(t)&&[3,6,9,12].includes(t.length))){let e=t.length/3,n=[0,0,0];for(let r=0;r<3;++r){let i=parseInt(t.slice(e*r,e*r+e),16);n[r]=e===1?i<<4:e===2?i:e===3?i>>4:i>>8}return n}}function jn(e,t){let n=e.toString(16),r=n.length<2?`0`+n:n;switch(t){case 4:return n[0];case 8:return r;case 12:return(r+r).slice(0,3);default:return r+r}}function Mn(e,t=16){let[n,r,i]=e;return`rgb:${jn(n,t)}/${jn(r,t)}/${jn(i,t)}`}function Nn(e,t){if(e>24)return t.setWinLines||!1;switch(e){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}function Pn(e){return 0<=e&&e<256}function Fn(e,t,n,r){let i={type:0,cancel:!1,key:void 0},a=+!!e.shiftKey|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:e.key===`UIKeyInputUpArrow`?i.key=t?R.ESC+`OA`:R.ESC+`[A`:e.key===`UIKeyInputLeftArrow`?i.key=t?R.ESC+`OD`:R.ESC+`[D`:e.key===`UIKeyInputRightArrow`?i.key=t?R.ESC+`OC`:R.ESC+`[C`:e.key===`UIKeyInputDownArrow`&&(i.key=t?R.ESC+`OB`:R.ESC+`[B`);break;case 8:i.key=e.ctrlKey?`\b`:R.DEL,e.altKey&&(i.key=R.ESC+i.key);break;case 9:if(e.shiftKey){i.key=R.ESC+`[Z`;break}i.key=R.HT,i.cancel=!0;break;case 13:i.key=e.altKey?R.ESC+R.CR:R.CR,i.cancel=!0;break;case 27:i.key=R.ESC,e.altKey&&(i.key=R.ESC+R.ESC),i.cancel=!0;break;case 37:if(e.metaKey)break;i.key=a?R.ESC+`[1;`+(a+1)+`D`:t?R.ESC+`OD`:R.ESC+`[D`;break;case 39:if(e.metaKey)break;i.key=a?R.ESC+`[1;`+(a+1)+`C`:t?R.ESC+`OC`:R.ESC+`[C`;break;case 38:if(e.metaKey)break;i.key=a?R.ESC+`[1;`+(a+1)+`A`:t?R.ESC+`OA`:R.ESC+`[A`;break;case 40:if(e.metaKey)break;i.key=a?R.ESC+`[1;`+(a+1)+`B`:t?R.ESC+`OB`:R.ESC+`[B`;break;case 45:!e.shiftKey&&!e.ctrlKey&&(i.key=R.ESC+`[2~`);break;case 46:i.key=a?R.ESC+`[3;`+(a+1)+`~`:R.ESC+`[3~`;break;case 36:i.key=a?R.ESC+`[1;`+(a+1)+`H`:t?R.ESC+`OH`:R.ESC+`[H`;break;case 35:i.key=a?R.ESC+`[1;`+(a+1)+`F`:t?R.ESC+`OF`:R.ESC+`[F`;break;case 33:e.shiftKey?i.type=2:i.key=e.ctrlKey?R.ESC+`[5;`+(a+1)+`~`:R.ESC+`[5~`;break;case 34:e.shiftKey?i.type=3:i.key=e.ctrlKey?R.ESC+`[6;`+(a+1)+`~`:R.ESC+`[6~`;break;case 112:i.key=a?R.ESC+`[1;`+(a+1)+`P`:R.ESC+`OP`;break;case 113:i.key=a?R.ESC+`[1;`+(a+1)+`Q`:R.ESC+`OQ`;break;case 114:i.key=a?R.ESC+`[1;`+(a+1)+`R`:R.ESC+`OR`;break;case 115:i.key=a?R.ESC+`[1;`+(a+1)+`S`:R.ESC+`OS`;break;case 116:i.key=a?R.ESC+`[15;`+(a+1)+`~`:R.ESC+`[15~`;break;case 117:i.key=a?R.ESC+`[17;`+(a+1)+`~`:R.ESC+`[17~`;break;case 118:i.key=a?R.ESC+`[18;`+(a+1)+`~`:R.ESC+`[18~`;break;case 119:i.key=a?R.ESC+`[19;`+(a+1)+`~`:R.ESC+`[19~`;break;case 120:i.key=a?R.ESC+`[20;`+(a+1)+`~`:R.ESC+`[20~`;break;case 121:i.key=a?R.ESC+`[21;`+(a+1)+`~`:R.ESC+`[21~`;break;case 122:i.key=a?R.ESC+`[23;`+(a+1)+`~`:R.ESC+`[23~`;break;case 123:i.key=a?R.ESC+`[24;`+(a+1)+`~`:R.ESC+`[24~`;break;default:if(e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey)e.keyCode>=65&&e.keyCode<=90?i.key=String.fromCharCode(e.keyCode-64):e.keyCode===32?i.key=R.NUL:e.keyCode>=51&&e.keyCode<=55?i.key=String.fromCharCode(e.keyCode-51+27):e.keyCode===56?i.key=R.DEL:e.keyCode===219?i.key=R.ESC:e.keyCode===220?i.key=R.FS:e.keyCode===221&&(i.key=R.GS);else if((!n||r)&&e.altKey&&!e.metaKey){let t=Cc[e.keyCode]?.[+!!e.shiftKey];if(t)i.key=R.ESC+t;else if(e.keyCode>=65&&e.keyCode<=90){let t=e.ctrlKey?e.keyCode-64:e.keyCode+32,n=String.fromCharCode(t);e.shiftKey&&(n=n.toUpperCase()),i.key=R.ESC+n}else if(e.keyCode===32)i.key=R.ESC+(e.ctrlKey?R.NUL:` `);else if(e.key===`Dead`&&e.code.startsWith(`Key`)){let t=e.code.slice(3,4);e.shiftKey||(t=t.toLowerCase()),i.key=R.ESC+t,i.cancel=!0}}else n&&!e.altKey&&!e.ctrlKey&&!e.shiftKey&&e.metaKey?e.keyCode===65&&(i.type=1):e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&e.key.length===1?i.key=e.key:e.key&&e.ctrlKey&&(e.key===`_`&&(i.key=R.US),e.key===`@`&&(i.key=R.NUL))}return i}function In(e,t){return e.text===t.text&&e.range.start.x===t.range.start.x&&e.range.start.y===t.range.start.y&&e.range.end.x===t.range.end.x&&e.range.end.y===t.range.end.y}function Ln(e){return e.keyCode===16||e.keyCode===17||e.keyCode===18}var Rn,zn,Bn,M,N,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr,yr,br,xr,Sr,Cr,wr,Tr,Er,Dr,Or,kr,Ar,jr,Mr,Nr,Pr,Fr,Ir,P,Lr,Rr,zr,F,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,ti,ni,ri,ii,ai,I,oi,si,ci,li,ui,di,fi,pi,mi,hi,gi,_i,vi,yi,bi,xi,Si,Ci,wi,Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Ni,Pi,Fi,Ii,Li,Ri,zi,Bi,Vi,Hi,Ui,Wi,Gi,Ki,qi,Ji,Yi,Xi,Zi,Qi,$i,ea,ta,na,ra,ia,aa,oa,sa,ca,la,ua,da,fa,pa,ma,ha,ga,_a,va,ya,ba,xa,Sa,Ca,L,wa,Ta,Ea,Da,Oa,ka,Aa,ja,Ma,Na,Pa,Fa,Ia,La,Ra,za,Ba,Va,Ha,Ua,Wa,Ga,Ka,qa,Ja,Ya,Xa,Za,Qa,$a,eo,to,no,R,ro,io,ao,z,B,V,H,oo,U,W,G,so,co,lo,uo,fo,po,mo,ho,go,_o,vo,yo,bo,xo,So,Co,wo,To,Eo,Do,Oo,ko,Ao,jo,Mo,No,Po,Fo,Io,Lo,Ro,zo,Bo,Vo,Ho,Uo,Wo,Go,Ko,qo,Jo,Yo,Xo,Zo,Qo,$o,es,ts,ns,rs,is,as,os,K,ss,cs,ls,us,ds,fs,ps,ms,hs,gs,_s,vs,ys,q,J,bs,xs,Ss,Cs,ws,Y,Ts,Es,Ds,Os,ks,As,js,Ms,Ns,Ps,Fs,Is,Ls,Rs,zs,Bs,Vs,Hs,Us,X,Ws,Gs,Ks,qs,Js,Ys,Xs,Zs,Qs,$s,ec,tc,nc,rc,ic,ac,oc,sc,cc,lc,uc,dc,fc,pc,mc,hc,gc,_c,vc,yc,bc,xc,Sc,Cc,Z,wc,Tc,Ec,Dc,Oc,kc,Ac,jc,Mc,Nc,Pc,Fc,Ic,Lc,Rc,zc,Bc,Vc,Hc,Uc,Wc;function Gc(){return(Gc=e((()=>{if(Rn=Object.defineProperty,zn=Object.getOwnPropertyDescriptor,Bn=(e,t)=>{for(var n in t)Rn(e,n,{get:t[n],enumerable:!0})},M=(e,t,n,r)=>{for(var i=r>1?void 0:r?zn(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&Rn(t,n,i),i},N=(e,t)=>(n,r)=>t(n,r,e),Vn=`Terminal input`,Hn={get:()=>Vn,set:e=>Vn=e},Un=`Too much output to announce, navigate to rows manually to read`,Wn={get:()=>Un,set:e=>Un=e},Gn=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o)}else i!==65279&&(t[r++]=i)}return r}},Kn=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128||(c=(i&31)<<6|a&63,c<128)){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},qn=``,Jn=` `,Yn=class e{constructor(){this.fg=0,this.bg=0,this.extended=new Xn}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return!(this.fg&50331648)}isBgDefault(){return!(this.bg&50331648)}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?!(this.extended.underlineColor&50331648):this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},Xn=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},Zn=class e extends Yn{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new Xn,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?Xe(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},Qn=`di$target`,$n=`di$dependencies`,er=new Map,tr=O(`BufferService`),nr=O(`CoreMouseService`),rr=O(`CoreService`),ir=O(`CharsetService`),ar=O(`InstantiationService`),or=O(`LogService`),sr=O(`OptionsService`),cr=O(`OscLinkService`),lr=O(`UnicodeService`),ur=O(`DecorationService`),dr=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new Zn,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(c!==-1||n.hasContent(t)){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId){if(c===-1){c=t,s=a.extended.urlId;continue}l=a.extended.urlId!==s}else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+ +(!l&&t===o-1),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):et(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}},dr=M([N(0,tr),N(1,sr),N(2,cr)],dr),fr=O(`CharSizeService`),pr=O(`CoreBrowserService`),mr=O(`MouseService`),hr=O(`RenderService`),gr=O(`SelectionService`),_r=O(`CharacterJoinerService`),vr=O(`ThemeService`),yr=O(`LinkProviderService`),br=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?wr.isErrorNoTelemetry(e)?new wr(e.message+`
|
|
4
4
|
|