@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
@@ -3,11 +3,10 @@
3
3
  *
4
4
  * An agent container or Firecracker VM sends its packets to one of the host's
5
5
  * addresses — a bridge gateway, the host's LAN address — and those are
6
- * delivered on the netfilter input hook. The `forward` rules the backends
7
- * already write never see them, so until the `input` chain existed a sandbox
8
- * reached every port on the host. These helpers resolve the narrow set it
9
- * actually needs, expressed in the same `hostAccess` vocabulary an operator
10
- * writes in `scalers.yaml`.
6
+ * delivered on the netfilter input hook, which the backends' `forward` rules
7
+ * never see: without an `input` chain a sandbox reaches every port on the host.
8
+ * These helpers resolve the narrow set it needs, in the `hostAccess`
9
+ * vocabulary an operator writes in `scalers.yaml`.
11
10
  */
12
11
  import type { NetworkPolicy } from '@kici-dev/shared/net';
13
12
  import type { AppConfig } from '../config.js';
@@ -20,13 +19,11 @@ import type { AppConfig } from '../config.js';
20
19
  * orchestrator-port-only default would cut off every deployment running its own
21
20
  * object store beside the orchestrator.
22
21
  *
23
- * Two shapes are recognised, and nothing else:
22
+ * Only two shapes are recognised:
24
23
  *
25
- * - **An IP literal.** The entry is scoped to that exact address and port, the
26
- * narrowest rule that can work.
24
+ * - **An IP literal.** The entry is scoped to that exact address and port.
27
25
  * - **A name with an explicit port.** No address rule can be built for a name
28
- * that may move, so the entry names the port on any host address. It is
29
- * still one port rather than the whole host.
26
+ * that may move, so the entry names the port on any host address.
30
27
  *
31
28
  * A name with no port is a public endpoint (`https://…`), which the agent
32
29
  * reaches through the host over the `forward` hook and which no input rule
@@ -1,9 +1,6 @@
1
1
  /**
2
- * Agent auto-scaler module.
3
- *
4
- * Provides pluggable backend-agnostic agent provisioning for the orchestrator.
5
- * Supports Docker, bare-metal, and Firecracker backends with YAML configuration,
6
- * label-set matching, and warm pool management.
2
+ * Agent auto-scaler: pluggable Docker, bare-metal and Firecracker backends with
3
+ * YAML configuration, label-set matching and warm pool management.
7
4
  */
8
5
  export type { ResourceLimits, LabelSetConfig, ManagedAgent, ScaleResult, ValidationResult, ScalerBackend, ScalerConfig, ScalerEntry, ScalerEvent, ScalerRedispatchTrigger, WarmPoolConfig, FirecrackerNetworkConfig, } from './types.js';
9
6
  export { loadScalerConfig, scalerFileSchema, firecrackerNetworkSchema, parseMemoryString, } from './config.js';
@@ -14,7 +11,7 @@ export { BareMetalScalerBackend } from './bare-metal-backend.js';
14
11
  export type { BareMetalScalerBackendOptions } from './bare-metal-backend.js';
15
12
  export { FirecrackerScalerBackend } from './firecracker-backend.js';
16
13
  export type { FirecrackerScalerBackendOptions, FirecrackerManagedAgent, } from './firecracker-backend.js';
17
- export { createScalerBackend, requiredToolsFor } from './backend-factory.js';
14
+ export { createScalerBackend } from './backend-factory.js';
18
15
  export type { BackendFactoryContext, IpAllocatorParams } from './backend-factory.js';
19
16
  export { resolveAgentHostAccess, storageHostAccessEntries } from './host-access.js';
20
17
  export { EventScalerBackend } from './event-backend.js';
@@ -1,96 +1,63 @@
1
1
  /**
2
2
  * CIDR IP allocator for Firecracker VM networking.
3
3
  *
4
- * Two implementations behind a shared interface:
4
+ * - `DbIpAllocator` persists to PostgreSQL (coordinators), so a long-lived VM
5
+ * keeps its IP across coordinator restarts.
6
+ * - `InMemoryIpAllocator` has no persistence (worker peers, no cluster DB). A
7
+ * worker restart starts it empty, and the backend's `cleanupOrphans()`
8
+ * Pass-2/Pass-3 walk of jailer chroots and host TAPs (on every spawn and in
9
+ * the leak sweep) reaps the leftovers, so the allocator holds no recovery state.
5
10
  *
6
- * - `DbIpAllocator` — persists allocations to PostgreSQL. Used by
7
- * coordinators where the cluster Postgres is reachable. Allocations
8
- * survive orchestrator restarts so a long-lived VM keeps its IP across
9
- * coord bounces.
10
- *
11
- * - `InMemoryIpAllocator` — Map-backed, no persistence. Used by worker
12
- * peers where the cluster DB is not reachable. The firecracker backend's
13
- * existing `cleanupOrphans()` Pass-2/Pass-3 walks the jailer chroot
14
- * tree + host TAP devices on every spawn and during the leak sweep, so
15
- * any worker-orch restart starts the allocator empty and the next
16
- * cleanup pass reaps the leftover chroots and TAPs naturally — no
17
- * recovery state needs to live in the allocator itself.
18
- *
19
- * Each orch has its own bridge with its own subnet (coord A: `kici`,
20
- * coord B: `kici_b`, Pi worker: `kici-br0`), so allocator state is
21
- * per-orch by design. No two orchs share an IP space.
11
+ * Each orch has its own bridge and subnet (coord A: `kici`, coord B: `kici_b`,
12
+ * Pi worker: `kici-br0`), so allocator state is per-orch; no two orchs share
13
+ * an IP space.
22
14
  */
23
15
  import type { Kysely } from 'kysely';
24
16
  import type { Database } from '../db/types.js';
25
- /**
26
- * Result of a successful IP allocation.
27
- */
28
17
  export interface IpAllocationResult {
29
- /** Allocated IP address */
30
18
  ip: string;
31
- /** Gateway IP for guest networking */
32
19
  gateway: string;
33
- /** Subnet mask for guest networking */
34
20
  netmask: string;
35
- /** Deterministic MAC address derived from IP */
21
+ /** Deterministic, derived from the IP. */
36
22
  mac: string;
37
- /** TAP device name on the host */
23
+ /** TAP device name on the host. */
38
24
  tapDevice: string;
39
25
  }
40
- /**
41
- * Parsed CIDR range.
42
- */
26
+ /** IPv4 addresses are 32-bit unsigned numbers. */
43
27
  export interface CidrRange {
44
- /** Network address as a 32-bit number */
45
28
  networkAddress: number;
46
- /** Prefix length (e.g. 24 for /24) */
47
29
  prefixLength: number;
48
- /** First usable IP (network address + 1) as a 32-bit number */
30
+ /** First usable IP (network address + 1). */
49
31
  startIp: number;
50
- /** Last usable IP (broadcast - 1) as a 32-bit number */
32
+ /** Last usable IP (broadcast - 1). */
51
33
  endIp: number;
52
34
  }
53
- /**
54
- * Parse an IPv4 address string to a 32-bit unsigned integer.
55
- */
35
+ /** Parse an IPv4 address string to a 32-bit unsigned integer. */
56
36
  export declare function ipToNumber(ip: string): number;
57
- /**
58
- * Convert a 32-bit unsigned integer back to an IPv4 address string.
59
- */
60
37
  export declare function numberToIp(n: number): string;
61
38
  /**
62
- * Parse a CIDR notation string into a CidrRange.
63
- *
64
39
  * @example parseCidr('10.0.0.0/24')
65
40
  * // => { networkAddress: 167772160, prefixLength: 24, startIp: 167772161, endIp: 167772414 }
66
41
  */
67
42
  export declare function parseCidr(cidr: string): CidrRange;
68
43
  /**
69
- * Generate a deterministic MAC address from an IP address.
70
- *
71
- * Uses the locally-administered unicast prefix 06:00:AC followed by
72
- * the last 3 octets of the IP address encoded as hex.
44
+ * Deterministic MAC: the locally-administered unicast prefix 06:00:AC, then the
45
+ * last 3 octets of the IP as hex.
73
46
  *
74
47
  * @example generateMac('10.0.0.5') // => '06:00:AC:00:00:05'
75
48
  * @example generateMac('10.0.1.42') // => '06:00:AC:00:01:2A'
76
49
  */
77
50
  export declare function generateMac(ip: string): string;
78
51
  /**
79
- * Generate a TAP device name from a VM ID.
80
- * Linux interface names are limited to 15 characters (IFNAMSIZ).
81
- * Format: kici-XXXXXXXX (5 + 8 = 13 chars, well within limit).
52
+ * `kici-XXXXXXXX` (13 chars): Linux interface names are limited to 15 (IFNAMSIZ).
82
53
  *
83
- * Uses the LAST 8 characters of the vmId to avoid collisions.
84
- * VM IDs have format "scaler-firecracker-XXXXXXXX" where the unique
85
- * random suffix is at the end. Using slice(0, 8) would always produce
86
- * "scaler-f" for all Firecracker VMs.
54
+ * Uses the LAST 8 chars of the vmId: VM IDs are "scaler-firecracker-XXXXXXXX"
55
+ * with the random suffix at the end, so slice(0, 8) would always be "scaler-f".
87
56
  */
88
57
  export declare function generateTapName(vmId: string): string;
89
58
  /**
90
- * Shape of one row returned by `IpAllocator.getAllocations()` /
91
- * `getAllocationForVm()`. Matches the `ip_allocations` table columns so
92
- * the firecracker-backend's `cleanupOrphans()` can read both impls
93
- * uniformly.
59
+ * Matches the `ip_allocations` table columns so the firecracker-backend's
60
+ * `cleanupOrphans()` reads both impls uniformly.
94
61
  */
95
62
  export interface IpAllocationRecord {
96
63
  ip: string;
@@ -100,12 +67,8 @@ export interface IpAllocationRecord {
100
67
  mac_address: string;
101
68
  }
102
69
  /**
103
- * Per-orch CIDR IP allocator interface.
104
- *
105
- * Two implementations: `DbIpAllocator` (Postgres, coordinator) and
106
- * `InMemoryIpAllocator` (Map-backed, worker). The firecracker-backend
107
- * depends only on this interface — never on the concrete class — so a
108
- * single backend implementation works in both deploy modes.
70
+ * The firecracker-backend depends only on this interface, never on a concrete
71
+ * class, so one backend implementation works in both deploy modes.
109
72
  */
110
73
  export interface IpAllocator {
111
74
  allocate(vmId: string, scalerName: string): Promise<IpAllocationResult>;
@@ -114,14 +77,7 @@ export interface IpAllocator {
114
77
  getAllocations(): Promise<IpAllocationRecord[]>;
115
78
  getAllocationForVm(vmId: string): Promise<IpAllocationRecord | null>;
116
79
  }
117
- /**
118
- * DB-backed CIDR IP allocator.
119
- *
120
- * Allocates IPs from a configurable range, skipping the gateway.
121
- * All allocations are persisted in PostgreSQL — used by coordinators
122
- * where the cluster DB is reachable. Allocations survive orch restarts
123
- * so a long-lived VM keeps its IP across coord bounces.
124
- */
80
+ /** Coordinator allocator; allocations persist in PostgreSQL across restarts. */
125
81
  export declare class DbIpAllocator implements IpAllocator {
126
82
  private readonly db;
127
83
  private readonly range;
@@ -141,20 +97,12 @@ export declare class DbIpAllocator implements IpAllocator {
141
97
  getAllocationForVm(vmId: string): Promise<IpAllocationRecord | null>;
142
98
  }
143
99
  /**
144
- * In-memory CIDR IP allocator.
145
- *
146
- * Used by worker peers where the cluster Postgres is not reachable. State
147
- * lives in a `Map<vmId, IpAllocationRecord>` for the lifetime of the
148
- * orch process; on restart the allocator starts empty and the
149
- * firecracker-backend's existing `cleanupOrphans()` Pass-2/Pass-3 walks
150
- * the jailer chroot tree + host TAP devices (matching `VM_TAP_PATTERN`)
151
- * to reap any leftover state. No persistence and no chroot recovery
152
- * inside the allocator — the filesystem is the source of truth, and the
153
- * cleanup pass already consults it.
100
+ * Worker allocator, process-lifetime state only. After a restart,
101
+ * `cleanupOrphans()` reaps leftover chroots and TAPs (matching
102
+ * `VM_TAP_PATTERN`): the filesystem is the source of truth.
154
103
  *
155
- * Each orch has its own bridge with its own subnet, so per-process
156
- * state is by design. No locking needed: every method is synchronous on
157
- * the in-memory Map and only awaits to satisfy the async interface.
104
+ * No locking needed: every method is synchronous on the Map and only awaits
105
+ * to satisfy the async interface.
158
106
  */
159
107
  export declare class InMemoryIpAllocator implements IpAllocator {
160
108
  private readonly range;
@@ -1,19 +1,10 @@
1
1
  /**
2
- * Label-set matching and overlap detection for the scaler module.
3
- *
4
- * Label sets are normalized (sorted, deduplicated, lowercased) for
5
- * deterministic comparison.
6
- *
7
- * findBackendForLabels uses subset matching: a job requiring ['macos']
8
- * matches a scaler with ['macos', 'darwin', 'bare-metal']. This is
9
- * consistent with peer routing (findPeersWithCapacity) and allows
10
- * workflows to target broad labels like 'macos' without listing every
11
- * label the scaler defines.
2
+ * Scaler label-set matching and overlap detection. Subset matching lets a
3
+ * workflow target a broad label like 'macos' without listing every label the
4
+ * scaler defines.
12
5
  */
13
6
  /**
14
- * Normalize a label set for comparison.
15
- * Sorts alphabetically, deduplicates, and lowercases all labels.
16
- * Produces a deterministic string key for comparison.
7
+ * A label set as a deterministic comparison key: lowercased, deduplicated, sorted.
17
8
  *
18
9
  * @example
19
10
  * normalizeLabelSet(['Docker', 'linux', 'linux']) // => "docker,linux"
@@ -21,18 +12,13 @@
21
12
  */
22
13
  export declare function normalizeLabelSet(labels: string[]): string;
23
14
  /**
24
- * Check if two label sets are exactly equal after normalization.
25
- * Subsets do NOT match -- ["linux"] does not match ["linux", "docker"].
15
+ * Exact equality after normalization; a subset does NOT match.
26
16
  */
27
17
  export declare function labelSetsMatch(a: string[], b: string[]): boolean;
28
18
  /**
29
- * Detect overlapping label sets across different scalers.
30
- * Returns all pairs of scalers that share the same normalized label set.
31
- *
32
- * Intra-scaler duplicates are allowed (same scaler, duplicate label sets).
33
- * Only cross-scaler overlaps are flagged.
34
- *
35
- * Used at startup to reject configs with ambiguous routing.
19
+ * Every pair of scalers sharing a normalized label set. A duplicate within one
20
+ * scaler is allowed. Startup rejects a config with an overlap: its routing is
21
+ * ambiguous.
36
22
  */
37
23
  export declare function detectLabelSetOverlaps(scalers: Array<{
38
24
  name: string;
@@ -45,20 +31,13 @@ export declare function detectLabelSetOverlaps(scalers: Array<{
45
31
  scaler2: string;
46
32
  }>;
47
33
  /**
48
- * Find which scaler backend handles a given set of labels.
49
- * Returns the scaler name and label-set index, or null if no match.
50
- *
51
- * Uses subset matching: job labels must be a subset of the scaler's label set.
52
- * ['macos'] matches ['macos', 'darwin', 'bare-metal']. This is consistent
53
- * with peer routing (findPeersWithCapacity) which uses the same semantics.
54
- *
55
- * In addition, every label in the gate for the matched label set must be
56
- * present in the job's `runsOn`. This is the Kubernetes-taint-style opt-in
57
- * gate: a label set gated on `['gpu']` only accepts jobs that explicitly
58
- * include `gpu` in `runsOn`.
34
+ * The scaler and label-set index that handle a job's labels, or null.
59
35
  *
60
- * When multiple backends match, the one with the smallest label set wins
61
- * (most specific match).
36
+ * Subset matching: ['macos'] matches ['macos', 'darwin', 'bare-metal'], the same
37
+ * semantics as peer routing (findPeersWithCapacity). Every label in the
38
+ * matched set's gate must also be in `runsOn` (a Kubernetes-taint-style
39
+ * opt-in: a set gated on `['gpu']` accepts only jobs naming `gpu`). Among
40
+ * several matches the smallest label set wins.
62
41
  */
63
42
  export declare function findBackendForLabels(labels: string[], scalers: Array<{
64
43
  name: string;
@@ -1,10 +1,7 @@
1
1
  /**
2
- * Agent log forwarding: enriches agent log lines with metadata and writes
3
- * them to a writable stream (typically orchestrator stdout for ELK ingestion).
4
- *
5
- * Handles both JSON and non-JSON log lines:
6
- * - JSON lines are parsed, enriched with agent/context metadata, and re-serialized.
7
- * - Non-JSON lines are wrapped as info-level JSON objects.
2
+ * Agent log forwarding: enriches agent log lines with metadata and writes them
3
+ * to a stream (typically orchestrator stdout for ELK ingestion). A non-JSON
4
+ * line, or JSON that is not an object, is wrapped as an info-level object.
8
5
  *
9
6
  * The `service` field identifies the originating tier for forwarded logs that flow
10
7
  * through orchestrator stdout (where `kici.service` from container name would say
@@ -12,27 +9,18 @@
12
9
  * purpose of identifying forwarded log origin for scaler-managed agents only.
13
10
  */
14
11
  import type { LogCapture } from './types.js';
15
- /** Context fields merged into each forwarded log line. */
16
12
  interface ForwardContext {
17
13
  runId?: string;
18
14
  requestId?: string;
19
15
  jobId?: string;
20
16
  }
21
17
  /**
22
- * Enrich and forward a single log line to an output stream.
23
- *
24
- * Standalone function for use in the WS agent.log path (agent-handler).
18
+ * Enrich and forward one log line; also used by the WS agent.log path (agent-handler).
25
19
  *
26
- * @param line - Raw log line from the agent
27
- * @param agentId - The agent that produced the line
28
- * @param output - Writable stream to write enriched JSON to
29
- * @param context - Optional trace context fields
30
- * @param logsSource - Optional log source identifier (e.g. 'docker', 'podman', 'bare-metal', 'firecracker-serial')
20
+ * @param logsSource - e.g. 'docker', 'podman', 'bare-metal', 'firecracker-serial'
31
21
  */
32
22
  export declare function forwardLine(line: string, agentId: string, output: NodeJS.WritableStream, context?: ForwardContext, logsSource?: string): void;
33
23
  /**
34
- * Consumes a LogCapture stream and forwards enriched log lines to an output stream.
35
- *
36
24
  * Used by scaler backends (container, bare-metal, Firecracker) to forward
37
25
  * agent stdout/stderr to orchestrator stdout for ELK ingestion.
38
26
  */
@@ -40,14 +28,7 @@ export declare class AgentLogForwarder {
40
28
  private readonly agentId;
41
29
  private readonly output;
42
30
  constructor(agentId: string, output?: NodeJS.WritableStream);
43
- /**
44
- * Forward all lines from a LogCapture to the output stream.
45
- * Resolves when the capture's async iterable ends.
46
- *
47
- * @param capture - LogCapture to consume
48
- * @param context - Optional trace context fields
49
- * @param logsSource - Optional log source identifier (e.g. 'docker', 'podman', 'bare-metal')
50
- */
31
+ /** Resolves when the capture's async iterable ends. */
51
32
  forward(capture: LogCapture, context?: ForwardContext, logsSource?: string): Promise<void>;
52
33
  }
53
34
  export {};
@@ -1,35 +1,28 @@
1
1
  /**
2
2
  * File-backed, cross-process resource ledger for named machine pools.
3
3
  *
4
- * Multiple orchestrators on the same host that reference the same `machinePool`
5
- * name share a JSON file under `KICI_MACHINE_LEDGER_DIR ?? /var/lib/kici/scaler-ledger`.
6
- * Each scaler reservation appends a row; releases delete the matching row;
7
- * and a periodic reaper prunes rows whose `(pid, bootId)` no longer exists.
4
+ * Orchestrators on one host that name the same `machinePool` share a JSON file
5
+ * under `KICI_MACHINE_LEDGER_DIR ?? /var/lib/kici/scaler-ledger`. A reservation
6
+ * appends a row, a release deletes it, and a periodic reaper prunes rows whose
7
+ * `(pid, bootId)` no longer exists.
8
8
  *
9
9
  * ## Concurrency
10
10
  *
11
- * Every read-modify-write goes through `withLock(poolName, fn)`, which uses
12
- * an atomic POSIX `mkdir` on a sibling lockdir as the cross-process mutex.
13
- * `mkdir` succeeds for exactly one caller when the directory does not exist,
14
- * so it works as a portable `flock` substitute without any native dependency.
15
- *
16
- * Neither `proper-lockfile` nor `fs-ext` is a dependency, so this uses the
17
- * `mkdir` lock instead. This avoids adding a native binding for the sake of
18
- * a single locking primitive.
11
+ * Every read-modify-write runs under `withLock`: an atomic POSIX `mkdir` on a
12
+ * sibling lockdir succeeds for exactly one caller, a portable `flock`
13
+ * substitute. `proper-lockfile` / `fs-ext` are rejected to avoid a native
14
+ * binding for one primitive.
19
15
  *
20
16
  * ## Crash safety
21
17
  *
22
- * Reservations carry `{ pid, bootId, instanceId, agentId, cpus, memBytes }`.
23
- * `bootId` is read once at orchestrator startup from
24
- * `/proc/sys/kernel/random/boot_id`; combined with `pid`, it lets the reaper
25
- * detect "this PID is dead AND was on a previous boot" reliably:
18
+ * `bootId` is read once at startup from `/proc/sys/kernel/random/boot_id`; with
19
+ * `pid` it lets the reaper tell a dead process:
26
20
  *
27
21
  * - Same boot: `process.kill(pid, 0)` answers liveness.
28
22
  * - Different boot: any pre-reboot row is unconditionally stale.
29
23
  *
30
- * If an orchestrator dies without releasing, the next reservation request
31
- * from any orchestrator on the host calls `reapStale()` first, so there's
32
- * no leak window beyond the next spawn attempt.
24
+ * Each reservation reaps first, so a crashed orchestrator's rows leak no longer
25
+ * than the next spawn attempt.
33
26
  */
34
27
  import type { ResourceCap } from './types.js';
35
28
  /** Wire format for the per-pool ledger JSON file. */
@@ -38,103 +31,70 @@ export interface LedgerFile {
38
31
  cap: ResourceCap;
39
32
  reservations: ReservationRow[];
40
33
  }
41
- /** A single reservation row in the ledger. */
42
34
  export interface ReservationRow {
43
- /** Orchestrator instance id (from `KICI_CLUSTER_INSTANCE_ID` or generated). */
35
+ /** From `KICI_CLUSTER_INSTANCE_ID`, or generated. */
44
36
  instanceId: string;
45
- /** Process id that owns this reservation. */
46
37
  pid: number;
47
- /** Linux boot id at the time the row was created. */
38
+ /** Linux boot id when the row was created. */
48
39
  bootId: string;
49
- /** Agent id this reservation is associated with. */
50
40
  agentId: string;
51
- /** Reserved cpus (cores). */
41
+ /** Cores. */
52
42
  cpus: number;
53
- /** Reserved memory in bytes. */
54
43
  memBytes: number;
55
- /** When the row was inserted (epoch ms). */
44
+ /** Epoch ms. */
56
45
  reservedAt: number;
57
46
  }
58
47
  /**
59
- * File-backed machine pool ledger.
60
- *
61
- * One instance is shared across all scaler entries that reference any pool
62
- * (the pool name is passed per-call). The ledger does not cache the JSON:
63
- * every operation goes through the lock, reads the file, applies the
64
- * mutation, and writes it back — keeping the wire format the only source
65
- * of truth across processes.
48
+ * One instance serves every pool (named per call). It never caches the JSON:
49
+ * every operation locks, reads, mutates and writes back, so the file is the
50
+ * only source of truth across processes.
66
51
  */
67
52
  export declare class MachineLedger {
68
53
  private readonly bootId;
69
54
  private dirPath;
70
55
  private readonly explicitDir;
71
56
  private readonly instanceId;
72
- /** Per-process knownCaps cache; the on-disk file's `cap` must match the caller's expectation. */
57
+ /** The on-disk file's `cap` must match. */
73
58
  private readonly expectedCaps;
74
- /** Reaper interval handle. */
75
59
  private reaperTimer;
76
60
  constructor(opts: {
77
61
  explicitDir?: string;
78
62
  instanceId: string;
79
63
  });
80
- /**
81
- * Lazy directory resolution so construction stays synchronous. Called from
82
- * every operation; resolves once and caches.
83
- */
64
+ /** Lazy, so construction stays synchronous; resolves once. */
84
65
  private ensureDir;
85
66
  /** Register the expected cap for a pool. The on-disk file's cap must match. */
86
67
  registerPool(name: string, cap: ResourceCap): void;
87
- /**
88
- * Path to the JSON file for `poolName`. Sibling lockdir is `<file>.lock`.
89
- */
68
+ /** The pool's JSON file and its sibling lockdir. */
90
69
  private pathFor;
91
- /**
92
- * Atomic mkdir-based lock. Held for the duration of `fn`.
93
- */
94
70
  private withLock;
95
71
  /**
96
- * If the lock directory has been held for more than 30 seconds, assume the
97
- * holder is dead and release it. Without this, an orchestrator that gets
98
- * SIGKILL'd while holding the lock would leave it stuck forever.
72
+ * A lockdir older than 30 seconds is presumed dead and released; otherwise a
73
+ * holder SIGKILL'd mid-lock wedges the pool forever.
99
74
  */
100
75
  private maybeReleaseStaleLock;
101
- /**
102
- * Read the ledger file (or initialize an empty one when missing).
103
- */
76
+ /** A missing file reads as an empty ledger. */
104
77
  private readLedger;
105
78
  /** Atomic write via temp-file + rename. */
106
79
  private writeLedger;
107
80
  /**
108
- * Try to add a reservation. Returns true if the cap allowed it (and the row
109
- * was persisted), false if any cap would be exceeded after summing.
110
- *
111
- * Reaps stale rows from dead processes before checking the cap so an
112
- * orphaned reservation doesn't permanently squat capacity.
81
+ * Persist a reservation and return true, or false when any cap would be
82
+ * exceeded. Dead rows are reaped first, so an orphan never squats capacity.
113
83
  */
114
84
  tryReserve(poolName: string, agentId: string, cpus: number, memBytes: number): Promise<boolean>;
115
- /**
116
- * Release the reservation for `agentId`. Idempotent.
117
- */
85
+ /** Idempotent. */
118
86
  release(poolName: string, agentId: string): Promise<void>;
119
- /**
120
- * Reap stale (dead-process) rows for the given pool. Called periodically.
121
- */
87
+ /** Reap dead-process rows; called periodically. */
122
88
  reapStale(poolName: string): Promise<void>;
123
89
  /**
124
- * Mutates `ledger.reservations` in place to drop rows that point at dead
125
- * processes. Live-pid heuristic:
126
- * - Different bootId → unconditionally dead (host rebooted since).
127
- * - Same bootId, OWN instance: probe via `process.kill(pid, 0)` (always
128
- * works inside this process's PID namespace).
129
- * - Same bootId, OTHER instance: keep the row. We cannot safely
130
- * `process.kill(pid, 0)` against a peer orchestrator's PID — when the
131
- * two orchestrators share a host but live in different PID namespaces
132
- * (e.g. one runs natively and the other in a container), `kill` returns
133
- * ESRCH for any peer pid and the reservation would be falsely reaped,
134
- * silently breaking the cross-process cap. Peer cleanup happens via
135
- * `releaseAllForInstance()` on graceful shutdown; SIGKILL'd peers leave
136
- * their rows in place until the host reboots (which the bootId check
137
- * then reaps unconditionally).
90
+ * Drop, in place, rows that point at dead processes:
91
+ * - Different bootId: dead (host rebooted since).
92
+ * - Same bootId, OWN instance: probe with `process.kill(pid, 0)`, which works
93
+ * inside this PID namespace.
94
+ * - Same bootId, OTHER instance: keep. A peer in another PID namespace (native
95
+ * vs container) gets ESRCH for every pid, so probing would falsely reap and
96
+ * silently break the cap. Peers release on graceful shutdown; a SIGKILL'd
97
+ * peer's rows stay until the next reboot.
138
98
  */
139
99
  private dropDeadReservations;
140
100
  /** Return current usage (sum of `requests` across all live rows). */
@@ -142,18 +102,11 @@ export declare class MachineLedger {
142
102
  cpus: number;
143
103
  memBytes: number;
144
104
  }>;
145
- /**
146
- * Start the periodic reaper. Idempotent. The reaper iterates every
147
- * registered pool every 30s.
148
- */
105
+ /** Start the periodic reaper over every registered pool. Idempotent. */
149
106
  start(intervalMs?: number): void;
150
- /** Stop the periodic reaper. */
151
107
  stop(): void;
152
108
  private reapAllPools;
153
- /**
154
- * Best-effort: release every reservation owned by this instance across all
155
- * registered pools. Called on graceful shutdown.
156
- */
109
+ /** Best-effort release of this instance's rows in every pool, on graceful shutdown. */
157
110
  releaseAllForInstance(): Promise<void>;
158
111
  }
159
112
  //# sourceMappingURL=machine-ledger.d.ts.map