@kici-dev/orchestrator 0.17.0 → 0.19.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 +137 -230
- 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 +35 -52
- 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 +25 -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 +5 -12
- 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 +60 -60
- 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 +8207 -10128
- 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 +145 -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 +240 -482
- 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 +290 -526
- 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 +62 -156
- 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 +20 -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 +16 -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 +17 -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 +5 -12
- 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/uploads.d.ts +5 -11
- 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 +30 -46
- 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 +19 -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 +49 -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 +0 -6
- 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 +0 -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 +8628 -13569
- 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 +7670 -12402
- 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 +25 -52
- package/dist/storage/sign-url.d.ts +7 -22
- package/dist/storage/types.d.ts +44 -70
- 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 +9 -11
- 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/job-status-forward-frame.d.ts +30 -0
- package/dist/ws/observer-registry.d.ts +14 -59
- package/dist/ws/outbound-frame-guard.d.ts +4 -0
- package/dist/ws/ownership-gate.d.ts +1 -1
- package/dist/ws/platform-client.d.ts +32 -31
- 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 +45 -59
- package/dist/ws/test-run-log-cursor.d.ts +18 -0
- 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
|
@@ -1,41 +1,31 @@
|
|
|
1
1
|
import { type Kysely } from 'kysely';
|
|
2
2
|
import type { Database, AgentTokenRow } from '../db/types.js';
|
|
3
3
|
/**
|
|
4
|
-
* `created_by`
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* `created_by` prefix of single-use bootstrap (init-runner) tokens, stored as
|
|
5
|
+
* `'<this prefix><targetAgentId>'` so the register-time identity binding
|
|
6
|
+
* (agent-handler Gate 2) and the single-use consume check can resolve the
|
|
7
|
+
* bound agent id.
|
|
8
8
|
*/
|
|
9
9
|
export declare const BOOTSTRAP_CREATED_BY_PREFIX = "bootstrap:";
|
|
10
10
|
/**
|
|
11
11
|
* Resolve the agent id an ephemeral token binds its holder to. Scaler tokens
|
|
12
|
-
* store
|
|
13
|
-
* `BOOTSTRAP_CREATED_BY_PREFIX`.
|
|
12
|
+
* store it verbatim in `created_by`; bootstrap tokens behind
|
|
13
|
+
* `BOOTSTRAP_CREATED_BY_PREFIX`.
|
|
14
14
|
*/
|
|
15
15
|
export declare function boundAgentIdFromCreatedBy(createdBy: string): string;
|
|
16
|
-
/**
|
|
17
|
-
* Safe token row shape returned from list/validate (excludes token_hash).
|
|
18
|
-
*/
|
|
16
|
+
/** Token row returned from list/validate, without token_hash. */
|
|
19
17
|
export type SafeAgentTokenRow = Omit<AgentTokenRow, 'token_hash'>;
|
|
20
|
-
/**
|
|
21
|
-
* Manages agent authentication tokens.
|
|
22
|
-
*
|
|
23
|
-
* Tokens are kat_ + 64 hex chars (32 random bytes = 256 bits).
|
|
24
|
-
* Only the SHA-256 hash is stored; the plaintext is returned once at generation time.
|
|
25
|
-
*/
|
|
26
18
|
export declare class AgentTokenStore {
|
|
27
19
|
private readonly db;
|
|
28
20
|
constructor(db: Kysely<Database>);
|
|
29
21
|
/**
|
|
30
|
-
* Create a static
|
|
22
|
+
* Create a static token: no expiry, for manually-registered agents.
|
|
31
23
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* every label here appears in the job's required labels. Undefined = no taint.
|
|
38
|
-
* @param opts.createdBy - Optional creator identifier (e.g. "cli:admin").
|
|
24
|
+
* @param opts.labels - Agent labels this token is authorized for.
|
|
25
|
+
* @param opts.mandatoryLabels - Kubernetes-taint-style gate: an agent
|
|
26
|
+
* registering with this token only accepts a job whose required labels
|
|
27
|
+
* include every label here. Undefined = no taint.
|
|
28
|
+
* @param opts.createdBy - Creator identifier (e.g. "cli:admin").
|
|
39
29
|
* @returns The plaintext token (shown once) and the DB row ID.
|
|
40
30
|
*/
|
|
41
31
|
createStatic(opts: {
|
|
@@ -47,29 +37,22 @@ export declare class AgentTokenStore {
|
|
|
47
37
|
id: string;
|
|
48
38
|
}>;
|
|
49
39
|
/**
|
|
50
|
-
* Create an ephemeral
|
|
51
|
-
*
|
|
52
|
-
* Ephemeral tokens are issued by the scaler for auto-provisioned agents
|
|
53
|
-
* and expire after the specified TTL.
|
|
40
|
+
* Create an ephemeral token, issued by the scaler for an auto-provisioned
|
|
41
|
+
* agent and expiring after `ttlMs`.
|
|
54
42
|
*
|
|
55
|
-
* @param agentId -
|
|
56
|
-
* @param labels - Agent labels this token is authorized for.
|
|
57
|
-
* @param ttlMs - Time-to-live in milliseconds.
|
|
43
|
+
* @param agentId - Stored as created_by.
|
|
58
44
|
* @returns The plaintext token (shown once).
|
|
59
45
|
*/
|
|
60
46
|
createEphemeral(agentId: string, labels: string[], ttlMs: number): Promise<string>;
|
|
61
47
|
/**
|
|
62
|
-
* Mint a single-use, short-TTL bootstrap token for an init-runner bring-up
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* `agent.register`, and a second register is rejected. A leaked token is
|
|
68
|
-
* therefore inert after enrollment AND after its short TTL elapses.
|
|
48
|
+
* Mint a single-use, short-TTL bootstrap token for an init-runner bring-up,
|
|
49
|
+
* bound to exactly the init-runner label set. Stored as `agent_type:
|
|
50
|
+
* 'ephemeral'` so the expiry cleanup reaps it. `consumeBootstrapToken` sets
|
|
51
|
+
* `consumed_at` on first `agent.register` and a second register is rejected,
|
|
52
|
+
* so a leaked token is inert after enrollment AND after its TTL.
|
|
69
53
|
*
|
|
70
54
|
* @param targetAgentId - The agent id the init-runner will register as.
|
|
71
|
-
* @param ttlMs -
|
|
72
|
-
* @param labels - The init-runner labels the token authorizes.
|
|
55
|
+
* @param ttlMs - Short, ~10 min.
|
|
73
56
|
* @returns The plaintext token (shown once) and the DB row ID.
|
|
74
57
|
*/
|
|
75
58
|
mintBootstrapToken(opts: {
|
|
@@ -81,58 +64,32 @@ export declare class AgentTokenStore {
|
|
|
81
64
|
id: string;
|
|
82
65
|
}>;
|
|
83
66
|
/**
|
|
84
|
-
* Consume a
|
|
85
|
-
*
|
|
86
|
-
* with the same token returns false (already consumed). Returns true when
|
|
87
|
-
* this call performed the consumption.
|
|
67
|
+
* Consume a bootstrap token. Sets `consumed_at` only while null, so the first
|
|
68
|
+
* register wins; returns true only when this call consumed it.
|
|
88
69
|
*/
|
|
89
70
|
consumeBootstrapToken(id: string): Promise<boolean>;
|
|
90
71
|
/**
|
|
91
|
-
* Validate a plaintext token
|
|
92
|
-
*
|
|
93
|
-
* Checks that the token exists, is not revoked, and has not expired.
|
|
94
|
-
* On success, fires a non-blocking update to last_seen_at.
|
|
72
|
+
* Validate a plaintext token: exists, not revoked, not consumed, not expired.
|
|
73
|
+
* On success, fires a non-blocking last_seen_at update.
|
|
95
74
|
*
|
|
96
|
-
* @param token - The plaintext token to validate.
|
|
97
75
|
* @returns The token row (without hash) if valid, null otherwise.
|
|
98
76
|
*/
|
|
99
77
|
validate(token: string): Promise<SafeAgentTokenRow | null>;
|
|
100
|
-
/**
|
|
101
|
-
* Revoke a token by ID.
|
|
102
|
-
*
|
|
103
|
-
* Sets revoked_at to now. Returns true if the token was revoked,
|
|
104
|
-
* false if it was already revoked or not found.
|
|
105
|
-
*
|
|
106
|
-
* @param id - The token row ID to revoke.
|
|
107
|
-
* @returns True if the token was newly revoked.
|
|
108
|
-
*/
|
|
78
|
+
/** Revoke a token; false when it was already revoked or not found. */
|
|
109
79
|
revoke(id: string): Promise<boolean>;
|
|
110
|
-
/**
|
|
111
|
-
* List all non-revoked tokens (excludes token_hash for security).
|
|
112
|
-
*
|
|
113
|
-
* @param opts.agentType - Optional filter by agent type ('static' | 'ephemeral').
|
|
114
|
-
* @returns Array of token rows without the hash field.
|
|
115
|
-
*/
|
|
80
|
+
/** List non-revoked tokens, newest first, without token_hash. */
|
|
116
81
|
list(opts?: {
|
|
117
82
|
agentType?: string;
|
|
118
83
|
}): Promise<SafeAgentTokenRow[]>;
|
|
119
84
|
/**
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
* Deletes rows where `expires_at < now()` and `agent_type = 'ephemeral'`.
|
|
123
|
-
* Called periodically by the orchestrator (every 60s) to keep the
|
|
124
|
-
* table from growing without bound.
|
|
85
|
+
* Delete expired ephemeral tokens. The orchestrator calls it every 60s so
|
|
86
|
+
* the table cannot grow without bound.
|
|
125
87
|
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
* per-token kick timer (e.g. across a process restart that wiped
|
|
131
|
-
* the in-memory `tokenExpiryTimers` map) is still kicked. Closes
|
|
132
|
-
* the sister gap to the revocation finding.
|
|
88
|
+
* `onBeforeDelete` gets the expired ids once, **before** the DELETE; the
|
|
89
|
+
* orchestrator calls `agentRegistry.disconnectByTokenId(id)` with each, so a
|
|
90
|
+
* WS that outlived the per-token kick timer (e.g. a restart wiped the
|
|
91
|
+
* in-memory `tokenExpiryTimers` map) is still kicked.
|
|
133
92
|
*
|
|
134
|
-
* @param opts.onBeforeDelete - Optional sync/async callback invoked
|
|
135
|
-
* with expired token IDs before the DELETE.
|
|
136
93
|
* @returns Number of deleted rows.
|
|
137
94
|
*/
|
|
138
95
|
cleanupExpired(opts?: {
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Availability gate for version-keyed agent packages.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* caller can HOLD (the convergence gate) or skip re-producing (the upgrade
|
|
9
|
-
* hook). It never throws — the caller decides hold-vs-alarm.
|
|
4
|
+
* Fleet auto-upgrade NEVER rolls a host to a version whose payload objects are
|
|
5
|
+
* absent from the cache bucket: that stages stale or absent bytes, or leaves a
|
|
6
|
+
* version skew. It never throws; the caller holds (convergence gate) or skips
|
|
7
|
+
* re-producing (upgrade hook).
|
|
10
8
|
*/
|
|
11
9
|
import type { AgentPlatform } from '@kici-dev/shared';
|
|
12
10
|
import { type AgentPackageDownloadStorage } from './download.js';
|
|
@@ -19,9 +17,8 @@ export interface PayloadAvailability {
|
|
|
19
17
|
}
|
|
20
18
|
/**
|
|
21
19
|
* Check that a version's agent payloads exist for every requested platform.
|
|
22
|
-
* Fail-closed
|
|
23
|
-
*
|
|
24
|
-
* not present.
|
|
20
|
+
* Fail-closed: an absent object lands in `missing`, so gating on `available`
|
|
21
|
+
* never converges onto a version whose bytes are not present.
|
|
25
22
|
*/
|
|
26
23
|
export declare function assertPayloadsAvailable(storage: AgentPackageDownloadStorage, version: string, platforms: AgentPlatform[]): Promise<PayloadAvailability>;
|
|
27
24
|
//# sourceMappingURL=availability.d.ts.map
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { AgentPlatform } from '@kici-dev/shared';
|
|
2
2
|
/**
|
|
3
|
-
* Read side of the cache-bucket agent-package store
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* container-routable endpoint; `get` reads the `.sha256` object).
|
|
3
|
+
* Read side of the cache-bucket agent-package store, satisfied by the orchestrator
|
|
4
|
+
* S3 cache storage client: `getUrl` presigns against the external,
|
|
5
|
+
* container-routable endpoint; `get` reads the `.sha256` sidecar.
|
|
7
6
|
*/
|
|
8
7
|
export interface AgentPackageDownloadStorage {
|
|
9
8
|
getUrl(key: string): Promise<string | null>;
|
|
@@ -15,11 +14,9 @@ export declare function agentPackageHashKey(version: string, platform: AgentPlat
|
|
|
15
14
|
/** Parse a `sha256sum`-style `<hex> <name>` sidecar into the leading hex token. */
|
|
16
15
|
export declare function parseSha256Sidecar(contents: string): string | null;
|
|
17
16
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* staging stale bytes. The URL is box-routable (external endpoint); no standing
|
|
22
|
-
* S3 credential ever leaves the orchestrator.
|
|
17
|
+
* Returns null when the payload object is absent (an unresolvable version), so
|
|
18
|
+
* the caller fails fast rather than staging stale bytes. The URL is box-routable
|
|
19
|
+
* (external endpoint); no standing S3 credential ever leaves the orchestrator.
|
|
23
20
|
*/
|
|
24
21
|
export declare function presignAgentPackageDownload(storage: AgentPackageDownloadStorage, version: string, platform: AgentPlatform): Promise<{
|
|
25
22
|
url: string;
|
|
@@ -7,24 +7,21 @@ export interface InstallClosureOptions {
|
|
|
7
7
|
npmRegistry?: string;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
|
-
* The `@kici-dev/agent@<spec>` argument
|
|
10
|
+
* The `@kici-dev/agent@<spec>` install argument.
|
|
11
11
|
*
|
|
12
|
-
* In production
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* match the current base version's prereleases instead — the same
|
|
17
|
-
* prerelease-compatible resolution the rest of the dev tooling uses.
|
|
12
|
+
* In production it pins the exact single-version (`@kici-dev/agent@0.2.0`), so the payload is
|
|
13
|
+
* provably the version the orchestrator runs. In development (`KICI_DEV=true`) local Verdaccio
|
|
14
|
+
* carries only prereleases (`<version>-<buildCounter>`), so it matches the base version's
|
|
15
|
+
* prereleases, as the rest of the dev tooling does.
|
|
18
16
|
*/
|
|
19
17
|
export declare function agentInstallSpec(version: string): string;
|
|
20
18
|
/**
|
|
21
19
|
* `npm install @kici-dev/agent@<version>` for the TARGET platform into prefixDir.
|
|
22
20
|
*
|
|
23
|
-
* `--cpu`/`--os`
|
|
24
|
-
* `@oxc-transform/binding-<platform>`) for the target
|
|
25
|
-
*
|
|
26
|
-
* the
|
|
27
|
-
* `npm-shrinkwrap.json`, npm resolves the exact released + tested tree.
|
|
21
|
+
* `--cpu`/`--os` resolve every transitive optional native binding (incl.
|
|
22
|
+
* `@oxc-transform/binding-<platform>`) for the target, not the host, as `scripts/package.mjs`
|
|
23
|
+
* does for oxc. `--omit=dev` keeps the runtime tree only. A published `npm-shrinkwrap.json`
|
|
24
|
+
* pins the exact released + tested tree.
|
|
28
25
|
*/
|
|
29
26
|
export declare function installAgentClosure(opts: InstallClosureOptions): Promise<void>;
|
|
30
27
|
//# sourceMappingURL=install-closure.d.ts.map
|
|
@@ -11,16 +11,12 @@ export interface DownloadNodeOptions {
|
|
|
11
11
|
* Download + SHASUMS256-verify the Node runtime for a glibc-Linux platform and
|
|
12
12
|
* vendor `node` + `npm` into the payload.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* install a workflow's `.kici/` dependencies on a box with no system Node —
|
|
21
|
-
* `resolveNpm()` finds it at `<nodeDir>/../lib/node_modules/npm/bin/npm-cli.js`.
|
|
22
|
-
* The vendored Node is what the produced payload boots on — no system Node is
|
|
23
|
-
* ever used.
|
|
14
|
+
* Extracts into `<prefix>/` (the grandparent of `destBinPath`): `bin/node`, the
|
|
15
|
+
* `bin/npm` + `bin/npx` launcher symlinks, and `lib/node_modules/npm`. npm is
|
|
16
|
+
* required so the booted agent can install a workflow's `.kici/` dependencies on
|
|
17
|
+
* a box with no system Node — `resolveNpm()` finds it at
|
|
18
|
+
* `<nodeDir>/../lib/node_modules/npm/bin/npm-cli.js`. The payload boots on the
|
|
19
|
+
* vendored Node; no system Node is ever used.
|
|
24
20
|
*/
|
|
25
21
|
export declare function downloadNodeBinary(opts: DownloadNodeOptions): Promise<void>;
|
|
26
22
|
//# sourceMappingURL=node-binary.d.ts.map
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The members of an official Node.js Linux or macOS archive that a KiCI payload
|
|
3
3
|
* vendors, relative to the archive's `node-v<version>-<os>-<arch>/` directory:
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* `<nodeDir>/../lib/node_modules/npm/bin/npm-cli.js` beside the vendored `node`,
|
|
7
|
-
* so the builder role needs no npm on the host.
|
|
4
|
+
* with them the agent's `resolveNpm()` finds npm beside the vendored `node`, so
|
|
5
|
+
* the builder role needs no npm on the host.
|
|
8
6
|
*
|
|
9
|
-
*
|
|
7
|
+
* No imports, so repository tooling can read the list:
|
|
10
8
|
* `scripts/lib/node-dist.mjs` (the standalone package builder) keeps its own
|
|
11
9
|
* copy, and its test pins the two lists equal.
|
|
12
10
|
*/
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Auto-refresh of version-keyed agent payloads on `orchestrator upgrade
|
|
2
|
+
* Auto-refresh of version-keyed agent payloads on `orchestrator upgrade`
|
|
3
|
+
* (auto-deploy ⟹ auto-upgrade ⟹ auto-package).
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* bytes it needs with no separate operator step. Idempotent: a platform whose
|
|
9
|
-
* payload already exists for V is skipped, so a re-run is a no-op.
|
|
5
|
+
* After an upgrade to version V, produces + uploads
|
|
6
|
+
* `agent-packages/V/kici-agent-<platform>.tar.gz(.sha256)` for the fleet's platforms, so the
|
|
7
|
+
* convergence gate finds its bytes with no operator step. Idempotent: an existing payload for V
|
|
8
|
+
* is skipped.
|
|
10
9
|
*/
|
|
11
10
|
import { AgentPlatform } from '@kici-dev/shared';
|
|
12
11
|
import { type AgentPackageDownloadStorage } from './download.js';
|
|
@@ -31,18 +30,15 @@ export interface RefreshResult {
|
|
|
31
30
|
skipped: AgentPlatform[];
|
|
32
31
|
}
|
|
33
32
|
/**
|
|
34
|
-
* The platforms the fleet
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* arch coverage across an upgrade. Empty ⇒ the caller falls back to the
|
|
38
|
-
* bootstrap default set.
|
|
33
|
+
* The platforms the fleet has payloads for: the union across every stored version EXCEPT
|
|
34
|
+
* `excludeVersion` (the target about to be (re)produced), preserving arch coverage across an
|
|
35
|
+
* upgrade. Empty ⇒ the caller falls back to the bootstrap default set.
|
|
39
36
|
*/
|
|
40
37
|
export declare function discoverFleetPlatforms(storage: RefreshStorage, excludeVersion: string): Promise<AgentPlatform[]>;
|
|
41
38
|
/**
|
|
42
|
-
* Produce + upload the target version's payloads
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* back to the bootstrap default (`AgentPlatform.options`) on a fresh store.
|
|
39
|
+
* Produce + upload the target version's missing payloads. Explicit `platforms` override
|
|
40
|
+
* discovery; otherwise the fleet's arch coverage is kept, or the bootstrap default
|
|
41
|
+
* (`AgentPlatform.options`) on a fresh store.
|
|
46
42
|
*/
|
|
47
43
|
export declare function refreshAgentPackages(storage: RefreshStorage, version: string, opts: {
|
|
48
44
|
platforms?: AgentPlatform[];
|
|
@@ -4,12 +4,11 @@ import type { AgentPackageDownloadStorage } from './download.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Resolve the agent-package store the bring-up presign handler reads from.
|
|
6
6
|
*
|
|
7
|
-
* Defaults to the orchestrator's OWN cache bucket
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* is configured and no override is set (the presign RPC then refuses loudly).
|
|
7
|
+
* Defaults to the orchestrator's OWN cache bucket, never a vendor CDN. An
|
|
8
|
+
* `s3://bucket[/prefix]` override (`KICI_AGENT_BINARY_SOURCE`) points at another
|
|
9
|
+
* bucket on the SAME S3 endpoint (a customer supply-chain mirror); the config
|
|
10
|
+
* schema rejects an http(s) source. Undefined when neither is set, so the
|
|
11
|
+
* presign RPC refuses loudly.
|
|
13
12
|
*/
|
|
14
13
|
export declare function resolveAgentPackageStore(config: AppConfig, cacheStorage: CacheStorage | undefined): AgentPackageDownloadStorage | undefined;
|
|
15
14
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -8,10 +8,9 @@ export declare const AGENT_PACKAGES_PREFIX = "agent-packages/";
|
|
|
8
8
|
/** Cache-bucket key for a version-keyed agent payload. */
|
|
9
9
|
export declare function agentPackageKey(version: string, platform: AgentPlatform): string;
|
|
10
10
|
/**
|
|
11
|
-
* Parse
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* set from the store on upgrade.
|
|
11
|
+
* Parse a payload key back into its version and platform; null for any other key
|
|
12
|
+
* (a `.sha256` sidecar, an unrelated key). Discovers the fleet's platform set
|
|
13
|
+
* from the store on upgrade.
|
|
15
14
|
*/
|
|
16
15
|
export declare function parseAgentPackageKey(key: string): {
|
|
17
16
|
version: string;
|
package/dist/app.d.ts
CHANGED
|
@@ -91,9 +91,6 @@ import type { VariableStore } from './contexts/variable-store.js';
|
|
|
91
91
|
import type { HeldRunStore, ReleaseSignal } from './contexts/held-runs.js';
|
|
92
92
|
import type { StepApprovalBridge } from './approvals/step-approval-bridge.js';
|
|
93
93
|
import { AgentMetricsAggregator } from './metrics/agent-metrics-aggregator.js';
|
|
94
|
-
/**
|
|
95
|
-
* All dependencies needed to create the orchestrator Hono app.
|
|
96
|
-
*/
|
|
97
94
|
export interface AppDependencies {
|
|
98
95
|
config: AppConfig;
|
|
99
96
|
db: Kysely<Database>;
|
|
@@ -4,28 +4,23 @@ import { HoldOutcome } from '../pipeline/security-hold-check.js';
|
|
|
4
4
|
import type { HeldRunStore, ReleaseSignal } from '../contexts/held-runs.js';
|
|
5
5
|
import { type TeamMembershipLookup } from './approval-resolver.js';
|
|
6
6
|
/**
|
|
7
|
-
* The access-log action a held-run decision is audited under.
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* eligibility is enforced the same way for both. It never applies to a reject.
|
|
13
|
-
* Every approving surface takes its action from here, so the Platform-relayed
|
|
14
|
-
* and the direct admin-route approvals cannot audit the same act two ways.
|
|
7
|
+
* The access-log action a held-run decision is audited under. A
|
|
8
|
+
* `kici run --approve-all` breakglass approval audits as `held_run.auto_approve`
|
|
9
|
+
* to set it apart from an interactive approve; eligibility is enforced the same
|
|
10
|
+
* for both, and a reject never gets it. Every approving surface takes its action
|
|
11
|
+
* from here, so Platform-relayed and admin-route approvals audit one act one way.
|
|
15
12
|
*/
|
|
16
13
|
export declare function heldRunDecisionAction(decision: ApprovalDecision, autoApprove: boolean): AccessLogAction;
|
|
17
14
|
/** Whether a decision's post-commit consequence ran to completion. */
|
|
18
15
|
export interface DecisionConsequenceResult {
|
|
19
|
-
/**
|
|
16
|
+
/** False when a step of the consequence chain threw. */
|
|
20
17
|
ok: boolean;
|
|
21
|
-
/** The failure message, when `ok` is false. */
|
|
22
18
|
error?: string;
|
|
23
19
|
}
|
|
24
20
|
/** Outcome of applying a decision. */
|
|
25
21
|
export interface ApplyDecisionResult {
|
|
26
|
-
/** Whether the decision was
|
|
22
|
+
/** Whether the decision was recorded. */
|
|
27
23
|
accepted: boolean;
|
|
28
|
-
/** Human-readable status: 'released' | 'rejected' | 'pending' | 'ineligible' | 'not-found'. */
|
|
29
24
|
status: 'released' | 'rejected' | 'pending' | 'ineligible' | 'not-found';
|
|
30
25
|
/** When still pending, how many clauses remain unsatisfied. */
|
|
31
26
|
remainingClauses?: number;
|
|
@@ -34,26 +29,20 @@ export interface ApplyDecisionResult {
|
|
|
34
29
|
/** The release signal, when the element was released (for the caller to resume). */
|
|
35
30
|
release?: ReleaseSignal;
|
|
36
31
|
/**
|
|
37
|
-
* The
|
|
38
|
-
*
|
|
39
|
-
* every outcome that changed nothing (`pending`, `ineligible`, `not-found`).
|
|
32
|
+
* The post-commit consequence — already running, deliberately not awaited.
|
|
33
|
+
* Present on `released` and `rejected`; absent when nothing changed.
|
|
40
34
|
*
|
|
41
|
-
* It NEVER rejects: a throw
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* — the record then carries the consequence's real outcome rather than a
|
|
46
|
-
* guess. A caller that needs the consequence finished before it continues
|
|
47
|
-
* (a test, a sequential sweep) awaits it.
|
|
35
|
+
* It NEVER rejects: a throw is logged and surfaces as `{ ok: false, error }`,
|
|
36
|
+
* so a caller may leave it unawaited. A caller answering a waiting client
|
|
37
|
+
* answers first and attaches its audit record to this, so the record carries
|
|
38
|
+
* the real outcome rather than a guess. A test or sequential sweep awaits it.
|
|
48
39
|
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* already reports its own failures on the run row and on the provider's check
|
|
56
|
-
* runs rather than through this return value.
|
|
40
|
+
* Awaiting it made an approve spend nine-plus seconds behind a ten-second
|
|
41
|
+
* relay budget and answer 504 on an approval that had landed. Awaiting adds no
|
|
42
|
+
* strength: the resume is the same dispatch the original webhook ran with no
|
|
43
|
+
* client waiting, `dispatchMatchedWorkflow` returning means only that jobs
|
|
44
|
+
* were routed, and `resumeWorkflow` reports its own failures on the run row
|
|
45
|
+
* and the provider's check runs.
|
|
57
46
|
*/
|
|
58
47
|
consequence?: Promise<DecisionConsequenceResult>;
|
|
59
48
|
}
|
|
@@ -83,34 +72,28 @@ export interface ApplyDecisionDeps {
|
|
|
83
72
|
onStepReject?: (heldRunId: string, reason?: string) => Promise<void> | void;
|
|
84
73
|
/**
|
|
85
74
|
* Called when a workflow-scoped hold is rejected — cancel the run and drop
|
|
86
|
-
* the pending workflow context.
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* site would misattribute one of them.
|
|
75
|
+
* the pending workflow context. The rejecter's reason becomes the run's
|
|
76
|
+
* cancellation reason: this serves the install gate, the trust policy's
|
|
77
|
+
* PR-wide hold and the SDK's workflow `requireApproval` alike, so a reason
|
|
78
|
+
* invented at the wiring site would misattribute one of them.
|
|
91
79
|
*
|
|
92
|
-
* The row
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
* its own post only when one actually landed.
|
|
80
|
+
* The row tells those apart: only some posted a pending `KiCI Security` check.
|
|
81
|
+
* Resolves to whether a terminal security check was WRITTEN, so this applier
|
|
82
|
+
* suppresses its own post only when one landed.
|
|
96
83
|
*/
|
|
97
84
|
onWorkflowReject?: (hold: HeldRun, reason?: string) => Promise<boolean>;
|
|
98
85
|
/**
|
|
99
|
-
* Terminalize the `KiCI Security` check
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
* approval-window sweep — which only ever sees pending rows — can no longer
|
|
105
|
-
* reach it. Optional so an orchestrator with no provider wiring degrades to
|
|
86
|
+
* Terminalize the `KiCI Security` check of every hold this applier ends that
|
|
87
|
+
* `onWorkflowReject` did not already report. Without it a job-scoped hold
|
|
88
|
+
* answered from the dashboard strands its check: the row leaves `pending`, so
|
|
89
|
+
* the stale detector's pending-only approval-window sweep never reaches it.
|
|
90
|
+
* Optional so an orchestrator with no provider wiring degrades to
|
|
106
91
|
* flip-and-resume rather than failing the decision.
|
|
107
92
|
*
|
|
108
|
-
* `actorSub` is
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* directory. Omitted entirely where the summary must match one a delegate
|
|
113
|
-
* built without it; see the reject arm below.
|
|
93
|
+
* `actorSub` is an opaque subject id a contributor cannot read; the wiring
|
|
94
|
+
* site resolves it to a display name (or drops it), since only it holds the
|
|
95
|
+
* org's identity directory. Omitted where the summary must match one a
|
|
96
|
+
* delegate built without it; see the reject arm below.
|
|
114
97
|
*/
|
|
115
98
|
settleSecurityCheck?: (args: {
|
|
116
99
|
hold: HeldRun;
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Pure approval-clause evaluator
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* rejected (any single reject decision)?
|
|
8
|
-
* - `canApprove` — may a given actor cast an approve decision right now?
|
|
9
|
-
*
|
|
10
|
-
* Both the dashboard handler and the CLI HTTP route funnel through these so the
|
|
11
|
-
* authorization story is identical regardless of the surface.
|
|
2
|
+
* Pure approval-clause evaluator (no DB, no I/O). `evaluate` answers whether a
|
|
3
|
+
* requirement is satisfied (all clauses ANDed) or rejected (any reject);
|
|
4
|
+
* `canApprove` whether an actor may cast an approve now. The dashboard handler
|
|
5
|
+
* and the CLI HTTP route both funnel through these, so authorization is
|
|
6
|
+
* identical on every surface.
|
|
12
7
|
*/
|
|
13
8
|
import type { ApprovalRequirement, ApproverClause } from '@kici-dev/engine';
|
|
14
9
|
/** A team name → set of member user ids (Keycloak subs). */
|
|
@@ -32,16 +27,11 @@ export interface EvaluationResult {
|
|
|
32
27
|
rejected: boolean;
|
|
33
28
|
perClause: PerClauseResult[];
|
|
34
29
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Is a single clause satisfied by any approve decision whose approver is
|
|
37
|
-
* eligible for the clause? Reject decisions never satisfy.
|
|
38
|
-
*/
|
|
30
|
+
/** Satisfied by any approve from an eligible approver; rejects never satisfy. */
|
|
39
31
|
export declare function isClauseSatisfied(clause: ApproverClause, decisions: RecordedDecision[], lookup: TeamMembershipLookup): boolean;
|
|
40
|
-
/**
|
|
32
|
+
/** Team membership or exact user match. */
|
|
41
33
|
export declare function isActorEligibleForClause(actorSub: string, clause: ApproverClause, lookup: TeamMembershipLookup): boolean;
|
|
42
34
|
/**
|
|
43
|
-
* Evaluate a requirement against the recorded decisions.
|
|
44
|
-
*
|
|
45
35
|
* - A single reject decision sets `rejected` (the caller fails the element).
|
|
46
36
|
* - Empty clauses ⇒ satisfied by ANY single approve decision.
|
|
47
37
|
* - Non-empty clauses ⇒ satisfied iff every clause is satisfied (AND).
|
|
@@ -54,13 +44,11 @@ export interface CanApproveContext {
|
|
|
54
44
|
allowSelfApproval: boolean;
|
|
55
45
|
}
|
|
56
46
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* - Self-approval gate: when `allowSelfApproval` is false and the actor is the
|
|
60
|
-
* run's triggerer, they may never approve.
|
|
47
|
+
* - Self-approval gate: when `allowSelfApproval` is false, the run's triggerer
|
|
48
|
+
* may never approve.
|
|
61
49
|
* - Eligibility: the actor must qualify for at least one still-UNSATISFIED
|
|
62
|
-
* clause
|
|
63
|
-
*
|
|
50
|
+
* clause (approving a satisfied clause adds nothing). For an empty-clause
|
|
51
|
+
* requirement, any actor the self-approval gate passes qualifies.
|
|
64
52
|
*/
|
|
65
53
|
export declare function canApprove(actorSub: string, requirement: ApprovalRequirement, decisions: RecordedDecision[], lookup: TeamMembershipLookup, ctx: CanApproveContext): boolean;
|
|
66
54
|
//# sourceMappingURL=approval-resolver.d.ts.map
|