@kici-dev/orchestrator 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/dist/agent/agent-version.d.ts +12 -21
  2. package/dist/agent/dispatcher.d.ts +283 -437
  3. package/dist/agent/host-roster-reaper.d.ts +8 -10
  4. package/dist/agent/host-roster.d.ts +77 -100
  5. package/dist/agent/ownership-refusal.d.ts +3 -5
  6. package/dist/agent/ownership-tracker.d.ts +42 -76
  7. package/dist/agent/registry.d.ts +121 -233
  8. package/dist/agent/token-store.d.ts +34 -77
  9. package/dist/agent-packaging/availability.d.ts +6 -9
  10. package/dist/agent-packaging/download.d.ts +6 -9
  11. package/dist/agent-packaging/install-closure.d.ts +9 -12
  12. package/dist/agent-packaging/node-binary.d.ts +6 -10
  13. package/dist/agent-packaging/node-runtime-members.d.ts +3 -5
  14. package/dist/agent-packaging/refresh.d.ts +12 -16
  15. package/dist/agent-packaging/store.d.ts +5 -6
  16. package/dist/agent-packaging/upload.d.ts +3 -4
  17. package/dist/app.d.ts +0 -3
  18. package/dist/approvals/apply-decision.d.ts +39 -45
  19. package/dist/approvals/approval-resolver.d.ts +11 -23
  20. package/dist/approvals/held-run-release-wiring.d.ts +14 -21
  21. package/dist/approvals/independent-wiring.d.ts +13 -20
  22. package/dist/approvals/resume-router.d.ts +1 -1
  23. package/dist/approvals/step-approval-bridge.d.ts +11 -21
  24. package/dist/approvals/triggerer-subject.d.ts +8 -10
  25. package/dist/artifacts/artifact-store.d.ts +55 -95
  26. package/dist/artifacts/failure-messages.d.ts +15 -20
  27. package/dist/audit/access-log.d.ts +27 -45
  28. package/dist/audit/sampling-rate-limiter.d.ts +11 -23
  29. package/dist/cache/agent-job-failed-error.d.ts +2 -3
  30. package/dist/cache/build-coordinator.d.ts +5 -28
  31. package/dist/cache/cache-upload-settle.d.ts +11 -11
  32. package/dist/cache/dep-cache.d.ts +32 -60
  33. package/dist/cache/dispatch-cache-ref-tracker.d.ts +15 -23
  34. package/dist/cache/global-eval-round-cache.d.ts +33 -41
  35. package/dist/cache/pending-builds.d.ts +2 -6
  36. package/dist/cache/pending-dynamics.d.ts +2 -7
  37. package/dist/cache/pending-global-evals.d.ts +9 -12
  38. package/dist/cache/pending-inits.d.ts +11 -22
  39. package/dist/cache/pending-precursor-db-watcher.d.ts +24 -32
  40. package/dist/cache/pending-tracker.d.ts +17 -45
  41. package/dist/cache/precursor-result.d.ts +17 -30
  42. package/dist/cache/source-cache.d.ts +36 -65
  43. package/dist/cache/user-cache.d.ts +21 -25
  44. package/dist/cancel/cancel-held-run.d.ts +13 -16
  45. package/dist/cancel/cancel-route-answer.d.ts +1 -2
  46. package/dist/cancel/cancel-run.d.ts +26 -50
  47. package/dist/cancel/dashboard-cancel-handler.d.ts +2 -2
  48. package/dist/cancel/peer-job-cancel.d.ts +11 -14
  49. package/dist/cancel/sweep-stuck-cancelling.d.ts +9 -13
  50. package/dist/cli/api-client.d.ts +33 -76
  51. package/dist/cli/commands/access-log.d.ts +4 -24
  52. package/dist/cli/commands/agent-package.d.ts +7 -15
  53. package/dist/cli/commands/agent-service/agent-env.d.ts +3 -6
  54. package/dist/cli/commands/agent-service/index.d.ts +4 -10
  55. package/dist/cli/commands/agent-service/install.d.ts +4 -11
  56. package/dist/cli/commands/agent-service/status.d.ts +4 -9
  57. package/dist/cli/commands/agent-service/upgrade.d.ts +4 -16
  58. package/dist/cli/commands/agent.d.ts +12 -25
  59. package/dist/cli/commands/api-key.d.ts +7 -7
  60. package/dist/cli/commands/attestations-list.d.ts +7 -17
  61. package/dist/cli/commands/attestations-retry.d.ts +5 -11
  62. package/dist/cli/commands/attestations-reverify.d.ts +4 -5
  63. package/dist/cli/commands/attestations.d.ts +3 -8
  64. package/dist/cli/commands/audit.d.ts +1 -5
  65. package/dist/cli/commands/backend.d.ts +2 -11
  66. package/dist/cli/commands/check-run.d.ts +7 -18
  67. package/dist/cli/commands/cluster-name.d.ts +5 -12
  68. package/dist/cli/commands/cluster-settings.d.ts +28 -53
  69. package/dist/cli/commands/cold-store.d.ts +7 -15
  70. package/dist/cli/commands/config.d.ts +9 -20
  71. package/dist/cli/commands/context.d.ts +8 -20
  72. package/dist/cli/commands/dashboard-encryption-key.d.ts +9 -14
  73. package/dist/cli/commands/db-backup.d.ts +17 -32
  74. package/dist/cli/commands/db.d.ts +3 -4
  75. package/dist/cli/commands/debug-bundle.d.ts +3 -10
  76. package/dist/cli/commands/diagnose.d.ts +3 -14
  77. package/dist/cli/commands/event-dlq.d.ts +4 -12
  78. package/dist/cli/commands/event-log.d.ts +2 -20
  79. package/dist/cli/commands/execution.d.ts +3 -9
  80. package/dist/cli/commands/firecracker/index.d.ts +3 -6
  81. package/dist/cli/commands/held-run.d.ts +23 -37
  82. package/dist/cli/commands/host.d.ts +4 -11
  83. package/dist/cli/commands/inspect-bundle.d.ts +3 -11
  84. package/dist/cli/commands/local-hook.d.ts +2 -10
  85. package/dist/cli/commands/local-trigger.d.ts +2 -2
  86. package/dist/cli/commands/orchestrator-service/drain.d.ts +3 -6
  87. package/dist/cli/commands/orchestrator-service/index.d.ts +6 -14
  88. package/dist/cli/commands/orchestrator-service/install-env.d.ts +25 -49
  89. package/dist/cli/commands/orchestrator-service/install.d.ts +2 -5
  90. package/dist/cli/commands/orchestrator-service/status.d.ts +10 -22
  91. package/dist/cli/commands/orchestrator-service/upgrade.d.ts +6 -15
  92. package/dist/cli/commands/org-settings.d.ts +5 -11
  93. package/dist/cli/commands/peer.d.ts +5 -10
  94. package/dist/cli/commands/queue.d.ts +3 -9
  95. package/dist/cli/commands/registration.d.ts +4 -8
  96. package/dist/cli/commands/remote-source.d.ts +6 -12
  97. package/dist/cli/commands/rotate.d.ts +1 -5
  98. package/dist/cli/commands/runs.d.ts +1 -30
  99. package/dist/cli/commands/scaler.d.ts +5 -12
  100. package/dist/cli/commands/secret.d.ts +1 -9
  101. package/dist/cli/commands/service-health.d.ts +5 -10
  102. package/dist/cli/commands/shared/admin-cli-access-log.d.ts +10 -19
  103. package/dist/cli/commands/shared/bare-metal-binary-check.d.ts +86 -0
  104. package/dist/cli/commands/shared/cli-action.d.ts +1 -4
  105. package/dist/cli/commands/shared/confirm.d.ts +5 -10
  106. package/dist/cli/commands/shared/db.d.ts +1 -12
  107. package/dist/cli/commands/shared/env-file-mode.d.ts +6 -9
  108. package/dist/cli/commands/shared/secret-input.d.ts +7 -21
  109. package/dist/cli/commands/shared/service-verbs.d.ts +6 -12
  110. package/dist/cli/commands/shared/unbound-context-warning.d.ts +2 -4
  111. package/dist/cli/commands/shared/upgrade-hooks.d.ts +7 -16
  112. package/dist/cli/commands/shared/upgrade-safety.d.ts +20 -31
  113. package/dist/cli/commands/shared/versioned-upgrade.d.ts +83 -161
  114. package/dist/cli/commands/signing-key.d.ts +4 -9
  115. package/dist/cli/commands/source-manifest.d.ts +11 -14
  116. package/dist/cli/commands/source.d.ts +7 -32
  117. package/dist/cli/commands/token.d.ts +4 -15
  118. package/dist/cli/commands/trust-policy.d.ts +35 -88
  119. package/dist/cli/commands/variable.d.ts +3 -5
  120. package/dist/cli/commands/workflow.d.ts +3 -24
  121. package/dist/cli/join.d.ts +3 -6
  122. package/dist/cli/kici-admin.d.ts +11 -29
  123. package/dist/cli/lazy-deps/cache.d.ts +1 -14
  124. package/dist/cli/lazy-deps/downloader.d.ts +4 -27
  125. package/dist/cli/lazy-deps/registry.d.ts +5 -25
  126. package/dist/cli/local-github-ingress-url.d.ts +5 -7
  127. package/dist/cli/loopback-callback.d.ts +6 -7
  128. package/dist/cli/open-browser.d.ts +4 -8
  129. package/dist/cli/root-option-routing.d.ts +17 -29
  130. package/dist/cli/service/backup-timer.d.ts +16 -39
  131. package/dist/cli/service/compose-path.d.ts +3 -7
  132. package/dist/cli/service/compose.d.ts +12 -30
  133. package/dist/cli/service/deploy-env.d.ts +6 -18
  134. package/dist/cli/service/entrypoint.d.ts +14 -25
  135. package/dist/cli/service/env-assignment.d.ts +6 -17
  136. package/dist/cli/service/image-digests.d.ts +6 -15
  137. package/dist/cli/service/index.d.ts +2 -18
  138. package/dist/cli/service/instance/index-file.d.ts +9 -16
  139. package/dist/cli/service/instance/manifest.d.ts +33 -59
  140. package/dist/cli/service/instance/resolve.d.ts +32 -68
  141. package/dist/cli/service/instance/types.d.ts +12 -29
  142. package/dist/cli/service/launchd.d.ts +29 -60
  143. package/dist/cli/service/platform-detect.d.ts +13 -68
  144. package/dist/cli/service/privilege.d.ts +12 -25
  145. package/dist/cli/service/shutdown-grace.d.ts +11 -20
  146. package/dist/cli/service/systemd.d.ts +7 -20
  147. package/dist/cli/service/types.d.ts +63 -114
  148. package/dist/cli/service/windows-acl.d.ts +14 -21
  149. package/dist/cli/service/windows-env-file.d.ts +10 -28
  150. package/dist/cli/service/windows.d.ts +15 -31
  151. package/dist/cli/webhook-url-notes.d.ts +4 -6
  152. package/dist/cli/wizard/agent-wizard.d.ts +3 -14
  153. package/dist/cli/wizard/orchestrator-wizard.d.ts +12 -37
  154. package/dist/cli/wizard/prompts.d.ts +6 -16
  155. package/dist/cli.js +4553 -6556
  156. package/dist/cluster/cluster-identity.d.ts +20 -32
  157. package/dist/cluster/cluster-settings-reader.d.ts +50 -77
  158. package/dist/cluster/coordinator-credential.d.ts +4 -5
  159. package/dist/cluster/coordinator.d.ts +76 -148
  160. package/dist/cluster/health-api.d.ts +2 -10
  161. package/dist/cluster/index.d.ts +1 -6
  162. package/dist/cluster/instance-heartbeat.d.ts +26 -42
  163. package/dist/cluster/join-client.d.ts +4 -7
  164. package/dist/cluster/join-handler.d.ts +3 -7
  165. package/dist/cluster/join-token.d.ts +13 -27
  166. package/dist/cluster/leader-gated-scheduler.d.ts +8 -17
  167. package/dist/cluster/orphan-recovery.d.ts +13 -35
  168. package/dist/cluster/peer-auth-coordinator.d.ts +2 -8
  169. package/dist/cluster/peer-client.d.ts +46 -76
  170. package/dist/cluster/peer-credentials.d.ts +24 -70
  171. package/dist/cluster/peer-crypto.d.ts +5 -26
  172. package/dist/cluster/peer-forget.d.ts +3 -3
  173. package/dist/cluster/peer-handler.d.ts +47 -71
  174. package/dist/cluster/peer-registry.d.ts +37 -106
  175. package/dist/cluster/plan-headroom-store.d.ts +4 -6
  176. package/dist/cluster/raft-state.d.ts +4 -13
  177. package/dist/cluster/raft.d.ts +18 -53
  178. package/dist/cluster/reconcile-identity.d.ts +8 -11
  179. package/dist/cluster/rerouted-job-guard.d.ts +7 -11
  180. package/dist/cluster/verified-issuer.d.ts +2 -3
  181. package/dist/cluster/worker-cluster-settings.d.ts +7 -10
  182. package/dist/cluster/worker-eviction.d.ts +16 -26
  183. package/dist/cold-store/load-access-log-range.d.ts +15 -31
  184. package/dist/cold-store/load-event-log-range.d.ts +13 -27
  185. package/dist/cold-store/load-secret-audit-log-range.d.ts +8 -12
  186. package/dist/cold-store/orchestrator-cold-store.d.ts +8 -28
  187. package/dist/cold-store/tables/access-log.d.ts +12 -14
  188. package/dist/cold-store/tables/event-log.d.ts +4 -8
  189. package/dist/cold-store/tables/execution-runs.d.ts +6 -11
  190. package/dist/cold-store/tables/secret-audit-log.d.ts +5 -12
  191. package/dist/concurrency/dispatch-next-queued.d.ts +13 -25
  192. package/dist/concurrency/queue-manager.d.ts +22 -54
  193. package/dist/concurrency/waiters.d.ts +15 -31
  194. package/dist/config/encryption.d.ts +0 -2
  195. package/dist/config/loader.d.ts +0 -1
  196. package/dist/config/reload.d.ts +0 -6
  197. package/dist/config/resolver.d.ts +0 -4
  198. package/dist/config/shared-store.d.ts +0 -2
  199. package/dist/config/types.d.ts +0 -3
  200. package/dist/content-requirements-cache.d.ts +0 -1
  201. package/dist/contexts/context-store.d.ts +0 -2
  202. package/dist/contexts/held-runs.d.ts +0 -2
  203. package/dist/contexts/variable-store.d.ts +0 -2
  204. package/dist/dashboard/attestation-filters.d.ts +13 -18
  205. package/dist/dashboard/handler.d.ts +143 -307
  206. package/dist/db/client.d.ts +2 -6
  207. package/dist/db/deferred-index-build.d.ts +8 -10
  208. package/dist/db/deferred-indexes.d.ts +15 -22
  209. package/dist/db/migration-provider.d.ts +2 -4
  210. package/dist/db/migration-test-harness.d.ts +26 -44
  211. package/dist/db/migrations/001_initial.d.ts +1 -4
  212. package/dist/db/migrations/002_config_versions_key_version.d.ts +5 -8
  213. package/dist/db/migrations/003_access_log.d.ts +10 -15
  214. package/dist/db/migrations/004_rename_bundle_to_source.d.ts +7 -9
  215. package/dist/db/migrations/005_cold_store_chunk_counter.d.ts +4 -10
  216. package/dist/db/migrations/006_runs_jobs_steps_archived_at.d.ts +9 -29
  217. package/dist/db/migrations/007_audit_logs_archived_at.d.ts +11 -30
  218. package/dist/db/migrations/008_event_log_archived_at.d.ts +14 -29
  219. package/dist/db/migrations/009_access_log_trigram.d.ts +4 -8
  220. package/dist/db/migrations/010_cold_store_chunks.d.ts +16 -26
  221. package/dist/db/migrations/011_drop_source_secrets_notify.d.ts +6 -14
  222. package/dist/db/migrations/012_peer_credentials_active_uniq.d.ts +9 -14
  223. package/dist/db/migrations/013_execution_log_bytes.d.ts +5 -13
  224. package/dist/db/migrations/014_kici_events_lease_retry.d.ts +14 -27
  225. package/dist/db/migrations/015_org_settings_customer_scoped.d.ts +12 -17
  226. package/dist/db/migrations/016_org_settings_allow_http_npm.d.ts +4 -6
  227. package/dist/db/migrations/019_generic_sources_change_notify.d.ts +13 -17
  228. package/dist/db/migrations/020_org_settings_dashboard_write_policy.d.ts +5 -8
  229. package/dist/db/migrations/021_check_run_tracking.d.ts +5 -17
  230. package/dist/db/migrations/022_scaler_manager_state.d.ts +10 -20
  231. package/dist/db/migrations/023_dispatch_queue_recovery_deadline.d.ts +7 -18
  232. package/dist/db/migrations/024_dispatch_queue_provisioning_error.d.ts +5 -11
  233. package/dist/db/migrations/025_init_failure.d.ts +5 -9
  234. package/dist/db/migrations/027_workflow_timeout.d.ts +5 -13
  235. package/dist/db/migrations/029_dispatch_queue_attempts.d.ts +4 -10
  236. package/dist/db/migrations/030_held_runs_env_set_null.d.ts +5 -6
  237. package/dist/db/migrations/031_dispatch_queue_ack_deadline.d.ts +6 -12
  238. package/dist/db/migrations/033_org_settings_approval.d.ts +7 -10
  239. package/dist/db/migrations/034_held_runs_generalize.d.ts +10 -18
  240. package/dist/db/migrations/035_pending_workflow_contexts.d.ts +4 -5
  241. package/dist/db/migrations/037_generic_sources_provider_type_local.d.ts +5 -6
  242. package/dist/db/migrations/038_remote_sources.d.ts +5 -7
  243. package/dist/db/migrations/045_host_properties.d.ts +5 -9
  244. package/dist/db/migrations/046_join_token_consumed_by_instance.d.ts +5 -10
  245. package/dist/db/migrations/048_host_reboot_pending.d.ts +6 -12
  246. package/dist/db/migrations/049_held_runs_payload.d.ts +3 -8
  247. package/dist/db/migrations/050_sources_slug.d.ts +4 -5
  248. package/dist/db/migrations/051_binding_host_pattern.d.ts +7 -10
  249. package/dist/db/migrations/052_host_reach_metadata.d.ts +8 -11
  250. package/dist/db/migrations/053_agent_token_single_use.d.ts +6 -10
  251. package/dist/db/migrations/054_local_working_tree.d.ts +4 -6
  252. package/dist/db/migrations/055_agent_token_mandatory_labels.d.ts +6 -11
  253. package/dist/db/migrations/056_execution_jobs_environments.d.ts +4 -11
  254. package/dist/db/migrations/064_execution_jobs_skipped_environments.d.ts +6 -9
  255. package/dist/db/migrations/065_pending_attestations.d.ts +9 -12
  256. package/dist/db/migrations/066_pending_attestations_rejected.d.ts +4 -7
  257. package/dist/db/migrations/068_request_idempotency.d.ts +7 -9
  258. package/dist/db/migrations/069_reroute_tunables.d.ts +6 -14
  259. package/dist/db/migrations/071_batch_accumulation.d.ts +8 -16
  260. package/dist/db/migrations/072_dispatch_queue_run_id_index.d.ts +3 -9
  261. package/dist/db/migrations/074_normalize_zero_concurrency_limit.d.ts +4 -7
  262. package/dist/db/migrations/076_artifacts.d.ts +7 -8
  263. package/dist/db/migrations/078_org_settings_backup_staleness.d.ts +3 -6
  264. package/dist/db/migrations/079_org_settings_scaler_spawn_timeout.d.ts +4 -8
  265. package/dist/db/migrations/080_cluster_settings.d.ts +6 -10
  266. package/dist/db/migrations/081_org_settings_queue_timeout.d.ts +7 -11
  267. package/dist/db/migrations/082_host_s3_reachable.d.ts +5 -10
  268. package/dist/db/migrations/083_org_settings_artifact_caps.d.ts +6 -8
  269. package/dist/db/migrations/084_orchestrator_signing_keys.d.ts +8 -13
  270. package/dist/db/migrations/085_cluster_settings_reroute_flap_grace_ms.d.ts +4 -5
  271. package/dist/db/migrations/086_cluster_settings_max_fanout_hosts.d.ts +3 -3
  272. package/dist/db/migrations/087_cluster_settings_event_router_rate_limit.d.ts +5 -3
  273. package/dist/db/migrations/088_cluster_settings_cache_max_tarball_bytes.d.ts +3 -3
  274. package/dist/db/migrations/089_cluster_settings_cache_ttl_days.d.ts +3 -5
  275. package/dist/db/migrations/090_cluster_settings_concurrency_wait_timeout_ms.d.ts +3 -6
  276. package/dist/db/migrations/091_cluster_settings_agent_token_ttl_ms.d.ts +3 -6
  277. package/dist/db/migrations/092_cluster_settings_version.d.ts +5 -9
  278. package/dist/db/migrations/094_dashboard_encryption_keys.d.ts +9 -14
  279. package/dist/db/migrations/095_dashboard_write_policy_tristate.d.ts +2 -6
  280. package/dist/db/migrations/099_cluster_settings_dashboard_verified_issuer.d.ts +8 -11
  281. package/dist/db/migrations/101_contexts_hold_expiry_drop_default.d.ts +9 -15
  282. package/dist/db/migrations/102_dispatch_queue_agent_id.d.ts +6 -11
  283. package/dist/db/migrations/103_cluster_settings_ownership_db_check_timeout_ms.d.ts +6 -12
  284. package/dist/db/migrations/104_check_run_terminal_sent.d.ts +8 -14
  285. package/dist/db/migrations/105_org_trust_policy.d.ts +5 -7
  286. package/dist/db/migrations/106_cluster_settings_check_run_tracking_ttl_days.d.ts +4 -12
  287. package/dist/db/migrations/107_check_run_tracking_updated_at_index.d.ts +8 -14
  288. package/dist/db/migrations/113_execution_runs_workflow_repo_index.d.ts +10 -19
  289. package/dist/db/migrations/115_global_workflows_cluster_switch.d.ts +2 -3
  290. package/dist/db/migrations/121_org_settings_allow_untrusted_dockerfile_builds.d.ts +7 -8
  291. package/dist/db/migrations/122_host_roster_scaler_managed.d.ts +9 -16
  292. package/dist/db/migrations/123_workflow_registrations_default_branch.d.ts +8 -16
  293. package/dist/db/migrations/125_org_trust_directory.d.ts +13 -21
  294. package/dist/db/migrations/126_held_runs_posted_pending_check.d.ts +10 -16
  295. package/dist/db/migrations/127_org_trust_policy_approval_expiry_seconds.d.ts +8 -16
  296. package/dist/db/migrations/128_execution_runs_global_eval_round.d.ts +6 -11
  297. package/dist/db/migrations/129_execution_runs_dispatch_routing_key.d.ts +8 -11
  298. package/dist/db/migrations/130_scaler_provision_outcomes.d.ts +13 -20
  299. package/dist/db/migrations/131_execution_jobs_git_credentials.d.ts +12 -22
  300. package/dist/db/migrations/132_execution_runs_trigger_event.d.ts +6 -16
  301. package/dist/db/migrations/133_dispatch_queue_source_tar_digest.d.ts +6 -9
  302. package/dist/db/migrations/140_dispatch_queue_canonical_labels.d.ts +22 -40
  303. package/dist/db/migrations/143_execution_jobs_precursor_result.d.ts +9 -18
  304. package/dist/db/migrations/144_execution_runs_registration_window.d.ts +12 -20
  305. package/dist/db/migrations/147_sealed_job_secrets.d.ts +5 -9
  306. package/dist/db/migrations/148_cluster_settings_sealed_secrets_retry_backoff_ms.d.ts +7 -13
  307. package/dist/db/migrations/150_execution_runs_status_epoch.d.ts +6 -11
  308. package/dist/db/migrations/152_org_settings_cache_upload_settle_timeout.d.ts +5 -8
  309. package/dist/db/migrations/157_host_roster_identity_source.d.ts +9 -13
  310. package/dist/db/migrations/159_org_id_widen_to_source_width.d.ts +5 -0
  311. package/dist/db/migrator.d.ts +17 -25
  312. package/dist/db/notify-listener.d.ts +8 -11
  313. package/dist/db/repos/dashboard-encryption-keys-repo.d.ts +9 -10
  314. package/dist/db/synthetic-job-ids.d.ts +6 -8
  315. package/dist/db/types.d.ts +531 -1058
  316. package/dist/deployment/deployment-identity.d.ts +42 -60
  317. package/dist/diagnostics/bundle-reader.d.ts +3 -15
  318. package/dist/diagnostics/bundle-writer.d.ts +5 -12
  319. package/dist/diagnostics/checks/agents.d.ts +1 -7
  320. package/dist/diagnostics/checks/backup.d.ts +7 -10
  321. package/dist/diagnostics/checks/certs.d.ts +1 -6
  322. package/dist/diagnostics/checks/config.d.ts +2 -5
  323. package/dist/diagnostics/checks/db.d.ts +1 -1
  324. package/dist/diagnostics/checks/disk.d.ts +1 -6
  325. package/dist/diagnostics/checks/firecracker-network.d.ts +3 -3
  326. package/dist/diagnostics/checks/index.d.ts +0 -6
  327. package/dist/diagnostics/checks/retention.d.ts +3 -6
  328. package/dist/diagnostics/checks/scaler.d.ts +3 -7
  329. package/dist/diagnostics/checks/ws.d.ts +1 -6
  330. package/dist/diagnostics/fleet-collector.d.ts +11 -14
  331. package/dist/diagnostics/fleet-constants.d.ts +1 -3
  332. package/dist/diagnostics/fleet-selection.d.ts +3 -7
  333. package/dist/diagnostics/fleet-topology.d.ts +2 -6
  334. package/dist/diagnostics/fleet-wiring.d.ts +6 -12
  335. package/dist/diagnostics/index.d.ts +0 -5
  336. package/dist/diagnostics/runner.d.ts +4 -8
  337. package/dist/diagnostics/types.d.ts +10 -21
  338. package/dist/drain/drain-controller.d.ts +16 -22
  339. package/dist/entry-helpers.d.ts +0 -2
  340. package/dist/events/circuit-breaker.d.ts +0 -3
  341. package/dist/events/event-router.d.ts +1 -2
  342. package/dist/events/event-store.d.ts +0 -9
  343. package/dist/events/trust-store.d.ts +0 -3
  344. package/dist/events/types.d.ts +0 -9
  345. package/dist/firecracker/host-network.d.ts +24 -30
  346. package/dist/firecracker/net-interfaces.d.ts +4 -7
  347. package/dist/helpers/rate-limiter.d.ts +0 -1
  348. package/dist/index.js +251 -486
  349. package/dist/metrics/agent-metrics-aggregator.d.ts +24 -67
  350. package/dist/metrics/metrics-reporter.d.ts +4 -13
  351. package/dist/metrics/prometheus.d.ts +47 -81
  352. package/dist/orchestrator-core.d.ts +3 -7
  353. package/dist/pipeline/content-filter.d.ts +20 -30
  354. package/dist/pipeline/cross-source-tally.d.ts +7 -8
  355. package/dist/pipeline/decorating-secret-resolver.d.ts +4 -8
  356. package/dist/pipeline/degraded-reason.d.ts +3 -4
  357. package/dist/pipeline/direct-ingress-deps.d.ts +15 -24
  358. package/dist/pipeline/dispatch-matched-workflow.d.ts +289 -525
  359. package/dist/pipeline/flatten-lock-steps.d.ts +4 -6
  360. package/dist/pipeline/global-dispatch-identity.d.ts +5 -10
  361. package/dist/pipeline/global-eval-round.d.ts +65 -151
  362. package/dist/pipeline/global-round-hold.d.ts +5 -7
  363. package/dist/pipeline/held-context-data.d.ts +5 -8
  364. package/dist/pipeline/held-round-registrations.d.ts +8 -11
  365. package/dist/pipeline/install-gate.d.ts +15 -25
  366. package/dist/pipeline/install-secrets-resolver.d.ts +24 -34
  367. package/dist/pipeline/internal-event-pipeline.d.ts +45 -62
  368. package/dist/pipeline/invoke-gate.d.ts +27 -40
  369. package/dist/pipeline/job-contexts.d.ts +19 -36
  370. package/dist/pipeline/manual-schedule.d.ts +7 -13
  371. package/dist/pipeline/needs-scheduler.d.ts +29 -46
  372. package/dist/pipeline/pending-workflow-context.d.ts +14 -28
  373. package/dist/pipeline/process-webhook.d.ts +88 -123
  374. package/dist/pipeline/processor.d.ts +209 -355
  375. package/dist/pipeline/remote-source-store.d.ts +5 -8
  376. package/dist/pipeline/request-idempotency.d.ts +10 -13
  377. package/dist/pipeline/rerun-global.d.ts +6 -7
  378. package/dist/pipeline/rerun-inputs.d.ts +23 -37
  379. package/dist/pipeline/rerun.d.ts +34 -57
  380. package/dist/pipeline/resolve-sandbox-grant.d.ts +5 -10
  381. package/dist/pipeline/resume-workflow.d.ts +28 -34
  382. package/dist/pipeline/route-or-dispatch-jobs.d.ts +19 -30
  383. package/dist/pipeline/run-event-context.d.ts +16 -21
  384. package/dist/pipeline/sandbox-allowlist-reader.d.ts +7 -11
  385. package/dist/pipeline/security-hold-check.d.ts +56 -80
  386. package/dist/pipeline/test-pipeline.d.ts +21 -46
  387. package/dist/pipeline/unbound-job-context.d.ts +6 -9
  388. package/dist/pipeline/undispatched-hold-checks.d.ts +4 -6
  389. package/dist/pipeline/wave-scheduler.d.ts +15 -22
  390. package/dist/pipeline/webhook-payload-store.d.ts +3 -10
  391. package/dist/pipeline/workflow-lock-at-sha.d.ts +14 -20
  392. package/dist/policy/dashboard-write-policy.d.ts +1 -1
  393. package/dist/provider-registry.d.ts +0 -19
  394. package/dist/providers/generic/index.d.ts +0 -2
  395. package/dist/providers/generic/normalizer.d.ts +0 -1
  396. package/dist/providers/generic/verification.d.ts +0 -8
  397. package/dist/providers/github/auth.d.ts +0 -1
  398. package/dist/providers/github/changed-files.d.ts +2 -1
  399. package/dist/providers/github/file-contents.d.ts +0 -4
  400. package/dist/providers/github/lock-file.d.ts +0 -4
  401. package/dist/providers/github/normalizer.d.ts +1 -9
  402. package/dist/providers/local/index.d.ts +1 -2
  403. package/dist/providers/local/lock-file-fetcher.d.ts +0 -4
  404. package/dist/providers/local/normalizer.d.ts +0 -10
  405. package/dist/providers/local/repo-url-builder.d.ts +0 -2
  406. package/dist/providers/universal-git/clone-token.d.ts +0 -2
  407. package/dist/providers/universal-git/lock-file.d.ts +0 -2
  408. package/dist/providers/universal-git/normalizer.d.ts +0 -2
  409. package/dist/queue/bootstrap.d.ts +3 -15
  410. package/dist/queue/cleanup.d.ts +29 -50
  411. package/dist/queue/depth-refresher.d.ts +21 -39
  412. package/dist/queue/job-queue.d.ts +112 -163
  413. package/dist/queue/retention.d.ts +23 -36
  414. package/dist/queue/scheduled-job.d.ts +17 -39
  415. package/dist/queue/terminalize-unroutable.d.ts +21 -18
  416. package/dist/queue/unroutable-probe.d.ts +15 -22
  417. package/dist/registration/extractor.d.ts +0 -6
  418. package/dist/registration/registration-index.d.ts +0 -6
  419. package/dist/registration/registration-store.d.ts +0 -9
  420. package/dist/reporting/agent-failure-category.d.ts +3 -5
  421. package/dist/reporting/check-run-reporter.d.ts +142 -316
  422. package/dist/reporting/check-run-summary.d.ts +16 -35
  423. package/dist/reporting/check-run-tracking-store.d.ts +54 -107
  424. package/dist/reporting/execution-tracker.d.ts +356 -526
  425. package/dist/reporting/fs-log-storage.d.ts +31 -33
  426. package/dist/reporting/job-check-run-completion.d.ts +14 -22
  427. package/dist/reporting/log-chunk-sink.d.ts +11 -16
  428. package/dist/reporting/log-pull-handler.d.ts +4 -13
  429. package/dist/reporting/log-retention.d.ts +3 -4
  430. package/dist/reporting/log-storage.d.ts +24 -52
  431. package/dist/reporting/log-writer.d.ts +28 -56
  432. package/dist/reporting/peer-log-normalize.d.ts +4 -8
  433. package/dist/reporting/run-aggregator.d.ts +6 -11
  434. package/dist/reporting/run-summary-fields.d.ts +5 -8
  435. package/dist/reporting/s3-log-storage.d.ts +31 -50
  436. package/dist/reporting/step-display-order.d.ts +11 -21
  437. package/dist/reporting/step-log-buffer.d.ts +7 -28
  438. package/dist/reporting/step-log-reader.d.ts +11 -19
  439. package/dist/routes/admin-access-log.d.ts +4 -6
  440. package/dist/routes/admin-auth.d.ts +19 -38
  441. package/dist/routes/admin-backends.d.ts +3 -14
  442. package/dist/routes/admin-cluster-name.d.ts +13 -21
  443. package/dist/routes/admin-cluster-settings.d.ts +6 -9
  444. package/dist/routes/admin-config.d.ts +7 -19
  445. package/dist/routes/admin-contexts.d.ts +6 -13
  446. package/dist/routes/admin-db.d.ts +5 -10
  447. package/dist/routes/admin-event-dlq.d.ts +3 -5
  448. package/dist/routes/admin-event-inspect.d.ts +3 -4
  449. package/dist/routes/admin-event-log.d.ts +3 -7
  450. package/dist/routes/admin-events.d.ts +16 -30
  451. package/dist/routes/admin-held-runs.d.ts +52 -76
  452. package/dist/routes/admin-maintenance.d.ts +3 -6
  453. package/dist/routes/admin-orchestrator-drain.d.ts +0 -2
  454. package/dist/routes/admin-org-settings.d.ts +8 -14
  455. package/dist/routes/admin-peer-forget.d.ts +0 -1
  456. package/dist/routes/admin-queue-execution.d.ts +3 -3
  457. package/dist/routes/admin-registrations.d.ts +3 -12
  458. package/dist/routes/admin-runs.d.ts +16 -29
  459. package/dist/routes/admin-scaler-orphans.d.ts +4 -4
  460. package/dist/routes/admin-scaler-reload.d.ts +5 -8
  461. package/dist/routes/admin-scheduled-jobs.d.ts +3 -4
  462. package/dist/routes/admin-sources.d.ts +20 -29
  463. package/dist/routes/admin-trust-policy.d.ts +31 -48
  464. package/dist/routes/admin.d.ts +67 -94
  465. package/dist/routes/caller-identity.d.ts +45 -0
  466. package/dist/routes/capabilities.d.ts +8 -13
  467. package/dist/routes/diagnostics.d.ts +2 -10
  468. package/dist/routes/fleet.d.ts +1 -2
  469. package/dist/routes/github-webhook.d.ts +2 -5
  470. package/dist/routes/health.d.ts +6 -19
  471. package/dist/routes/provenance-oidc.d.ts +3 -3
  472. package/dist/routes/test-direct.d.ts +46 -0
  473. package/dist/routes/uploads.d.ts +14 -19
  474. package/dist/routes/webhooks.d.ts +2 -24
  475. package/dist/scaler/agent-binary-location.d.ts +77 -0
  476. package/dist/scaler/agent-fit.d.ts +2 -2
  477. package/dist/scaler/backend-factory.d.ts +10 -18
  478. package/dist/scaler/bare-metal-backend.d.ts +28 -45
  479. package/dist/scaler/claim-store.d.ts +20 -43
  480. package/dist/scaler/config.d.ts +10 -37
  481. package/dist/scaler/container-backend.d.ts +22 -35
  482. package/dist/scaler/container-hostconfig.d.ts +10 -16
  483. package/dist/scaler/container-routing.d.ts +10 -13
  484. package/dist/scaler/disk-guard.d.ts +2 -3
  485. package/dist/scaler/event-backend.d.ts +33 -58
  486. package/dist/scaler/event-provision-reaper.d.ts +61 -84
  487. package/dist/scaler/failure-tracker.d.ts +6 -13
  488. package/dist/scaler/file-tail.d.ts +6 -19
  489. package/dist/scaler/firecracker-api.d.ts +19 -63
  490. package/dist/scaler/firecracker-backend.d.ts +142 -258
  491. package/dist/scaler/host-access.d.ts +7 -10
  492. package/dist/scaler/index.d.ts +3 -6
  493. package/dist/scaler/ip-allocator.d.ts +30 -82
  494. package/dist/scaler/label-matcher.d.ts +14 -35
  495. package/dist/scaler/log-forwarder.d.ts +6 -25
  496. package/dist/scaler/machine-ledger.d.ts +39 -86
  497. package/dist/scaler/manager.d.ts +517 -787
  498. package/dist/scaler/pending-scale-sweeper.d.ts +8 -11
  499. package/dist/scaler/reap-orphans.d.ts +8 -12
  500. package/dist/scaler/resolve-container-auth.d.ts +12 -21
  501. package/dist/scaler/scaler-events.d.ts +2 -5
  502. package/dist/scaler/scaler-state-store.d.ts +127 -189
  503. package/dist/scaler/spawn-errors.d.ts +1 -4
  504. package/dist/scaler/startup-orphan-sweep.d.ts +3 -4
  505. package/dist/scaler/startup-tools-check.d.ts +21 -0
  506. package/dist/scaler/types.d.ts +142 -255
  507. package/dist/scaler/vm-job-bindings.d.ts +5 -9
  508. package/dist/scaler/warm-pool.d.ts +46 -93
  509. package/dist/secrets/audit-logger.d.ts +0 -3
  510. package/dist/secrets/backend-health.d.ts +0 -9
  511. package/dist/secrets/backend-registry.d.ts +0 -9
  512. package/dist/secrets/cleanup.d.ts +0 -1
  513. package/dist/secrets/config.d.ts +0 -3
  514. package/dist/secrets/ephemeral-keys.d.ts +0 -3
  515. package/dist/secrets/pg-secret-store.d.ts +0 -3
  516. package/dist/secrets/rbac.d.ts +5 -7
  517. package/dist/secrets/routing-key-scope.d.ts +1 -0
  518. package/dist/secrets/secret-output-store.d.ts +0 -6
  519. package/dist/secrets/secret-resolver.d.ts +2 -6
  520. package/dist/secrets/token-manager.d.ts +1 -4
  521. package/dist/secrets/vault-secret-store.d.ts +0 -13
  522. package/dist/security/comment-handler.d.ts +0 -2
  523. package/dist/security/workflow-diff.d.ts +1 -1
  524. package/dist/server.js +49004 -53782
  525. package/dist/sources/source-manager.d.ts +0 -3
  526. package/dist/sources/source-store.d.ts +0 -9
  527. package/dist/sources/source-validator.d.ts +0 -3
  528. package/dist/stale-detector/all-terminal-runs.d.ts +8 -11
  529. package/dist/stale-detector/gate-deadline-detector.d.ts +14 -19
  530. package/dist/stale-detector/reboot-deadline-sweep.d.ts +7 -11
  531. package/dist/stale-detector/stale-dispatch-candidates.d.ts +13 -20
  532. package/dist/stale-detector/stale-run-detector.d.ts +74 -121
  533. package/dist/stale-detector/workflow-deadline-detector.d.ts +15 -43
  534. package/dist/standalone.js +9342 -13077
  535. package/dist/storage/blob-routes.d.ts +10 -19
  536. package/dist/storage/filesystem.d.ts +19 -29
  537. package/dist/storage/index.d.ts +2 -10
  538. package/dist/storage/key-discriminator.d.ts +8 -10
  539. package/dist/storage/loopback-guard.d.ts +27 -45
  540. package/dist/storage/s3.d.ts +26 -53
  541. package/dist/storage/sign-url.d.ts +7 -22
  542. package/dist/storage/types.d.ts +46 -72
  543. package/dist/webhook/event-log.d.ts +0 -2
  544. package/dist/webhook/generic-sources.d.ts +0 -21
  545. package/dist/webhook/ingest-admission.d.ts +0 -1
  546. package/dist/webhook/relay-buffer.d.ts +2 -2
  547. package/dist/webhook/verify-inbound.d.ts +0 -1
  548. package/dist/worker/in-memory-execution-tracker.d.ts +9 -31
  549. package/dist/worker/in-memory-job-queue.d.ts +32 -72
  550. package/dist/worker/peer-outbox.d.ts +5 -8
  551. package/dist/worker/reroute-dispatch.d.ts +4 -6
  552. package/dist/worker/static-agent-token-store.d.ts +6 -27
  553. package/dist/worker/worker-outbox-relay.d.ts +2 -2
  554. package/dist/worker/worker-status.d.ts +3 -20
  555. package/dist/ws/agent-api-registry.d.ts +8 -27
  556. package/dist/ws/agent-handler.d.ts +63 -110
  557. package/dist/ws/agent-heartbeat.d.ts +5 -12
  558. package/dist/ws/bringup-api.d.ts +31 -38
  559. package/dist/ws/dashboard-backends-handler.d.ts +12 -22
  560. package/dist/ws/dashboard-context-handler.d.ts +37 -80
  561. package/dist/ws/dashboard-diagnostics-handler.d.ts +8 -25
  562. package/dist/ws/dashboard-dispatch-guard.d.ts +3 -4
  563. package/dist/ws/dashboard-fleet-handler.d.ts +9 -13
  564. package/dist/ws/dashboard-fleet-write-handler.d.ts +7 -21
  565. package/dist/ws/dashboard-global-workflows-handler.d.ts +22 -44
  566. package/dist/ws/dashboard-registrations-handler.d.ts +10 -27
  567. package/dist/ws/dashboard-run-state-handler.d.ts +10 -13
  568. package/dist/ws/event-buffer.d.ts +3 -6
  569. package/dist/ws/execution-status-frame.d.ts +7 -10
  570. package/dist/ws/failure-messages.d.ts +9 -14
  571. package/dist/ws/fleet-agent-collector.d.ts +6 -12
  572. package/dist/ws/fleet-runs-on-all.d.ts +1 -6
  573. package/dist/ws/git-credential-relay.d.ts +12 -20
  574. package/dist/ws/inventory-api.d.ts +4 -5
  575. package/dist/ws/observer-registry.d.ts +14 -59
  576. package/dist/ws/ownership-gate.d.ts +1 -1
  577. package/dist/ws/platform-client.d.ts +21 -30
  578. package/dist/ws/replay-chunker.d.ts +7 -10
  579. package/dist/ws/server-options.d.ts +5 -9
  580. package/dist/ws/test-relay-handlers.d.ts +46 -63
  581. package/installer-image-digests.json +3 -3
  582. package/package.json +6 -5
  583. package/sbom.spdx.json +53 -53
  584. package/dist/__test-helpers__/fake-scaler-state-store.d.ts +0 -24
  585. package/dist/__test-helpers__/mock-db-query.d.ts +0 -129
  586. package/dist/__test-helpers__/mock-db.d.ts +0 -134
  587. package/dist/__test-helpers__/mock-ws.d.ts +0 -13
  588. package/dist/__test-helpers__/peer-mutual-auth.d.ts +0 -42
  589. package/dist/__test-helpers__/scratch-db.d.ts +0 -16
  590. package/dist/__test-helpers__/test-db.d.ts +0 -34
  591. package/dist/pipeline/dispatch-matched-workflow.test-helpers.d.ts +0 -121
  592. package/dist/scaler/container-spawn.d.ts +0 -28
@@ -1,41 +1,31 @@
1
1
  import { type Kysely } from 'kysely';
2
2
  import type { Database, AgentTokenRow } from '../db/types.js';
3
3
  /**
4
- * `created_by` marker prefix for single-use bootstrap (init-runner) tokens.
5
- * A bootstrap token stores `created_by: '<this prefix><targetAgentId>'` so the
6
- * register-time identity binding (agent-handler Gate 2) and the single-use
7
- * consume check can both recognize it and resolve the bound agent id.
4
+ * `created_by` prefix of single-use bootstrap (init-runner) tokens, stored as
5
+ * `'<this prefix><targetAgentId>'` so the register-time identity binding
6
+ * (agent-handler Gate 2) and the single-use consume check can resolve the
7
+ * bound agent id.
8
8
  */
9
9
  export declare const BOOTSTRAP_CREATED_BY_PREFIX = "bootstrap:";
10
10
  /**
11
11
  * Resolve the agent id an ephemeral token binds its holder to. Scaler tokens
12
- * store the id verbatim in `created_by`; bootstrap tokens store it behind
13
- * `BOOTSTRAP_CREATED_BY_PREFIX`. Returns the bare target agent id in both cases.
12
+ * store it verbatim in `created_by`; bootstrap tokens behind
13
+ * `BOOTSTRAP_CREATED_BY_PREFIX`.
14
14
  */
15
15
  export declare function boundAgentIdFromCreatedBy(createdBy: string): string;
16
- /**
17
- * Safe token row shape returned from list/validate (excludes token_hash).
18
- */
16
+ /** Token row returned from list/validate, without token_hash. */
19
17
  export type SafeAgentTokenRow = Omit<AgentTokenRow, 'token_hash'>;
20
- /**
21
- * Manages agent authentication tokens.
22
- *
23
- * Tokens are kat_ + 64 hex chars (32 random bytes = 256 bits).
24
- * Only the SHA-256 hash is stored; the plaintext is returned once at generation time.
25
- */
26
18
  export declare class AgentTokenStore {
27
19
  private readonly db;
28
20
  constructor(db: Kysely<Database>);
29
21
  /**
30
- * Create a static (long-lived) agent token.
22
+ * Create a static token: no expiry, for manually-registered agents.
31
23
  *
32
- * Static tokens have no expiry and are intended for manually-registered agents.
33
- *
34
- * @param opts.labels - Optional agent labels this token is authorized for.
35
- * @param opts.mandatoryLabels - Optional taint labels (a Kubernetes-taint-style
36
- * gate): a static agent registering with this token only accepts a job when
37
- * every label here appears in the job's required labels. Undefined = no taint.
38
- * @param opts.createdBy - Optional creator identifier (e.g. "cli:admin").
24
+ * @param opts.labels - Agent labels this token is authorized for.
25
+ * @param opts.mandatoryLabels - Kubernetes-taint-style gate: an agent
26
+ * registering with this token only accepts a job whose required labels
27
+ * include every label here. Undefined = no taint.
28
+ * @param opts.createdBy - Creator identifier (e.g. "cli:admin").
39
29
  * @returns The plaintext token (shown once) and the DB row ID.
40
30
  */
41
31
  createStatic(opts: {
@@ -47,29 +37,22 @@ export declare class AgentTokenStore {
47
37
  id: string;
48
38
  }>;
49
39
  /**
50
- * Create an ephemeral (short-lived) agent token.
51
- *
52
- * Ephemeral tokens are issued by the scaler for auto-provisioned agents
53
- * and expire after the specified TTL.
40
+ * Create an ephemeral token, issued by the scaler for an auto-provisioned
41
+ * agent and expiring after `ttlMs`.
54
42
  *
55
- * @param agentId - The agent ID this token is for (used as created_by).
56
- * @param labels - Agent labels this token is authorized for.
57
- * @param ttlMs - Time-to-live in milliseconds.
43
+ * @param agentId - Stored as created_by.
58
44
  * @returns The plaintext token (shown once).
59
45
  */
60
46
  createEphemeral(agentId: string, labels: string[], ttlMs: number): Promise<string>;
61
47
  /**
62
- * Mint a single-use, short-TTL bootstrap token for an init-runner bring-up.
63
- *
64
- * The token is stored as `agent_type: 'ephemeral'` (so the existing expiry
65
- * cleanup reaps it) and is bound to exactly the init-runner label set. It is
66
- * single-use: `consumeBootstrapToken` sets `consumed_at` on first
67
- * `agent.register`, and a second register is rejected. A leaked token is
68
- * therefore inert after enrollment AND after its short TTL elapses.
48
+ * Mint a single-use, short-TTL bootstrap token for an init-runner bring-up,
49
+ * bound to exactly the init-runner label set. Stored as `agent_type:
50
+ * 'ephemeral'` so the expiry cleanup reaps it. `consumeBootstrapToken` sets
51
+ * `consumed_at` on first `agent.register` and a second register is rejected,
52
+ * so a leaked token is inert after enrollment AND after its TTL.
69
53
  *
70
54
  * @param targetAgentId - The agent id the init-runner will register as.
71
- * @param ttlMs - Time-to-live in milliseconds (short, ~10 min).
72
- * @param labels - The init-runner labels the token authorizes.
55
+ * @param ttlMs - Short, ~10 min.
73
56
  * @returns The plaintext token (shown once) and the DB row ID.
74
57
  */
75
58
  mintBootstrapToken(opts: {
@@ -81,58 +64,32 @@ export declare class AgentTokenStore {
81
64
  id: string;
82
65
  }>;
83
66
  /**
84
- * Consume a single-use bootstrap token by id. Sets `consumed_at` only when it
85
- * is currently null, so the first register wins and any subsequent attempt
86
- * with the same token returns false (already consumed). Returns true when
87
- * this call performed the consumption.
67
+ * Consume a bootstrap token. Sets `consumed_at` only while null, so the first
68
+ * register wins; returns true only when this call consumed it.
88
69
  */
89
70
  consumeBootstrapToken(id: string): Promise<boolean>;
90
71
  /**
91
- * Validate a plaintext token against stored hashes.
92
- *
93
- * Checks that the token exists, is not revoked, and has not expired.
94
- * On success, fires a non-blocking update to last_seen_at.
72
+ * Validate a plaintext token: exists, not revoked, not consumed, not expired.
73
+ * On success, fires a non-blocking last_seen_at update.
95
74
  *
96
- * @param token - The plaintext token to validate.
97
75
  * @returns The token row (without hash) if valid, null otherwise.
98
76
  */
99
77
  validate(token: string): Promise<SafeAgentTokenRow | null>;
100
- /**
101
- * Revoke a token by ID.
102
- *
103
- * Sets revoked_at to now. Returns true if the token was revoked,
104
- * false if it was already revoked or not found.
105
- *
106
- * @param id - The token row ID to revoke.
107
- * @returns True if the token was newly revoked.
108
- */
78
+ /** Revoke a token; false when it was already revoked or not found. */
109
79
  revoke(id: string): Promise<boolean>;
110
- /**
111
- * List all non-revoked tokens (excludes token_hash for security).
112
- *
113
- * @param opts.agentType - Optional filter by agent type ('static' | 'ephemeral').
114
- * @returns Array of token rows without the hash field.
115
- */
80
+ /** List non-revoked tokens, newest first, without token_hash. */
116
81
  list(opts?: {
117
82
  agentType?: string;
118
83
  }): Promise<SafeAgentTokenRow[]>;
119
84
  /**
120
- * Clean up expired ephemeral tokens.
121
- *
122
- * Deletes rows where `expires_at < now()` and `agent_type = 'ephemeral'`.
123
- * Called periodically by the orchestrator (every 60s) to keep the
124
- * table from growing without bound.
85
+ * Delete expired ephemeral tokens. The orchestrator calls it every 60s so
86
+ * the table cannot grow without bound.
125
87
  *
126
- * Optional `onBeforeDelete` callback is invoked once with the list
127
- * of expired token IDs **before** the DELETE runs. The orchestrator
128
- * uses this to call `agentRegistry.disconnectByTokenId(id)` for
129
- * each expired row, so any in-flight WS that survived the
130
- * per-token kick timer (e.g. across a process restart that wiped
131
- * the in-memory `tokenExpiryTimers` map) is still kicked. Closes
132
- * the sister gap to the revocation finding.
88
+ * `onBeforeDelete` gets the expired ids once, **before** the DELETE; the
89
+ * orchestrator calls `agentRegistry.disconnectByTokenId(id)` with each, so a
90
+ * WS that outlived the per-token kick timer (e.g. a restart wiped the
91
+ * in-memory `tokenExpiryTimers` map) is still kicked.
133
92
  *
134
- * @param opts.onBeforeDelete - Optional sync/async callback invoked
135
- * with expired token IDs before the DELETE.
136
93
  * @returns Number of deleted rows.
137
94
  */
138
95
  cleanupExpired(opts?: {
@@ -1,12 +1,10 @@
1
1
  /**
2
2
  * Availability gate for version-keyed agent packages.
3
3
  *
4
- * The fleet auto-upgrade convergence NEVER rolls a host to a version whose
5
- * self-contained payload objects don't exist in the cache bucket — that would
6
- * stage stale/absent bytes (or leave the fleet at a version skew). This helper
7
- * `head`s each platform's payload object and reports which are missing, so the
8
- * caller can HOLD (the convergence gate) or skip re-producing (the upgrade
9
- * hook). It never throws — the caller decides hold-vs-alarm.
4
+ * Fleet auto-upgrade NEVER rolls a host to a version whose payload objects are
5
+ * absent from the cache bucket: that stages stale or absent bytes, or leaves a
6
+ * version skew. It never throws; the caller holds (convergence gate) or skips
7
+ * re-producing (upgrade hook).
10
8
  */
11
9
  import type { AgentPlatform } from '@kici-dev/shared';
12
10
  import { type AgentPackageDownloadStorage } from './download.js';
@@ -19,9 +17,8 @@ export interface PayloadAvailability {
19
17
  }
20
18
  /**
21
19
  * Check that a version's agent payloads exist for every requested platform.
22
- * Fail-closed by construction: an absent object lands in `missing`, so a caller
23
- * that gates on `available` can never converge onto a version whose bytes are
24
- * not present.
20
+ * Fail-closed: an absent object lands in `missing`, so gating on `available`
21
+ * never converges onto a version whose bytes are not present.
25
22
  */
26
23
  export declare function assertPayloadsAvailable(storage: AgentPackageDownloadStorage, version: string, platforms: AgentPlatform[]): Promise<PayloadAvailability>;
27
24
  //# sourceMappingURL=availability.d.ts.map
@@ -1,9 +1,8 @@
1
1
  import type { AgentPlatform } from '@kici-dev/shared';
2
2
  /**
3
- * Read side of the cache-bucket agent-package store: mint a box-routable
4
- * presigned GET URL and read the payload's sha256 sidecar. Satisfied by the
5
- * orchestrator S3 cache storage client (`getUrl` presigns against the external,
6
- * container-routable endpoint; `get` reads the `.sha256` object).
3
+ * Read side of the cache-bucket agent-package store, satisfied by the orchestrator
4
+ * S3 cache storage client: `getUrl` presigns against the external,
5
+ * container-routable endpoint; `get` reads the `.sha256` sidecar.
7
6
  */
8
7
  export interface AgentPackageDownloadStorage {
9
8
  getUrl(key: string): Promise<string | null>;
@@ -15,11 +14,9 @@ export declare function agentPackageHashKey(version: string, platform: AgentPlat
15
14
  /** Parse a `sha256sum`-style `<hex> <name>` sidecar into the leading hex token. */
16
15
  export declare function parseSha256Sidecar(contents: string): string | null;
17
16
  /**
18
- * Mint a presigned GET URL for a version-keyed agent payload and read its
19
- * sha256 sidecar. Returns null when the payload object is absent (an
20
- * unresolvable version) so the caller fails fast with a clear error rather than
21
- * staging stale bytes. The URL is box-routable (external endpoint); no standing
22
- * S3 credential ever leaves the orchestrator.
17
+ * Returns null when the payload object is absent (an unresolvable version), so
18
+ * the caller fails fast rather than staging stale bytes. The URL is box-routable
19
+ * (external endpoint); no standing S3 credential ever leaves the orchestrator.
23
20
  */
24
21
  export declare function presignAgentPackageDownload(storage: AgentPackageDownloadStorage, version: string, platform: AgentPlatform): Promise<{
25
22
  url: string;
@@ -7,24 +7,21 @@ export interface InstallClosureOptions {
7
7
  npmRegistry?: string;
8
8
  }
9
9
  /**
10
- * The `@kici-dev/agent@<spec>` argument for the install.
10
+ * The `@kici-dev/agent@<spec>` install argument.
11
11
  *
12
- * In production the agent is published to npm at the exact single-version, so we
13
- * pin it verbatim (`@kici-dev/agent@0.2.0`) — the payload is provably the version
14
- * the orchestrator runs. In development (`KICI_DEV=true`) the local Verdaccio
15
- * registry only carries prerelease builds (`<version>-<buildCounter>`), so we
16
- * match the current base version's prereleases instead — the same
17
- * prerelease-compatible resolution the rest of the dev tooling uses.
12
+ * In production it pins the exact single-version (`@kici-dev/agent@0.2.0`), so the payload is
13
+ * provably the version the orchestrator runs. In development (`KICI_DEV=true`) local Verdaccio
14
+ * carries only prereleases (`<version>-<buildCounter>`), so it matches the base version's
15
+ * prereleases, as the rest of the dev tooling does.
18
16
  */
19
17
  export declare function agentInstallSpec(version: string): string;
20
18
  /**
21
19
  * `npm install @kici-dev/agent@<version>` for the TARGET platform into prefixDir.
22
20
  *
23
- * `--cpu`/`--os` make npm resolve every transitive optional native binding (incl.
24
- * `@oxc-transform/binding-<platform>`) for the target platform, not the host —
25
- * the same mechanism `scripts/package.mjs` relies on for oxc. `--omit=dev` keeps
26
- * the closure to the runtime tree. When the published `@kici-dev/agent` ships an
27
- * `npm-shrinkwrap.json`, npm resolves the exact released + tested tree.
21
+ * `--cpu`/`--os` resolve every transitive optional native binding (incl.
22
+ * `@oxc-transform/binding-<platform>`) for the target, not the host, as `scripts/package.mjs`
23
+ * does for oxc. `--omit=dev` keeps the runtime tree only. A published `npm-shrinkwrap.json`
24
+ * pins the exact released + tested tree.
28
25
  */
29
26
  export declare function installAgentClosure(opts: InstallClosureOptions): Promise<void>;
30
27
  //# sourceMappingURL=install-closure.d.ts.map
@@ -11,16 +11,12 @@ export interface DownloadNodeOptions {
11
11
  * Download + SHASUMS256-verify the Node runtime for a glibc-Linux platform and
12
12
  * vendor `node` + `npm` into the payload.
13
13
  *
14
- * Fetches the release's SHASUMS256.txt, finds the entry for the target
15
- * platform's `.tar.gz`, downloads the archive, verifies its sha256 against that
16
- * entry, and extracts the runtime into `<prefix>/` (where `<prefix>` is the
17
- * grandparent of `destBinPath`): the `node` binary at `<prefix>/bin/node`, the
18
- * `bin/npm` + `bin/npx` launcher symlinks, and the bundled npm package under
19
- * `<prefix>/lib/node_modules/npm`. npm is required so the booted agent can
20
- * install a workflow's `.kici/` dependencies on a box with no system Node —
21
- * `resolveNpm()` finds it at `<nodeDir>/../lib/node_modules/npm/bin/npm-cli.js`.
22
- * The vendored Node is what the produced payload boots on — no system Node is
23
- * ever used.
14
+ * Extracts into `<prefix>/` (the grandparent of `destBinPath`): `bin/node`, the
15
+ * `bin/npm` + `bin/npx` launcher symlinks, and `lib/node_modules/npm`. npm is
16
+ * required so the booted agent can install a workflow's `.kici/` dependencies on
17
+ * a box with no system Node — `resolveNpm()` finds it at
18
+ * `<nodeDir>/../lib/node_modules/npm/bin/npm-cli.js`. The payload boots on the
19
+ * vendored Node; no system Node is ever used.
24
20
  */
25
21
  export declare function downloadNodeBinary(opts: DownloadNodeOptions): Promise<void>;
26
22
  //# sourceMappingURL=node-binary.d.ts.map
@@ -1,12 +1,10 @@
1
1
  /**
2
2
  * The members of an official Node.js Linux or macOS archive that a KiCI payload
3
3
  * vendors, relative to the archive's `node-v<version>-<os>-<arch>/` directory:
4
- * the `node` binary, the `npm` and `npx` launchers, and the bundled npm package.
5
- * With them in place, the agent's `resolveNpm()` finds
6
- * `<nodeDir>/../lib/node_modules/npm/bin/npm-cli.js` beside the vendored `node`,
7
- * so the builder role needs no npm on the host.
4
+ * with them the agent's `resolveNpm()` finds npm beside the vendored `node`, so
5
+ * the builder role needs no npm on the host.
8
6
  *
9
- * This module has no imports so that repository tooling can read the list:
7
+ * No imports, so repository tooling can read the list:
10
8
  * `scripts/lib/node-dist.mjs` (the standalone package builder) keeps its own
11
9
  * copy, and its test pins the two lists equal.
12
10
  */
@@ -1,12 +1,11 @@
1
1
  /**
2
- * Auto-refresh of version-keyed agent payloads on `orchestrator upgrade`.
2
+ * Auto-refresh of version-keyed agent payloads on `orchestrator upgrade`
3
+ * (auto-deploy ⟹ auto-upgrade ⟹ auto-package).
3
4
  *
4
- * The automation-completeness principle: auto-deploy ⟹ auto-upgrade ⟹
5
- * auto-package. After the orchestrator is upgraded to version V, this hook
6
- * produces + uploads `agent-packages/V/kici-agent-<platform>.tar.gz(.sha256)`
7
- * for the platforms the fleet already runs, so the convergence gate finds the
8
- * bytes it needs with no separate operator step. Idempotent: a platform whose
9
- * payload already exists for V is skipped, so a re-run is a no-op.
5
+ * After an upgrade to version V, produces + uploads
6
+ * `agent-packages/V/kici-agent-<platform>.tar.gz(.sha256)` for the fleet's platforms, so the
7
+ * convergence gate finds its bytes with no operator step. Idempotent: an existing payload for V
8
+ * is skipped.
10
9
  */
11
10
  import { AgentPlatform } from '@kici-dev/shared';
12
11
  import { type AgentPackageDownloadStorage } from './download.js';
@@ -31,18 +30,15 @@ export interface RefreshResult {
31
30
  skipped: AgentPlatform[];
32
31
  }
33
32
  /**
34
- * The platforms the fleet already has payloads for — the union across every
35
- * version present in the store EXCEPT `excludeVersion` (the just-upgraded
36
- * target, whose payloads we are about to (re)produce). Preserves the fleet's
37
- * arch coverage across an upgrade. Empty ⇒ the caller falls back to the
38
- * bootstrap default set.
33
+ * The platforms the fleet has payloads for: the union across every stored version EXCEPT
34
+ * `excludeVersion` (the target about to be (re)produced), preserving arch coverage across an
35
+ * upgrade. Empty ⇒ the caller falls back to the bootstrap default set.
39
36
  */
40
37
  export declare function discoverFleetPlatforms(storage: RefreshStorage, excludeVersion: string): Promise<AgentPlatform[]>;
41
38
  /**
42
- * Produce + upload the target version's payloads for the fleet's platform set,
43
- * skipping any already present (idempotent). Explicit `platforms` override the
44
- * discovery; otherwise the fleet's existing arch coverage is preserved, falling
45
- * back to the bootstrap default (`AgentPlatform.options`) on a fresh store.
39
+ * Produce + upload the target version's missing payloads. Explicit `platforms` override
40
+ * discovery; otherwise the fleet's arch coverage is kept, or the bootstrap default
41
+ * (`AgentPlatform.options`) on a fresh store.
46
42
  */
47
43
  export declare function refreshAgentPackages(storage: RefreshStorage, version: string, opts: {
48
44
  platforms?: AgentPlatform[];
@@ -4,12 +4,11 @@ import type { AgentPackageDownloadStorage } from './download.js';
4
4
  /**
5
5
  * Resolve the agent-package store the bring-up presign handler reads from.
6
6
  *
7
- * Defaults to the orchestrator's OWN cache bucket (`cacheStorage`) — never a
8
- * vendor CDN. An `s3://bucket[/prefix]` override (`KICI_AGENT_BINARY_SOURCE`)
9
- * points the presign at another bucket on the SAME S3 endpoint (the customer
10
- * supply-chain mirror); the config schema already rejects an http(s) source so
11
- * no external HTTP default can slip in. Returns undefined when no cache storage
12
- * is configured and no override is set (the presign RPC then refuses loudly).
7
+ * Defaults to the orchestrator's OWN cache bucket, never a vendor CDN. An
8
+ * `s3://bucket[/prefix]` override (`KICI_AGENT_BINARY_SOURCE`) points at another
9
+ * bucket on the SAME S3 endpoint (a customer supply-chain mirror); the config
10
+ * schema rejects an http(s) source. Undefined when neither is set, so the
11
+ * presign RPC refuses loudly.
13
12
  */
14
13
  export declare function resolveAgentPackageStore(config: AppConfig, cacheStorage: CacheStorage | undefined): AgentPackageDownloadStorage | undefined;
15
14
  //# sourceMappingURL=store.d.ts.map
@@ -8,10 +8,9 @@ export declare const AGENT_PACKAGES_PREFIX = "agent-packages/";
8
8
  /** Cache-bucket key for a version-keyed agent payload. */
9
9
  export declare function agentPackageKey(version: string, platform: AgentPlatform): string;
10
10
  /**
11
- * Parse an `agent-packages/<version>/kici-agent-<platform>.tar.gz` key back into
12
- * its version + platform, or null when the key is not a payload tarball (e.g. a
13
- * `.sha256` sidecar or an unrelated key). Used to discover the fleet's platform
14
- * set from the store on upgrade.
11
+ * Parse a payload key back into its version and platform; null for any other key
12
+ * (a `.sha256` sidecar, an unrelated key). Discovers the fleet's platform set
13
+ * from the store on upgrade.
15
14
  */
16
15
  export declare function parseAgentPackageKey(key: string): {
17
16
  version: string;
package/dist/app.d.ts CHANGED
@@ -91,9 +91,6 @@ import type { VariableStore } from './contexts/variable-store.js';
91
91
  import type { HeldRunStore, ReleaseSignal } from './contexts/held-runs.js';
92
92
  import type { StepApprovalBridge } from './approvals/step-approval-bridge.js';
93
93
  import { AgentMetricsAggregator } from './metrics/agent-metrics-aggregator.js';
94
- /**
95
- * All dependencies needed to create the orchestrator Hono app.
96
- */
97
94
  export interface AppDependencies {
98
95
  config: AppConfig;
99
96
  db: Kysely<Database>;
@@ -1,20 +1,26 @@
1
- import { ApprovalDecision } from '@kici-dev/engine';
1
+ import { AccessLogAction, ApprovalDecision } from '@kici-dev/engine';
2
2
  import type { HeldRun } from '../db/types.js';
3
3
  import { HoldOutcome } from '../pipeline/security-hold-check.js';
4
4
  import type { HeldRunStore, ReleaseSignal } from '../contexts/held-runs.js';
5
5
  import { type TeamMembershipLookup } from './approval-resolver.js';
6
+ /**
7
+ * The access-log action a held-run decision is audited under. A
8
+ * `kici run --approve-all` breakglass approval audits as `held_run.auto_approve`
9
+ * to set it apart from an interactive approve; eligibility is enforced the same
10
+ * for both, and a reject never gets it. Every approving surface takes its action
11
+ * from here, so Platform-relayed and admin-route approvals audit one act one way.
12
+ */
13
+ export declare function heldRunDecisionAction(decision: ApprovalDecision, autoApprove: boolean): AccessLogAction;
6
14
  /** Whether a decision's post-commit consequence ran to completion. */
7
15
  export interface DecisionConsequenceResult {
8
- /** True when the whole consequence chain ran; false when a step of it threw. */
16
+ /** False when a step of the consequence chain threw. */
9
17
  ok: boolean;
10
- /** The failure message, when `ok` is false. */
11
18
  error?: string;
12
19
  }
13
20
  /** Outcome of applying a decision. */
14
21
  export interface ApplyDecisionResult {
15
- /** Whether the decision was accepted (recorded). */
22
+ /** Whether the decision was recorded. */
16
23
  accepted: boolean;
17
- /** Human-readable status: 'released' | 'rejected' | 'pending' | 'ineligible' | 'not-found'. */
18
24
  status: 'released' | 'rejected' | 'pending' | 'ineligible' | 'not-found';
19
25
  /** When still pending, how many clauses remain unsatisfied. */
20
26
  remainingClauses?: number;
@@ -23,26 +29,20 @@ export interface ApplyDecisionResult {
23
29
  /** The release signal, when the element was released (for the caller to resume). */
24
30
  release?: ReleaseSignal;
25
31
  /**
26
- * The decision's post-commit consequence — already running, deliberately not
27
- * awaited by the applier. Present on `released` and `rejected`, absent on
28
- * every outcome that changed nothing (`pending`, `ineligible`, `not-found`).
32
+ * The post-commit consequence — already running, deliberately not awaited.
33
+ * Present on `released` and `rejected`; absent when nothing changed.
29
34
  *
30
- * It NEVER rejects: a throw anywhere in the chain is logged and surfaces as
31
- * `{ ok: false, error }`, so a caller may drop it on the floor without
32
- * risking an unhandled rejection. A caller that answers a waiting client
33
- * answers without awaiting this, and attaches its audit record to it instead
34
- * — the record then carries the consequence's real outcome rather than a
35
- * guess. A caller that needs the consequence finished before it continues
36
- * (a test, a sequential sweep) awaits it.
35
+ * It NEVER rejects: a throw is logged and surfaces as `{ ok: false, error }`,
36
+ * so a caller may leave it unawaited. A caller answering a waiting client
37
+ * answers first and attaches its audit record to this, so the record carries
38
+ * the real outcome rather than a guess. A test or sequential sweep awaits it.
37
39
  *
38
- * The consequence is where an approve was spending nine-plus seconds behind a
39
- * ten-second relay budget, answering 504 on an approval that had already
40
- * landed. It is not a stronger answer for having been awaited: the resume it
41
- * runs is the same dispatch the original webhook delivery ran without any
42
- * client waiting on it, `dispatchMatchedWorkflow` returning says only that
43
- * jobs were routed rather than that any of them ran, and `resumeWorkflow`
44
- * already reports its own failures on the run row and on the provider's check
45
- * runs rather than through this return value.
40
+ * Awaiting it made an approve spend nine-plus seconds behind a ten-second
41
+ * relay budget and answer 504 on an approval that had landed. Awaiting adds no
42
+ * strength: the resume is the same dispatch the original webhook ran with no
43
+ * client waiting, `dispatchMatchedWorkflow` returning means only that jobs
44
+ * were routed, and `resumeWorkflow` reports its own failures on the run row
45
+ * and the provider's check runs.
46
46
  */
47
47
  consequence?: Promise<DecisionConsequenceResult>;
48
48
  }
@@ -72,34 +72,28 @@ export interface ApplyDecisionDeps {
72
72
  onStepReject?: (heldRunId: string, reason?: string) => Promise<void> | void;
73
73
  /**
74
74
  * Called when a workflow-scoped hold is rejected — cancel the run and drop
75
- * the pending workflow context. Carries the whole hold row and the rejecter's
76
- * own reason, which becomes the run's cancellation reason: the callers serve
77
- * the install gate, the org trust policy's PR-wide hold and the SDK's
78
- * workflow-level `requireApproval` alike, so a reason invented at the wiring
79
- * site would misattribute one of them.
75
+ * the pending workflow context. The rejecter's reason becomes the run's
76
+ * cancellation reason: this serves the install gate, the trust policy's
77
+ * PR-wide hold and the SDK's workflow `requireApproval` alike, so a reason
78
+ * invented at the wiring site would misattribute one of them.
80
79
  *
81
- * The row is what tells those apart — only some of them posted a pending
82
- * `KiCI Security` check, and only those have one to complete. Resolves to
83
- * whether a terminal security check was WRITTEN, so this applier suppresses
84
- * its own post only when one actually landed.
80
+ * The row tells those apart: only some posted a pending `KiCI Security` check.
81
+ * Resolves to whether a terminal security check was WRITTEN, so this applier
82
+ * suppresses its own post only when one landed.
85
83
  */
86
84
  onWorkflowReject?: (hold: HeldRun, reason?: string) => Promise<boolean>;
87
85
  /**
88
- * Terminalize the `KiCI Security` check a just-ended hold posted, for every
89
- * hold this applier ends that `onWorkflowReject` did not already report.
90
- *
91
- * Without it a job-scoped security hold answered from the dashboard strands
92
- * its check forever: the row leaves `pending`, so the stale detector's
93
- * approval-window sweep — which only ever sees pending rows — can no longer
94
- * reach it. Optional so an orchestrator with no provider wiring degrades to
86
+ * Terminalize the `KiCI Security` check of every hold this applier ends that
87
+ * `onWorkflowReject` did not already report. Without it a job-scoped hold
88
+ * answered from the dashboard strands its check: the row leaves `pending`, so
89
+ * the stale detector's pending-only approval-window sweep never reaches it.
90
+ * Optional so an orchestrator with no provider wiring degrades to
95
91
  * flip-and-resume rather than failing the decision.
96
92
  *
97
- * `actorSub` is the deciding actor's opaque subject id, which is what this
98
- * applier has and NOT something a contributor can read. Resolving it to a
99
- * display name — or dropping the attribution when it resolves to none — is
100
- * the wiring site's job, because only that site holds the org's identity
101
- * directory. Omitted entirely where the summary must match one a delegate
102
- * built without it; see the reject arm below.
93
+ * `actorSub` is an opaque subject id a contributor cannot read; the wiring
94
+ * site resolves it to a display name (or drops it), since only it holds the
95
+ * org's identity directory. Omitted where the summary must match one a
96
+ * delegate built without it; see the reject arm below.
103
97
  */
104
98
  settleSecurityCheck?: (args: {
105
99
  hold: HeldRun;
@@ -1,14 +1,9 @@
1
1
  /**
2
- * Pure approval-clause evaluator. No DB access, no I/O — given a requirement,
3
- * a team-membership lookup, the recorded decisions, and (for eligibility) the
4
- * run's triggerer + the self-approval policy, it answers:
5
- *
6
- * - `evaluate` — is the requirement satisfied (all clauses ANDed), and was it
7
- * rejected (any single reject decision)?
8
- * - `canApprove` — may a given actor cast an approve decision right now?
9
- *
10
- * Both the dashboard handler and the CLI HTTP route funnel through these so the
11
- * authorization story is identical regardless of the surface.
2
+ * Pure approval-clause evaluator (no DB, no I/O). `evaluate` answers whether a
3
+ * requirement is satisfied (all clauses ANDed) or rejected (any reject);
4
+ * `canApprove` whether an actor may cast an approve now. The dashboard handler
5
+ * and the CLI HTTP route both funnel through these, so authorization is
6
+ * identical on every surface.
12
7
  */
13
8
  import type { ApprovalRequirement, ApproverClause } from '@kici-dev/engine';
14
9
  /** A team name → set of member user ids (Keycloak subs). */
@@ -32,16 +27,11 @@ export interface EvaluationResult {
32
27
  rejected: boolean;
33
28
  perClause: PerClauseResult[];
34
29
  }
35
- /**
36
- * Is a single clause satisfied by any approve decision whose approver is
37
- * eligible for the clause? Reject decisions never satisfy.
38
- */
30
+ /** Satisfied by any approve from an eligible approver; rejects never satisfy. */
39
31
  export declare function isClauseSatisfied(clause: ApproverClause, decisions: RecordedDecision[], lookup: TeamMembershipLookup): boolean;
40
- /** Does an actor satisfy/qualify for a clause (team membership or exact user)? */
32
+ /** Team membership or exact user match. */
41
33
  export declare function isActorEligibleForClause(actorSub: string, clause: ApproverClause, lookup: TeamMembershipLookup): boolean;
42
34
  /**
43
- * Evaluate a requirement against the recorded decisions.
44
- *
45
35
  * - A single reject decision sets `rejected` (the caller fails the element).
46
36
  * - Empty clauses ⇒ satisfied by ANY single approve decision.
47
37
  * - Non-empty clauses ⇒ satisfied iff every clause is satisfied (AND).
@@ -54,13 +44,11 @@ export interface CanApproveContext {
54
44
  allowSelfApproval: boolean;
55
45
  }
56
46
  /**
57
- * May `actorSub` cast an approve decision on this requirement right now?
58
- *
59
- * - Self-approval gate: when `allowSelfApproval` is false and the actor is the
60
- * run's triggerer, they may never approve.
47
+ * - Self-approval gate: when `allowSelfApproval` is false, the run's triggerer
48
+ * may never approve.
61
49
  * - Eligibility: the actor must qualify for at least one still-UNSATISFIED
62
- * clause. (Approving a clause that is already satisfied adds nothing.) For an
63
- * empty-clause requirement, any non-triggerer-blocked actor qualifies.
50
+ * clause (approving a satisfied clause adds nothing). For an empty-clause
51
+ * requirement, any actor the self-approval gate passes qualifies.
64
52
  */
65
53
  export declare function canApprove(actorSub: string, requirement: ApprovalRequirement, decisions: RecordedDecision[], lookup: TeamMembershipLookup, ctx: CanApproveContext): boolean;
66
54
  //# sourceMappingURL=approval-resolver.d.ts.map