@omnitron-dev/omnitron 0.3.1 → 0.3.2
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 +575 -0
- package/data/operations/managed-kernel.mjs +302 -0
- package/data/operations/stage-kernel.mjs +125 -0
- package/dist/BUILD.json +4 -3
- package/dist/cli/exit-after-output.d.ts +3 -0
- package/dist/cli/exit-after-output.d.ts.map +1 -0
- package/dist/cli/exit-after-output.js +11 -0
- package/dist/cli/exit-after-output.js.map +1 -0
- package/dist/cli/installed.d.ts +3 -0
- package/dist/cli/installed.d.ts.map +1 -0
- package/dist/cli/installed.js +17 -0
- package/dist/cli/installed.js.map +1 -0
- package/dist/cli/omnitron.js +432 -100
- package/dist/cli/omnitron.js.map +1 -1
- package/dist/cli/output-command.d.ts +13 -0
- package/dist/cli/output-command.d.ts.map +1 -0
- package/dist/cli/output-command.js +48 -0
- package/dist/cli/output-command.js.map +1 -0
- package/dist/cluster/cluster.rpc-service.d.ts +9 -77
- package/dist/cluster/cluster.rpc-service.d.ts.map +1 -1
- package/dist/cluster/cluster.rpc-service.js +20 -107
- package/dist/cluster/cluster.rpc-service.js.map +1 -1
- package/dist/cluster/enrollment.d.ts +9 -0
- package/dist/cluster/enrollment.d.ts.map +1 -0
- package/dist/cluster/enrollment.js +49 -0
- package/dist/cluster/enrollment.js.map +1 -0
- package/dist/cluster/index.d.ts +1 -1
- package/dist/cluster/index.d.ts.map +1 -1
- package/dist/cluster/leader-election.d.ts +39 -211
- package/dist/cluster/leader-election.d.ts.map +1 -1
- package/dist/cluster/leader-election.js +235 -512
- package/dist/cluster/leader-election.js.map +1 -1
- package/dist/cluster/mesh-link.d.ts +18 -51
- package/dist/cluster/mesh-link.d.ts.map +1 -1
- package/dist/cluster/mesh-link.js +65 -77
- package/dist/cluster/mesh-link.js.map +1 -1
- package/dist/cluster/mesh.d.ts +3 -1
- package/dist/cluster/mesh.d.ts.map +1 -1
- package/dist/cluster/mesh.js +76 -60
- package/dist/cluster/mesh.js.map +1 -1
- package/dist/cluster/slave-connector.d.ts +40 -4
- package/dist/cluster/slave-connector.d.ts.map +1 -1
- package/dist/cluster/slave-connector.js +348 -195
- package/dist/cluster/slave-connector.js.map +1 -1
- package/dist/cluster/standalone-infrastructure.d.ts +3 -0
- package/dist/cluster/standalone-infrastructure.d.ts.map +1 -0
- package/dist/cluster/standalone-infrastructure.js +25 -0
- package/dist/cluster/standalone-infrastructure.js.map +1 -0
- package/dist/cluster/stop-authority.d.ts +45 -0
- package/dist/cluster/stop-authority.d.ts.map +1 -0
- package/dist/cluster/stop-authority.js +112 -0
- package/dist/cluster/stop-authority.js.map +1 -0
- package/dist/commands/access.d.ts +9 -0
- package/dist/commands/access.d.ts.map +1 -0
- package/dist/commands/access.js +45 -0
- package/dist/commands/access.js.map +1 -0
- package/dist/commands/audit.d.ts +2 -0
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +9 -4
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/backend.d.ts +17 -0
- package/dist/commands/backend.d.ts.map +1 -0
- package/dist/commands/backend.js +264 -0
- package/dist/commands/backend.js.map +1 -0
- package/dist/commands/backup.d.ts +5 -0
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +17 -2
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/cluster.d.ts.map +1 -1
- package/dist/commands/cluster.js +33 -42
- package/dist/commands/cluster.js.map +1 -1
- package/dist/commands/daemon-cmd.d.ts.map +1 -1
- package/dist/commands/daemon-cmd.js +14 -3
- package/dist/commands/daemon-cmd.js.map +1 -1
- package/dist/commands/doctor.d.ts +11 -29
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +47 -45
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/files.d.ts +19 -0
- package/dist/commands/files.d.ts.map +1 -0
- package/dist/commands/files.js +226 -0
- package/dist/commands/files.js.map +1 -0
- package/dist/commands/fleet-rollout.d.ts +25 -0
- package/dist/commands/fleet-rollout.d.ts.map +1 -0
- package/dist/commands/fleet-rollout.js +155 -0
- package/dist/commands/fleet-rollout.js.map +1 -0
- package/dist/commands/fleet.d.ts.map +1 -1
- package/dist/commands/fleet.js +1 -0
- package/dist/commands/fleet.js.map +1 -1
- package/dist/commands/health-check.d.ts.map +1 -1
- package/dist/commands/health-check.js +13 -6
- package/dist/commands/health-check.js.map +1 -1
- package/dist/commands/infra.d.ts +5 -2
- package/dist/commands/infra.d.ts.map +1 -1
- package/dist/commands/infra.js +145 -53
- package/dist/commands/infra.js.map +1 -1
- package/dist/commands/logs.d.ts +6 -23
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +114 -38
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +7 -1
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/migrate.d.ts +8 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +64 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/node-reconcile.d.ts +8 -0
- package/dist/commands/node-reconcile.d.ts.map +1 -0
- package/dist/commands/node-reconcile.js +49 -0
- package/dist/commands/node-reconcile.js.map +1 -0
- package/dist/commands/node.d.ts +0 -8
- package/dist/commands/node.d.ts.map +1 -1
- package/dist/commands/node.js +32 -35
- package/dist/commands/node.js.map +1 -1
- package/dist/commands/output.d.ts +3 -9
- package/dist/commands/output.d.ts.map +1 -1
- package/dist/commands/output.js +34 -25
- package/dist/commands/output.js.map +1 -1
- package/dist/commands/pipeline.d.ts +11 -2
- package/dist/commands/pipeline.d.ts.map +1 -1
- package/dist/commands/pipeline.js +75 -15
- package/dist/commands/pipeline.js.map +1 -1
- package/dist/commands/project.d.ts +8 -0
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +67 -1
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/release-store.js +1 -1
- package/dist/commands/release-store.js.map +1 -1
- package/dist/commands/release.d.ts +5 -12
- package/dist/commands/release.d.ts.map +1 -1
- package/dist/commands/release.js +141 -33
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/scale.d.ts +1 -4
- package/dist/commands/scale.d.ts.map +1 -1
- package/dist/commands/scale.js +39 -19
- package/dist/commands/scale.js.map +1 -1
- package/dist/commands/secret-input.d.ts +3 -0
- package/dist/commands/secret-input.d.ts.map +1 -0
- package/dist/commands/secret-input.js +36 -0
- package/dist/commands/secret-input.js.map +1 -0
- package/dist/commands/secret.d.ts +4 -2
- package/dist/commands/secret.d.ts.map +1 -1
- package/dist/commands/secret.js +12 -2
- package/dist/commands/secret.js.map +1 -1
- package/dist/commands/service-resident.d.ts +25 -0
- package/dist/commands/service-resident.d.ts.map +1 -0
- package/dist/commands/service-resident.js +236 -0
- package/dist/commands/service-resident.js.map +1 -0
- package/dist/commands/service-units.d.ts +13 -1
- package/dist/commands/service-units.d.ts.map +1 -1
- package/dist/commands/service-units.js +38 -16
- package/dist/commands/service-units.js.map +1 -1
- package/dist/commands/service.d.ts +2 -24
- package/dist/commands/service.d.ts.map +1 -1
- package/dist/commands/service.js +89 -7
- package/dist/commands/service.js.map +1 -1
- package/dist/commands/stack.d.ts +11 -6
- package/dist/commands/stack.d.ts.map +1 -1
- package/dist/commands/stack.js +212 -38
- package/dist/commands/stack.js.map +1 -1
- package/dist/commands/start.d.ts +0 -21
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +33 -43
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts +1 -5
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +5 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts +0 -22
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +26 -86
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/system.d.ts +4 -0
- package/dist/commands/system.d.ts.map +1 -0
- package/dist/commands/system.js +41 -0
- package/dist/commands/system.js.map +1 -0
- package/dist/commands/terminal.d.ts +7 -0
- package/dist/commands/terminal.d.ts.map +1 -0
- package/dist/commands/terminal.js +184 -0
- package/dist/commands/terminal.js.map +1 -0
- package/dist/commands/topology.d.ts +3 -0
- package/dist/commands/topology.d.ts.map +1 -0
- package/dist/commands/topology.js +107 -0
- package/dist/commands/topology.js.map +1 -0
- package/dist/commands/up.d.ts +4 -54
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +41 -98
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/webapp.d.ts +0 -9
- package/dist/commands/webapp.d.ts.map +1 -1
- package/dist/commands/webapp.js +116 -69
- package/dist/commands/webapp.js.map +1 -1
- package/dist/config/app-path.d.ts +4 -0
- package/dist/config/app-path.d.ts.map +1 -0
- package/dist/config/app-path.js +6 -0
- package/dist/config/app-path.js.map +1 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +9 -3
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/define-ecosystem.d.ts.map +1 -1
- package/dist/config/define-ecosystem.js +12 -0
- package/dist/config/define-ecosystem.js.map +1 -1
- package/dist/config/index.d.ts +3 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/loader-child.d.ts +2 -0
- package/dist/config/loader-child.d.ts.map +1 -0
- package/dist/config/loader-child.js +56 -0
- package/dist/config/loader-child.js.map +1 -0
- package/dist/config/loader.d.ts +7 -2
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +14 -27
- package/dist/config/loader.js.map +1 -1
- package/dist/config/saved.d.ts +67 -0
- package/dist/config/saved.d.ts.map +1 -0
- package/dist/config/saved.js +81 -0
- package/dist/config/saved.js.map +1 -0
- package/dist/config/types.d.ts +96 -52
- package/dist/config/types.d.ts.map +1 -1
- package/dist/daemon/backend-candidate.d.ts +32 -0
- package/dist/daemon/backend-candidate.d.ts.map +1 -0
- package/dist/daemon/backend-candidate.js +129 -0
- package/dist/daemon/backend-candidate.js.map +1 -0
- package/dist/daemon/backend-child.d.ts +5 -0
- package/dist/daemon/backend-child.d.ts.map +1 -0
- package/dist/daemon/backend-child.js +13 -0
- package/dist/daemon/backend-child.js.map +1 -0
- package/dist/daemon/backend-control.d.ts +43 -0
- package/dist/daemon/backend-control.d.ts.map +1 -0
- package/dist/daemon/backend-control.js +155 -0
- package/dist/daemon/backend-control.js.map +1 -0
- package/dist/daemon/backend-crash-recovery.d.ts +4 -0
- package/dist/daemon/backend-crash-recovery.d.ts.map +1 -0
- package/dist/daemon/backend-crash-recovery.js +136 -0
- package/dist/daemon/backend-crash-recovery.js.map +1 -0
- package/dist/daemon/backend-handoff-types.d.ts +27 -0
- package/dist/daemon/backend-handoff-types.d.ts.map +1 -0
- package/dist/daemon/backend-handoff-types.js +33 -0
- package/dist/daemon/backend-handoff-types.js.map +1 -0
- package/dist/daemon/backend-recovery-journal.d.ts +30 -0
- package/dist/daemon/backend-recovery-journal.d.ts.map +1 -0
- package/dist/daemon/backend-recovery-journal.js +67 -0
- package/dist/daemon/backend-recovery-journal.js.map +1 -0
- package/dist/daemon/backend-recovery-monitor.d.ts +35 -0
- package/dist/daemon/backend-recovery-monitor.d.ts.map +1 -0
- package/dist/daemon/backend-recovery-monitor.js +113 -0
- package/dist/daemon/backend-recovery-monitor.js.map +1 -0
- package/dist/daemon/backend-supervisor-entry.d.ts +2 -0
- package/dist/daemon/backend-supervisor-entry.d.ts.map +1 -0
- package/dist/daemon/backend-supervisor-entry.js +3 -0
- package/dist/daemon/backend-supervisor-entry.js.map +1 -0
- package/dist/daemon/backend-supervisor-main.d.ts +2 -0
- package/dist/daemon/backend-supervisor-main.d.ts.map +1 -0
- package/dist/daemon/backend-supervisor-main.js +45 -0
- package/dist/daemon/backend-supervisor-main.js.map +1 -0
- package/dist/daemon/backend-supervisor.d.ts +61 -0
- package/dist/daemon/backend-supervisor.d.ts.map +1 -0
- package/dist/daemon/backend-supervisor.js +339 -0
- package/dist/daemon/backend-supervisor.js.map +1 -0
- package/dist/daemon/backend-upgrade.d.ts +41 -0
- package/dist/daemon/backend-upgrade.d.ts.map +1 -0
- package/dist/daemon/backend-upgrade.js +444 -0
- package/dist/daemon/backend-upgrade.js.map +1 -0
- package/dist/daemon/backend.rpc-service.d.ts +11 -0
- package/dist/daemon/backend.rpc-service.d.ts.map +1 -0
- package/dist/daemon/backend.rpc-service.js +44 -0
- package/dist/daemon/backend.rpc-service.js.map +1 -0
- package/dist/daemon/daemon-client.d.ts +12 -79
- package/dist/daemon/daemon-client.d.ts.map +1 -1
- package/dist/daemon/daemon-client.js +28 -270
- package/dist/daemon/daemon-client.js.map +1 -1
- package/dist/daemon/daemon-entry.d.ts +0 -7
- package/dist/daemon/daemon-entry.d.ts.map +1 -1
- package/dist/daemon/daemon-entry.js +2 -115
- package/dist/daemon/daemon-entry.js.map +1 -1
- package/dist/daemon/daemon-main.d.ts +9 -0
- package/dist/daemon/daemon-main.d.ts.map +1 -0
- package/dist/daemon/daemon-main.js +105 -0
- package/dist/daemon/daemon-main.js.map +1 -0
- package/dist/daemon/daemon-scheduler.d.ts +8 -5
- package/dist/daemon/daemon-scheduler.d.ts.map +1 -1
- package/dist/daemon/daemon-scheduler.js +45 -73
- package/dist/daemon/daemon-scheduler.js.map +1 -1
- package/dist/daemon/daemon-state-store.service.d.ts +5 -39
- package/dist/daemon/daemon-state-store.service.d.ts.map +1 -1
- package/dist/daemon/daemon-state-store.service.js +30 -17
- package/dist/daemon/daemon-state-store.service.js.map +1 -1
- package/dist/daemon/daemon.d.ts +45 -60
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +720 -396
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/daemon.module.d.ts +13 -11
- package/dist/daemon/daemon.module.d.ts.map +1 -1
- package/dist/daemon/daemon.module.js +136 -101
- package/dist/daemon/daemon.module.js.map +1 -1
- package/dist/daemon/daemon.rpc-service.d.ts +9 -17
- package/dist/daemon/daemon.rpc-service.d.ts.map +1 -1
- package/dist/daemon/daemon.rpc-service.js +83 -22
- package/dist/daemon/daemon.rpc-service.js.map +1 -1
- package/dist/daemon/darwin-owner-evidence.d.ts +57 -0
- package/dist/daemon/darwin-owner-evidence.d.ts.map +1 -0
- package/dist/daemon/darwin-owner-evidence.js +131 -0
- package/dist/daemon/darwin-owner-evidence.js.map +1 -0
- package/dist/daemon/database-startup.d.ts +7 -0
- package/dist/daemon/database-startup.d.ts.map +1 -0
- package/dist/daemon/database-startup.js +40 -0
- package/dist/daemon/database-startup.js.map +1 -0
- package/dist/daemon/entry-guard.d.ts +2 -0
- package/dist/daemon/entry-guard.d.ts.map +1 -0
- package/dist/daemon/entry-guard.js +34 -0
- package/dist/daemon/entry-guard.js.map +1 -0
- package/dist/daemon/execution-capabilities.d.ts +7 -0
- package/dist/daemon/execution-capabilities.d.ts.map +1 -0
- package/dist/daemon/execution-capabilities.js +23 -0
- package/dist/daemon/execution-capabilities.js.map +1 -0
- package/dist/daemon/execution-client.d.ts +88 -0
- package/dist/daemon/execution-client.d.ts.map +1 -0
- package/dist/daemon/execution-client.js +433 -0
- package/dist/daemon/execution-client.js.map +1 -0
- package/dist/daemon/execution-config.d.ts +7 -0
- package/dist/daemon/execution-config.d.ts.map +1 -0
- package/dist/daemon/execution-config.js +61 -0
- package/dist/daemon/execution-config.js.map +1 -0
- package/dist/daemon/execution-entry.d.ts +2 -0
- package/dist/daemon/execution-entry.d.ts.map +1 -0
- package/dist/daemon/execution-entry.js +3 -0
- package/dist/daemon/execution-entry.js.map +1 -0
- package/dist/daemon/execution-host.d.ts +133 -0
- package/dist/daemon/execution-host.d.ts.map +1 -0
- package/dist/daemon/execution-host.js +308 -0
- package/dist/daemon/execution-host.js.map +1 -0
- package/dist/daemon/execution-journal.d.ts +17 -0
- package/dist/daemon/execution-journal.d.ts.map +1 -0
- package/dist/daemon/execution-journal.js +75 -0
- package/dist/daemon/execution-journal.js.map +1 -0
- package/dist/daemon/execution-launcher.d.ts +12 -0
- package/dist/daemon/execution-launcher.d.ts.map +1 -0
- package/dist/daemon/execution-launcher.js +110 -0
- package/dist/daemon/execution-launcher.js.map +1 -0
- package/dist/daemon/execution-main.d.ts +2 -0
- package/dist/daemon/execution-main.d.ts.map +1 -0
- package/dist/daemon/execution-main.js +48 -0
- package/dist/daemon/execution-main.js.map +1 -0
- package/dist/daemon/execution-owner.d.ts +16 -0
- package/dist/daemon/execution-owner.d.ts.map +1 -0
- package/dist/daemon/execution-owner.js +97 -0
- package/dist/daemon/execution-owner.js.map +1 -0
- package/dist/daemon/execution-platform.d.ts +3 -0
- package/dist/daemon/execution-platform.d.ts.map +1 -0
- package/dist/daemon/execution-platform.js +23 -0
- package/dist/daemon/execution-platform.js.map +1 -0
- package/dist/daemon/execution-shutdown.d.ts +13 -0
- package/dist/daemon/execution-shutdown.d.ts.map +1 -0
- package/dist/daemon/execution-shutdown.js +30 -0
- package/dist/daemon/execution-shutdown.js.map +1 -0
- package/dist/daemon/managed-entry.d.ts +2 -0
- package/dist/daemon/managed-entry.d.ts.map +1 -0
- package/dist/daemon/managed-entry.js +3 -0
- package/dist/daemon/managed-entry.js.map +1 -0
- package/dist/daemon/managed-main.d.ts +2 -0
- package/dist/daemon/managed-main.d.ts.map +1 -0
- package/dist/daemon/managed-main.js +29 -0
- package/dist/daemon/managed-main.js.map +1 -0
- package/dist/daemon/managed-owner-build.d.ts +17 -0
- package/dist/daemon/managed-owner-build.d.ts.map +1 -0
- package/dist/daemon/managed-owner-build.js +108 -0
- package/dist/daemon/managed-owner-build.js.map +1 -0
- package/dist/daemon/managed-owner-entry.d.ts +2 -0
- package/dist/daemon/managed-owner-entry.d.ts.map +1 -0
- package/dist/daemon/managed-owner-entry.js +3 -0
- package/dist/daemon/managed-owner-entry.js.map +1 -0
- package/dist/daemon/managed-owner-main.d.ts +2 -0
- package/dist/daemon/managed-owner-main.d.ts.map +1 -0
- package/dist/daemon/managed-owner-main.js +53 -0
- package/dist/daemon/managed-owner-main.js.map +1 -0
- package/dist/daemon/managed-runtime.d.ts +39 -0
- package/dist/daemon/managed-runtime.d.ts.map +1 -0
- package/dist/daemon/managed-runtime.js +137 -0
- package/dist/daemon/managed-runtime.js.map +1 -0
- package/dist/daemon/network-publication.d.ts +5 -0
- package/dist/daemon/network-publication.d.ts.map +1 -0
- package/dist/daemon/network-publication.js +25 -0
- package/dist/daemon/network-publication.js.map +1 -0
- package/dist/daemon/owner-reconciliation.d.ts +58 -0
- package/dist/daemon/owner-reconciliation.d.ts.map +1 -0
- package/dist/daemon/owner-reconciliation.js +265 -0
- package/dist/daemon/owner-reconciliation.js.map +1 -0
- package/dist/daemon/pid-manager.d.ts +2 -0
- package/dist/daemon/pid-manager.d.ts.map +1 -1
- package/dist/daemon/pid-manager.js +5 -0
- package/dist/daemon/pid-manager.js.map +1 -1
- package/dist/daemon/private-control-client.d.ts +8 -0
- package/dist/daemon/private-control-client.d.ts.map +1 -0
- package/dist/daemon/private-control-client.js +41 -0
- package/dist/daemon/private-control-client.js.map +1 -0
- package/dist/daemon/recovery-state.d.ts +20 -0
- package/dist/daemon/recovery-state.d.ts.map +1 -0
- package/dist/daemon/recovery-state.js +53 -0
- package/dist/daemon/recovery-state.js.map +1 -0
- package/dist/daemon/rpc-connection.d.ts +29 -0
- package/dist/daemon/rpc-connection.d.ts.map +1 -0
- package/dist/daemon/rpc-connection.js +137 -0
- package/dist/daemon/rpc-connection.js.map +1 -0
- package/dist/daemon/runtime-installation.d.ts +58 -0
- package/dist/daemon/runtime-installation.d.ts.map +1 -0
- package/dist/daemon/runtime-installation.js +346 -0
- package/dist/daemon/runtime-installation.js.map +1 -0
- package/dist/daemon/runtime-launcher.d.ts +6 -0
- package/dist/daemon/runtime-launcher.d.ts.map +1 -0
- package/dist/daemon/runtime-launcher.js +45 -0
- package/dist/daemon/runtime-launcher.js.map +1 -0
- package/dist/daemon/schema-transition.d.ts +43 -0
- package/dist/daemon/schema-transition.d.ts.map +1 -0
- package/dist/daemon/schema-transition.js +239 -0
- package/dist/daemon/schema-transition.js.map +1 -0
- package/dist/daemon/spawn-daemon.d.ts +2 -0
- package/dist/daemon/spawn-daemon.d.ts.map +1 -1
- package/dist/daemon/spawn-daemon.js +4 -0
- package/dist/daemon/spawn-daemon.js.map +1 -1
- package/dist/daemon/startup-config.d.ts +77 -0
- package/dist/daemon/startup-config.d.ts.map +1 -0
- package/dist/daemon/startup-config.js +31 -0
- package/dist/daemon/startup-config.js.map +1 -0
- package/dist/daemon/startup-failure-journal.d.ts +3 -0
- package/dist/daemon/startup-failure-journal.d.ts.map +1 -0
- package/dist/daemon/startup-failure-journal.js +29 -0
- package/dist/daemon/startup-failure-journal.js.map +1 -0
- package/dist/daemon/state-store.d.ts +16 -24
- package/dist/daemon/state-store.d.ts.map +1 -1
- package/dist/daemon/state-store.js +51 -9
- package/dist/daemon/state-store.js.map +1 -1
- package/dist/daemon/supervisor-transition.d.ts +101 -0
- package/dist/daemon/supervisor-transition.d.ts.map +1 -0
- package/dist/daemon/supervisor-transition.js +503 -0
- package/dist/daemon/supervisor-transition.js.map +1 -0
- package/dist/daemon/system-guardian-cgroup.d.ts +16 -0
- package/dist/daemon/system-guardian-cgroup.d.ts.map +1 -0
- package/dist/daemon/system-guardian-cgroup.js +202 -0
- package/dist/daemon/system-guardian-cgroup.js.map +1 -0
- package/dist/daemon/system-guardian-unit.d.ts +9 -0
- package/dist/daemon/system-guardian-unit.d.ts.map +1 -0
- package/dist/daemon/system-guardian-unit.js +41 -0
- package/dist/daemon/system-guardian-unit.js.map +1 -0
- package/dist/database/connection.d.ts.map +1 -1
- package/dist/database/connection.js +2 -6
- package/dist/database/connection.js.map +1 -1
- package/dist/database/log-durability.d.ts +5 -0
- package/dist/database/log-durability.d.ts.map +1 -0
- package/dist/database/log-durability.js +28 -0
- package/dist/database/log-durability.js.map +1 -0
- package/dist/database/migrate.js +2 -15
- package/dist/database/migrate.js.map +1 -1
- package/dist/database/migration-registry-compatibility.d.ts +13 -0
- package/dist/database/migration-registry-compatibility.d.ts.map +1 -0
- package/dist/database/migration-registry-compatibility.js +108 -0
- package/dist/database/migration-registry-compatibility.js.map +1 -0
- package/dist/database/migration-runner.d.ts +8 -42
- package/dist/database/migration-runner.d.ts.map +1 -1
- package/dist/database/migration-runner.js +114 -123
- package/dist/database/migration-runner.js.map +1 -1
- package/dist/database/migrations/014_replication_receipts.d.ts +5 -0
- package/dist/database/migrations/014_replication_receipts.d.ts.map +1 -0
- package/dist/database/migrations/014_replication_receipts.js +6 -0
- package/dist/database/migrations/014_replication_receipts.js.map +1 -0
- package/dist/database/migrations/015_persistent_metrics.d.ts +5 -0
- package/dist/database/migrations/015_persistent_metrics.d.ts.map +1 -0
- package/dist/database/migrations/015_persistent_metrics.js +7 -0
- package/dist/database/migrations/015_persistent_metrics.js.map +1 -0
- package/dist/database/migrations/016_cluster_lease.d.ts +4 -0
- package/dist/database/migrations/016_cluster_lease.d.ts.map +1 -0
- package/dist/database/migrations/016_cluster_lease.js +6 -0
- package/dist/database/migrations/016_cluster_lease.js.map +1 -0
- package/dist/database/migrations/index.d.ts +1 -1
- package/dist/database/migrations/index.d.ts.map +1 -1
- package/dist/database/migrations/index.js +22 -13
- package/dist/database/migrations/index.js.map +1 -1
- package/dist/database/schema-compatibility.d.ts +34 -0
- package/dist/database/schema-compatibility.d.ts.map +1 -0
- package/dist/database/schema-compatibility.js +109 -0
- package/dist/database/schema-compatibility.js.map +1 -0
- package/dist/database/schema-expansion-policy.d.ts +10 -0
- package/dist/database/schema-expansion-policy.d.ts.map +1 -0
- package/dist/database/schema-expansion-policy.js +21 -0
- package/dist/database/schema-expansion-policy.js.map +1 -0
- package/dist/database/schema-transition-plan.d.ts +53 -0
- package/dist/database/schema-transition-plan.d.ts.map +1 -0
- package/dist/database/schema-transition-plan.js +102 -0
- package/dist/database/schema-transition-plan.js.map +1 -0
- package/dist/database/schema-worker.d.ts +2 -0
- package/dist/database/schema-worker.d.ts.map +1 -0
- package/dist/database/schema-worker.js +55 -0
- package/dist/database/schema-worker.js.map +1 -0
- package/dist/database/schema.d.ts +6 -1
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/slave-migrations/001_replication_evidence.d.ts +4 -0
- package/dist/database/slave-migrations/001_replication_evidence.d.ts.map +1 -0
- package/dist/database/slave-migrations/001_replication_evidence.js +89 -0
- package/dist/database/slave-migrations/001_replication_evidence.js.map +1 -0
- package/dist/database/slave-migrations/index.d.ts +6 -0
- package/dist/database/slave-migrations/index.d.ts.map +1 -0
- package/dist/database/slave-migrations/index.js +10 -0
- package/dist/database/slave-migrations/index.js.map +1 -0
- package/dist/diagnostics/index.d.ts +16 -0
- package/dist/diagnostics/index.d.ts.map +1 -0
- package/dist/diagnostics/index.js +22 -0
- package/dist/diagnostics/index.js.map +1 -0
- package/dist/execution/command-failure.d.ts +7 -0
- package/dist/execution/command-failure.d.ts.map +1 -0
- package/dist/execution/command-failure.js +29 -0
- package/dist/execution/command-failure.js.map +1 -0
- package/dist/execution/execution.service.d.ts +6 -1
- package/dist/execution/execution.service.d.ts.map +1 -1
- package/dist/execution/execution.service.js +32 -30
- package/dist/execution/execution.service.js.map +1 -1
- package/dist/files/archive-codec.d.ts +57 -0
- package/dist/files/archive-codec.d.ts.map +1 -0
- package/dist/files/archive-codec.js +454 -0
- package/dist/files/archive-codec.js.map +1 -0
- package/dist/files/archive-node.d.ts +27 -0
- package/dist/files/archive-node.d.ts.map +1 -0
- package/dist/files/archive-node.js +379 -0
- package/dist/files/archive-node.js.map +1 -0
- package/dist/files/archive-publication.d.ts +26 -0
- package/dist/files/archive-publication.d.ts.map +1 -0
- package/dist/files/archive-publication.js +224 -0
- package/dist/files/archive-publication.js.map +1 -0
- package/dist/files/file-config.d.ts +7 -0
- package/dist/files/file-config.d.ts.map +1 -0
- package/dist/files/file-config.js +11 -0
- package/dist/files/file-config.js.map +1 -0
- package/dist/files/file-node.d.ts +65 -0
- package/dist/files/file-node.d.ts.map +1 -0
- package/dist/files/file-node.js +863 -0
- package/dist/files/file-node.js.map +1 -0
- package/dist/files/file-node.rpc-service.d.ts +12 -0
- package/dist/files/file-node.rpc-service.d.ts.map +1 -0
- package/dist/files/file-node.rpc-service.js +42 -0
- package/dist/files/file-node.rpc-service.js.map +1 -0
- package/dist/files/files.rpc-service.d.ts +107 -0
- package/dist/files/files.rpc-service.d.ts.map +1 -0
- package/dist/files/files.rpc-service.js +769 -0
- package/dist/files/files.rpc-service.js.map +1 -0
- package/dist/files/structural-policy.d.ts +3 -0
- package/dist/files/structural-policy.d.ts.map +1 -0
- package/dist/files/structural-policy.js +27 -0
- package/dist/files/structural-policy.js.map +1 -0
- package/dist/health/contracts.d.ts +30 -0
- package/dist/health/contracts.d.ts.map +1 -0
- package/dist/health/contracts.js +58 -0
- package/dist/health/contracts.js.map +1 -0
- package/dist/health/heartbeat.d.ts +11 -0
- package/dist/health/heartbeat.d.ts.map +1 -0
- package/dist/health/heartbeat.js +32 -0
- package/dist/health/heartbeat.js.map +1 -0
- package/dist/health/index.d.ts +4 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +2 -0
- package/dist/health/index.js.map +1 -0
- package/dist/health/readiness.d.ts +15 -0
- package/dist/health/readiness.d.ts.map +1 -0
- package/dist/health/readiness.js +170 -0
- package/dist/health/readiness.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/infrastructure/apt-packages.d.ts +34 -0
- package/dist/infrastructure/apt-packages.d.ts.map +1 -0
- package/dist/infrastructure/apt-packages.js +232 -0
- package/dist/infrastructure/apt-packages.js.map +1 -0
- package/dist/infrastructure/bare-metal-plan.d.ts +10 -1
- package/dist/infrastructure/bare-metal-plan.d.ts.map +1 -1
- package/dist/infrastructure/bare-metal-plan.js +21 -0
- package/dist/infrastructure/bare-metal-plan.js.map +1 -1
- package/dist/infrastructure/bare-metal-runner.d.ts.map +1 -1
- package/dist/infrastructure/bare-metal-runner.js +13 -2
- package/dist/infrastructure/bare-metal-runner.js.map +1 -1
- package/dist/infrastructure/config-normalizer.d.ts +4 -3
- package/dist/infrastructure/config-normalizer.d.ts.map +1 -1
- package/dist/infrastructure/config-normalizer.js +11 -3
- package/dist/infrastructure/config-normalizer.js.map +1 -1
- package/dist/infrastructure/container-runtime.d.ts +37 -3
- package/dist/infrastructure/container-runtime.d.ts.map +1 -1
- package/dist/infrastructure/container-runtime.js +235 -64
- package/dist/infrastructure/container-runtime.js.map +1 -1
- package/dist/infrastructure/health-recovery.d.ts +19 -0
- package/dist/infrastructure/health-recovery.d.ts.map +1 -0
- package/dist/infrastructure/health-recovery.js +39 -0
- package/dist/infrastructure/health-recovery.js.map +1 -0
- package/dist/infrastructure/host-ingress-config.d.ts.map +1 -1
- package/dist/infrastructure/host-ingress-config.js +11 -8
- package/dist/infrastructure/host-ingress-config.js.map +1 -1
- package/dist/infrastructure/host-ingress-lock.d.ts +2 -3
- package/dist/infrastructure/host-ingress-lock.d.ts.map +1 -1
- package/dist/infrastructure/host-ingress-lock.js +1 -35
- package/dist/infrastructure/host-ingress-lock.js.map +1 -1
- package/dist/infrastructure/host-ingress-takeover.js +3 -3
- package/dist/infrastructure/host-ingress-takeover.js.map +1 -1
- package/dist/infrastructure/host-ingress-types.d.ts +4 -2
- package/dist/infrastructure/host-ingress-types.d.ts.map +1 -1
- package/dist/infrastructure/host-ingress.service.d.ts.map +1 -1
- package/dist/infrastructure/host-ingress.service.js +6 -6
- package/dist/infrastructure/host-ingress.service.js.map +1 -1
- package/dist/infrastructure/host-inspection.d.ts +1 -0
- package/dist/infrastructure/host-inspection.d.ts.map +1 -1
- package/dist/infrastructure/host-inspection.js +3 -2
- package/dist/infrastructure/host-inspection.js.map +1 -1
- package/dist/infrastructure/infrastructure.service.d.ts +80 -29
- package/dist/infrastructure/infrastructure.service.d.ts.map +1 -1
- package/dist/infrastructure/infrastructure.service.js +561 -216
- package/dist/infrastructure/infrastructure.service.js.map +1 -1
- package/dist/infrastructure/merge-config.d.ts +10 -0
- package/dist/infrastructure/merge-config.d.ts.map +1 -0
- package/dist/infrastructure/merge-config.js +27 -0
- package/dist/infrastructure/merge-config.js.map +1 -0
- package/dist/infrastructure/orphan-containers.d.ts +1 -0
- package/dist/infrastructure/orphan-containers.d.ts.map +1 -1
- package/dist/infrastructure/orphan-containers.js +1 -1
- package/dist/infrastructure/orphan-containers.js.map +1 -1
- package/dist/infrastructure/owned-container.d.ts +4 -0
- package/dist/infrastructure/owned-container.d.ts.map +1 -0
- package/dist/infrastructure/owned-container.js +13 -0
- package/dist/infrastructure/owned-container.js.map +1 -0
- package/dist/infrastructure/phantom-endpoint-janitor.d.ts +4 -1
- package/dist/infrastructure/phantom-endpoint-janitor.d.ts.map +1 -1
- package/dist/infrastructure/phantom-endpoint-janitor.js +11 -2
- package/dist/infrastructure/phantom-endpoint-janitor.js.map +1 -1
- package/dist/infrastructure/presets/minio.d.ts.map +1 -1
- package/dist/infrastructure/presets/minio.js +15 -25
- package/dist/infrastructure/presets/minio.js.map +1 -1
- package/dist/infrastructure/presets/postgres.d.ts.map +1 -1
- package/dist/infrastructure/presets/postgres.js +35 -31
- package/dist/infrastructure/presets/postgres.js.map +1 -1
- package/dist/infrastructure/presets/tor.d.ts +1 -2
- package/dist/infrastructure/presets/tor.d.ts.map +1 -1
- package/dist/infrastructure/presets/tor.js +7 -13
- package/dist/infrastructure/presets/tor.js.map +1 -1
- package/dist/infrastructure/provisioning-outcome.d.ts +7 -0
- package/dist/infrastructure/provisioning-outcome.d.ts.map +1 -1
- package/dist/infrastructure/provisioning-outcome.js +41 -8
- package/dist/infrastructure/provisioning-outcome.js.map +1 -1
- package/dist/infrastructure/service-resolver.d.ts +1 -1
- package/dist/infrastructure/service-resolver.d.ts.map +1 -1
- package/dist/infrastructure/service-resolver.js +22 -10
- package/dist/infrastructure/service-resolver.js.map +1 -1
- package/dist/infrastructure/stack-infra-manager.d.ts +25 -4
- package/dist/infrastructure/stack-infra-manager.d.ts.map +1 -1
- package/dist/infrastructure/stack-infra-manager.js +181 -21
- package/dist/infrastructure/stack-infra-manager.js.map +1 -1
- package/dist/infrastructure/types.d.ts +60 -3
- package/dist/infrastructure/types.d.ts.map +1 -1
- package/dist/mcp/mcp-bridge.js +1 -1
- package/dist/mcp/mcp-bridge.js.map +1 -1
- package/dist/mcp/monitoring-reading.d.ts +18 -0
- package/dist/mcp/monitoring-reading.d.ts.map +1 -0
- package/dist/mcp/monitoring-reading.js +84 -0
- package/dist/mcp/monitoring-reading.js.map +1 -0
- package/dist/mcp/tool-groups/apps.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/apps.tools.js +6 -4
- package/dist/mcp/tool-groups/apps.tools.js.map +1 -1
- package/dist/mcp/tool-groups/management.tools.d.ts +2 -0
- package/dist/mcp/tool-groups/management.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/management.tools.js +17 -38
- package/dist/mcp/tool-groups/management.tools.js.map +1 -1
- package/dist/mcp/tool-groups/monitoring.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/monitoring.tools.js +45 -2
- package/dist/mcp/tool-groups/monitoring.tools.js.map +1 -1
- package/dist/mcp/unavailable-tools.js +2 -2
- package/dist/mcp/unavailable-tools.js.map +1 -1
- package/dist/migration/configuration.d.ts +8 -0
- package/dist/migration/configuration.d.ts.map +1 -0
- package/dist/migration/configuration.js +16 -0
- package/dist/migration/configuration.js.map +1 -0
- package/dist/migration/index.d.ts +25 -0
- package/dist/migration/index.d.ts.map +1 -0
- package/dist/migration/index.js +27 -0
- package/dist/migration/index.js.map +1 -0
- package/dist/migration/operation.d.ts +31 -0
- package/dist/migration/operation.d.ts.map +1 -0
- package/dist/migration/operation.js +67 -0
- package/dist/migration/operation.js.map +1 -0
- package/dist/migration/workspace.d.ts +28 -0
- package/dist/migration/workspace.d.ts.map +1 -0
- package/dist/migration/workspace.js +91 -0
- package/dist/migration/workspace.js.map +1 -0
- package/dist/monitoring/app-health.indicator.d.ts +1 -1
- package/dist/monitoring/app-health.indicator.d.ts.map +1 -1
- package/dist/monitoring/docker-health.indicator.d.ts +4 -2
- package/dist/monitoring/docker-health.indicator.d.ts.map +1 -1
- package/dist/monitoring/docker-health.indicator.js +66 -5
- package/dist/monitoring/docker-health.indicator.js.map +1 -1
- package/dist/monitoring/event-loop-watch.d.ts.map +1 -1
- package/dist/monitoring/event-loop-watch.js.map +1 -1
- package/dist/monitoring/infrastructure-health.d.ts +15 -0
- package/dist/monitoring/infrastructure-health.d.ts.map +1 -0
- package/dist/monitoring/infrastructure-health.js +2 -0
- package/dist/monitoring/infrastructure-health.js.map +1 -0
- package/dist/monitoring/log-entry.d.ts +7 -0
- package/dist/monitoring/log-entry.d.ts.map +1 -0
- package/dist/monitoring/log-entry.js +16 -0
- package/dist/monitoring/log-entry.js.map +1 -0
- package/dist/monitoring/log-journal.d.ts +40 -0
- package/dist/monitoring/log-journal.d.ts.map +1 -0
- package/dist/monitoring/log-journal.js +158 -0
- package/dist/monitoring/log-journal.js.map +1 -0
- package/dist/monitoring/log-line.d.ts +19 -14
- package/dist/monitoring/log-line.d.ts.map +1 -1
- package/dist/monitoring/log-line.js +70 -59
- package/dist/monitoring/log-line.js.map +1 -1
- package/dist/monitoring/log-manager.d.ts +34 -37
- package/dist/monitoring/log-manager.d.ts.map +1 -1
- package/dist/monitoring/log-manager.js +164 -63
- package/dist/monitoring/log-manager.js.map +1 -1
- package/dist/monitoring/log-sink-health.indicator.d.ts +10 -0
- package/dist/monitoring/log-sink-health.indicator.d.ts.map +1 -0
- package/dist/monitoring/log-sink-health.indicator.js +21 -0
- package/dist/monitoring/log-sink-health.indicator.js.map +1 -0
- package/dist/monitoring/metrics-storage.indicator.d.ts +9 -0
- package/dist/monitoring/metrics-storage.indicator.d.ts.map +1 -0
- package/dist/monitoring/metrics-storage.indicator.js +18 -0
- package/dist/monitoring/metrics-storage.indicator.js.map +1 -0
- package/dist/monitoring/process-lifetime.d.ts +11 -0
- package/dist/monitoring/process-lifetime.d.ts.map +1 -0
- package/dist/monitoring/process-lifetime.js +45 -0
- package/dist/monitoring/process-lifetime.js.map +1 -0
- package/dist/monitoring/runtime-diagnostics.d.ts +47 -0
- package/dist/monitoring/runtime-diagnostics.d.ts.map +1 -0
- package/dist/monitoring/runtime-diagnostics.js +88 -0
- package/dist/monitoring/runtime-diagnostics.js.map +1 -0
- package/dist/observability/metrics-bridge.d.ts +5 -1
- package/dist/observability/metrics-bridge.d.ts.map +1 -1
- package/dist/observability/metrics-bridge.js +11 -0
- package/dist/observability/metrics-bridge.js.map +1 -1
- package/dist/operations.d.ts +1 -0
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js.map +1 -1
- package/dist/orchestrator/app-handle.d.ts +24 -6
- package/dist/orchestrator/app-handle.d.ts.map +1 -1
- package/dist/orchestrator/app-handle.js +39 -8
- package/dist/orchestrator/app-handle.js.map +1 -1
- package/dist/orchestrator/application-runtime-child.d.ts +2 -0
- package/dist/orchestrator/application-runtime-child.d.ts.map +1 -0
- package/dist/orchestrator/application-runtime-child.js +15 -0
- package/dist/orchestrator/application-runtime-child.js.map +1 -0
- package/dist/orchestrator/application-runtime-resolution.d.ts +4 -0
- package/dist/orchestrator/application-runtime-resolution.d.ts.map +1 -0
- package/dist/orchestrator/application-runtime-resolution.js +62 -0
- package/dist/orchestrator/application-runtime-resolution.js.map +1 -0
- package/dist/orchestrator/application-runtime.d.ts +3 -0
- package/dist/orchestrator/application-runtime.d.ts.map +1 -0
- package/dist/orchestrator/application-runtime.js +20 -0
- package/dist/orchestrator/application-runtime.js.map +1 -0
- package/dist/orchestrator/application-topology.d.ts +20 -0
- package/dist/orchestrator/application-topology.d.ts.map +1 -0
- package/dist/orchestrator/application-topology.js +90 -0
- package/dist/orchestrator/application-topology.js.map +1 -0
- package/dist/orchestrator/bootstrap-loader-child.d.ts +1 -1
- package/dist/orchestrator/bootstrap-loader-child.js +7 -16
- package/dist/orchestrator/bootstrap-loader-child.js.map +1 -1
- package/dist/orchestrator/bootstrap-loader.d.ts +8 -18
- package/dist/orchestrator/bootstrap-loader.d.ts.map +1 -1
- package/dist/orchestrator/bootstrap-loader.js +21 -204
- package/dist/orchestrator/bootstrap-loader.js.map +1 -1
- package/dist/orchestrator/bootstrap-process.d.ts +5 -5
- package/dist/orchestrator/bootstrap-process.d.ts.map +1 -1
- package/dist/orchestrator/bootstrap-process.js +37 -38
- package/dist/orchestrator/bootstrap-process.js.map +1 -1
- package/dist/orchestrator/build-service.d.ts +3 -3
- package/dist/orchestrator/build-service.d.ts.map +1 -1
- package/dist/orchestrator/build-service.js +29 -80
- package/dist/orchestrator/build-service.js.map +1 -1
- package/dist/orchestrator/call-exposed-service.d.ts +8 -0
- package/dist/orchestrator/call-exposed-service.d.ts.map +1 -1
- package/dist/orchestrator/classic-launcher.d.ts +3 -2
- package/dist/orchestrator/classic-launcher.d.ts.map +1 -1
- package/dist/orchestrator/classic-launcher.js +26 -22
- package/dist/orchestrator/classic-launcher.js.map +1 -1
- package/dist/orchestrator/dependency-resolver.d.ts.map +1 -1
- package/dist/orchestrator/dependency-resolver.js +7 -38
- package/dist/orchestrator/dependency-resolver.js.map +1 -1
- package/dist/orchestrator/execution-contract.d.ts +67 -0
- package/dist/orchestrator/execution-contract.d.ts.map +1 -0
- package/dist/orchestrator/execution-contract.js +2 -0
- package/dist/orchestrator/execution-contract.js.map +1 -0
- package/dist/orchestrator/file-watcher.d.ts +1 -1
- package/dist/orchestrator/file-watcher.d.ts.map +1 -1
- package/dist/orchestrator/file-watcher.js +10 -3
- package/dist/orchestrator/file-watcher.js.map +1 -1
- package/dist/orchestrator/installed-execution.d.ts +7 -0
- package/dist/orchestrator/installed-execution.d.ts.map +1 -0
- package/dist/orchestrator/installed-execution.js +25 -0
- package/dist/orchestrator/installed-execution.js.map +1 -0
- package/dist/orchestrator/module-worker-process.d.ts.map +1 -1
- package/dist/orchestrator/module-worker-process.js +2 -1
- package/dist/orchestrator/module-worker-process.js.map +1 -1
- package/dist/orchestrator/orchestrator.service.d.ts +87 -76
- package/dist/orchestrator/orchestrator.service.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.service.js +941 -469
- package/dist/orchestrator/orchestrator.service.js.map +1 -1
- package/dist/orchestrator/process-janitor.d.ts +3 -0
- package/dist/orchestrator/process-janitor.d.ts.map +1 -1
- package/dist/orchestrator/process-janitor.js +5 -1
- package/dist/orchestrator/process-janitor.js.map +1 -1
- package/dist/orchestrator/runtime-package-resolution.d.ts +8 -0
- package/dist/orchestrator/runtime-package-resolution.d.ts.map +1 -0
- package/dist/orchestrator/runtime-package-resolution.js +56 -0
- package/dist/orchestrator/runtime-package-resolution.js.map +1 -0
- package/dist/orchestrator/service-router.d.ts +4 -108
- package/dist/orchestrator/service-router.d.ts.map +1 -1
- package/dist/orchestrator/service-router.js +51 -237
- package/dist/orchestrator/service-router.js.map +1 -1
- package/dist/orchestrator/ts-compiler.d.ts.map +1 -1
- package/dist/orchestrator/ts-compiler.js +9 -17
- package/dist/orchestrator/ts-compiler.js.map +1 -1
- package/dist/project/artifact-builder.d.ts +17 -7
- package/dist/project/artifact-builder.d.ts.map +1 -1
- package/dist/project/artifact-builder.js +89 -56
- package/dist/project/artifact-builder.js.map +1 -1
- package/dist/project/bootstrap-metadata.d.ts +42 -0
- package/dist/project/bootstrap-metadata.d.ts.map +1 -0
- package/dist/project/bootstrap-metadata.js +76 -0
- package/dist/project/bootstrap-metadata.js.map +1 -0
- package/dist/project/config-resolver.js +3 -3
- package/dist/project/config-resolver.js.map +1 -1
- package/dist/project/configuration-catalog.d.ts +8 -0
- package/dist/project/configuration-catalog.d.ts.map +1 -0
- package/dist/project/configuration-catalog.js +29 -0
- package/dist/project/configuration-catalog.js.map +1 -0
- package/dist/project/declared-config.d.ts +2 -0
- package/dist/project/declared-config.d.ts.map +1 -1
- package/dist/project/declared-config.js +8 -5
- package/dist/project/declared-config.js.map +1 -1
- package/dist/project/dependency-topology.d.ts +10 -0
- package/dist/project/dependency-topology.d.ts.map +1 -0
- package/dist/project/dependency-topology.js +55 -0
- package/dist/project/dependency-topology.js.map +1 -0
- package/dist/project/infrastructure-ownership.d.ts +5 -0
- package/dist/project/infrastructure-ownership.d.ts.map +1 -0
- package/dist/project/infrastructure-ownership.js +26 -0
- package/dist/project/infrastructure-ownership.js.map +1 -0
- package/dist/project/installed-stack-resume.d.ts +62 -0
- package/dist/project/installed-stack-resume.d.ts.map +1 -0
- package/dist/project/installed-stack-resume.js +261 -0
- package/dist/project/installed-stack-resume.js.map +1 -0
- package/dist/project/launch-failure.d.ts +3 -0
- package/dist/project/launch-failure.d.ts.map +1 -0
- package/dist/project/launch-failure.js +32 -0
- package/dist/project/launch-failure.js.map +1 -0
- package/dist/project/local-release-selection.d.ts +18 -0
- package/dist/project/local-release-selection.d.ts.map +1 -0
- package/dist/project/local-release-selection.js +36 -0
- package/dist/project/local-release-selection.js.map +1 -0
- package/dist/project/node-app-config.d.ts +8 -1
- package/dist/project/node-app-config.d.ts.map +1 -1
- package/dist/project/node-app-config.js +20 -28
- package/dist/project/node-app-config.js.map +1 -1
- package/dist/project/node-stack-stop.d.ts +83 -0
- package/dist/project/node-stack-stop.d.ts.map +1 -0
- package/dist/project/node-stack-stop.js +219 -0
- package/dist/project/node-stack-stop.js.map +1 -0
- package/dist/project/public-stack.d.ts +4 -0
- package/dist/project/public-stack.d.ts.map +1 -0
- package/dist/project/public-stack.js +29 -0
- package/dist/project/public-stack.js.map +1 -0
- package/dist/project/registry.d.ts +18 -27
- package/dist/project/registry.d.ts.map +1 -1
- package/dist/project/registry.js +244 -55
- package/dist/project/registry.js.map +1 -1
- package/dist/project/requirements-scanner.d.ts +4 -8
- package/dist/project/requirements-scanner.d.ts.map +1 -1
- package/dist/project/requirements-scanner.js +39 -146
- package/dist/project/requirements-scanner.js.map +1 -1
- package/dist/project/stack-diagnosis.d.ts +18 -0
- package/dist/project/stack-diagnosis.d.ts.map +1 -0
- package/dist/project/stack-diagnosis.js +94 -0
- package/dist/project/stack-diagnosis.js.map +1 -0
- package/dist/project/stack-health.d.ts +12 -0
- package/dist/project/stack-health.d.ts.map +1 -0
- package/dist/project/stack-health.js +27 -0
- package/dist/project/stack-health.js.map +1 -0
- package/dist/project/stack-observation.d.ts +8 -0
- package/dist/project/stack-observation.d.ts.map +1 -0
- package/dist/project/stack-observation.js +126 -0
- package/dist/project/stack-observation.js.map +1 -0
- package/dist/project/stack-placement.d.ts +11 -0
- package/dist/project/stack-placement.d.ts.map +1 -0
- package/dist/project/stack-placement.js +57 -0
- package/dist/project/stack-placement.js.map +1 -0
- package/dist/project/stack-stop-review.d.ts +14 -0
- package/dist/project/stack-stop-review.d.ts.map +1 -0
- package/dist/project/stack-stop-review.js +22 -0
- package/dist/project/stack-stop-review.js.map +1 -0
- package/dist/project/stack-targets.d.ts +24 -0
- package/dist/project/stack-targets.d.ts.map +1 -0
- package/dist/project/stack-targets.js +67 -0
- package/dist/project/stack-targets.js.map +1 -0
- package/dist/project/topology-control.d.ts +41 -0
- package/dist/project/topology-control.d.ts.map +1 -0
- package/dist/project/topology-control.js +133 -0
- package/dist/project/topology-control.js.map +1 -0
- package/dist/project/topology-plan.d.ts +11 -0
- package/dist/project/topology-plan.d.ts.map +1 -0
- package/dist/project/topology-plan.js +154 -0
- package/dist/project/topology-plan.js.map +1 -0
- package/dist/project/topology-services.d.ts +7 -0
- package/dist/project/topology-services.d.ts.map +1 -0
- package/dist/project/topology-services.js +36 -0
- package/dist/project/topology-services.js.map +1 -0
- package/dist/project/topology-state.d.ts +27 -0
- package/dist/project/topology-state.d.ts.map +1 -0
- package/dist/project/topology-state.js +71 -0
- package/dist/project/topology-state.js.map +1 -0
- package/dist/project/workspace-kind.d.ts +3 -0
- package/dist/project/workspace-kind.d.ts.map +1 -0
- package/dist/project/workspace-kind.js +13 -0
- package/dist/project/workspace-kind.js.map +1 -0
- package/dist/readiness.d.ts +4 -0
- package/dist/readiness.d.ts.map +1 -0
- package/dist/readiness.js +3 -0
- package/dist/readiness.js.map +1 -0
- package/dist/release/application-closure.d.ts +4 -0
- package/dist/release/application-closure.d.ts.map +1 -0
- package/dist/release/application-closure.js +61 -0
- package/dist/release/application-closure.js.map +1 -0
- package/dist/release/archive.d.ts +3 -0
- package/dist/release/archive.d.ts.map +1 -0
- package/dist/release/archive.js +3 -0
- package/dist/release/archive.js.map +1 -0
- package/dist/release/artifact-inspection.d.ts +50 -0
- package/dist/release/artifact-inspection.d.ts.map +1 -0
- package/dist/release/artifact-inspection.js +169 -0
- package/dist/release/artifact-inspection.js.map +1 -0
- package/dist/release/artifact-volumes.d.ts +10 -0
- package/dist/release/artifact-volumes.d.ts.map +1 -0
- package/dist/release/artifact-volumes.js +112 -0
- package/dist/release/artifact-volumes.js.map +1 -0
- package/dist/release/build-run.d.ts +12 -15
- package/dist/release/build-run.d.ts.map +1 -1
- package/dist/release/build-run.js +260 -73
- package/dist/release/build-run.js.map +1 -1
- package/dist/release/builder.d.ts +8 -2
- package/dist/release/builder.d.ts.map +1 -1
- package/dist/release/builder.js +18 -4
- package/dist/release/builder.js.map +1 -1
- package/dist/release/closure-library-path.d.ts +26 -0
- package/dist/release/closure-library-path.d.ts.map +1 -0
- package/dist/release/closure-library-path.js +160 -0
- package/dist/release/closure-library-path.js.map +1 -0
- package/dist/release/definition-inputs.d.ts +6 -3
- package/dist/release/definition-inputs.d.ts.map +1 -1
- package/dist/release/definition-inputs.js +145 -14
- package/dist/release/definition-inputs.js.map +1 -1
- package/dist/release/framework-source.d.ts +22 -0
- package/dist/release/framework-source.d.ts.map +1 -0
- package/dist/release/framework-source.js +54 -0
- package/dist/release/framework-source.js.map +1 -0
- package/dist/release/frozen-installation.d.ts +23 -0
- package/dist/release/frozen-installation.d.ts.map +1 -0
- package/dist/release/frozen-installation.js +159 -0
- package/dist/release/frozen-installation.js.map +1 -0
- package/dist/release/import-artifacts.d.ts +9 -0
- package/dist/release/import-artifacts.d.ts.map +1 -0
- package/dist/release/import-artifacts.js +60 -0
- package/dist/release/import-artifacts.js.map +1 -0
- package/dist/release/infrastructure.d.ts +6 -0
- package/dist/release/infrastructure.d.ts.map +1 -0
- package/dist/release/infrastructure.js +74 -0
- package/dist/release/infrastructure.js.map +1 -0
- package/dist/release/installed-artifacts.d.ts +12 -0
- package/dist/release/installed-artifacts.d.ts.map +1 -0
- package/dist/release/installed-artifacts.js +199 -0
- package/dist/release/installed-artifacts.js.map +1 -0
- package/dist/release/installed-graph.d.ts +28 -0
- package/dist/release/installed-graph.d.ts.map +1 -0
- package/dist/release/installed-graph.js +138 -0
- package/dist/release/installed-graph.js.map +1 -0
- package/dist/release/installed-origin.d.ts +42 -0
- package/dist/release/installed-origin.d.ts.map +1 -0
- package/dist/release/installed-origin.js +130 -0
- package/dist/release/installed-origin.js.map +1 -0
- package/dist/release/installed-release.d.ts +23 -0
- package/dist/release/installed-release.d.ts.map +1 -0
- package/dist/release/installed-release.js +141 -0
- package/dist/release/installed-release.js.map +1 -0
- package/dist/release/layout.d.ts +27 -32
- package/dist/release/layout.d.ts.map +1 -1
- package/dist/release/layout.js +162 -51
- package/dist/release/layout.js.map +1 -1
- package/dist/release/load.d.ts +3 -0
- package/dist/release/load.d.ts.map +1 -1
- package/dist/release/load.js +50 -8
- package/dist/release/load.js.map +1 -1
- package/dist/release/local-installation.d.ts +20 -0
- package/dist/release/local-installation.d.ts.map +1 -0
- package/dist/release/local-installation.js +298 -0
- package/dist/release/local-installation.js.map +1 -0
- package/dist/release/manifest.d.ts +87 -12
- package/dist/release/manifest.d.ts.map +1 -1
- package/dist/release/manifest.js +31 -7
- package/dist/release/manifest.js.map +1 -1
- package/dist/release/migration-programs.d.ts +12 -0
- package/dist/release/migration-programs.d.ts.map +1 -0
- package/dist/release/migration-programs.js +45 -0
- package/dist/release/migration-programs.js.map +1 -0
- package/dist/release/migrations.d.ts +12 -1
- package/dist/release/migrations.d.ts.map +1 -1
- package/dist/release/migrations.js +124 -9
- package/dist/release/migrations.js.map +1 -1
- package/dist/release/origin.d.ts +33 -0
- package/dist/release/origin.d.ts.map +1 -0
- package/dist/release/origin.js +253 -0
- package/dist/release/origin.js.map +1 -0
- package/dist/release/owner-admission.d.ts +15 -0
- package/dist/release/owner-admission.d.ts.map +1 -0
- package/dist/release/owner-admission.js +37 -0
- package/dist/release/owner-admission.js.map +1 -0
- package/dist/release/owner-executable.d.ts +3 -0
- package/dist/release/owner-executable.d.ts.map +1 -0
- package/dist/release/owner-executable.js +40 -0
- package/dist/release/owner-executable.js.map +1 -0
- package/dist/release/package-gates.d.ts +9 -0
- package/dist/release/package-gates.d.ts.map +1 -0
- package/dist/release/package-gates.js +42 -0
- package/dist/release/package-gates.js.map +1 -0
- package/dist/release/package-resolution.d.ts +4 -0
- package/dist/release/package-resolution.d.ts.map +1 -0
- package/dist/release/package-resolution.js +28 -0
- package/dist/release/package-resolution.js.map +1 -0
- package/dist/release/portable-archive.d.ts +12 -0
- package/dist/release/portable-archive.d.ts.map +1 -0
- package/dist/release/portable-archive.js +96 -0
- package/dist/release/portable-archive.js.map +1 -0
- package/dist/release/registry-download.d.ts +2 -0
- package/dist/release/registry-download.d.ts.map +1 -0
- package/dist/release/registry-download.js +157 -0
- package/dist/release/registry-download.js.map +1 -0
- package/dist/release/registry-framework.d.ts +39 -0
- package/dist/release/registry-framework.d.ts.map +1 -0
- package/dist/release/registry-framework.js +279 -0
- package/dist/release/registry-framework.js.map +1 -0
- package/dist/release/registry-transport.d.ts +27 -0
- package/dist/release/registry-transport.d.ts.map +1 -0
- package/dist/release/registry-transport.js +96 -0
- package/dist/release/registry-transport.js.map +1 -0
- package/dist/release/repository-identity.d.ts +12 -0
- package/dist/release/repository-identity.d.ts.map +1 -0
- package/dist/release/repository-identity.js +62 -0
- package/dist/release/repository-identity.js.map +1 -0
- package/dist/release/runtime-extractor.d.ts +4 -0
- package/dist/release/runtime-extractor.d.ts.map +1 -0
- package/dist/release/runtime-extractor.js +15 -0
- package/dist/release/runtime-extractor.js.map +1 -0
- package/dist/release/runtime-provenance.d.ts +40 -0
- package/dist/release/runtime-provenance.d.ts.map +1 -0
- package/dist/release/runtime-provenance.js +229 -0
- package/dist/release/runtime-provenance.js.map +1 -0
- package/dist/release/source.d.ts +12 -0
- package/dist/release/source.d.ts.map +1 -0
- package/dist/release/source.js +168 -0
- package/dist/release/source.js.map +1 -0
- package/dist/release/store.d.ts +13 -4
- package/dist/release/store.d.ts.map +1 -1
- package/dist/release/store.js +70 -14
- package/dist/release/store.js.map +1 -1
- package/dist/release/target-runtime.d.ts +19 -0
- package/dist/release/target-runtime.d.ts.map +1 -0
- package/dist/release/target-runtime.js +41 -0
- package/dist/release/target-runtime.js.map +1 -0
- package/dist/release/vendored-framework.d.ts +28 -0
- package/dist/release/vendored-framework.d.ts.map +1 -0
- package/dist/release/vendored-framework.js +98 -0
- package/dist/release/vendored-framework.js.map +1 -0
- package/dist/release/workspace-source.d.ts +3 -0
- package/dist/release/workspace-source.d.ts.map +1 -0
- package/dist/release/workspace-source.js +33 -0
- package/dist/release/workspace-source.js.map +1 -0
- package/dist/runtime/context.d.ts +29 -0
- package/dist/runtime/context.d.ts.map +1 -0
- package/dist/runtime/context.js +111 -0
- package/dist/runtime/context.js.map +1 -0
- package/dist/runtime/identity.d.ts +15 -0
- package/dist/runtime/identity.d.ts.map +1 -0
- package/dist/runtime/identity.js +33 -0
- package/dist/runtime/identity.js.map +1 -0
- package/dist/runtime/index.d.ts +3 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +3 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/services/access.rpc-service.d.ts +41 -0
- package/dist/services/access.rpc-service.d.ts.map +1 -0
- package/dist/services/access.rpc-service.js +248 -0
- package/dist/services/access.rpc-service.js.map +1 -0
- package/dist/services/alert.service.d.ts +1 -1
- package/dist/services/alert.service.d.ts.map +1 -1
- package/dist/services/alert.service.js +1 -1
- package/dist/services/anonymous-input.d.ts +0 -21
- package/dist/services/anonymous-input.d.ts.map +1 -1
- package/dist/services/anonymous-input.js +1 -27
- package/dist/services/anonymous-input.js.map +1 -1
- package/dist/services/audit.service.d.ts +10 -30
- package/dist/services/audit.service.d.ts.map +1 -1
- package/dist/services/audit.service.js +72 -18
- package/dist/services/audit.service.js.map +1 -1
- package/dist/services/auth-context.d.ts +2 -0
- package/dist/services/auth-context.d.ts.map +1 -1
- package/dist/services/auth-context.js +4 -1
- package/dist/services/auth-context.js.map +1 -1
- package/dist/services/auth.rpc-service.d.ts +3 -1
- package/dist/services/auth.rpc-service.d.ts.map +1 -1
- package/dist/services/auth.rpc-service.js +13 -3
- package/dist/services/auth.rpc-service.js.map +1 -1
- package/dist/services/auth.service.d.ts +11 -21
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +125 -139
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/backup-storage.d.ts +14 -0
- package/dist/services/backup-storage.d.ts.map +1 -0
- package/dist/services/backup-storage.js +195 -0
- package/dist/services/backup-storage.js.map +1 -0
- package/dist/services/backup.rpc-service.d.ts +2 -0
- package/dist/services/backup.rpc-service.d.ts.map +1 -1
- package/dist/services/backup.rpc-service.js +9 -0
- package/dist/services/backup.rpc-service.js.map +1 -1
- package/dist/services/backup.service.d.ts +33 -126
- package/dist/services/backup.service.d.ts.map +1 -1
- package/dist/services/backup.service.js +174 -153
- package/dist/services/backup.service.js.map +1 -1
- package/dist/services/bundle-builder.d.ts +12 -0
- package/dist/services/bundle-builder.d.ts.map +1 -1
- package/dist/services/bundle-builder.js +77 -62
- package/dist/services/bundle-builder.js.map +1 -1
- package/dist/services/bundle-overrides.d.ts +25 -0
- package/dist/services/bundle-overrides.d.ts.map +1 -0
- package/dist/services/bundle-overrides.js +96 -0
- package/dist/services/bundle-overrides.js.map +1 -0
- package/dist/services/daemon-authority.d.ts +16 -0
- package/dist/services/daemon-authority.d.ts.map +1 -0
- package/dist/services/daemon-authority.js +54 -0
- package/dist/services/daemon-authority.js.map +1 -0
- package/dist/services/daemon-principal.d.ts +31 -0
- package/dist/services/daemon-principal.d.ts.map +1 -0
- package/dist/services/daemon-principal.js +37 -0
- package/dist/services/daemon-principal.js.map +1 -0
- package/dist/services/deploy.service.d.ts +13 -57
- package/dist/services/deploy.service.d.ts.map +1 -1
- package/dist/services/deploy.service.js +15 -263
- package/dist/services/deploy.service.js.map +1 -1
- package/dist/services/event-broadcaster.rpc-service.d.ts +7 -1
- package/dist/services/event-broadcaster.rpc-service.d.ts.map +1 -1
- package/dist/services/event-broadcaster.rpc-service.js +89 -11
- package/dist/services/event-broadcaster.rpc-service.js.map +1 -1
- package/dist/services/fleet.rpc-service.d.ts +0 -6
- package/dist/services/fleet.rpc-service.d.ts.map +1 -1
- package/dist/services/fleet.rpc-service.js +0 -13
- package/dist/services/fleet.rpc-service.js.map +1 -1
- package/dist/services/health-check.service.d.ts +1 -1
- package/dist/services/health-check.service.d.ts.map +1 -1
- package/dist/services/health-check.service.js +30 -5
- package/dist/services/health-check.service.js.map +1 -1
- package/dist/services/host-upgrade.d.ts +55 -3
- package/dist/services/host-upgrade.d.ts.map +1 -1
- package/dist/services/host-upgrade.js +167 -16
- package/dist/services/host-upgrade.js.map +1 -1
- package/dist/services/infrastructure.rpc-service.d.ts +9 -2
- package/dist/services/infrastructure.rpc-service.d.ts.map +1 -1
- package/dist/services/infrastructure.rpc-service.js +117 -36
- package/dist/services/infrastructure.rpc-service.js.map +1 -1
- package/dist/services/kernel-catalog.d.ts +14 -0
- package/dist/services/kernel-catalog.d.ts.map +1 -0
- package/dist/services/kernel-catalog.js +172 -0
- package/dist/services/kernel-catalog.js.map +1 -0
- package/dist/services/kernel-distribution.d.ts +5 -0
- package/dist/services/kernel-distribution.d.ts.map +1 -0
- package/dist/services/kernel-distribution.js +49 -0
- package/dist/services/kernel-distribution.js.map +1 -0
- package/dist/services/kernel-rollout.service.d.ts +55 -0
- package/dist/services/kernel-rollout.service.d.ts.map +1 -0
- package/dist/services/kernel-rollout.service.js +394 -0
- package/dist/services/kernel-rollout.service.js.map +1 -0
- package/dist/services/local-bundle.d.ts.map +1 -1
- package/dist/services/local-bundle.js +3 -1
- package/dist/services/local-bundle.js.map +1 -1
- package/dist/services/log-collector.rpc-service.d.ts +5 -11
- package/dist/services/log-collector.rpc-service.d.ts.map +1 -1
- package/dist/services/log-collector.rpc-service.js +6 -6
- package/dist/services/log-collector.rpc-service.js.map +1 -1
- package/dist/services/log-collector.service.d.ts +39 -109
- package/dist/services/log-collector.service.d.ts.map +1 -1
- package/dist/services/log-collector.service.js +286 -261
- package/dist/services/log-collector.service.js.map +1 -1
- package/dist/services/log-query.d.ts +6 -0
- package/dist/services/log-query.d.ts.map +1 -0
- package/dist/services/log-query.js +46 -0
- package/dist/services/log-query.js.map +1 -0
- package/dist/services/managed-rollout.d.ts +54 -0
- package/dist/services/managed-rollout.d.ts.map +1 -0
- package/dist/services/managed-rollout.js +124 -0
- package/dist/services/managed-rollout.js.map +1 -0
- package/dist/services/metrics.rpc-service.d.ts +23 -0
- package/dist/services/metrics.rpc-service.d.ts.map +1 -0
- package/dist/services/metrics.rpc-service.js +73 -0
- package/dist/services/metrics.rpc-service.js.map +1 -0
- package/dist/services/migration-process.d.ts +32 -0
- package/dist/services/migration-process.d.ts.map +1 -0
- package/dist/services/migration-process.js +71 -0
- package/dist/services/migration-process.js.map +1 -0
- package/dist/services/migration-target.d.ts +57 -0
- package/dist/services/migration-target.d.ts.map +1 -0
- package/dist/services/migration-target.js +221 -0
- package/dist/services/migration-target.js.map +1 -0
- package/dist/services/node-health.repository.d.ts +2 -59
- package/dist/services/node-health.repository.d.ts.map +1 -1
- package/dist/services/node-health.repository.js.map +1 -1
- package/dist/services/node-host-key.d.ts +9 -0
- package/dist/services/node-host-key.d.ts.map +1 -0
- package/dist/services/node-host-key.js +17 -0
- package/dist/services/node-host-key.js.map +1 -0
- package/dist/services/node-manager.rpc-service.d.ts +44 -37
- package/dist/services/node-manager.rpc-service.d.ts.map +1 -1
- package/dist/services/node-manager.rpc-service.js +208 -37
- package/dist/services/node-manager.rpc-service.js.map +1 -1
- package/dist/services/node-manager.service.d.ts +3 -0
- package/dist/services/node-manager.service.d.ts.map +1 -1
- package/dist/services/node-manager.service.js +78 -27
- package/dist/services/node-manager.service.js.map +1 -1
- package/dist/services/node-registration.d.ts +17 -0
- package/dist/services/node-registration.d.ts.map +1 -0
- package/dist/services/node-registration.js +73 -0
- package/dist/services/node-registration.js.map +1 -0
- package/dist/services/node-upgrade.service.d.ts +2 -28
- package/dist/services/node-upgrade.service.d.ts.map +1 -1
- package/dist/services/node-upgrade.service.js +2 -3
- package/dist/services/node-upgrade.service.js.map +1 -1
- package/dist/services/pipeline-definition.d.ts +14 -0
- package/dist/services/pipeline-definition.d.ts.map +1 -0
- package/dist/services/pipeline-definition.js +77 -0
- package/dist/services/pipeline-definition.js.map +1 -0
- package/dist/services/pipeline.rpc-service.d.ts +10 -3
- package/dist/services/pipeline.rpc-service.d.ts.map +1 -1
- package/dist/services/pipeline.rpc-service.js +38 -14
- package/dist/services/pipeline.rpc-service.js.map +1 -1
- package/dist/services/pipeline.service.d.ts +30 -46
- package/dist/services/pipeline.service.d.ts.map +1 -1
- package/dist/services/pipeline.service.js +401 -344
- package/dist/services/pipeline.service.js.map +1 -1
- package/dist/services/project.rpc-service.d.ts +212 -14
- package/dist/services/project.rpc-service.d.ts.map +1 -1
- package/dist/services/project.rpc-service.js +303 -31
- package/dist/services/project.rpc-service.js.map +1 -1
- package/dist/services/project.service.d.ts +174 -56
- package/dist/services/project.service.d.ts.map +1 -1
- package/dist/services/project.service.js +1962 -653
- package/dist/services/project.service.js.map +1 -1
- package/dist/services/release.rpc-service.d.ts +5 -18
- package/dist/services/release.rpc-service.d.ts.map +1 -1
- package/dist/services/release.rpc-service.js +34 -11
- package/dist/services/release.rpc-service.js.map +1 -1
- package/dist/services/release.service.d.ts +2 -47
- package/dist/services/release.service.d.ts.map +1 -1
- package/dist/services/release.service.js +26 -2
- package/dist/services/release.service.js.map +1 -1
- package/dist/services/remote-deployer.service.d.ts +41 -113
- package/dist/services/remote-deployer.service.d.ts.map +1 -1
- package/dist/services/remote-deployer.service.js +415 -378
- package/dist/services/remote-deployer.service.js.map +1 -1
- package/dist/services/remote-provisioner.d.ts +1 -1
- package/dist/services/remote-provisioner.js +1 -1
- package/dist/services/replication-evidence.d.ts +24 -0
- package/dist/services/replication-evidence.d.ts.map +1 -0
- package/dist/services/replication-evidence.js +61 -0
- package/dist/services/replication-evidence.js.map +1 -0
- package/dist/services/replication-history.d.ts +80 -0
- package/dist/services/replication-history.d.ts.map +1 -0
- package/dist/services/replication-history.js +279 -0
- package/dist/services/replication-history.js.map +1 -0
- package/dist/services/replication-reconciliation.d.ts +74 -0
- package/dist/services/replication-reconciliation.d.ts.map +1 -0
- package/dist/services/replication-reconciliation.js +351 -0
- package/dist/services/replication-reconciliation.js.map +1 -0
- package/dist/services/slave-storage.service.d.ts +2 -19
- package/dist/services/slave-storage.service.d.ts.map +1 -1
- package/dist/services/slave-storage.service.js +19 -6
- package/dist/services/slave-storage.service.js.map +1 -1
- package/dist/services/static-carry-forward.d.ts +2 -2
- package/dist/services/static-carry-forward.d.ts.map +1 -1
- package/dist/services/static-carry-forward.js +10 -3
- package/dist/services/static-carry-forward.js.map +1 -1
- package/dist/services/sync-summary.d.ts.map +1 -1
- package/dist/services/sync-summary.js +1 -18
- package/dist/services/sync-summary.js.map +1 -1
- package/dist/services/sync.rpc-service.d.ts +17 -20
- package/dist/services/sync.rpc-service.d.ts.map +1 -1
- package/dist/services/sync.rpc-service.js +23 -37
- package/dist/services/sync.rpc-service.js.map +1 -1
- package/dist/services/sync.service.d.ts +53 -157
- package/dist/services/sync.service.d.ts.map +1 -1
- package/dist/services/sync.service.js +239 -337
- package/dist/services/sync.service.js.map +1 -1
- package/dist/services/system-info.rpc-service.d.ts +3 -1
- package/dist/services/system-info.rpc-service.d.ts.map +1 -1
- package/dist/services/system-info.rpc-service.js +5 -5
- package/dist/services/system-info.rpc-service.js.map +1 -1
- package/dist/services/system-info.service.d.ts +3 -1
- package/dist/services/system-info.service.d.ts.map +1 -1
- package/dist/services/system-info.service.js +17 -9
- package/dist/services/system-info.service.js.map +1 -1
- package/dist/services/telemetry.rpc-service.d.ts +4 -23
- package/dist/services/telemetry.rpc-service.d.ts.map +1 -1
- package/dist/services/telemetry.rpc-service.js +4 -32
- package/dist/services/telemetry.rpc-service.js.map +1 -1
- package/dist/services/telemetry.service.d.ts +2 -30
- package/dist/services/telemetry.service.d.ts.map +1 -1
- package/dist/services/telemetry.service.js +25 -131
- package/dist/services/telemetry.service.js.map +1 -1
- package/dist/services/terminal-ssh.d.ts +16 -0
- package/dist/services/terminal-ssh.d.ts.map +1 -0
- package/dist/services/terminal-ssh.js +101 -0
- package/dist/services/terminal-ssh.js.map +1 -0
- package/dist/services/terminal.rpc-service.d.ts +84 -0
- package/dist/services/terminal.rpc-service.d.ts.map +1 -0
- package/dist/services/terminal.rpc-service.js +508 -0
- package/dist/services/terminal.rpc-service.js.map +1 -0
- package/dist/services/trace-collector.rpc-service.js +3 -3
- package/dist/services/trace-collector.rpc-service.js.map +1 -1
- package/dist/services/wait-for-postgres.d.ts +1 -1
- package/dist/services/wait-for-postgres.d.ts.map +1 -1
- package/dist/services/wait-for-postgres.js +13 -28
- package/dist/services/wait-for-postgres.js.map +1 -1
- package/dist/shared/build-stamp.d.ts +4 -1
- package/dist/shared/build-stamp.d.ts.map +1 -1
- package/dist/shared/build-stamp.js +14 -6
- package/dist/shared/build-stamp.js.map +1 -1
- package/dist/shared/describe-error.d.ts +1 -21
- package/dist/shared/describe-error.d.ts.map +1 -1
- package/dist/shared/describe-error.js +1 -38
- package/dist/shared/describe-error.js.map +1 -1
- package/dist/shared/dto/access.d.ts +55 -0
- package/dist/shared/dto/access.d.ts.map +1 -0
- package/dist/shared/dto/access.js +2 -0
- package/dist/shared/dto/access.js.map +1 -0
- package/dist/shared/dto/audit.d.ts +32 -0
- package/dist/shared/dto/audit.d.ts.map +1 -0
- package/dist/shared/dto/audit.js +3 -0
- package/dist/shared/dto/audit.js.map +1 -0
- package/dist/shared/dto/auth.d.ts +2 -0
- package/dist/shared/dto/auth.d.ts.map +1 -1
- package/dist/shared/dto/auth.js +5 -1
- package/dist/shared/dto/auth.js.map +1 -1
- package/dist/shared/dto/backend.d.ts +50 -0
- package/dist/shared/dto/backend.d.ts.map +1 -0
- package/dist/shared/dto/backend.js +3 -0
- package/dist/shared/dto/backend.js.map +1 -0
- package/dist/shared/dto/backups.d.ts +99 -0
- package/dist/shared/dto/backups.d.ts.map +1 -1
- package/dist/shared/dto/cluster.d.ts +44 -0
- package/dist/shared/dto/cluster.d.ts.map +1 -0
- package/dist/shared/dto/cluster.js +3 -0
- package/dist/shared/dto/cluster.js.map +1 -0
- package/dist/shared/dto/files.d.ts +328 -0
- package/dist/shared/dto/files.d.ts.map +1 -0
- package/dist/shared/dto/files.js +2 -0
- package/dist/shared/dto/files.js.map +1 -0
- package/dist/shared/dto/health.d.ts +59 -0
- package/dist/shared/dto/health.d.ts.map +1 -1
- package/dist/shared/dto/installed-release.d.ts +40 -0
- package/dist/shared/dto/installed-release.d.ts.map +1 -0
- package/dist/shared/dto/installed-release.js +2 -0
- package/dist/shared/dto/installed-release.js.map +1 -0
- package/dist/shared/dto/kernel-catalog.d.ts +11 -0
- package/dist/shared/dto/kernel-catalog.d.ts.map +1 -0
- package/dist/shared/dto/kernel-catalog.js +2 -0
- package/dist/shared/dto/kernel-catalog.js.map +1 -0
- package/dist/shared/dto/logs.d.ts +21 -0
- package/dist/shared/dto/logs.d.ts.map +1 -1
- package/dist/shared/dto/metrics.d.ts +4 -64
- package/dist/shared/dto/metrics.d.ts.map +1 -1
- package/dist/shared/dto/metrics.js +0 -15
- package/dist/shared/dto/metrics.js.map +1 -1
- package/dist/shared/dto/nodes.d.ts +96 -22
- package/dist/shared/dto/nodes.d.ts.map +1 -1
- package/dist/shared/dto/pipelines.d.ts +22 -1
- package/dist/shared/dto/pipelines.d.ts.map +1 -1
- package/dist/shared/dto/project.d.ts +289 -30
- package/dist/shared/dto/project.d.ts.map +1 -1
- package/dist/shared/dto/releases.d.ts +59 -0
- package/dist/shared/dto/releases.d.ts.map +1 -0
- package/dist/shared/dto/releases.js +2 -0
- package/dist/shared/dto/releases.js.map +1 -0
- package/dist/shared/dto/services.d.ts +174 -37
- package/dist/shared/dto/services.d.ts.map +1 -1
- package/dist/shared/dto/services.js +15 -6
- package/dist/shared/dto/services.js.map +1 -1
- package/dist/shared/dto/stack-diagnosis.d.ts +20 -0
- package/dist/shared/dto/stack-diagnosis.d.ts.map +1 -0
- package/dist/shared/dto/stack-diagnosis.js +8 -0
- package/dist/shared/dto/stack-diagnosis.js.map +1 -0
- package/dist/shared/dto/stack-execution.d.ts +65 -0
- package/dist/shared/dto/stack-execution.d.ts.map +1 -0
- package/dist/shared/dto/stack-execution.js +33 -0
- package/dist/shared/dto/stack-execution.js.map +1 -0
- package/dist/shared/dto/system-info.d.ts +11 -0
- package/dist/shared/dto/system-info.d.ts.map +1 -1
- package/dist/shared/dto/system-info.js +7 -1
- package/dist/shared/dto/system-info.js.map +1 -1
- package/dist/shared/dto/terminal.d.ts +40 -0
- package/dist/shared/dto/terminal.d.ts.map +1 -0
- package/dist/shared/dto/terminal.js +2 -0
- package/dist/shared/dto/terminal.js.map +1 -0
- package/dist/shared/dto/topology.d.ts +96 -0
- package/dist/shared/dto/topology.d.ts.map +1 -0
- package/dist/shared/dto/topology.js +2 -0
- package/dist/shared/dto/topology.js.map +1 -0
- package/dist/shared/emergency-output.d.ts +3 -0
- package/dist/shared/emergency-output.d.ts.map +1 -0
- package/dist/shared/emergency-output.js +22 -0
- package/dist/shared/emergency-output.js.map +1 -0
- package/dist/shared/env-config.d.ts +2 -0
- package/dist/shared/env-config.d.ts.map +1 -1
- package/dist/shared/env-config.js +1 -0
- package/dist/shared/env-config.js.map +1 -1
- package/dist/shared/events.d.ts +2 -0
- package/dist/shared/events.d.ts.map +1 -1
- package/dist/shared/events.js.map +1 -1
- package/dist/shared/execution-identity.d.ts +39 -0
- package/dist/shared/execution-identity.d.ts.map +1 -0
- package/dist/shared/execution-identity.js +160 -0
- package/dist/shared/execution-identity.js.map +1 -0
- package/dist/shared/file-policy.d.ts +5 -0
- package/dist/shared/file-policy.d.ts.map +1 -0
- package/dist/shared/file-policy.js +18 -0
- package/dist/shared/file-policy.js.map +1 -0
- package/dist/shared/framework-source.d.ts +11 -0
- package/dist/shared/framework-source.d.ts.map +1 -0
- package/dist/shared/framework-source.js +31 -0
- package/dist/shared/framework-source.js.map +1 -0
- package/dist/shared/fresh-module-reader.d.ts +40 -0
- package/dist/shared/fresh-module-reader.d.ts.map +1 -0
- package/dist/shared/fresh-module-reader.js +257 -0
- package/dist/shared/fresh-module-reader.js.map +1 -0
- package/dist/shared/host-boot-identity.d.ts +12 -0
- package/dist/shared/host-boot-identity.d.ts.map +1 -0
- package/dist/shared/host-boot-identity.js +89 -0
- package/dist/shared/host-boot-identity.js.map +1 -0
- package/dist/shared/kernel-file-lock.d.ts +3 -0
- package/dist/shared/kernel-file-lock.d.ts.map +1 -0
- package/dist/shared/kernel-file-lock.js +53 -0
- package/dist/shared/kernel-file-lock.js.map +1 -0
- package/dist/shared/linux-file-lock.d.ts +4 -0
- package/dist/shared/linux-file-lock.d.ts.map +1 -0
- package/dist/shared/linux-file-lock.js +36 -0
- package/dist/shared/linux-file-lock.js.map +1 -0
- package/dist/shared/log-ingestion-reading.d.ts +9 -0
- package/dist/shared/log-ingestion-reading.d.ts.map +1 -0
- package/dist/shared/log-ingestion-reading.js +32 -0
- package/dist/shared/log-ingestion-reading.js.map +1 -0
- package/dist/shared/log-levels.d.ts +19 -0
- package/dist/shared/log-levels.d.ts.map +1 -0
- package/dist/shared/log-levels.js +23 -0
- package/dist/shared/log-levels.js.map +1 -0
- package/dist/shared/metrics-storage-reading.d.ts +8 -0
- package/dist/shared/metrics-storage-reading.d.ts.map +1 -0
- package/dist/shared/metrics-storage-reading.js +27 -0
- package/dist/shared/metrics-storage-reading.js.map +1 -0
- package/dist/shared/pnpm.d.ts.map +1 -1
- package/dist/shared/pnpm.js +7 -0
- package/dist/shared/pnpm.js.map +1 -1
- package/dist/shared/pool-scale.d.ts +10 -0
- package/dist/shared/pool-scale.d.ts.map +1 -0
- package/dist/shared/pool-scale.js +25 -0
- package/dist/shared/pool-scale.js.map +1 -0
- package/dist/shared/private-files.d.ts +10 -22
- package/dist/shared/private-files.d.ts.map +1 -1
- package/dist/shared/private-files.js +95 -82
- package/dist/shared/private-files.js.map +1 -1
- package/dist/shared/relay-reading.d.ts +19 -0
- package/dist/shared/relay-reading.d.ts.map +1 -0
- package/dist/shared/relay-reading.js +22 -0
- package/dist/shared/relay-reading.js.map +1 -0
- package/dist/shared/release-reading.d.ts +124 -32
- package/dist/shared/release-reading.d.ts.map +1 -1
- package/dist/shared/release-reading.js +208 -28
- package/dist/shared/release-reading.js.map +1 -1
- package/dist/shared/roles.d.ts +19 -18
- package/dist/shared/roles.d.ts.map +1 -1
- package/dist/shared/roles.js +21 -26
- package/dist/shared/roles.js.map +1 -1
- package/dist/shared/runtime-artifact.d.ts +20 -0
- package/dist/shared/runtime-artifact.d.ts.map +1 -0
- package/dist/shared/runtime-artifact.js +83 -0
- package/dist/shared/runtime-artifact.js.map +1 -0
- package/dist/shared/stack-reading.d.ts +18 -0
- package/dist/shared/stack-reading.d.ts.map +1 -0
- package/dist/shared/stack-reading.js +15 -0
- package/dist/shared/stack-reading.js.map +1 -0
- package/dist/shared/sync-reading.d.ts +30 -38
- package/dist/shared/sync-reading.d.ts.map +1 -1
- package/dist/shared/sync-reading.js +90 -29
- package/dist/shared/sync-reading.js.map +1 -1
- package/dist/shared/tokens.d.ts +3 -1
- package/dist/shared/tokens.d.ts.map +1 -1
- package/dist/shared/tokens.js +1 -0
- package/dist/shared/tokens.js.map +1 -1
- package/dist/supervisor/restart-policy.d.ts.map +1 -1
- package/dist/supervisor/restart-policy.js +7 -5
- package/dist/supervisor/restart-policy.js.map +1 -1
- package/dist/webapp/console-container.d.ts +7 -0
- package/dist/webapp/console-container.d.ts.map +1 -0
- package/dist/webapp/console-container.js +23 -0
- package/dist/webapp/console-container.js.map +1 -0
- package/dist/webapp/webapp.service.d.ts.map +1 -1
- package/dist/webapp/webapp.service.js +71 -24
- package/dist/webapp/webapp.service.js.map +1 -1
- package/dist/workers/health-monitor.service.d.ts.map +1 -1
- package/dist/workers/health-monitor.service.js +8 -1
- package/dist/workers/health-monitor.service.js.map +1 -1
- package/dist/workers/types.d.ts +2 -0
- package/dist/workers/types.d.ts.map +1 -1
- package/package.json +106 -44
- package/webapp/dist/BUILD.json +4 -3
- package/webapp/dist/assets/access-48hkC2-P.js +1 -0
- package/webapp/dist/assets/access-jWkHxGc7.js +1 -0
- package/webapp/dist/assets/admin-data-table-BKSDI8sU.js +1 -0
- package/webapp/dist/assets/alert-expression-CSblScoa.js +1 -0
- package/webapp/dist/assets/alert-notify-settings-C_CHZrFm.js +1 -0
- package/webapp/dist/assets/alert-uBG6r9NW.js +1 -0
- package/webapp/dist/assets/alerts-CuPQ9YQJ.js +1 -0
- package/webapp/dist/assets/app-address-BCXfN59F.js +1 -0
- package/webapp/dist/assets/apps-Drio028B.js +1 -0
- package/webapp/dist/assets/audit-npSFJECe.js +1 -0
- package/webapp/dist/assets/auth-CcgjP7hR.js +1 -0
- package/webapp/dist/assets/card-DkH32gMY.js +1 -0
- package/webapp/dist/assets/chart-BpGXlCJc.js +2 -0
- package/webapp/dist/assets/charts-BY7qI6s2.js +41 -0
- package/webapp/dist/assets/charts-CpBdHU_A.js +56 -0
- package/webapp/dist/assets/client-DFnuv2z3.js +3 -0
- package/webapp/dist/assets/code-editor-DK6Tmmxv.js +4 -0
- package/webapp/dist/assets/comparison-bars-BtC0dHjF.js +1 -0
- package/webapp/dist/assets/confirm-dialog-BbGsAz7_.js +1 -0
- package/webapp/dist/assets/console-keyboard-D3YCA0yU.js +1 -0
- package/webapp/dist/assets/constants-CyhngVXh.js +1 -0
- package/webapp/dist/assets/containers-Bl8gAyZX.js +3 -0
- package/webapp/dist/assets/context-FIuwpd9_.js +1 -0
- package/webapp/dist/assets/controls-C5W8gHU4.js +1 -0
- package/webapp/dist/assets/daemon-memory-BiEtr9jr.js +1 -0
- package/webapp/dist/assets/dashboard-UHlet3H9.js +1 -0
- package/webapp/dist/assets/dashboard-builder-67PZFqhE.js +1 -0
- package/webapp/dist/assets/dayjs.min-DHwAvH5f.js +1 -0
- package/webapp/dist/assets/deploy-release-dialog-BOXcD5Wo.js +1 -0
- package/webapp/dist/assets/deployments-qV20Ak0P.js +1 -0
- package/webapp/dist/assets/detail-B4TiBfxU.js +8 -0
- package/webapp/dist/assets/detail-B85-Wees.js +2 -0
- package/webapp/dist/assets/detail-CYS81K6Y.js +1 -0
- package/webapp/dist/assets/dist-BUDn8hLh.js +11 -0
- package/webapp/dist/assets/dist-Ci5pYRbx.js +1 -0
- package/webapp/dist/assets/dist-DQmjHv4-.js +1 -0
- package/webapp/dist/assets/dist-De9Fty7a.js +1 -0
- package/webapp/dist/assets/dist-DsGmKwmk.js +23 -0
- package/webapp/dist/assets/empty-content-7jOFhG4C.js +1 -0
- package/webapp/dist/assets/error-boundary-CLLI8PWw.js +3 -0
- package/webapp/dist/assets/event-fields-CiyqrRO8.js +1 -0
- package/webapp/dist/assets/files-DigwXndm.js +2 -0
- package/webapp/dist/assets/formatters-RnRy4bXm.js +1 -0
- package/webapp/dist/assets/icons-OboZgWSt.js +1 -0
- package/webapp/dist/assets/index-uq8Dkk4c.js +1 -0
- package/webapp/dist/assets/label-B1SF0RTL.js +1 -0
- package/webapp/dist/assets/log-level-filter-Bcn31D1F.js +1 -0
- package/webapp/dist/assets/log-location-DuBjh6HQ.js +1 -0
- package/webapp/dist/assets/logs-BqHOufk8.js +4 -0
- package/webapp/dist/assets/metric-chart-M-kI-XOt.js +1 -0
- package/webapp/dist/assets/metric-series-WxePniyw.js +1 -0
- package/webapp/dist/assets/metrics-QIQaF7iS.js +1 -0
- package/webapp/dist/assets/model-ZEXEHm0l.js +2 -0
- package/webapp/dist/assets/mui-6ssfcZcz.js +1 -0
- package/webapp/dist/assets/mui-AnEgAVjz.js +52 -0
- package/webapp/dist/assets/mui-B1jrje6Z.js +1 -0
- package/webapp/dist/assets/mui-BIz4LSVs.js +1 -0
- package/webapp/dist/assets/mui-BTN91yBK.js +28 -0
- package/webapp/dist/assets/mui-BXSXx9c9.js +124 -0
- package/webapp/dist/assets/mui-BwsIrivo.js +37 -0
- package/webapp/dist/assets/mui-C_hromOc.js +1 -0
- package/webapp/dist/assets/mui-Cd711nOk.js +4 -0
- package/webapp/dist/assets/mui-CdB_p2lt.js +10 -0
- package/webapp/dist/assets/mui-DyT2n1lx.js +1 -0
- package/webapp/dist/assets/mui-agG5dued.js +1 -0
- package/webapp/dist/assets/mui-y44PQOfG.js +1 -0
- package/webapp/dist/assets/nodes-BJPk02vv.js +7 -0
- package/webapp/dist/assets/omnitron-logo-koMCbsCv.js +1 -0
- package/webapp/dist/assets/operation-status-Bm1x1wTz.js +1 -0
- package/webapp/dist/assets/page-breadcrumbs-fR7Jmpp4.js +1 -0
- package/webapp/dist/assets/pipelines-T6Ch9LTw.js +3 -0
- package/webapp/dist/assets/popper-m_9b0JRf.js +1 -0
- package/webapp/dist/assets/preload-helper-DzCYNvzR.js +1 -0
- package/webapp/dist/assets/project.store--G5pIF-J.js +1 -0
- package/webapp/dist/assets/projects-YoBzcQ24.js +1 -0
- package/webapp/dist/assets/react-BN8qLIAi.js +9 -0
- package/webapp/dist/assets/react-CEuifcaQ.js +1 -0
- package/webapp/dist/assets/react-apexcharts.esm-DoOt-pu4.js +1 -0
- package/webapp/dist/assets/realtime.store-CBDO4Abj.js +1 -0
- package/webapp/dist/assets/release-bits-B2a_wbft.js +1 -0
- package/webapp/dist/assets/release-build-panel-BQmIdKW9.js +1 -0
- package/webapp/dist/assets/release-deployment-state-DRrEI2pP.js +1 -0
- package/webapp/dist/assets/release-wire-f2VuBoBF.js +1 -0
- package/webapp/dist/assets/releases-Bp3CDgmo.js +2 -0
- package/webapp/dist/assets/rolldown-runtime-CNOWq4Kh.js +1 -0
- package/webapp/dist/assets/search-input-C0MHI8vO.js +1 -0
- package/webapp/dist/assets/services-BddvcFi8.js +1 -0
- package/webapp/dist/assets/settings-B3egRvbI.js +1 -0
- package/webapp/dist/assets/settled-pair-B-wgSZl6.js +1 -0
- package/webapp/dist/assets/shared-styles-C0vN3I7_.js +1 -0
- package/webapp/dist/assets/shell-command-C3pXf1vi.js +1 -0
- package/webapp/dist/assets/sign-in-9q-Nfy83.js +1 -0
- package/webapp/dist/assets/skeleton-BmWDJWF9.js +1 -0
- package/webapp/dist/assets/snackbar-DSPmjMyi.js +1 -0
- package/webapp/dist/assets/stack-health-status-BIv2C10x.js +1 -0
- package/webapp/dist/assets/stack-start-notice-BVnMOwRQ.js +1 -0
- package/webapp/dist/assets/stacks-IZ1mfizi.js +1 -0
- package/webapp/dist/assets/storage-CKXnhqkt.js +1 -0
- package/webapp/dist/assets/store-bqUBn2A4.js +1 -0
- package/webapp/dist/assets/sync-reading-CN0jPKAg.js +1 -0
- package/webapp/dist/assets/system-info-BFKNM-hf.js +1 -0
- package/webapp/dist/assets/table-BOWT6Y9d.js +1 -0
- package/webapp/dist/assets/table-viewport-Bp4pq-c_.js +1 -0
- package/webapp/dist/assets/tabs-k5NPGLnJ.js +1 -0
- package/webapp/dist/assets/terminal-BrP-ENHg.css +1 -0
- package/webapp/dist/assets/terminal-QWBau-Us.js +62 -0
- package/webapp/dist/assets/terminal-input-b7f2VoE_.js +2 -0
- package/webapp/dist/assets/topology-CPey5dP6.js +8 -0
- package/webapp/dist/assets/topology-metadata-dialog-BivuU2y6.js +2 -0
- package/webapp/dist/assets/topology-routes.worker-BoYrIzAH.js +1 -0
- package/webapp/dist/assets/traces-By0rdfDC.js +1 -0
- package/webapp/dist/assets/use-copy-to-clipboard-BWYpToS3.js +1 -0
- package/webapp/dist/assets/use-polled-resource-B22hhr5L.js +1 -0
- package/webapp/dist/assets/use-stack-context-UkBsF-l7.js +1 -0
- package/webapp/dist/assets/webapp-BnxOVfrc.css +1 -0
- package/webapp/dist/assets/webapp-D-UhjFhS.js +35 -0
- package/webapp/dist/console-version.json +1 -0
- package/webapp/dist/index.html +54 -7
- package/dist/release/daemon-omni.d.ts +0 -41
- package/dist/release/daemon-omni.d.ts.map +0 -1
- package/dist/release/daemon-omni.js +0 -59
- package/dist/release/daemon-omni.js.map +0 -1
- package/dist/services/netron-telemetry-transport.d.ts +0 -42
- package/dist/services/netron-telemetry-transport.d.ts.map +0 -1
- package/dist/services/netron-telemetry-transport.js +0 -93
- package/dist/services/netron-telemetry-transport.js.map +0 -1
- package/webapp/dist/assets/FormControlLabel-BbSxpQwN.js +0 -1
- package/webapp/dist/assets/Grid-DizFZYue.js +0 -1
- package/webapp/dist/assets/Switch-Bfiqzx8l.js +0 -1
- package/webapp/dist/assets/alerts-DH_RVRS3.js +0 -1
- package/webapp/dist/assets/apps-B96355sz.js +0 -1
- package/webapp/dist/assets/audit-CYGtbi4k.js +0 -1
- package/webapp/dist/assets/client-BmqFExWT.js +0 -1
- package/webapp/dist/assets/constants-veKGFkC6.js +0 -1
- package/webapp/dist/assets/containers-B_TpThln.js +0 -2
- package/webapp/dist/assets/daemon-memory-CCPZ4cV_.js +0 -1
- package/webapp/dist/assets/dashboard-DHf2_65N.js +0 -1
- package/webapp/dist/assets/dashboard-builder-CWY2pjeG.js +0 -1
- package/webapp/dist/assets/deploy-release-dialog-Dp-zpSAd.js +0 -1
- package/webapp/dist/assets/deployments-tJI6O3fK.js +0 -1
- package/webapp/dist/assets/detail-B2zP1Hto.js +0 -8
- package/webapp/dist/assets/detail-CoIrwmsy.js +0 -1
- package/webapp/dist/assets/detail-DWaGaOtL.js +0 -2
- package/webapp/dist/assets/formatters-BqjL73N3.js +0 -1
- package/webapp/dist/assets/fs-Ccl3sAcp.js +0 -1
- package/webapp/dist/assets/index-Dvo0iprx.css +0 -1
- package/webapp/dist/assets/index-vMnY_4jR.js +0 -412
- package/webapp/dist/assets/logs-DTRjOfX8.js +0 -12
- package/webapp/dist/assets/maplibre-gl-DowHoZAx.js +0 -814
- package/webapp/dist/assets/metrics-UCajtdox.js +0 -2
- package/webapp/dist/assets/nodes-DuTVU0f6.js +0 -7
- package/webapp/dist/assets/pipelines-C8BeDcAl.js +0 -4
- package/webapp/dist/assets/projects-Dp_zFfLY.js +0 -1
- package/webapp/dist/assets/react-DlmbjZJV.js +0 -1
- package/webapp/dist/assets/react-apexcharts.esm-C8pn45ml.js +0 -97
- package/webapp/dist/assets/release-bits-BzTKz5fM.js +0 -1
- package/webapp/dist/assets/release-build-panel-DcW9YcXQ.js +0 -1
- package/webapp/dist/assets/releases-B4hcr1bE.js +0 -2
- package/webapp/dist/assets/rolldown-runtime-XKyaHtl9.js +0 -1
- package/webapp/dist/assets/settings-DIteZTbe.js +0 -1
- package/webapp/dist/assets/settled-pair-C7SjZuns.js +0 -1
- package/webapp/dist/assets/sign-in-D4kMBOHp.js +0 -1
- package/webapp/dist/assets/stacks-Brnf-EB7.js +0 -1
- package/webapp/dist/assets/sync-reading-C3PnJ7AX.js +0 -1
- package/webapp/dist/assets/system-info-CFDNVKkU.js +0 -1
- package/webapp/dist/assets/topology-7WeTUsDN.js +0 -12
- package/webapp/dist/assets/traces-9c3gwCN-.js +0 -1
- package/webapp/dist/assets/use-stack-context-CnA5FTHu.js +0 -1
|
@@ -1,31 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* Replaces: docker-compose.dev.yml + dev.sh + .env.dev
|
|
12
|
-
*
|
|
13
|
-
* Architecture:
|
|
14
|
-
* InfrastructureConfig → ServiceResolver → ResolvedContainer[]
|
|
15
|
-
* ResolvedContainer[] → ContainerRuntime → Docker CLI
|
|
16
|
-
* Health Loop → detect failure → auto-restart (exponential backoff)
|
|
17
|
-
*/
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { RecoveryMutation, RecoveryBusyError } from '../daemon/recovery-state.js';
|
|
18
11
|
import { computeBackoff } from '@omnitron-dev/titan/utils';
|
|
12
|
+
import { describeError } from '@omnitron-dev/titan/diagnostics';
|
|
13
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
19
14
|
import { resolveInfrastructure, resolveOmnitronPg, getManagedNetwork } from './service-resolver.js';
|
|
15
|
+
import { ownedContainerId } from './owned-container.js';
|
|
16
|
+
import { observeUnhealthy } from './health-recovery.js';
|
|
17
|
+
import { normalizeInfraConfig } from './config-normalizer.js';
|
|
18
|
+
import { createDefaultRegistry } from './presets/index.js';
|
|
20
19
|
import { PhantomEndpointJanitor } from './phantom-endpoint-janitor.js';
|
|
21
20
|
import { LOCAL_INFRA_HOST } from '../shared/local-infra-host.js';
|
|
22
|
-
import { isDockerAvailable, getContainerState, createContainer, startContainer, removeContainer, ensureImage, waitForHealthy, createVolume, containerSpecHash, } from './container-runtime.js';
|
|
23
|
-
import { summariseProvisioning, describeProvisioning } from './provisioning-outcome.js';
|
|
21
|
+
import { isDockerAvailable, getContainerState, createContainer, startContainer, removeContainer, ensureImage, waitForHealthy, createVolume, containerSpecHash, containerResources, containerResourcesMatch, } from './container-runtime.js';
|
|
22
|
+
import { summariseProvisioning, describeProvisioning, retainProvisioningObservation } from './provisioning-outcome.js';
|
|
24
23
|
import { OMNITRON_PG_PORT, OMNITRON_PG_USER, OMNITRON_PG_PASSWORD, OMNITRON_PG_DATABASE, } from '../database/connection.js';
|
|
25
24
|
const RECONCILE_INTERVAL = 30_000; // 30s health sweep
|
|
26
25
|
const STARTUP_TIMEOUT = 120_000; // 2min max per service
|
|
27
|
-
/** Consecutive 'unhealthy' ticks before recreate. 2 ticks @ 30s = 60s grace. */
|
|
28
|
-
const UNHEALTHY_RESTART_THRESHOLD = 2;
|
|
29
26
|
/** Restart circuit-breaker: first failed-restart backoff, doubled each failure. */
|
|
30
27
|
const RESTART_BACKOFF_BASE = 30_000; // 30s
|
|
31
28
|
/** Restart circuit-breaker: backoff ceiling (30s → 1m → 2m … capped here). */
|
|
@@ -94,6 +91,7 @@ export class InfrastructureService {
|
|
|
94
91
|
presetRegistry;
|
|
95
92
|
serviceOverrides;
|
|
96
93
|
needsControlPlaneDatabase;
|
|
94
|
+
retiredStacks = new Set();
|
|
97
95
|
desiredContainers = [];
|
|
98
96
|
/** What the most recent reconcile did to each service. */
|
|
99
97
|
lastActions = new Map();
|
|
@@ -102,15 +100,8 @@ export class InfrastructureService {
|
|
|
102
100
|
healthTimer = null;
|
|
103
101
|
state = { services: {}, ready: false };
|
|
104
102
|
normalizedServices;
|
|
105
|
-
/**
|
|
106
|
-
|
|
107
|
-
* UNHEALTHY_RESTART_THRESHOLD ticks in a row to avoid flapping during
|
|
108
|
-
* cold-start / transient health-check timeouts. Reset to 0 on a healthy
|
|
109
|
-
* observation. Without this, a service that briefly fails one health
|
|
110
|
-
* probe (network blip, slow query) would be torn down and recreated,
|
|
111
|
-
* making transient pressure look like outages.
|
|
112
|
-
*/
|
|
113
|
-
unhealthyTicks = new Map();
|
|
103
|
+
/** Distinct completed probes and elapsed grace, bound to one native incarnation. */
|
|
104
|
+
unhealthyEvidence = new Map();
|
|
114
105
|
/**
|
|
115
106
|
* Per-service restart circuit-breaker. A container whose (re)create keeps
|
|
116
107
|
* failing — an image that won't pull, or infra stuck on an unrecoverable
|
|
@@ -127,6 +118,8 @@ export class InfrastructureService {
|
|
|
127
118
|
* once we know Docker is reachable; torn down in `teardown()`.
|
|
128
119
|
*/
|
|
129
120
|
phantomJanitor = null;
|
|
121
|
+
handoffMonitoring = false;
|
|
122
|
+
janitorNetworks = [];
|
|
130
123
|
constructor(logger, config, normalizedServices, presetRegistry,
|
|
131
124
|
/**
|
|
132
125
|
* Stack overrides. A service marked `disabled` here is not provisioned,
|
|
@@ -148,8 +141,14 @@ export class InfrastructureService {
|
|
|
148
141
|
this.presetRegistry = presetRegistry;
|
|
149
142
|
this.serviceOverrides = serviceOverrides;
|
|
150
143
|
this.needsControlPlaneDatabase = needsControlPlaneDatabase;
|
|
151
|
-
this.
|
|
144
|
+
this.presetRegistry ??= createDefaultRegistry();
|
|
145
|
+
if (!normalizedServices) {
|
|
146
|
+
normalizedServices = normalizeInfraConfig(config, this.presetRegistry);
|
|
147
|
+
}
|
|
148
|
+
this.normalizedServices = normalizedServices;
|
|
152
149
|
this.desiredContainers = resolveInfrastructure(config, normalizedServices, serviceOverrides);
|
|
150
|
+
for (const desired of this.desiredContainers)
|
|
151
|
+
containerResources(desired);
|
|
153
152
|
this.omnitronPgContainer = resolveOmnitronPg();
|
|
154
153
|
}
|
|
155
154
|
/**
|
|
@@ -166,24 +165,25 @@ export class InfrastructureService {
|
|
|
166
165
|
* benign collision — the shared service was actually fine).
|
|
167
166
|
*
|
|
168
167
|
* The intended semantics for shared infrastructure is "all apps that
|
|
169
|
-
* declare `postgres` use the same container", so
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
* can reconcile intent vs. config.
|
|
168
|
+
* declare `postgres` use the same container", so
|
|
169
|
+
* identical declarations are shared. Conflicting specifications refuse
|
|
170
|
+
* the plan before anything is provisioned.
|
|
173
171
|
*/
|
|
174
172
|
addAppContainers(containers) {
|
|
173
|
+
for (const desired of containers)
|
|
174
|
+
containerResources(desired);
|
|
175
|
+
if (this.monitoringRelinquished)
|
|
176
|
+
throw new Error('Infrastructure monitoring ownership has been relinquished');
|
|
177
|
+
if (this.ownershipFrozen)
|
|
178
|
+
throw new Error('Infrastructure ownership is frozen');
|
|
175
179
|
for (const c of containers) {
|
|
176
180
|
const existing = this.desiredContainers.find((d) => d.name === c.name);
|
|
177
181
|
if (!existing) {
|
|
178
182
|
this.desiredContainers.push(c);
|
|
179
183
|
continue;
|
|
180
184
|
}
|
|
181
|
-
if (
|
|
182
|
-
|
|
183
|
-
container: c.name,
|
|
184
|
-
existingImage: existing.image,
|
|
185
|
-
duplicateImage: c.image,
|
|
186
|
-
}, 'Duplicate container declaration with differing shape — keeping first; check for conflicting app infrastructure requirements (T#76)');
|
|
185
|
+
if (containerSpecHash(existing) !== containerSpecHash(c)) {
|
|
186
|
+
throw new Error(`Conflicting infrastructure declarations for ${c.name}; use one shared specification or distinct service names`);
|
|
187
187
|
}
|
|
188
188
|
// else: identical declaration, silent dedupe — this is the common case
|
|
189
189
|
}
|
|
@@ -193,7 +193,62 @@ export class InfrastructureService {
|
|
|
193
193
|
* Ensures Docker is available, pulls images, creates/starts containers,
|
|
194
194
|
* runs post-provisioning setup, and starts the health monitor.
|
|
195
195
|
*/
|
|
196
|
-
async provision() {
|
|
196
|
+
async provision(definition) {
|
|
197
|
+
if (this.monitoringRelinquished)
|
|
198
|
+
throw new Error('Infrastructure monitoring ownership has been relinquished');
|
|
199
|
+
if (this.ownershipFrozen)
|
|
200
|
+
throw new Error('Infrastructure ownership is frozen');
|
|
201
|
+
if (this.provisioning) {
|
|
202
|
+
if (definition)
|
|
203
|
+
throw new Error('Infrastructure provisioning is already in progress; retry the new declaration after it finishes');
|
|
204
|
+
return this.provisioning;
|
|
205
|
+
}
|
|
206
|
+
const task = this.provisionDefinition(definition);
|
|
207
|
+
this.provisioning = task;
|
|
208
|
+
try {
|
|
209
|
+
return await task;
|
|
210
|
+
}
|
|
211
|
+
finally {
|
|
212
|
+
if (this.provisioning === task)
|
|
213
|
+
this.provisioning = undefined;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
/** Resolve a plan without installing another monitor or changing the current definition. */
|
|
217
|
+
resolveDefinition(config, services, overrides) {
|
|
218
|
+
return new InfrastructureService(this.logger, config, services, this.presetRegistry, overrides, this.needsControlPlaneDatabase);
|
|
219
|
+
}
|
|
220
|
+
async provisionDefinition(definition) {
|
|
221
|
+
const monitored = this.healthTimer !== null;
|
|
222
|
+
this.definitionChanging = true;
|
|
223
|
+
try {
|
|
224
|
+
try {
|
|
225
|
+
// An old sweep must finish before fresh declarations can authorize native work.
|
|
226
|
+
const drained = await Promise.allSettled([...this.activeSweeps, ...this.reconcileTasks.values()]);
|
|
227
|
+
if (drained.some(result => result.status === 'rejected'))
|
|
228
|
+
throw new Error('In-flight infrastructure reconciliation failed; inspect it before retrying provisioning');
|
|
229
|
+
await this.phantomJanitor?.drain();
|
|
230
|
+
if (definition && this.ownershipFrozen)
|
|
231
|
+
throw new Error('Infrastructure ownership changed before the new declaration was applied');
|
|
232
|
+
if (definition)
|
|
233
|
+
this.replaceDefinitionFrom(definition);
|
|
234
|
+
this.state.ready = false;
|
|
235
|
+
}
|
|
236
|
+
finally {
|
|
237
|
+
this.definitionChanging = false;
|
|
238
|
+
}
|
|
239
|
+
return await this.provisionOwned();
|
|
240
|
+
}
|
|
241
|
+
finally {
|
|
242
|
+
// Failed Docker admission must not silently abandon previously owned services.
|
|
243
|
+
if (monitored && !this.ownershipFrozen && !this.monitoringRelinquished) {
|
|
244
|
+
this.startHealthMonitor();
|
|
245
|
+
this.phantomJanitor?.start();
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
async provisionOwned() {
|
|
250
|
+
for (const desired of [...this.desiredContainers, ...this.controlPlaneContainers()])
|
|
251
|
+
containerResources(desired);
|
|
197
252
|
// 1. Verify Docker is available
|
|
198
253
|
if (!(await isDockerAvailable())) {
|
|
199
254
|
throw new Error('Docker is not available. Omnitron requires Docker to manage infrastructure.\n' +
|
|
@@ -218,20 +273,17 @@ export class InfrastructureService {
|
|
|
218
273
|
// 0.0.0.0:5480 on a host whose firewall allows only SSH.
|
|
219
274
|
//
|
|
220
275
|
// The control plane's database belongs to the control plane.
|
|
221
|
-
this.logger.debug('
|
|
276
|
+
this.logger.debug('Control-plane database provisioning is outside this infrastructure allocation');
|
|
222
277
|
}
|
|
223
278
|
else if (decision.action === 'reconcile') {
|
|
224
279
|
this.usingGlobalOmnitronPg = true;
|
|
225
280
|
// A stack-prefixed leftover cannot run beside the global one — they
|
|
226
281
|
// share port 5480 — so it goes before anything else touches that port.
|
|
227
282
|
if (this.omnitronPgContainer.name !== decision.reconcileName) {
|
|
228
|
-
const stalePg = await getContainerState(this.omnitronPgContainer.name);
|
|
283
|
+
const stalePg = await getContainerState(this.omnitronPgContainer.name, { orThrow: true, fullId: true });
|
|
229
284
|
if (stalePg) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
this.logger.info({ service: this.omnitronPgContainer.name }, 'Removed stale stack-prefixed PG container');
|
|
233
|
-
}
|
|
234
|
-
catch { /* already gone */ }
|
|
285
|
+
await removeContainer(ownedContainerId(this.omnitronPgContainer, stalePg));
|
|
286
|
+
this.logger.info({ service: this.omnitronPgContainer.name }, 'Removed stale stack-prefixed PG container');
|
|
235
287
|
}
|
|
236
288
|
}
|
|
237
289
|
// The same reconcile, and so the same drift check, as every app
|
|
@@ -307,8 +359,9 @@ export class InfrastructureService {
|
|
|
307
359
|
// a Docker daemon restart / host suspend doesn't leave us
|
|
308
360
|
// unable to recreate containers ("endpoint with name X
|
|
309
361
|
// already exists in network ...").
|
|
362
|
+
this.janitorNetworks = [getManagedNetwork()];
|
|
310
363
|
this.phantomJanitor = new PhantomEndpointJanitor({
|
|
311
|
-
networks:
|
|
364
|
+
networks: this.janitorNetworks,
|
|
312
365
|
intervalMs: 60_000,
|
|
313
366
|
logger: this.logger,
|
|
314
367
|
});
|
|
@@ -343,6 +396,10 @@ export class InfrastructureService {
|
|
|
343
396
|
* attempted" by reading `state.services` alone: the second leaves no entry,
|
|
344
397
|
* and an absent entry is indistinguishable from an absent problem.
|
|
345
398
|
*/
|
|
399
|
+
/** Internal immutable plan. Never expose environment or command values through RPC. */
|
|
400
|
+
getDesiredContainers() {
|
|
401
|
+
return structuredClone(this.desiredContainers);
|
|
402
|
+
}
|
|
346
403
|
getDesiredServices() {
|
|
347
404
|
return this.desiredContainers.map((c) => ({ name: c.name, image: c.image }));
|
|
348
405
|
}
|
|
@@ -353,8 +410,8 @@ export class InfrastructureService {
|
|
|
353
410
|
* earlier monitor/reconcile work before acknowledging a handoff.
|
|
354
411
|
*/
|
|
355
412
|
async refreshOwnershipFrom(candidate) {
|
|
356
|
-
if (this.ownershipFrozen)
|
|
357
|
-
throw new Error('Infrastructure ownership refresh already in progress');
|
|
413
|
+
if (this.ownershipFrozen || this.provisioning)
|
|
414
|
+
throw new Error('Infrastructure ownership refresh or provisioning already in progress');
|
|
358
415
|
this.ownershipFrozen = true;
|
|
359
416
|
try {
|
|
360
417
|
const drained = await Promise.allSettled([...this.activeSweeps, ...this.reconcileTasks.values()]);
|
|
@@ -376,29 +433,129 @@ export class InfrastructureService {
|
|
|
376
433
|
const actual = await getContainerState(name);
|
|
377
434
|
const labels = desired.labels;
|
|
378
435
|
if (!labels['omnitron.project'] || !labels['omnitron.stack'] || labels['omnitron.managed'] !== 'true' ||
|
|
379
|
-
actual?.status !== 'running' || actual.networkAttached === false || actual.specHash !== containerSpecHash(desired) ||
|
|
436
|
+
actual?.status !== 'running' || actual.networkAttached === false || actual.specHash !== containerSpecHash(desired) || !containerResourcesMatch(desired, actual) ||
|
|
380
437
|
Object.entries(labels).some(([key, value]) => actual.labels?.[key] !== value)) {
|
|
381
438
|
throw new Error(`Cannot adopt service without matching running native ownership and spec: ${name}`);
|
|
382
439
|
}
|
|
383
440
|
adopted.push(name);
|
|
384
441
|
}
|
|
385
442
|
const released = [...current.keys()].filter(name => !next.has(name));
|
|
386
|
-
this.
|
|
387
|
-
this.config = candidate.config;
|
|
388
|
-
this.normalizedServices = candidate.normalizedServices;
|
|
389
|
-
this.serviceOverrides = candidate.serviceOverrides;
|
|
390
|
-
for (const name of released) {
|
|
391
|
-
delete this.state.services[name];
|
|
392
|
-
this.unhealthyTicks.delete(name);
|
|
393
|
-
this.restartBackoff.delete(name);
|
|
394
|
-
this.lastActions.delete(name);
|
|
395
|
-
}
|
|
443
|
+
this.replaceDefinitionFrom(candidate);
|
|
396
444
|
return { released, adopted };
|
|
397
445
|
}
|
|
398
446
|
finally {
|
|
399
447
|
this.ownershipFrozen = false;
|
|
400
448
|
}
|
|
401
449
|
}
|
|
450
|
+
/** Freeze and drain Docker mutations before another backend takes monitoring ownership. */
|
|
451
|
+
async prepareHandoff() {
|
|
452
|
+
if (this.ownershipFrozen)
|
|
453
|
+
throw new Error('Infrastructure ownership is already frozen');
|
|
454
|
+
this.ownershipFrozen = true;
|
|
455
|
+
this.handoffMonitoring = this.healthTimer !== null;
|
|
456
|
+
try {
|
|
457
|
+
const settled = await Promise.allSettled([...this.activeSweeps, ...this.reconcileTasks.values(), ...(this.provisioning ? [this.provisioning] : [])]);
|
|
458
|
+
if (settled.some(result => result.status === 'rejected'))
|
|
459
|
+
throw new Error('Infrastructure reconciliation failed while draining');
|
|
460
|
+
await this.phantomJanitor?.drain();
|
|
461
|
+
const observations = await InfrastructureService.validateHandoffContainers(this.desiredContainers, this.needsControlPlaneDatabase && !this.usingGlobalOmnitronPg ? this.omnitronPgContainer : undefined, this.state, { protocol: 1 });
|
|
462
|
+
this.dispose();
|
|
463
|
+
const snapshot = this.ownershipSnapshot(this.handoffMonitoring);
|
|
464
|
+
snapshot.nativeState = { protocol: 1, observations };
|
|
465
|
+
return snapshot;
|
|
466
|
+
}
|
|
467
|
+
catch (error) {
|
|
468
|
+
this.resumeAfterHandoff();
|
|
469
|
+
throw error;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
captureRecoveryState() {
|
|
473
|
+
if (this.ownershipFrozen || this.provisioning || this.activeSweeps.size || this.reconcileTasks.size) {
|
|
474
|
+
throw new RecoveryBusyError('Infrastructure ownership is changing; a recovery snapshot is not ready');
|
|
475
|
+
}
|
|
476
|
+
return this.ownershipSnapshot(this.healthTimer !== null);
|
|
477
|
+
}
|
|
478
|
+
ownershipSnapshot(monitoring) {
|
|
479
|
+
return structuredClone({
|
|
480
|
+
nativeState: { protocol: 1 },
|
|
481
|
+
retiredStacks: [...this.retiredStacks],
|
|
482
|
+
config: this.config, containers: this.desiredContainers, normalizedServices: this.normalizedServices,
|
|
483
|
+
...(this.serviceOverrides && { serviceOverrides: this.serviceOverrides }),
|
|
484
|
+
state: this.state, usingGlobalOmnitronPg: this.usingGlobalOmnitronPg,
|
|
485
|
+
needsControlPlaneDatabase: this.needsControlPlaneDatabase, monitoring,
|
|
486
|
+
controlPlaneContainer: this.omnitronPgContainer, janitorNetworks: this.janitorNetworks,
|
|
487
|
+
// Protocol1 rollback readers retain the old field but restart their
|
|
488
|
+
// confirmation window; poll counts cannot encode native observations.
|
|
489
|
+
unhealthyTicks: [], unhealthyEvidence: [...this.unhealthyEvidence], restartBackoff: [...this.restartBackoff],
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
resumeAfterHandoff() {
|
|
493
|
+
if (this.monitoringRelinquished)
|
|
494
|
+
return;
|
|
495
|
+
this.ownershipFrozen = false;
|
|
496
|
+
if (this.handoffMonitoring)
|
|
497
|
+
this.startHealthMonitor();
|
|
498
|
+
if (!this.phantomJanitor && this.janitorNetworks.length) {
|
|
499
|
+
this.phantomJanitor = new PhantomEndpointJanitor({ networks: this.janitorNetworks, intervalMs: 60_000, logger: this.logger });
|
|
500
|
+
this.phantomJanitor.start();
|
|
501
|
+
}
|
|
502
|
+
this.handoffMonitoring = false;
|
|
503
|
+
}
|
|
504
|
+
/** Read and validate existing containers. Never provision, start or recreate during adoption. */
|
|
505
|
+
static async adoptHandoff(logger, snapshot) {
|
|
506
|
+
await InfrastructureService.validateHandoffContainers(snapshot.containers, snapshot.needsControlPlaneDatabase && !snapshot.usingGlobalOmnitronPg ? snapshot.controlPlaneContainer : undefined, snapshot.state, snapshot.nativeState);
|
|
507
|
+
const service = new InfrastructureService(logger, snapshot.config, snapshot.normalizedServices, undefined, snapshot.serviceOverrides, snapshot.needsControlPlaneDatabase);
|
|
508
|
+
service.desiredContainers = structuredClone(snapshot.containers);
|
|
509
|
+
for (const key of snapshot.retiredStacks ?? [])
|
|
510
|
+
service.retiredStacks.add(key);
|
|
511
|
+
service.omnitronPgContainer = structuredClone(snapshot.controlPlaneContainer);
|
|
512
|
+
service.janitorNetworks = [...snapshot.janitorNetworks];
|
|
513
|
+
service.unhealthyEvidence = new Map(snapshot.unhealthyEvidence ?? []);
|
|
514
|
+
service.restartBackoff = new Map(snapshot.restartBackoff);
|
|
515
|
+
Object.assign(service.state, structuredClone(snapshot.state));
|
|
516
|
+
service.usingGlobalOmnitronPg = snapshot.usingGlobalOmnitronPg;
|
|
517
|
+
service.handoffMonitoring = snapshot.monitoring;
|
|
518
|
+
service.ownershipFrozen = true;
|
|
519
|
+
return service;
|
|
520
|
+
}
|
|
521
|
+
static async validateHandoffContainers(containers, controlPlane, state, nativeState) {
|
|
522
|
+
if (nativeState && nativeState.protocol !== 1)
|
|
523
|
+
throw new Error('Unsupported infrastructure native observation protocol');
|
|
524
|
+
const desiredContainers = [...containers, ...(controlPlane ? [controlPlane] : [])];
|
|
525
|
+
const expected = nativeState?.observations && new Map(nativeState.observations.map(entry => [entry.name, entry.containerId]));
|
|
526
|
+
if (expected && (expected.size !== nativeState.observations.length || expected.size !== desiredContainers.length ||
|
|
527
|
+
desiredContainers.some(desired => !expected.has(desired.name))))
|
|
528
|
+
throw new Error('Incomplete infrastructure native observations');
|
|
529
|
+
const observations = [];
|
|
530
|
+
for (const desired of desiredContainers) {
|
|
531
|
+
const actual = await getContainerState(desired.name, { orThrow: true, fullId: true });
|
|
532
|
+
const previous = state.services[desired.name];
|
|
533
|
+
// A failed creation owns no native container. Preserve that failure and
|
|
534
|
+
// its desired declaration; it must not make every backend upgrade fail.
|
|
535
|
+
// Missing previously observed or supposedly running resources still fail
|
|
536
|
+
// closed, as do legacy snapshots without the explicit protocol.
|
|
537
|
+
const failedCreation = nativeState?.protocol === 1 && previous?.status === 'exited' &&
|
|
538
|
+
!previous.containerId && typeof previous.error === 'string' && previous.error.length > 0;
|
|
539
|
+
if (!actual) {
|
|
540
|
+
if (!failedCreation || (expected && expected.get(desired.name) !== null))
|
|
541
|
+
throw new Error(`Infrastructure identity or specification changed during handoff: ${desired.name}`);
|
|
542
|
+
observations.push({ name: desired.name, containerId: null });
|
|
543
|
+
continue;
|
|
544
|
+
}
|
|
545
|
+
// Protocol 1 exported Docker's 12-character display ID. Keep its wire
|
|
546
|
+
// shape for rollback, while comparing a full prior state ID when present.
|
|
547
|
+
const matches = (id) => id?.length === 12
|
|
548
|
+
? actual.containerId?.startsWith(id) : id === actual.containerId;
|
|
549
|
+
if (!actual.containerId || actual.specHash !== containerSpecHash(desired) || !containerResourcesMatch(desired, actual) ||
|
|
550
|
+
(expected && !matches(expected.get(desired.name))) ||
|
|
551
|
+
(previous?.containerId && !matches(previous.containerId)) ||
|
|
552
|
+
Object.entries(desired.labels).some(([key, value]) => actual.labels?.[key] !== value)) {
|
|
553
|
+
throw new Error(`Infrastructure identity or specification changed during handoff: ${desired.name}`);
|
|
554
|
+
}
|
|
555
|
+
observations.push({ name: desired.name, containerId: actual.containerId.slice(0, 12) });
|
|
556
|
+
}
|
|
557
|
+
return observations;
|
|
558
|
+
}
|
|
402
559
|
/**
|
|
403
560
|
* Services whose socket is new since this reconcile began.
|
|
404
561
|
*
|
|
@@ -423,22 +580,88 @@ export class InfrastructureService {
|
|
|
423
580
|
this.phantomJanitor = null;
|
|
424
581
|
}
|
|
425
582
|
}
|
|
583
|
+
/** Permanently release this entire observer, preserving every native resource. */
|
|
584
|
+
async relinquishMonitoring() {
|
|
585
|
+
if (this.monitoringRelinquished)
|
|
586
|
+
return [...this.relinquishedNames];
|
|
587
|
+
if (this.ownershipFrozen)
|
|
588
|
+
throw new Error('Infrastructure ownership is already frozen');
|
|
589
|
+
this.ownershipFrozen = true;
|
|
590
|
+
this.handoffMonitoring = false;
|
|
591
|
+
this.stopHealthMonitor();
|
|
592
|
+
const settled = await Promise.allSettled([
|
|
593
|
+
...this.activeSweeps, ...this.reconcileTasks.values(), ...(this.provisioning ? [this.provisioning] : []),
|
|
594
|
+
]);
|
|
595
|
+
// An already admitted provision may have created its janitor while being
|
|
596
|
+
// drained. Take the current reference only after that actor has completed.
|
|
597
|
+
await this.phantomJanitor?.drain();
|
|
598
|
+
// Rejected tasks are also finished. Their diagnostic remains in the state;
|
|
599
|
+
// relinquishing authority neither retries nor reverses their native work.
|
|
600
|
+
const failed = settled.filter(result => result.status === 'rejected').length;
|
|
601
|
+
if (failed)
|
|
602
|
+
this.logger.warn({ failed }, 'Infrastructure monitoring released after earlier reconciliation failures');
|
|
603
|
+
this.relinquishedNames = [...new Set([...this.desiredContainers, ...this.controlPlaneContainers()].map(item => item.name))];
|
|
604
|
+
this.monitoringRelinquished = true;
|
|
605
|
+
this.dispose();
|
|
606
|
+
this.janitorNetworks = [];
|
|
607
|
+
return [...this.relinquishedNames];
|
|
608
|
+
}
|
|
609
|
+
/** Stop reconciliation for exactly one allocation, retaining every other scope. */
|
|
610
|
+
async retireStack(scope) {
|
|
611
|
+
if (this.monitoringRelinquished)
|
|
612
|
+
throw new Error('Infrastructure monitoring ownership has been relinquished');
|
|
613
|
+
if (this.ownershipFrozen)
|
|
614
|
+
throw new Error('Infrastructure ownership is frozen');
|
|
615
|
+
const key = `${scope.project}/${scope.stack}`;
|
|
616
|
+
this.retiredStacks.add(key);
|
|
617
|
+
await Promise.allSettled([...this.activeSweeps, ...this.reconcileTasks.values()]);
|
|
618
|
+
this.desiredContainers = this.desiredContainers.filter(container => this.containerScope(container) !== key);
|
|
619
|
+
}
|
|
620
|
+
resumeStack(scope) {
|
|
621
|
+
if (this.monitoringRelinquished)
|
|
622
|
+
throw new Error('Infrastructure monitoring ownership has been relinquished');
|
|
623
|
+
if (this.ownershipFrozen)
|
|
624
|
+
throw new Error('Infrastructure ownership is frozen');
|
|
625
|
+
this.retiredStacks.delete(`${scope.project}/${scope.stack}`);
|
|
626
|
+
}
|
|
627
|
+
containerScope(container) {
|
|
628
|
+
return `${container.labels?.['omnitron.project']}/${container.labels?.['omnitron.stack']}`;
|
|
629
|
+
}
|
|
630
|
+
/** Exact names this local infrastructure owner would remove, without exposing credentials in container specs. */
|
|
631
|
+
getTeardownNames() {
|
|
632
|
+
return [...[...this.desiredContainers].reverse(), ...this.controlPlaneContainers()].map(container => container.name);
|
|
633
|
+
}
|
|
426
634
|
/** Explicit infrastructure removal; process disposal alone preserves containers. */
|
|
427
635
|
async teardown() {
|
|
636
|
+
if (this.monitoringRelinquished)
|
|
637
|
+
throw new Error('Infrastructure monitoring ownership has been relinquished');
|
|
638
|
+
if (this.ownershipFrozen)
|
|
639
|
+
throw new Error('Infrastructure ownership is frozen');
|
|
640
|
+
this.ownershipFrozen = true;
|
|
641
|
+
this.stopHealthMonitor();
|
|
642
|
+
await Promise.allSettled([...this.activeSweeps, ...this.reconcileTasks.values(), ...(this.provisioning ? [this.provisioning] : [])]);
|
|
643
|
+
await this.phantomJanitor?.drain();
|
|
428
644
|
this.dispose();
|
|
429
645
|
// Remove all containers in parallel for fast shutdown — the control-plane
|
|
430
646
|
// database only where this service keeps one (`controlPlaneContainers`).
|
|
431
|
-
const allContainers = [...
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
647
|
+
const allContainers = [...this.desiredContainers, ...this.controlPlaneContainers()];
|
|
648
|
+
// Validate every target before removing the first. Absence is an idempotent success.
|
|
649
|
+
const reviewed = await Promise.all(allContainers.map(async (desired) => {
|
|
650
|
+
const actual = await getContainerState(desired.name, { orThrow: true, fullId: true });
|
|
651
|
+
return actual ? ownedContainerId(desired, actual) : null;
|
|
652
|
+
}));
|
|
653
|
+
const results = await Promise.allSettled(reviewed.map(async (id, index) => {
|
|
654
|
+
if (!id)
|
|
655
|
+
return;
|
|
656
|
+
await removeContainer(id, { graceful: true });
|
|
657
|
+
this.logger.info({ service: allContainers[index].name }, 'Container removed');
|
|
440
658
|
}));
|
|
441
659
|
this.state.ready = false;
|
|
660
|
+
const failures = results.flatMap((result, index) => result.status === 'rejected'
|
|
661
|
+
? [new Error(`${allContainers[index].name}: ${String(result.reason)}`, { cause: result.reason })] : []);
|
|
662
|
+
if (failures.length) {
|
|
663
|
+
throw new AggregateError(failures, `Infrastructure stop incomplete: ${failures.map(error => error.message).join('; ')}`);
|
|
664
|
+
}
|
|
442
665
|
}
|
|
443
666
|
/**
|
|
444
667
|
* Get current infrastructure state.
|
|
@@ -446,26 +669,34 @@ export class InfrastructureService {
|
|
|
446
669
|
getState() {
|
|
447
670
|
return this.state;
|
|
448
671
|
}
|
|
449
|
-
/**
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
672
|
+
/** Called only after older native work has drained and new observations are held. */
|
|
673
|
+
replaceDefinitionFrom(candidate) {
|
|
674
|
+
if (candidate.needsControlPlaneDatabase !== this.needsControlPlaneDatabase)
|
|
675
|
+
throw new Error('Infrastructure declaration cannot change control-plane database ownership');
|
|
676
|
+
const next = new Map(candidate.desiredContainers.map(container => [container.name, container]));
|
|
677
|
+
if (next.size !== candidate.desiredContainers.length)
|
|
678
|
+
throw new Error('Duplicate desired container identity');
|
|
679
|
+
for (const container of this.desiredContainers) {
|
|
680
|
+
const replacement = next.get(container.name);
|
|
681
|
+
if (replacement && !sameRecord(container.labels, replacement.labels))
|
|
682
|
+
throw new Error(`Infrastructure declaration cannot change retained ownership: ${container.name}`);
|
|
683
|
+
}
|
|
684
|
+
const previousServices = this.normalizedServices;
|
|
685
|
+
for (const container of this.desiredContainers) {
|
|
686
|
+
const replacement = next.get(container.name);
|
|
687
|
+
if (!replacement || containerSpecHash(container) !== containerSpecHash(replacement)) {
|
|
688
|
+
delete this.state.services[container.name];
|
|
689
|
+
this.unhealthyEvidence.delete(container.name);
|
|
690
|
+
this.restartBackoff.delete(container.name);
|
|
691
|
+
this.lastActions.delete(container.name);
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
this.config = candidate.config;
|
|
695
|
+
this.normalizedServices = candidate.normalizedServices;
|
|
696
|
+
this.serviceOverrides = candidate.serviceOverrides;
|
|
697
|
+
this.desiredContainers = [...candidate.desiredContainers];
|
|
698
|
+
this.invalidateChangedSetup(previousServices);
|
|
699
|
+
this.state.ready = summariseProvisioning(this.desiredContainers, this.state.services).ready;
|
|
469
700
|
}
|
|
470
701
|
/**
|
|
471
702
|
* Get normalized services (from preset system).
|
|
@@ -486,6 +717,15 @@ export class InfrastructureService {
|
|
|
486
717
|
return [];
|
|
487
718
|
return Object.keys(pg.databases);
|
|
488
719
|
}
|
|
720
|
+
/** The bucket inventory declared to the same MinIO provisioner. */
|
|
721
|
+
getMinioBuckets() {
|
|
722
|
+
const buckets = this.normalizedServices['minio']?._presetConfig?.['buckets'] ?? this.config.minio?.buckets;
|
|
723
|
+
if (buckets === undefined)
|
|
724
|
+
return [];
|
|
725
|
+
if (!Array.isArray(buckets) || buckets.some(bucket => typeof bucket !== 'string'))
|
|
726
|
+
throw new Error('Invalid declared MinIO bucket inventory');
|
|
727
|
+
return [...new Set(buckets)];
|
|
728
|
+
}
|
|
489
729
|
/**
|
|
490
730
|
* Resolved container name for an infra service (e.g. 'postgres' →
|
|
491
731
|
* 'acme-dev-postgres'). Taken from the already-resolved desired containers
|
|
@@ -526,12 +766,16 @@ export class InfrastructureService {
|
|
|
526
766
|
}
|
|
527
767
|
case 'minio': {
|
|
528
768
|
const minio = this.config.minio;
|
|
529
|
-
|
|
769
|
+
const name = this.getResolvedContainerName('minio');
|
|
770
|
+
const resolved = this.desiredContainers.find(container => container.name === name);
|
|
771
|
+
if (!resolved && !minio)
|
|
530
772
|
return null;
|
|
773
|
+
// Use the provisioner's resolved specification for both declaration forms.
|
|
774
|
+
// Reading only legacy `minio` loses credentials when `services.minio` overrides it.
|
|
531
775
|
return {
|
|
532
|
-
endpoint: `http://${LOCAL_INFRA_HOST}:${minio
|
|
533
|
-
accessKey: minio
|
|
534
|
-
secretKey: typeof minio
|
|
776
|
+
endpoint: `http://${LOCAL_INFRA_HOST}:${resolved?.ports.find(port => port.container === 9000)?.host ?? minio?.ports?.api ?? 9000}`,
|
|
777
|
+
accessKey: resolved?.environment['MINIO_ROOT_USER'] ?? minio?.accessKey ?? 'minioadmin',
|
|
778
|
+
secretKey: resolved?.environment['MINIO_ROOT_PASSWORD'] ?? (typeof minio?.secretKey === 'string' ? minio.secretKey : 'minioadmin'),
|
|
535
779
|
forcePathStyle: true,
|
|
536
780
|
};
|
|
537
781
|
}
|
|
@@ -564,6 +808,10 @@ export class InfrastructureService {
|
|
|
564
808
|
reconcileTasks = new Map();
|
|
565
809
|
activeSweeps = new Set();
|
|
566
810
|
ownershipFrozen = false;
|
|
811
|
+
definitionChanging = false;
|
|
812
|
+
monitoringRelinquished = false;
|
|
813
|
+
provisioning;
|
|
814
|
+
relinquishedNames = [];
|
|
567
815
|
/**
|
|
568
816
|
* Where this node keeps each service's config files, once a master sent them.
|
|
569
817
|
*
|
|
@@ -596,16 +844,19 @@ export class InfrastructureService {
|
|
|
596
844
|
return;
|
|
597
845
|
this.desiredContainers = resolveInfrastructure(this.config, this.normalizedServices, this.serviceOverrides, roots, { redis, staticRoots, ...(staticLinkRoots && { staticLinkRoots }) });
|
|
598
846
|
}
|
|
599
|
-
|
|
847
|
+
reconcileService(desired) {
|
|
848
|
+
return this.withContainerReconciliation(desired, () => this.reconcileServiceLocked(desired));
|
|
849
|
+
}
|
|
850
|
+
async withContainerReconciliation(desired, operation) {
|
|
600
851
|
// T#58: per-name lock around the whole inspect→decide→act loop.
|
|
601
|
-
if (this.ownershipFrozen || this.reconciling.has(desired.name)) {
|
|
852
|
+
if (this.ownershipFrozen || this.definitionChanging || this.retiredStacks.has(this.containerScope(desired)) || this.reconciling.has(desired.name)) {
|
|
602
853
|
this.logger.debug({ service: desired.name }, 'Reconcile already in flight — skipping');
|
|
603
854
|
return;
|
|
604
855
|
}
|
|
605
856
|
this.reconciling.add(desired.name);
|
|
606
|
-
const task = this.reconcileServiceLocked(desired);
|
|
607
|
-
this.reconcileTasks.set(desired.name, task);
|
|
608
857
|
try {
|
|
858
|
+
const task = operation();
|
|
859
|
+
this.reconcileTasks.set(desired.name, task);
|
|
609
860
|
await task;
|
|
610
861
|
}
|
|
611
862
|
finally {
|
|
@@ -614,9 +865,10 @@ export class InfrastructureService {
|
|
|
614
865
|
}
|
|
615
866
|
}
|
|
616
867
|
async reconcileServiceLocked(desired) {
|
|
617
|
-
const actual = await getContainerState(desired.name);
|
|
618
|
-
if (this.ownershipFrozen)
|
|
868
|
+
const actual = await getContainerState(desired.name, { orThrow: true, fullId: true });
|
|
869
|
+
if (this.ownershipFrozen || this.definitionChanging || this.retiredStacks.has(this.containerScope(desired)))
|
|
619
870
|
return;
|
|
871
|
+
const id = actual && ownedContainerId(desired, actual);
|
|
620
872
|
const action = this.computeAction(desired, actual);
|
|
621
873
|
// A container that was created, started or recreated is listening on a
|
|
622
874
|
// NEW socket. Applications already running hold pools pointing at the
|
|
@@ -635,12 +887,12 @@ export class InfrastructureService {
|
|
|
635
887
|
break;
|
|
636
888
|
case 'start':
|
|
637
889
|
this.logger.info({ service: desired.name }, 'Starting existing service');
|
|
638
|
-
await startContainer(
|
|
639
|
-
await this.waitHealthy(
|
|
890
|
+
await startContainer(id);
|
|
891
|
+
await this.waitHealthy(id);
|
|
640
892
|
break;
|
|
641
893
|
case 'recreate':
|
|
642
894
|
this.logger.info({ service: desired.name, reason: action.reason }, 'Recreating service');
|
|
643
|
-
await removeContainer(
|
|
895
|
+
await removeContainer(id);
|
|
644
896
|
await this.createAndStart(desired);
|
|
645
897
|
break;
|
|
646
898
|
case 'remove':
|
|
@@ -650,15 +902,48 @@ export class InfrastructureService {
|
|
|
650
902
|
break;
|
|
651
903
|
}
|
|
652
904
|
// Update state
|
|
653
|
-
const newState = await getContainerState(desired.name);
|
|
905
|
+
const newState = await getContainerState(desired.name, { orThrow: true, fullId: true });
|
|
654
906
|
if (newState) {
|
|
655
|
-
this.
|
|
907
|
+
this.recordContainerObservation(desired, newState);
|
|
908
|
+
}
|
|
909
|
+
}
|
|
910
|
+
async recoverUnhealthyLocked(desired, actual, previous) {
|
|
911
|
+
// Recheck immediately before destruction: queued polls, recovery and
|
|
912
|
+
// replacement while inspecting must not authorize a stale decision.
|
|
913
|
+
const confirmed = await getContainerState(desired.name, { orThrow: true, fullId: true });
|
|
914
|
+
if (this.ownershipFrozen || this.definitionChanging || this.retiredStacks.has(this.containerScope(desired)))
|
|
915
|
+
return;
|
|
916
|
+
if (!confirmed || confirmed.containerId !== actual.containerId || confirmed.startedAt !== actual.startedAt ||
|
|
917
|
+
Date.parse(confirmed.healthCheck?.completedAt ?? '') < Date.parse(actual.healthCheck.completedAt) ||
|
|
918
|
+
!observeUnhealthy(previous, confirmed, Date.now()).restart) {
|
|
919
|
+
this.unhealthyEvidence.delete(desired.name);
|
|
920
|
+
this.logger.info({ service: desired.name }, 'Health recovery decision changed before restart; keeping the container');
|
|
921
|
+
}
|
|
922
|
+
else {
|
|
923
|
+
this.unhealthyEvidence.delete(desired.name);
|
|
924
|
+
const failures = (this.restartBackoff.get(desired.name)?.failures ?? 0) + 1;
|
|
925
|
+
const backoffMs = restartBackoffMs(failures);
|
|
926
|
+
// Count attempts until an observed healthy container recovers.
|
|
927
|
+
// A successful create alone cannot erase repeated health failure.
|
|
928
|
+
this.restartBackoff.set(desired.name, { failures, nextAttemptAt: Date.now() + backoffMs });
|
|
929
|
+
this.logger.warn({ service: desired.name, nativeCheck: confirmed.healthCheck, failures, backoffMs }, 'Confirmed sustained native health failure — restarting container');
|
|
930
|
+
try {
|
|
931
|
+
await removeContainer(ownedContainerId(desired, confirmed));
|
|
932
|
+
await this.createAndStart(desired);
|
|
933
|
+
}
|
|
934
|
+
catch (err) {
|
|
935
|
+
this.logger.error({ service: desired.name, error: describeError(err, 0, Object.values(desired.environment)), failures, backoffMs }, 'Health restart failed; recovery backoff retained');
|
|
936
|
+
}
|
|
656
937
|
}
|
|
657
938
|
}
|
|
658
939
|
computeAction(desired, actual) {
|
|
940
|
+
containerResources(desired);
|
|
659
941
|
if (!actual) {
|
|
660
942
|
return { type: 'create', service: desired.name, config: desired };
|
|
661
943
|
}
|
|
944
|
+
if (!containerResourcesMatch(desired, actual)) {
|
|
945
|
+
return { type: 'recreate', service: desired.name, config: desired, reason: 'resource limits differ from Docker inspection' };
|
|
946
|
+
}
|
|
662
947
|
if (actual.status === 'running') {
|
|
663
948
|
// Running but detached from all networks (OrbStack/dockerd-restart
|
|
664
949
|
// artifact): the container is unreachable and its published ports are
|
|
@@ -740,6 +1025,7 @@ export class InfrastructureService {
|
|
|
740
1025
|
};
|
|
741
1026
|
}
|
|
742
1027
|
async createAndStart(desired) {
|
|
1028
|
+
containerResources(desired);
|
|
743
1029
|
// Ensure volumes exist
|
|
744
1030
|
for (const vol of desired.volumes) {
|
|
745
1031
|
if (!vol.source.startsWith('/') && !vol.source.startsWith('.')) {
|
|
@@ -757,41 +1043,30 @@ export class InfrastructureService {
|
|
|
757
1043
|
this.logger.info({ service: desired.name }, 'Non-critical service — skipping health wait');
|
|
758
1044
|
}
|
|
759
1045
|
else {
|
|
760
|
-
await this.waitHealthy(
|
|
1046
|
+
await this.waitHealthy(id);
|
|
761
1047
|
}
|
|
762
1048
|
}
|
|
763
1049
|
async waitHealthy(name) {
|
|
764
1050
|
// Poll Docker health via async CLI — avoids blocking event loop
|
|
765
|
-
const {
|
|
1051
|
+
const { execFile } = await import('node:child_process');
|
|
766
1052
|
const { promisify } = await import('node:util');
|
|
767
|
-
const
|
|
1053
|
+
const inspect = promisify(execFile);
|
|
768
1054
|
const startTime = Date.now();
|
|
769
|
-
const pollInterval = 2000;
|
|
770
1055
|
while (Date.now() - startTime < STARTUP_TIMEOUT) {
|
|
771
1056
|
try {
|
|
772
|
-
const { stdout } = await
|
|
773
|
-
const
|
|
774
|
-
if (
|
|
775
|
-
|
|
1057
|
+
const { stdout } = await inspect('docker', ['inspect', '--format', '{{json .State}}', '--', name], { encoding: 'utf8', timeout: 5000 });
|
|
1058
|
+
const state = JSON.parse(stdout);
|
|
1059
|
+
if (state.Health?.Status === 'healthy' || (state.Status === 'running' && (!state.Health || state.Health.Status === 'none')))
|
|
1060
|
+
return;
|
|
1061
|
+
if (state.Status === 'exited' || state.Status === 'dead') {
|
|
1062
|
+
this.logger.warn({ service: name, status: state.Status }, 'Container not running');
|
|
776
1063
|
return;
|
|
777
|
-
}
|
|
778
|
-
if (output === 'none' || output === '') {
|
|
779
|
-
const { stdout: statusOut } = await execAsync(`docker inspect --format='{{.State.Status}}' ${name} 2>/dev/null || echo "missing"`, { encoding: 'utf-8', timeout: 5000 });
|
|
780
|
-
const status = (statusOut ?? '').trim().replace(/'/g, '');
|
|
781
|
-
if (status === 'running') {
|
|
782
|
-
this.logger.info({ service: name, elapsed: Date.now() - startTime }, 'Service running (no health check)');
|
|
783
|
-
return;
|
|
784
|
-
}
|
|
785
|
-
if (status === 'exited' || status === 'dead' || status === 'missing') {
|
|
786
|
-
this.logger.warn({ service: name, status }, 'Container not running');
|
|
787
|
-
return;
|
|
788
|
-
}
|
|
789
1064
|
}
|
|
790
1065
|
}
|
|
791
1066
|
catch {
|
|
792
1067
|
// docker CLI failed — retry
|
|
793
1068
|
}
|
|
794
|
-
await new Promise((r) => setTimeout(r,
|
|
1069
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
795
1070
|
}
|
|
796
1071
|
this.logger.warn({ service: name, timeout: STARTUP_TIMEOUT }, 'Service did not become healthy within timeout');
|
|
797
1072
|
}
|
|
@@ -805,41 +1080,40 @@ export class InfrastructureService {
|
|
|
805
1080
|
* Generic post-provision: iterate all services, call preset hooks.
|
|
806
1081
|
* Replaces hardcoded createPostgresDatabases() / createMinioBuckets().
|
|
807
1082
|
*/
|
|
808
|
-
|
|
1083
|
+
requiresPostProvision(desired) {
|
|
1084
|
+
const requirement = this.normalizedServices[desired.labels['omnitron.service'] ?? ''];
|
|
1085
|
+
if (!requirement?._preset)
|
|
1086
|
+
return false;
|
|
1087
|
+
const preset = this.presetRegistry?.get(requirement._preset);
|
|
1088
|
+
return !preset || Boolean(preset.postProvision);
|
|
1089
|
+
}
|
|
1090
|
+
recordContainerObservation(desired, actual) {
|
|
1091
|
+
this.state.services[desired.name] = retainProvisioningObservation(actual, this.state.services[desired.name], this.requiresPostProvision(desired));
|
|
1092
|
+
}
|
|
1093
|
+
invalidateChangedSetup(previous) {
|
|
1094
|
+
for (const container of this.desiredContainers) {
|
|
1095
|
+
const name = container.labels['omnitron.service'] ?? '';
|
|
1096
|
+
const state = this.state.services[container.name];
|
|
1097
|
+
if (state && this.requiresPostProvision(container) && !isDeepStrictEqual(previous[name], this.normalizedServices[name])) {
|
|
1098
|
+
state.provisioning = 'pending';
|
|
1099
|
+
state.error = 'Declared service setup changed and must be verified';
|
|
1100
|
+
this.state.ready = false;
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
}
|
|
1104
|
+
async runPresetPostProvisionHooks(only) {
|
|
809
1105
|
const { execFile } = await import('node:child_process');
|
|
810
1106
|
const { promisify } = await import('node:util');
|
|
811
1107
|
const execFileAsync = promisify(execFile);
|
|
812
|
-
// A preset hook is what creates the databases inside Postgres and the
|
|
813
|
-
// buckets inside MinIO — the containers are running either way, so a
|
|
814
|
-
// failure here is invisible until an application cannot find its
|
|
815
|
-
// database.
|
|
816
|
-
//
|
|
817
|
-
// `this.presetRegistry!` asserted a dependency the constructor declares
|
|
818
|
-
// OPTIONAL, so a caller that did not pass one — which the type permits —
|
|
819
|
-
// got `Cannot read properties of undefined (reading 'get')` from a line
|
|
820
|
-
// that reads as internal, after every container was already up.
|
|
821
|
-
// Measured on a node provisioning a stack, where the containers stayed
|
|
822
|
-
// and the databases were never made.
|
|
823
|
-
if (!this.presetRegistry) {
|
|
824
|
-
const withPresets = Object.entries(this.normalizedServices)
|
|
825
|
-
.filter(([, r]) => r._preset)
|
|
826
|
-
.map(([name]) => name);
|
|
827
|
-
if (withPresets.length > 0) {
|
|
828
|
-
this.logger.error({ services: withPresets }, 'No preset registry, so post-provision steps were skipped — these services are running but their databases and buckets were not created');
|
|
829
|
-
}
|
|
830
|
-
return;
|
|
831
|
-
}
|
|
832
1108
|
for (const [serviceName, requirement] of Object.entries(this.normalizedServices)) {
|
|
833
1109
|
if (!requirement._preset)
|
|
834
1110
|
continue;
|
|
835
|
-
const preset = this.presetRegistry
|
|
836
|
-
if (!preset
|
|
1111
|
+
const preset = this.presetRegistry?.get(requirement._preset);
|
|
1112
|
+
if (preset && !preset.postProvision)
|
|
837
1113
|
continue;
|
|
838
|
-
const container = this.desiredContainers.find((c) => c.
|
|
839
|
-
if (!container)
|
|
1114
|
+
const container = this.desiredContainers.find((c) => c.labels['omnitron.service'] === serviceName);
|
|
1115
|
+
if (!container || (only && container.name !== only.name))
|
|
840
1116
|
continue;
|
|
841
|
-
const cName = container.name;
|
|
842
|
-
await waitForHealthy(cName, 30_000);
|
|
843
1117
|
// Resolve secrets from requirement
|
|
844
1118
|
const secrets = {};
|
|
845
1119
|
if (requirement.secrets) {
|
|
@@ -847,24 +1121,47 @@ export class InfrastructureService {
|
|
|
847
1121
|
secrets[k] = typeof v === 'string' ? v : '';
|
|
848
1122
|
}
|
|
849
1123
|
}
|
|
850
|
-
const
|
|
851
|
-
const { stdout } = await execFileAsync('docker', ['exec', cName, ...command], {
|
|
852
|
-
encoding: 'utf-8',
|
|
853
|
-
timeout: 10_000,
|
|
854
|
-
});
|
|
855
|
-
return (stdout ?? '').trim();
|
|
856
|
-
};
|
|
1124
|
+
const safeError = (error) => describeError(error, 0, Object.values(secrets));
|
|
857
1125
|
try {
|
|
1126
|
+
const actual = await getContainerState(container.name, { orThrow: true, fullId: true });
|
|
1127
|
+
if (!actual)
|
|
1128
|
+
throw new Error('Declared service container is absent');
|
|
1129
|
+
const cName = ownedContainerId(container, actual);
|
|
1130
|
+
this.state.services[container.name] = { ...actual, provisioning: 'pending', error: 'Declared service setup is in progress' };
|
|
1131
|
+
if (!preset)
|
|
1132
|
+
throw new Error(`Preset '${requirement._preset}' is unavailable; declared service setup cannot be verified`);
|
|
1133
|
+
if (!await waitForHealthy(cName, 30_000))
|
|
1134
|
+
throw new Error('Container did not become healthy before declared service setup');
|
|
858
1135
|
await preset.postProvision({
|
|
859
|
-
containerName:
|
|
1136
|
+
containerName: container.name,
|
|
860
1137
|
userConfig: requirement._presetConfig ?? {},
|
|
861
1138
|
secrets,
|
|
862
|
-
execInContainer:
|
|
1139
|
+
execInContainer: async (command) => {
|
|
1140
|
+
try {
|
|
1141
|
+
const { stdout } = await execFileAsync('docker', ['exec', cName, ...command], { encoding: 'utf-8', timeout: 10_000 });
|
|
1142
|
+
return (stdout ?? '').trim();
|
|
1143
|
+
}
|
|
1144
|
+
catch (error) {
|
|
1145
|
+
// Raw subprocess causes include credential arguments. Preserve only the sanitized cause.
|
|
1146
|
+
// eslint-disable-next-line preserve-caught-error
|
|
1147
|
+
throw new Error('Declared service setup command failed', { cause: safeError(error) });
|
|
1148
|
+
}
|
|
1149
|
+
},
|
|
863
1150
|
logger: this.logger,
|
|
864
1151
|
});
|
|
1152
|
+
const confirmed = await getContainerState(container.name, { orThrow: true, fullId: true });
|
|
1153
|
+
if (!confirmed || confirmed.status !== 'running' || confirmed.health === 'unhealthy' ||
|
|
1154
|
+
confirmed.containerId !== actual.containerId || confirmed.startedAt !== actual.startedAt)
|
|
1155
|
+
throw new Error('Container generation changed during declared service setup');
|
|
1156
|
+
this.state.services[container.name] = { ...confirmed, provisioning: 'ready' };
|
|
865
1157
|
}
|
|
866
1158
|
catch (err) {
|
|
867
|
-
|
|
1159
|
+
const error = `Post-provisioning '${serviceName}': ${safeError(err)}`;
|
|
1160
|
+
this.state.services[container.name] = {
|
|
1161
|
+
...(this.state.services[container.name] ?? { name: container.name, image: container.image, status: 'not_found' }),
|
|
1162
|
+
provisioning: 'failed', error,
|
|
1163
|
+
};
|
|
1164
|
+
this.logger.error({ service: serviceName, preset: requirement._preset, error }, 'Post-provision hook failed');
|
|
868
1165
|
}
|
|
869
1166
|
}
|
|
870
1167
|
}
|
|
@@ -905,6 +1202,8 @@ export class InfrastructureService {
|
|
|
905
1202
|
// Private — Health Monitor (Self-Healing)
|
|
906
1203
|
// ===========================================================================
|
|
907
1204
|
startHealthMonitor() {
|
|
1205
|
+
if (this.monitoringRelinquished || this.ownershipFrozen || this.healthTimer)
|
|
1206
|
+
return;
|
|
908
1207
|
this.healthTimer = setInterval(() => {
|
|
909
1208
|
this.healthSweep().catch((err) => {
|
|
910
1209
|
this.logger.error({ error: err.message }, 'Health sweep failed');
|
|
@@ -933,7 +1232,7 @@ export class InfrastructureService {
|
|
|
933
1232
|
return this.needsControlPlaneDatabase && !this.usingGlobalOmnitronPg ? [this.omnitronPgContainer] : [];
|
|
934
1233
|
}
|
|
935
1234
|
async healthSweep() {
|
|
936
|
-
if (this.ownershipFrozen)
|
|
1235
|
+
if (this.ownershipFrozen || this.provisioning || this.activeSweeps.size)
|
|
937
1236
|
return;
|
|
938
1237
|
const task = this.healthSweepOwned();
|
|
939
1238
|
this.activeSweeps.add(task);
|
|
@@ -949,9 +1248,11 @@ export class InfrastructureService {
|
|
|
949
1248
|
// service keeps one.
|
|
950
1249
|
const allContainers = [...this.controlPlaneContainers(), ...this.desiredContainers];
|
|
951
1250
|
for (const desired of allContainers) {
|
|
952
|
-
const actual = await getContainerState(desired.name);
|
|
953
|
-
if (this.ownershipFrozen)
|
|
1251
|
+
const actual = await getContainerState(desired.name, { orThrow: true, fullId: true });
|
|
1252
|
+
if (this.ownershipFrozen || this.definitionChanging)
|
|
954
1253
|
return;
|
|
1254
|
+
if (this.retiredStacks.has(this.containerScope(desired)))
|
|
1255
|
+
continue;
|
|
955
1256
|
// T#58: Docker's own `--restart=always` / `--restart=on-failure`
|
|
956
1257
|
// policy puts the container into the 'restarting' state for the
|
|
957
1258
|
// brief window between exit and re-entry. If we recreate during
|
|
@@ -960,11 +1261,12 @@ export class InfrastructureService {
|
|
|
960
1261
|
// may end up duplicated under a renamed transient. Let Docker
|
|
961
1262
|
// finish; the next 30s tick will see 'running' and skip.
|
|
962
1263
|
if (actual?.status === 'restarting') {
|
|
1264
|
+
this.unhealthyEvidence.delete(desired.name);
|
|
963
1265
|
this.logger.debug({ service: desired.name }, "Service is restarting via Docker's own policy — yielding to it (T#58)");
|
|
964
1266
|
continue;
|
|
965
1267
|
}
|
|
966
1268
|
if (!actual || actual.status !== 'running') {
|
|
967
|
-
this.
|
|
1269
|
+
this.unhealthyEvidence.delete(desired.name);
|
|
968
1270
|
// Circuit-breaker: while a service is inside its backoff window, skip
|
|
969
1271
|
// the restart so a permanently-failing container can't hammer the
|
|
970
1272
|
// supervisor every tick and starve the daemon's event loop.
|
|
@@ -976,7 +1278,6 @@ export class InfrastructureService {
|
|
|
976
1278
|
this.logger.warn({ service: desired.name, status: actual?.status ?? 'not_found' }, 'Service not running — auto-restarting');
|
|
977
1279
|
try {
|
|
978
1280
|
await this.reconcileService(desired);
|
|
979
|
-
this.restartBackoff.delete(desired.name);
|
|
980
1281
|
}
|
|
981
1282
|
catch (err) {
|
|
982
1283
|
const failures = (this.restartBackoff.get(desired.name)?.failures ?? 0) + 1;
|
|
@@ -986,65 +1287,109 @@ export class InfrastructureService {
|
|
|
986
1287
|
}
|
|
987
1288
|
}
|
|
988
1289
|
else if (actual.health === 'unhealthy') {
|
|
989
|
-
const
|
|
990
|
-
|
|
991
|
-
if (
|
|
992
|
-
this.
|
|
1290
|
+
const previous = this.unhealthyEvidence.get(desired.name);
|
|
1291
|
+
const observation = observeUnhealthy(previous, actual, Date.now());
|
|
1292
|
+
if (observation.evidence)
|
|
1293
|
+
this.unhealthyEvidence.set(desired.name, observation.evidence);
|
|
1294
|
+
else
|
|
1295
|
+
this.unhealthyEvidence.delete(desired.name);
|
|
1296
|
+
const backoff = this.restartBackoff.get(desired.name);
|
|
1297
|
+
if (backoff && Date.now() < backoff.nextAttemptAt) {
|
|
1298
|
+
this.logger.debug({ service: desired.name, retryInMs: backoff.nextAttemptAt - Date.now() }, 'Service unhealthy — recovery backoff remains active');
|
|
1299
|
+
}
|
|
1300
|
+
else if (!observation.restart) {
|
|
1301
|
+
this.logger.warn({ service: desired.name, reason: observation.reason, nativeCheck: actual.healthCheck }, 'Service unhealthy — waiting for confirmed native failure');
|
|
993
1302
|
}
|
|
994
1303
|
else {
|
|
995
|
-
this.
|
|
996
|
-
this.logger.warn({ service: desired.name, consecutiveUnhealthy: ticks }, 'Service unhealthy past threshold — restarting container');
|
|
997
|
-
try {
|
|
998
|
-
await removeContainer(desired.name);
|
|
999
|
-
await this.createAndStart(desired);
|
|
1000
|
-
}
|
|
1001
|
-
catch (err) {
|
|
1002
|
-
this.logger.error({ service: desired.name, error: err.message }, 'Health restart failed');
|
|
1003
|
-
}
|
|
1304
|
+
await this.withContainerReconciliation(desired, () => this.recoverUnhealthyLocked(desired, actual, previous));
|
|
1004
1305
|
}
|
|
1005
1306
|
}
|
|
1006
1307
|
else {
|
|
1007
|
-
//
|
|
1008
|
-
//
|
|
1009
|
-
|
|
1010
|
-
this.
|
|
1011
|
-
|
|
1308
|
+
// A starting container is not evidence of recovery. Retain backoff
|
|
1309
|
+
// until a running container is healthy (or declares no native probe).
|
|
1310
|
+
this.unhealthyEvidence.delete(desired.name);
|
|
1311
|
+
if ((actual.health === 'healthy' || actual.health === 'none') && this.state.services[desired.name]?.provisioning !== 'failed')
|
|
1312
|
+
this.restartBackoff.delete(desired.name);
|
|
1012
1313
|
}
|
|
1013
1314
|
// Update state
|
|
1014
|
-
const newState = await getContainerState(desired.name);
|
|
1315
|
+
const newState = await getContainerState(desired.name, { orThrow: true, fullId: true });
|
|
1015
1316
|
if (newState) {
|
|
1016
|
-
this.
|
|
1317
|
+
this.recordContainerObservation(desired, newState);
|
|
1318
|
+
const state = this.state.services[desired.name];
|
|
1319
|
+
if (state.status === 'running' && state.health !== 'unhealthy' &&
|
|
1320
|
+
(state.provisioning === 'pending' || state.provisioning === 'failed') &&
|
|
1321
|
+
Date.now() >= (this.restartBackoff.get(desired.name)?.nextAttemptAt ?? 0)) {
|
|
1322
|
+
await this.runPresetPostProvisionHooks(desired);
|
|
1323
|
+
if (this.state.services[desired.name]?.provisioning === 'ready') {
|
|
1324
|
+
if (this.state.services[desired.name]?.health === 'healthy' || this.state.services[desired.name]?.health === 'none')
|
|
1325
|
+
this.restartBackoff.delete(desired.name);
|
|
1326
|
+
}
|
|
1327
|
+
else {
|
|
1328
|
+
const failures = (this.restartBackoff.get(desired.name)?.failures ?? 0) + 1;
|
|
1329
|
+
this.restartBackoff.set(desired.name, { failures, nextAttemptAt: Date.now() + restartBackoffMs(failures) });
|
|
1330
|
+
}
|
|
1331
|
+
}
|
|
1017
1332
|
}
|
|
1018
1333
|
}
|
|
1334
|
+
this.state.ready = summariseProvisioning(this.desiredContainers, this.state.services).ready;
|
|
1019
1335
|
this.state.lastReconciled = new Date().toISOString();
|
|
1020
1336
|
}
|
|
1021
1337
|
}
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1338
|
+
__decorate([
|
|
1339
|
+
RecoveryMutation(),
|
|
1340
|
+
__metadata("design:type", Function),
|
|
1341
|
+
__metadata("design:paramtypes", [Array]),
|
|
1342
|
+
__metadata("design:returntype", void 0)
|
|
1343
|
+
], InfrastructureService.prototype, "addAppContainers", null);
|
|
1344
|
+
__decorate([
|
|
1345
|
+
RecoveryMutation(),
|
|
1346
|
+
__metadata("design:type", Function),
|
|
1347
|
+
__metadata("design:paramtypes", [InfrastructureService]),
|
|
1348
|
+
__metadata("design:returntype", Promise)
|
|
1349
|
+
], InfrastructureService.prototype, "provision", null);
|
|
1350
|
+
__decorate([
|
|
1351
|
+
RecoveryMutation(),
|
|
1352
|
+
__metadata("design:type", Function),
|
|
1353
|
+
__metadata("design:paramtypes", [InfrastructureService]),
|
|
1354
|
+
__metadata("design:returntype", Promise)
|
|
1355
|
+
], InfrastructureService.prototype, "refreshOwnershipFrom", null);
|
|
1356
|
+
__decorate([
|
|
1357
|
+
RecoveryMutation(),
|
|
1358
|
+
__metadata("design:type", Function),
|
|
1359
|
+
__metadata("design:paramtypes", []),
|
|
1360
|
+
__metadata("design:returntype", Promise)
|
|
1361
|
+
], InfrastructureService.prototype, "relinquishMonitoring", null);
|
|
1362
|
+
__decorate([
|
|
1363
|
+
RecoveryMutation(),
|
|
1364
|
+
__metadata("design:type", Function),
|
|
1365
|
+
__metadata("design:paramtypes", [Object]),
|
|
1366
|
+
__metadata("design:returntype", Promise)
|
|
1367
|
+
], InfrastructureService.prototype, "retireStack", null);
|
|
1368
|
+
__decorate([
|
|
1369
|
+
RecoveryMutation(),
|
|
1370
|
+
__metadata("design:type", Function),
|
|
1371
|
+
__metadata("design:paramtypes", []),
|
|
1372
|
+
__metadata("design:returntype", Promise)
|
|
1373
|
+
], InfrastructureService.prototype, "teardown", null);
|
|
1374
|
+
__decorate([
|
|
1375
|
+
RecoveryMutation(),
|
|
1376
|
+
__metadata("design:type", Function),
|
|
1377
|
+
__metadata("design:paramtypes", [Map,
|
|
1378
|
+
Map, Object, Map]),
|
|
1379
|
+
__metadata("design:returntype", void 0)
|
|
1380
|
+
], InfrastructureService.prototype, "setConfigRoots", null);
|
|
1381
|
+
__decorate([
|
|
1382
|
+
RecoveryMutation(),
|
|
1383
|
+
__metadata("design:type", Function),
|
|
1384
|
+
__metadata("design:paramtypes", [Object]),
|
|
1385
|
+
__metadata("design:returntype", Promise)
|
|
1386
|
+
], InfrastructureService.prototype, "reconcileServiceLocked", null);
|
|
1387
|
+
__decorate([
|
|
1388
|
+
RecoveryMutation(),
|
|
1389
|
+
__metadata("design:type", Function),
|
|
1390
|
+
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
1391
|
+
__metadata("design:returntype", Promise)
|
|
1392
|
+
], InfrastructureService.prototype, "recoverUnhealthyLocked", null);
|
|
1048
1393
|
function sameRecord(a, b) {
|
|
1049
1394
|
const ka = Object.keys(a ?? {});
|
|
1050
1395
|
const kb = Object.keys(b ?? {});
|