@kici-dev/orchestrator 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/dist/agent/agent-version.d.ts +12 -21
  2. package/dist/agent/dispatcher.d.ts +283 -437
  3. package/dist/agent/host-roster-reaper.d.ts +8 -10
  4. package/dist/agent/host-roster.d.ts +77 -100
  5. package/dist/agent/ownership-refusal.d.ts +3 -5
  6. package/dist/agent/ownership-tracker.d.ts +42 -76
  7. package/dist/agent/registry.d.ts +121 -233
  8. package/dist/agent/token-store.d.ts +34 -77
  9. package/dist/agent-packaging/availability.d.ts +6 -9
  10. package/dist/agent-packaging/download.d.ts +6 -9
  11. package/dist/agent-packaging/install-closure.d.ts +9 -12
  12. package/dist/agent-packaging/node-binary.d.ts +6 -10
  13. package/dist/agent-packaging/node-runtime-members.d.ts +3 -5
  14. package/dist/agent-packaging/refresh.d.ts +12 -16
  15. package/dist/agent-packaging/store.d.ts +5 -6
  16. package/dist/agent-packaging/upload.d.ts +3 -4
  17. package/dist/app.d.ts +0 -3
  18. package/dist/approvals/apply-decision.d.ts +39 -45
  19. package/dist/approvals/approval-resolver.d.ts +11 -23
  20. package/dist/approvals/held-run-release-wiring.d.ts +14 -21
  21. package/dist/approvals/independent-wiring.d.ts +13 -20
  22. package/dist/approvals/resume-router.d.ts +1 -1
  23. package/dist/approvals/step-approval-bridge.d.ts +11 -21
  24. package/dist/approvals/triggerer-subject.d.ts +8 -10
  25. package/dist/artifacts/artifact-store.d.ts +55 -95
  26. package/dist/artifacts/failure-messages.d.ts +15 -20
  27. package/dist/audit/access-log.d.ts +27 -45
  28. package/dist/audit/sampling-rate-limiter.d.ts +11 -23
  29. package/dist/cache/agent-job-failed-error.d.ts +2 -3
  30. package/dist/cache/build-coordinator.d.ts +5 -28
  31. package/dist/cache/cache-upload-settle.d.ts +11 -11
  32. package/dist/cache/dep-cache.d.ts +32 -60
  33. package/dist/cache/dispatch-cache-ref-tracker.d.ts +15 -23
  34. package/dist/cache/global-eval-round-cache.d.ts +33 -41
  35. package/dist/cache/pending-builds.d.ts +2 -6
  36. package/dist/cache/pending-dynamics.d.ts +2 -7
  37. package/dist/cache/pending-global-evals.d.ts +9 -12
  38. package/dist/cache/pending-inits.d.ts +11 -22
  39. package/dist/cache/pending-precursor-db-watcher.d.ts +24 -32
  40. package/dist/cache/pending-tracker.d.ts +17 -45
  41. package/dist/cache/precursor-result.d.ts +17 -30
  42. package/dist/cache/source-cache.d.ts +36 -65
  43. package/dist/cache/user-cache.d.ts +21 -25
  44. package/dist/cancel/cancel-held-run.d.ts +13 -16
  45. package/dist/cancel/cancel-route-answer.d.ts +1 -2
  46. package/dist/cancel/cancel-run.d.ts +26 -50
  47. package/dist/cancel/dashboard-cancel-handler.d.ts +2 -2
  48. package/dist/cancel/peer-job-cancel.d.ts +11 -14
  49. package/dist/cancel/sweep-stuck-cancelling.d.ts +9 -13
  50. package/dist/cli/api-client.d.ts +33 -76
  51. package/dist/cli/commands/access-log.d.ts +4 -24
  52. package/dist/cli/commands/agent-package.d.ts +7 -15
  53. package/dist/cli/commands/agent-service/agent-env.d.ts +3 -6
  54. package/dist/cli/commands/agent-service/index.d.ts +4 -10
  55. package/dist/cli/commands/agent-service/install.d.ts +4 -11
  56. package/dist/cli/commands/agent-service/status.d.ts +4 -9
  57. package/dist/cli/commands/agent-service/upgrade.d.ts +4 -16
  58. package/dist/cli/commands/agent.d.ts +12 -25
  59. package/dist/cli/commands/api-key.d.ts +7 -7
  60. package/dist/cli/commands/attestations-list.d.ts +7 -17
  61. package/dist/cli/commands/attestations-retry.d.ts +5 -11
  62. package/dist/cli/commands/attestations-reverify.d.ts +4 -5
  63. package/dist/cli/commands/attestations.d.ts +3 -8
  64. package/dist/cli/commands/audit.d.ts +1 -5
  65. package/dist/cli/commands/backend.d.ts +2 -11
  66. package/dist/cli/commands/check-run.d.ts +7 -18
  67. package/dist/cli/commands/cluster-name.d.ts +5 -12
  68. package/dist/cli/commands/cluster-settings.d.ts +28 -53
  69. package/dist/cli/commands/cold-store.d.ts +7 -15
  70. package/dist/cli/commands/config.d.ts +9 -20
  71. package/dist/cli/commands/context.d.ts +8 -20
  72. package/dist/cli/commands/dashboard-encryption-key.d.ts +9 -14
  73. package/dist/cli/commands/db-backup.d.ts +17 -32
  74. package/dist/cli/commands/db.d.ts +3 -4
  75. package/dist/cli/commands/debug-bundle.d.ts +3 -10
  76. package/dist/cli/commands/diagnose.d.ts +3 -14
  77. package/dist/cli/commands/event-dlq.d.ts +4 -12
  78. package/dist/cli/commands/event-log.d.ts +2 -20
  79. package/dist/cli/commands/execution.d.ts +3 -9
  80. package/dist/cli/commands/firecracker/index.d.ts +3 -6
  81. package/dist/cli/commands/held-run.d.ts +23 -37
  82. package/dist/cli/commands/host.d.ts +4 -11
  83. package/dist/cli/commands/inspect-bundle.d.ts +3 -11
  84. package/dist/cli/commands/local-hook.d.ts +2 -10
  85. package/dist/cli/commands/local-trigger.d.ts +2 -2
  86. package/dist/cli/commands/orchestrator-service/drain.d.ts +3 -6
  87. package/dist/cli/commands/orchestrator-service/index.d.ts +6 -14
  88. package/dist/cli/commands/orchestrator-service/install-env.d.ts +25 -49
  89. package/dist/cli/commands/orchestrator-service/install.d.ts +2 -5
  90. package/dist/cli/commands/orchestrator-service/status.d.ts +10 -22
  91. package/dist/cli/commands/orchestrator-service/upgrade.d.ts +6 -15
  92. package/dist/cli/commands/org-settings.d.ts +5 -11
  93. package/dist/cli/commands/peer.d.ts +5 -10
  94. package/dist/cli/commands/queue.d.ts +3 -9
  95. package/dist/cli/commands/registration.d.ts +4 -8
  96. package/dist/cli/commands/remote-source.d.ts +6 -12
  97. package/dist/cli/commands/rotate.d.ts +1 -5
  98. package/dist/cli/commands/runs.d.ts +1 -30
  99. package/dist/cli/commands/scaler.d.ts +5 -12
  100. package/dist/cli/commands/secret.d.ts +1 -9
  101. package/dist/cli/commands/service-health.d.ts +5 -10
  102. package/dist/cli/commands/shared/admin-cli-access-log.d.ts +10 -19
  103. package/dist/cli/commands/shared/bare-metal-binary-check.d.ts +86 -0
  104. package/dist/cli/commands/shared/cli-action.d.ts +1 -4
  105. package/dist/cli/commands/shared/confirm.d.ts +5 -10
  106. package/dist/cli/commands/shared/db.d.ts +1 -12
  107. package/dist/cli/commands/shared/env-file-mode.d.ts +6 -9
  108. package/dist/cli/commands/shared/secret-input.d.ts +7 -21
  109. package/dist/cli/commands/shared/service-verbs.d.ts +6 -12
  110. package/dist/cli/commands/shared/unbound-context-warning.d.ts +2 -4
  111. package/dist/cli/commands/shared/upgrade-hooks.d.ts +7 -16
  112. package/dist/cli/commands/shared/upgrade-safety.d.ts +20 -31
  113. package/dist/cli/commands/shared/versioned-upgrade.d.ts +83 -161
  114. package/dist/cli/commands/signing-key.d.ts +4 -9
  115. package/dist/cli/commands/source-manifest.d.ts +11 -14
  116. package/dist/cli/commands/source.d.ts +7 -32
  117. package/dist/cli/commands/token.d.ts +4 -15
  118. package/dist/cli/commands/trust-policy.d.ts +35 -88
  119. package/dist/cli/commands/variable.d.ts +3 -5
  120. package/dist/cli/commands/workflow.d.ts +3 -24
  121. package/dist/cli/join.d.ts +3 -6
  122. package/dist/cli/kici-admin.d.ts +11 -29
  123. package/dist/cli/lazy-deps/cache.d.ts +1 -14
  124. package/dist/cli/lazy-deps/downloader.d.ts +4 -27
  125. package/dist/cli/lazy-deps/registry.d.ts +5 -25
  126. package/dist/cli/local-github-ingress-url.d.ts +5 -7
  127. package/dist/cli/loopback-callback.d.ts +6 -7
  128. package/dist/cli/open-browser.d.ts +4 -8
  129. package/dist/cli/root-option-routing.d.ts +17 -29
  130. package/dist/cli/service/backup-timer.d.ts +16 -39
  131. package/dist/cli/service/compose-path.d.ts +3 -7
  132. package/dist/cli/service/compose.d.ts +12 -30
  133. package/dist/cli/service/deploy-env.d.ts +6 -18
  134. package/dist/cli/service/entrypoint.d.ts +14 -25
  135. package/dist/cli/service/env-assignment.d.ts +6 -17
  136. package/dist/cli/service/image-digests.d.ts +6 -15
  137. package/dist/cli/service/index.d.ts +2 -18
  138. package/dist/cli/service/instance/index-file.d.ts +9 -16
  139. package/dist/cli/service/instance/manifest.d.ts +33 -59
  140. package/dist/cli/service/instance/resolve.d.ts +32 -68
  141. package/dist/cli/service/instance/types.d.ts +12 -29
  142. package/dist/cli/service/launchd.d.ts +29 -60
  143. package/dist/cli/service/platform-detect.d.ts +13 -68
  144. package/dist/cli/service/privilege.d.ts +12 -25
  145. package/dist/cli/service/shutdown-grace.d.ts +11 -20
  146. package/dist/cli/service/systemd.d.ts +7 -20
  147. package/dist/cli/service/types.d.ts +63 -114
  148. package/dist/cli/service/windows-acl.d.ts +14 -21
  149. package/dist/cli/service/windows-env-file.d.ts +10 -28
  150. package/dist/cli/service/windows.d.ts +15 -31
  151. package/dist/cli/webhook-url-notes.d.ts +4 -6
  152. package/dist/cli/wizard/agent-wizard.d.ts +3 -14
  153. package/dist/cli/wizard/orchestrator-wizard.d.ts +12 -37
  154. package/dist/cli/wizard/prompts.d.ts +6 -16
  155. package/dist/cli.js +4553 -6556
  156. package/dist/cluster/cluster-identity.d.ts +20 -32
  157. package/dist/cluster/cluster-settings-reader.d.ts +50 -77
  158. package/dist/cluster/coordinator-credential.d.ts +4 -5
  159. package/dist/cluster/coordinator.d.ts +76 -148
  160. package/dist/cluster/health-api.d.ts +2 -10
  161. package/dist/cluster/index.d.ts +1 -6
  162. package/dist/cluster/instance-heartbeat.d.ts +26 -42
  163. package/dist/cluster/join-client.d.ts +4 -7
  164. package/dist/cluster/join-handler.d.ts +3 -7
  165. package/dist/cluster/join-token.d.ts +13 -27
  166. package/dist/cluster/leader-gated-scheduler.d.ts +8 -17
  167. package/dist/cluster/orphan-recovery.d.ts +13 -35
  168. package/dist/cluster/peer-auth-coordinator.d.ts +2 -8
  169. package/dist/cluster/peer-client.d.ts +46 -76
  170. package/dist/cluster/peer-credentials.d.ts +24 -70
  171. package/dist/cluster/peer-crypto.d.ts +5 -26
  172. package/dist/cluster/peer-forget.d.ts +3 -3
  173. package/dist/cluster/peer-handler.d.ts +47 -71
  174. package/dist/cluster/peer-registry.d.ts +37 -106
  175. package/dist/cluster/plan-headroom-store.d.ts +4 -6
  176. package/dist/cluster/raft-state.d.ts +4 -13
  177. package/dist/cluster/raft.d.ts +18 -53
  178. package/dist/cluster/reconcile-identity.d.ts +8 -11
  179. package/dist/cluster/rerouted-job-guard.d.ts +7 -11
  180. package/dist/cluster/verified-issuer.d.ts +2 -3
  181. package/dist/cluster/worker-cluster-settings.d.ts +7 -10
  182. package/dist/cluster/worker-eviction.d.ts +16 -26
  183. package/dist/cold-store/load-access-log-range.d.ts +15 -31
  184. package/dist/cold-store/load-event-log-range.d.ts +13 -27
  185. package/dist/cold-store/load-secret-audit-log-range.d.ts +8 -12
  186. package/dist/cold-store/orchestrator-cold-store.d.ts +8 -28
  187. package/dist/cold-store/tables/access-log.d.ts +12 -14
  188. package/dist/cold-store/tables/event-log.d.ts +4 -8
  189. package/dist/cold-store/tables/execution-runs.d.ts +6 -11
  190. package/dist/cold-store/tables/secret-audit-log.d.ts +5 -12
  191. package/dist/concurrency/dispatch-next-queued.d.ts +13 -25
  192. package/dist/concurrency/queue-manager.d.ts +22 -54
  193. package/dist/concurrency/waiters.d.ts +15 -31
  194. package/dist/config/encryption.d.ts +0 -2
  195. package/dist/config/loader.d.ts +0 -1
  196. package/dist/config/reload.d.ts +0 -6
  197. package/dist/config/resolver.d.ts +0 -4
  198. package/dist/config/shared-store.d.ts +0 -2
  199. package/dist/config/types.d.ts +0 -3
  200. package/dist/content-requirements-cache.d.ts +0 -1
  201. package/dist/contexts/context-store.d.ts +0 -2
  202. package/dist/contexts/held-runs.d.ts +0 -2
  203. package/dist/contexts/variable-store.d.ts +0 -2
  204. package/dist/dashboard/attestation-filters.d.ts +13 -18
  205. package/dist/dashboard/handler.d.ts +143 -307
  206. package/dist/db/client.d.ts +2 -6
  207. package/dist/db/deferred-index-build.d.ts +8 -10
  208. package/dist/db/deferred-indexes.d.ts +15 -22
  209. package/dist/db/migration-provider.d.ts +2 -4
  210. package/dist/db/migration-test-harness.d.ts +26 -44
  211. package/dist/db/migrations/001_initial.d.ts +1 -4
  212. package/dist/db/migrations/002_config_versions_key_version.d.ts +5 -8
  213. package/dist/db/migrations/003_access_log.d.ts +10 -15
  214. package/dist/db/migrations/004_rename_bundle_to_source.d.ts +7 -9
  215. package/dist/db/migrations/005_cold_store_chunk_counter.d.ts +4 -10
  216. package/dist/db/migrations/006_runs_jobs_steps_archived_at.d.ts +9 -29
  217. package/dist/db/migrations/007_audit_logs_archived_at.d.ts +11 -30
  218. package/dist/db/migrations/008_event_log_archived_at.d.ts +14 -29
  219. package/dist/db/migrations/009_access_log_trigram.d.ts +4 -8
  220. package/dist/db/migrations/010_cold_store_chunks.d.ts +16 -26
  221. package/dist/db/migrations/011_drop_source_secrets_notify.d.ts +6 -14
  222. package/dist/db/migrations/012_peer_credentials_active_uniq.d.ts +9 -14
  223. package/dist/db/migrations/013_execution_log_bytes.d.ts +5 -13
  224. package/dist/db/migrations/014_kici_events_lease_retry.d.ts +14 -27
  225. package/dist/db/migrations/015_org_settings_customer_scoped.d.ts +12 -17
  226. package/dist/db/migrations/016_org_settings_allow_http_npm.d.ts +4 -6
  227. package/dist/db/migrations/019_generic_sources_change_notify.d.ts +13 -17
  228. package/dist/db/migrations/020_org_settings_dashboard_write_policy.d.ts +5 -8
  229. package/dist/db/migrations/021_check_run_tracking.d.ts +5 -17
  230. package/dist/db/migrations/022_scaler_manager_state.d.ts +10 -20
  231. package/dist/db/migrations/023_dispatch_queue_recovery_deadline.d.ts +7 -18
  232. package/dist/db/migrations/024_dispatch_queue_provisioning_error.d.ts +5 -11
  233. package/dist/db/migrations/025_init_failure.d.ts +5 -9
  234. package/dist/db/migrations/027_workflow_timeout.d.ts +5 -13
  235. package/dist/db/migrations/029_dispatch_queue_attempts.d.ts +4 -10
  236. package/dist/db/migrations/030_held_runs_env_set_null.d.ts +5 -6
  237. package/dist/db/migrations/031_dispatch_queue_ack_deadline.d.ts +6 -12
  238. package/dist/db/migrations/033_org_settings_approval.d.ts +7 -10
  239. package/dist/db/migrations/034_held_runs_generalize.d.ts +10 -18
  240. package/dist/db/migrations/035_pending_workflow_contexts.d.ts +4 -5
  241. package/dist/db/migrations/037_generic_sources_provider_type_local.d.ts +5 -6
  242. package/dist/db/migrations/038_remote_sources.d.ts +5 -7
  243. package/dist/db/migrations/045_host_properties.d.ts +5 -9
  244. package/dist/db/migrations/046_join_token_consumed_by_instance.d.ts +5 -10
  245. package/dist/db/migrations/048_host_reboot_pending.d.ts +6 -12
  246. package/dist/db/migrations/049_held_runs_payload.d.ts +3 -8
  247. package/dist/db/migrations/050_sources_slug.d.ts +4 -5
  248. package/dist/db/migrations/051_binding_host_pattern.d.ts +7 -10
  249. package/dist/db/migrations/052_host_reach_metadata.d.ts +8 -11
  250. package/dist/db/migrations/053_agent_token_single_use.d.ts +6 -10
  251. package/dist/db/migrations/054_local_working_tree.d.ts +4 -6
  252. package/dist/db/migrations/055_agent_token_mandatory_labels.d.ts +6 -11
  253. package/dist/db/migrations/056_execution_jobs_environments.d.ts +4 -11
  254. package/dist/db/migrations/064_execution_jobs_skipped_environments.d.ts +6 -9
  255. package/dist/db/migrations/065_pending_attestations.d.ts +9 -12
  256. package/dist/db/migrations/066_pending_attestations_rejected.d.ts +4 -7
  257. package/dist/db/migrations/068_request_idempotency.d.ts +7 -9
  258. package/dist/db/migrations/069_reroute_tunables.d.ts +6 -14
  259. package/dist/db/migrations/071_batch_accumulation.d.ts +8 -16
  260. package/dist/db/migrations/072_dispatch_queue_run_id_index.d.ts +3 -9
  261. package/dist/db/migrations/074_normalize_zero_concurrency_limit.d.ts +4 -7
  262. package/dist/db/migrations/076_artifacts.d.ts +7 -8
  263. package/dist/db/migrations/078_org_settings_backup_staleness.d.ts +3 -6
  264. package/dist/db/migrations/079_org_settings_scaler_spawn_timeout.d.ts +4 -8
  265. package/dist/db/migrations/080_cluster_settings.d.ts +6 -10
  266. package/dist/db/migrations/081_org_settings_queue_timeout.d.ts +7 -11
  267. package/dist/db/migrations/082_host_s3_reachable.d.ts +5 -10
  268. package/dist/db/migrations/083_org_settings_artifact_caps.d.ts +6 -8
  269. package/dist/db/migrations/084_orchestrator_signing_keys.d.ts +8 -13
  270. package/dist/db/migrations/085_cluster_settings_reroute_flap_grace_ms.d.ts +4 -5
  271. package/dist/db/migrations/086_cluster_settings_max_fanout_hosts.d.ts +3 -3
  272. package/dist/db/migrations/087_cluster_settings_event_router_rate_limit.d.ts +5 -3
  273. package/dist/db/migrations/088_cluster_settings_cache_max_tarball_bytes.d.ts +3 -3
  274. package/dist/db/migrations/089_cluster_settings_cache_ttl_days.d.ts +3 -5
  275. package/dist/db/migrations/090_cluster_settings_concurrency_wait_timeout_ms.d.ts +3 -6
  276. package/dist/db/migrations/091_cluster_settings_agent_token_ttl_ms.d.ts +3 -6
  277. package/dist/db/migrations/092_cluster_settings_version.d.ts +5 -9
  278. package/dist/db/migrations/094_dashboard_encryption_keys.d.ts +9 -14
  279. package/dist/db/migrations/095_dashboard_write_policy_tristate.d.ts +2 -6
  280. package/dist/db/migrations/099_cluster_settings_dashboard_verified_issuer.d.ts +8 -11
  281. package/dist/db/migrations/101_contexts_hold_expiry_drop_default.d.ts +9 -15
  282. package/dist/db/migrations/102_dispatch_queue_agent_id.d.ts +6 -11
  283. package/dist/db/migrations/103_cluster_settings_ownership_db_check_timeout_ms.d.ts +6 -12
  284. package/dist/db/migrations/104_check_run_terminal_sent.d.ts +8 -14
  285. package/dist/db/migrations/105_org_trust_policy.d.ts +5 -7
  286. package/dist/db/migrations/106_cluster_settings_check_run_tracking_ttl_days.d.ts +4 -12
  287. package/dist/db/migrations/107_check_run_tracking_updated_at_index.d.ts +8 -14
  288. package/dist/db/migrations/113_execution_runs_workflow_repo_index.d.ts +10 -19
  289. package/dist/db/migrations/115_global_workflows_cluster_switch.d.ts +2 -3
  290. package/dist/db/migrations/121_org_settings_allow_untrusted_dockerfile_builds.d.ts +7 -8
  291. package/dist/db/migrations/122_host_roster_scaler_managed.d.ts +9 -16
  292. package/dist/db/migrations/123_workflow_registrations_default_branch.d.ts +8 -16
  293. package/dist/db/migrations/125_org_trust_directory.d.ts +13 -21
  294. package/dist/db/migrations/126_held_runs_posted_pending_check.d.ts +10 -16
  295. package/dist/db/migrations/127_org_trust_policy_approval_expiry_seconds.d.ts +8 -16
  296. package/dist/db/migrations/128_execution_runs_global_eval_round.d.ts +6 -11
  297. package/dist/db/migrations/129_execution_runs_dispatch_routing_key.d.ts +8 -11
  298. package/dist/db/migrations/130_scaler_provision_outcomes.d.ts +13 -20
  299. package/dist/db/migrations/131_execution_jobs_git_credentials.d.ts +12 -22
  300. package/dist/db/migrations/132_execution_runs_trigger_event.d.ts +6 -16
  301. package/dist/db/migrations/133_dispatch_queue_source_tar_digest.d.ts +6 -9
  302. package/dist/db/migrations/140_dispatch_queue_canonical_labels.d.ts +22 -40
  303. package/dist/db/migrations/143_execution_jobs_precursor_result.d.ts +9 -18
  304. package/dist/db/migrations/144_execution_runs_registration_window.d.ts +12 -20
  305. package/dist/db/migrations/147_sealed_job_secrets.d.ts +5 -9
  306. package/dist/db/migrations/148_cluster_settings_sealed_secrets_retry_backoff_ms.d.ts +7 -13
  307. package/dist/db/migrations/150_execution_runs_status_epoch.d.ts +6 -11
  308. package/dist/db/migrations/152_org_settings_cache_upload_settle_timeout.d.ts +5 -8
  309. package/dist/db/migrations/157_host_roster_identity_source.d.ts +9 -13
  310. package/dist/db/migrations/159_org_id_widen_to_source_width.d.ts +5 -0
  311. package/dist/db/migrator.d.ts +17 -25
  312. package/dist/db/notify-listener.d.ts +8 -11
  313. package/dist/db/repos/dashboard-encryption-keys-repo.d.ts +9 -10
  314. package/dist/db/synthetic-job-ids.d.ts +6 -8
  315. package/dist/db/types.d.ts +531 -1058
  316. package/dist/deployment/deployment-identity.d.ts +42 -60
  317. package/dist/diagnostics/bundle-reader.d.ts +3 -15
  318. package/dist/diagnostics/bundle-writer.d.ts +5 -12
  319. package/dist/diagnostics/checks/agents.d.ts +1 -7
  320. package/dist/diagnostics/checks/backup.d.ts +7 -10
  321. package/dist/diagnostics/checks/certs.d.ts +1 -6
  322. package/dist/diagnostics/checks/config.d.ts +2 -5
  323. package/dist/diagnostics/checks/db.d.ts +1 -1
  324. package/dist/diagnostics/checks/disk.d.ts +1 -6
  325. package/dist/diagnostics/checks/firecracker-network.d.ts +3 -3
  326. package/dist/diagnostics/checks/index.d.ts +0 -6
  327. package/dist/diagnostics/checks/retention.d.ts +3 -6
  328. package/dist/diagnostics/checks/scaler.d.ts +3 -7
  329. package/dist/diagnostics/checks/ws.d.ts +1 -6
  330. package/dist/diagnostics/fleet-collector.d.ts +11 -14
  331. package/dist/diagnostics/fleet-constants.d.ts +1 -3
  332. package/dist/diagnostics/fleet-selection.d.ts +3 -7
  333. package/dist/diagnostics/fleet-topology.d.ts +2 -6
  334. package/dist/diagnostics/fleet-wiring.d.ts +6 -12
  335. package/dist/diagnostics/index.d.ts +0 -5
  336. package/dist/diagnostics/runner.d.ts +4 -8
  337. package/dist/diagnostics/types.d.ts +10 -21
  338. package/dist/drain/drain-controller.d.ts +16 -22
  339. package/dist/entry-helpers.d.ts +0 -2
  340. package/dist/events/circuit-breaker.d.ts +0 -3
  341. package/dist/events/event-router.d.ts +1 -2
  342. package/dist/events/event-store.d.ts +0 -9
  343. package/dist/events/trust-store.d.ts +0 -3
  344. package/dist/events/types.d.ts +0 -9
  345. package/dist/firecracker/host-network.d.ts +24 -30
  346. package/dist/firecracker/net-interfaces.d.ts +4 -7
  347. package/dist/helpers/rate-limiter.d.ts +0 -1
  348. package/dist/index.js +251 -486
  349. package/dist/metrics/agent-metrics-aggregator.d.ts +24 -67
  350. package/dist/metrics/metrics-reporter.d.ts +4 -13
  351. package/dist/metrics/prometheus.d.ts +47 -81
  352. package/dist/orchestrator-core.d.ts +3 -7
  353. package/dist/pipeline/content-filter.d.ts +20 -30
  354. package/dist/pipeline/cross-source-tally.d.ts +7 -8
  355. package/dist/pipeline/decorating-secret-resolver.d.ts +4 -8
  356. package/dist/pipeline/degraded-reason.d.ts +3 -4
  357. package/dist/pipeline/direct-ingress-deps.d.ts +15 -24
  358. package/dist/pipeline/dispatch-matched-workflow.d.ts +289 -525
  359. package/dist/pipeline/flatten-lock-steps.d.ts +4 -6
  360. package/dist/pipeline/global-dispatch-identity.d.ts +5 -10
  361. package/dist/pipeline/global-eval-round.d.ts +65 -151
  362. package/dist/pipeline/global-round-hold.d.ts +5 -7
  363. package/dist/pipeline/held-context-data.d.ts +5 -8
  364. package/dist/pipeline/held-round-registrations.d.ts +8 -11
  365. package/dist/pipeline/install-gate.d.ts +15 -25
  366. package/dist/pipeline/install-secrets-resolver.d.ts +24 -34
  367. package/dist/pipeline/internal-event-pipeline.d.ts +45 -62
  368. package/dist/pipeline/invoke-gate.d.ts +27 -40
  369. package/dist/pipeline/job-contexts.d.ts +19 -36
  370. package/dist/pipeline/manual-schedule.d.ts +7 -13
  371. package/dist/pipeline/needs-scheduler.d.ts +29 -46
  372. package/dist/pipeline/pending-workflow-context.d.ts +14 -28
  373. package/dist/pipeline/process-webhook.d.ts +88 -123
  374. package/dist/pipeline/processor.d.ts +209 -355
  375. package/dist/pipeline/remote-source-store.d.ts +5 -8
  376. package/dist/pipeline/request-idempotency.d.ts +10 -13
  377. package/dist/pipeline/rerun-global.d.ts +6 -7
  378. package/dist/pipeline/rerun-inputs.d.ts +23 -37
  379. package/dist/pipeline/rerun.d.ts +34 -57
  380. package/dist/pipeline/resolve-sandbox-grant.d.ts +5 -10
  381. package/dist/pipeline/resume-workflow.d.ts +28 -34
  382. package/dist/pipeline/route-or-dispatch-jobs.d.ts +19 -30
  383. package/dist/pipeline/run-event-context.d.ts +16 -21
  384. package/dist/pipeline/sandbox-allowlist-reader.d.ts +7 -11
  385. package/dist/pipeline/security-hold-check.d.ts +56 -80
  386. package/dist/pipeline/test-pipeline.d.ts +21 -46
  387. package/dist/pipeline/unbound-job-context.d.ts +6 -9
  388. package/dist/pipeline/undispatched-hold-checks.d.ts +4 -6
  389. package/dist/pipeline/wave-scheduler.d.ts +15 -22
  390. package/dist/pipeline/webhook-payload-store.d.ts +3 -10
  391. package/dist/pipeline/workflow-lock-at-sha.d.ts +14 -20
  392. package/dist/policy/dashboard-write-policy.d.ts +1 -1
  393. package/dist/provider-registry.d.ts +0 -19
  394. package/dist/providers/generic/index.d.ts +0 -2
  395. package/dist/providers/generic/normalizer.d.ts +0 -1
  396. package/dist/providers/generic/verification.d.ts +0 -8
  397. package/dist/providers/github/auth.d.ts +0 -1
  398. package/dist/providers/github/changed-files.d.ts +2 -1
  399. package/dist/providers/github/file-contents.d.ts +0 -4
  400. package/dist/providers/github/lock-file.d.ts +0 -4
  401. package/dist/providers/github/normalizer.d.ts +1 -9
  402. package/dist/providers/local/index.d.ts +1 -2
  403. package/dist/providers/local/lock-file-fetcher.d.ts +0 -4
  404. package/dist/providers/local/normalizer.d.ts +0 -10
  405. package/dist/providers/local/repo-url-builder.d.ts +0 -2
  406. package/dist/providers/universal-git/clone-token.d.ts +0 -2
  407. package/dist/providers/universal-git/lock-file.d.ts +0 -2
  408. package/dist/providers/universal-git/normalizer.d.ts +0 -2
  409. package/dist/queue/bootstrap.d.ts +3 -15
  410. package/dist/queue/cleanup.d.ts +29 -50
  411. package/dist/queue/depth-refresher.d.ts +21 -39
  412. package/dist/queue/job-queue.d.ts +112 -163
  413. package/dist/queue/retention.d.ts +23 -36
  414. package/dist/queue/scheduled-job.d.ts +17 -39
  415. package/dist/queue/terminalize-unroutable.d.ts +21 -18
  416. package/dist/queue/unroutable-probe.d.ts +15 -22
  417. package/dist/registration/extractor.d.ts +0 -6
  418. package/dist/registration/registration-index.d.ts +0 -6
  419. package/dist/registration/registration-store.d.ts +0 -9
  420. package/dist/reporting/agent-failure-category.d.ts +3 -5
  421. package/dist/reporting/check-run-reporter.d.ts +142 -316
  422. package/dist/reporting/check-run-summary.d.ts +16 -35
  423. package/dist/reporting/check-run-tracking-store.d.ts +54 -107
  424. package/dist/reporting/execution-tracker.d.ts +356 -526
  425. package/dist/reporting/fs-log-storage.d.ts +31 -33
  426. package/dist/reporting/job-check-run-completion.d.ts +14 -22
  427. package/dist/reporting/log-chunk-sink.d.ts +11 -16
  428. package/dist/reporting/log-pull-handler.d.ts +4 -13
  429. package/dist/reporting/log-retention.d.ts +3 -4
  430. package/dist/reporting/log-storage.d.ts +24 -52
  431. package/dist/reporting/log-writer.d.ts +28 -56
  432. package/dist/reporting/peer-log-normalize.d.ts +4 -8
  433. package/dist/reporting/run-aggregator.d.ts +6 -11
  434. package/dist/reporting/run-summary-fields.d.ts +5 -8
  435. package/dist/reporting/s3-log-storage.d.ts +31 -50
  436. package/dist/reporting/step-display-order.d.ts +11 -21
  437. package/dist/reporting/step-log-buffer.d.ts +7 -28
  438. package/dist/reporting/step-log-reader.d.ts +11 -19
  439. package/dist/routes/admin-access-log.d.ts +4 -6
  440. package/dist/routes/admin-auth.d.ts +19 -38
  441. package/dist/routes/admin-backends.d.ts +3 -14
  442. package/dist/routes/admin-cluster-name.d.ts +13 -21
  443. package/dist/routes/admin-cluster-settings.d.ts +6 -9
  444. package/dist/routes/admin-config.d.ts +7 -19
  445. package/dist/routes/admin-contexts.d.ts +6 -13
  446. package/dist/routes/admin-db.d.ts +5 -10
  447. package/dist/routes/admin-event-dlq.d.ts +3 -5
  448. package/dist/routes/admin-event-inspect.d.ts +3 -4
  449. package/dist/routes/admin-event-log.d.ts +3 -7
  450. package/dist/routes/admin-events.d.ts +16 -30
  451. package/dist/routes/admin-held-runs.d.ts +52 -76
  452. package/dist/routes/admin-maintenance.d.ts +3 -6
  453. package/dist/routes/admin-orchestrator-drain.d.ts +0 -2
  454. package/dist/routes/admin-org-settings.d.ts +8 -14
  455. package/dist/routes/admin-peer-forget.d.ts +0 -1
  456. package/dist/routes/admin-queue-execution.d.ts +3 -3
  457. package/dist/routes/admin-registrations.d.ts +3 -12
  458. package/dist/routes/admin-runs.d.ts +16 -29
  459. package/dist/routes/admin-scaler-orphans.d.ts +4 -4
  460. package/dist/routes/admin-scaler-reload.d.ts +5 -8
  461. package/dist/routes/admin-scheduled-jobs.d.ts +3 -4
  462. package/dist/routes/admin-sources.d.ts +20 -29
  463. package/dist/routes/admin-trust-policy.d.ts +31 -48
  464. package/dist/routes/admin.d.ts +67 -94
  465. package/dist/routes/caller-identity.d.ts +45 -0
  466. package/dist/routes/capabilities.d.ts +8 -13
  467. package/dist/routes/diagnostics.d.ts +2 -10
  468. package/dist/routes/fleet.d.ts +1 -2
  469. package/dist/routes/github-webhook.d.ts +2 -5
  470. package/dist/routes/health.d.ts +6 -19
  471. package/dist/routes/provenance-oidc.d.ts +3 -3
  472. package/dist/routes/test-direct.d.ts +46 -0
  473. package/dist/routes/uploads.d.ts +14 -19
  474. package/dist/routes/webhooks.d.ts +2 -24
  475. package/dist/scaler/agent-binary-location.d.ts +77 -0
  476. package/dist/scaler/agent-fit.d.ts +2 -2
  477. package/dist/scaler/backend-factory.d.ts +10 -18
  478. package/dist/scaler/bare-metal-backend.d.ts +28 -45
  479. package/dist/scaler/claim-store.d.ts +20 -43
  480. package/dist/scaler/config.d.ts +10 -37
  481. package/dist/scaler/container-backend.d.ts +22 -35
  482. package/dist/scaler/container-hostconfig.d.ts +10 -16
  483. package/dist/scaler/container-routing.d.ts +10 -13
  484. package/dist/scaler/disk-guard.d.ts +2 -3
  485. package/dist/scaler/event-backend.d.ts +33 -58
  486. package/dist/scaler/event-provision-reaper.d.ts +61 -84
  487. package/dist/scaler/failure-tracker.d.ts +6 -13
  488. package/dist/scaler/file-tail.d.ts +6 -19
  489. package/dist/scaler/firecracker-api.d.ts +19 -63
  490. package/dist/scaler/firecracker-backend.d.ts +142 -258
  491. package/dist/scaler/host-access.d.ts +7 -10
  492. package/dist/scaler/index.d.ts +3 -6
  493. package/dist/scaler/ip-allocator.d.ts +30 -82
  494. package/dist/scaler/label-matcher.d.ts +14 -35
  495. package/dist/scaler/log-forwarder.d.ts +6 -25
  496. package/dist/scaler/machine-ledger.d.ts +39 -86
  497. package/dist/scaler/manager.d.ts +517 -787
  498. package/dist/scaler/pending-scale-sweeper.d.ts +8 -11
  499. package/dist/scaler/reap-orphans.d.ts +8 -12
  500. package/dist/scaler/resolve-container-auth.d.ts +12 -21
  501. package/dist/scaler/scaler-events.d.ts +2 -5
  502. package/dist/scaler/scaler-state-store.d.ts +127 -189
  503. package/dist/scaler/spawn-errors.d.ts +1 -4
  504. package/dist/scaler/startup-orphan-sweep.d.ts +3 -4
  505. package/dist/scaler/startup-tools-check.d.ts +21 -0
  506. package/dist/scaler/types.d.ts +142 -255
  507. package/dist/scaler/vm-job-bindings.d.ts +5 -9
  508. package/dist/scaler/warm-pool.d.ts +46 -93
  509. package/dist/secrets/audit-logger.d.ts +0 -3
  510. package/dist/secrets/backend-health.d.ts +0 -9
  511. package/dist/secrets/backend-registry.d.ts +0 -9
  512. package/dist/secrets/cleanup.d.ts +0 -1
  513. package/dist/secrets/config.d.ts +0 -3
  514. package/dist/secrets/ephemeral-keys.d.ts +0 -3
  515. package/dist/secrets/pg-secret-store.d.ts +0 -3
  516. package/dist/secrets/rbac.d.ts +5 -7
  517. package/dist/secrets/routing-key-scope.d.ts +1 -0
  518. package/dist/secrets/secret-output-store.d.ts +0 -6
  519. package/dist/secrets/secret-resolver.d.ts +2 -6
  520. package/dist/secrets/token-manager.d.ts +1 -4
  521. package/dist/secrets/vault-secret-store.d.ts +0 -13
  522. package/dist/security/comment-handler.d.ts +0 -2
  523. package/dist/security/workflow-diff.d.ts +1 -1
  524. package/dist/server.js +49004 -53782
  525. package/dist/sources/source-manager.d.ts +0 -3
  526. package/dist/sources/source-store.d.ts +0 -9
  527. package/dist/sources/source-validator.d.ts +0 -3
  528. package/dist/stale-detector/all-terminal-runs.d.ts +8 -11
  529. package/dist/stale-detector/gate-deadline-detector.d.ts +14 -19
  530. package/dist/stale-detector/reboot-deadline-sweep.d.ts +7 -11
  531. package/dist/stale-detector/stale-dispatch-candidates.d.ts +13 -20
  532. package/dist/stale-detector/stale-run-detector.d.ts +74 -121
  533. package/dist/stale-detector/workflow-deadline-detector.d.ts +15 -43
  534. package/dist/standalone.js +9342 -13077
  535. package/dist/storage/blob-routes.d.ts +10 -19
  536. package/dist/storage/filesystem.d.ts +19 -29
  537. package/dist/storage/index.d.ts +2 -10
  538. package/dist/storage/key-discriminator.d.ts +8 -10
  539. package/dist/storage/loopback-guard.d.ts +27 -45
  540. package/dist/storage/s3.d.ts +26 -53
  541. package/dist/storage/sign-url.d.ts +7 -22
  542. package/dist/storage/types.d.ts +46 -72
  543. package/dist/webhook/event-log.d.ts +0 -2
  544. package/dist/webhook/generic-sources.d.ts +0 -21
  545. package/dist/webhook/ingest-admission.d.ts +0 -1
  546. package/dist/webhook/relay-buffer.d.ts +2 -2
  547. package/dist/webhook/verify-inbound.d.ts +0 -1
  548. package/dist/worker/in-memory-execution-tracker.d.ts +9 -31
  549. package/dist/worker/in-memory-job-queue.d.ts +32 -72
  550. package/dist/worker/peer-outbox.d.ts +5 -8
  551. package/dist/worker/reroute-dispatch.d.ts +4 -6
  552. package/dist/worker/static-agent-token-store.d.ts +6 -27
  553. package/dist/worker/worker-outbox-relay.d.ts +2 -2
  554. package/dist/worker/worker-status.d.ts +3 -20
  555. package/dist/ws/agent-api-registry.d.ts +8 -27
  556. package/dist/ws/agent-handler.d.ts +63 -110
  557. package/dist/ws/agent-heartbeat.d.ts +5 -12
  558. package/dist/ws/bringup-api.d.ts +31 -38
  559. package/dist/ws/dashboard-backends-handler.d.ts +12 -22
  560. package/dist/ws/dashboard-context-handler.d.ts +37 -80
  561. package/dist/ws/dashboard-diagnostics-handler.d.ts +8 -25
  562. package/dist/ws/dashboard-dispatch-guard.d.ts +3 -4
  563. package/dist/ws/dashboard-fleet-handler.d.ts +9 -13
  564. package/dist/ws/dashboard-fleet-write-handler.d.ts +7 -21
  565. package/dist/ws/dashboard-global-workflows-handler.d.ts +22 -44
  566. package/dist/ws/dashboard-registrations-handler.d.ts +10 -27
  567. package/dist/ws/dashboard-run-state-handler.d.ts +10 -13
  568. package/dist/ws/event-buffer.d.ts +3 -6
  569. package/dist/ws/execution-status-frame.d.ts +7 -10
  570. package/dist/ws/failure-messages.d.ts +9 -14
  571. package/dist/ws/fleet-agent-collector.d.ts +6 -12
  572. package/dist/ws/fleet-runs-on-all.d.ts +1 -6
  573. package/dist/ws/git-credential-relay.d.ts +12 -20
  574. package/dist/ws/inventory-api.d.ts +4 -5
  575. package/dist/ws/observer-registry.d.ts +14 -59
  576. package/dist/ws/ownership-gate.d.ts +1 -1
  577. package/dist/ws/platform-client.d.ts +21 -30
  578. package/dist/ws/replay-chunker.d.ts +7 -10
  579. package/dist/ws/server-options.d.ts +5 -9
  580. package/dist/ws/test-relay-handlers.d.ts +46 -63
  581. package/installer-image-digests.json +3 -3
  582. package/package.json +6 -5
  583. package/sbom.spdx.json +53 -53
  584. package/dist/__test-helpers__/fake-scaler-state-store.d.ts +0 -24
  585. package/dist/__test-helpers__/mock-db-query.d.ts +0 -129
  586. package/dist/__test-helpers__/mock-db.d.ts +0 -134
  587. package/dist/__test-helpers__/mock-ws.d.ts +0 -13
  588. package/dist/__test-helpers__/peer-mutual-auth.d.ts +0 -42
  589. package/dist/__test-helpers__/scratch-db.d.ts +0 -16
  590. package/dist/__test-helpers__/test-db.d.ts +0 -34
  591. package/dist/pipeline/dispatch-matched-workflow.test-helpers.d.ts +0 -121
  592. package/dist/scaler/container-spawn.d.ts +0 -28
@@ -86,18 +86,14 @@ export interface UnroutableCandidate extends ExpiredJobInfo {
86
86
  unroutableSince: Date | null;
87
87
  }
88
88
  /**
89
- * Point-in-time breakdown of dispatch_queue depth used for Prometheus gauges
90
- * and operator-facing depth warnings.
89
+ * Point-in-time dispatch_queue depth for Prometheus gauges and operator depth warnings.
91
90
  *
92
- * `byStatus` carries the raw COUNT(*) for each {@link DispatchQueueStatus.Pending}
93
- * and {@link DispatchQueueStatus.Dispatched} bucket (other statuses are
94
- * terminal and not surfaced here).
91
+ * `byStatus` carries the raw COUNT(*) for the {@link DispatchQueueStatus.Pending}
92
+ * and {@link DispatchQueueStatus.Dispatched} buckets only (other statuses are terminal).
95
93
  *
96
- * `byLabel` is a flat rollup of pending-only jobs keyed by each distinct label
97
- * in `runs_on_labels`. Multi-label jobs fan out: a job with `runs_on_labels =
98
- * ['linux', 'x64']` contributes 1 to both `linux` and `x64`. This matches the
99
- * "label pool" mental model operators use in Grafana (agents advertise their
100
- * labels; the gauge answers "how many pending jobs want this label").
94
+ * `byLabel` counts pending jobs per distinct `runs_on_labels` label. Multi-label jobs
95
+ * fan out: `['linux', 'x64']` adds 1 to both, matching the "label pool" model operators
96
+ * use in Grafana ("how many pending jobs want this label").
101
97
  */
102
98
  export interface DispatchQueueDepthBreakdown {
103
99
  byStatus: Partial<Record<DispatchQueueStatus, number>>;
@@ -162,8 +158,8 @@ export interface QueuedJobInput {
162
158
  provider: string;
163
159
  /** Provider-specific context (e.g., { installationId: 42 } for GitHub) */
164
160
  providerContext: Record<string, unknown>;
165
- /** Routing key (e.g. "github:12345") for selecting the per-app provider
166
- * bundle when dispatching. Required for multi-app safety. */
161
+ /** Routing key (e.g. "github:12345") that selects the per-app provider bundle on
162
+ * dispatch. Required for multi-app safety. */
167
163
  routingKey: string;
168
164
  /** Override default timeout. 0 = indefinite (no expiry). */
169
165
  timeoutMs?: number;
@@ -200,9 +196,7 @@ export interface QueuedJobInput {
200
196
  */
201
197
  connectedInstanceId?: string | null;
202
198
  }
203
- /**
204
- * Full queued job as stored in the database.
205
- */
199
+ /** Full queued job as stored in the database. */
206
200
  export interface QueuedJob {
207
201
  id: string;
208
202
  runId: string;
@@ -222,8 +216,8 @@ export interface QueuedJob {
222
216
  provider: string;
223
217
  /** Provider-specific context */
224
218
  providerContext: Record<string, unknown>;
225
- /** Routing key (e.g. "github:12345") used to look up the per-app provider
226
- * bundle on dispatch. Required for multi-app safety. */
219
+ /** Routing key (e.g. "github:12345") that selects the per-app provider bundle on
220
+ * dispatch. Required for multi-app safety. */
227
221
  routingKey: string;
228
222
  /** URL to pre-compiled bundle (from cache). Passed through to job.dispatch. */
229
223
  sourceTarUrl?: string;
@@ -260,20 +254,15 @@ export interface QueuedJob {
260
254
  secretsUnavailable?: string;
261
255
  }
262
256
  /**
263
- * The resource shape a job declares, read from the one location that always
264
- * carries it.
265
- *
266
- * `jobConfig.resources` is where the declaration is stored and transported: it
267
- * is what `job_config` holds across the DB round trip and what a worker
268
- * receives over the wire. The typed `resources` field on {@link QueuedJobInput}
269
- * and {@link QueuedJob} is a convenience mirror, and it is optional — several
270
- * dispatch paths build their input without it (the worker's reroute handler and
271
- * the webhook dispatch path among them). So a consumer that reads only the
272
- * mirror sees a job that declares nothing, and a shape-sensitive decision made
273
- * on that reading is wrong rather than merely unaware.
257
+ * The resource shape a job declares, read from `jobConfig.resources`: the one
258
+ * location that always carries it, across the DB round trip and over the wire.
274
259
  *
275
- * Callers that hold a mirror still prefer it — it is the same value — and fall
276
- * back here.
260
+ * The typed `resources` field on {@link QueuedJobInput} and {@link QueuedJob} is
261
+ * an optional convenience mirror that several dispatch paths omit (the worker's
262
+ * reroute handler and the webhook dispatch path among them), so a consumer that
263
+ * reads only the mirror sees a job that declares nothing and makes a wrong
264
+ * shape-sensitive decision. Callers holding a mirror prefer it (same value) and
265
+ * fall back here.
277
266
  */
278
267
  export declare function resourcesFromJobConfig(jobConfig: Record<string, unknown> | undefined): ResourceRequest | undefined;
279
268
  /**
@@ -357,17 +346,11 @@ export declare class JobQueue {
357
346
  * Semantics: agentLabels @> runs_on_labels (agent provides all labels the job requires).
358
347
  * FOR UPDATE SKIP LOCKED prevents concurrent dequeue races between agents.
359
348
  *
360
- * When `agentMandatoryLabels` is non-empty, an additional containment check
361
- * (`runs_on_labels @> agentMandatoryLabels`) enforces the
362
- * Kubernetes-taint-style gate inherited from the spawning scaler: a gated
363
- * agent only accepts jobs whose `runsOn` lists every gate label. The
364
- * default (`[]`) is a no-op for static / non-scaler agents — every JSONB
365
- * array trivially contains the empty array, so the predicate is vacuously
366
- * true.
367
- *
368
- * @param agentLabels Labels the agent provides.
369
- * @param agentMandatoryLabels Mandatory labels the spawning scaler declared
370
- * (empty for static / non-scaler agents).
349
+ * A non-empty `agentMandatoryLabels` adds `runs_on_labels @> agentMandatoryLabels`:
350
+ * the Kubernetes-taint-style gate inherited from the spawning scaler, so a gated
351
+ * agent only accepts jobs whose `runsOn` lists every gate label. The default `[]`
352
+ * is a no-op for static / non-scaler agents: every JSONB array contains the empty array.
353
+ *
371
354
  * @param canServe Optional extra predicate applied to every candidate row
372
355
  * before it is claimed. Labels cannot express whether an agent may run a
373
356
  * job — a pre-spawned agent's fixed shape, a container job on an agent with
@@ -436,18 +419,15 @@ export declare class JobQueue {
436
419
  */
437
420
  private claimPatternFree;
438
421
  /**
439
- * Pattern path: load a small batch of pattern-bearing candidate rows, apply
440
- * the JS regex post-filter (matcherSatisfiedBy), and atomically claim the
441
- * first match by id with a conditional `status = Pending` guard. The claim is
442
- * a conditional UPDATE rather than relying on the SELECT lock alone because
443
- * the JS filter runs after the per-statement lock window has closed, so two
444
- * agents could both pass the filter for the same row; the `where status =
445
- * Pending` makes exactly one of them win. The claim transitions the row to
446
- * Dispatched, matching the value the caller-side markDispatched would set
447
- * (which then re-sets it idempotently).
422
+ * Pattern path: load a small batch of pattern-bearing rows, apply the JS regex
423
+ * post-filter (matcherSatisfiedBy), and claim the first match by id. The claim
424
+ * is a conditional `status = Pending` UPDATE, not the SELECT lock alone: the JS
425
+ * filter runs after the per-statement lock window has closed, so two agents can
426
+ * both pass it for the same row, and the guard makes exactly one win. The
427
+ * caller's markDispatched then re-sets the same Dispatched state idempotently.
448
428
  *
449
- * Losing the claim continues to the next candidate rather than returning
450
- * null, so a lost race costs this agent a candidate and not a whole drain.
429
+ * A lost claim continues to the next candidate, so it costs this agent a
430
+ * candidate and not a whole drain.
451
431
  */
452
432
  private claimWithPatterns;
453
433
  /**
@@ -496,22 +476,21 @@ export declare class JobQueue {
496
476
  * specific queued job, the orchestrator claims that exact job on agent
497
477
  * registration instead of racing the generic dequeueForLabels drain.
498
478
  *
499
- * Applies the same `agentMandatoryLabels` gate as `dequeueForLabels` so
500
- * the eager-dispatch path can never claim a job that the scaler-side gate
501
- * would have rejected (e.g. when the bound jobId outlived the scaler that
502
- * spawned the agent and was reassigned to a different queued job).
479
+ * Applies the same `agentMandatoryLabels` gate as `dequeueForLabels` so the
480
+ * eager path never claims a job the scaler-side gate would reject (e.g. when
481
+ * the bound jobId outlived the scaler that spawned the agent and was
482
+ * reassigned to a different queued job).
503
483
  *
504
484
  * Returns null if the job is gone, no longer pending, expired, its label
505
485
  * requirements are no longer satisfied by the agent, the agent's gate is not
506
486
  * satisfied by the job's `runsOn`, or another claimant won the row first.
507
487
  *
508
- * That last case is the one this shares with every other claim path: the
509
- * eager bound claim and the generic drain can target the same row moments
510
- * apart, and a SELECT that returns the row still Pending lets both dispatch
511
- * it. The conditional UPDATE below is the arbiter, and it runs after the JS
512
- * post-filter so a pattern-rejected row is never claimed and stranded. A
513
- * loser returns null, and `dispatchBoundJob` then falls back to the generic
514
- * `onAgentAvailable` drain exactly as it does for an already-gone job.
488
+ * The eager bound claim and the generic drain can target the same row moments
489
+ * apart, and a SELECT that returns it still Pending lets both dispatch it. The
490
+ * conditional UPDATE is the arbiter, run after the JS post-filter so a
491
+ * pattern-rejected row is never claimed and stranded. A loser returns null,
492
+ * and `dispatchBoundJob` falls back to the generic `onAgentAvailable` drain
493
+ * exactly as for an already-gone job.
515
494
  *
516
495
  * @param claimingAgentId Recorded as the row's durable owner as part of the
517
496
  * claim. Optional so existing 3-arg callers keep working; the caller's
@@ -527,16 +506,15 @@ export declare class JobQueue {
527
506
  * dispatched the moment it is inserted, so it never passes through
528
507
  * `markDispatched` and would otherwise carry a NULL owner for its whole life.
529
508
  * A coordinator that never saw the dispatch resolves ownership from this
530
- * column alone, so omitting it here would make {@link hasAgentOwnedJob} answer
531
- * "not owned" for every directly-dispatched job after a failover.
509
+ * column alone, so without it {@link hasAgentOwnedJob} answers "not owned" for
510
+ * every directly-dispatched job after a failover.
532
511
  *
533
512
  * Idempotent on the primary key: a reroute re-dispatch reuses a preassigned
534
- * jobId, so a concurrent reroute from a sibling coordinator (or a duplicate
535
- * delivery) may target a row this instance already wrote. ON CONFLICT (id) DO
536
- * NOTHING makes that a no-op instead of a dispatch_queue_pkey error; the
537
- * returned `inserted` flag tells the caller whether a fresh row was created so
538
- * it can avoid double-dispatching an already-present job. The conflicting row
539
- * keeps the owner the winning writer recorded.
513
+ * jobId, so a concurrent sibling reroute (or a duplicate delivery) may target
514
+ * a row this instance already wrote. ON CONFLICT (id) DO NOTHING makes that a
515
+ * no-op instead of a dispatch_queue_pkey error, and `inserted` tells the caller
516
+ * whether a fresh row was created so it does not double-dispatch. The
517
+ * conflicting row keeps the owner the winning writer recorded.
540
518
  *
541
519
  * A job whose run has already stopped is refused, with the same stopped-run
542
520
  * guard the queue drain applies (`notTerminalRunSql`). The row is still
@@ -580,44 +558,36 @@ export declare class JobQueue {
580
558
  */
581
559
  markDispatched(jobId: string, agentId: string): Promise<void>;
582
560
  /**
583
- * Mark a job as failed.
584
- *
585
- * Note: reason is not persisted in the dispatch_queue table.
586
- * Failure details are tracked in execution_jobs via the reporting pipeline.
587
- * The dispatch_queue only tracks routing status transitions.
561
+ * Mark a job as failed. The reason is not persisted: failure details live in
562
+ * execution_jobs via the reporting pipeline, and dispatch_queue tracks only
563
+ * routing status transitions.
588
564
  */
589
565
  markFailed(jobId: string, _reason: string): Promise<void>;
590
566
  /**
591
567
  * Mark a dispatched job as completed (terminal success).
592
568
  *
593
- * Only transitions rows from `Dispatched` or `Recovering`. A row that has
594
- * already reached a terminal state (`Failed`, `Expired`, `Completed`,
595
- * `Cancelled`) is left untouched — if the orchestrator already declared
596
- * the job failed (e.g. build-coordinator timeout cascading through
597
- * {@link failByRunId}), a late `job.complete` from the agent that was
598
- * still working must NOT silently flip the row back to `Completed`.
569
+ * Only transitions rows from `Dispatched` or `Recovering`; a terminal row
570
+ * (`Failed`, `Expired`, `Completed`, `Cancelled`) is left untouched. If the
571
+ * orchestrator already declared the job failed (e.g. a build-coordinator
572
+ * timeout cascading through {@link failByRunId}), a late `job.complete` from
573
+ * the still-working agent must NOT flip the row back to `Completed`.
599
574
  */
600
575
  markCompleted(jobId: string): Promise<void>;
601
576
  /**
602
577
  * Expire timed-out pending jobs.
603
578
  * SELECT-then-UPDATE so callers get the expired job details for forwarding.
604
- * @returns Array of expired job info (id, runId, jobName).
605
579
  */
606
580
  markExpired(): Promise<ExpiredJobInfo[]>;
607
581
  /**
608
582
  * Bulk-fail every still-non-terminal dispatch_queue entry for a run.
609
583
  *
610
584
  * Called from the run-level failure cascades in `ExecutionTracker`
611
- * (`onBuildFailed`, `failRun`). At that point the run itself is being
612
- * declared failed, so any dispatch_queue row still in `Pending`,
613
- * `Recovering`, or `Dispatched` is by definition orphaned and must
614
- * also be moved to `Failed` — leaving a `Dispatched` row in place
615
- * keeps the row in a non-terminal state forever, which any caller
616
- * polling for a terminal state (and any operator query for "is this
617
- * run actually done") relies on never happening. The complementary
618
- * {@link markCompleted} status guard ensures a late `job.complete` from
619
- * the agent that was still working when the run was declared failed
620
- * cannot flip the row back to `Completed`.
585
+ * (`onBuildFailed`, `failRun`). The run is being declared failed, so any row
586
+ * still `Pending`, `Recovering` or `Dispatched` is orphaned and moves to
587
+ * `Failed`: a `Dispatched` row left in place stays non-terminal forever, which
588
+ * callers polling for a terminal state (and operator "is this run done"
589
+ * queries) rely on never happening. The {@link markCompleted} status guard
590
+ * keeps a late `job.complete` from flipping the row back to `Completed`.
621
591
  *
622
592
  * @returns Number of affected rows.
623
593
  */
@@ -641,13 +611,11 @@ export declare class JobQueue {
641
611
  * Delete terminal dispatch_queue rows older than `retentionDays`.
642
612
  *
643
613
  * `dispatch_queue` is operational dispatch state; the durable run history
644
- * lives in the cold-stored execution_runs/jobs/steps tables, so a terminal
645
- * ({@link DispatchQueueStatus.Completed}/{@link DispatchQueueStatus.Failed}/
646
- * {@link DispatchQueueStatus.Expired}) row has no archival value once it ages
647
- * out. Non-terminal rows ({@link DispatchQueueStatus.Pending}/
648
- * {@link DispatchQueueStatus.Dispatched}/{@link DispatchQueueStatus.Recovering})
649
- * are never pruned — a still-active run keeps every one of its rows. Both the
650
- * terminal-status filter and the age cutoff must hold for a row to be deleted.
614
+ * lives in the cold-stored execution_runs/jobs/steps tables, so a terminal row
615
+ * ({@link TERMINAL_DISPATCH_STATUSES}) has no archival value once it ages out.
616
+ * Non-terminal rows (pending, dispatched, recovering) are never pruned, so a
617
+ * still-active run keeps every row. A row is deleted only when both the
618
+ * terminal-status filter and the age cutoff hold.
651
619
  *
652
620
  * `retentionDays <= 0` disables pruning (returns 0 without a query).
653
621
  *
@@ -663,15 +631,9 @@ export declare class JobQueue {
663
631
  * Compute the current dispatch-queue depth breakdown (pending + dispatched),
664
632
  * aggregated per status and, for pending rows, per label.
665
633
  *
666
- * Uses the same 1-second TTL cache pattern as {@link JobQueue.getDepth}: if
667
- * the cached breakdown is still fresh (or was refreshed within the last
668
- * second), the cached value is returned without issuing a query. This keeps
669
- * the Prometheus gauge callback cheap on high-frequency scrapes and avoids
670
- * any extra DB load during enqueue bursts.
671
- *
672
- * Multi-label jobs fan out: a pending row with `runs_on_labels = ['linux',
673
- * 'x64']` contributes `1` to both the `linux` and `x64` entries in
674
- * `byLabel`. The `byStatus` buckets always contain raw counts.
634
+ * Uses the same 1-second TTL cache as {@link JobQueue.getDepth}, which keeps
635
+ * the Prometheus gauge callback cheap on high-frequency scrapes and adds no DB
636
+ * load during enqueue bursts. Label fan-out: see {@link DispatchQueueDepthBreakdown}.
675
637
  */
676
638
  getDepthBreakdown(): Promise<DispatchQueueDepthBreakdown>;
677
639
  /**
@@ -705,18 +667,16 @@ export declare class JobQueue {
705
667
  * Mark a job as recovering (agent disconnected, within grace period).
706
668
  * Only transitions from 'dispatched' state for safety.
707
669
  *
708
- * When `deadline` and `agentId` are provided, persists them so a
709
- * replacement coord on Raft leader switch can recreate the recovery
710
- * timer (via `getRecoveringJobs()` on boot) or expire the row in
711
- * the leader-gated sweep (`sweepExpiredRecoveries()`).
670
+ * `deadline` and `agentId`, when given, are persisted so a replacement coord
671
+ * on Raft leader switch can recreate the recovery timer (`getRecoveringJobs()`
672
+ * on boot) or expire the row in the leader-gated `sweepExpiredRecoveries()`.
712
673
  *
713
- * Carries the permissive ownership write guard: a row owned by a LIVE sibling
714
- * is left alone. Callers are expected to have selected owned rows already
715
- * ({@link JobQueue.getOrphanedDispatchedJobs}); this is the backstop for a
716
- * path that forgets to, since flipping a live sibling's row to `recovering`
717
- * starts a 120-second clock that ends by failing a job nobody disconnected
718
- * from. A NULL owner still passes — a local disconnect must be able to move a
719
- * pre-upgrade row.
674
+ * Carries the permissive ownership write guard: a LIVE sibling's row is left
675
+ * alone. Callers should already have selected owned rows
676
+ * ({@link JobQueue.getOrphanedDispatchedJobs}); this is the backstop for a path
677
+ * that forgets, since flipping a live sibling's row starts a 120-second clock
678
+ * that ends by failing a job nobody disconnected from. A NULL owner still
679
+ * passes: a local disconnect must be able to move a pre-upgrade row.
720
680
  *
721
681
  * @returns whether a row was flipped.
722
682
  */
@@ -725,12 +685,11 @@ export declare class JobQueue {
725
685
  * The `dispatched` rows this coordinator may start recovery timers for on
726
686
  * boot: its own, and those whose owning coordinator is no longer alive.
727
687
  *
728
- * Replaces an unfiltered `getJobsByStatus(Dispatched)` over the shared table.
729
- * That scan made every coordinator boot flip every sibling's in-flight row to
730
- * `recovering`; the agents running those jobs were never disconnected, so
731
- * nothing reclaimed them, and 120 seconds later the booting coordinator
732
- * failed every one of them while they ran to completion. The documented
733
- * rolling-restart procedure triggered it on every restart.
688
+ * Not an unfiltered `getJobsByStatus(Dispatched)` over the shared table: that
689
+ * scan flips every sibling's in-flight row to `recovering` on every boot, and
690
+ * since those agents never disconnected nothing reclaims them, so 120 seconds
691
+ * later the booting coordinator fails them all while they run to completion,
692
+ * on every step of the documented rolling-restart procedure.
734
693
  *
735
694
  * A NULL owner is spared — see {@link recoverableByOwner} for why, and for
736
695
  * what reaps a genuinely orphaned one instead.
@@ -794,14 +753,12 @@ export declare class JobQueue {
794
753
  deadline: Date | null;
795
754
  }>>;
796
755
  /**
797
- * Sweep every `recovering` row whose `recovery_deadline` is in the
798
- * past, marking them `failed`. Returns the rows that flipped so the
799
- * caller can fire the per-job `onJobFailedPermanently` hook in process.
756
+ * Fail every `recovering` row whose `recovery_deadline` is past, returning the
757
+ * flipped rows so the caller can fire the per-job `onJobFailedPermanently` hook.
800
758
  *
801
- * Intended for the leader-gated `Dispatcher.sweepExpiredRecoveries`
802
- * tick — running on N coords would still be correct (the WHERE
803
- * `status='recovering'` clause prevents double-failure) but only one
804
- * needs to do the work.
759
+ * Intended for the leader-gated `Dispatcher.sweepExpiredRecoveries` tick;
760
+ * running on N coords is still correct (the `status='recovering'` guard
761
+ * prevents double-failure), but only one needs to do the work.
805
762
  */
806
763
  sweepExpiredRecoveries(now: Date): Promise<Array<{
807
764
  id: string;
@@ -815,10 +772,9 @@ export declare class JobQueue {
815
772
  */
816
773
  markFailedIfRecovering(jobId: string, _reason: string): Promise<boolean>;
817
774
  /**
818
- * Return a dispatched job to the pending queue for re-dispatch, bumping
819
- * its attempt counter. Used when an agent explicitly rejects a dispatch
820
- * (job.reject) and when a scaler-managed agent disconnects before the
821
- * job started. Only flips rows still in 'dispatched' — a job that was
775
+ * Return a dispatched job to the pending queue, bumping its attempt counter.
776
+ * Used on an explicit job.reject and when a scaler-managed agent disconnects
777
+ * before the job started. Only flips rows still 'dispatched', so a job
822
778
  * concurrently completed / failed / cancelled is left untouched.
823
779
  *
824
780
  * `countAttempt: false` leaves the counter alone — used for a busy rejection
@@ -877,27 +833,23 @@ export declare class JobQueue {
877
833
  status: DispatchQueueStatus;
878
834
  } | null>;
879
835
  /**
880
- * HA-safe ownership check. Returns true if the DB shows that
881
- * `agentId` holds or previously held `jobId` according to any of:
836
+ * HA-safe ownership check: true if the DB shows `agentId` holds or held `jobId`:
882
837
  *
883
- * - `status='dispatched'` AND `agent_id = <agent>` — the live
884
- * owner of an in-flight job, readable by any coordinator
885
- * including one that never saw the dispatch,
886
- * - `status='recovering'` AND `recovery_agent_id = <agent>` (so a
887
- * replacement coord still recognises in-flight chunks), OR
888
- * - the row is already terminal (`completed` / `failed` /
889
- * `expired`) — late `log.chunk` chunks from the agent's drain
890
- * window are accepted as benign duplicates rather than
891
- * rejected.
838
+ * - `status='dispatched'` AND `agent_id = <agent>` — the live owner, readable
839
+ * by any coordinator, including one that never saw the dispatch;
840
+ * - `status='recovering'` AND `recovery_agent_id = <agent>`, so a
841
+ * replacement coord still recognises in-flight chunks; or
842
+ * - the row is terminal (`completed` / `failed` / `expired`) — late
843
+ * `log.chunk` chunks from the agent's drain window are accepted as benign
844
+ * duplicates.
892
845
  *
893
- * Used by `OwnershipTracker.validateAsync` so a Raft leader switch
894
- * doesn't turn the next 30s of legitimate per-job chunks into a
895
- * stream of ownership violations.
846
+ * Used by `OwnershipTracker.validateAsync` so a Raft leader switch doesn't
847
+ * turn the next 30s of legitimate per-job chunks into ownership violations.
896
848
  */
897
849
  hasAgentOwnedJob(agentId: string, jobId: string): Promise<boolean>;
898
850
  /**
899
- * Get all jobs matching a given status.
900
- * Used on startup to find 'dispatched' jobs from a previous instance for recovery.
851
+ * Get all jobs matching a given status, unfiltered across coordinators. Boot
852
+ * recovery uses `getOrphanedDispatchedJobs` instead.
901
853
  */
902
854
  getJobsByStatus(status: DispatchQueueStatus): Promise<Array<{
903
855
  id: string;
@@ -930,9 +882,8 @@ export declare class JobQueue {
930
882
  * Pending, non-expired jobs with the facts the unroutable probe needs:
931
883
  * routing selectors, any recorded provisioning error, and the grace clock.
932
884
  *
933
- * Read-only — no claim, no `FOR UPDATE`; the probe never dispatches. Reuses
934
- * the shared pending query so it inherits the same FIFO ordering and
935
- * not-yet-expired filter the rest of the queue uses.
885
+ * Read-only — no claim, no `FOR UPDATE`; the probe never dispatches. Shares
886
+ * the queue's FIFO ordering and not-yet-expired filter.
936
887
  */
937
888
  listUnroutableCandidates(limit: number): Promise<UnroutableCandidate[]>;
938
889
  /**
@@ -949,17 +900,15 @@ export declare class JobQueue {
949
900
  /**
950
901
  * Claim a still-pending row for fast-fail, moving it out of the queue.
951
902
  *
952
- * Mirrors {@link markExpired}: the queue row has to leave `Pending` in the
953
- * same breath the job is terminalized, and for the same two reasons.
954
- * A row left pending is still dispatchable, so an agent connecting later
903
+ * Mirrors {@link markExpired}: the row must leave `Pending` as the job is
904
+ * terminalized. A row left pending is still dispatchable, so a later agent
955
905
  * would pick up a job whose `execution_jobs` row already reads terminal; and
956
- * the probe re-lists it on every tick, re-running the whole terminalize path
957
- * (and re-counting the fast-fail metric) until the queue timeout finally
958
- * expires it.
906
+ * the probe re-lists it every tick, re-running the terminalize path (and
907
+ * re-counting the fast-fail metric) until the queue timeout expires it.
959
908
  *
960
909
  * The `status = Pending` guard is also the concurrency arbiter — probe ticks
961
910
  * are NOT leader-gated, so exactly one coordinator's UPDATE hits a row and
962
- * the losers get `false` and move on.
911
+ * the losers get `false`.
963
912
  *
964
913
  * @returns true when this call claimed the row, false when it was already
965
914
  * dispatched, cancelled, expired, or claimed by another coordinator.
@@ -1,28 +1,25 @@
1
1
  /**
2
2
  * Database-side retention for the tables that scale with run volume.
3
3
  *
4
- * The cold store is the other half of this: its archivers do
5
- * archive-then-delete inside one transaction and own the four tables they
6
- * register. But the cold store needs `KICI_COLD_STORE_ENABLED=true` and a
7
- * bucket, and with neither — the default, and the quickstart path — nothing
8
- * aged at all, so `execution_steps`, `event_log` and `access_log` grew without
9
- * bound on the operator's own disk.
4
+ * The cold store's archivers archive-then-delete in one transaction and own the
5
+ * tables they register, but need `KICI_COLD_STORE_ENABLED=true` and a bucket.
6
+ * Without them (the default, and the quickstart path) this tier is what keeps
7
+ * `execution_steps`, `event_log` and `access_log` from growing without bound on
8
+ * the operator's disk.
10
9
  *
11
10
  * Two rules keep the tiers from fighting:
12
11
  *
13
- * - When the cold store is on, this tier skips every table an archiver
14
- * registers. Two owners deleting the same rows would race the archiver's
15
- * FK guard and could delete a parent whose archive chunk was never
16
- * written. One owner per table.
12
+ * - With the cold store on, this tier skips every table an archiver
13
+ * registers: two owners would race the archiver's FK guard and could delete
14
+ * a parent whose archive chunk was never written. One owner per table.
17
15
  * - Nothing is deleted on the first pass. The first pass with a non-zero
18
16
  * window stamps `cluster_settings.retention_announced_at` and reports what
19
- * it would remove; deletion begins a week later. An upgrade that silently
20
- * deleted an operator's history on its first night would be a behaviour
21
- * change nobody was warned about.
17
+ * it would remove; deletion begins a week later, so an upgrade never
18
+ * silently deletes an operator's history on its first night.
22
19
  *
23
- * Every delete is batched — select ids under a `LIMIT`, then delete by id,
24
- * looping until a pass comes back short. One unbounded `DELETE` over a table
25
- * holding millions of rows holds locks for as long as it runs.
20
+ * Every delete is batched — select ids under a `LIMIT`, delete by id, loop until
21
+ * a pass comes back short — because one unbounded `DELETE` over millions of rows
22
+ * holds locks for as long as it runs.
26
23
  */
27
24
  import { type Kysely } from 'kysely';
28
25
  import type { Database } from '../db/types.js';
@@ -30,18 +27,16 @@ import type { Database } from '../db/types.js';
30
27
  export declare const RETENTION_BATCH_SIZE = 5000;
31
28
  /** Days between the announce stamp and the first deletion. */
32
29
  export declare const RETENTION_ANNOUNCE_DAYS = 7;
33
- /** Terminal run statuses. A run still queued, running, held or cancelling is
34
- * live work whatever its age. */
30
+ /** A run still queued, running, held or cancelling is live work whatever its age. */
35
31
  export declare const TERMINAL_RUN_STATUS_LIST: readonly string[];
36
- /** Terminal held-run statuses. A pending hold is never pruned. */
32
+ /** A pending hold is never pruned. */
37
33
  export declare const TERMINAL_HELD_RUN_STATUSES: readonly string[];
38
34
  /**
39
- * Tables the cold-store archivers register. When the cold store is on these
40
- * are theirs alone — including the `execution_jobs` / `execution_steps`
41
- * children, which the run archiver removes with their parent.
35
+ * Tables the cold-store archivers own when the cold store is on — including the
36
+ * `execution_jobs` / `execution_steps` children the run archiver removes with
37
+ * their parent.
42
38
  */
43
39
  export declare const COLD_STORE_OWNED_TABLES: readonly string[];
44
- /** The `cluster_settings` columns this module reads. */
45
40
  export type ClusterRetentionColumn = 'run_retention_days' | 'audit_retention_days' | 'provenance_retention_days' | 'held_run_retention_days';
46
41
  export interface RetentionWindows {
47
42
  /** Terminal runs, and the jobs and steps beneath them. 0 disables. */
@@ -62,7 +57,6 @@ export interface PruneExpiredHistoryDeps {
62
57
  batchSize?: number;
63
58
  }
64
59
  export interface RetentionSummary {
65
- /** Rows deleted, per table. */
66
60
  deleted: Record<string, number>;
67
61
  /** Rows that WOULD have been deleted, while the announce window runs. */
68
62
  pending: Record<string, number>;
@@ -72,16 +66,13 @@ export interface RetentionSummary {
72
66
  /** True when every window is 0, i.e. the operator disabled the whole tier. */
73
67
  export declare function allWindowsDisabled(windows: RetentionWindows): boolean;
74
68
  /**
75
- * Delete rows in bounded batches, returning the total removed.
76
- *
77
- * The loop stops as soon as a pass comes back short, which is what bounds it
78
- * on a table that is still being written to.
69
+ * Delete rows in bounded batches. Stopping on the first short pass is what
70
+ * bounds the loop on a table still being written to.
79
71
  */
80
72
  export declare function deleteInBatches(table: string, selectIds: (limit: number) => Promise<string[]>, deleteIds: (ids: string[]) => Promise<void>, batchSize: number): Promise<number>;
81
73
  /**
82
74
  * Read the announce stamp, setting it on the first pass that has work to do.
83
- *
84
- * Returns true once the window has elapsed and deletion may begin.
75
+ * True once the window has elapsed and deletion may begin.
85
76
  */
86
77
  export declare function announceGatePassed(db: Kysely<Database>, now: Date, announceDays?: number): Promise<boolean>;
87
78
  /**
@@ -90,12 +81,8 @@ export declare function announceGatePassed(db: Kysely<Database>, now: Date, anno
90
81
  */
91
82
  export declare function pruneExpiredHistory(deps: PruneExpiredHistoryDeps): Promise<RetentionSummary>;
92
83
  /**
93
- * Resolve the effective windows: a live `cluster_settings` value wins over the
94
- * configured default.
95
- *
96
- * `getNumber` returns a genuine 0 when the operator set the knob to 0, which is
97
- * the documented way to disable a window — so this stays a fallback-on-null
98
- * read, never `||`.
84
+ * A live `cluster_settings` value wins over the configured default. A genuine 0
85
+ * disables a window, so this stays a fallback-on-null read, never `||`.
99
86
  */
100
87
  export declare function resolveRetentionWindows(defaults: RetentionWindows, clusterSettings?: {
101
88
  getNumber(column: ClusterRetentionColumn, fallback: number): Promise<number>;