@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,19 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* read.
|
|
2
|
+
* Handler for the `dashboard.run.state` system reconciliation read.
|
|
4
3
|
*
|
|
5
|
-
* The Platform's `RunMirrorReconciler`
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* `
|
|
9
|
-
*
|
|
10
|
-
*
|
|
4
|
+
* The Platform's `RunMirrorReconciler` sends it for a run stuck non-terminal in
|
|
5
|
+
* the Platform mirror, to recover a terminal frame dropped on a live
|
|
6
|
+
* connection. It projects `execution_runs` + `execution_jobs` for one run into
|
|
7
|
+
* the `StateReplayRun` shape of the reconnect `state.replay` push, so the
|
|
8
|
+
* Platform drives it through the shared `upsertRunMirror` helper. Pure (deps
|
|
9
|
+
* passed as arguments), so the `server.ts` wiring stays a thin adapter and the
|
|
10
|
+
* logic is unit-testable without a live Platform connection.
|
|
11
11
|
*
|
|
12
|
-
* Unlike
|
|
13
|
-
*
|
|
14
|
-
* not a user data access. The handler is pure (deps passed as arguments) so the
|
|
15
|
-
* WS wiring in `server.ts` stays a thin adapter and the logic is unit-testable
|
|
16
|
-
* without a live Platform connection.
|
|
12
|
+
* Unlike `dashboard.run.detail`, it writes NO `access_log` row: it is a
|
|
13
|
+
* `system`-actor reconciliation read, not a user data access.
|
|
17
14
|
*/
|
|
18
15
|
import type { Kysely } from 'kysely';
|
|
19
16
|
import type { Database } from '../db/types.js';
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import type { OrchestratorToPlatformMessage } from '@kici-dev/engine';
|
|
2
2
|
import { RingBuffer } from '@kici-dev/shared';
|
|
3
3
|
/**
|
|
4
|
-
* In-memory buffer for orchestrator-to-Platform messages
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* message type. Default maxSize is 10,000 (inherited from RingBuffer). When
|
|
8
|
-
* the orchestrator loses its WebSocket connection to Platform, outgoing messages
|
|
9
|
-
* are buffered here and flushed in order on reconnection.
|
|
4
|
+
* In-memory buffer for orchestrator-to-Platform messages while the Platform
|
|
5
|
+
* WebSocket is down; flushed in order on reconnection. Default maxSize is
|
|
6
|
+
* 10,000 (inherited from RingBuffer).
|
|
10
7
|
*/
|
|
11
8
|
export declare class EventBuffer extends RingBuffer<OrchestratorToPlatformMessage> {
|
|
12
9
|
constructor(options?: {
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Build the `execution.status` frame the orchestrator forwards to the Platform.
|
|
3
|
+
* A pure function with its own tests: `server.ts`'s `onExecutionStatusChange`
|
|
4
|
+
* hook supplies the message id and the clock and hands the result to the
|
|
5
|
+
* Platform client.
|
|
3
6
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* Every field here is conditional on the context actually carrying it. That is
|
|
10
|
-
* load-bearing for `workflowRepoIdentifier` in particular: the tracker records
|
|
11
|
-
* it only when the repository that DEFINES the workflow differs from the
|
|
12
|
-
* repository the run acted on, so the frame must stay silent for a per-repository
|
|
13
|
-
* run or "present" stops marking a cross-repository global run downstream.
|
|
7
|
+
* Every field is conditional on the context carrying it. For
|
|
8
|
+
* `workflowRepoIdentifier` that is load-bearing: the tracker records it only
|
|
9
|
+
* when the repository that defines the workflow differs from the one the run
|
|
10
|
+
* acted on, so its presence marks a cross-repository global run downstream.
|
|
11
|
+
* Free text is clamped to the wire bound here, at the source.
|
|
14
12
|
*/
|
|
15
13
|
import type { ExecutionContext } from '../reporting/execution-tracker.js';
|
|
16
|
-
import type
|
|
14
|
+
import { type ExecutionRunStatus, type ExecutionStatus, type InitFailure } from '@kici-dev/engine';
|
|
17
15
|
export interface ExecutionStatusFrameArgs {
|
|
18
16
|
messageId: string;
|
|
19
17
|
runId: string;
|
|
@@ -2,21 +2,16 @@
|
|
|
2
2
|
* Safe, fixed messages the orchestrator sends to the agent (and through it to
|
|
3
3
|
* the workflow author) when an agent-WS request fails for an internal reason.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* in one module — rather than inline at each send site — so the handler, its
|
|
10
|
-
* tests and the `onEventEmit` callback in `app.ts` cannot drift apart.
|
|
5
|
+
* They are presentation strings, not a wire vocabulary: they ride the free-text
|
|
6
|
+
* `reason` of `step.approval-resolved` and `error` of `event.emit.response` /
|
|
7
|
+
* `agent.api.response`, so rewording needs no agent change. One module keeps the
|
|
8
|
+
* handler, its tests and the `onEventEmit` callback in `app.ts` from drifting.
|
|
11
9
|
*
|
|
12
|
-
* Raw exception text is never
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* callback's return value with its own safe wording (an unknown job context, an
|
|
18
|
-
* approval bridge's timeout reason), which stays specific enough to debug a bad
|
|
19
|
-
* workflow without operator log access.
|
|
10
|
+
* Raw exception text is never sent: it stays in the orchestrator logs, so the
|
|
11
|
+
* author never sees a database endpoint, a constraint name or a stack frame.
|
|
12
|
+
* Author-actionable failures (an unknown job context, an approval bridge's
|
|
13
|
+
* timeout reason) ride the callback's return value with their own safe wording,
|
|
14
|
+
* specific enough to debug a bad workflow without operator log access.
|
|
20
15
|
*/
|
|
21
16
|
export declare const AgentWsInternalFailure: Readonly<{
|
|
22
17
|
/** The step-approval bridge rejected instead of resolving the hold. */
|
|
@@ -4,27 +4,21 @@ export interface FleetAgentCollectorOptions {
|
|
|
4
4
|
export declare class FleetAgentCollector {
|
|
5
5
|
private readonly opts;
|
|
6
6
|
private readonly waiter;
|
|
7
|
-
/** requestId -> owning agentId, so a disconnect rejects only that agent's requests. */
|
|
8
7
|
private readonly requestAgent;
|
|
9
8
|
constructor(opts: FleetAgentCollectorOptions);
|
|
10
|
-
/**
|
|
11
|
-
* Register the pending request `requestId` (owned by `agentId`), invoke
|
|
12
|
-
* `send` to dispatch the fleet.logs.request envelope, and await the
|
|
13
|
-
* reassembled bundle Buffer.
|
|
14
|
-
*/
|
|
9
|
+
/** Registers `requestId` before `send` dispatches the envelope; resolves to the bundle. */
|
|
15
10
|
request(requestId: string, agentId: string, send: () => void): Promise<Buffer>;
|
|
16
11
|
onChunk(requestId: string, seq: number, dataB64: string, isLast: boolean): void;
|
|
17
12
|
/**
|
|
18
|
-
* Whether
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* unsolicited one is not.
|
|
13
|
+
* Whether this orchestrator still awaits `requestId` from `agentId`. The agent handler
|
|
14
|
+
* checks it before rate limiting a `fleet.bundle.chunk`: a solicited transfer is exempt,
|
|
15
|
+
* an unsolicited one is not.
|
|
22
16
|
*/
|
|
23
17
|
isPendingFor(requestId: string, agentId: string): boolean;
|
|
24
18
|
onError(requestId: string, message: string): void;
|
|
25
|
-
/**
|
|
19
|
+
/** Called on the agent's disconnect. */
|
|
26
20
|
rejectAgent(agentId: string, reason: string): void;
|
|
27
|
-
/**
|
|
21
|
+
/** Orchestrator shutdown: rejects regardless of owner. */
|
|
28
22
|
rejectAll(reason: string): void;
|
|
29
23
|
}
|
|
30
24
|
//# sourceMappingURL=fleet-agent-collector.d.ts.map
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Resolve a workflow's `runsOnAll` host-fan-out predicate from the orchestrator's
|
|
3
3
|
* persisted registrations, for the fleet runsOnAll-preview read path.
|
|
4
|
-
*
|
|
5
|
-
* The orchestrator stores each registered workflow's full lock entry in
|
|
6
|
-
* `workflow_registrations.lock_entry` (JSON). This reader parses that entry,
|
|
7
|
-
* finds the first static job carrying a `runsOnAll` predicate, and returns its
|
|
8
|
-
* `{ include, exclude, onUnreachable }` — or null when no registered workflow of
|
|
9
|
-
* that name declares a host fan-out.
|
|
4
|
+
* Reads the lock entry stored as JSON in `workflow_registrations.lock_entry`.
|
|
10
5
|
*/
|
|
11
6
|
import type { Kysely } from 'kysely';
|
|
12
7
|
import { type LockWorkflow } from '@kici-dev/engine';
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
* The agent's credential helper calls this on every git network operation, so
|
|
5
5
|
* this path is hot and must stay cheap: validate, authorize, delegate.
|
|
6
6
|
*
|
|
7
|
-
* Authorization is five layers,
|
|
8
|
-
* rather than from the request:
|
|
7
|
+
* Authorization is five layers, each resolved from server truth, never the request:
|
|
9
8
|
*
|
|
10
9
|
* 1. job ownership — an agent may only request credentials for a job it was
|
|
11
10
|
* dispatched, resolved through the dispatcher;
|
|
@@ -15,23 +14,20 @@
|
|
|
15
14
|
* repository), so cloning a sibling repo needs no credential in workflow
|
|
16
15
|
* code. A write must additionally stay inside the organisation that owns
|
|
17
16
|
* the job's source repository;
|
|
18
|
-
* 3. the LOCK DECLARATION — a workflow-supplied `ref` must equal
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* carries inline `*Value` material is admitted exactly when the lock
|
|
24
|
-
* declared that material, and refused otherwise;
|
|
17
|
+
* 3. the LOCK DECLARATION — a workflow-supplied `ref` must equal an entry of the
|
|
18
|
+
* job's `gitCredentials` map, which the orchestrator wrote from the lock at
|
|
19
|
+
* dispatch (`git/job-context.ts` names the rows that carry it and their read
|
|
20
|
+
* order). This is deliberately the only check a ref faces: a ref carrying inline
|
|
21
|
+
* `*Value` material is admitted exactly when the lock declared that material;
|
|
25
22
|
* 4. the named context's protection rules, run by
|
|
26
23
|
* `resolveJobQualifiedSecret` when the broker resolves a
|
|
27
24
|
* `<context>:<key>` reference;
|
|
28
25
|
* 5. the trust tier — an untrusted contributor gets no workflow-supplied
|
|
29
26
|
* credential at all, mirroring the install-secrets strip.
|
|
30
27
|
*
|
|
31
|
-
* The step process is the
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* and every check here reads what the orchestrator wrote rather than what the
|
|
28
|
+
* The step process is the IPC sender, so job code can forge any request frame.
|
|
29
|
+
* Layers 3 to 5 make that forgery worthless: a forged `ref` names a credential the
|
|
30
|
+
* lock never declared, and every check reads what the orchestrator wrote, not what the
|
|
35
31
|
* agent claimed.
|
|
36
32
|
*/
|
|
37
33
|
import type { TrustTier } from '@kici-dev/engine';
|
|
@@ -39,10 +35,7 @@ import type { GitCredentialBroker } from '../git/credential-broker.js';
|
|
|
39
35
|
/** Per-job facts the handler needs. Resolved from server truth, never from params. */
|
|
40
36
|
export interface JobCredentialContext {
|
|
41
37
|
orgId: string;
|
|
42
|
-
/**
|
|
43
|
-
* The repository whose code the job checks out — the event's repository.
|
|
44
|
-
* The write-credential organisation fence is anchored here.
|
|
45
|
-
*/
|
|
38
|
+
/** The event's repository, which the job checks out; anchors the write-credential fence. */
|
|
46
39
|
sourceRepo: string;
|
|
47
40
|
/**
|
|
48
41
|
* The repository whose policy governs the job's credentials: the workflow
|
|
@@ -51,9 +44,8 @@ export interface JobCredentialContext {
|
|
|
51
44
|
*/
|
|
52
45
|
policyRepo: string;
|
|
53
46
|
/**
|
|
54
|
-
* The `gitCredentials` map
|
|
55
|
-
*
|
|
56
|
-
* declared none, so every workflow-supplied ref is refused.
|
|
47
|
+
* The lock entry's `gitCredentials` map, verbatim; a request's ref must equal one
|
|
48
|
+
* entry. An empty map refuses every workflow-supplied ref.
|
|
57
49
|
*/
|
|
58
50
|
declaredCredentials: Readonly<Record<string, Readonly<Record<string, string>>>>;
|
|
59
51
|
/** The run's resolved contributor trust tier, or undefined when unresolved. */
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { type HostInventoryEntry } from '@kici-dev/engine';
|
|
2
2
|
import type { HostRosterStore } from '../agent/host-roster.js';
|
|
3
|
-
/**
|
|
3
|
+
/** Kept narrow for testability. */
|
|
4
4
|
export interface InventoryApiDeps {
|
|
5
5
|
rosterStore: Pick<HostRosterStore, 'queryInventory' | 'getInventory'>;
|
|
6
6
|
/** Roster grace window (ms) — the same value runsOnAll's `findMatching` uses. */
|
|
7
7
|
graceMs: number;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* Property filtering is done client-side in the workflow.
|
|
10
|
+
* Label selector: `include` OR-of-AND groups + `exclude`; an empty selector ⇒
|
|
11
|
+
* all hosts. The workflow filters properties client-side.
|
|
13
12
|
*/
|
|
14
13
|
export declare function createInventoryQueryHandler(deps: InventoryApiDeps): (agentId: string, params: Record<string, unknown>) => Promise<HostInventoryEntry[]>;
|
|
15
|
-
/**
|
|
14
|
+
/** Single-host lookup, null when absent. */
|
|
16
15
|
export declare function createInventoryGetHandler(deps: InventoryApiDeps): (agentId: string, params: Record<string, unknown>) => Promise<HostInventoryEntry | null>;
|
|
17
16
|
//# sourceMappingURL=inventory-api.d.ts.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build the `job.status.forward` frame the orchestrator forwards to the Platform.
|
|
3
|
+
*
|
|
4
|
+
* Every optional field is sent only when the tracker supplied it, so the
|
|
5
|
+
* Platform reads an absent field as "no value" and keeps what it stored. Free
|
|
6
|
+
* text is clamped to the wire bound here, at the source, so a long agent error
|
|
7
|
+
* never produces a frame the Platform has to shorten.
|
|
8
|
+
*/
|
|
9
|
+
import { type ExecutionJobStatus, type InitFailure, type JobStatusForward } from '@kici-dev/engine';
|
|
10
|
+
export interface JobStatusForwardFrameArgs {
|
|
11
|
+
messageId: string;
|
|
12
|
+
runId: string;
|
|
13
|
+
jobId: string;
|
|
14
|
+
jobName: string;
|
|
15
|
+
status: ExecutionJobStatus;
|
|
16
|
+
timestamp: number;
|
|
17
|
+
orchestratorId: string;
|
|
18
|
+
startedAt?: number;
|
|
19
|
+
completedAt?: number;
|
|
20
|
+
durationMs?: number;
|
|
21
|
+
errorMessage?: string;
|
|
22
|
+
agentId?: string;
|
|
23
|
+
runsOnLabels?: string[];
|
|
24
|
+
logBytes?: number;
|
|
25
|
+
initFailure?: InitFailure;
|
|
26
|
+
/** Ordered bound context names for a multi-context job. */
|
|
27
|
+
contexts?: string[];
|
|
28
|
+
}
|
|
29
|
+
export declare function buildJobStatusForwardFrame(args: JobStatusForwardFrameArgs): JobStatusForward;
|
|
30
|
+
//# sourceMappingURL=job-status-forward-frame.d.ts.map
|
|
@@ -1,86 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* - Per-run observer sets with subscribe/unsubscribe
|
|
7
|
-
* - Broadcast of messages (log, step, status, complete) to all observers
|
|
8
|
-
* - Message buffering with monotonic sequence numbers for reconnection backfill
|
|
9
|
-
* - Automatic cleanup of closed/errored connections during broadcast
|
|
10
|
-
* - TTL-based buffer cleanup after run completion
|
|
2
|
+
* Per-run registry of WebSocket observers (several CLI clients may observe one
|
|
3
|
+
* run). Messages carry a monotonic per-run sequence and are buffered for
|
|
4
|
+
* reconnection backfill; closed connections are dropped on broadcast, and a
|
|
5
|
+
* completed run's buffer is reclaimed after a TTL.
|
|
11
6
|
*/
|
|
12
7
|
import type { WsLike } from '@kici-dev/engine';
|
|
13
8
|
export type ObserverWsLike = WsLike;
|
|
14
9
|
export declare class ObserverRegistry {
|
|
15
|
-
/** Per-run observer sets. */
|
|
16
10
|
private readonly observers;
|
|
17
|
-
/** Per-run message buffers for reconnection backfill. */
|
|
18
11
|
private readonly buffers;
|
|
19
|
-
/** Monotonic sequence counter per run. */
|
|
20
12
|
private readonly sequenceCounters;
|
|
21
|
-
/**
|
|
13
|
+
/** Pending buffer cleanups, cancelled when a new observer subscribes. */
|
|
22
14
|
private readonly cleanupTimers;
|
|
23
|
-
/**
|
|
24
|
-
* Subscribe an observer to a run.
|
|
25
|
-
*
|
|
26
|
-
* If `lastSeenSequence` is provided, buffered messages with sequence > lastSeenSequence
|
|
27
|
-
* are replayed to the observer immediately.
|
|
28
|
-
*/
|
|
15
|
+
/** Replays buffered messages with sequence > `lastSeenSequence` when it is given. */
|
|
29
16
|
subscribe(runId: string, ws: ObserverWsLike, lastSeenSequence?: number): void;
|
|
30
|
-
/**
|
|
31
|
-
* Unsubscribe an observer from a run.
|
|
32
|
-
*
|
|
33
|
-
* If the observer set becomes empty, the buffer is kept alive
|
|
34
|
-
* for potential reconnection (TTL-based cleanup happens later).
|
|
35
|
-
*/
|
|
17
|
+
/** The buffer outlives an empty observer set, for reconnection. */
|
|
36
18
|
unsubscribe(runId: string, ws: ObserverWsLike): void;
|
|
37
19
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* The message is serialized once, sent to all observers, and added to the
|
|
41
|
-
* run's buffer with a monotonic sequence number. Closed/errored connections
|
|
42
|
-
* are removed during broadcast.
|
|
20
|
+
* Serialize once, stamp a monotonic sequence, buffer, and send to every
|
|
21
|
+
* observer; closed or erroring connections are removed.
|
|
43
22
|
*/
|
|
44
23
|
broadcast(runId: string, message: object): void;
|
|
45
|
-
/**
|
|
46
|
-
* Convenience: broadcast a log chunk message.
|
|
47
|
-
*/
|
|
48
24
|
broadcastLog(runId: string, jobId: string, jobName: string, stepIndex: number, stepName: string, lines: string[]): void;
|
|
49
|
-
/**
|
|
50
|
-
* Convenience: broadcast a step lifecycle event.
|
|
51
|
-
*/
|
|
52
25
|
broadcastStep(runId: string, jobId: string, jobName: string, stepName: string, state: string, durationMs?: number): void;
|
|
53
|
-
/**
|
|
54
|
-
* Convenience: broadcast a run status change.
|
|
55
|
-
*/
|
|
56
26
|
broadcastStatus(runId: string, status: string, jobName?: string): void;
|
|
57
|
-
/**
|
|
58
|
-
* Convenience: broadcast run completion with summary.
|
|
59
|
-
*
|
|
60
|
-
* After broadcasting, schedules buffer cleanup after COMPLETION_BUFFER_TTL_MS
|
|
61
|
-
* to allow brief reconnection windows.
|
|
62
|
-
*/
|
|
27
|
+
/** Schedules buffer cleanup after COMPLETION_BUFFER_TTL_MS, a brief reconnection window. */
|
|
63
28
|
broadcastComplete(runId: string, status: string, summary: object): void;
|
|
64
|
-
/**
|
|
65
|
-
* Get the number of active observers for a run.
|
|
66
|
-
*/
|
|
67
29
|
getObserverCount(runId: string): number;
|
|
68
|
-
/**
|
|
69
|
-
* Check if a run has any active observers.
|
|
70
|
-
*/
|
|
71
30
|
hasObservers(runId: string): boolean;
|
|
72
31
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
32
|
+
* Drop every run's buffer, sequence counter, pending cleanup timer and
|
|
33
|
+
* observer set, active runs included. Call on shutdown.
|
|
75
34
|
*/
|
|
76
35
|
cleanup(): void;
|
|
77
|
-
/**
|
|
78
|
-
* Get the current sequence number for a run (for testing).
|
|
79
|
-
*/
|
|
36
|
+
/** For tests. */
|
|
80
37
|
getCurrentSequence(runId: string): number;
|
|
81
|
-
/**
|
|
82
|
-
* Get the buffer size for a run (for testing).
|
|
83
|
-
*/
|
|
38
|
+
/** For tests. */
|
|
84
39
|
getBufferSize(runId: string): number;
|
|
85
40
|
private nextSequence;
|
|
86
41
|
private addToBuffer;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type OrchestratorToPlatformMessage } from '@kici-dev/engine';
|
|
2
|
+
/** The frame to send (clamped for a guarded type), or null when it must not be sent. */
|
|
3
|
+
export declare function guardOutboundFrame(frame: OrchestratorToPlatformMessage): OrchestratorToPlatformMessage | null;
|
|
4
|
+
//# sourceMappingURL=outbound-frame-guard.d.ts.map
|
|
@@ -2,7 +2,7 @@ import type { OwnershipTracker } from '../agent/ownership-tracker.js';
|
|
|
2
2
|
/** Whether a job-scoped agent frame may be handled. */
|
|
3
3
|
export type OwnershipDecision = 'accept' | 'reject';
|
|
4
4
|
/**
|
|
5
|
-
* Resolve whether `agentId` may act on `jobId`, in the
|
|
5
|
+
* Resolve whether `agentId` may act on `jobId`, in the steps every
|
|
6
6
|
* job-scoped agent frame shares.
|
|
7
7
|
*
|
|
8
8
|
* 1. No tracker configured — ownership enforcement is off; accept.
|
|
@@ -18,10 +18,7 @@ export type ReplaySendResult = {
|
|
|
18
18
|
chunks: number;
|
|
19
19
|
skipped?: 'empty' | 'invalid' | 'disconnected' | 'breaker';
|
|
20
20
|
};
|
|
21
|
-
/**
|
|
22
|
-
* A webhook source this orchestrator manages, registered with the Platform after
|
|
23
|
-
* auth.success. Defined in `../entry-helpers.ts`; re-exported for existing importers.
|
|
24
|
-
*/
|
|
21
|
+
/** Re-exported from `../entry-helpers.ts` for existing importers. */
|
|
25
22
|
export type { ProviderSource } from '../entry-helpers.js';
|
|
26
23
|
import type { ProviderSource } from '../entry-helpers.js';
|
|
27
24
|
/**
|
|
@@ -54,13 +51,12 @@ export type DashboardFrameHandlers = {
|
|
|
54
51
|
export interface PlatformClientOptions {
|
|
55
52
|
/** WebSocket URL of the Platform relay. */
|
|
56
53
|
url: string;
|
|
57
|
-
/** API key
|
|
54
|
+
/** API key. */
|
|
58
55
|
token: string;
|
|
59
|
-
/** Callback invoked when a webhook relay is received from Platform. */
|
|
60
56
|
onWebhookRelay: (relay: WebhookRelay) => Promise<void>;
|
|
61
|
-
/**
|
|
57
|
+
/** Registered after authentication. */
|
|
62
58
|
providerSources?: ProviderSource[];
|
|
63
|
-
/**
|
|
59
|
+
/** Sent in source.register for peer correlation. */
|
|
64
60
|
instanceId?: string;
|
|
65
61
|
/** `cluster_meta.cluster_name`; the Platform routes per-orch dashboard requests by it. */
|
|
66
62
|
clusterName?: string;
|
|
@@ -69,29 +65,28 @@ export interface PlatformClientOptions {
|
|
|
69
65
|
* clusters in one org share a `clusterName`; HA siblings share one DB and so one id.
|
|
70
66
|
*/
|
|
71
67
|
clusterId?: string;
|
|
72
|
-
/**
|
|
68
|
+
/** Peer-to-peer address (KICI_CLUSTER_ADDRESS); null if not configured. */
|
|
73
69
|
address?: string | null;
|
|
74
|
-
/**
|
|
70
|
+
/** e.g. "0.0.1". Sent in source.register for diagnostics. */
|
|
75
71
|
version?: string;
|
|
76
|
-
/**
|
|
72
|
+
/** Sent in source.register for diagnostics. */
|
|
77
73
|
mode?: string;
|
|
78
|
-
/**
|
|
74
|
+
/** e.g. ["container", "firecracker"]. Sent in source.register for diagnostics. */
|
|
79
75
|
scalerBackends?: string[];
|
|
80
|
-
/**
|
|
76
|
+
/** Sent in source.register so the dashboard builds the correct kici-admin invocation. */
|
|
81
77
|
deployment?: DeploymentIdentity;
|
|
82
|
-
/**
|
|
78
|
+
/** Host config file locations, sent in source.register for the dashboard to show. */
|
|
83
79
|
configPaths?: ConfigPaths;
|
|
84
|
-
/**
|
|
80
|
+
/** S3 log storage configured. Sent in source.register for pool validation. */
|
|
85
81
|
s3LogAccess?: boolean;
|
|
86
|
-
/**
|
|
82
|
+
/** Ms. Sent in source.register for Platform safety-net GC. */
|
|
87
83
|
queueTimeoutMs?: number;
|
|
88
|
-
/**
|
|
84
|
+
/** Ms. Default: 30000 (30s). */
|
|
89
85
|
heartbeatIntervalMs?: number;
|
|
90
|
-
/**
|
|
86
|
+
/** Ms. Default: 60000 (60s). */
|
|
91
87
|
maxReconnectDelayMs?: number;
|
|
92
|
-
/**
|
|
88
|
+
/** Default: 10000. */
|
|
93
89
|
maxBufferSize?: number;
|
|
94
|
-
/** Optional callback for log pull requests from Platform. */
|
|
95
90
|
onLogPullRequest?: FrameHandler<{
|
|
96
91
|
messageId: string;
|
|
97
92
|
executionId: string;
|
|
@@ -100,7 +95,7 @@ export interface PlatformClientOptions {
|
|
|
100
95
|
cursor?: number;
|
|
101
96
|
limit?: number;
|
|
102
97
|
}>;
|
|
103
|
-
/**
|
|
98
|
+
/** Peer discovery from the Platform matchmaker. */
|
|
104
99
|
onPeerDiscover?: (peer: {
|
|
105
100
|
connectionId: string;
|
|
106
101
|
instanceId?: string;
|
|
@@ -108,7 +103,7 @@ export interface PlatformClientOptions {
|
|
|
108
103
|
routingKeys: string[];
|
|
109
104
|
orchRole?: OrchRole;
|
|
110
105
|
}) => void;
|
|
111
|
-
/**
|
|
106
|
+
/** Invoked after authentication and source registration. */
|
|
112
107
|
onAuthenticated?: () => void | Promise<void>;
|
|
113
108
|
/** Connected worker peers for `cluster.membership`; undefined off-coordinator → none reported. */
|
|
114
109
|
getWorkerPeers?: () => Array<{
|
|
@@ -140,15 +135,14 @@ export interface PlatformClientOptions {
|
|
|
140
135
|
onRunCancel?: FrameHandler<RunCancelRequest>;
|
|
141
136
|
/** Handlers for the {@link DASHBOARD_FRAME_TYPES} read frames; a type with none is dropped. */
|
|
142
137
|
dashboardHandlers?: DashboardFrameHandlers;
|
|
143
|
-
/** Dashboard environment / held-run messages. */
|
|
144
138
|
onDashboardEnvMessage?: FrameHandler<DashboardPlatformToOrchMessage>;
|
|
145
139
|
/** `kici run remote` control-plane relay requests; the handler replies keyed by `requestId`. */
|
|
146
140
|
onTestRelay?: FrameHandler<TestRelayRequest>;
|
|
147
141
|
onTrustPolicyUpdate?: FrameHandler<TrustPolicyUpdate>;
|
|
148
142
|
onStaleCheckrunCleanup?: FrameHandler<StaleCheckrunCleanup>;
|
|
149
|
-
/**
|
|
143
|
+
/** Answers every Platform-relayed join.request frame. */
|
|
150
144
|
onJoinRequest?: (raw: unknown) => Promise<JoinResponse>;
|
|
151
|
-
/**
|
|
145
|
+
/** Merged with ORCH_CAPABILITIES in auth.request. */
|
|
152
146
|
orchCapabilities?: Partial<OrchCapabilities>;
|
|
153
147
|
/**
|
|
154
148
|
* Verify a reassembled chunked-relay webhook. Without it every chunked relay
|
|
@@ -171,7 +165,6 @@ export interface PlatformClientOptions {
|
|
|
171
165
|
*/
|
|
172
166
|
onShedCapture?: (meta: RelayStartMeta, body: Buffer, reason: string) => Promise<void>;
|
|
173
167
|
}
|
|
174
|
-
/** Error `*.response` frame shape for a dashboard request that failed validation. */
|
|
175
168
|
export interface DashboardRequestErrorFrame {
|
|
176
169
|
type: string;
|
|
177
170
|
requestId: string;
|
|
@@ -181,10 +174,8 @@ export interface DashboardRequestErrorFrame {
|
|
|
181
174
|
requestType: string;
|
|
182
175
|
}
|
|
183
176
|
/**
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
* (version mismatch → upgrade the orchestrator) from a known type with a
|
|
187
|
-
* malformed body (genuine client error).
|
|
177
|
+
* Distinguishes a request type this build has never heard of (version mismatch →
|
|
178
|
+
* upgrade the orchestrator) from a known type with a malformed body.
|
|
188
179
|
*/
|
|
189
180
|
export declare function classifyDashboardRequestError(raw: {
|
|
190
181
|
type: string;
|
|
@@ -293,7 +284,11 @@ export declare class PlatformClient {
|
|
|
293
284
|
connect(): void;
|
|
294
285
|
/** Graceful disconnect; does not reconnect. */
|
|
295
286
|
disconnect(): void;
|
|
296
|
-
/**
|
|
287
|
+
/**
|
|
288
|
+
* Send now when authenticated, otherwise buffer for the next connection. A
|
|
289
|
+
* status frame the Platform would refuse is dropped here (see
|
|
290
|
+
* `guardOutboundFrame`), so the buffer only ever holds frames that can be sent.
|
|
291
|
+
*/
|
|
297
292
|
send(message: OrchestratorToPlatformMessage): void;
|
|
298
293
|
/**
|
|
299
294
|
* Send the reconnect state replay as paced frames, each within the wire
|
|
@@ -349,6 +344,12 @@ export declare class PlatformClient {
|
|
|
349
344
|
private handlePeerUpdate;
|
|
350
345
|
/** Unbuffered send, for ACKs that must go now or not at all. */
|
|
351
346
|
private sendDirect;
|
|
347
|
+
/**
|
|
348
|
+
* Send the frames buffered while disconnected, in order. A frame that cannot
|
|
349
|
+
* be serialized is dropped alone and the rest still go out. When the socket
|
|
350
|
+
* stops being open part-way, the frames not yet written go back into the
|
|
351
|
+
* buffer for the next connection instead of being lost.
|
|
352
|
+
*/
|
|
352
353
|
private flushBuffer;
|
|
353
354
|
private startHeartbeat;
|
|
354
355
|
private stopHeartbeat;
|
|
@@ -5,12 +5,10 @@
|
|
|
5
5
|
* Platform's WS limiter caps a single message at 4 MB with a 2 MB burst
|
|
6
6
|
* refilling at 500 KB/s, so a replay must be split on BOTH axes: a frame that
|
|
7
7
|
* breaches either one is dropped by the Platform, which closes the connection
|
|
8
|
-
* with 4003.
|
|
9
|
-
*
|
|
10
|
-
* resends it forever.
|
|
8
|
+
* with 4003. Reconnecting does not reduce the run count, so an oversized frame
|
|
9
|
+
* is not transient: the orchestrator would rebuild and resend it forever.
|
|
11
10
|
*
|
|
12
|
-
* Pure and I/O-free so
|
|
13
|
-
* real runs.
|
|
11
|
+
* Pure and I/O-free so tests can shrink the bounds instead of building 500 runs.
|
|
14
12
|
*/
|
|
15
13
|
/**
|
|
16
14
|
* Runs per frame. Deliberately below the schema's hard cap of 500 so growth in
|
|
@@ -26,12 +24,11 @@ export interface ChunkBounds {
|
|
|
26
24
|
maxBytes: number;
|
|
27
25
|
}
|
|
28
26
|
/**
|
|
29
|
-
*
|
|
27
|
+
* Splits `runs` into frames obeying both bounds, preserving order.
|
|
30
28
|
*
|
|
31
|
-
* A
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* and an empty `runs` array is not a frame worth sending.
|
|
29
|
+
* A run larger than `maxBytes` is emitted alone. The byte test is guarded on a
|
|
30
|
+
* non-empty current chunk; without the guard an oversized run would loop
|
|
31
|
+
* forever or emit an empty chunk.
|
|
35
32
|
*/
|
|
36
33
|
export declare function chunkReplayRuns<T>(runs: readonly T[], bounds?: ChunkBounds): T[][];
|
|
37
34
|
//# sourceMappingURL=replay-chunker.d.ts.map
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import type { WebSocketServer } from 'ws';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Single source of truth for the orchestrator's agent-WS server security
|
|
4
|
+
* options, kept outside the `createApp` graph so it is unit-testable.
|
|
4
5
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* The `permessage-deflate` compression-bomb invariant lives here: any
|
|
10
|
-
* field added to defend against compression-bomb DoS — `maxPayload`,
|
|
11
|
-
* `serverNoContextTakeover`, etc. — MUST be set inside this helper so the
|
|
12
|
-
* neighbouring test file can assert it.
|
|
6
|
+
* Compression-bomb invariant: any field that defends against compression-bomb
|
|
7
|
+
* DoS (`maxPayload`, `serverNoContextTakeover`, …) MUST be set inside this
|
|
8
|
+
* helper so the neighbouring test file can assert it.
|
|
13
9
|
*/
|
|
14
10
|
export declare function configureSecureWsServer(wss: WebSocketServer): void;
|
|
15
11
|
//# sourceMappingURL=server-options.d.ts.map
|