@kici-dev/orchestrator 0.16.0 → 0.18.0
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/dist/agent/agent-version.d.ts +12 -21
- package/dist/agent/dispatcher.d.ts +283 -437
- package/dist/agent/host-roster-reaper.d.ts +8 -10
- package/dist/agent/host-roster.d.ts +77 -100
- package/dist/agent/ownership-refusal.d.ts +3 -5
- package/dist/agent/ownership-tracker.d.ts +42 -76
- package/dist/agent/registry.d.ts +121 -233
- package/dist/agent/token-store.d.ts +34 -77
- package/dist/agent-packaging/availability.d.ts +6 -9
- package/dist/agent-packaging/download.d.ts +6 -9
- package/dist/agent-packaging/install-closure.d.ts +9 -12
- package/dist/agent-packaging/node-binary.d.ts +6 -10
- package/dist/agent-packaging/node-runtime-members.d.ts +3 -5
- package/dist/agent-packaging/refresh.d.ts +12 -16
- package/dist/agent-packaging/store.d.ts +5 -6
- package/dist/agent-packaging/upload.d.ts +3 -4
- package/dist/app.d.ts +0 -3
- package/dist/approvals/apply-decision.d.ts +39 -45
- package/dist/approvals/approval-resolver.d.ts +11 -23
- package/dist/approvals/held-run-release-wiring.d.ts +14 -21
- package/dist/approvals/independent-wiring.d.ts +13 -20
- package/dist/approvals/resume-router.d.ts +1 -1
- package/dist/approvals/step-approval-bridge.d.ts +11 -21
- package/dist/approvals/triggerer-subject.d.ts +8 -10
- package/dist/artifacts/artifact-store.d.ts +55 -95
- package/dist/artifacts/failure-messages.d.ts +15 -20
- package/dist/audit/access-log.d.ts +27 -45
- package/dist/audit/sampling-rate-limiter.d.ts +11 -23
- package/dist/cache/agent-job-failed-error.d.ts +2 -3
- package/dist/cache/build-coordinator.d.ts +5 -28
- package/dist/cache/cache-upload-settle.d.ts +11 -11
- package/dist/cache/dep-cache.d.ts +32 -60
- package/dist/cache/dispatch-cache-ref-tracker.d.ts +15 -23
- package/dist/cache/global-eval-round-cache.d.ts +33 -41
- package/dist/cache/pending-builds.d.ts +2 -6
- package/dist/cache/pending-dynamics.d.ts +2 -7
- package/dist/cache/pending-global-evals.d.ts +9 -12
- package/dist/cache/pending-inits.d.ts +11 -22
- package/dist/cache/pending-precursor-db-watcher.d.ts +24 -32
- package/dist/cache/pending-tracker.d.ts +17 -45
- package/dist/cache/precursor-result.d.ts +17 -30
- package/dist/cache/source-cache.d.ts +36 -65
- package/dist/cache/user-cache.d.ts +21 -25
- package/dist/cancel/cancel-held-run.d.ts +13 -16
- package/dist/cancel/cancel-route-answer.d.ts +1 -2
- package/dist/cancel/cancel-run.d.ts +26 -50
- package/dist/cancel/dashboard-cancel-handler.d.ts +2 -2
- package/dist/cancel/peer-job-cancel.d.ts +11 -14
- package/dist/cancel/sweep-stuck-cancelling.d.ts +9 -13
- package/dist/cli/api-client.d.ts +33 -76
- package/dist/cli/commands/access-log.d.ts +4 -24
- package/dist/cli/commands/agent-package.d.ts +7 -15
- package/dist/cli/commands/agent-service/agent-env.d.ts +3 -6
- package/dist/cli/commands/agent-service/index.d.ts +4 -10
- package/dist/cli/commands/agent-service/install.d.ts +4 -11
- package/dist/cli/commands/agent-service/status.d.ts +4 -9
- package/dist/cli/commands/agent-service/upgrade.d.ts +4 -16
- package/dist/cli/commands/agent.d.ts +12 -25
- package/dist/cli/commands/api-key.d.ts +7 -7
- package/dist/cli/commands/attestations-list.d.ts +7 -17
- package/dist/cli/commands/attestations-retry.d.ts +5 -11
- package/dist/cli/commands/attestations-reverify.d.ts +4 -5
- package/dist/cli/commands/attestations.d.ts +3 -8
- package/dist/cli/commands/audit.d.ts +1 -5
- package/dist/cli/commands/backend.d.ts +2 -11
- package/dist/cli/commands/check-run.d.ts +7 -18
- package/dist/cli/commands/cluster-name.d.ts +5 -12
- package/dist/cli/commands/cluster-settings.d.ts +28 -53
- package/dist/cli/commands/cold-store.d.ts +7 -15
- package/dist/cli/commands/config.d.ts +9 -20
- package/dist/cli/commands/context.d.ts +8 -20
- package/dist/cli/commands/dashboard-encryption-key.d.ts +9 -14
- package/dist/cli/commands/db-backup.d.ts +17 -32
- package/dist/cli/commands/db.d.ts +3 -4
- package/dist/cli/commands/debug-bundle.d.ts +3 -10
- package/dist/cli/commands/diagnose.d.ts +3 -14
- package/dist/cli/commands/event-dlq.d.ts +4 -12
- package/dist/cli/commands/event-log.d.ts +2 -20
- package/dist/cli/commands/execution.d.ts +3 -9
- package/dist/cli/commands/firecracker/index.d.ts +3 -6
- package/dist/cli/commands/held-run.d.ts +23 -37
- package/dist/cli/commands/host.d.ts +4 -11
- package/dist/cli/commands/inspect-bundle.d.ts +3 -11
- package/dist/cli/commands/local-hook.d.ts +2 -10
- package/dist/cli/commands/local-trigger.d.ts +2 -2
- package/dist/cli/commands/orchestrator-service/drain.d.ts +3 -6
- package/dist/cli/commands/orchestrator-service/index.d.ts +6 -14
- package/dist/cli/commands/orchestrator-service/install-env.d.ts +25 -49
- package/dist/cli/commands/orchestrator-service/install.d.ts +2 -5
- package/dist/cli/commands/orchestrator-service/status.d.ts +10 -22
- package/dist/cli/commands/orchestrator-service/upgrade.d.ts +6 -15
- package/dist/cli/commands/org-settings.d.ts +5 -11
- package/dist/cli/commands/peer.d.ts +5 -10
- package/dist/cli/commands/queue.d.ts +3 -9
- package/dist/cli/commands/registration.d.ts +4 -8
- package/dist/cli/commands/remote-source.d.ts +6 -12
- package/dist/cli/commands/rotate.d.ts +1 -5
- package/dist/cli/commands/runs.d.ts +1 -30
- package/dist/cli/commands/scaler.d.ts +5 -12
- package/dist/cli/commands/secret.d.ts +1 -9
- package/dist/cli/commands/service-health.d.ts +5 -10
- package/dist/cli/commands/shared/admin-cli-access-log.d.ts +10 -19
- package/dist/cli/commands/shared/bare-metal-binary-check.d.ts +86 -0
- package/dist/cli/commands/shared/cli-action.d.ts +1 -4
- package/dist/cli/commands/shared/confirm.d.ts +5 -10
- package/dist/cli/commands/shared/db.d.ts +1 -12
- package/dist/cli/commands/shared/env-file-mode.d.ts +6 -9
- package/dist/cli/commands/shared/secret-input.d.ts +7 -21
- package/dist/cli/commands/shared/service-verbs.d.ts +6 -12
- package/dist/cli/commands/shared/unbound-context-warning.d.ts +2 -4
- package/dist/cli/commands/shared/upgrade-hooks.d.ts +7 -16
- package/dist/cli/commands/shared/upgrade-safety.d.ts +20 -31
- package/dist/cli/commands/shared/versioned-upgrade.d.ts +83 -161
- package/dist/cli/commands/signing-key.d.ts +4 -9
- package/dist/cli/commands/source-manifest.d.ts +11 -14
- package/dist/cli/commands/source.d.ts +7 -32
- package/dist/cli/commands/token.d.ts +4 -15
- package/dist/cli/commands/trust-policy.d.ts +35 -88
- package/dist/cli/commands/variable.d.ts +3 -5
- package/dist/cli/commands/workflow.d.ts +3 -24
- package/dist/cli/join.d.ts +3 -6
- package/dist/cli/kici-admin.d.ts +11 -29
- package/dist/cli/lazy-deps/cache.d.ts +1 -14
- package/dist/cli/lazy-deps/downloader.d.ts +4 -27
- package/dist/cli/lazy-deps/registry.d.ts +5 -25
- package/dist/cli/local-github-ingress-url.d.ts +5 -7
- package/dist/cli/loopback-callback.d.ts +6 -7
- package/dist/cli/open-browser.d.ts +4 -8
- package/dist/cli/root-option-routing.d.ts +17 -29
- package/dist/cli/service/backup-timer.d.ts +16 -39
- package/dist/cli/service/compose-path.d.ts +3 -7
- package/dist/cli/service/compose.d.ts +12 -30
- package/dist/cli/service/deploy-env.d.ts +6 -18
- package/dist/cli/service/entrypoint.d.ts +14 -25
- package/dist/cli/service/env-assignment.d.ts +6 -17
- package/dist/cli/service/image-digests.d.ts +6 -15
- package/dist/cli/service/index.d.ts +2 -18
- package/dist/cli/service/instance/index-file.d.ts +9 -16
- package/dist/cli/service/instance/manifest.d.ts +33 -59
- package/dist/cli/service/instance/resolve.d.ts +32 -68
- package/dist/cli/service/instance/types.d.ts +12 -29
- package/dist/cli/service/launchd.d.ts +29 -60
- package/dist/cli/service/platform-detect.d.ts +13 -68
- package/dist/cli/service/privilege.d.ts +12 -25
- package/dist/cli/service/shutdown-grace.d.ts +11 -20
- package/dist/cli/service/systemd.d.ts +7 -20
- package/dist/cli/service/types.d.ts +63 -114
- package/dist/cli/service/windows-acl.d.ts +14 -21
- package/dist/cli/service/windows-env-file.d.ts +10 -28
- package/dist/cli/service/windows.d.ts +15 -31
- package/dist/cli/webhook-url-notes.d.ts +4 -6
- package/dist/cli/wizard/agent-wizard.d.ts +3 -14
- package/dist/cli/wizard/orchestrator-wizard.d.ts +12 -37
- package/dist/cli/wizard/prompts.d.ts +6 -16
- package/dist/cli.js +4553 -6556
- package/dist/cluster/cluster-identity.d.ts +20 -32
- package/dist/cluster/cluster-settings-reader.d.ts +50 -77
- package/dist/cluster/coordinator-credential.d.ts +4 -5
- package/dist/cluster/coordinator.d.ts +76 -148
- package/dist/cluster/health-api.d.ts +2 -10
- package/dist/cluster/index.d.ts +1 -6
- package/dist/cluster/instance-heartbeat.d.ts +26 -42
- package/dist/cluster/join-client.d.ts +4 -7
- package/dist/cluster/join-handler.d.ts +3 -7
- package/dist/cluster/join-token.d.ts +13 -27
- package/dist/cluster/leader-gated-scheduler.d.ts +8 -17
- package/dist/cluster/orphan-recovery.d.ts +13 -35
- package/dist/cluster/peer-auth-coordinator.d.ts +2 -8
- package/dist/cluster/peer-client.d.ts +46 -76
- package/dist/cluster/peer-credentials.d.ts +24 -70
- package/dist/cluster/peer-crypto.d.ts +5 -26
- package/dist/cluster/peer-forget.d.ts +3 -3
- package/dist/cluster/peer-handler.d.ts +47 -71
- package/dist/cluster/peer-registry.d.ts +37 -106
- package/dist/cluster/plan-headroom-store.d.ts +4 -6
- package/dist/cluster/raft-state.d.ts +4 -13
- package/dist/cluster/raft.d.ts +18 -53
- package/dist/cluster/reconcile-identity.d.ts +8 -11
- package/dist/cluster/rerouted-job-guard.d.ts +7 -11
- package/dist/cluster/verified-issuer.d.ts +2 -3
- package/dist/cluster/worker-cluster-settings.d.ts +7 -10
- package/dist/cluster/worker-eviction.d.ts +16 -26
- package/dist/cold-store/load-access-log-range.d.ts +15 -31
- package/dist/cold-store/load-event-log-range.d.ts +13 -27
- package/dist/cold-store/load-secret-audit-log-range.d.ts +8 -12
- package/dist/cold-store/orchestrator-cold-store.d.ts +8 -28
- package/dist/cold-store/tables/access-log.d.ts +12 -14
- package/dist/cold-store/tables/event-log.d.ts +4 -8
- package/dist/cold-store/tables/execution-runs.d.ts +6 -11
- package/dist/cold-store/tables/secret-audit-log.d.ts +5 -12
- package/dist/concurrency/dispatch-next-queued.d.ts +13 -25
- package/dist/concurrency/queue-manager.d.ts +22 -54
- package/dist/concurrency/waiters.d.ts +15 -31
- package/dist/config/encryption.d.ts +0 -2
- package/dist/config/loader.d.ts +0 -1
- package/dist/config/reload.d.ts +0 -6
- package/dist/config/resolver.d.ts +0 -4
- package/dist/config/shared-store.d.ts +0 -2
- package/dist/config/types.d.ts +0 -3
- package/dist/content-requirements-cache.d.ts +0 -1
- package/dist/contexts/context-store.d.ts +0 -2
- package/dist/contexts/held-runs.d.ts +0 -2
- package/dist/contexts/variable-store.d.ts +0 -2
- package/dist/dashboard/attestation-filters.d.ts +13 -18
- package/dist/dashboard/handler.d.ts +143 -307
- package/dist/db/client.d.ts +2 -6
- package/dist/db/deferred-index-build.d.ts +8 -10
- package/dist/db/deferred-indexes.d.ts +15 -22
- package/dist/db/migration-provider.d.ts +2 -4
- package/dist/db/migration-test-harness.d.ts +26 -44
- package/dist/db/migrations/001_initial.d.ts +1 -4
- package/dist/db/migrations/002_config_versions_key_version.d.ts +5 -8
- package/dist/db/migrations/003_access_log.d.ts +10 -15
- package/dist/db/migrations/004_rename_bundle_to_source.d.ts +7 -9
- package/dist/db/migrations/005_cold_store_chunk_counter.d.ts +4 -10
- package/dist/db/migrations/006_runs_jobs_steps_archived_at.d.ts +9 -29
- package/dist/db/migrations/007_audit_logs_archived_at.d.ts +11 -30
- package/dist/db/migrations/008_event_log_archived_at.d.ts +14 -29
- package/dist/db/migrations/009_access_log_trigram.d.ts +4 -8
- package/dist/db/migrations/010_cold_store_chunks.d.ts +16 -26
- package/dist/db/migrations/011_drop_source_secrets_notify.d.ts +6 -14
- package/dist/db/migrations/012_peer_credentials_active_uniq.d.ts +9 -14
- package/dist/db/migrations/013_execution_log_bytes.d.ts +5 -13
- package/dist/db/migrations/014_kici_events_lease_retry.d.ts +14 -27
- package/dist/db/migrations/015_org_settings_customer_scoped.d.ts +12 -17
- package/dist/db/migrations/016_org_settings_allow_http_npm.d.ts +4 -6
- package/dist/db/migrations/019_generic_sources_change_notify.d.ts +13 -17
- package/dist/db/migrations/020_org_settings_dashboard_write_policy.d.ts +5 -8
- package/dist/db/migrations/021_check_run_tracking.d.ts +5 -17
- package/dist/db/migrations/022_scaler_manager_state.d.ts +10 -20
- package/dist/db/migrations/023_dispatch_queue_recovery_deadline.d.ts +7 -18
- package/dist/db/migrations/024_dispatch_queue_provisioning_error.d.ts +5 -11
- package/dist/db/migrations/025_init_failure.d.ts +5 -9
- package/dist/db/migrations/027_workflow_timeout.d.ts +5 -13
- package/dist/db/migrations/029_dispatch_queue_attempts.d.ts +4 -10
- package/dist/db/migrations/030_held_runs_env_set_null.d.ts +5 -6
- package/dist/db/migrations/031_dispatch_queue_ack_deadline.d.ts +6 -12
- package/dist/db/migrations/033_org_settings_approval.d.ts +7 -10
- package/dist/db/migrations/034_held_runs_generalize.d.ts +10 -18
- package/dist/db/migrations/035_pending_workflow_contexts.d.ts +4 -5
- package/dist/db/migrations/037_generic_sources_provider_type_local.d.ts +5 -6
- package/dist/db/migrations/038_remote_sources.d.ts +5 -7
- package/dist/db/migrations/045_host_properties.d.ts +5 -9
- package/dist/db/migrations/046_join_token_consumed_by_instance.d.ts +5 -10
- package/dist/db/migrations/048_host_reboot_pending.d.ts +6 -12
- package/dist/db/migrations/049_held_runs_payload.d.ts +3 -8
- package/dist/db/migrations/050_sources_slug.d.ts +4 -5
- package/dist/db/migrations/051_binding_host_pattern.d.ts +7 -10
- package/dist/db/migrations/052_host_reach_metadata.d.ts +8 -11
- package/dist/db/migrations/053_agent_token_single_use.d.ts +6 -10
- package/dist/db/migrations/054_local_working_tree.d.ts +4 -6
- package/dist/db/migrations/055_agent_token_mandatory_labels.d.ts +6 -11
- package/dist/db/migrations/056_execution_jobs_environments.d.ts +4 -11
- package/dist/db/migrations/064_execution_jobs_skipped_environments.d.ts +6 -9
- package/dist/db/migrations/065_pending_attestations.d.ts +9 -12
- package/dist/db/migrations/066_pending_attestations_rejected.d.ts +4 -7
- package/dist/db/migrations/068_request_idempotency.d.ts +7 -9
- package/dist/db/migrations/069_reroute_tunables.d.ts +6 -14
- package/dist/db/migrations/071_batch_accumulation.d.ts +8 -16
- package/dist/db/migrations/072_dispatch_queue_run_id_index.d.ts +3 -9
- package/dist/db/migrations/074_normalize_zero_concurrency_limit.d.ts +4 -7
- package/dist/db/migrations/076_artifacts.d.ts +7 -8
- package/dist/db/migrations/078_org_settings_backup_staleness.d.ts +3 -6
- package/dist/db/migrations/079_org_settings_scaler_spawn_timeout.d.ts +4 -8
- package/dist/db/migrations/080_cluster_settings.d.ts +6 -10
- package/dist/db/migrations/081_org_settings_queue_timeout.d.ts +7 -11
- package/dist/db/migrations/082_host_s3_reachable.d.ts +5 -10
- package/dist/db/migrations/083_org_settings_artifact_caps.d.ts +6 -8
- package/dist/db/migrations/084_orchestrator_signing_keys.d.ts +8 -13
- package/dist/db/migrations/085_cluster_settings_reroute_flap_grace_ms.d.ts +4 -5
- package/dist/db/migrations/086_cluster_settings_max_fanout_hosts.d.ts +3 -3
- package/dist/db/migrations/087_cluster_settings_event_router_rate_limit.d.ts +5 -3
- package/dist/db/migrations/088_cluster_settings_cache_max_tarball_bytes.d.ts +3 -3
- package/dist/db/migrations/089_cluster_settings_cache_ttl_days.d.ts +3 -5
- package/dist/db/migrations/090_cluster_settings_concurrency_wait_timeout_ms.d.ts +3 -6
- package/dist/db/migrations/091_cluster_settings_agent_token_ttl_ms.d.ts +3 -6
- package/dist/db/migrations/092_cluster_settings_version.d.ts +5 -9
- package/dist/db/migrations/094_dashboard_encryption_keys.d.ts +9 -14
- package/dist/db/migrations/095_dashboard_write_policy_tristate.d.ts +2 -6
- package/dist/db/migrations/099_cluster_settings_dashboard_verified_issuer.d.ts +8 -11
- package/dist/db/migrations/101_contexts_hold_expiry_drop_default.d.ts +9 -15
- package/dist/db/migrations/102_dispatch_queue_agent_id.d.ts +6 -11
- package/dist/db/migrations/103_cluster_settings_ownership_db_check_timeout_ms.d.ts +6 -12
- package/dist/db/migrations/104_check_run_terminal_sent.d.ts +8 -14
- package/dist/db/migrations/105_org_trust_policy.d.ts +5 -7
- package/dist/db/migrations/106_cluster_settings_check_run_tracking_ttl_days.d.ts +4 -12
- package/dist/db/migrations/107_check_run_tracking_updated_at_index.d.ts +8 -14
- package/dist/db/migrations/113_execution_runs_workflow_repo_index.d.ts +10 -19
- package/dist/db/migrations/115_global_workflows_cluster_switch.d.ts +2 -3
- package/dist/db/migrations/121_org_settings_allow_untrusted_dockerfile_builds.d.ts +7 -8
- package/dist/db/migrations/122_host_roster_scaler_managed.d.ts +9 -16
- package/dist/db/migrations/123_workflow_registrations_default_branch.d.ts +8 -16
- package/dist/db/migrations/125_org_trust_directory.d.ts +13 -21
- package/dist/db/migrations/126_held_runs_posted_pending_check.d.ts +10 -16
- package/dist/db/migrations/127_org_trust_policy_approval_expiry_seconds.d.ts +8 -16
- package/dist/db/migrations/128_execution_runs_global_eval_round.d.ts +6 -11
- package/dist/db/migrations/129_execution_runs_dispatch_routing_key.d.ts +8 -11
- package/dist/db/migrations/130_scaler_provision_outcomes.d.ts +13 -20
- package/dist/db/migrations/131_execution_jobs_git_credentials.d.ts +12 -22
- package/dist/db/migrations/132_execution_runs_trigger_event.d.ts +6 -16
- package/dist/db/migrations/133_dispatch_queue_source_tar_digest.d.ts +6 -9
- package/dist/db/migrations/140_dispatch_queue_canonical_labels.d.ts +22 -40
- package/dist/db/migrations/143_execution_jobs_precursor_result.d.ts +9 -18
- package/dist/db/migrations/144_execution_runs_registration_window.d.ts +12 -20
- package/dist/db/migrations/147_sealed_job_secrets.d.ts +5 -9
- package/dist/db/migrations/148_cluster_settings_sealed_secrets_retry_backoff_ms.d.ts +7 -13
- package/dist/db/migrations/150_execution_runs_status_epoch.d.ts +6 -11
- package/dist/db/migrations/152_org_settings_cache_upload_settle_timeout.d.ts +5 -8
- package/dist/db/migrations/157_host_roster_identity_source.d.ts +9 -13
- package/dist/db/migrations/159_org_id_widen_to_source_width.d.ts +5 -0
- package/dist/db/migrator.d.ts +17 -25
- package/dist/db/notify-listener.d.ts +8 -11
- package/dist/db/repos/dashboard-encryption-keys-repo.d.ts +9 -10
- package/dist/db/synthetic-job-ids.d.ts +6 -8
- package/dist/db/types.d.ts +531 -1058
- package/dist/deployment/deployment-identity.d.ts +42 -60
- package/dist/diagnostics/bundle-reader.d.ts +3 -15
- package/dist/diagnostics/bundle-writer.d.ts +5 -12
- package/dist/diagnostics/checks/agents.d.ts +1 -7
- package/dist/diagnostics/checks/backup.d.ts +7 -10
- package/dist/diagnostics/checks/certs.d.ts +1 -6
- package/dist/diagnostics/checks/config.d.ts +2 -5
- package/dist/diagnostics/checks/db.d.ts +1 -1
- package/dist/diagnostics/checks/disk.d.ts +1 -6
- package/dist/diagnostics/checks/firecracker-network.d.ts +3 -3
- package/dist/diagnostics/checks/index.d.ts +0 -6
- package/dist/diagnostics/checks/retention.d.ts +3 -6
- package/dist/diagnostics/checks/scaler.d.ts +3 -7
- package/dist/diagnostics/checks/ws.d.ts +1 -6
- package/dist/diagnostics/fleet-collector.d.ts +11 -14
- package/dist/diagnostics/fleet-constants.d.ts +1 -3
- package/dist/diagnostics/fleet-selection.d.ts +3 -7
- package/dist/diagnostics/fleet-topology.d.ts +2 -6
- package/dist/diagnostics/fleet-wiring.d.ts +6 -12
- package/dist/diagnostics/index.d.ts +0 -5
- package/dist/diagnostics/runner.d.ts +4 -8
- package/dist/diagnostics/types.d.ts +10 -21
- package/dist/drain/drain-controller.d.ts +16 -22
- package/dist/entry-helpers.d.ts +0 -2
- package/dist/events/circuit-breaker.d.ts +0 -3
- package/dist/events/event-router.d.ts +1 -2
- package/dist/events/event-store.d.ts +0 -9
- package/dist/events/trust-store.d.ts +0 -3
- package/dist/events/types.d.ts +0 -9
- package/dist/firecracker/host-network.d.ts +24 -30
- package/dist/firecracker/net-interfaces.d.ts +4 -7
- package/dist/helpers/rate-limiter.d.ts +0 -1
- package/dist/index.js +251 -486
- package/dist/metrics/agent-metrics-aggregator.d.ts +24 -67
- package/dist/metrics/metrics-reporter.d.ts +4 -13
- package/dist/metrics/prometheus.d.ts +47 -81
- package/dist/orchestrator-core.d.ts +3 -7
- package/dist/pipeline/content-filter.d.ts +20 -30
- package/dist/pipeline/cross-source-tally.d.ts +7 -8
- package/dist/pipeline/decorating-secret-resolver.d.ts +4 -8
- package/dist/pipeline/degraded-reason.d.ts +3 -4
- package/dist/pipeline/direct-ingress-deps.d.ts +15 -24
- package/dist/pipeline/dispatch-matched-workflow.d.ts +289 -525
- package/dist/pipeline/flatten-lock-steps.d.ts +4 -6
- package/dist/pipeline/global-dispatch-identity.d.ts +5 -10
- package/dist/pipeline/global-eval-round.d.ts +65 -151
- package/dist/pipeline/global-round-hold.d.ts +5 -7
- package/dist/pipeline/held-context-data.d.ts +5 -8
- package/dist/pipeline/held-round-registrations.d.ts +8 -11
- package/dist/pipeline/install-gate.d.ts +15 -25
- package/dist/pipeline/install-secrets-resolver.d.ts +24 -34
- package/dist/pipeline/internal-event-pipeline.d.ts +45 -62
- package/dist/pipeline/invoke-gate.d.ts +27 -40
- package/dist/pipeline/job-contexts.d.ts +19 -36
- package/dist/pipeline/manual-schedule.d.ts +7 -13
- package/dist/pipeline/needs-scheduler.d.ts +29 -46
- package/dist/pipeline/pending-workflow-context.d.ts +14 -28
- package/dist/pipeline/process-webhook.d.ts +88 -123
- package/dist/pipeline/processor.d.ts +209 -355
- package/dist/pipeline/remote-source-store.d.ts +5 -8
- package/dist/pipeline/request-idempotency.d.ts +10 -13
- package/dist/pipeline/rerun-global.d.ts +6 -7
- package/dist/pipeline/rerun-inputs.d.ts +23 -37
- package/dist/pipeline/rerun.d.ts +34 -57
- package/dist/pipeline/resolve-sandbox-grant.d.ts +5 -10
- package/dist/pipeline/resume-workflow.d.ts +28 -34
- package/dist/pipeline/route-or-dispatch-jobs.d.ts +19 -30
- package/dist/pipeline/run-event-context.d.ts +16 -21
- package/dist/pipeline/sandbox-allowlist-reader.d.ts +7 -11
- package/dist/pipeline/security-hold-check.d.ts +56 -80
- package/dist/pipeline/test-pipeline.d.ts +21 -46
- package/dist/pipeline/unbound-job-context.d.ts +6 -9
- package/dist/pipeline/undispatched-hold-checks.d.ts +4 -6
- package/dist/pipeline/wave-scheduler.d.ts +15 -22
- package/dist/pipeline/webhook-payload-store.d.ts +3 -10
- package/dist/pipeline/workflow-lock-at-sha.d.ts +14 -20
- package/dist/policy/dashboard-write-policy.d.ts +1 -1
- package/dist/provider-registry.d.ts +0 -19
- package/dist/providers/generic/index.d.ts +0 -2
- package/dist/providers/generic/normalizer.d.ts +0 -1
- package/dist/providers/generic/verification.d.ts +0 -8
- package/dist/providers/github/auth.d.ts +0 -1
- package/dist/providers/github/changed-files.d.ts +2 -1
- package/dist/providers/github/file-contents.d.ts +0 -4
- package/dist/providers/github/lock-file.d.ts +0 -4
- package/dist/providers/github/normalizer.d.ts +1 -9
- package/dist/providers/local/index.d.ts +1 -2
- package/dist/providers/local/lock-file-fetcher.d.ts +0 -4
- package/dist/providers/local/normalizer.d.ts +0 -10
- package/dist/providers/local/repo-url-builder.d.ts +0 -2
- package/dist/providers/universal-git/clone-token.d.ts +0 -2
- package/dist/providers/universal-git/lock-file.d.ts +0 -2
- package/dist/providers/universal-git/normalizer.d.ts +0 -2
- package/dist/queue/bootstrap.d.ts +3 -15
- package/dist/queue/cleanup.d.ts +29 -50
- package/dist/queue/depth-refresher.d.ts +21 -39
- package/dist/queue/job-queue.d.ts +112 -163
- package/dist/queue/retention.d.ts +23 -36
- package/dist/queue/scheduled-job.d.ts +17 -39
- package/dist/queue/terminalize-unroutable.d.ts +21 -18
- package/dist/queue/unroutable-probe.d.ts +15 -22
- package/dist/registration/extractor.d.ts +0 -6
- package/dist/registration/registration-index.d.ts +0 -6
- package/dist/registration/registration-store.d.ts +0 -9
- package/dist/reporting/agent-failure-category.d.ts +3 -5
- package/dist/reporting/check-run-reporter.d.ts +142 -316
- package/dist/reporting/check-run-summary.d.ts +16 -35
- package/dist/reporting/check-run-tracking-store.d.ts +54 -107
- package/dist/reporting/execution-tracker.d.ts +356 -526
- package/dist/reporting/fs-log-storage.d.ts +31 -33
- package/dist/reporting/job-check-run-completion.d.ts +14 -22
- package/dist/reporting/log-chunk-sink.d.ts +11 -16
- package/dist/reporting/log-pull-handler.d.ts +4 -13
- package/dist/reporting/log-retention.d.ts +3 -4
- package/dist/reporting/log-storage.d.ts +24 -52
- package/dist/reporting/log-writer.d.ts +28 -56
- package/dist/reporting/peer-log-normalize.d.ts +4 -8
- package/dist/reporting/run-aggregator.d.ts +6 -11
- package/dist/reporting/run-summary-fields.d.ts +5 -8
- package/dist/reporting/s3-log-storage.d.ts +31 -50
- package/dist/reporting/step-display-order.d.ts +11 -21
- package/dist/reporting/step-log-buffer.d.ts +7 -28
- package/dist/reporting/step-log-reader.d.ts +11 -19
- package/dist/routes/admin-access-log.d.ts +4 -6
- package/dist/routes/admin-auth.d.ts +19 -38
- package/dist/routes/admin-backends.d.ts +3 -14
- package/dist/routes/admin-cluster-name.d.ts +13 -21
- package/dist/routes/admin-cluster-settings.d.ts +6 -9
- package/dist/routes/admin-config.d.ts +7 -19
- package/dist/routes/admin-contexts.d.ts +6 -13
- package/dist/routes/admin-db.d.ts +5 -10
- package/dist/routes/admin-event-dlq.d.ts +3 -5
- package/dist/routes/admin-event-inspect.d.ts +3 -4
- package/dist/routes/admin-event-log.d.ts +3 -7
- package/dist/routes/admin-events.d.ts +16 -30
- package/dist/routes/admin-held-runs.d.ts +52 -76
- package/dist/routes/admin-maintenance.d.ts +3 -6
- package/dist/routes/admin-orchestrator-drain.d.ts +0 -2
- package/dist/routes/admin-org-settings.d.ts +8 -14
- package/dist/routes/admin-peer-forget.d.ts +0 -1
- package/dist/routes/admin-queue-execution.d.ts +3 -3
- package/dist/routes/admin-registrations.d.ts +3 -12
- package/dist/routes/admin-runs.d.ts +16 -29
- package/dist/routes/admin-scaler-orphans.d.ts +4 -4
- package/dist/routes/admin-scaler-reload.d.ts +5 -8
- package/dist/routes/admin-scheduled-jobs.d.ts +3 -4
- package/dist/routes/admin-sources.d.ts +20 -29
- package/dist/routes/admin-trust-policy.d.ts +31 -48
- package/dist/routes/admin.d.ts +67 -94
- package/dist/routes/caller-identity.d.ts +45 -0
- package/dist/routes/capabilities.d.ts +8 -13
- package/dist/routes/diagnostics.d.ts +2 -10
- package/dist/routes/fleet.d.ts +1 -2
- package/dist/routes/github-webhook.d.ts +2 -5
- package/dist/routes/health.d.ts +6 -19
- package/dist/routes/provenance-oidc.d.ts +3 -3
- package/dist/routes/test-direct.d.ts +46 -0
- package/dist/routes/uploads.d.ts +14 -19
- package/dist/routes/webhooks.d.ts +2 -24
- package/dist/scaler/agent-binary-location.d.ts +77 -0
- package/dist/scaler/agent-fit.d.ts +2 -2
- package/dist/scaler/backend-factory.d.ts +10 -18
- package/dist/scaler/bare-metal-backend.d.ts +28 -45
- package/dist/scaler/claim-store.d.ts +20 -43
- package/dist/scaler/config.d.ts +10 -37
- package/dist/scaler/container-backend.d.ts +22 -35
- package/dist/scaler/container-hostconfig.d.ts +10 -16
- package/dist/scaler/container-routing.d.ts +10 -13
- package/dist/scaler/disk-guard.d.ts +2 -3
- package/dist/scaler/event-backend.d.ts +33 -58
- package/dist/scaler/event-provision-reaper.d.ts +61 -84
- package/dist/scaler/failure-tracker.d.ts +6 -13
- package/dist/scaler/file-tail.d.ts +6 -19
- package/dist/scaler/firecracker-api.d.ts +19 -63
- package/dist/scaler/firecracker-backend.d.ts +142 -258
- package/dist/scaler/host-access.d.ts +7 -10
- package/dist/scaler/index.d.ts +3 -6
- package/dist/scaler/ip-allocator.d.ts +30 -82
- package/dist/scaler/label-matcher.d.ts +14 -35
- package/dist/scaler/log-forwarder.d.ts +6 -25
- package/dist/scaler/machine-ledger.d.ts +39 -86
- package/dist/scaler/manager.d.ts +517 -787
- package/dist/scaler/pending-scale-sweeper.d.ts +8 -11
- package/dist/scaler/reap-orphans.d.ts +8 -12
- package/dist/scaler/resolve-container-auth.d.ts +12 -21
- package/dist/scaler/scaler-events.d.ts +2 -5
- package/dist/scaler/scaler-state-store.d.ts +127 -189
- package/dist/scaler/spawn-errors.d.ts +1 -4
- package/dist/scaler/startup-orphan-sweep.d.ts +3 -4
- package/dist/scaler/startup-tools-check.d.ts +21 -0
- package/dist/scaler/types.d.ts +142 -255
- package/dist/scaler/vm-job-bindings.d.ts +5 -9
- package/dist/scaler/warm-pool.d.ts +46 -93
- package/dist/secrets/audit-logger.d.ts +0 -3
- package/dist/secrets/backend-health.d.ts +0 -9
- package/dist/secrets/backend-registry.d.ts +0 -9
- package/dist/secrets/cleanup.d.ts +0 -1
- package/dist/secrets/config.d.ts +0 -3
- package/dist/secrets/ephemeral-keys.d.ts +0 -3
- package/dist/secrets/pg-secret-store.d.ts +0 -3
- package/dist/secrets/rbac.d.ts +5 -7
- package/dist/secrets/routing-key-scope.d.ts +1 -0
- package/dist/secrets/secret-output-store.d.ts +0 -6
- package/dist/secrets/secret-resolver.d.ts +2 -6
- package/dist/secrets/token-manager.d.ts +1 -4
- package/dist/secrets/vault-secret-store.d.ts +0 -13
- package/dist/security/comment-handler.d.ts +0 -2
- package/dist/security/workflow-diff.d.ts +1 -1
- package/dist/server.js +49004 -53782
- package/dist/sources/source-manager.d.ts +0 -3
- package/dist/sources/source-store.d.ts +0 -9
- package/dist/sources/source-validator.d.ts +0 -3
- package/dist/stale-detector/all-terminal-runs.d.ts +8 -11
- package/dist/stale-detector/gate-deadline-detector.d.ts +14 -19
- package/dist/stale-detector/reboot-deadline-sweep.d.ts +7 -11
- package/dist/stale-detector/stale-dispatch-candidates.d.ts +13 -20
- package/dist/stale-detector/stale-run-detector.d.ts +74 -121
- package/dist/stale-detector/workflow-deadline-detector.d.ts +15 -43
- package/dist/standalone.js +9342 -13077
- package/dist/storage/blob-routes.d.ts +10 -19
- package/dist/storage/filesystem.d.ts +19 -29
- package/dist/storage/index.d.ts +2 -10
- package/dist/storage/key-discriminator.d.ts +8 -10
- package/dist/storage/loopback-guard.d.ts +27 -45
- package/dist/storage/s3.d.ts +26 -53
- package/dist/storage/sign-url.d.ts +7 -22
- package/dist/storage/types.d.ts +46 -72
- package/dist/webhook/event-log.d.ts +0 -2
- package/dist/webhook/generic-sources.d.ts +0 -21
- package/dist/webhook/ingest-admission.d.ts +0 -1
- package/dist/webhook/relay-buffer.d.ts +2 -2
- package/dist/webhook/verify-inbound.d.ts +0 -1
- package/dist/worker/in-memory-execution-tracker.d.ts +9 -31
- package/dist/worker/in-memory-job-queue.d.ts +32 -72
- package/dist/worker/peer-outbox.d.ts +5 -8
- package/dist/worker/reroute-dispatch.d.ts +4 -6
- package/dist/worker/static-agent-token-store.d.ts +6 -27
- package/dist/worker/worker-outbox-relay.d.ts +2 -2
- package/dist/worker/worker-status.d.ts +3 -20
- package/dist/ws/agent-api-registry.d.ts +8 -27
- package/dist/ws/agent-handler.d.ts +63 -110
- package/dist/ws/agent-heartbeat.d.ts +5 -12
- package/dist/ws/bringup-api.d.ts +31 -38
- package/dist/ws/dashboard-backends-handler.d.ts +12 -22
- package/dist/ws/dashboard-context-handler.d.ts +37 -80
- package/dist/ws/dashboard-diagnostics-handler.d.ts +8 -25
- package/dist/ws/dashboard-dispatch-guard.d.ts +3 -4
- package/dist/ws/dashboard-fleet-handler.d.ts +9 -13
- package/dist/ws/dashboard-fleet-write-handler.d.ts +7 -21
- package/dist/ws/dashboard-global-workflows-handler.d.ts +22 -44
- package/dist/ws/dashboard-registrations-handler.d.ts +10 -27
- package/dist/ws/dashboard-run-state-handler.d.ts +10 -13
- package/dist/ws/event-buffer.d.ts +3 -6
- package/dist/ws/execution-status-frame.d.ts +7 -10
- package/dist/ws/failure-messages.d.ts +9 -14
- package/dist/ws/fleet-agent-collector.d.ts +6 -12
- package/dist/ws/fleet-runs-on-all.d.ts +1 -6
- package/dist/ws/git-credential-relay.d.ts +12 -20
- package/dist/ws/inventory-api.d.ts +4 -5
- package/dist/ws/observer-registry.d.ts +14 -59
- package/dist/ws/ownership-gate.d.ts +1 -1
- package/dist/ws/platform-client.d.ts +21 -30
- package/dist/ws/replay-chunker.d.ts +7 -10
- package/dist/ws/server-options.d.ts +5 -9
- package/dist/ws/test-relay-handlers.d.ts +46 -63
- package/installer-image-digests.json +3 -3
- package/package.json +6 -5
- package/sbom.spdx.json +53 -53
- package/dist/__test-helpers__/fake-scaler-state-store.d.ts +0 -24
- package/dist/__test-helpers__/mock-db-query.d.ts +0 -129
- package/dist/__test-helpers__/mock-db.d.ts +0 -134
- package/dist/__test-helpers__/mock-ws.d.ts +0 -13
- package/dist/__test-helpers__/peer-mutual-auth.d.ts +0 -42
- package/dist/__test-helpers__/scratch-db.d.ts +0 -16
- package/dist/__test-helpers__/test-db.d.ts +0 -34
- package/dist/pipeline/dispatch-matched-workflow.test-helpers.d.ts +0 -121
- package/dist/scaler/container-spawn.d.ts +0 -28
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* resolveInstance
|
|
3
|
-
* decide which installed service it's operating on.
|
|
2
|
+
* resolveInstance picks the installed service every lifecycle command acts on.
|
|
4
3
|
*
|
|
5
4
|
* Priority:
|
|
6
5
|
* 1. --instance-dir <path> → read manifest at <path>
|
|
@@ -8,14 +7,9 @@
|
|
|
8
7
|
* 3. CWD manifest → read ./.kici-<component>.json
|
|
9
8
|
* 4. otherwise → refuse with a candidate list (throws)
|
|
10
9
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* the
|
|
14
|
-
*
|
|
15
|
-
* Discovery is platform-plural and operation is platform-singular. A host can
|
|
16
|
-
* hold both a systemd install and a compose install, so finding an instance
|
|
17
|
-
* scans every candidate driver; acting on the one that was found uses the
|
|
18
|
-
* single driver its manifest names.
|
|
10
|
+
* Discovery is platform-plural and operation is platform-singular: a host can
|
|
11
|
+
* hold both a systemd and a compose install, so finding an instance scans every
|
|
12
|
+
* candidate driver, and acting on it uses the single driver its manifest names.
|
|
19
13
|
*/
|
|
20
14
|
import type { DiscoveredInstance, ServiceManager, ServicePlatform } from '../types.js';
|
|
21
15
|
import type { Component, ResolveOptions, ResolvedInstance } from './types.js';
|
|
@@ -25,13 +19,10 @@ export interface ListedInstance extends DiscoveredInstance {
|
|
|
25
19
|
source: 'index' | 'scan' | 'index+scan';
|
|
26
20
|
}
|
|
27
21
|
/**
|
|
28
|
-
* The drivers that can plausibly hold an install on this host.
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* init system is joined by compose, which runs on any host with a container
|
|
33
|
-
* runtime — a compose install on a systemd box is the case the single-driver
|
|
34
|
-
* scan could not see.
|
|
22
|
+
* The drivers that can plausibly hold an install on this host. `--platform`
|
|
23
|
+
* forces one driver, the operator's single-driver escape hatch. Otherwise the
|
|
24
|
+
* host's init system is joined by compose, which runs on any host with a
|
|
25
|
+
* container runtime, so a compose install on a systemd box is found.
|
|
35
26
|
*/
|
|
36
27
|
export declare function candidatePlatforms(override?: ServicePlatform): ServicePlatform[];
|
|
37
28
|
export interface ListInstancesArgs {
|
|
@@ -39,37 +30,34 @@ export interface ListInstancesArgs {
|
|
|
39
30
|
isUserLevel: boolean;
|
|
40
31
|
kiciRoot: string;
|
|
41
32
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
33
|
+
* Omit to scan every candidate driver for this host. Each driver is
|
|
34
|
+
* authoritative only over its own platform's index rows.
|
|
44
35
|
*/
|
|
45
36
|
managers?: ServiceManager[];
|
|
46
37
|
}
|
|
47
38
|
/**
|
|
48
39
|
* Reconcile <kiciRoot>/instances.json with the drivers' native scans, then
|
|
49
|
-
* rewrite the index
|
|
50
|
-
* instanceDir. Two self-heal directions happen here:
|
|
40
|
+
* rewrite the index to mirror the scanned instances with a known instanceDir:
|
|
51
41
|
*
|
|
52
42
|
* - backward: drop index entries whose unit no longer exists.
|
|
53
43
|
* - forward: adopt an instanceDir a driver recovered from the unit marker
|
|
54
|
-
* when the index entry is missing or
|
|
55
|
-
* index rebuilds itself
|
|
44
|
+
* when the index entry is missing or has no dir, so a lost or emptied
|
|
45
|
+
* index rebuilds itself on the next read.
|
|
56
46
|
*
|
|
57
|
-
* The init system is
|
|
58
|
-
*
|
|
59
|
-
* markers)
|
|
60
|
-
*
|
|
47
|
+
* The init system is the source of truth for the name→folder mapping (via the
|
|
48
|
+
* X-KiCI-InstanceDir / KiCIInstanceDir / dev.kici.instance-dir / [KiCI-DIR]
|
|
49
|
+
* markers); the index is a pure cache. Returns the list filtered to the
|
|
50
|
+
* requested component + isUserLevel.
|
|
61
51
|
*
|
|
62
|
-
* The rewrite is scoped to the platforms
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
* registry deletes nothing at all.
|
|
52
|
+
* The rewrite is scoped to the scanned platforms: a systemd scan cannot delete
|
|
53
|
+
* a compose install's row, and a driver that could not reach its registry
|
|
54
|
+
* deletes nothing.
|
|
66
55
|
*/
|
|
67
56
|
export declare function listInstances(args: ListInstancesArgs): Promise<ListedInstance[]>;
|
|
68
57
|
/**
|
|
69
|
-
* Thrown
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* ambiguous-refusal and missing-manifest errors, which stay hard failures.
|
|
58
|
+
* Thrown when `--name <n>` matches no installed instance. Lifecycle commands
|
|
59
|
+
* catch it so stop/uninstall of a never-installed instance is an idempotent
|
|
60
|
+
* no-op; the ambiguous-refusal and missing-manifest errors stay hard failures.
|
|
73
61
|
*/
|
|
74
62
|
export declare class InstanceNotFoundError extends Error {
|
|
75
63
|
readonly component: Component;
|
|
@@ -81,45 +69,25 @@ export interface ResolveArgs {
|
|
|
81
69
|
opts: ResolveOptions;
|
|
82
70
|
cwd: string;
|
|
83
71
|
kiciRoot: string;
|
|
84
|
-
/**
|
|
85
|
-
* Every driver discovery should scan. Omit to scan every candidate driver
|
|
86
|
-
* for this host.
|
|
87
|
-
*/
|
|
72
|
+
/** Omit to scan every candidate driver for this host. */
|
|
88
73
|
managers?: ServiceManager[];
|
|
89
74
|
/**
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* the correct set of installed instances.
|
|
75
|
+
* Must match the caller's resolved --system / --user-level decision so
|
|
76
|
+
* candidate lists and name lookups see the right installed instances.
|
|
93
77
|
*/
|
|
94
78
|
isUserLevel: boolean;
|
|
95
79
|
}
|
|
96
|
-
/**
|
|
97
|
-
* Resolve the target instance for the current lifecycle invocation.
|
|
98
|
-
* Throws with a refusal/candidate-listing error when ambiguous.
|
|
99
|
-
*/
|
|
80
|
+
/** Throws a refusal listing the candidates when ambiguous. */
|
|
100
81
|
export declare function resolveInstance(args: ResolveArgs): Promise<ResolvedInstance>;
|
|
101
|
-
/**
|
|
102
|
-
* Format the refusal message and candidate table.
|
|
103
|
-
*
|
|
104
|
-
* When candidates is empty, returns the "no instances installed" guidance.
|
|
105
|
-
* When candidates exist, lists them with their instanceDir (or "(no manifest)").
|
|
106
|
-
*/
|
|
107
82
|
export declare function formatRefusal(component: Component, candidates: ListedInstance[]): string;
|
|
108
|
-
/** What {@link resolveInstanceTarget} is asked. */
|
|
109
83
|
export interface ResolveTargetArgs {
|
|
110
84
|
component: Component;
|
|
111
85
|
opts: ResolveOptions;
|
|
112
86
|
cwd: string;
|
|
113
87
|
kiciRoot: string;
|
|
114
|
-
/**
|
|
115
|
-
* Privilege scope to resolve against. Must match the caller's resolved
|
|
116
|
-
* --system / --user-level decision.
|
|
117
|
-
*/
|
|
88
|
+
/** Must match the caller's resolved --system / --user-level decision. */
|
|
118
89
|
isUserLevel: boolean;
|
|
119
|
-
/**
|
|
120
|
-
* The `--platform` flag. When set it forces the driver for both discovery and
|
|
121
|
-
* operation, which is the operator's escape hatch to a single-driver run.
|
|
122
|
-
*/
|
|
90
|
+
/** `--platform`: forces the driver for both discovery and operation. */
|
|
123
91
|
platformOverride?: ServicePlatform;
|
|
124
92
|
/** Driver factory. Defaults to the service barrel's createServiceManager. */
|
|
125
93
|
createManager?: (platform: ServicePlatform) => Promise<ServiceManager>;
|
|
@@ -132,13 +100,9 @@ export interface ResolvedTarget {
|
|
|
132
100
|
platform: ServicePlatform;
|
|
133
101
|
}
|
|
134
102
|
/**
|
|
135
|
-
* Resolve the target instance and
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
* compose install stays a compose install on a systemd box. So discovery scans
|
|
139
|
-
* every candidate driver, and the manifest that discovery produced then names
|
|
140
|
-
* the single driver the command operates through. The two need not be the same
|
|
141
|
-
* object, and only the second has to be right.
|
|
103
|
+
* Resolve the target instance and its driver. A compose install stays a compose
|
|
104
|
+
* install on a systemd box, so discovery scans every candidate driver and the
|
|
105
|
+
* found manifest names the single driver the command operates through.
|
|
142
106
|
*/
|
|
143
107
|
export declare function resolveInstanceTarget(args: ResolveTargetArgs): Promise<ResolvedTarget>;
|
|
144
108
|
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -1,25 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* A KiCI service instance is identified by (component, name, instanceDir).
|
|
7
|
-
* The deploy folder holds the manifest; the index at <kiciRoot>/instances.json
|
|
8
|
-
* is a reconciled cache of all installed instances on the host.
|
|
2
|
+
* A service instance is identified by (component, name, instanceDir). The
|
|
3
|
+
* deploy folder holds the manifest; `<kiciRoot>/instances.json` is a
|
|
4
|
+
* reconciled cache of the host's installed instances.
|
|
9
5
|
*/
|
|
10
6
|
import type { ServicePlatform } from '../types.js';
|
|
11
|
-
/** The two KiCI components managed by `kici-admin` service commands. */
|
|
12
7
|
export type Component = 'orchestrator' | 'agent';
|
|
13
|
-
/** Enumerable list — used for iteration and discovery. */
|
|
14
8
|
export declare const COMPONENTS: readonly Component[];
|
|
15
|
-
/** Narrow an arbitrary string to a Component. */
|
|
16
9
|
export declare function isComponent(value: string): value is Component;
|
|
17
10
|
/**
|
|
18
|
-
* The
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* Holds everything `resolveInstance` needs to reconstruct a ServiceConfig
|
|
22
|
-
* without re-deriving paths.
|
|
11
|
+
* The `./.kici-<component>.json` that `install` writes into the deploy folder:
|
|
12
|
+
* everything `resolveInstance` needs to rebuild a ServiceConfig without
|
|
13
|
+
* re-deriving paths.
|
|
23
14
|
*/
|
|
24
15
|
export interface InstanceManifest {
|
|
25
16
|
component: Component;
|
|
@@ -33,18 +24,11 @@ export interface InstanceManifest {
|
|
|
33
24
|
createdAt: string;
|
|
34
25
|
kiciVersion: string;
|
|
35
26
|
/**
|
|
36
|
-
* Installed version → the last applied
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* start against a ledger that records them, and the documented recovery
|
|
42
|
-
* produces a second outage. This map is what lets the switch check whether
|
|
43
|
-
* the database is ahead of the version it is about to activate.
|
|
44
|
-
*
|
|
45
|
-
* Merged, never replaced, at every version change. Absent on every instance
|
|
46
|
-
* installed before this field existed, which the guard treats as "unknown"
|
|
47
|
-
* and warns about rather than refusing.
|
|
27
|
+
* Installed version → the last migration applied while it ran. A version
|
|
28
|
+
* switch checks it to refuse activating a version the database is ahead of
|
|
29
|
+
* (see `schemaGuardVerdict`). Merged, never replaced, at every version
|
|
30
|
+
* change; absent on older installs, which the guard warns about rather than
|
|
31
|
+
* refuses.
|
|
48
32
|
*/
|
|
49
33
|
migrationHeads?: Record<string, string>;
|
|
50
34
|
}
|
|
@@ -56,12 +40,11 @@ export interface IndexEntry {
|
|
|
56
40
|
isUserLevel: boolean;
|
|
57
41
|
instanceDir: string;
|
|
58
42
|
}
|
|
59
|
-
/** CLI options that influence target resolution. */
|
|
60
43
|
export interface ResolveOptions {
|
|
61
44
|
instanceDir?: string;
|
|
62
45
|
name?: string;
|
|
63
46
|
}
|
|
64
|
-
/**
|
|
47
|
+
/** What `resolveInstance` returns. */
|
|
65
48
|
export interface ResolvedInstance {
|
|
66
49
|
manifest: InstanceManifest;
|
|
67
50
|
manifestPath: string;
|
|
@@ -1,101 +1,70 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* launchd service manager
|
|
3
|
-
*
|
|
4
|
-
* Generates plist files and manages service lifecycle via launchctl.
|
|
5
|
-
* Supports both system-level (/Library/LaunchDaemons/) and
|
|
6
|
-
* user-level (~/Library/LaunchAgents/) agents.
|
|
2
|
+
* launchd service manager: writes plists and drives launchctl, for system-level
|
|
3
|
+
* (/Library/LaunchDaemons/) and user-level (~/Library/LaunchAgents/) jobs.
|
|
7
4
|
*/
|
|
8
5
|
import type { ServiceConfig, ServiceManager, ServiceStatus, LogOptions, DiscoveredInstance, LaunchSpec } from './types.js';
|
|
9
6
|
/**
|
|
10
|
-
* `dev.kici.my-orch` -> `my-orch`.
|
|
11
|
-
*
|
|
12
|
-
* whatever label it uses.
|
|
7
|
+
* `dev.kici.my-orch` -> `my-orch`. A label with no known prefix returns
|
|
8
|
+
* unchanged, so a hand-written plist stays discoverable.
|
|
13
9
|
*/
|
|
14
10
|
export declare function stripLabelPrefix(label: string): string;
|
|
15
11
|
export declare class LaunchdServiceManager implements ServiceManager {
|
|
16
12
|
readonly platform: 'launchd';
|
|
17
|
-
/** Build the launchd label for a service. */
|
|
18
13
|
private label;
|
|
19
|
-
/** Resolve the log directory based on service level. */
|
|
20
14
|
private logDir;
|
|
21
15
|
/** The directory launchd loads this service level's plists from. */
|
|
22
16
|
private plistDir;
|
|
23
17
|
/** The job `install` writes: `dev.kici.<name>`. */
|
|
24
18
|
private installJob;
|
|
25
19
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* marker counts, and the job is addressed by the Label the plist declares.
|
|
20
|
+
* A job for this name under another label (`com.kici.<name>`, or a plist named
|
|
21
|
+
* after the service), which `list()` reports as this instance. Only a plist
|
|
22
|
+
* with the KiCI component marker counts; the job is addressed by its declared Label.
|
|
30
23
|
*/
|
|
31
24
|
private otherLabelJob;
|
|
32
25
|
/**
|
|
33
|
-
* The job a lifecycle command acts on: the `dev.kici.<name>` plist
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* removed. With neither installed, the `dev.kici.<name>` job.
|
|
26
|
+
* The job a lifecycle command acts on: the installed `dev.kici.<name>` plist,
|
|
27
|
+
* else an other-label job, so every instance `list()` reports stays
|
|
28
|
+
* manageable. With neither installed, the `dev.kici.<name>` job.
|
|
37
29
|
*/
|
|
38
30
|
private resolveJob;
|
|
39
|
-
/** Parse a .env file into key-value pairs. */
|
|
40
31
|
private parseEnvFile;
|
|
41
|
-
/** Escape XML special characters. */
|
|
42
32
|
private escapeXml;
|
|
43
|
-
/** Inverse of {@link escapeXml}
|
|
33
|
+
/** Inverse of {@link escapeXml}. */
|
|
44
34
|
private unescapeXml;
|
|
45
|
-
/**
|
|
46
|
-
* Generate a launchd plist XML string from a service config.
|
|
47
|
-
* Visible for testing.
|
|
48
|
-
*/
|
|
35
|
+
/** Visible for testing. */
|
|
49
36
|
generatePlist(config: ServiceConfig): string;
|
|
50
37
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* The legacy `launchctl load` / `unload` verbs implicitly inferred the
|
|
57
|
-
* domain from the plist's filesystem location, but they fail silently on
|
|
58
|
-
* headless macOS hosts where no GUI session exists (the `gui/<uid>` domain
|
|
59
|
-
* is not available without a console login). The modern `bootstrap` /
|
|
60
|
-
* `bootout` / `kickstart` / `print` verbs take the domain explicitly, so a
|
|
61
|
-
* system-level LaunchDaemon loads regardless of whether anyone is logged
|
|
62
|
-
* in at the console — exactly what we need for headless deploy targets.
|
|
38
|
+
* `gui/<uid>` for a user-level LaunchAgent, `system` for a LaunchDaemon. The
|
|
39
|
+
* legacy `load`/`unload` verbs infer the domain from the plist location and
|
|
40
|
+
* fail silently on a headless host (no `gui/<uid>` domain without a console
|
|
41
|
+
* login); the `bootstrap`/`bootout`/`kickstart`/`print` verbs take it
|
|
42
|
+
* explicitly, so a system daemon loads with nobody logged in.
|
|
63
43
|
*/
|
|
64
44
|
private domain;
|
|
65
45
|
/** `<domain>/<label>` — the target string for bootout/kickstart/print. */
|
|
66
46
|
private domainTarget;
|
|
67
47
|
/**
|
|
68
|
-
* `launchctl print
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* daemon without root. Any other failure throws, so a job that could not be
|
|
72
|
-
* inspected is never mistaken for a stopped one.
|
|
48
|
+
* `launchctl print`: the job description, or null when not loaded. Unlike
|
|
49
|
+
* `launchctl list` (own domain only), it reads a system daemon without root.
|
|
50
|
+
* Any other failure throws, so an uninspectable job never reads as stopped.
|
|
73
51
|
*/
|
|
74
52
|
private printJob;
|
|
75
|
-
/** Is the job currently loaded in its target domain? */
|
|
76
53
|
private isLoaded;
|
|
77
54
|
install(config: ServiceConfig): Promise<void>;
|
|
78
55
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
* launchd has finished releasing the job — so a bootstrap issued
|
|
83
|
-
* immediately afterward races the teardown and fails with EIO. Waiting for
|
|
84
|
-
* the unload to complete closes that race for the common case; the residual
|
|
85
|
-
* window is covered by bootstrapWithRetry.
|
|
56
|
+
* True once the job has left its domain, false on timeout. `bootout` returns
|
|
57
|
+
* before launchd releases the job, so an immediate bootstrap fails with EIO;
|
|
58
|
+
* this closes the common case and bootstrapWithRetry the residual window.
|
|
86
59
|
*/
|
|
87
60
|
private waitUntilUnloaded;
|
|
88
61
|
/**
|
|
89
|
-
* Bootstrap
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
* EIO. With `replaceLoaded` (install, which just wrote a new plist) such a
|
|
96
|
-
* job is booted out before the next try. Without it (start), a job that
|
|
97
|
-
* another caller loaded meanwhile is the outcome start wanted: RunAtLoad has
|
|
98
|
-
* started it, so the call succeeds and leaves it running.
|
|
62
|
+
* Bootstrap, retrying on the transient EIO launchd returns while a
|
|
63
|
+
* just-removed service tears down; a non-transient failure (bad plist,
|
|
64
|
+
* permission denied) throws at once. An already-loaded job gets the same
|
|
65
|
+
* EIO: with `replaceLoaded` (install) it is booted out before the next try;
|
|
66
|
+
* without it (start), a job another caller loaded meanwhile is the wanted
|
|
67
|
+
* outcome (RunAtLoad started it), so the call succeeds.
|
|
99
68
|
*/
|
|
100
69
|
private bootstrapWithRetry;
|
|
101
70
|
uninstall(config: ServiceConfig): Promise<void>;
|
|
@@ -1,84 +1,29 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Platform detection and directory resolution for KiCI service management.
|
|
3
|
-
*
|
|
4
|
-
* Detects the init system (systemd, launchd, Windows Services, or Compose fallback)
|
|
5
|
-
* and resolves platform-appropriate directories for config, logs, and cache.
|
|
6
|
-
*/
|
|
1
|
+
/** Init-system detection and the per-platform config, log and cache directories. */
|
|
7
2
|
import type { ServicePlatform } from './types.js';
|
|
8
3
|
/**
|
|
9
|
-
*
|
|
4
|
+
* Linux without systemd falls back to Docker/Podman Compose.
|
|
10
5
|
*
|
|
11
|
-
*
|
|
12
|
-
* - win32 -> 'windows'
|
|
13
|
-
* - darwin -> 'launchd'
|
|
14
|
-
* - linux with /run/systemd/system or /sys/fs/cgroup/systemd -> 'systemd'
|
|
15
|
-
* - linux without systemd -> 'compose' (Docker/Podman Compose fallback)
|
|
16
|
-
*
|
|
17
|
-
* @param override - Force a specific platform (e.g., from --platform flag)
|
|
6
|
+
* @param override - Forces a platform (the --platform flag).
|
|
18
7
|
*/
|
|
19
8
|
export declare function detectPlatform(override?: ServicePlatform): ServicePlatform;
|
|
20
|
-
/**
|
|
21
|
-
* Check if the current process has root/admin privileges.
|
|
22
|
-
*
|
|
23
|
-
* - Unix: UID === 0
|
|
24
|
-
* - Windows: attempts `net session` (succeeds only as admin)
|
|
25
|
-
*/
|
|
9
|
+
/** Root on Unix (UID 0) or admin on Windows. */
|
|
26
10
|
export declare function isRoot(): boolean;
|
|
27
11
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* Paths follow platform conventions:
|
|
32
|
-
* - System Linux/macOS: /etc/kici/
|
|
33
|
-
* - User Linux: ~/.config/kici/
|
|
34
|
-
* - User macOS: ~/Library/Application Support/kici/
|
|
35
|
-
* - System Windows: C:\ProgramData\kici\
|
|
36
|
-
* - User Windows: %LOCALAPPDATA%\kici\
|
|
37
|
-
*
|
|
38
|
-
* Used by the instance index (`<kiciRoot>/instances.json`) which lives
|
|
39
|
-
* outside any per-instance subdir, and as the base for {@link getConfigDir}.
|
|
12
|
+
* The config root holding every per-instance subdir for this privilege level,
|
|
13
|
+
* plus the instance index (`<kiciRoot>/instances.json`).
|
|
40
14
|
*
|
|
41
|
-
* `KICI_CONFIG_ROOT` overrides
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* which otherwise lets concurrent installs clobber each other's index.
|
|
15
|
+
* `KICI_CONFIG_ROOT` overrides it for both scopes, so a test harness or
|
|
16
|
+
* sandboxed run gets an isolated index; a shared `~/.config/kici/` lets
|
|
17
|
+
* concurrent installs clobber each other's index.
|
|
45
18
|
*/
|
|
46
19
|
export declare function kiciConfigRoot(isUserLevel: boolean): string;
|
|
47
20
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* Returns `<kiciConfigRoot>/<serviceName>/`. The name-scoped subdir is the
|
|
51
|
-
* folder-anchored home for everything belonging to one installed instance
|
|
52
|
-
* (env file, generated unit references, future per-instance state).
|
|
53
|
-
*
|
|
54
|
-
* Examples:
|
|
55
|
-
* - System Linux: /etc/kici/<name>/
|
|
56
|
-
* - User Linux: ~/.config/kici/<name>/
|
|
57
|
-
* - User macOS: ~/Library/Application Support/kici/<name>/
|
|
58
|
-
* - System Windows: C:\ProgramData\kici\<name>\
|
|
59
|
-
* - User Windows: %LOCALAPPDATA%\kici\<name>\
|
|
21
|
+
* `<kiciConfigRoot>/<serviceName>/`: the home of everything one instance owns
|
|
22
|
+
* (env file, unit references).
|
|
60
23
|
*/
|
|
61
24
|
export declare function getConfigDir(serviceName: string, isUserLevel: boolean): string;
|
|
62
|
-
/**
|
|
63
|
-
* Get the log directory for a specific KiCI service instance.
|
|
64
|
-
*
|
|
65
|
-
* The per-platform layout matches the existing matrix; the service name is
|
|
66
|
-
* injected as the per-instance segment so each instance has its own log dir:
|
|
67
|
-
* - System Linux/macOS: /var/log/kici/<name>/
|
|
68
|
-
* - User Linux: ~/.local/share/kici/<name>/logs/
|
|
69
|
-
* - User macOS: ~/Library/Logs/kici/<name>/
|
|
70
|
-
* - Windows: C:\ProgramData\kici\<name>\logs\
|
|
71
|
-
*/
|
|
25
|
+
/** One log directory per instance, named by `serviceName`. */
|
|
72
26
|
export declare function getLogDir(serviceName: string, isUserLevel: boolean): string;
|
|
73
|
-
/**
|
|
74
|
-
* Get the cache directory for lazy dependency downloads.
|
|
75
|
-
*
|
|
76
|
-
* Resolution order:
|
|
77
|
-
* 1. $XDG_CACHE_HOME/kici/deps/ (if set)
|
|
78
|
-
* 2. Platform default:
|
|
79
|
-
* - Linux: ~/.cache/kici/deps/
|
|
80
|
-
* - macOS: ~/Library/Caches/kici/deps/
|
|
81
|
-
* - Windows: %LOCALAPPDATA%\kici\deps\
|
|
82
|
-
*/
|
|
27
|
+
/** The lazy-dependency download cache; `$XDG_CACHE_HOME` wins on every platform. */
|
|
83
28
|
export declare function getCacheDir(): string;
|
|
84
29
|
//# sourceMappingURL=platform-detect.d.ts.map
|
|
@@ -1,41 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Resolve
|
|
2
|
+
* Resolve system- vs user-level for the service lifecycle verbs and `db`, so
|
|
3
|
+
* they agree on the target (`systemctl --user` / LaunchAgents vs `systemctl` /
|
|
4
|
+
* LaunchDaemons). No flag auto-detects by UID: non-root is user-level.
|
|
3
5
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* (no flag) is to auto-detect based on UID — non-root → user-level, root →
|
|
9
|
-
* system-level.
|
|
10
|
-
*
|
|
11
|
-
* Explicit `--system` / `--user-level` flags override the auto-detect.
|
|
12
|
-
* They're mutually exclusive: passing both throws. Passing `--system`
|
|
13
|
-
* without root throws with a `sudo` command the operator can paste: it names
|
|
14
|
-
* the node binary and CLI script the refused process was actually running,
|
|
15
|
-
* because `sudo` resets PATH to its `secure_path` and cannot find a node that
|
|
16
|
-
* a version manager (nvm, mise, fnm, volta) put on the operator's PATH.
|
|
6
|
+
* `--system` and `--user-level` are mutually exclusive. `--system` without
|
|
7
|
+
* root throws with a pasteable `sudo` command naming the running node binary
|
|
8
|
+
* and CLI script, because `sudo` resets PATH to `secure_path` and loses a
|
|
9
|
+
* version manager's node (nvm, mise, fnm, volta).
|
|
17
10
|
*/
|
|
18
11
|
export interface PrivilegeOpts {
|
|
19
|
-
/**
|
|
12
|
+
/** Requires root. */
|
|
20
13
|
system?: boolean;
|
|
21
|
-
/** Force user-level install/lifecycle. */
|
|
22
14
|
userLevel?: boolean;
|
|
23
15
|
}
|
|
24
|
-
/** The slice of `process` the re-run hint
|
|
16
|
+
/** The slice of `process` the re-run hint uses, injectable for tests. */
|
|
25
17
|
export interface RerunContext {
|
|
26
|
-
/** `process.execPath` — the node binary actually running. */
|
|
27
18
|
execPath: string;
|
|
28
|
-
/** `
|
|
19
|
+
/** `[node, script, ...args]`. */
|
|
29
20
|
argv: readonly string[];
|
|
30
|
-
/** `process.platform`. */
|
|
31
21
|
platform: NodeJS.Platform;
|
|
32
22
|
}
|
|
33
23
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* a literal `kici-admin`, which `sudo` cannot find when node comes from a
|
|
37
|
-
* version manager. On Windows there is no `sudo`; the hint names an elevated
|
|
38
|
-
* shell instead.
|
|
24
|
+
* A root re-run command built from the running process, not a literal
|
|
25
|
+
* `kici-admin`; on Windows, an elevated shell instead.
|
|
39
26
|
*/
|
|
40
27
|
export declare function systemRerunHint(ctx: RerunContext): string;
|
|
41
28
|
export declare function resolveUserLevel(opts: PrivilegeOpts): boolean;
|
|
@@ -1,35 +1,26 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* How long an init system waits for a KiCI service to shut down.
|
|
3
|
-
*/
|
|
4
1
|
import type { ServiceConfig } from './types.js';
|
|
5
2
|
/**
|
|
6
3
|
* Seconds an init system must wait after SIGTERM before it SIGKILLs the service.
|
|
7
4
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* finishes draining. That window is reached exactly when it matters most — the
|
|
14
|
-
* orchestrator's scaler stops each managed agent with its own grace, so an
|
|
15
|
-
* orchestrator with agents in flight routinely needs more than 10s.
|
|
5
|
+
* Runtime defaults (Compose 10s, launchd ExitTimeOut 5s, shawl `--stop-timeout`
|
|
6
|
+
* 3s) are shorter than either component's graceful shutdown, so the orchestrator
|
|
7
|
+
* would never broadcast `peer.leaving` or close its agent sockets, and the agent
|
|
8
|
+
* would never finish draining. An orchestrator stopping its scaler's agents, each
|
|
9
|
+
* with its own grace, routinely needs more than 10s.
|
|
16
10
|
*
|
|
17
|
-
* Each value is
|
|
18
|
-
*
|
|
19
|
-
* last resort it is meant to be:
|
|
11
|
+
* Each value is the component's force-exit budget plus headroom, so its own
|
|
12
|
+
* timer always fires before the runtime's kill:
|
|
20
13
|
* - orchestrator: 30s (`setupGracefulShutdown` default) plus up to 2s of log
|
|
21
14
|
* file flush -> 45s
|
|
22
15
|
* - agent: 10s plus a ~1s abort delay in its `onForceExit` -> 20s
|
|
23
16
|
*
|
|
24
|
-
* An unrecognised component gets the larger value: over-waiting costs
|
|
25
|
-
*
|
|
17
|
+
* An unrecognised component gets the larger value: over-waiting costs seconds,
|
|
18
|
+
* under-waiting corrupts the shutdown.
|
|
26
19
|
*/
|
|
27
20
|
export declare function shutdownGraceSeconds(config: ServiceConfig): number;
|
|
28
21
|
/**
|
|
29
|
-
* Seconds a `stop` waits for the
|
|
30
|
-
*
|
|
31
|
-
* The init system kills the process once its grace elapses, so a service still
|
|
32
|
-
* running after the grace plus this margin is hung, not slow.
|
|
22
|
+
* Seconds a `stop` waits for the service to report stopped. The init system
|
|
23
|
+
* kills it once its grace elapses, so one still running after this is hung.
|
|
33
24
|
*/
|
|
34
25
|
export declare function stopWaitSeconds(config: ServiceConfig): number;
|
|
35
26
|
//# sourceMappingURL=shutdown-grace.d.ts.map
|
|
@@ -1,34 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* systemd service manager
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* journalctl, and loginctl commands. Supports both system-level
|
|
6
|
-
* (/etc/systemd/system/) and user-level (~/.config/systemd/user/) services.
|
|
2
|
+
* systemd service manager: system-level (/etc/systemd/system/) and user-level
|
|
3
|
+
* (~/.config/systemd/user/) units, driven through systemctl, journalctl and
|
|
4
|
+
* loginctl.
|
|
7
5
|
*/
|
|
8
6
|
import type { DiscoveredInstance, ServiceConfig, ServiceManager, ServiceStatus, LogOptions, LaunchSpec } from './types.js';
|
|
9
7
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* true if the user's `Linger` property reads `yes`. Returns false on any
|
|
14
|
-
* parse failure, missing binary, or unknown user — the caller is expected
|
|
15
|
-
* to attempt `enable-linger` in that case.
|
|
16
|
-
*
|
|
17
|
-
* Exported (package-private) for testing.
|
|
8
|
+
* Whether linger is enabled, via `loginctl show-user` (readable by any user).
|
|
9
|
+
* False on any failure (parse, missing binary, unknown user), in which case
|
|
10
|
+
* the caller attempts `enable-linger`. Exported for testing.
|
|
18
11
|
*/
|
|
19
12
|
export declare function isLingerEnabled(user: string): boolean;
|
|
20
13
|
export declare class SystemdServiceManager implements ServiceManager {
|
|
21
14
|
readonly platform: 'systemd';
|
|
22
|
-
/**
|
|
23
|
-
* Generate a systemd unit file from a service config.
|
|
24
|
-
* Visible for testing.
|
|
25
|
-
*/
|
|
15
|
+
/** Visible for testing. */
|
|
26
16
|
generateUnitFile(config: ServiceConfig): string;
|
|
27
|
-
/** Resolve the unit file path based on service level. */
|
|
28
17
|
private unitFilePath;
|
|
29
|
-
/** Build systemctl command args, inserting --user for user-level services. */
|
|
30
18
|
private systemctlArgs;
|
|
31
|
-
/** Run a systemctl command. */
|
|
32
19
|
private systemctl;
|
|
33
20
|
install(config: ServiceConfig): Promise<void>;
|
|
34
21
|
uninstall(config: ServiceConfig): Promise<void>;
|