@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
@@ -1,9 +1,4 @@
1
- /**
2
- * Core type definitions for the agent auto-scaler module.
3
- *
4
- * Provides the foundational types that all scaler backends, the ScalerManager,
5
- * and the configuration layer depend on.
6
- */
1
+ /** Core types shared by the scaler backends, `ScalerManager` and the config layer. */
7
2
  import { ImagePullPolicy } from '@kici-dev/shared/container-runtime';
8
3
  import { z } from 'zod';
9
4
  import { ScalerEventType } from '@kici-dev/engine';
@@ -12,60 +7,43 @@ import type { ResourceRequest, ResourceSpec, ScalerBackendType, ScalerPlatform }
12
7
  export type { ResourceRequest, ResourceSpec } from '@kici-dev/engine';
13
8
  export { ScalerEventType } from '@kici-dev/engine';
14
9
  /**
15
- * Resource limits for spawned agents.
16
- *
17
- * Alias of `ResourceSpec` from `@kici-dev/engine`. Single source of truth for
18
- * the (cpus, memory) pair used by both scaler config and per-job resource
19
- * declarations. Memory uses container-style suffixes (e.g., "2g", "512m").
20
- * CPUs use fractional cores (e.g., 1.5 = 1.5 cores).
10
+ * Resource limits for spawned agents: the `(cpus, memory)` pair shared by scaler
11
+ * config and per-job declarations. Memory uses container-style suffixes ("2g",
12
+ * "512m"); CPUs are fractional cores (1.5 = 1.5 cores).
21
13
  */
22
14
  export type ResourceLimits = ResourceSpec;
23
15
  /**
24
- * Aggregate cap on summed `requests` for a group of agents (per-scaler,
25
- * per-orchestrator, or per-machine pool). Memory is pre-parsed to bytes at
26
- * config-load so the scaler doesn't re-parse on every spawn check.
16
+ * Cap on summed `requests` for a group of agents (scaler, orchestrator or
17
+ * machine pool). Memory is parsed to bytes at config load, not per spawn check.
27
18
  */
28
19
  export interface ResourceCap {
29
- /** Maximum total CPU (sum of `requests.cpus`) across all active agents in the group. */
20
+ /** Sum of `requests.cpus` across the group's active agents. */
30
21
  maxCpu?: number;
31
- /** Maximum total memory in bytes (sum of `requests.memory`) across all active agents in the group. */
22
+ /** Sum of `requests.memory`, in bytes, across the group's active agents. */
32
23
  maxMemoryBytes?: number;
33
24
  }
34
25
  /**
35
- * Definition of a named machine pool. Multiple orchestrators on the same host
36
- * can share a pool by referencing it by name; the file-backed ledger
37
- * (`machine-ledger.ts`) coordinates reservation accounting across processes.
26
+ * A named machine pool. Orchestrators on one host share it by name; the
27
+ * file-backed ledger (`machine-ledger.ts`) accounts reservations across processes.
38
28
  */
39
29
  export interface MachinePoolConfig {
40
30
  name: string;
41
31
  cap: ResourceCap;
42
32
  }
43
33
  /**
44
- * Pre-resolved kernel-side limits passed to `ScalerBackend.spawn()`.
45
- *
46
- * Memory is in bytes (already parsed) so the backend doesn't re-run the
47
- * memory-string parser on every spawn. Either field may be zero or omitted
48
- * to mean "no limit on this dimension"; the backend falls back to its
49
- * label-set or default limits when both are zero.
34
+ * Pre-resolved kernel-side limits passed to `ScalerBackend.spawn()`, memory in
35
+ * bytes. Zero or omitted means no limit on that dimension; when both are zero
36
+ * the backend falls back to its label-set or default limits.
50
37
  */
51
38
  export interface EffectiveLimits {
52
39
  cpus?: number;
53
40
  memBytes?: number;
54
41
  }
55
42
  /**
56
- * Identity of the work a spawn was provisioned for, passed to
57
- * `ScalerBackend.spawn()`. Backends surface it on the provisioned resource
58
- * (container labels today) so an operator inspecting the backend — e.g.
59
- * `podman ps` — can tell which job/run each agent serves, and so tests can
60
- * select the exact container a trigger produced instead of guessing among
61
- * concurrent kici-managed containers. Absent for unbound spawns (warm pool).
62
- */
63
- /**
64
- * A job's container spec with its registry credentials already resolved.
65
- *
66
- * The lock carries credential REFERENCES; this is what a runtime can actually
67
- * pull with. Produced by `resolveContainerSpawn`, consumed by the container
68
- * sandbox and by both spawning backends.
43
+ * A job's container spec with its registry credentials resolved: the lock
44
+ * carries credential REFERENCES, this is what a runtime pulls with. Produced by
45
+ * `resolveContainerSpawn`, consumed by the container sandbox and by both
46
+ * spawning backends.
69
47
  */
70
48
  export interface ResolvedContainerSpawn {
71
49
  image: string;
@@ -76,42 +54,40 @@ export interface ResolvedContainerSpawn {
76
54
  };
77
55
  env?: Record<string, string>;
78
56
  }
57
+ /**
58
+ * Identity of the work a spawn serves, passed to `ScalerBackend.spawn()`.
59
+ * Backends surface it on the provisioned resource (container labels) so an
60
+ * operator (`podman ps`) sees which job/run each agent serves and a test selects
61
+ * the exact container a trigger produced. Absent for unbound (warm pool) spawns.
62
+ */
79
63
  export interface SpawnContext {
80
- /** Execution job id the spawn is bound to. */
81
64
  boundJobId?: string;
82
- /** Execution run id the bound job belongs to. */
83
65
  runId?: string;
84
66
  /**
85
- * The job's own container image plus resolved registry credentials, when the
86
- * job declared one. Present means "spawn THIS image with the KiCI runtime
87
- * injected" rather than the pool's fixed agent image.
67
+ * Present when the job declared a container: spawn THIS image with the KiCI
68
+ * runtime injected, not the pool's fixed agent image.
88
69
  */
89
70
  container?: ResolvedContainerSpawn;
90
71
  /**
91
- * Plain platform-taint tokens (`windows`, `macos`, `arm64`) for the pool this
92
- * spawn belongs to, derived by `ScalerManager` from the same resolved
93
- * platform its taint gate uses. A backend forwards them to
94
- * `scalerAgentLabels()` so the agent registers carrying the very tokens the
95
- * gate demands — without them a tainted pool spawns agents no job can be
96
- * dispatched to. A backend must never derive them itself: the manager is the
97
- * single source, and computing them twice is the defect this field closes.
72
+ * Platform-taint tokens (`windows`, `macos`, `arm64`) for this spawn's pool,
73
+ * derived by `ScalerManager` from the platform its taint gate uses. A backend
74
+ * forwards them to `scalerAgentLabels()`; without them a tainted pool spawns
75
+ * agents no job can be dispatched to. Never derived by a backend: the manager
76
+ * is the single source.
98
77
  */
99
78
  platformTaints?: readonly string[];
100
79
  /**
101
- * The full taint gate the spawned agent is registered under: the pool's
102
- * configured `mandatoryLabels` plus every derived platform taint, resolved
103
- * by `ScalerManager` for the label set this spawn belongs to — the same set
104
- * the durable spawn row carries. A backend publishes it (an event scaler puts
105
- * it on the scale-up payload) so a provisioning workflow sees the gate the
106
- * agent will actually be held to. A backend must never derive it itself: the
107
- * manager is the single source, exactly as for `platformTaints`.
80
+ * The full taint gate the agent registers under: configured `mandatoryLabels`
81
+ * plus every derived platform taint, as the durable spawn row carries it. A
82
+ * backend publishes it (the event scaler's scale-up payload) so a provisioning
83
+ * workflow sees the real gate. Never derived by a backend: the manager is the
84
+ * single source.
108
85
  */
109
86
  mandatoryLabels?: readonly string[];
110
87
  }
111
88
  /**
112
- * Network policy controlling RFC1918 and internet access for agents in this
113
- * label set. Defined in `@kici-dev/shared/net` alongside the nftables rule builder
114
- * that consumes it, and re-exported here so scaler call sites are unchanged.
89
+ * RFC1918 and internet access policy for a label set's agents. Defined in
90
+ * `@kici-dev/shared/net` beside the nftables rule builder that consumes it.
115
91
  */
116
92
  import type { NetworkPolicy } from '@kici-dev/shared/net';
117
93
  export type { NetworkPolicy };
@@ -125,21 +101,17 @@ export type { NetworkPolicy };
125
101
  * moving tag (e.g. `:latest`) or otherwise needs a fresh image each spawn.
126
102
  * - `Never`: never pull; fail if the image is absent.
127
103
  *
128
- * Defined alongside `pullImageIfMissing` in `@kici-dev/shared` — the agent
129
- * pulls job images through the same helper — and re-exported here so the scaler
130
- * config schema and every operator-facing value stay exactly where they were.
104
+ * Defined beside `pullImageIfMissing` in `@kici-dev/shared`, which the agent
105
+ * also uses to pull job images.
131
106
  */
132
107
  export { ImagePullPolicy };
133
- /**
134
- * Configuration for a single label-set mapping within a scaler backend.
135
- * Maps an exact set of labels to the agent provisioning details.
136
- */
108
+ /** Maps an exact label set to a scaler backend's agent provisioning details. */
137
109
  export interface LabelSetConfig {
138
110
  /** Exact label set (sorted for deterministic comparison) */
139
111
  labels: string[];
140
112
  /** Container image (Docker backend) */
141
113
  image?: string;
142
- /** Image pull policy: IfNotPresent (default), Always, or Never */
114
+ /** Default: IfNotPresent. */
143
115
  imagePullPolicy?: ImagePullPolicy;
144
116
  /** Path to agent binary (bare-metal backend) */
145
117
  binaryPath?: string;
@@ -155,14 +127,11 @@ export interface LabelSetConfig {
155
127
  * @default false
156
128
  */
157
129
  containerSocket?: boolean;
158
- /** Additional bind-mount volumes for spawned containers (e.g. ["/host/path:/container/path:ro"]) */
130
+ /** Extra bind mounts for spawned containers (e.g. ["/host/path:/container/path:ro"]). */
159
131
  volumes?: string[];
160
- /** Additional environment variables passed to spawned agents */
161
132
  env?: Record<string, string>;
162
- /** Network isolation policy for agents in this label set */
163
133
  networkPolicy?: NetworkPolicy;
164
- /** Backpressure mode for agent log streaming: 'pause' (default) or 'drop'.
165
- * When set, injected as KICI_BACKPRESSURE_MODE into spawned agent environment. */
134
+ /** Agent log streaming backpressure, default 'pause'; injected as KICI_BACKPRESSURE_MODE. */
166
135
  backpressureMode?: 'pause' | 'drop';
167
136
  /** Path to ext4 rootfs image (Firecracker backend, required per label-set) */
168
137
  rootfsPath?: string;
@@ -176,27 +145,22 @@ export interface LabelSetConfig {
176
145
  overlayDriveSizeMib?: number;
177
146
  }
178
147
  /**
179
- * Represents a single spawned agent instance tracked by the scaler.
180
- * Separate from the AgentRegistry which only knows about registered (WS-connected) agents.
148
+ * A spawned agent tracked by the scaler; the AgentRegistry knows only
149
+ * registered (WS-connected) agents.
181
150
  */
182
151
  export interface ManagedAgent {
183
- /** Unique ID for this managed agent instance (scaler-internal tracking) */
152
+ /** Scaler-internal tracking id. */
184
153
  id: string;
185
- /** The label set this agent was spawned for */
186
154
  labelSet: string[];
187
- /** Backend-specific identifier (container ID or PID) */
155
+ /** Container ID or PID. */
188
156
  backendRef: string;
189
- /** When this agent was spawned (epoch ms) */
157
+ /** Epoch ms. */
190
158
  spawnedAt: number;
191
- /** Current lifecycle state */
192
159
  state: 'spawning' | 'running' | 'destroying';
193
- /** The agentId the spawned agent registered with via WS (set after registration) */
160
+ /** Set once the agent registers over WS. */
194
161
  registeredAgentId?: string;
195
162
  }
196
- /**
197
- * Result of a scaling decision.
198
- * Discriminated union on 'action' for exhaustive pattern matching.
199
- */
163
+ /** Result of a scaling decision, discriminated on `action`. */
200
164
  export type ScaleResult =
201
165
  /** A spawn started; `agentId` is the scaler-managed id the new agent will register with. */
202
166
  {
@@ -233,9 +197,6 @@ export declare const ScalerRedispatchTrigger: z.ZodEnum<{
233
197
  sweep: "sweep";
234
198
  }>;
235
199
  export type ScalerRedispatchTrigger = z.infer<typeof ScalerRedispatchTrigger>;
236
- /**
237
- * Result of a configuration validation or reload operation.
238
- */
239
200
  export type ValidationResult = {
240
201
  valid: true;
241
202
  } | {
@@ -250,42 +211,32 @@ export interface ScalerDestroyContext {
250
211
  /** Why the teardown was requested (idle, job-complete, drain, …). */
251
212
  reason?: ScaleDownReason;
252
213
  /**
253
- * Where an event backend must deliver the teardown, overriding its live
254
- * config. Set from the spawn record when the agent was adopted from another
255
- * coordinator, so a teardown addresses the targets the provision was spawned
256
- * with even if `provisioningTargets` has been edited since. Ignored by the
257
- * local backends, which deliver nothing.
214
+ * Overrides an event backend's live delivery targets. Set from the spawn
215
+ * record for an agent adopted from another coordinator, so the teardown
216
+ * reaches the targets the provision was spawned with even after
217
+ * `provisioningTargets` changed. Local backends ignore it.
258
218
  */
259
219
  targets?: string[];
260
220
  }
261
221
  /**
262
- * Common interface for all scaler backends.
263
- * Each backend manages a specific pool of agents for specific label sets.
264
- * Designed to be pluggable -- Docker, bare-metal, and future K8s/VM backends
265
- * all implement this interface.
222
+ * Common interface for all scaler backends; each manages a pool of agents for
223
+ * specific label sets.
266
224
  */
267
225
  export interface ScalerBackend {
268
- /** Backend type identifier */
269
226
  readonly type: ScalerBackendType;
270
- /** Log source identifier for ELK app.logsSource field. Set by each backend. */
227
+ /** The ELK `app.logsSource` field. */
271
228
  readonly logsSource?: string;
272
- /** Label sets this backend can provision */
273
229
  readonly labelSets: LabelSetConfig[];
274
- /**
275
- * Per-backend maximum agents. Updated by `reload` so a config change to
276
- * `maxAgents` applies without an orchestrator restart.
277
- */
230
+ /** Updated by `reload`, so a `maxAgents` change needs no orchestrator restart. */
278
231
  maxAgents: number;
279
232
  /**
280
- * Whether this backend spawns its agents on the orchestrator's own host.
281
- * True for bare-metal and Firecracker (local processes / local VMs) and for
282
- * container backends using a local runtime socket; false when the backend
283
- * provisions elsewhere (remote container runtime, future cloud backends).
284
- * Drives the static spawning-host display on the dashboard Infrastructure
285
- * page.
233
+ * True when agents run on the orchestrator's own host: bare-metal,
234
+ * Firecracker, and container backends on a local runtime socket. False for a
235
+ * remote container runtime or cloud backend. Drives the dashboard
236
+ * Infrastructure page's spawning-host display.
286
237
  */
287
238
  readonly spawnsOnLocalHost: boolean;
288
- /** Current count of agents managed by this backend (including spawning) */
239
+ /** Includes agents still spawning. */
289
240
  getActiveCount(): number;
290
241
  /**
291
242
  * Spawn an agent for the given label set.
@@ -293,13 +244,11 @@ export interface ScalerBackend {
293
244
  * @param agentId - Pre-generated agent ID for WS registration correlation
294
245
  * @param orchestratorUrl - URL for the agent to connect back to
295
246
  * @param onEvent - Lifecycle event callback
296
- * @param effectiveLimits - Resolved kernel-side limits (`{ cpus, memBytes }`)
297
- * for this spawn. Computed by ScalerManager from the job/label-set/scaler
298
- * default chain. When omitted (or both fields zero), the backend falls
299
- * back to its label-set / default limits the same way it always has.
300
- * @param spawnContext - Identity of the bound job/run this spawn serves
301
- * (omitted for unbound spawns, e.g. warm pool). Backends surface it on
302
- * the provisioned resource for operator inspection.
247
+ * @param effectiveLimits - Kernel-side limits `ScalerManager` resolved from the
248
+ * job / label-set / scaler default chain. When omitted (or both fields
249
+ * zero), the backend falls back to its label-set / default limits.
250
+ * @param spawnContext - The bound job/run (omitted for unbound spawns, e.g.
251
+ * warm pool), surfaced on the provisioned resource for operators.
303
252
  * @returns The managed agent tracking object
304
253
  * @throws If the label set is not supported by this backend
305
254
  * @throws DeterministicSpawnError, after emitting `scaler.failed`, when the
@@ -308,111 +257,87 @@ export interface ScalerBackend {
308
257
  */
309
258
  spawn(labelSet: string[], agentId: string, orchestratorUrl: string, onEvent?: ScalerEventCallback, effectiveLimits?: EffectiveLimits, spawnContext?: SpawnContext,
310
259
  /**
311
- * Optional abort signal from the ScalerManager spawn-timeout wrapper. When
312
- * aborted, backends thread it into any long-running provisioning I/O
313
- * (container-runtime requests, HTTP calls) so a hung provision cancels
314
- * instead of pinning the per-backend spawn-semaphore slot.
260
+ * From the ScalerManager spawn-timeout wrapper. Backends thread it into
261
+ * long-running provisioning I/O (container-runtime requests, HTTP calls) so
262
+ * a hung provision cancels instead of pinning the spawn-semaphore slot.
315
263
  */
316
264
  signal?: AbortSignal): Promise<ManagedAgent>;
317
265
  /**
318
- * Destroy a specific managed agent.
319
266
  * Docker: docker rm -f; Bare-metal: SIGTERM -> SIGKILL.
320
267
  *
321
- * @param context - Optional teardown context. The event backend carries
322
- * `reason` onto its `kici.scaler.scale-down` event so a teardown workflow
323
- * (and the timeline) can distinguish an idle reap from a job-complete
324
- * teardown or a spawn timeout. Local backends accept and ignore it.
268
+ * @param context - The event backend carries `reason` onto its
269
+ * `kici.scaler.scale-down` event, so a teardown workflow (and the timeline)
270
+ * tells an idle reap from a job-complete teardown or a spawn timeout. Local
271
+ * backends ignore it.
325
272
  */
326
273
  destroy(managedId: string, context?: ScalerDestroyContext): Promise<void>;
327
274
  /**
328
- * Record that a managed agent's process registered with the orchestrator.
329
- * Called by ScalerManager when a spawn it started registers locally.
330
- * Optional: a backend implements it when it must tell a compute that stops
331
- * before registering (a failed spawn it tears down itself) from one that
332
- * stops after (an agent whose disconnect triggers `destroy`).
275
+ * Called by ScalerManager when a spawn it started registers locally. A backend
276
+ * implements it when it must tell a compute that stops before registering (a
277
+ * failed spawn it tears down itself) from one that stops after (an agent whose
278
+ * disconnect triggers `destroy`).
333
279
  */
334
280
  markRegistered?(managedId: string): void;
335
281
  /**
336
282
  * Reclaim the HOST-LOCAL compute of a managed agent this backend no longer
337
283
  * tracks in memory, from whatever durable host state survived the loss.
338
284
  *
339
- * `destroy` is keyed off the in-memory agent map, so an orchestrator restart
340
- * makes it a silent no-op while the VM or host process keeps running. This
341
- * hook is the restart-surviving half: it reads the backend's own on-host
342
- * artifacts for `managedId` and reclaims them.
285
+ * `destroy` reads the in-memory agent map, so after a restart it silently
286
+ * no-ops while the VM or host process keeps running. This hook reads the
287
+ * backend's own on-host artifacts for `managedId` instead.
343
288
  *
344
- * Two properties every implementation MUST hold:
289
+ * Every implementation MUST hold:
345
290
  *
346
291
  * - **Host-local evidence only.** Reclaim nothing unless an artifact for
347
- * exactly this `managedId` exists on THIS host — that artifact is the proof
348
- * this backend spawned it. A coordinator must never be able to reach across
349
- * and reap a peer's compute.
292
+ * exactly this `managedId` exists on THIS host, the proof this backend
293
+ * spawned it. A coordinator must never reap a peer's compute.
350
294
  * - **Caller supplies the orphan verdict.** The hook force-reclaims a *live*
351
- * instance, which is precisely what the liveness-driven orphan sweeps
352
- * refuse to do on their own. Only call it where the agent is known to be
353
- * unowned.
295
+ * instance, which the liveness-driven orphan sweeps refuse to do. Call it
296
+ * only where the agent is known to be unowned.
354
297
  *
355
- * Optional: a backend whose compute is not host-local — the event backend's
356
- * customer cloud instance — cannot implement it at all. An implementation may
357
- * also cover only part of its own backend, when the rest keeps nothing durable
358
- * to read. Bare metal is that case: a container-mode agent carries
359
- * `kici-agent-id` / `kici-scaler-name` labels on the host and is reclaimed,
360
- * while a plain-process agent records its PID in the in-memory entry alone, so
361
- * a restart loses it and the hook reports nothing to reclaim.
298
+ * A backend whose compute is not host-local (the event backend's cloud
299
+ * instance) cannot implement it. An implementation may cover only the part
300
+ * of its backend that keeps durable state: on bare metal a container-mode
301
+ * agent carries `kici-agent-id` / `kici-scaler-name` host labels and is
302
+ * reclaimed, while a plain-process agent's PID lives only in memory, so the
303
+ * hook reports nothing to reclaim.
362
304
  *
363
305
  * @returns `true` when host-local state for `managedId` was found and
364
306
  * reclaimed, `false` when there was nothing here to reclaim.
365
307
  */
366
308
  reapUnowned?(managedId: string): Promise<boolean>;
367
309
  /**
368
- * Get the LogCapture for a managed agent (optional -- container and bare-metal backends
369
- * support stdout capture. Firecracker handles log forwarding internally via file tailing
370
- * (serial console + VMM logs) and does not return a LogCapture here).
310
+ * Container and bare-metal backends capture stdout. Firecracker forwards logs
311
+ * itself by tailing files (serial console + VMM logs) and returns none.
371
312
  */
372
313
  getLogCapture?(managedId: string): LogCapture | undefined;
373
- /** Shutdown all agents managed by this backend (called during graceful shutdown) */
314
+ /** Called during graceful shutdown. */
374
315
  shutdownAll(): Promise<void>;
375
- /**
376
- * Return scaler-specific configuration metadata for a managed agent.
377
- * Used by the orchestrator to enrich job.context before forwarding to Platform.
378
- */
316
+ /** Scaler metadata the orchestrator adds to job.context before forwarding to Platform. */
379
317
  getScalerContext?(agentId: string): Record<string, unknown> | undefined;
380
318
  /**
381
- * Provision or heal this backend's host prerequisites before it spawns.
382
- * Called once by ScalerManager during startup. Optional — only backends with
383
- * host-side setup (Firecracker's bridge) implement it; container/bare-metal
384
- * omit it. May throw; the manager catches per-backend and degrades that
385
- * scaler rather than aborting orchestrator startup.
319
+ * Provision or heal host prerequisites (Firecracker's bridge), once at
320
+ * startup. May throw: the manager then degrades that scaler rather than
321
+ * aborting orchestrator startup.
386
322
  */
387
323
  ensureHostReady?(): Promise<void>;
388
324
  /**
389
- * Reload configuration (called on config reload / SIGHUP).
390
- *
391
- * `opts.maxAgents`, when present, replaces the population cap. `opts.entry`
392
- * is the whole new config entry, for a backend that reads more than its
393
- * label sets off it. On an invalid result NOTHING is applied.
325
+ * Called on config reload / SIGHUP. `opts.maxAgents` replaces the population
326
+ * cap; `opts.entry` is the whole new entry, for a backend that reads more than
327
+ * its label sets. On an invalid result NOTHING is applied.
394
328
  */
395
329
  reload(labelSets: LabelSetConfig[], opts?: {
396
330
  maxAgents?: number;
397
331
  entry?: ScalerEntry;
398
332
  }): ValidationResult;
399
333
  /**
400
- * The config entry this backend is currently serving, for backends that hold
401
- * one. Read by the reload rollback so a rejected reload can restore it
402
- * alongside `labelSets` and `maxAgents`. Undefined for backends that keep no
403
- * entry (container, bare-metal, Firecracker all read only their label sets).
334
+ * The entry the reload rollback restores with `labelSets` and `maxAgents`.
335
+ * Undefined for backends that read only their label sets (container,
336
+ * bare-metal, Firecracker).
404
337
  */
405
338
  readonly currentEntry?: ScalerEntry;
406
339
  }
407
- /**
408
- * Parsed and validated scaler configuration from YAML.
409
- * Loaded at startup and reloaded on SIGHUP.
410
- */
411
- /**
412
- * Firecracker network configuration.
413
- * Defines the CIDR pool, bridge name, and gateway for VM networking.
414
- * Global across all Firecracker scalers on the orchestrator.
415
- */
340
+ /** VM networking (CIDR pool, bridge, gateway), shared by every Firecracker scaler. */
416
341
  export interface FirecrackerNetworkConfig {
417
342
  /** CIDR range for VM IP allocation @default '10.0.0.0/24' */
418
343
  cidr?: string;
@@ -436,57 +361,45 @@ export interface FirecrackerNetworkConfig {
436
361
  * Loaded at startup and reloaded on SIGHUP.
437
362
  */
438
363
  export interface ScalerConfig {
439
- /** Config format version (currently always 1) */
364
+ /** Currently always 1. */
440
365
  version: 1;
441
- /** Global maximum agents across all backends */
366
+ /** Across all backends. */
442
367
  globalMaxAgents: number;
443
- /** Global defaults applied to all label sets */
444
368
  defaults?: {
445
369
  /**
446
- * Default resource request and limit applied when neither the job nor the
447
- * label-set declares resources. Internal representation is always nested.
370
+ * Applied when neither the job nor the label set declares resources. The
371
+ * internal representation is always nested.
448
372
  */
449
373
  resources?: ResourceRequest;
450
374
  };
451
- /**
452
- * Cap on the total summed `requests` across every agent this orchestrator
453
- * has active (across all scalers). Counterpart to `globalMaxAgents` for
454
- * resource-based pressure.
455
- */
375
+ /** The resource counterpart of `globalMaxAgents`, across every scaler. */
456
376
  globalResourceCap?: ResourceCap;
457
377
  /**
458
- * Optional named machine pools shared by scaler entries on the same host.
459
- * Each entry's cap is enforced via the file-backed ledger so multiple
460
- * orchestrator processes on one machine cannot collectively oversubscribe.
378
+ * Named pools shared by scaler entries on one host. The file-backed ledger
379
+ * enforces each cap, so orchestrators on one machine cannot jointly
380
+ * oversubscribe it.
461
381
  */
462
382
  machinePools?: MachinePoolConfig[];
463
- /** Individual scaler backend configurations */
464
383
  scalers: ScalerEntry[];
465
- /** Global Firecracker network configuration (shared across all Firecracker scalers) */
384
+ /** Shared across all Firecracker scalers. */
466
385
  firecracker?: FirecrackerNetworkConfig;
467
386
  }
468
- /**
469
- * Configuration for a single scaler backend entry.
470
- */
471
387
  export interface ScalerEntry {
472
- /** Human-readable name for this scaler */
473
388
  name: string;
474
- /** Backend type */
475
389
  type: Exclude<ScalerBackendType, 'kubernetes'>;
476
- /** Maximum concurrent agents for this scaler (population cap) */
390
+ /** Population cap. */
477
391
  maxAgents: number;
478
392
  /**
479
- * Maximum concurrent `backend.spawn` operations for this scaler
480
- * (provisioning-rate throttle). Orthogonal to `maxAgents`: excess in-cap
481
- * spawns queue and drain at this rate rather than storming the socket.
482
- * Defaults to `DEFAULT_MAX_CONCURRENT_SPAWNS` at config-load.
393
+ * Provisioning-rate throttle on concurrent `backend.spawn` calls, orthogonal
394
+ * to `maxAgents`: excess in-cap spawns queue instead of storming the socket.
395
+ * Defaults to `DEFAULT_MAX_CONCURRENT_SPAWNS` at config load.
483
396
  */
484
397
  maxConcurrentSpawns: number;
485
398
  /** Label-set to image/binary mappings */
486
399
  labelSets: LabelSetConfig[];
487
400
  /** Container runtime host (e.g. 'tcp://192.168.1.10:2376'). Works for both Docker and Podman remote. */
488
401
  host?: string;
489
- /** Explicit container runtime socket path. Overrides auto-detection. Use for non-standard socket locations. */
402
+ /** Overrides socket auto-detection, for non-standard socket locations. */
490
403
  socketPath?: string;
491
404
  /** Container runtime type. 'auto' probes known socket paths. Default: 'auto' */
492
405
  runtime?: 'docker' | 'podman' | 'auto';
@@ -498,29 +411,26 @@ export interface ScalerEntry {
498
411
  * each Firecracker guest's /etc/hosts.
499
412
  */
500
413
  extraHosts?: string[];
501
- /** Disable nftables-based network isolation for container backend (default: true). Set to false when nft is unavailable. */
414
+ /** Enables nftables-based network isolation for the container backend (default: true). Set to false when nft is unavailable. */
502
415
  networkIsolation?: boolean;
503
416
  /** Warm pool configuration */
504
417
  warmPool?: WarmPoolConfig;
505
418
  /**
506
- * Labels a job MUST declare in `runsOn` to be allowed on this scaler.
507
- * Mirrors the Kubernetes "taints" concept: a generic job that does not
508
- * include every mandatory label is blocked from this scaler entirely,
509
- * even when its other labels are a subset of one of the scaler's
510
- * `labelSets`. Default: `[]` (no gating).
419
+ * Labels a job MUST declare in `runsOn` to run on this scaler, like
420
+ * Kubernetes taints: a job missing any of them is blocked even when its other
421
+ * labels are a subset of a `labelSets` entry. Default: `[]` (no gating).
511
422
  */
512
423
  mandatoryLabels?: string[];
513
424
  /**
514
- * Structured platform of this pool's agents. When set, the auto-injected
515
- * `kici:os:*` / `kici:arch:*` labels AND the mandatory platform taint both
516
- * derive from this single field. Optional: when omitted, bare-metal pools
517
- * derive the platform from the host OS/arch, and container / firecracker
425
+ * The pool's platform. When set, the auto-injected `kici:os:*` /
426
+ * `kici:arch:*` labels AND the mandatory platform taint derive from it. When
427
+ * omitted, bare-metal pools use the host OS/arch and container / firecracker
518
428
  * pools default to linux.
519
429
  */
520
430
  readonly platform?: ScalerPlatform;
521
431
  /**
522
- * Agent roles this scaler handles. scaler-entry level, not per-label-set.
523
- * - undefined (not set): handles all job types including build and init (backward compat,)
432
+ * Agent roles this scaler handles, per entry, not per label set.
433
+ * - undefined: all job types, including build and init (backward compatible)
524
434
  * - []: execution jobs only, no build/init
525
435
  * - ['builder']: handles build jobs + execution
526
436
  * - ['init-runner']: handles init jobs + execution
@@ -528,16 +438,9 @@ export interface ScalerEntry {
528
438
  * - ['all']: same as undefined
529
439
  */
530
440
  roles?: string[];
531
- /**
532
- * Cap on summed `requests` (cpus + memory) across active agents in this
533
- * scaler. Stacks with `maxAgents`; both must allow the spawn.
534
- */
441
+ /** Cap on summed `requests` across this scaler's agents; stacks with `maxAgents`. */
535
442
  resourceCap?: ResourceCap;
536
- /**
537
- * Reference to a named machine pool defined at top level. Scalers that
538
- * reference the same pool name on the same host share a file-backed ledger
539
- * so multiple orchestrators can't collectively exceed the pool cap.
540
- */
443
+ /** Name of a top-level machine pool; see `ScalerConfig.machinePools`. */
541
444
  machinePool?: string;
542
445
  /**
543
446
  * Bare-metal opt-in: when true, wrap the spawned binary in a transient
@@ -570,13 +473,12 @@ export interface ScalerEntry {
570
473
  */
571
474
  requireSudo?: boolean;
572
475
  /**
573
- * Workflow refs (e.g. `org/infra`) the reserved scale-up / scale-down events
574
- * are delivered to. The customer's provisioning / teardown workflows
575
- * subscribe with `kiciEvent()`. Required for a `type: event` scaler.
476
+ * Workflow refs (e.g. `org/infra`) that receive the scale-up / scale-down
477
+ * events, subscribed with `kiciEvent()`. Required for a `type: event` scaler.
576
478
  */
577
479
  provisioningTargets?: string[];
578
480
  /**
579
- * Seconds a pending provisioning claim code stays valid before it expires.
481
+ * Seconds a pending provisioning claim code stays valid.
580
482
  * @default 300
581
483
  */
582
484
  claimTtlSeconds?: number;
@@ -586,23 +488,17 @@ export interface ScalerEntry {
586
488
  */
587
489
  agentTokenTtlSeconds?: number;
588
490
  }
589
- /**
590
- * Warm pool configuration for pre-provisioned idle agents.
591
- */
491
+ /** Pre-provisioned idle agents. */
592
492
  export interface WarmPoolConfig {
593
- /** Whether the warm pool is enabled */
594
493
  enabled: boolean;
595
- /** Number of idle agents to maintain */
494
+ /** Idle agents to maintain. */
596
495
  size: number;
597
496
  /** Seconds before an idle warm-pool agent is destroyed
598
497
  * @default 300
599
498
  */
600
499
  idleTimeoutSeconds: number;
601
500
  }
602
- /**
603
- * A single scaler lifecycle event.
604
- * Each backend emits these at key provisioning milestones.
605
- */
501
+ /** Emitted by each backend at key provisioning milestones. */
606
502
  export interface ScalerEvent {
607
503
  agentId: string;
608
504
  eventType: z.infer<typeof ScalerEventType>;
@@ -610,23 +506,14 @@ export interface ScalerEvent {
610
506
  detail: string;
611
507
  timestampMs: number;
612
508
  }
613
- /**
614
- * Callback type for scaler event emission.
615
- * Passed from ScalerManager to each backend during spawn().
616
- */
509
+ /** Passed from ScalerManager to each backend's `spawn()`. */
617
510
  export type ScalerEventCallback = (event: ScalerEvent) => void;
618
- /**
619
- * Interface for capturing agent log output from scaler backends.
620
- * Each backend implements this to expose the spawned agent's stdout/stderr
621
- * as an async iterable of individual log lines.
622
- */
511
+ /** A spawned agent's stdout/stderr, as individual log lines. */
623
512
  export interface LogCapture {
624
- /** Async iterable yielding individual log lines from the agent process. */
625
513
  lines(): AsyncIterable<string>;
626
514
  /**
627
- * Return the most recent buffered output lines (bounded ring buffer),
628
- * joined oldest→newest. Used to enrich a `scaler.failed` event when a
629
- * spawn dies before WS registration. Empty string when nothing captured.
515
+ * The bounded ring buffer of recent lines, oldest→newest, or an empty string.
516
+ * Enriches a `scaler.failed` event when a spawn dies before WS registration.
630
517
  */
631
518
  tail(): string;
632
519
  /** Stop capturing and destroy underlying streams. Safe to call multiple times. */