@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,11 +1,9 @@
1
1
  import { type LockStep, type LockStepEntry } from '@kici-dev/engine';
2
2
  /**
3
- * Flatten a lock job's `steps` into the flat sequential list the orchestrator
4
- * iterates by `stepIndex`. A `parallel` group's children are inlined in array
5
- * order and the group wrapper is dropped (it consumes no flat index). This keeps
6
- * the orchestrator's enumeration aligned with the agent's `extractAndNormalizeSteps`
7
- * — the flat-stepIndex invariant: `flattenLockSteps(job.steps)[i]` is the step at
8
- * agent `stepIndex i`.
3
+ * Flatten a lock job's `steps` for `stepIndex` iteration: a `parallel` group's
4
+ * children are inlined in order and the wrapper takes no index. Invariant,
5
+ * matching the agent's `extractAndNormalizeSteps`:
6
+ * `flattenLockSteps(job.steps)[i]` is the step at agent `stepIndex i`.
9
7
  */
10
8
  export declare function flattenLockSteps(steps: readonly LockStepEntry[]): readonly LockStep[];
11
9
  //# sourceMappingURL=flatten-lock-steps.d.ts.map
@@ -10,7 +10,6 @@
10
10
  */
11
11
  import type { ProviderBundle } from '../provider-registry.js';
12
12
  import type { WorkflowRepoProvenance } from '../reporting/execution-tracker.js';
13
- /** The workflow repository of a run whose workflow is defined in another repository. */
14
13
  export interface GlobalDispatchIdentity {
15
14
  /** `owner/repo` that defines the workflow. */
16
15
  readonly workflowRepoIdentifier: string;
@@ -24,7 +23,6 @@ export interface GlobalDispatchIdentity {
24
23
  readonly workflowProviderContext: Record<string, unknown>;
25
24
  /** The workflow repository's provider bundle (may differ from the inbound one). */
26
25
  readonly workflowBundle: ProviderBundle | undefined;
27
- /** Credentials minted for the workflow repository. */
28
26
  readonly workflowCredentials: Record<string, unknown>;
29
27
  }
30
28
  interface IdentityCtx {
@@ -54,19 +52,16 @@ export declare function policyRoutingKey(ctx: {
54
52
  /** Provenance recorded on the run row; `undefined` for a same-repo run. */
55
53
  export declare function workflowRepoProvenance(ctx: IdentityCtx): WorkflowRepoProvenance | undefined;
56
54
  /**
57
- * The dual-checkout job-config fields of a dispatch, with the workflow
58
- * repository's clone URL built by its own provider bundle. Empty for a
59
- * same-repository dispatch. Throws when the workflow bundle cannot build a
60
- * clone URL: a global job without a workflow-repository URL cannot run.
55
+ * The dual-checkout job-config fields, with the workflow repository's clone URL
56
+ * built by its own provider bundle. Empty for a same-repository dispatch. Throws
57
+ * when that bundle cannot build a clone URL.
61
58
  */
62
59
  export declare function globalJobConfigFor(ctx: IdentityCtx): Record<string, unknown>;
63
60
  /** Job-config fields the agent uses for the dual checkout. */
64
61
  export declare function globalJobConfigFields(ctx: IdentityCtx, workflowRepoUrl: string): Record<string, unknown>;
65
62
  /**
66
- * The part of a {@link GlobalDispatchIdentity} a held run stores: everything
67
- * but the live provider bundle and the minted credentials, both of which a
68
- * resume re-derives from `workflowRoutingKey`. The commit, branch and provider
69
- * context are the ones captured when the run was held, so a resumed run
63
+ * The part of a {@link GlobalDispatchIdentity} a held run stores; a resume
64
+ * re-derives bundle and credentials from `workflowRoutingKey`. A resumed run
70
65
  * executes the workflow commit it was held at, not the live registration's.
71
66
  */
72
67
  export type SerializableGlobalDispatchIdentity = Omit<GlobalDispatchIdentity, 'workflowBundle' | 'workflowCredentials'>;
@@ -1,20 +1,17 @@
1
1
  /**
2
2
  * Tier-2 global eval round — orchestrator side.
3
3
  *
4
- * A global workflow can declare a `filter` predicate and `DynamicJobFn`
5
- * generators, neither of which the orchestrator may run: author code never
6
- * returns to this process. So the candidates that need either one are grouped by
7
- * the workflow repo they live in and handed to ONE pre-run job per
8
- * (event × workflow repo × registered SHA). That job checks out the workflow
9
- * repo and the source repo once, runs every candidate's filter and then its
10
- * generators, and reports a verdict per candidate.
4
+ * The orchestrator never runs author code, so global candidates with a `filter`
5
+ * or `DynamicJobFn` generators go to ONE pre-run job per
6
+ * (event × workflow repo × registered SHA). That job checks out both repos once,
7
+ * runs each candidate's filter then its generators, and reports a verdict per
8
+ * candidate.
11
9
  *
12
- * The round precedes any run row by design: its whole purpose is to decide which
13
- * global workflows produce a run at all, so creating one up-front would defeat
14
- * it.
10
+ * The round precedes any run row by design: it decides which global workflows
11
+ * produce a run at all.
15
12
  *
16
- * This module owns the partition, the grouping, and the dispatch-and-await. The
17
- * caller decides what to do with the verdicts.
13
+ * This module owns the partition, the grouping, and the dispatch-and-await; the
14
+ * caller acts on the verdicts.
18
15
  */
19
16
  import type { GlobalEvalCandidateResult, LockJobOrFactory, LockWorkflow, SimulatedEvent, WorkflowDecision } from '@kici-dev/engine';
20
17
  import { type GlobalEvalRoundCache } from '../cache/global-eval-round-cache.js';
@@ -55,27 +52,21 @@ export interface GlobalEvalCandidate {
55
52
  reg: RegisteredWorkflow;
56
53
  lockEntry: LockWorkflow;
57
54
  /**
58
- * The trigger-match decision this candidate came from, carried so the round's
59
- * verdict can be appended to its trace. Optional because the round itself
60
- * never reads it — only the caller that explains an exclusion does.
55
+ * The trigger-match decision, carried so the verdict can be appended to its
56
+ * trace. Optional: only the caller that explains an exclusion reads it.
61
57
  */
62
58
  decision?: WorkflowDecision;
63
59
  }
64
60
  /**
65
- * Stable identity for one candidate across a round's results.
66
- *
67
- * The registration id alone is unique, but the workflow name is appended so a
68
- * lookup reads honestly at the call site and a malformed registration with a
69
- * blank id still separates two workflows.
61
+ * Stable identity for one candidate across a round's results. The workflow name
62
+ * is appended so a malformed registration with a blank id still separates two
63
+ * workflows.
70
64
  */
71
65
  export declare function candidateKey(candidate: GlobalEvalCandidate): string;
72
66
  /**
73
67
  * True for a `DynamicJobFn` entry the pre-run round runs: a generator with no
74
- * upstream `needs`.
75
- *
76
- * A result-aware generator (`resultAware`, or any declared `needs`) reads its
77
- * upstreams' outputs, which do not exist before the run starts. It runs on the
78
- * run's deferred path instead, once those upstreams complete.
68
+ * upstream `needs`. A result-aware generator (`resultAware`, or any `needs`)
69
+ * reads upstream outputs that do not exist yet, so it runs on the deferred path.
79
70
  */
80
71
  export declare function isRoundGenerator(job: LockJobOrFactory): boolean;
81
72
  /** True for a `DynamicJobFn` entry that runs on the deferred path, never in the round. */
@@ -83,29 +74,21 @@ export declare function isDeferredGenerator(job: LockJobOrFactory): boolean;
83
74
  /** True when the workflow carries at least one generator the round must NOT run. */
84
75
  export declare function hasDeferredGenerator(lockEntry: LockWorkflow): boolean;
85
76
  /**
86
- * Split matched global candidates into those that can dispatch straight away and
87
- * those that must go through an eval round first.
77
+ * Split matched global candidates into immediate dispatch and eval-round.
88
78
  *
89
- * A candidate needs the round when it declares a `filter` (only the agent may
90
- * run the predicate), carries a needs-free `DynamicJobFn` (only the agent may
91
- * run the generator, and it depends on nothing the run produces), or matched
92
- * with deferred `paths` (only the agent's clone holds the diff). Everything
93
- * else — static jobs, and result-aware generators the run evaluates later — is
94
- * handed to the dispatch pipeline as declared, so routing it through a round
95
- * would add a job dispatch and an agent round trip for nothing.
79
+ * A candidate needs the round when it declares a `filter`, carries a needs-free
80
+ * `DynamicJobFn` (only the agent may run either), or matched with deferred
81
+ * `paths` (only the agent's clone holds the diff). Static jobs and result-aware
82
+ * generators dispatch as declared; a round would add a dispatch for nothing.
96
83
  */
97
84
  export declare function partitionCandidates(candidates: readonly GlobalEvalCandidate[]): {
98
85
  immediate: GlobalEvalCandidate[];
99
86
  needsRound: GlobalEvalCandidate[];
100
87
  };
101
88
  /**
102
- * Group by workflow repo, routing key, and registered SHA.
103
- *
104
- * All three parts are load-bearing. The repo identifier and the SHA together pin
105
- * the exact tree the round checks out, so two registrations of one repo at
106
- * different commits can never share a checkout; the routing key pins which
107
- * provider bundle mints the clone credentials, so two providers owning the same
108
- * repo path stay separate.
89
+ * Group by workflow repo, routing key, and registered SHA. Repo and SHA pin the
90
+ * tree the round checks out; the routing key pins the provider bundle that mints
91
+ * clone credentials, so two providers owning one repo path stay separate.
109
92
  */
110
93
  export declare function groupCandidates(candidates: readonly GlobalEvalCandidate[]): Map<string, GlobalEvalCandidate[]>;
111
94
  /** Minimal dispatcher surface the round needs (the real one is the job dispatcher). */
@@ -114,16 +97,12 @@ export interface GlobalEvalDispatcher {
114
97
  status: string;
115
98
  jobId: string;
116
99
  }>;
117
- /**
118
- * Take a still-queued round job out of the queue when nobody is waiting for
119
- * it any more. Optional so a test double can omit it.
120
- */
100
+ /** Drop a still-queued round job nobody waits for. Optional for test doubles. */
121
101
  cancelQueuedJob?(jobId: string, reason: string): Promise<void>;
122
102
  }
123
103
  /**
124
- * Minimal provider-registry surface: resolving the bundle that owns a routing
125
- * key. The round needs it because the workflow repo and the event's source repo
126
- * can live behind different providers.
104
+ * Resolves the bundle owning a routing key: the workflow repo and the event's
105
+ * source repo can live behind different providers.
127
106
  */
128
107
  export interface GlobalEvalProviderRegistry {
129
108
  getByRoutingKey(routingKey: string): ProviderBundle | undefined;
@@ -145,30 +124,18 @@ export interface GlobalEvalAgentRegistry {
145
124
  }
146
125
  /**
147
126
  * First agent release whose job runner understands a `globalEvalRound`
148
- * dispatch.
149
- *
150
- * Below it the agent has no round branch at all: the job falls through to the
151
- * standard executor, whose `jobConfig` carries no `source.file`, so it either
152
- * fails outright or reports success without the `globalEvalComplete` the
153
- * orchestrator is waiting for. Either way the round never settles.
127
+ * dispatch. An older agent runs it through the standard executor, which fails
128
+ * or succeeds without sending `globalEvalComplete`, so the round never settles.
154
129
  *
155
- * Customers upgrade their orchestrator and their agents on their own schedule,
156
- * so an orchestrator ahead of its fleet is
157
- * a supported state and not an error — but it is one this module has to
158
- * recognise, because the damage is not confined to the new feature. A global
159
- * workflow that merely *contains* a generator now routes through the round, so
160
- * an unrecognised round means static jobs that ran yesterday stop running.
130
+ * An orchestrator ahead of its fleet is a supported state, but this module must
131
+ * recognise it: a global workflow that merely *contains* a generator routes
132
+ * through the round, so its static jobs would stop running too.
161
133
  */
162
134
  export declare const MIN_GLOBAL_EVAL_AGENT_VERSION = "0.5.0";
163
135
  export interface GlobalEvalRoundDeps {
164
136
  dispatcher: GlobalEvalDispatcher;
165
137
  pendingGlobalEvals: PendingGlobalEvalTracker;
166
- /**
167
- * Required, unlike the three optional deps below: it is what resolves the
168
- * WORKFLOW repo's own provider bundle. Omitting it would leave the round with
169
- * no clone URL for the workflow repo at all, so it is not a dep that can
170
- * degrade quietly.
171
- */
138
+ /** Required: without it the round has no clone URL for the WORKFLOW repo. */
172
139
  providerRegistry: GlobalEvalProviderRegistry;
173
140
  clusterSettings?: ClusterSettingsReader;
174
141
  globalEvalCache?: GlobalEvalRoundCache;
@@ -201,99 +168,58 @@ export interface GlobalEvalRoundArgs {
201
168
  /**
202
169
  * Why a fleet cannot decide a round, or `null` when it might.
203
170
  *
204
- * Only ONE state is refused: every registered init-runner reports a version, and
205
- * every one of them is below the minimum. Everything else returns `null`.
171
+ * Refuses only when every registered init-runner reports a readable version
172
+ * below the minimum. An empty fleet is not refused (the queue's unroutable
173
+ * handling covers it), nor is a fleet with even ONE unreadable version: refusing
174
+ * suppresses every global workflow for the delivery, so it must rest on proof.
206
175
  *
207
- * An empty fleet is not refused — nothing is registered yet, an agent may
208
- * register a second from now, and the queue's own unroutable handling already
209
- * covers a round nobody picks up.
210
- *
211
- * A fleet containing even ONE agent whose version cannot be read is not refused
212
- * either, and the bar is deliberately that strict rather than "all unknown".
213
- * Refusing suppresses every global workflow for the delivery — the exact damage
214
- * this function exists to prevent — so it must rest on proof, not on ignorance
215
- * about part of the fleet. Getting it wrong in the other direction merely costs
216
- * a slow failure with a less useful message.
217
- *
218
- * Refusing here rather than at dispatch is deliberate. A too-old fleet does not
219
- * clear within a retry, so dispatching would spend two full wait ceilings of
220
- * inline webhook latency to reach the same verdict — and reach it with a
221
- * timeout message that says nothing about agent versions.
176
+ * Refusing before dispatch saves two full wait ceilings of inline webhook
177
+ * latency and yields a message that names agent versions.
222
178
  */
223
179
  export declare function unsupportedFleetReason(agentRegistry?: GlobalEvalAgentRegistry): string | null;
224
180
  /**
225
181
  * Narrow one wire verdict into a value the dispatch path can trust.
226
182
  *
227
- * The round-result schema proves only "array of objects with string keys" — its
228
- * `jobs` entries are a deliberate unvalidated pass-through of `LockJob`, whose
229
- * single source of truth is a TypeScript interface with no Zod mirror. So every
230
- * field is re-checked here rather than dereferenced: `run` is compared, not
231
- * coerced, and a generated job missing a usable `name` makes the whole candidate
232
- * indeterminate rather than being dropped silently. Fail-closed is the right
233
- * direction — a generator whose output we cannot read is a generator whose
234
- * verdict we cannot act on, and half-dispatching its jobs would be worse than
235
- * reporting that we could not decide.
183
+ * The round-result schema passes `jobs` through unvalidated (`LockJob` has no
184
+ * Zod mirror), so every field is re-checked: `run` is compared, not coerced, and
185
+ * a generated job without a usable `name` makes the whole candidate
186
+ * indeterminate. Fail-closed: half-dispatching unreadable output is worse.
236
187
  */
237
188
  export declare function narrowVerdict(raw: unknown, workflowName: string): GlobalEvalCandidateResult;
238
189
  /**
239
- * Cap on the joined reason string a decided-nothing round reports.
240
- *
241
- * The reasons are authored by an agent running author code, so their combined
242
- * length is unbounded — and this string travels verbatim into the commit
243
- * check's `output.summary`, which GitHub caps at 65535 characters. An overflow
244
- * is rejected with a 422 that the best-effort post swallows, so the check
245
- * disappears in exactly the case it exists for. Realistic reasons are one short
246
- * sentence each; this bound makes that structural instead of lucky.
190
+ * Cap on the joined reason string a decided-nothing round reports. Reasons come
191
+ * from author code, unbounded, and land in the commit check's `output.summary`,
192
+ * which GitHub caps at 65535 characters; an overflow 422 is swallowed by the
193
+ * best-effort post, so the check would vanish.
247
194
  */
248
195
  export declare const MAX_ROUND_REASON_CHARS = 4000;
249
196
  /**
250
197
  * Truncate `text` to at most `max` UTF-16 code units, marking that it was cut.
251
198
  *
252
- * Two edges the naive slice gets wrong, both of which matter because the result
253
- * is posted to an API with a hard character limit:
254
- *
255
- * - A `max` smaller than the marker would make `max - marker.length` negative,
256
- * and appending the marker to an empty slice then returns a string LONGER
257
- * than `max`. Such a `max` cannot carry both content and a marker, so the
258
- * marker itself is truncated instead.
259
- * - Slicing at an arbitrary index can cut a surrogate pair in half, leaving a
260
- * lone surrogate that is not valid text. The cut backs off by one unit when
261
- * it lands between the halves of a pair.
199
+ * - A `max` no larger than the marker returns the truncated marker, never a
200
+ * string longer than `max`.
201
+ * - The cut backs off one unit rather than split a surrogate pair.
262
202
  */
263
203
  export declare function truncateReasonText(text: string, max: number): string;
264
204
  /**
265
- * One round that produced no verdicts after every attempt, described well enough
266
- * for the caller to record it.
267
- *
268
- * There is exactly one of these per failed round — never one per candidate. The
269
- * round exists to collapse N candidate workflows into a single pre-run job, so
270
- * fanning its failure back out into N run rows and N checks would undo the fan-out
271
- * reduction the whole design is for. `workflowNames` is what makes the single
272
- * record honest: it names every workflow the failure suppressed.
205
+ * One round that produced no verdicts after every attempt. Exactly one per
206
+ * failed round, never one per candidate (the round exists to collapse N
207
+ * workflows into one job); `workflowNames` names every suppressed workflow.
273
208
  */
274
209
  export interface GlobalEvalRoundFailure {
275
210
  /** The last attempt's round-job run id — what an errored run row is written under. */
276
211
  runId: string;
277
- /** Repo the suppressed workflows are authored in. */
278
212
  workflowRepoIdentifier: string;
279
213
  /** Every candidate workflow this round suppressed. */
280
214
  workflowNames: string[];
281
215
  /** The last attempt's error. */
282
216
  error: string;
283
- /** How many attempts were made before giving up. `0` ⇒ never dispatched. */
217
+ /** `0` ⇒ never dispatched. */
284
218
  attempts: number;
285
219
  /**
286
- * True when the round itself completed and decided some candidates, leaving
287
- * only {@link workflowNames} undecided.
288
- *
289
- * Recorded as its own record rather than folded into a total failure because
290
- * the two read differently to an author: a total failure means nothing from
291
- * this repo ran, a partial one means their workflow specifically could not be
292
- * decided while its neighbours ran fine. Without it, whether a broken filter
293
- * is visible at all depends on how many unrelated global workflows happen to
294
- * share a workflow repo — a per-candidate budget breach in a group of one
295
- * produces a check, and the identical fault in a group of two produces
296
- * nothing.
220
+ * True when the round completed but left only {@link workflowNames}
221
+ * undecided. Kept distinct from a total failure so a broken filter surfaces
222
+ * whether or not other global workflows share its workflow repo.
297
223
  */
298
224
  partial?: boolean;
299
225
  }
@@ -308,29 +234,17 @@ export interface GlobalEvalRoundsOutcome {
308
234
  * Run every eval round the candidate set needs and return one verdict per
309
235
  * candidate, plus one failure record per round that produced none.
310
236
  *
311
- * Rounds run one group at a time: a group is one dual checkout on one agent, and
312
- * a push touching several workflow repos is the uncommon case. A group whose
313
- * round fails marks only its own candidates indeterminate — one unreachable
314
- * workflow repo must not suppress the workflows living in another.
315
- *
316
- * The failures are returned rather than recorded here: this module owns the
317
- * partition, the grouping, and the dispatch-and-await, and has neither a
318
- * database handle nor the inbound provider bundle a commit check must be posted
319
- * through.
237
+ * Groups run sequentially (several workflow repos per push is uncommon). A
238
+ * failed group marks only its own candidates indeterminate. Failures are
239
+ * returned, not recorded: this module has no database handle nor the inbound
240
+ * bundle a commit check posts through.
320
241
  */
321
242
  export declare function runGlobalEvalRounds(args: GlobalEvalRoundArgs): Promise<GlobalEvalRoundsOutcome>;
322
243
  /**
323
- * Meter candidates a round never got to decide on.
324
- *
325
- * The caller's fail-closed paths — no pending-eval tracker, so a round could
326
- * never settle — return before {@link runGlobalEvalRounds} is reached, and they
327
- * suppress EVERY global workflow for that delivery. That is this subsystem's
328
- * most severe outcome, and without this call it appeared in none of its
329
- * metrics: one `logger.warn` was the whole record.
330
- *
331
- * Counted as `indeterminate` because that is exactly what happened — nothing
332
- * evaluated the workflows — which also keeps `candidates` equal to the sum of
333
- * the verdicts on every path.
244
+ * Meter candidates a round never got to decide on: the caller's fail-closed
245
+ * paths (no pending-eval tracker) return before {@link runGlobalEvalRounds} and
246
+ * suppress EVERY global workflow for the delivery. Counted `indeterminate`,
247
+ * which keeps `candidates` equal to the sum of the verdicts on every path.
334
248
  */
335
249
  export declare function recordUnrunCandidates(count: number): void;
336
250
  //# sourceMappingURL=global-eval-round.d.ts.map
@@ -10,9 +10,8 @@ export interface HoldGlobalEvalRoundsArgs {
10
10
  info: WebhookInfo;
11
11
  deps: ProcessingDeps;
12
12
  event: SimulatedEvent;
13
- /** The candidates that needed the round. */
14
13
  candidates: readonly GlobalEvalCandidate[];
15
- /** The source repository the event came from. */
14
+ /** The source repository. */
16
15
  repoIdentifier: string;
17
16
  /** The event's commit SHA. */
18
17
  ref: string;
@@ -30,12 +29,11 @@ export interface HoldGlobalEvalRoundsArgs {
30
29
  }>;
31
30
  }
32
31
  /**
33
- * Hold the evaluation round of every workflow repository among `candidates`.
34
- * Returns the id of each held run, in workflow-repository order.
32
+ * Hold the round of every workflow repository among `candidates`; returns the
33
+ * held run ids in workflow-repository order.
35
34
  *
36
- * One run per workflow repository, not per registered SHA: the release
37
- * re-evaluates a whole workflow repository, so two rows for one repository would
38
- * dispatch its workflows twice.
35
+ * One run per workflow repository, not per SHA: the release re-evaluates the
36
+ * whole repository, so two rows would dispatch its workflows twice.
39
37
  */
40
38
  export declare function holdGlobalEvalRounds(args: HoldGlobalEvalRoundsArgs): Promise<string[]>;
41
39
  //# sourceMappingURL=global-round-hold.d.ts.map
@@ -88,11 +88,9 @@ interface LogFields {
88
88
  }
89
89
  /**
90
90
  * Resolve the merged variables and secrets of `entries`, then the container
91
- * registry credentials, writing each onto `into` as soon as it resolves. A
92
- * context that has no scope binding is named in a warning log line.
93
- *
94
- * Writing progressively keeps what already resolved when a later step throws,
95
- * which is what the dispatch path's catch relies on.
91
+ * registry credentials, writing each onto `into` as soon as it resolves, so the
92
+ * dispatch path's catch keeps what resolved before a later step throws. A
93
+ * context with no scope binding is named in a warning log line.
96
94
  */
97
95
  export declare function resolveContextJobData(args: {
98
96
  deps: ContextDataDeps;
@@ -127,9 +125,8 @@ export declare function withoutContextData(jobInput: QueuedJobInput, runWideFlat
127
125
  * The job's own contexts are not re-gated: it passed their rules, or its hold
128
126
  * was released. Throws when the record is malformed, the stores are
129
127
  * unavailable, a bound context is gone or replaced, or a lookup fails, so the
130
- * caller fails the job rather than dispatching it without the secrets it was
131
- * bound to. A registry-auth refusal leaves the job without registry
132
- * credentials, as dispatch does.
128
+ * caller fails the job rather than dispatching it without its bound secrets.
129
+ * A registry-auth refusal only drops registry credentials, as dispatch does.
133
130
  */
134
131
  export declare function resolveReleasedJobInput(args: {
135
132
  jobInput: QueuedJobInput;
@@ -14,18 +14,15 @@ export interface HeldRoundRow {
14
14
  export declare function heldRoundWorkflowsOf(triggerDecision: string | null): string[] | undefined;
15
15
  /**
16
16
  * The workflow repository's organization-wide registrations for the held
17
- * event, as they were at the held commit.
17
+ * event, as they were at the held commit: every live registration of a covered
18
+ * workflow, one per source, as the pass the round was held from evaluates them.
18
19
  *
19
- * Throws, naming the workflow repository and the workflows, when the release
20
- * cannot run what the approver approved: the repository registers nothing any
21
- * more, its lock file at the held commit cannot be read, a workflow the round
22
- * covered has no live, enabled registration that still subscribes to the event,
23
- * or the lock file at the held commit does not define it as an
24
- * organization-wide workflow for the event. The release then fails the held run
25
- * with that reason and dispatches nothing — never a partial round.
26
- *
27
- * Every live registration of a covered workflow is returned, one per source
28
- * that registers it, as the pass the round was held from evaluates them.
20
+ * Throws, naming the repository and the workflows, when the release cannot run
21
+ * what the approver approved: the repository registers nothing any more, its
22
+ * lock file at the held commit cannot be read, a covered workflow has no live,
23
+ * enabled registration still subscribed to the event, or the held commit's
24
+ * lock file does not define it as organization-wide for the event. The release
25
+ * then fails the held run and dispatches nothing — never a partial round.
29
26
  *
30
27
  * The covered set is the one the hold recorded. A row held before that record
31
28
  * existed falls back to the held commit's round-shaped workflows, which cannot
@@ -2,17 +2,14 @@
2
2
  * The workflow install gate: the protection rules of every context a
3
3
  * workflow's `registries:` / `installEnv:` references name.
4
4
  *
5
- * Every context is evaluated before the gate decides, with the combination rule
6
- * the job-level multi-context gate uses: a reject from any context rejects,
7
- * whatever the others say. When none rejects and at least one holds, the gate
8
- * raises ONE hold whose requirement aggregates every context's rules, most
9
- * restrictive wins (`aggregateProtectionParams`): the reviewers of every held
10
- * context must approve, the longest wait timer applies. That hold records which
11
- * contexts held — its approval covers them — and which were admitted.
5
+ * Every context is evaluated before deciding, as on the job-level gate: any
6
+ * reject rejects. Otherwise any hold raises ONE hold aggregating every context's
7
+ * rules, most restrictive wins (`aggregateProtectionParams`: every held
8
+ * context's reviewers approve, the longest wait timer applies), and records
9
+ * which contexts held (covered by its approval) and which were admitted.
12
10
  *
13
11
  * The release gates again every context the approval did not cover, and
14
- * refuses when any recorded context now matches a different row than the one
15
- * the hold was raised against.
12
+ * refuses when a recorded context now matches a different row.
16
13
  */
17
14
  import { z } from 'zod';
18
15
  import type { ProtectionGateResult } from '@kici-dev/engine';
@@ -26,10 +23,7 @@ export declare const InstallGateContextSchema: z.ZodObject<{
26
23
  id: z.ZodString;
27
24
  }, z.core.$strip>;
28
25
  export type InstallGateContext = z.infer<typeof InstallGateContextSchema>;
29
- /**
30
- * What an install-gate hold records about its contexts. Stored with the held
31
- * dispatch, so the release knows which contexts the approval covers.
32
- */
26
+ /** Stored with the held dispatch, so the release knows which contexts the approval covers. */
33
27
  export declare const InstallGateRecordSchema: z.ZodObject<{
34
28
  held: z.ZodArray<z.ZodObject<{
35
29
  name: z.ZodString;
@@ -67,24 +61,20 @@ interface GateInputs {
67
61
  protectionContext: JobDispatchContext;
68
62
  }
69
63
  /**
70
- * Evaluate every referenced context's rules and decide the install gate.
71
- *
72
- * Reject wins over hold, as on the job-level gate. A hold aggregates the rules
73
- * of every context, so its requirement is at least as strict as each held
74
- * context's own, and its record lists which contexts held and which passed.
64
+ * Evaluate every referenced context's rules and decide the install gate. Reject
65
+ * wins over hold; a hold's aggregated requirement is at least as strict as each
66
+ * held context's own.
75
67
  */
76
68
  export declare function gateInstall(inputs: GateInputs): Promise<InstallGateOutcome>;
77
69
  /**
78
70
  * Decide the install gate for a dispatch resumed from a released hold.
79
71
  *
80
- * The contexts the hold recorded as held are covered by its approval and are
81
- * not gated again: their reviewer and wait-timer rules are stateless and would
82
- * hold the approved run once more. Every other context is gated again, and any
83
- * verdict but pass rejects — a release never raises a second hold. A context
84
- * the hold recorded must still match the row it matched then.
72
+ * Held contexts are covered by the approval and skip the gate: their reviewer
73
+ * and wait-timer rules are stateless and would hold the approved run again.
74
+ * Every other context is gated, and any verdict but pass rejects. A recorded
75
+ * context must still match its recorded row.
85
76
  *
86
- * `releasedHold` comes from stored JSON, so it is parsed here: an absent or
87
- * malformed record covers no context, and every context is gated again.
77
+ * `releasedHold` is stored JSON: absent or malformed, it covers no context.
88
78
  */
89
79
  export declare function gateReleasedInstall(inputs: GateInputs & {
90
80
  releasedHold: unknown;
@@ -7,31 +7,26 @@
7
7
  * `<context>:<secret-name>` syntax. The resolver:
8
8
  *
9
9
  * 1. Parses every qualified ref and groups by context name.
10
- * 2. Runs the install gate (`install-gate.ts`): every referenced context's
11
- * protection rules (branch / trust / concurrency / reviewer / wait-timer)
12
- * are evaluated before it decides. Any `reject` fails the whole workflow
13
- * dispatch with a clear reason; otherwise any hold returns ONE structured
14
- * `hold` decision, aggregated across the contexts, so the caller can
15
- * pause the workflow dispatch as a workflow-scoped held run and resume it
16
- * when the gate clears. The hold records which contexts held and which
17
- * passed. On the resume path the caller sets `skipProtectionGate` and
18
- * hands back that record: the contexts that held are covered by the
19
- * approval, every other context is gated again, and a context that now
20
- * matches a different row is refused.
10
+ * 2. Runs the install gate (`install-gate.ts`) over every referenced
11
+ * context's protection rules. Any `reject` fails the whole workflow
12
+ * dispatch; otherwise any hold returns ONE aggregated `hold` decision,
13
+ * recording which contexts held and which passed, so the caller can park a
14
+ * workflow-scoped held run. On resume the caller sets
15
+ * `skipProtectionGate` and hands back that record: held contexts are
16
+ * covered by the approval, every other context is gated again, and a
17
+ * context that now matches a different row is refused.
21
18
  * 3. Resolves secrets per context via `secretResolver.resolveForContext`
22
- * against the row step 2 gated (which writes its own audit log lines),
23
- * so a context whose name is a glob pattern delivers its own bindings.
24
- * 4. Validates each registry URL scheme: HTTPS always allowed; `http://`
25
- * allowed only for loopback / `*.local` hosts OR when the org operator
26
- * has flipped `org_settings.allow_http_npm_registries=true`.
19
+ * (which writes its own audit lines) against the row step 2 gated, so a
20
+ * glob-pattern context delivers its own bindings.
21
+ * 4. Validates each registry URL scheme: HTTPS always; `http://` only for
22
+ * loopback / `*.local` hosts or when
23
+ * `org_settings.allow_http_npm_registries=true`.
27
24
  * 5. Strips the resolved auth entirely when the contributor-trust tier is
28
- * not `trusted` (defense in depth: even if a misconfigured context
29
- * lets an unknown contributor through the protection-pipeline trust
30
- * gate, this strip ensures fork PRs never see registry tokens — the
31
- * install fails naturally because the deps are unreachable).
25
+ * not `trusted`: defense in depth, so fork PRs never see registry tokens
26
+ * even through a misconfigured context; the install then fails on
27
+ * unreachable deps.
32
28
  *
33
- * Pure helper: no imports of the dispatch giant. Tested in isolation in
34
- * `install-secrets-resolver.test.ts`.
29
+ * Pure helper: no imports of the dispatch giant.
35
30
  */
36
31
  import type { ApproverClause, LockRegistry } from '@kici-dev/engine';
37
32
  import type { TrustResolution } from '../security/trust-resolver.js';
@@ -56,16 +51,14 @@ export interface ResolveInstallSecretsArgs {
56
51
  secretResolver: SecretResolverApi | undefined;
57
52
  protectionContext: JobDispatchContext;
58
53
  /**
59
- * Resume path: the dispatch continues past a released install-gate hold. The
60
- * gate runs only for the contexts `releasedHold` does not cover. The
61
- * untrusted-contributor strip still runs first.
54
+ * Resume path past a released install-gate hold: the gate runs only for
55
+ * contexts `releasedHold` does not cover. The untrusted strip still runs first.
62
56
  */
63
57
  skipProtectionGate?: boolean;
64
58
  /**
65
- * Resume path: what the released hold recorded (`hold` decision's
66
- * `record`). Its held contexts are covered by the approval; every recorded
67
- * context must still match the same row. Read as stored JSON: absent or
68
- * malformed, it covers no context.
59
+ * Resume path: the released hold's `record`. Its held contexts are covered by
60
+ * the approval; every recorded context must still match the same row. Absent
61
+ * or malformed stored JSON covers no context.
69
62
  */
70
63
  releasedHold?: InstallGateRecord;
71
64
  }
@@ -112,11 +105,8 @@ export declare function validateRegistryUrlScheme(url: string, allowHttp: boolea
112
105
  reason: string;
113
106
  };
114
107
  /**
115
- * The held-run `hold_type` for a gate outcome — the gate's own `holdType` when
116
- * it set one, otherwise the `HoldType` member its action implies. Column and
117
- * gate share one vocabulary, so nothing is translated here.
118
- *
119
- * Exported for tests.
108
+ * The held-run `hold_type`: the gate's own `holdType`, else the `HoldType` its
109
+ * action implies. Column and gate share one vocabulary. Exported for tests.
120
110
  */
121
111
  export declare function resolveHoldType(action: 'hold' | 'wait' | 'queue', raw: string | undefined): string;
122
112
  export declare function resolveInstallSecrets(args: ResolveInstallSecretsArgs): Promise<ResolveInstallSecretsResult>;