@kici-dev/orchestrator 0.17.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 (589) 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 +35 -52
  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 +25 -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 +5 -12
  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 +4568 -6571
  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 +240 -482
  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 +20 -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 +16 -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 +17 -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 +5 -12
  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/uploads.d.ts +5 -11
  473. package/dist/routes/webhooks.d.ts +2 -24
  474. package/dist/scaler/agent-binary-location.d.ts +77 -0
  475. package/dist/scaler/agent-fit.d.ts +2 -2
  476. package/dist/scaler/backend-factory.d.ts +10 -18
  477. package/dist/scaler/bare-metal-backend.d.ts +28 -45
  478. package/dist/scaler/claim-store.d.ts +20 -43
  479. package/dist/scaler/config.d.ts +10 -37
  480. package/dist/scaler/container-backend.d.ts +22 -35
  481. package/dist/scaler/container-hostconfig.d.ts +10 -16
  482. package/dist/scaler/container-routing.d.ts +10 -13
  483. package/dist/scaler/disk-guard.d.ts +2 -3
  484. package/dist/scaler/event-backend.d.ts +33 -58
  485. package/dist/scaler/event-provision-reaper.d.ts +61 -84
  486. package/dist/scaler/failure-tracker.d.ts +6 -13
  487. package/dist/scaler/file-tail.d.ts +6 -19
  488. package/dist/scaler/firecracker-api.d.ts +19 -63
  489. package/dist/scaler/firecracker-backend.d.ts +142 -258
  490. package/dist/scaler/host-access.d.ts +7 -10
  491. package/dist/scaler/index.d.ts +3 -6
  492. package/dist/scaler/ip-allocator.d.ts +30 -82
  493. package/dist/scaler/label-matcher.d.ts +14 -35
  494. package/dist/scaler/log-forwarder.d.ts +6 -25
  495. package/dist/scaler/machine-ledger.d.ts +39 -86
  496. package/dist/scaler/manager.d.ts +517 -787
  497. package/dist/scaler/pending-scale-sweeper.d.ts +8 -11
  498. package/dist/scaler/reap-orphans.d.ts +8 -12
  499. package/dist/scaler/resolve-container-auth.d.ts +12 -21
  500. package/dist/scaler/scaler-events.d.ts +2 -5
  501. package/dist/scaler/scaler-state-store.d.ts +127 -189
  502. package/dist/scaler/spawn-errors.d.ts +1 -4
  503. package/dist/scaler/startup-orphan-sweep.d.ts +3 -4
  504. package/dist/scaler/startup-tools-check.d.ts +21 -0
  505. package/dist/scaler/types.d.ts +142 -255
  506. package/dist/scaler/vm-job-bindings.d.ts +5 -9
  507. package/dist/scaler/warm-pool.d.ts +46 -93
  508. package/dist/secrets/audit-logger.d.ts +0 -3
  509. package/dist/secrets/backend-health.d.ts +0 -9
  510. package/dist/secrets/backend-registry.d.ts +0 -9
  511. package/dist/secrets/cleanup.d.ts +0 -1
  512. package/dist/secrets/config.d.ts +0 -3
  513. package/dist/secrets/ephemeral-keys.d.ts +0 -3
  514. package/dist/secrets/pg-secret-store.d.ts +0 -3
  515. package/dist/secrets/rbac.d.ts +0 -6
  516. package/dist/secrets/secret-output-store.d.ts +0 -6
  517. package/dist/secrets/secret-resolver.d.ts +2 -6
  518. package/dist/secrets/token-manager.d.ts +0 -4
  519. package/dist/secrets/vault-secret-store.d.ts +0 -13
  520. package/dist/security/comment-handler.d.ts +0 -2
  521. package/dist/security/workflow-diff.d.ts +1 -1
  522. package/dist/server.js +7500 -12629
  523. package/dist/sources/source-manager.d.ts +0 -3
  524. package/dist/sources/source-store.d.ts +0 -9
  525. package/dist/sources/source-validator.d.ts +0 -3
  526. package/dist/stale-detector/all-terminal-runs.d.ts +8 -11
  527. package/dist/stale-detector/gate-deadline-detector.d.ts +14 -19
  528. package/dist/stale-detector/reboot-deadline-sweep.d.ts +7 -11
  529. package/dist/stale-detector/stale-dispatch-candidates.d.ts +13 -20
  530. package/dist/stale-detector/stale-run-detector.d.ts +74 -121
  531. package/dist/stale-detector/workflow-deadline-detector.d.ts +15 -43
  532. package/dist/standalone.js +7141 -11957
  533. package/dist/storage/blob-routes.d.ts +10 -19
  534. package/dist/storage/filesystem.d.ts +19 -29
  535. package/dist/storage/index.d.ts +2 -10
  536. package/dist/storage/key-discriminator.d.ts +8 -10
  537. package/dist/storage/loopback-guard.d.ts +27 -45
  538. package/dist/storage/s3.d.ts +25 -52
  539. package/dist/storage/sign-url.d.ts +7 -22
  540. package/dist/storage/types.d.ts +44 -70
  541. package/dist/webhook/event-log.d.ts +0 -2
  542. package/dist/webhook/generic-sources.d.ts +0 -21
  543. package/dist/webhook/ingest-admission.d.ts +0 -1
  544. package/dist/webhook/relay-buffer.d.ts +2 -2
  545. package/dist/webhook/verify-inbound.d.ts +0 -1
  546. package/dist/worker/in-memory-execution-tracker.d.ts +9 -31
  547. package/dist/worker/in-memory-job-queue.d.ts +32 -72
  548. package/dist/worker/peer-outbox.d.ts +5 -8
  549. package/dist/worker/reroute-dispatch.d.ts +4 -6
  550. package/dist/worker/static-agent-token-store.d.ts +6 -27
  551. package/dist/worker/worker-outbox-relay.d.ts +2 -2
  552. package/dist/worker/worker-status.d.ts +3 -20
  553. package/dist/ws/agent-api-registry.d.ts +8 -27
  554. package/dist/ws/agent-handler.d.ts +63 -110
  555. package/dist/ws/agent-heartbeat.d.ts +5 -12
  556. package/dist/ws/bringup-api.d.ts +31 -38
  557. package/dist/ws/dashboard-backends-handler.d.ts +12 -22
  558. package/dist/ws/dashboard-context-handler.d.ts +37 -80
  559. package/dist/ws/dashboard-diagnostics-handler.d.ts +8 -25
  560. package/dist/ws/dashboard-dispatch-guard.d.ts +3 -4
  561. package/dist/ws/dashboard-fleet-handler.d.ts +9 -13
  562. package/dist/ws/dashboard-fleet-write-handler.d.ts +7 -21
  563. package/dist/ws/dashboard-global-workflows-handler.d.ts +22 -44
  564. package/dist/ws/dashboard-registrations-handler.d.ts +10 -27
  565. package/dist/ws/dashboard-run-state-handler.d.ts +10 -13
  566. package/dist/ws/event-buffer.d.ts +3 -6
  567. package/dist/ws/execution-status-frame.d.ts +7 -10
  568. package/dist/ws/failure-messages.d.ts +9 -14
  569. package/dist/ws/fleet-agent-collector.d.ts +6 -12
  570. package/dist/ws/fleet-runs-on-all.d.ts +1 -6
  571. package/dist/ws/git-credential-relay.d.ts +12 -20
  572. package/dist/ws/inventory-api.d.ts +4 -5
  573. package/dist/ws/observer-registry.d.ts +14 -59
  574. package/dist/ws/ownership-gate.d.ts +1 -1
  575. package/dist/ws/platform-client.d.ts +21 -30
  576. package/dist/ws/replay-chunker.d.ts +7 -10
  577. package/dist/ws/server-options.d.ts +5 -9
  578. package/dist/ws/test-relay-handlers.d.ts +36 -60
  579. package/installer-image-digests.json +3 -3
  580. package/package.json +6 -5
  581. package/sbom.spdx.json +53 -53
  582. package/dist/__test-helpers__/fake-scaler-state-store.d.ts +0 -24
  583. package/dist/__test-helpers__/mock-db-query.d.ts +0 -129
  584. package/dist/__test-helpers__/mock-db.d.ts +0 -134
  585. package/dist/__test-helpers__/mock-ws.d.ts +0 -13
  586. package/dist/__test-helpers__/peer-mutual-auth.d.ts +0 -42
  587. package/dist/__test-helpers__/scratch-db.d.ts +0 -16
  588. package/dist/__test-helpers__/test-db.d.ts +0 -34
  589. package/dist/pipeline/dispatch-matched-workflow.test-helpers.d.ts +0 -121
@@ -9,20 +9,18 @@ export interface HostRosterReaperOptions {
9
9
  setUnreachableGauge: (value: number) => void;
10
10
  }
11
11
  /**
12
- * Leader-only host-roster reaper.
13
- *
14
- * Modeled on `EventRetryScanner`: started/stopped via the Raft leadership
15
- * callbacks, a single timer cleared on `stop()`. Each leader tick it:
12
+ * Leader-only host-roster reaper, started/stopped via the Raft leadership
13
+ * callbacks like `EventRetryScanner`. Each leader tick it:
16
14
  *
17
15
  * - DELETEs `ephemeral` host_roster rows whose `last_seen` is older than the ttl
18
16
  * (scaled-down autoscale agents — silent GC, no alarm); and
19
- * - counts `static` (declared) hosts whose derived status is `unreachable` and
20
- * publishes that count to the `kici_orch_declared_hosts_unreachable` gauge, so
21
- * a Mimir ruler alert can page an operator when a declared box goes dark.
17
+ * - publishes the count of `static` (declared) hosts whose derived status is
18
+ * `unreachable` to the `kici_orch_declared_hosts_unreachable` gauge, so a
19
+ * Mimir ruler alert can page an operator when a declared box goes dark.
22
20
  *
23
- * `static` unreachability is read-derived by `deriveHostStatus` (no write here),
24
- * so the reaper never deletes a static row. Followers never run the reaper, so
25
- * the gauge series exists only on the leader (the alert uses `max by ()`).
21
+ * `static` unreachability is read-derived by `deriveHostStatus`, so the reaper
22
+ * never deletes a static row. The gauge series exists only on the leader (the
23
+ * alert uses `max by ()`).
26
24
  */
27
25
  export declare class HostRosterReaper {
28
26
  private readonly store;
@@ -17,11 +17,10 @@ export declare const STAGED_AGENT_VERSION_KEY = "kici:staged-agent-version";
17
17
  export declare function isReservedHostKey(key: string): boolean;
18
18
  /**
19
19
  * Drop every reserved `kici:` key from an agent-reported host-property bag.
20
- * Agent-reported properties win the roster shallow-merge, and the staged-version
21
- * convergence gate and the restart commands the re-stage runs over SSH both
22
- * read `kici:` keys, so a registering agent must never set them. Reserved keys
23
- * come only from orchestrator code (`recordStagedVersion`) and a local
24
- * `kici-admin host declare`.
20
+ * Agent keys win the roster shallow-merge, and the staged-version convergence
21
+ * gate and the re-stage's SSH restart commands read `kici:` keys, so an agent
22
+ * must never set them. Reserved keys come only from `recordStagedVersion` and
23
+ * a local `kici-admin host declare`.
25
24
  */
26
25
  export declare function stripReservedProperties(props: HostProperties): HostProperties;
27
26
  /** Who is writing a static host declaration or removal. */
@@ -65,10 +64,9 @@ export interface DeclareStaticInput {
65
64
  authority?: HostWriteAuthority;
66
65
  }
67
66
  /**
68
- * Pre-agent reach metadata for a declared host — how to SSH to it for bootstrap
69
- * bring-up before it has a KiCI agent. All fields nullable: a host with no reach
70
- * metadata cannot be bootstrapped. `sshKeySecret` is a scoped-secret ref
71
- * (`scope/key`) the orchestrator resolves server-side; the key never lives here.
67
+ * How to SSH to a declared host for bootstrap bring-up before it has an agent.
68
+ * A host with no reach metadata cannot be bootstrapped. `sshKeySecret` is a
69
+ * scoped-secret ref (`scope/key`) resolved server-side; the key never lives here.
72
70
  */
73
71
  export interface HostReach {
74
72
  agentId: string;
@@ -77,9 +75,9 @@ export interface HostReach {
77
75
  sshPort: number | null;
78
76
  sshKeySecret: string | null;
79
77
  /**
80
- * When true, the box can reach the orchestrator's object storage — bring-up
81
- * picks the `s3-direct` delivery mode (box pulls the payload via a presigned
82
- * URL). NULL / false ⇒ the conservative `ssh-push` fallback.
78
+ * True ⇒ the box reaches the orchestrator's object storage, so bring-up uses
79
+ * `s3-direct` (the box pulls the payload via a presigned URL). NULL / false ⇒
80
+ * the conservative `ssh-push` fallback.
83
81
  */
84
82
  s3Reachable: boolean | null;
85
83
  }
@@ -99,19 +97,17 @@ export declare enum HostStatus {
99
97
  /** The lifecycle class snapshot from the auth token's `agent_type`. */
100
98
  export type LifecycleClass = 'static' | 'ephemeral';
101
99
  /**
102
- * A roster host that matched a `runsOnAll` predicate, with its derived status.
103
- * The host-fanout resolver consumes this: `ready` hosts become pinned children;
104
- * `unreachable` static hosts are subject to the `onUnreachable` policy; `stale`
105
- * ephemeral hosts are skipped.
100
+ * A roster host that matched a `runsOnAll` predicate. In the host-fanout
101
+ * resolver, `ready` hosts become pinned children, `unreachable` static hosts
102
+ * get the `onUnreachable` policy, and `stale` ephemeral hosts are skipped.
106
103
  */
107
104
  export interface MatchedHost {
108
105
  agentId: string;
109
106
  /** Canonical hostname; falls back to the raw agentId when the row has none. */
110
107
  host: string;
111
108
  /**
112
- * The row's labels, folded on read. A row written before labels were
113
- * canonicalized still carries the case the operator typed, and this is the
114
- * only place that case would otherwise reach a matcher.
109
+ * Folded on read: a row written before labels were canonicalized keeps the
110
+ * operator's case, and this is the only place it would otherwise reach a matcher.
115
111
  */
116
112
  labels: CanonicalLabel[];
117
113
  lifecycleClass: LifecycleClass;
@@ -128,10 +124,9 @@ export interface UpsertHostInput {
128
124
  tokenId: string | null;
129
125
  lifecycleClass: LifecycleClass;
130
126
  /**
131
- * True when an auto-scaler backend spawned this agent, so `runsOnAll`
132
- * fan-out skips it. Derived from the scaler manager's registration lookup,
133
- * never from `lifecycleClass` (which is `ephemeral` for every agent when the
134
- * auth mode is `none`). Omitted ⇒ false.
127
+ * True when an auto-scaler spawned this agent, so `runsOnAll` fan-out skips
128
+ * it. From the scaler manager's registration lookup, never `lifecycleClass`
129
+ * (`ephemeral` for every agent under auth mode `none`). Omitted ⇒ false.
135
130
  */
136
131
  scalerManaged?: boolean;
137
132
  labels: string[];
@@ -140,9 +135,8 @@ export interface UpsertHostInput {
140
135
  arch: string;
141
136
  instanceId: string;
142
137
  /**
143
- * Agent-reported typed host-vars. Shallow-merged into any existing bag on
144
- * conflict (agent-reported keys win; operator-declared keys the agent does
145
- * not report are preserved). Omitted ⇒ no change to the stored bag on update,
138
+ * Shallow-merged into the existing bag on conflict: agent keys win, operator
139
+ * keys the agent does not report survive. Omitted ⇒ no change on update,
146
140
  * `{}` on insert.
147
141
  */
148
142
  properties?: HostProperties;
@@ -154,30 +148,27 @@ export interface HostStatusRow {
154
148
  last_seen: Date | string;
155
149
  }
156
150
  /**
157
- * The ONE status-derivation function — used by the store and the kici-admin
158
- * host CLI. `ready` requires the host to be genuinely live (connected to some
159
- * instance AND heartbeat fresh — the freshness check catches a crashed
160
- * instance that never cleared `connected_instance_id`). It never returns
161
- * `ready` for a not-currently-live host: a not-live `static` reads
162
- * `unreachable` (the declared-but-absent alarm), a not-live `ephemeral` reads
163
- * `stale` (scaled down, awaiting reap).
151
+ * The ONE status derivation, shared by the store and the kici-admin host CLI.
152
+ * `ready` needs a connected instance AND a fresh heartbeat (freshness catches a
153
+ * crashed instance that never cleared `connected_instance_id`). A not-live
154
+ * `static` reads `unreachable` (the declared-but-absent alarm); a not-live
155
+ * `ephemeral` reads `stale` (scaled down, awaiting reap).
164
156
  */
165
157
  export declare function deriveHostStatus(row: HostStatusRow, nowMs: number, graceMs: number): HostStatus;
166
158
  /**
167
- * Normalize a stored `host_properties` value into a typed host-vars bag. The pg
168
- * driver returns parsed JSON for a `jsonb` column, but accept a JSON string too
169
- * (defensive for non-pg paths / tests). Non-object / null reads back as `{}`.
159
+ * Normalize a stored `host_properties` value. pg returns parsed `jsonb`; a JSON
160
+ * string is accepted for non-pg paths and tests. Non-object / null reads `{}`.
170
161
  */
171
162
  export declare function parseHostProperties(value: unknown): HostProperties;
172
163
  /**
173
164
  * Durable, cluster-shared roster of every agent the cluster has ever enrolled.
174
165
  *
175
- * The in-memory `AgentRegistry` reconciles into this table on register
176
- * (`upsert`) / unregister (`markDisconnected`), with a coarse heartbeat
177
- * (`stampLastSeen`). All liveness writes are owner-guarded by `instanceId` so a
178
- * stale disconnect from an old instance can never clobber a row a different
179
- * instance now owns. The leader-only reaper deletes `ephemeral` rows past their
180
- * ttl via `reapEphemeralPastTtl`; `static` rows persist and read `unreachable`.
166
+ * The in-memory `AgentRegistry` reconciles into it on register (`upsert`),
167
+ * unregister (`markDisconnected`) and a coarse heartbeat (`stampLastSeen`).
168
+ * Liveness writes are owner-guarded by `instanceId`, so a stale disconnect from
169
+ * an old instance never clobbers a row another instance now owns. The
170
+ * leader-only reaper deletes `ephemeral` rows past ttl; `static` rows persist
171
+ * and read `unreachable`.
181
172
  */
182
173
  export declare class HostRosterStore {
183
174
  private readonly db;
@@ -189,10 +180,9 @@ export declare class HostRosterStore {
189
180
  /** Coarse heartbeat stamp — same owner-guard as markDisconnected. */
190
181
  stampLastSeen(agentId: string, instanceId: string): Promise<void>;
191
182
  /**
192
- * Declare a static host. Under `operator` authority (a local `kici-admin`),
193
- * it inserts or converges the row; under `platform` authority (a dashboard
194
- * write, the default) it only creates a new, unconfirmed row. Returns
195
- * `{ created: true }` when the declare inserted the row.
183
+ * Declare a static host. `operator` authority (a local `kici-admin`) inserts
184
+ * or converges the row; `platform` authority (a dashboard write, the default)
185
+ * only creates a new, unconfirmed row. `created` is true when it inserted.
196
186
  */
197
187
  declareStatic(input: DeclareStaticInput): Promise<{
198
188
  created: boolean;
@@ -206,14 +196,13 @@ export declare class HostRosterStore {
206
196
  /**
207
197
  * An operator declare. A re-declare converges the operator-owned columns
208
198
  * (labels, hostname, reach, host_properties) and preserves the agent-reported
209
- * liveness and identity columns (connected_instance_id, last_seen, platform,
210
- * arch, lifecycle_class, token_id, reboot_pending_until). Each operator field
211
- * is preserve-on-omit, and properties shallow-merge — except on a row a
212
- * dashboard declare created: there the operator's values replace labels,
213
- * hostname and properties outright, so no Platform-chosen value survives the
214
- * confirmation, and the row becomes `operator`. An `agent` row stays `agent`.
215
- * PostgreSQL evaluates every SET expression against the existing row, so each
216
- * CASE reads the source before this statement changes it.
199
+ * ones (connected_instance_id, last_seen, platform, arch, lifecycle_class,
200
+ * token_id, reboot_pending_until). Operator fields are preserve-on-omit and
201
+ * properties shallow-merge — except on a dashboard-declared row, where the
202
+ * operator's labels, hostname and properties replace it outright (no
203
+ * Platform-chosen value survives confirmation) and the row becomes
204
+ * `operator`. An `agent` row stays `agent`. PostgreSQL evaluates every SET
205
+ * against the existing row, so each CASE reads the source before the update.
217
206
  */
218
207
  private declareAsOperator;
219
208
  /**
@@ -223,12 +212,11 @@ export declare class HostRosterStore {
223
212
  getReach(agentId: string): Promise<HostReach | null>;
224
213
  get(agentId: string): Promise<HostRosterRow | null>;
225
214
  /**
226
- * Record the self-contained agent-payload version the orchestrator staged onto
227
- * a host (bring-up or fleet re-stage). Stored in `host_properties` under a
228
- * reserved key so the convergence gate can compare it against the target
229
- * INDEPENDENTLY of the agent's own self-reported bundle version (two payloads
230
- * can carry the same self-report but different staged keys). Shallow-merged, so
231
- * it survives an agent re-register (the agent's reserved keys are stripped).
215
+ * Record the agent-payload version staged onto a host (bring-up or fleet
216
+ * re-stage), under a reserved key, so the convergence gate compares it to the
217
+ * target INDEPENDENTLY of the agent's self-reported version (two payloads can
218
+ * share a self-report but differ in staged key). Shallow-merged, so it survives
219
+ * an agent re-register (the agent's reserved keys are stripped).
232
220
  */
233
221
  recordStagedVersion(agentId: string, version: string): Promise<void>;
234
222
  /** Read a host's recorded staged agent-payload version, or null when never staged. */
@@ -238,50 +226,42 @@ export declare class HostRosterStore {
238
226
  private listConfirmed;
239
227
  /**
240
228
  * Resolve EVERY roster host matching a label predicate (OR-of-AND include
241
- * groups, minus exclude labels), tagged with its derived status. Returns
242
- * declared-but-absent static hosts (status `unreachable`) so a caller can
243
- * apply `onUnreachable` — the live registry alone cannot name an
244
- * expected-but-absent host.
229
+ * groups, minus exclude labels), with derived status. Declared-but-absent
230
+ * static hosts come back `unreachable` so a caller can apply `onUnreachable`;
231
+ * the live registry alone cannot name them.
245
232
  *
246
- * This is the INVENTORY query: it includes auto-scaler-spawned hosts, whose
247
- * `lifecycleClass` is what the SDK's `ctx.kici.inventory` exposes to tell
248
- * them apart. `runsOnAll` fan-out uses {@link findFanoutTargets} instead.
233
+ * The INVENTORY query: it includes auto-scaler hosts, told apart by the
234
+ * `lifecycleClass` `ctx.kici.inventory` exposes. `runsOnAll` fan-out uses
235
+ * {@link findFanoutTargets} instead.
249
236
  */
250
237
  findMatching(include: readonly (readonly LabelMatcher[])[], exclude: readonly LabelMatcher[], graceMs: number): Promise<MatchedHost[]>;
251
238
  /**
252
- * Resolve the `runsOnAll` fan-out target set: {@link findMatching}, minus
253
- * every auto-scaler-spawned host.
239
+ * The `runsOnAll` fan-out targets: {@link findMatching} minus every
240
+ * auto-scaler host. Fan-out targets DECLARED fleet members: a scaler agent
241
+ * has a pool's fixed shape, so a child pinned to one runs at that shape — the
242
+ * defect the dispatcher's warm-pool suitability gate removes, on the path a
243
+ * pin deliberately leaves ungated.
254
244
  *
255
- * Fan-out targets DECLARED fleet members. An auto-scaler agent is spawned to
256
- * a pool's fixed shape, so a child pinned to one runs at that shape rather
257
- * than its own — the same defect the dispatcher's warm-pool suitability gate
258
- * removes, on the path a pin deliberately leaves ungated.
259
- *
260
- * Separate from `findMatching` on purpose: `findMatching` also backs the
261
- * SDK's `inventory.query`, where a host the caller asked for must never go
262
- * missing (a selector returning FEWER hosts than no selector at all).
245
+ * Separate on purpose: `findMatching` also backs `inventory.query`, where a
246
+ * selector must never return FEWER hosts than no selector at all.
263
247
  */
264
248
  findFanoutTargets(include: readonly (readonly LabelMatcher[])[], exclude: readonly LabelMatcher[], graceMs: number): Promise<MatchedHost[]>;
265
249
  /**
266
- * Shared row loop behind {@link findMatching} and {@link findFanoutTargets}.
267
- * `excludeScalerManaged` stays private to the store — each public method
268
- * names its own semantics, so a call site cannot silently pick the wrong
269
- * population by passing a bare boolean.
250
+ * Shared row loop. `excludeScalerManaged` stays private so a call site cannot
251
+ * pick the wrong population by passing a bare boolean.
270
252
  */
271
253
  private matchRows;
272
254
  /**
273
- * Map a roster row to the canonical {@link HostInventoryEntry} — the queryable
274
- * shape returned by the `inventory.query`/`inventory.get` RPC and typed on the
275
- * SDK's `ctx.kici.inventory`. Status is derived the same way `findMatching`
276
- * derives it (live + fresh ⇒ ready; declared-but-absent static ⇒ unreachable;
277
- * ephemeral past ttl ⇒ stale).
255
+ * Map a roster row to the {@link HostInventoryEntry} the `inventory.query` /
256
+ * `inventory.get` RPC returns and `ctx.kici.inventory` types. Status derives
257
+ * as in `findMatching`.
278
258
  */
279
259
  toInventoryEntry(row: HostRosterRow, graceMs: number): HostInventoryEntry;
280
260
  /**
281
- * Query the roster as canonical {@link HostInventoryEntry} records. With a
282
- * selector, reuses `findMatching`'s label filtering (server-side, glob/regex);
283
- * property filtering is done client-side in the workflow. Omit the selector ⇒
284
- * every host. Unconfirmed rows a dashboard declare created are omitted.
261
+ * Query the roster as {@link HostInventoryEntry} records. A selector reuses
262
+ * `findMatching`'s server-side label filtering (glob/regex); property
263
+ * filtering happens client-side in the workflow. No selector ⇒ every host.
264
+ * Unconfirmed dashboard-declared rows are omitted.
285
265
  */
286
266
  queryInventory(selector: InventorySelector | undefined, graceMs: number): Promise<HostInventoryEntry[]>;
287
267
  /** Single-host inventory lookup; null when the agent is absent or unconfirmed. */
@@ -293,13 +273,11 @@ export declare class HostRosterStore {
293
273
  /** One roster host for the dashboard, or null when the agent id has no row. */
294
274
  getFleetHost(agentId: string, graceMs: number): Promise<FleetHostEntry | null>;
295
275
  /**
296
- * Count `static` (declared) hosts whose derived status is `unreachable` —
297
- * the "declared-but-absent" alarm population. Reuses the single-source
298
- * {@link deriveHostStatus} so the count never diverges from what
299
- * `kici-admin host list` shows. A not-currently-connected static host reads
300
- * `unreachable` regardless of grace (only the connected-but-stale case
301
- * depends on `graceMs`). An unconfirmed dashboard-created row never raises
302
- * the alarm.
276
+ * Count `unreachable` static hosts — the declared-but-absent alarm. Uses
277
+ * {@link deriveHostStatus} so it matches `kici-admin host list`. A
278
+ * disconnected static host is `unreachable` regardless of grace; only the
279
+ * connected-but-stale case depends on `graceMs`. An unconfirmed
280
+ * dashboard-created row never raises the alarm.
303
281
  */
304
282
  countStaticUnreachable(graceMs: number): Promise<number>;
305
283
  /**
@@ -314,9 +292,8 @@ export declare class HostRosterStore {
314
292
  /** Delete ephemeral rows whose last_seen is older than ttl. Returns count. */
315
293
  reapEphemeralPastTtl(ttlMs: number): Promise<number>;
316
294
  /**
317
- * Mark a host as about-to-reboot until `until`. Set by the `host.requestReboot`
318
- * API handler when an agent's `restartHost()` step runs. While the value is in
319
- * the future, the host's disconnect is the expected reboot and its pinned
295
+ * Set by the `host.requestReboot` handler when an agent's `restartHost()` step
296
+ * runs. Until `until`, a disconnect is the expected reboot and the pinned
320
297
  * post-restart job is held.
321
298
  */
322
299
  setRebootPending(agentId: string, until: Date): Promise<void>;
@@ -2,11 +2,9 @@
2
2
  * The single refusal wording sent to an agent whose job-scoped frame was not
3
3
  * accepted on ownership grounds.
4
4
  *
5
- * Deliberately identical whether the database decided "not owned" or could not
6
- * decide at all. A caller that could tell the two apart would hold an oracle for
7
- * job existence, upload-commit state, and orchestrator database health — so the
8
- * two cases are indistinguishable on the wire, and the distinction lives only in
9
- * the orchestrator's own logs.
5
+ * Identical whether the database decided "not owned" or could not decide:
6
+ * telling them apart would be an oracle for job existence, upload-commit state
7
+ * and database health, so the distinction lives only in the orchestrator logs.
10
8
  */
11
9
  export declare const OWNERSHIP_REFUSED = "this job is not owned by this agent";
12
10
  //# sourceMappingURL=ownership-refusal.d.ts.map
@@ -1,23 +1,14 @@
1
1
  /**
2
- * Job ownership tracker for agent message validation.
3
- *
4
2
  * Validates that agents only send messages (job.status, log.chunk, step.status,
5
- * job.heartbeat, cache.upload.request, cache.upload.complete) for jobs that were
6
- * actually dispatched to them.
7
- *
8
- * Includes:
9
- * - Ownership check via dispatcher's isJobOwnedByAgent
10
- * - Violation counting with sliding window (default: 5 violations in 60s)
11
- * - Escalation: disconnect agent after threshold violations
3
+ * job.heartbeat, cache.upload.request, cache.upload.complete) for jobs
4
+ * dispatched to them. Violations are counted in a window (default: 5 in 60s);
5
+ * reaching the threshold disconnects the agent.
12
6
  */
13
7
  /**
14
- * Verdict of the DB-backed ownership lookup.
15
- *
16
- * `unknown` is the load-bearing member: it separates "the database says this
17
- * agent does not own the job" (evidence of a misrouted or spoofed frame) from
18
- * "the lookup could not be answered" (a query failure or a timeout). Only the
19
- * former is a violation — counting an unanswerable check as evidence would let
20
- * one transient database outage disconnect every connected agent at once.
8
+ * Verdict of the DB-backed ownership lookup. `unknown` (query failure or
9
+ * timeout) is distinct from `not-owned` (evidence of a misrouted or spoofed
10
+ * frame): only `not-owned` is a violation, else one transient database outage
11
+ * would disconnect every connected agent at once.
21
12
  */
22
13
  export type OwnershipDbResult = 'owned' | 'not-owned' | 'unknown';
23
14
  /** Deadline for a single DB-backed ownership lookup before it resolves `unknown`. */
@@ -26,25 +17,19 @@ interface OwnershipTrackerOpts {
26
17
  /** Check if a job is owned by the given agent (active or in grace window). */
27
18
  isJobOwnedByAgent: (agentId: string, jobId: string) => boolean;
28
19
  /**
29
- * Optional DB-backed fallback. Returns `owned` when the orchestrator DB shows
30
- * the (agent, job) pair as held by this coord OR a sibling coord — i.e.
31
- * currently `dispatched`/`recovering` with the same `agent_id` /
32
- * `recovery_agent_id`, or already terminal. `not-owned` is a decided refusal;
33
- * `unknown` means the lookup itself could not be answered.
34
- *
35
- * When a Raft leader switch wipes the in-memory `agentJobs` Map on the
36
- * replacement coord, this fallback accepts late frames from agents that are
37
- * still draining instead of rejecting them as ownership violations.
20
+ * Optional DB-backed fallback: `owned` when the DB shows the (agent, job)
21
+ * pair held by this coord OR a sibling — `dispatched`/`recovering` with the
22
+ * same `agent_id` / `recovery_agent_id`, or already terminal. It accepts late
23
+ * frames from draining agents after a Raft leader switch wipes the in-memory
24
+ * `agentJobs` Map on the replacement coord.
38
25
  */
39
26
  isJobOwnedByAgentInDb?: (agentId: string, jobId: string) => Promise<OwnershipDbResult>;
40
27
  /**
41
28
  * Per-lookup deadline in ms, read fresh on every call so an operator can
42
- * retune it fleet-wide without a restart. The read is itself bounded by
43
- * {@link DEFAULT_OWNERSHIP_DB_CHECK_TIMEOUT_MS}, which is also the fallback
44
- * when it stalls, throws, or returns a delay `setTimeout` cannot honour.
29
+ * retune it without a restart. Bounded and defaulted as `resolveTimeoutMs`
30
+ * describes.
45
31
  */
46
32
  getTimeoutMs?: () => Promise<number>;
47
- /** Callback to disconnect an agent after escalation. */
48
33
  onDisconnect: (agentId: string, reason: string) => void;
49
34
  /** Number of violations before escalation (default: 5). */
50
35
  violationThreshold?: number;
@@ -60,75 +45,56 @@ export declare class OwnershipTracker {
60
45
  private readonly violationWindowMs;
61
46
  private readonly violations;
62
47
  /**
63
- * L1 cache of `(agentId, jobId)` pairs proven by a positive DB
64
- * fallback. Pre-empts a synchronous warn-and-reject for the very
65
- * next chunk on the same pair, since `checkOwnership` is called
66
- * once per inbound message and the local Map repopulation lags
67
- * behind. The cache is intentionally small (per-agent capped) and
68
- * is cleaned on agent disconnect via `cleanup(agentId)`.
48
+ * `(agentId, jobId)` pairs proven by a positive DB fallback, so the next
49
+ * per-message `checkOwnership` on the pair passes while the local Map
50
+ * repopulation lags. Per-agent capped; cleared by `cleanup(agentId)`.
69
51
  */
70
52
  private readonly dbAccepted;
71
53
  constructor(opts: OwnershipTrackerOpts);
72
54
  /**
73
- * Synchronous ownership check. Returns true if ownership is valid
74
- * per the in-memory dispatcher OR a previously-accepted DB fallback.
75
- *
76
- * Returns false WITHOUT recording a violation when a DB fallback is
77
- * configured: the caller is expected to invoke `validateAsync` to
78
- * confirm or reject the ownership before treating it as a real
79
- * violation. This makes the writer idempotent across HA failover —
80
- * a `log.chunk` arriving on the replacement coord doesn't get
81
- * counted as a violation just because the local Map is empty.
55
+ * True when the in-memory dispatcher OR a previously-accepted DB fallback
56
+ * shows ownership. With a DB fallback configured, returns false WITHOUT
57
+ * recording a violation: the caller must run `validateAsync` to decide, so a
58
+ * `log.chunk` on an HA replacement coord with an empty local Map is not
59
+ * counted as a violation.
82
60
  */
83
61
  checkOwnership(agentId: string, jobId: string, messageType: string): boolean;
84
62
  /**
85
- * Async fallback used by message handlers that want HA-safe
86
- * acceptance of post-failover frames. Returns true if the DB shows
87
- * the (agent, job) pair as currently or recently owned by any coord
88
- * in the cluster. On `owned`, caches the result so subsequent
89
- * same-pair frames return true synchronously via `checkOwnership`.
90
- * On `not-owned`, records a violation exactly once (no recursive
91
- * recordViolation from the synchronous call site — `checkOwnership`
92
- * skipped it when the DB fallback was configured). On `unknown` the
93
- * frame is refused without a violation: an unanswerable check is not
94
- * evidence of misbehaviour, and treating it as such would let one
95
- * database outage disconnect the whole fleet.
63
+ * HA-safe acceptance of post-failover frames: true when the DB shows the
64
+ * (agent, job) pair currently or recently owned by any coord. `owned` is
65
+ * cached so later same-pair frames pass `checkOwnership` synchronously.
66
+ * `not-owned` records the violation exactly once (`checkOwnership` skipped
67
+ * it). `unknown` refuses the frame without a violation (see
68
+ * {@link OwnershipDbResult}).
96
69
  */
97
70
  validateAsync(agentId: string, jobId: string, messageType: string): Promise<boolean>;
98
71
  /**
99
- * Run the DB-backed lookup under a deadline. A query that throws or outruns
100
- * the deadline resolves `unknown` — never `not-owned` — so a sick database
101
- * refuses frames without accusing the agent of anything.
72
+ * DB lookup under a deadline. A query that throws or outruns it resolves
73
+ * `unknown`, never `not-owned`, so a sick database never accuses the agent.
102
74
  */
103
75
  private resolveFromDb;
104
76
  /**
105
- * Resolve the deadline for one lookup, itself bounded by
106
- * {@link DEFAULT_OWNERSHIP_DB_CHECK_TIMEOUT_MS}.
107
- *
108
- * The knob is stored in the same database the deadline exists to survive, so
109
- * reading it unbounded would stall the very frame the deadline is there to
110
- * refuse — the agent would wait out its own acknowledgment deadline instead
111
- * of getting an answer. A read that stalls, throws, or yields a value
112
- * `setTimeout` cannot honour (non-finite, sub-millisecond, or past
113
- * {@link MAX_TIMER_DELAY_MS}) falls back to the compile-time default.
77
+ * The per-lookup deadline, its read bounded by
78
+ * {@link DEFAULT_OWNERSHIP_DB_CHECK_TIMEOUT_MS}: the knob lives in the same
79
+ * database the deadline exists to survive, and an unbounded read would make
80
+ * the agent wait out its own acknowledgment deadline. A read that stalls,
81
+ * throws, or yields a value `setTimeout` cannot honour (non-finite,
82
+ * sub-millisecond, or past {@link MAX_TIMER_DELAY_MS}) uses the default.
114
83
  */
115
84
  private resolveTimeoutMs;
116
85
  /**
117
- * Cache a DB-proven (agent, job) pair so the next frame on the same pair
118
- * short-circuits in `checkOwnership`. The per-agent set is capped (generously
119
- * — a typical agent runs a handful of jobs) so a misbehaving agent cannot
120
- * grow it without bound.
86
+ * The per-agent set is capped (generously — a typical agent runs a handful
87
+ * of jobs) so a misbehaving agent cannot grow it without bound.
121
88
  */
122
89
  private rememberDbAccepted;
123
90
  /**
124
- * Record a violation for an agent. If threshold is exceeded within the
125
- * violation window, triggers disconnect escalation.
91
+ * Record a violation for an agent. Reaching the threshold within the
92
+ * violation window triggers disconnect escalation.
126
93
  */
127
94
  private recordViolation;
128
95
  /**
129
- * Clean up violation tracking AND the DB-accepted cache for a
130
- * disconnected agent. Avoids cross-agent leakage when the same
131
- * agent id is later reused.
96
+ * Clears violations AND the DB-accepted cache for a disconnected agent, so a
97
+ * reused agent id inherits nothing.
132
98
  */
133
99
  cleanup(agentId: string): void;
134
100
  }