@kici-dev/orchestrator 0.17.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +137 -230
  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 +60 -60
  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 +8207 -10128
  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 +145 -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 +290 -526
  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 +62 -156
  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 +30 -46
  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 +19 -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 +49 -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 +8628 -13569
  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 +7670 -12402
  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 +9 -11
  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/job-status-forward-frame.d.ts +30 -0
  574. package/dist/ws/observer-registry.d.ts +14 -59
  575. package/dist/ws/outbound-frame-guard.d.ts +4 -0
  576. package/dist/ws/ownership-gate.d.ts +1 -1
  577. package/dist/ws/platform-client.d.ts +32 -31
  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 +45 -59
  581. package/dist/ws/test-run-log-cursor.d.ts +18 -0
  582. package/installer-image-digests.json +3 -3
  583. package/package.json +6 -5
  584. package/sbom.spdx.json +53 -53
  585. package/dist/__test-helpers__/fake-scaler-state-store.d.ts +0 -24
  586. package/dist/__test-helpers__/mock-db-query.d.ts +0 -129
  587. package/dist/__test-helpers__/mock-db.d.ts +0 -134
  588. package/dist/__test-helpers__/mock-ws.d.ts +0 -13
  589. package/dist/__test-helpers__/peer-mutual-auth.d.ts +0 -42
  590. package/dist/__test-helpers__/scratch-db.d.ts +0 -16
  591. package/dist/__test-helpers__/test-db.d.ts +0 -34
  592. package/dist/pipeline/dispatch-matched-workflow.test-helpers.d.ts +0 -121
@@ -1,15 +1,15 @@
1
1
  /**
2
2
  * WebSocket handler for incoming peer connections from other orchestrators.
3
3
  *
4
- * Accepts WS upgrade, performs ECDH key exchange, and authenticates the peer
5
- * with mutual-v2: `peer.hello` advertises the scheme, the peer proves its
6
- * credential (or, on first join, its join token) with an HMAC over the
7
- * handshake transcript, and this server answers with its own proof and
8
- * switches to the application key. A join token never arrives here: the peer
9
- * sends the token's routing segment, and the role and routing key come from
10
- * the join_tokens row. A request in the scheme earlier releases used is refused
11
- * with PEER_MUTUAL_AUTH_REQUIRED_REASON. Registers the peer in PeerRegistry and
12
- * routes messages bidirectionally. Sends periodic heartbeats to the peer.
4
+ * Performs ECDH key exchange and authenticates the peer with mutual-v2:
5
+ * `peer.hello` advertises the scheme, the peer proves its credential (or, on
6
+ * first join, its join token) with an HMAC over the handshake transcript, and
7
+ * this server answers with its own proof and switches to the application key.
8
+ * A join token never arrives here: the peer sends the token's routing segment,
9
+ * and the role and routing key come from the join_tokens row. A request in the
10
+ * scheme earlier releases used is refused with PEER_MUTUAL_AUTH_REQUIRED_REASON.
11
+ * Registers the peer in PeerRegistry, routes messages both ways, and sends
12
+ * periodic heartbeats.
13
13
  */
14
14
  import { type PeerHeartbeat, type PeerToPeerMessage, type JobReroute, type JobProgress, type JobProgressAck, type PeerScalerEvent, type PeerJobCancel, type PeerLogChunk, type PeerCacheUploadRequest, type PeerCacheUploadResponse, type PeerConfigReload, type PeerConfigReloadResponse, type PeerScalerOrphansRequest, type PeerForgetRequest, type PeerForgetResponse, type PeerScalerOrphansResponse, type PeerClusterSettingsRequest, type WorkerClusterSettings, type PeerLogsCollectRequest, type PeerLeaving, type PeerAgentTokenRevoke, type RaftVoteRequest, type RaftVoteResponse, type RaftAppendEntries, type PeerScalerReloadRequest, type PeerScalerReloadResponse } from '@kici-dev/engine';
15
15
  import { type PeerRegistry } from './peer-registry.js';
@@ -19,10 +19,7 @@ import type { PEER_REQUEST_TIMEOUT } from './peer-request-waiters.js';
19
19
  import type { ScalerFileReload } from '../scaler/file-reload.js';
20
20
  import type { PeerCredentialStore } from './peer-credentials.js';
21
21
  import { type JoinTokenManager } from './join-token.js';
22
- /**
23
- * Minimal WebSocket interface for peer connections.
24
- * Same pattern as agent/registry.ts WsLike, allowing mock testing.
25
- */
22
+ /** Minimal WebSocket surface (like agent/registry.ts WsLike), so tests can mock it. */
26
23
  export interface PeerWsLike {
27
24
  send(data: string): void;
28
25
  close(code?: number, reason?: string): void;
@@ -30,63 +27,49 @@ export interface PeerWsLike {
30
27
  readyState: number;
31
28
  }
32
29
  export interface PeerHandlerDeps {
33
- /** Join token manager for validating first-time peer tokens. */
34
30
  tokenManager: JoinTokenManager;
35
- /** Credential store for session credential CRUD. */
36
31
  credentialStore: PeerCredentialStore;
37
- /** Accepted roles for connecting peers. Default: ['coordinator', 'worker'] (accept any). */
32
+ /** Default: ['coordinator', 'worker'] (accept any). */
38
33
  acceptedRoles?: Array<'coordinator' | 'worker'>;
39
- /** This orchestrator's instance ID. */
40
34
  instanceId: string;
41
- /** Peer registry to track incoming peers. */
42
35
  peerRegistry: PeerRegistry;
43
- /** Callback to get this orchestrator's local agent inventory for heartbeats. */
36
+ /** This orchestrator's local agent inventory, sent in heartbeats. */
44
37
  getLocalInventory: () => Omit<PeerHeartbeat, 'type'>;
45
38
  /**
46
- * The Platform-pushed worker ceiling this coordinator enforces, or `null`
47
- * when none was ever received (admit worker joins freely). Read at each
48
- * worker-peer admission. Served from the persisted PlanHeadroomStore, so it
49
- * survives a Platform disconnect — the coordinator keeps enforcing the last
50
- * known ceiling rather than resetting to unlimited.
39
+ * The Platform-pushed worker ceiling, read at each worker-peer admission;
40
+ * `null` when none was ever received (admit freely). Served from the
41
+ * persisted PlanHeadroomStore, so the last known ceiling survives a Platform
42
+ * disconnect rather than resetting to unlimited.
51
43
  */
52
44
  getWorkerCeiling?: () => Promise<number | null>;
53
45
  /** Heartbeat interval in ms. Default: 30000 (30s). */
54
46
  heartbeatIntervalMs?: number;
55
47
  /** Auth timeout in ms. Default: 15000 (15s). */
56
48
  authTimeoutMs?: number;
57
- /** Callback when a job reroute request is received from peer. */
58
49
  onJobReroute: (msg: JobReroute) => Promise<void>;
59
- /** Callback when a job progress update is received from peer. */
60
50
  onJobProgress: (msg: JobProgress, fromPeerId: string, reply: (m: JobProgressAck) => void) => void;
61
- /** Callback when a scaler provisioning event is forwarded by a worker peer. */
51
+ /** A scaler provisioning event a worker peer forwarded. */
62
52
  onPeerScalerEvent?: (msg: PeerScalerEvent, fromPeerId: string) => void;
63
- /** Callback when a job cancel request is received from peer. */
64
53
  onJobCancel: (msg: PeerJobCancel) => void;
65
- /** Callback when a log chunk is received from a worker peer. */
54
+ /** A log chunk a worker peer relayed. */
66
55
  onPeerLogChunk?: (chunk: PeerLogChunk, peerId: string) => void;
67
- /** Callback when a cache upload request is received from a worker peer. */
56
+ /** A cache upload request from a worker peer. */
68
57
  onPeerCacheUploadRequest?: (req: PeerCacheUploadRequest, peerId: string) => Promise<PeerCacheUploadResponse>;
69
- /** Callback for Raft vote requests. */
70
58
  onRaftVoteRequest?: (msg: RaftVoteRequest) => RaftVoteResponse;
71
- /** Callback for Raft vote responses (forwarded to Raft module). */
59
+ /** Forwarded to the Raft module. */
72
60
  onRaftVoteResponse?: (msg: RaftVoteResponse) => void;
73
- /** Callback for Raft append entries (leader heartbeat). */
61
+ /** Leader heartbeat. */
74
62
  onRaftAppendEntries?: (msg: RaftAppendEntries) => void;
75
- /** Callback when a peer.leaving announcement is received. */
76
63
  onPeerLeaving?: (msg: PeerLeaving) => void;
77
64
  /**
78
- * Callback when a peer.agent-token.revoke announcement is received.
79
- * The local handler should call agentRegistry.disconnectByTokenId(tokenId)
80
- * to close every in-flight WS authenticated by the now-revoked token.
65
+ * Should call agentRegistry.disconnectByTokenId(tokenId) to close every
66
+ * in-flight WS authenticated by the revoked token.
81
67
  */
82
68
  onAgentTokenRevoke?: (msg: PeerAgentTokenRevoke) => void;
83
69
  /**
84
- * Callback when a config reload request is received from a peer.
85
- * Should execute a local config reload and return the result fields,
86
- * which are sent back via peer.config.reload.response.
87
- *
88
- * If undefined, incoming reload requests are answered with success=false
89
- * and an error explaining that reload is unavailable on this peer.
70
+ * Runs a local config reload; the result goes back via
71
+ * peer.config.reload.response. If undefined, requests are answered with
72
+ * success=false and an error saying reload is unavailable on this peer.
90
73
  */
91
74
  onPeerConfigReload?: (msg: PeerConfigReload) => Promise<{
92
75
  success: boolean;
@@ -96,41 +79,36 @@ export interface PeerHandlerDeps {
96
79
  fieldsChanged?: string[];
97
80
  }>;
98
81
  /**
99
- * Callback when a peer.clusterSettings.request arrives from a DB-less worker.
100
- * Resolves the worker-relevant settings snapshot (async DB read) and the
101
- * current cluster_settings version; the result is sent back via
102
- * peer.clusterSettings.response. If undefined, requests are answered with the
103
- * config-default snapshot at version 0.
82
+ * Resolves a DB-less worker's settings snapshot and the cluster_settings
83
+ * version, sent back via peer.clusterSettings.response. If undefined,
84
+ * requests are answered with the config-default snapshot at version 0.
104
85
  */
105
86
  onPeerClusterSettingsRequest?: (msg: PeerClusterSettingsRequest) => Promise<{
106
87
  version: number;
107
88
  settings: WorkerClusterSettings;
108
89
  }>;
109
90
  /**
110
- * Callback when a peer.logs.collect.request arrives from an incoming-dialed
111
- * peer. Builds this node's subtree bundle and streams it back through `send`
112
- * (peer.logs.collect.chunk frames, or a peer.logs.collect.error on failure).
113
- * If undefined, incoming collect requests are ignored.
91
+ * Builds this node's subtree bundle and streams it back through `send`
92
+ * (peer.logs.collect.chunk frames, or peer.logs.collect.error on failure).
93
+ * If undefined, collect requests are ignored.
114
94
  */
115
95
  onLogsCollectRequest?: (msg: PeerLogsCollectRequest, send: (out: PeerToPeerMessage) => boolean) => Promise<void>;
116
96
  /**
117
- * Answers a peer.scaler.orphans.request a coordinator forwarded to this node
118
- * (`kici-admin scaler orphans --target`). A request from a peer that is not
119
- * a coordinator is refused before it reaches the handler. If undefined,
120
- * requests are answered with ok=false.
97
+ * Answers a forwarded peer.scaler.orphans.request (`kici-admin scaler orphans
98
+ * --target`). A non-coordinator peer's request is refused before it reaches
99
+ * the handler. If undefined, requests are answered with ok=false.
121
100
  */
122
101
  onScalerOrphansRequest?: ScalerOrphansRequestHandler;
123
102
  /**
124
- * Reloads this node's scaler config for a peer.scaler.reload.request
125
- * (`kici-admin scaler reload`). A request from a peer that is not a
126
- * coordinator is refused before it reaches the handler. If undefined,
127
- * requests are answered `rejected`.
103
+ * Reloads this node's scaler config (`kici-admin scaler reload`). A
104
+ * non-coordinator peer's request is refused before it reaches the handler. If
105
+ * undefined, requests are answered `rejected`.
128
106
  */
129
107
  onScalerReloadRequest?: ScalerFileReload;
130
108
  /**
131
109
  * Forgets a departed peer a sibling coordinator forgot (`kici-admin peer
132
- * forget`). A request from a peer that is not a coordinator is refused. If
133
- * undefined, requests are answered with outcome `error`.
110
+ * forget`). A non-coordinator peer's request is refused. If undefined,
111
+ * requests are answered with outcome `error`.
134
112
  */
135
113
  onPeerForgetRequest?: PeerForgetRequestHandler;
136
114
  }
@@ -141,22 +119,20 @@ export declare const ADVERTISED_PEER_AUTH_SCHEMES: readonly string[];
141
119
  * a proof or a token, or names no scheme.
142
120
  */
143
121
  export declare function isLegacyPeerAuthRequest(raw: unknown): boolean;
144
- /**
145
- * Create a handler function for incoming peer WebSocket connections.
146
- *
147
- * Returns `handleConnection(ws, remoteIp?)` which should be called when a new
148
- * WebSocket connection is upgraded on the peer endpoint.
149
- */
150
122
  /**
151
123
  * Whether a joining peer may be admitted against the plan ceiling.
152
124
  *
153
125
  * Only workers are gated: a coordinator peer holds its own Platform connection
154
126
  * and is counted there, and a peer advertising no role registers as a
155
- * coordinator (see PeerRegistry.addPeer), so neither is gated here. A `null`
156
- * ceiling — none ever received — admits freely. The ceiling is ABSOLUTE, so the
157
- * join is admitted only while the currently-connected worker count is below it.
127
+ * coordinator (see PeerRegistry.addPeer). A `null` ceiling (none ever received)
128
+ * admits freely. The ceiling is ABSOLUTE: admit only while the connected worker
129
+ * count is below it.
158
130
  */
159
131
  export declare function shouldAdmitWorker(role: string | undefined, ceiling: number | null, connectedWorkerCount: number): boolean;
132
+ /**
133
+ * Returns `handleConnection(ws, remoteIp?)`, called for each WebSocket upgraded
134
+ * on the peer endpoint.
135
+ */
160
136
  export declare function createPeerHandler(deps: PeerHandlerDeps): {
161
137
  handleConnection: (ws: PeerWsLike, remoteIp?: string) => void;
162
138
  sendToPeer: (targetInstanceId: string, msg: PeerToPeerMessage) => boolean;
@@ -1,9 +1,6 @@
1
1
  /**
2
- * In-memory peer registry for tracking orchestrator peers in a cluster.
3
- *
4
- * Maintains peer state including agent inventories from heartbeats,
5
- * enabling routing decisions without real-time queries. Follows the
6
- * same label-matching semantics as agent/registry.ts for consistency.
2
+ * In-memory registry of cluster peers, including heartbeat agent inventories, so
3
+ * routing needs no real-time queries. Label matching follows agent/registry.ts.
7
4
  */
8
5
  import type { PeerAuthScheme, PeerHeartbeat, PeerCapabilities, ScalerCapacitySummary } from '@kici-dev/engine';
9
6
  /** Which side of a peer link authenticated: the peer dialled us, or we dialled it. */
@@ -24,17 +21,14 @@ export interface PeerAgentInfo {
24
21
  platform: string;
25
22
  arch: string;
26
23
  /**
27
- * Kubernetes-taint-style mandatory labels inherited from the spawning
28
- * scaler. Empty for static agents and warm-pool replenishment spawns.
29
- * Cross-peer routing applies the same gate the local label matcher does:
30
- * a connected-agent entry only matches when every mandatory label appears
31
- * in the required label set.
24
+ * Taint-style mandatory labels inherited from the spawning scaler; empty for
25
+ * static agents and warm-pool replenishment spawns. Cross-peer routing matches
26
+ * only when every one is in the required label set, like the local matcher.
32
27
  */
33
28
  mandatoryLabels: string[];
34
29
  /**
35
- * Name of the scaler backend that spawned this agent, or null for static
36
- * (stateful) agents not bound to any scaler. Surfaced in diagnostics so the
37
- * dashboard can group a peer's agents under the correct scaler row.
30
+ * The spawning scaler backend, or null for static (stateful) agents; the
31
+ * dashboard groups a peer's agents under this scaler row.
38
32
  */
39
33
  scalerName?: string | null;
40
34
  }
@@ -60,9 +54,7 @@ export interface PeerInfo {
60
54
  registryVersion: number;
61
55
  /** Cluster-settings version reported by this peer (0 = unknown/legacy). */
62
56
  clusterSettingsVersion: number;
63
- /** Cluster role of the peer. */
64
57
  role: 'coordinator' | 'worker';
65
- /** The authentication scheme of each link direction. */
66
58
  authScheme: PeerAuthSchemes;
67
59
  hostname?: string;
68
60
  osRelease?: string;
@@ -77,18 +69,15 @@ export interface PeerInfo {
77
69
  version?: string | null;
78
70
  }
79
71
  export interface PeerRegistryOptions {
80
- /** Called when a peer's configVersion is higher than the local version. */
72
+ /** Each `...VersionBehind` fires when a peer reports a higher version than local. */
81
73
  onConfigVersionBehind?: (peerVersion: number) => void;
82
- /** Called when a peer's registryVersion is higher than the local version. */
83
74
  onRegistryVersionBehind?: (peerVersion: number) => void;
84
- /** Called when a peer's clusterSettingsVersion is higher than the local version. */
85
75
  onClusterSettingsVersionBehind?: (peerVersion: number) => void;
86
- /** Called when a peer transitions to disconnected state. */
87
76
  onPeerDisconnected?: (instanceId: string) => void;
88
77
  /**
89
- * Called when the connected-peer set changes (a fresh add or a
90
- * markDisconnected), so a coordinator can re-report its `cluster.membership`
91
- * snapshot to the Platform without waiting for the periodic interval.
78
+ * Fires when the connected set changes (fresh add or markDisconnected), so a
79
+ * coordinator re-reports `cluster.membership` to the Platform before the
80
+ * periodic interval.
92
81
  */
93
82
  onMembershipChange?: () => void;
94
83
  }
@@ -103,26 +92,15 @@ export declare class PeerRegistry {
103
92
  private readonly onPeerDisconnected?;
104
93
  private readonly onMembershipChange?;
105
94
  constructor(options?: PeerRegistryOptions);
106
- /**
107
- * Update the local config version for comparison with peer heartbeats.
108
- */
109
95
  setLocalConfigVersion(version: number): void;
110
- /**
111
- * Update the local registry version for comparison with peer heartbeats.
112
- */
113
96
  setLocalRegistryVersion(version: number): void;
114
- /**
115
- * Update the local cluster-settings version for comparison with peer
116
- * heartbeats. A worker sets this after pulling a snapshot so it stops
117
- * re-firing the version-behind hook on every subsequent heartbeat.
118
- */
97
+ /** A worker sets this after pulling a snapshot, so the behind-hook stops re-firing. */
119
98
  setLocalClusterSettingsVersion(version: number): void;
120
99
  /**
121
- * Add or update a peer entry. Sets initial connected state to true.
122
- * If the peer already exists and is connected, preserves capabilities
123
- * (avoids the incoming handler resetting data set by the outgoing client).
124
- * On fresh add or disconnected peer, starts with empty capabilities —
125
- * auth response or first heartbeat will populate fresh data.
100
+ * Add or update a peer as connected. An already-connected peer keeps its
101
+ * capabilities, so the incoming handler cannot reset what the outgoing client
102
+ * set; a fresh or disconnected peer starts empty until the auth response or
103
+ * first heartbeat fills it.
126
104
  */
127
105
  addPeer(info: {
128
106
  instanceId: string;
@@ -133,37 +111,20 @@ export declare class PeerRegistry {
133
111
  }): void;
134
112
  /** Record the scheme one direction of the link authenticated with, or null when it closed. */
135
113
  setAuthScheme(instanceId: string, direction: PeerLinkDirection, scheme: PeerAuthScheme | null): void;
136
- /**
137
- * Remove a peer entirely from the registry.
138
- */
139
114
  removePeer(instanceId: string): void;
140
115
  /**
141
- * Update peer state from a heartbeat message.
142
- * Updates agent inventory, draining status, capabilities, term, leaderId,
143
- * and lastHeartbeatAt timestamp.
116
+ * Apply a heartbeat to the peer's state.
144
117
  *
145
- * A heartbeat is an ingress into the label-matching domain, so every label
146
- * it carries is folded here rather than at each comparison site. A peer
147
- * running an older build sends the case its operator typed — `Docker` — and
148
- * every consumer of `PeerInfo` compares against folded job selectors, so a
149
- * consumer that forgets to fold silently stops counting that peer's agents.
150
- * Folding on arrival means a consumer cannot forget.
118
+ * Every label is folded here, on ingress, not at each comparison site: an older
119
+ * peer build sends the operator's case (`Docker`), and a `PeerInfo` consumer that
120
+ * forgot to fold would silently stop counting that peer's agents.
151
121
  *
152
- * Identifiers are deliberately NOT folded: `agentId`, `scalerName`, and the
153
- * scaler's `name` / `type` are opaque and case-sensitive.
122
+ * Identifiers are NOT folded: `agentId`, `scalerName`, and the scaler's
123
+ * `name` / `type` are opaque and case-sensitive.
154
124
  */
155
125
  updateHeartbeat(instanceId: string, heartbeat: PeerHeartbeat): void;
156
- /**
157
- * Get a single peer by instanceId.
158
- */
159
126
  getPeer(instanceId: string): PeerInfo | undefined;
160
- /**
161
- * Get all tracked peers.
162
- */
163
127
  getAllPeers(): PeerInfo[];
164
- /**
165
- * Get only connected peers.
166
- */
167
128
  getConnectedPeers(): PeerInfo[];
168
129
  /**
169
130
  * Find peers whose agents or scaler backends match any of the given label
@@ -173,73 +134,43 @@ export declare class PeerRegistry {
173
134
  * 1. Connected agents: at least one agent's labels are a superset of a
174
135
  * required label set with activeJobs < maxConcurrency.
175
136
  * 2. Scaler capacity: at least one scaler backend has activeCount < maxAgents
176
- * AND its label sets overlap with the required label sets (same
177
- * intersection semantics as agent matching).
137
+ * AND one of its label sets is a superset of a required label set and
138
+ * passes that set's mandatory-label gate (the same subset-plus-gate check
139
+ * as agent matching).
178
140
  *
179
141
  * Excludes draining peers and disconnected peers.
180
- *
181
- * @param labelSets - Array of label sets. A peer matches if ANY of its
182
- * agents or scaler backends match ANY of the label sets with capacity.
183
142
  */
184
143
  findPeersWithCapacity(labelSets: string[][]): PeerInfo[];
185
144
  /**
186
- * Find peers whose agents or scaler backends match any of the given label sets,
187
- * regardless of current capacity. Used to differentiate "no peer handles this label"
188
- * from "peers exist but are at capacity".
189
- *
190
- * Excludes disconnected and draining peers.
145
+ * Like {@link findPeersWithCapacity} without the capacity filter, to tell "no
146
+ * peer handles this label" from "peers exist but are at capacity".
191
147
  */
192
148
  findPeersWithLabels(labelSets: string[][]): PeerInfo[];
193
149
  /**
194
- * Mark a peer as disconnected and immediately evict its capabilities.
195
- * No grace period — disconnected peers have no usable agents or scaler capacity.
150
+ * Evict capabilities immediately, with no grace period: a disconnected peer has
151
+ * no usable agents or scaler capacity.
196
152
  */
197
153
  markDisconnected(instanceId: string): void;
198
- /**
199
- * Mark a peer as connected.
200
- */
201
154
  markConnected(instanceId: string): void;
202
- /**
203
- * Check if a peer's last heartbeat is older than the given threshold.
204
- */
155
+ /** An unknown peer counts as stale. */
205
156
  isStale(instanceId: string, thresholdMs: number): boolean;
206
- /**
207
- * Total number of tracked peers (connected + disconnected).
208
- */
157
+ /** Connected and disconnected. */
209
158
  getPeerCount(): number;
210
- /**
211
- * Number of currently connected peers.
212
- */
213
159
  getConnectedPeerCount(): number;
214
- /**
215
- * Get count of connected coordinator (non-worker) peers.
216
- * Used for Raft quorum calculations — workers don't participate in elections.
217
- */
160
+ /** For Raft quorum: workers do not take part in elections. */
218
161
  getConnectedCoordinatorPeerCount(): number;
219
162
  /**
220
- * Evict stale peers whose last heartbeat exceeds the timeout.
221
- * Marks them as disconnected and clears their capabilities.
222
- * Returns the list of evicted peer instanceIds.
223
- *
224
- * called on a timer by the coordinator
225
- * (2 missed heartbeats at 30s interval = 60s default timeout).
163
+ * Mark peers past the heartbeat timeout disconnected; returns their ids. The
164
+ * coordinator calls it on a timer (2 missed heartbeats at 30s = 60s default).
226
165
  */
227
166
  evictStalePeers(staleTimeoutMs: number): string[];
228
- /**
229
- * Get all peers with role=worker.
230
- */
231
167
  getWorkerPeers(): PeerInfo[];
232
168
  /**
233
- * Currently-connected worker peers.
234
- *
235
- * A peer that advertises no role registers as a coordinator (see `addPeer`),
236
- * so a worker predating the role field is not counted here. That under-counts,
237
- * which errs permissive, and it self-heals as workers upgrade.
169
+ * A peer advertising no role registers as a coordinator (`addPeer`), so a worker
170
+ * predating the role field is not counted: under-counting errs permissive and
171
+ * self-heals as workers upgrade.
238
172
  */
239
173
  getConnectedWorkerPeers(): PeerInfo[];
240
- /**
241
- * Get all peers with role=coordinator.
242
- */
243
174
  getCoordinatorPeers(): PeerInfo[];
244
175
  }
245
176
  //# sourceMappingURL=peer-registry.d.ts.map
@@ -10,12 +10,10 @@ export interface StoredPlanHeadroom {
10
10
  updatedAt: Date;
11
11
  }
12
12
  /**
13
- * The orchestrator's cache of the Platform-owned worker ceiling.
14
- *
15
- * Persisted so a coordinator restarting during a Platform outage keeps
16
- * enforcing the last known ceiling instead of resetting to unlimited. Same
17
- * ownership shape as `org_trust_policy`: the Platform writes it, the
18
- * orchestrator only reads it back.
13
+ * Persisted cache of the Platform-owned worker ceiling, so a coordinator
14
+ * restarting during a Platform outage keeps the last known ceiling instead of
15
+ * unlimited. Like `org_trust_policy`, the Platform writes it and the orchestrator
16
+ * only reads it back.
19
17
  */
20
18
  export declare class PlanHeadroomStore {
21
19
  private readonly db;
@@ -1,9 +1,8 @@
1
1
  /**
2
2
  * Postgres-backed Raft state persistence.
3
3
  *
4
- * Stores the minimal Raft persistent state (currentTerm, votedFor, leaderId)
5
- * in the raft_state table. One row per cluster (default cluster_id = 'default').
6
- * State is loaded on node startup and saved on term/vote/leader transitions.
4
+ * One raft_state row per cluster (default cluster_id = 'default'), loaded on
5
+ * node startup and saved on term/vote/leader transitions.
7
6
  */
8
7
  import type { Kysely } from 'kysely';
9
8
  import type { Database } from '../db/types.js';
@@ -19,14 +18,8 @@ export declare class RaftStateStore {
19
18
  db: Kysely<Database>;
20
19
  clusterId?: string;
21
20
  });
22
- /**
23
- * Load persisted Raft state from the DB.
24
- * Returns defaults (term=0, votedFor=null, leaderId=null) if no row exists.
25
- */
21
+ /** Returns term=0, votedFor=null, leaderId=null when no row exists. */
26
22
  load(): Promise<RaftPersistentState>;
27
- /**
28
- * Upsert full Raft state into the DB.
29
- */
30
23
  save(state: RaftPersistentState): Promise<void>;
31
24
  /**
32
25
  * Upsert full Raft state unless the stored term is newer. A coordinator that
@@ -34,9 +27,7 @@ export declare class RaftStateStore {
34
27
  * coordinators may already have elected a leader in a newer term.
35
28
  */
36
29
  saveUnlessNewerTerm(state: RaftPersistentState): Promise<void>;
37
- /**
38
- * Update just the leader and term fields (lightweight update for heartbeat acceptance).
39
- */
30
+ /** Lightweight leader + term update on heartbeat acceptance. */
40
31
  updateLeader(leaderId: string, term: number): Promise<void>;
41
32
  }
42
33
  //# sourceMappingURL=raft-state.d.ts.map
@@ -32,7 +32,7 @@ interface RaftNodeDeps {
32
32
  electionTimeoutMinMs?: number;
33
33
  electionTimeoutMaxMs?: number;
34
34
  leaderHeartbeatMs?: number;
35
- /** Grace period in ms before dormant-mode self-election. Default: 0 (no grace period). */
35
+ /** Grace period in ms before dormant-mode self-election. Default: 0. */
36
36
  gracePeriodMs?: number;
37
37
  }
38
38
  export declare class RaftNode {
@@ -60,94 +60,59 @@ export declare class RaftNode {
60
60
  private stopped;
61
61
  private electionTimer;
62
62
  private leaderHeartbeatTimer;
63
- /** Votes received during the current election as candidate. */
64
63
  private votesReceived;
65
64
  /**
66
- * Consecutive elections where no peer responded with a vote.
67
- * When this exceeds the threshold, the node force-self-elects as a safety
68
- * valve against delayed WebSocket close detection (peer appears "connected"
69
- * but is actually dead).
65
+ * Consecutive elections no peer answered. Past the threshold the node
66
+ * force-self-elects: a safety valve against delayed WebSocket close detection
67
+ * (a dead peer still appears connected).
70
68
  */
71
69
  private consecutiveUnansweredElections;
72
70
  constructor(deps: RaftNodeDeps);
73
- /**
74
- * Start the Raft node. Loads persisted state from DB and starts
75
- * as follower with election timer.
76
- */
71
+ /** Loads persisted state and starts as a follower with an election timer. */
77
72
  start(): Promise<void>;
78
73
  /**
79
- * Stop the Raft node. Clears its timers, ends its leadership (so the
80
- * leader-only services stop with it), and persists its state. Every election
81
- * input after this is ignored until the next {@link start}. A second call does
82
- * nothing.
74
+ * Clears the timers, ends leadership (so the leader-only services stop with
75
+ * it), and persists state. Every election input after this is ignored until
76
+ * the next {@link start}. A second call does nothing.
83
77
  */
84
78
  stop(): Promise<void>;
85
- /** Whether this node is the current leader. */
86
79
  isLeader(): boolean;
87
- /** Get the current known leader's instance ID. */
88
80
  getLeaderId(): string | null;
89
- /** Get the current Raft term. */
90
81
  getCurrentTerm(): number;
91
- /** Get the current role (for testing/diagnostics). */
82
+ /** For testing and diagnostics. */
92
83
  getRole(): RaftRole;
93
84
  /**
94
- * Handle a peer.leaving announcement from a gracefully shutting down peer.
95
- * If the leaving peer is the current leader, immediately clear leaderId and
96
- * start a new election. Otherwise, no election action (peer registry update
97
- * is done by the caller before calling this method).
85
+ * Handle a peer.leaving announcement. If the leaving peer is the leader, clear
86
+ * leaderId and start a new election at once; otherwise do nothing (the caller
87
+ * updates the peer registry first).
98
88
  */
99
89
  handlePeerLeaving(instanceId: string): void;
100
- /**
101
- * Reset the election timer with a randomized timeout.
102
- * On expiry, starts an election.
103
- */
90
+ /** Restart the election timer with a randomized timeout. */
104
91
  resetElectionTimer(): void;
105
92
  private clearElectionTimer;
106
93
  /**
107
94
  * Notify Raft that a peer disconnected. If this node is a follower or
108
95
  * candidate, reset the election timer to a short value so Raft quickly
109
96
  * re-evaluates whether it should self-elect (dormant mode).
110
- * Without this, the node waits for the full election timeout (3-5s)
97
+ * Without this, the node waits for the full election timeout (5-10s by default)
111
98
  * before discovering all peers are gone.
112
99
  */
113
100
  onPeerDisconnected(): void;
114
101
  /**
115
- * Start a new election. Increment term, vote for self, request votes
116
- * from peers. If no peers are connected, self-elect immediately
117
- * (dormant mode for single-orchestrator deployments).
102
+ * Increment the term, vote for self and request votes. With no peers
103
+ * connected, self-elect at once (dormant mode).
118
104
  */
119
105
  private startElection;
120
- /**
121
- * Handle an incoming vote request from another candidate.
122
- */
123
106
  handleVoteRequest(msg: RaftVoteRequest): RaftVoteResponse;
124
- /**
125
- * Handle a vote response from a peer.
126
- */
127
107
  handleVoteResponse(msg: RaftVoteResponse): void;
128
- /**
129
- * Check if we have a majority of votes to become leader.
130
- * Cluster size = connected peers + self.
131
- */
108
+ /** Cluster size = connected coordinator peers + self. */
132
109
  private checkMajority;
133
- /**
134
- * Transition to leader role. Start heartbeat timer, persist state,
135
- * call onBecomeLeader callback.
136
- */
137
110
  private becomeLeader;
138
- /**
139
- * Step down from leader/candidate to follower.
140
- */
141
111
  private stepDown;
142
- /**
143
- * Start sending periodic leader heartbeats (raft.append.entries).
144
- */
112
+ /** Periodic leader heartbeats (raft.append.entries). */
145
113
  private startLeaderHeartbeat;
146
114
  private sendHeartbeat;
147
115
  private clearLeaderHeartbeat;
148
- /**
149
- * Handle an incoming append entries (heartbeat) from a leader.
150
- */
151
116
  handleAppendEntries(msg: RaftAppendEntries): void;
152
117
  }
153
118
  export {};