@kici-dev/orchestrator 0.17.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/dist/agent/agent-version.d.ts +12 -21
  2. package/dist/agent/dispatcher.d.ts +283 -437
  3. package/dist/agent/host-roster-reaper.d.ts +8 -10
  4. package/dist/agent/host-roster.d.ts +77 -100
  5. package/dist/agent/ownership-refusal.d.ts +3 -5
  6. package/dist/agent/ownership-tracker.d.ts +42 -76
  7. package/dist/agent/registry.d.ts +137 -230
  8. package/dist/agent/token-store.d.ts +34 -77
  9. package/dist/agent-packaging/availability.d.ts +6 -9
  10. package/dist/agent-packaging/download.d.ts +6 -9
  11. package/dist/agent-packaging/install-closure.d.ts +9 -12
  12. package/dist/agent-packaging/node-binary.d.ts +6 -10
  13. package/dist/agent-packaging/node-runtime-members.d.ts +3 -5
  14. package/dist/agent-packaging/refresh.d.ts +12 -16
  15. package/dist/agent-packaging/store.d.ts +5 -6
  16. package/dist/agent-packaging/upload.d.ts +3 -4
  17. package/dist/app.d.ts +0 -3
  18. package/dist/approvals/apply-decision.d.ts +35 -52
  19. package/dist/approvals/approval-resolver.d.ts +11 -23
  20. package/dist/approvals/held-run-release-wiring.d.ts +14 -21
  21. package/dist/approvals/independent-wiring.d.ts +13 -20
  22. package/dist/approvals/resume-router.d.ts +1 -1
  23. package/dist/approvals/step-approval-bridge.d.ts +11 -21
  24. package/dist/approvals/triggerer-subject.d.ts +8 -10
  25. package/dist/artifacts/artifact-store.d.ts +55 -95
  26. package/dist/artifacts/failure-messages.d.ts +15 -20
  27. package/dist/audit/access-log.d.ts +27 -45
  28. package/dist/audit/sampling-rate-limiter.d.ts +11 -23
  29. package/dist/cache/agent-job-failed-error.d.ts +2 -3
  30. package/dist/cache/build-coordinator.d.ts +5 -28
  31. package/dist/cache/cache-upload-settle.d.ts +11 -11
  32. package/dist/cache/dep-cache.d.ts +32 -60
  33. package/dist/cache/dispatch-cache-ref-tracker.d.ts +15 -23
  34. package/dist/cache/global-eval-round-cache.d.ts +33 -41
  35. package/dist/cache/pending-builds.d.ts +2 -6
  36. package/dist/cache/pending-dynamics.d.ts +2 -7
  37. package/dist/cache/pending-global-evals.d.ts +9 -12
  38. package/dist/cache/pending-inits.d.ts +11 -22
  39. package/dist/cache/pending-precursor-db-watcher.d.ts +24 -32
  40. package/dist/cache/pending-tracker.d.ts +17 -45
  41. package/dist/cache/precursor-result.d.ts +17 -30
  42. package/dist/cache/source-cache.d.ts +36 -65
  43. package/dist/cache/user-cache.d.ts +21 -25
  44. package/dist/cancel/cancel-held-run.d.ts +13 -16
  45. package/dist/cancel/cancel-route-answer.d.ts +1 -2
  46. package/dist/cancel/cancel-run.d.ts +26 -50
  47. package/dist/cancel/dashboard-cancel-handler.d.ts +2 -2
  48. package/dist/cancel/peer-job-cancel.d.ts +11 -14
  49. package/dist/cancel/sweep-stuck-cancelling.d.ts +9 -13
  50. package/dist/cli/api-client.d.ts +25 -76
  51. package/dist/cli/commands/access-log.d.ts +4 -24
  52. package/dist/cli/commands/agent-package.d.ts +7 -15
  53. package/dist/cli/commands/agent-service/agent-env.d.ts +3 -6
  54. package/dist/cli/commands/agent-service/index.d.ts +4 -10
  55. package/dist/cli/commands/agent-service/install.d.ts +4 -11
  56. package/dist/cli/commands/agent-service/status.d.ts +4 -9
  57. package/dist/cli/commands/agent-service/upgrade.d.ts +4 -16
  58. package/dist/cli/commands/agent.d.ts +12 -25
  59. package/dist/cli/commands/api-key.d.ts +5 -12
  60. package/dist/cli/commands/attestations-list.d.ts +7 -17
  61. package/dist/cli/commands/attestations-retry.d.ts +5 -11
  62. package/dist/cli/commands/attestations-reverify.d.ts +4 -5
  63. package/dist/cli/commands/attestations.d.ts +3 -8
  64. package/dist/cli/commands/audit.d.ts +1 -5
  65. package/dist/cli/commands/backend.d.ts +2 -11
  66. package/dist/cli/commands/check-run.d.ts +7 -18
  67. package/dist/cli/commands/cluster-name.d.ts +5 -12
  68. package/dist/cli/commands/cluster-settings.d.ts +28 -53
  69. package/dist/cli/commands/cold-store.d.ts +7 -15
  70. package/dist/cli/commands/config.d.ts +9 -20
  71. package/dist/cli/commands/context.d.ts +8 -20
  72. package/dist/cli/commands/dashboard-encryption-key.d.ts +9 -14
  73. package/dist/cli/commands/db-backup.d.ts +17 -32
  74. package/dist/cli/commands/db.d.ts +3 -4
  75. package/dist/cli/commands/debug-bundle.d.ts +3 -10
  76. package/dist/cli/commands/diagnose.d.ts +3 -14
  77. package/dist/cli/commands/event-dlq.d.ts +4 -12
  78. package/dist/cli/commands/event-log.d.ts +2 -20
  79. package/dist/cli/commands/execution.d.ts +3 -9
  80. package/dist/cli/commands/firecracker/index.d.ts +3 -6
  81. package/dist/cli/commands/held-run.d.ts +23 -37
  82. package/dist/cli/commands/host.d.ts +4 -11
  83. package/dist/cli/commands/inspect-bundle.d.ts +3 -11
  84. package/dist/cli/commands/local-hook.d.ts +2 -10
  85. package/dist/cli/commands/local-trigger.d.ts +2 -2
  86. package/dist/cli/commands/orchestrator-service/drain.d.ts +3 -6
  87. package/dist/cli/commands/orchestrator-service/index.d.ts +6 -14
  88. package/dist/cli/commands/orchestrator-service/install-env.d.ts +25 -49
  89. package/dist/cli/commands/orchestrator-service/install.d.ts +2 -5
  90. package/dist/cli/commands/orchestrator-service/status.d.ts +10 -22
  91. package/dist/cli/commands/orchestrator-service/upgrade.d.ts +6 -15
  92. package/dist/cli/commands/org-settings.d.ts +5 -11
  93. package/dist/cli/commands/peer.d.ts +5 -10
  94. package/dist/cli/commands/queue.d.ts +3 -9
  95. package/dist/cli/commands/registration.d.ts +4 -8
  96. package/dist/cli/commands/remote-source.d.ts +6 -12
  97. package/dist/cli/commands/rotate.d.ts +1 -5
  98. package/dist/cli/commands/runs.d.ts +1 -30
  99. package/dist/cli/commands/scaler.d.ts +5 -12
  100. package/dist/cli/commands/secret.d.ts +1 -9
  101. package/dist/cli/commands/service-health.d.ts +5 -10
  102. package/dist/cli/commands/shared/admin-cli-access-log.d.ts +10 -19
  103. package/dist/cli/commands/shared/bare-metal-binary-check.d.ts +86 -0
  104. package/dist/cli/commands/shared/cli-action.d.ts +1 -4
  105. package/dist/cli/commands/shared/confirm.d.ts +5 -10
  106. package/dist/cli/commands/shared/db.d.ts +1 -12
  107. package/dist/cli/commands/shared/env-file-mode.d.ts +6 -9
  108. package/dist/cli/commands/shared/secret-input.d.ts +7 -21
  109. package/dist/cli/commands/shared/service-verbs.d.ts +6 -12
  110. package/dist/cli/commands/shared/unbound-context-warning.d.ts +2 -4
  111. package/dist/cli/commands/shared/upgrade-hooks.d.ts +7 -16
  112. package/dist/cli/commands/shared/upgrade-safety.d.ts +20 -31
  113. package/dist/cli/commands/shared/versioned-upgrade.d.ts +83 -161
  114. package/dist/cli/commands/signing-key.d.ts +4 -9
  115. package/dist/cli/commands/source-manifest.d.ts +11 -14
  116. package/dist/cli/commands/source.d.ts +7 -32
  117. package/dist/cli/commands/token.d.ts +4 -15
  118. package/dist/cli/commands/trust-policy.d.ts +35 -88
  119. package/dist/cli/commands/variable.d.ts +3 -5
  120. package/dist/cli/commands/workflow.d.ts +3 -24
  121. package/dist/cli/join.d.ts +3 -6
  122. package/dist/cli/kici-admin.d.ts +11 -29
  123. package/dist/cli/lazy-deps/cache.d.ts +1 -14
  124. package/dist/cli/lazy-deps/downloader.d.ts +4 -27
  125. package/dist/cli/lazy-deps/registry.d.ts +5 -25
  126. package/dist/cli/local-github-ingress-url.d.ts +5 -7
  127. package/dist/cli/loopback-callback.d.ts +6 -7
  128. package/dist/cli/open-browser.d.ts +4 -8
  129. package/dist/cli/root-option-routing.d.ts +17 -29
  130. package/dist/cli/service/backup-timer.d.ts +16 -39
  131. package/dist/cli/service/compose-path.d.ts +3 -7
  132. package/dist/cli/service/compose.d.ts +12 -30
  133. package/dist/cli/service/deploy-env.d.ts +6 -18
  134. package/dist/cli/service/entrypoint.d.ts +14 -25
  135. package/dist/cli/service/env-assignment.d.ts +6 -17
  136. package/dist/cli/service/image-digests.d.ts +6 -15
  137. package/dist/cli/service/index.d.ts +2 -18
  138. package/dist/cli/service/instance/index-file.d.ts +9 -16
  139. package/dist/cli/service/instance/manifest.d.ts +60 -60
  140. package/dist/cli/service/instance/resolve.d.ts +32 -68
  141. package/dist/cli/service/instance/types.d.ts +12 -29
  142. package/dist/cli/service/launchd.d.ts +29 -60
  143. package/dist/cli/service/platform-detect.d.ts +13 -68
  144. package/dist/cli/service/privilege.d.ts +12 -25
  145. package/dist/cli/service/shutdown-grace.d.ts +11 -20
  146. package/dist/cli/service/systemd.d.ts +7 -20
  147. package/dist/cli/service/types.d.ts +63 -114
  148. package/dist/cli/service/windows-acl.d.ts +14 -21
  149. package/dist/cli/service/windows-env-file.d.ts +10 -28
  150. package/dist/cli/service/windows.d.ts +15 -31
  151. package/dist/cli/webhook-url-notes.d.ts +4 -6
  152. package/dist/cli/wizard/agent-wizard.d.ts +3 -14
  153. package/dist/cli/wizard/orchestrator-wizard.d.ts +12 -37
  154. package/dist/cli/wizard/prompts.d.ts +6 -16
  155. package/dist/cli.js +8207 -10128
  156. package/dist/cluster/cluster-identity.d.ts +20 -32
  157. package/dist/cluster/cluster-settings-reader.d.ts +50 -77
  158. package/dist/cluster/coordinator-credential.d.ts +4 -5
  159. package/dist/cluster/coordinator.d.ts +76 -148
  160. package/dist/cluster/health-api.d.ts +2 -10
  161. package/dist/cluster/index.d.ts +1 -6
  162. package/dist/cluster/instance-heartbeat.d.ts +26 -42
  163. package/dist/cluster/join-client.d.ts +4 -7
  164. package/dist/cluster/join-handler.d.ts +3 -7
  165. package/dist/cluster/join-token.d.ts +13 -27
  166. package/dist/cluster/leader-gated-scheduler.d.ts +8 -17
  167. package/dist/cluster/orphan-recovery.d.ts +13 -35
  168. package/dist/cluster/peer-auth-coordinator.d.ts +2 -8
  169. package/dist/cluster/peer-client.d.ts +46 -76
  170. package/dist/cluster/peer-credentials.d.ts +24 -70
  171. package/dist/cluster/peer-crypto.d.ts +5 -26
  172. package/dist/cluster/peer-forget.d.ts +3 -3
  173. package/dist/cluster/peer-handler.d.ts +47 -71
  174. package/dist/cluster/peer-registry.d.ts +37 -106
  175. package/dist/cluster/plan-headroom-store.d.ts +4 -6
  176. package/dist/cluster/raft-state.d.ts +4 -13
  177. package/dist/cluster/raft.d.ts +18 -53
  178. package/dist/cluster/reconcile-identity.d.ts +8 -11
  179. package/dist/cluster/rerouted-job-guard.d.ts +7 -11
  180. package/dist/cluster/verified-issuer.d.ts +2 -3
  181. package/dist/cluster/worker-cluster-settings.d.ts +7 -10
  182. package/dist/cluster/worker-eviction.d.ts +16 -26
  183. package/dist/cold-store/load-access-log-range.d.ts +15 -31
  184. package/dist/cold-store/load-event-log-range.d.ts +13 -27
  185. package/dist/cold-store/load-secret-audit-log-range.d.ts +8 -12
  186. package/dist/cold-store/orchestrator-cold-store.d.ts +8 -28
  187. package/dist/cold-store/tables/access-log.d.ts +12 -14
  188. package/dist/cold-store/tables/event-log.d.ts +4 -8
  189. package/dist/cold-store/tables/execution-runs.d.ts +6 -11
  190. package/dist/cold-store/tables/secret-audit-log.d.ts +5 -12
  191. package/dist/concurrency/dispatch-next-queued.d.ts +13 -25
  192. package/dist/concurrency/queue-manager.d.ts +22 -54
  193. package/dist/concurrency/waiters.d.ts +15 -31
  194. package/dist/config/encryption.d.ts +0 -2
  195. package/dist/config/loader.d.ts +0 -1
  196. package/dist/config/reload.d.ts +0 -6
  197. package/dist/config/resolver.d.ts +0 -4
  198. package/dist/config/shared-store.d.ts +0 -2
  199. package/dist/config/types.d.ts +0 -3
  200. package/dist/content-requirements-cache.d.ts +0 -1
  201. package/dist/contexts/context-store.d.ts +0 -2
  202. package/dist/contexts/held-runs.d.ts +0 -2
  203. package/dist/contexts/variable-store.d.ts +0 -2
  204. package/dist/dashboard/attestation-filters.d.ts +13 -18
  205. package/dist/dashboard/handler.d.ts +145 -307
  206. package/dist/db/client.d.ts +2 -6
  207. package/dist/db/deferred-index-build.d.ts +8 -10
  208. package/dist/db/deferred-indexes.d.ts +15 -22
  209. package/dist/db/migration-provider.d.ts +2 -4
  210. package/dist/db/migration-test-harness.d.ts +26 -44
  211. package/dist/db/migrations/001_initial.d.ts +1 -4
  212. package/dist/db/migrations/002_config_versions_key_version.d.ts +5 -8
  213. package/dist/db/migrations/003_access_log.d.ts +10 -15
  214. package/dist/db/migrations/004_rename_bundle_to_source.d.ts +7 -9
  215. package/dist/db/migrations/005_cold_store_chunk_counter.d.ts +4 -10
  216. package/dist/db/migrations/006_runs_jobs_steps_archived_at.d.ts +9 -29
  217. package/dist/db/migrations/007_audit_logs_archived_at.d.ts +11 -30
  218. package/dist/db/migrations/008_event_log_archived_at.d.ts +14 -29
  219. package/dist/db/migrations/009_access_log_trigram.d.ts +4 -8
  220. package/dist/db/migrations/010_cold_store_chunks.d.ts +16 -26
  221. package/dist/db/migrations/011_drop_source_secrets_notify.d.ts +6 -14
  222. package/dist/db/migrations/012_peer_credentials_active_uniq.d.ts +9 -14
  223. package/dist/db/migrations/013_execution_log_bytes.d.ts +5 -13
  224. package/dist/db/migrations/014_kici_events_lease_retry.d.ts +14 -27
  225. package/dist/db/migrations/015_org_settings_customer_scoped.d.ts +12 -17
  226. package/dist/db/migrations/016_org_settings_allow_http_npm.d.ts +4 -6
  227. package/dist/db/migrations/019_generic_sources_change_notify.d.ts +13 -17
  228. package/dist/db/migrations/020_org_settings_dashboard_write_policy.d.ts +5 -8
  229. package/dist/db/migrations/021_check_run_tracking.d.ts +5 -17
  230. package/dist/db/migrations/022_scaler_manager_state.d.ts +10 -20
  231. package/dist/db/migrations/023_dispatch_queue_recovery_deadline.d.ts +7 -18
  232. package/dist/db/migrations/024_dispatch_queue_provisioning_error.d.ts +5 -11
  233. package/dist/db/migrations/025_init_failure.d.ts +5 -9
  234. package/dist/db/migrations/027_workflow_timeout.d.ts +5 -13
  235. package/dist/db/migrations/029_dispatch_queue_attempts.d.ts +4 -10
  236. package/dist/db/migrations/030_held_runs_env_set_null.d.ts +5 -6
  237. package/dist/db/migrations/031_dispatch_queue_ack_deadline.d.ts +6 -12
  238. package/dist/db/migrations/033_org_settings_approval.d.ts +7 -10
  239. package/dist/db/migrations/034_held_runs_generalize.d.ts +10 -18
  240. package/dist/db/migrations/035_pending_workflow_contexts.d.ts +4 -5
  241. package/dist/db/migrations/037_generic_sources_provider_type_local.d.ts +5 -6
  242. package/dist/db/migrations/038_remote_sources.d.ts +5 -7
  243. package/dist/db/migrations/045_host_properties.d.ts +5 -9
  244. package/dist/db/migrations/046_join_token_consumed_by_instance.d.ts +5 -10
  245. package/dist/db/migrations/048_host_reboot_pending.d.ts +6 -12
  246. package/dist/db/migrations/049_held_runs_payload.d.ts +3 -8
  247. package/dist/db/migrations/050_sources_slug.d.ts +4 -5
  248. package/dist/db/migrations/051_binding_host_pattern.d.ts +7 -10
  249. package/dist/db/migrations/052_host_reach_metadata.d.ts +8 -11
  250. package/dist/db/migrations/053_agent_token_single_use.d.ts +6 -10
  251. package/dist/db/migrations/054_local_working_tree.d.ts +4 -6
  252. package/dist/db/migrations/055_agent_token_mandatory_labels.d.ts +6 -11
  253. package/dist/db/migrations/056_execution_jobs_environments.d.ts +4 -11
  254. package/dist/db/migrations/064_execution_jobs_skipped_environments.d.ts +6 -9
  255. package/dist/db/migrations/065_pending_attestations.d.ts +9 -12
  256. package/dist/db/migrations/066_pending_attestations_rejected.d.ts +4 -7
  257. package/dist/db/migrations/068_request_idempotency.d.ts +7 -9
  258. package/dist/db/migrations/069_reroute_tunables.d.ts +6 -14
  259. package/dist/db/migrations/071_batch_accumulation.d.ts +8 -16
  260. package/dist/db/migrations/072_dispatch_queue_run_id_index.d.ts +3 -9
  261. package/dist/db/migrations/074_normalize_zero_concurrency_limit.d.ts +4 -7
  262. package/dist/db/migrations/076_artifacts.d.ts +7 -8
  263. package/dist/db/migrations/078_org_settings_backup_staleness.d.ts +3 -6
  264. package/dist/db/migrations/079_org_settings_scaler_spawn_timeout.d.ts +4 -8
  265. package/dist/db/migrations/080_cluster_settings.d.ts +6 -10
  266. package/dist/db/migrations/081_org_settings_queue_timeout.d.ts +7 -11
  267. package/dist/db/migrations/082_host_s3_reachable.d.ts +5 -10
  268. package/dist/db/migrations/083_org_settings_artifact_caps.d.ts +6 -8
  269. package/dist/db/migrations/084_orchestrator_signing_keys.d.ts +8 -13
  270. package/dist/db/migrations/085_cluster_settings_reroute_flap_grace_ms.d.ts +4 -5
  271. package/dist/db/migrations/086_cluster_settings_max_fanout_hosts.d.ts +3 -3
  272. package/dist/db/migrations/087_cluster_settings_event_router_rate_limit.d.ts +5 -3
  273. package/dist/db/migrations/088_cluster_settings_cache_max_tarball_bytes.d.ts +3 -3
  274. package/dist/db/migrations/089_cluster_settings_cache_ttl_days.d.ts +3 -5
  275. package/dist/db/migrations/090_cluster_settings_concurrency_wait_timeout_ms.d.ts +3 -6
  276. package/dist/db/migrations/091_cluster_settings_agent_token_ttl_ms.d.ts +3 -6
  277. package/dist/db/migrations/092_cluster_settings_version.d.ts +5 -9
  278. package/dist/db/migrations/094_dashboard_encryption_keys.d.ts +9 -14
  279. package/dist/db/migrations/095_dashboard_write_policy_tristate.d.ts +2 -6
  280. package/dist/db/migrations/099_cluster_settings_dashboard_verified_issuer.d.ts +8 -11
  281. package/dist/db/migrations/101_contexts_hold_expiry_drop_default.d.ts +9 -15
  282. package/dist/db/migrations/102_dispatch_queue_agent_id.d.ts +6 -11
  283. package/dist/db/migrations/103_cluster_settings_ownership_db_check_timeout_ms.d.ts +6 -12
  284. package/dist/db/migrations/104_check_run_terminal_sent.d.ts +8 -14
  285. package/dist/db/migrations/105_org_trust_policy.d.ts +5 -7
  286. package/dist/db/migrations/106_cluster_settings_check_run_tracking_ttl_days.d.ts +4 -12
  287. package/dist/db/migrations/107_check_run_tracking_updated_at_index.d.ts +8 -14
  288. package/dist/db/migrations/113_execution_runs_workflow_repo_index.d.ts +10 -19
  289. package/dist/db/migrations/115_global_workflows_cluster_switch.d.ts +2 -3
  290. package/dist/db/migrations/121_org_settings_allow_untrusted_dockerfile_builds.d.ts +7 -8
  291. package/dist/db/migrations/122_host_roster_scaler_managed.d.ts +9 -16
  292. package/dist/db/migrations/123_workflow_registrations_default_branch.d.ts +8 -16
  293. package/dist/db/migrations/125_org_trust_directory.d.ts +13 -21
  294. package/dist/db/migrations/126_held_runs_posted_pending_check.d.ts +10 -16
  295. package/dist/db/migrations/127_org_trust_policy_approval_expiry_seconds.d.ts +8 -16
  296. package/dist/db/migrations/128_execution_runs_global_eval_round.d.ts +6 -11
  297. package/dist/db/migrations/129_execution_runs_dispatch_routing_key.d.ts +8 -11
  298. package/dist/db/migrations/130_scaler_provision_outcomes.d.ts +13 -20
  299. package/dist/db/migrations/131_execution_jobs_git_credentials.d.ts +12 -22
  300. package/dist/db/migrations/132_execution_runs_trigger_event.d.ts +6 -16
  301. package/dist/db/migrations/133_dispatch_queue_source_tar_digest.d.ts +6 -9
  302. package/dist/db/migrations/140_dispatch_queue_canonical_labels.d.ts +22 -40
  303. package/dist/db/migrations/143_execution_jobs_precursor_result.d.ts +9 -18
  304. package/dist/db/migrations/144_execution_runs_registration_window.d.ts +12 -20
  305. package/dist/db/migrations/147_sealed_job_secrets.d.ts +5 -9
  306. package/dist/db/migrations/148_cluster_settings_sealed_secrets_retry_backoff_ms.d.ts +7 -13
  307. package/dist/db/migrations/150_execution_runs_status_epoch.d.ts +6 -11
  308. package/dist/db/migrations/152_org_settings_cache_upload_settle_timeout.d.ts +5 -8
  309. package/dist/db/migrations/157_host_roster_identity_source.d.ts +9 -13
  310. package/dist/db/migrations/159_org_id_widen_to_source_width.d.ts +5 -0
  311. package/dist/db/migrator.d.ts +17 -25
  312. package/dist/db/notify-listener.d.ts +8 -11
  313. package/dist/db/repos/dashboard-encryption-keys-repo.d.ts +9 -10
  314. package/dist/db/synthetic-job-ids.d.ts +6 -8
  315. package/dist/db/types.d.ts +531 -1058
  316. package/dist/deployment/deployment-identity.d.ts +42 -60
  317. package/dist/diagnostics/bundle-reader.d.ts +3 -15
  318. package/dist/diagnostics/bundle-writer.d.ts +5 -12
  319. package/dist/diagnostics/checks/agents.d.ts +1 -7
  320. package/dist/diagnostics/checks/backup.d.ts +7 -10
  321. package/dist/diagnostics/checks/certs.d.ts +1 -6
  322. package/dist/diagnostics/checks/config.d.ts +2 -5
  323. package/dist/diagnostics/checks/db.d.ts +1 -1
  324. package/dist/diagnostics/checks/disk.d.ts +1 -6
  325. package/dist/diagnostics/checks/firecracker-network.d.ts +3 -3
  326. package/dist/diagnostics/checks/index.d.ts +0 -6
  327. package/dist/diagnostics/checks/retention.d.ts +3 -6
  328. package/dist/diagnostics/checks/scaler.d.ts +3 -7
  329. package/dist/diagnostics/checks/ws.d.ts +1 -6
  330. package/dist/diagnostics/fleet-collector.d.ts +11 -14
  331. package/dist/diagnostics/fleet-constants.d.ts +1 -3
  332. package/dist/diagnostics/fleet-selection.d.ts +3 -7
  333. package/dist/diagnostics/fleet-topology.d.ts +2 -6
  334. package/dist/diagnostics/fleet-wiring.d.ts +6 -12
  335. package/dist/diagnostics/index.d.ts +0 -5
  336. package/dist/diagnostics/runner.d.ts +4 -8
  337. package/dist/diagnostics/types.d.ts +10 -21
  338. package/dist/drain/drain-controller.d.ts +16 -22
  339. package/dist/entry-helpers.d.ts +0 -2
  340. package/dist/events/circuit-breaker.d.ts +0 -3
  341. package/dist/events/event-router.d.ts +1 -2
  342. package/dist/events/event-store.d.ts +0 -9
  343. package/dist/events/trust-store.d.ts +0 -3
  344. package/dist/events/types.d.ts +0 -9
  345. package/dist/firecracker/host-network.d.ts +24 -30
  346. package/dist/firecracker/net-interfaces.d.ts +4 -7
  347. package/dist/helpers/rate-limiter.d.ts +0 -1
  348. package/dist/index.js +240 -482
  349. package/dist/metrics/agent-metrics-aggregator.d.ts +24 -67
  350. package/dist/metrics/metrics-reporter.d.ts +4 -13
  351. package/dist/metrics/prometheus.d.ts +47 -81
  352. package/dist/orchestrator-core.d.ts +3 -7
  353. package/dist/pipeline/content-filter.d.ts +20 -30
  354. package/dist/pipeline/cross-source-tally.d.ts +7 -8
  355. package/dist/pipeline/decorating-secret-resolver.d.ts +4 -8
  356. package/dist/pipeline/degraded-reason.d.ts +3 -4
  357. package/dist/pipeline/direct-ingress-deps.d.ts +15 -24
  358. package/dist/pipeline/dispatch-matched-workflow.d.ts +290 -526
  359. package/dist/pipeline/flatten-lock-steps.d.ts +4 -6
  360. package/dist/pipeline/global-dispatch-identity.d.ts +5 -10
  361. package/dist/pipeline/global-eval-round.d.ts +62 -156
  362. package/dist/pipeline/global-round-hold.d.ts +5 -7
  363. package/dist/pipeline/held-context-data.d.ts +5 -8
  364. package/dist/pipeline/held-round-registrations.d.ts +8 -11
  365. package/dist/pipeline/install-gate.d.ts +15 -25
  366. package/dist/pipeline/install-secrets-resolver.d.ts +24 -34
  367. package/dist/pipeline/internal-event-pipeline.d.ts +45 -62
  368. package/dist/pipeline/invoke-gate.d.ts +27 -40
  369. package/dist/pipeline/job-contexts.d.ts +19 -36
  370. package/dist/pipeline/manual-schedule.d.ts +7 -13
  371. package/dist/pipeline/needs-scheduler.d.ts +29 -46
  372. package/dist/pipeline/pending-workflow-context.d.ts +14 -28
  373. package/dist/pipeline/process-webhook.d.ts +88 -123
  374. package/dist/pipeline/processor.d.ts +209 -355
  375. package/dist/pipeline/remote-source-store.d.ts +5 -8
  376. package/dist/pipeline/request-idempotency.d.ts +10 -13
  377. package/dist/pipeline/rerun-global.d.ts +6 -7
  378. package/dist/pipeline/rerun-inputs.d.ts +23 -37
  379. package/dist/pipeline/rerun.d.ts +34 -57
  380. package/dist/pipeline/resolve-sandbox-grant.d.ts +5 -10
  381. package/dist/pipeline/resume-workflow.d.ts +28 -34
  382. package/dist/pipeline/route-or-dispatch-jobs.d.ts +19 -30
  383. package/dist/pipeline/run-event-context.d.ts +16 -21
  384. package/dist/pipeline/sandbox-allowlist-reader.d.ts +7 -11
  385. package/dist/pipeline/security-hold-check.d.ts +56 -80
  386. package/dist/pipeline/test-pipeline.d.ts +20 -46
  387. package/dist/pipeline/unbound-job-context.d.ts +6 -9
  388. package/dist/pipeline/undispatched-hold-checks.d.ts +4 -6
  389. package/dist/pipeline/wave-scheduler.d.ts +15 -22
  390. package/dist/pipeline/webhook-payload-store.d.ts +3 -10
  391. package/dist/pipeline/workflow-lock-at-sha.d.ts +14 -20
  392. package/dist/policy/dashboard-write-policy.d.ts +1 -1
  393. package/dist/provider-registry.d.ts +0 -19
  394. package/dist/providers/generic/index.d.ts +0 -2
  395. package/dist/providers/generic/normalizer.d.ts +0 -1
  396. package/dist/providers/generic/verification.d.ts +0 -8
  397. package/dist/providers/github/auth.d.ts +0 -1
  398. package/dist/providers/github/changed-files.d.ts +2 -1
  399. package/dist/providers/github/file-contents.d.ts +0 -4
  400. package/dist/providers/github/lock-file.d.ts +0 -4
  401. package/dist/providers/github/normalizer.d.ts +1 -9
  402. package/dist/providers/local/index.d.ts +1 -2
  403. package/dist/providers/local/lock-file-fetcher.d.ts +0 -4
  404. package/dist/providers/local/normalizer.d.ts +0 -10
  405. package/dist/providers/local/repo-url-builder.d.ts +0 -2
  406. package/dist/providers/universal-git/clone-token.d.ts +0 -2
  407. package/dist/providers/universal-git/lock-file.d.ts +0 -2
  408. package/dist/providers/universal-git/normalizer.d.ts +0 -2
  409. package/dist/queue/bootstrap.d.ts +3 -15
  410. package/dist/queue/cleanup.d.ts +29 -50
  411. package/dist/queue/depth-refresher.d.ts +21 -39
  412. package/dist/queue/job-queue.d.ts +112 -163
  413. package/dist/queue/retention.d.ts +23 -36
  414. package/dist/queue/scheduled-job.d.ts +17 -39
  415. package/dist/queue/terminalize-unroutable.d.ts +16 -18
  416. package/dist/queue/unroutable-probe.d.ts +15 -22
  417. package/dist/registration/extractor.d.ts +0 -6
  418. package/dist/registration/registration-index.d.ts +0 -6
  419. package/dist/registration/registration-store.d.ts +0 -9
  420. package/dist/reporting/agent-failure-category.d.ts +3 -5
  421. package/dist/reporting/check-run-reporter.d.ts +142 -316
  422. package/dist/reporting/check-run-summary.d.ts +16 -35
  423. package/dist/reporting/check-run-tracking-store.d.ts +54 -107
  424. package/dist/reporting/execution-tracker.d.ts +356 -526
  425. package/dist/reporting/fs-log-storage.d.ts +31 -33
  426. package/dist/reporting/job-check-run-completion.d.ts +14 -22
  427. package/dist/reporting/log-chunk-sink.d.ts +11 -16
  428. package/dist/reporting/log-pull-handler.d.ts +4 -13
  429. package/dist/reporting/log-retention.d.ts +3 -4
  430. package/dist/reporting/log-storage.d.ts +24 -52
  431. package/dist/reporting/log-writer.d.ts +28 -56
  432. package/dist/reporting/peer-log-normalize.d.ts +4 -8
  433. package/dist/reporting/run-aggregator.d.ts +6 -11
  434. package/dist/reporting/run-summary-fields.d.ts +5 -8
  435. package/dist/reporting/s3-log-storage.d.ts +31 -50
  436. package/dist/reporting/step-display-order.d.ts +11 -21
  437. package/dist/reporting/step-log-buffer.d.ts +7 -28
  438. package/dist/reporting/step-log-reader.d.ts +11 -19
  439. package/dist/routes/admin-access-log.d.ts +4 -6
  440. package/dist/routes/admin-auth.d.ts +17 -38
  441. package/dist/routes/admin-backends.d.ts +3 -14
  442. package/dist/routes/admin-cluster-name.d.ts +13 -21
  443. package/dist/routes/admin-cluster-settings.d.ts +6 -9
  444. package/dist/routes/admin-config.d.ts +7 -19
  445. package/dist/routes/admin-contexts.d.ts +6 -13
  446. package/dist/routes/admin-db.d.ts +5 -10
  447. package/dist/routes/admin-event-dlq.d.ts +3 -5
  448. package/dist/routes/admin-event-inspect.d.ts +3 -4
  449. package/dist/routes/admin-event-log.d.ts +3 -7
  450. package/dist/routes/admin-events.d.ts +16 -30
  451. package/dist/routes/admin-held-runs.d.ts +52 -76
  452. package/dist/routes/admin-maintenance.d.ts +3 -6
  453. package/dist/routes/admin-orchestrator-drain.d.ts +0 -2
  454. package/dist/routes/admin-org-settings.d.ts +8 -14
  455. package/dist/routes/admin-peer-forget.d.ts +0 -1
  456. package/dist/routes/admin-queue-execution.d.ts +3 -3
  457. package/dist/routes/admin-registrations.d.ts +3 -12
  458. package/dist/routes/admin-runs.d.ts +16 -29
  459. package/dist/routes/admin-scaler-orphans.d.ts +4 -4
  460. package/dist/routes/admin-scaler-reload.d.ts +5 -8
  461. package/dist/routes/admin-scheduled-jobs.d.ts +3 -4
  462. package/dist/routes/admin-sources.d.ts +20 -29
  463. package/dist/routes/admin-trust-policy.d.ts +31 -48
  464. package/dist/routes/admin.d.ts +67 -94
  465. package/dist/routes/caller-identity.d.ts +5 -12
  466. package/dist/routes/capabilities.d.ts +8 -13
  467. package/dist/routes/diagnostics.d.ts +2 -10
  468. package/dist/routes/fleet.d.ts +1 -2
  469. package/dist/routes/github-webhook.d.ts +2 -5
  470. package/dist/routes/health.d.ts +6 -19
  471. package/dist/routes/provenance-oidc.d.ts +3 -3
  472. package/dist/routes/uploads.d.ts +5 -11
  473. package/dist/routes/webhooks.d.ts +2 -24
  474. package/dist/scaler/agent-binary-location.d.ts +77 -0
  475. package/dist/scaler/agent-fit.d.ts +2 -2
  476. package/dist/scaler/backend-factory.d.ts +10 -18
  477. package/dist/scaler/bare-metal-backend.d.ts +30 -46
  478. package/dist/scaler/claim-store.d.ts +20 -43
  479. package/dist/scaler/config.d.ts +10 -37
  480. package/dist/scaler/container-backend.d.ts +22 -35
  481. package/dist/scaler/container-hostconfig.d.ts +19 -16
  482. package/dist/scaler/container-routing.d.ts +10 -13
  483. package/dist/scaler/disk-guard.d.ts +2 -3
  484. package/dist/scaler/event-backend.d.ts +33 -58
  485. package/dist/scaler/event-provision-reaper.d.ts +61 -84
  486. package/dist/scaler/failure-tracker.d.ts +6 -13
  487. package/dist/scaler/file-tail.d.ts +6 -19
  488. package/dist/scaler/firecracker-api.d.ts +19 -63
  489. package/dist/scaler/firecracker-backend.d.ts +142 -258
  490. package/dist/scaler/host-access.d.ts +7 -10
  491. package/dist/scaler/index.d.ts +3 -6
  492. package/dist/scaler/ip-allocator.d.ts +30 -82
  493. package/dist/scaler/label-matcher.d.ts +14 -35
  494. package/dist/scaler/log-forwarder.d.ts +6 -25
  495. package/dist/scaler/machine-ledger.d.ts +39 -86
  496. package/dist/scaler/manager.d.ts +517 -787
  497. package/dist/scaler/pending-scale-sweeper.d.ts +8 -11
  498. package/dist/scaler/reap-orphans.d.ts +8 -12
  499. package/dist/scaler/resolve-container-auth.d.ts +12 -21
  500. package/dist/scaler/scaler-events.d.ts +2 -5
  501. package/dist/scaler/scaler-state-store.d.ts +127 -189
  502. package/dist/scaler/spawn-errors.d.ts +1 -4
  503. package/dist/scaler/startup-orphan-sweep.d.ts +3 -4
  504. package/dist/scaler/startup-tools-check.d.ts +21 -0
  505. package/dist/scaler/types.d.ts +142 -255
  506. package/dist/scaler/vm-job-bindings.d.ts +5 -9
  507. package/dist/scaler/warm-pool.d.ts +49 -93
  508. package/dist/secrets/audit-logger.d.ts +0 -3
  509. package/dist/secrets/backend-health.d.ts +0 -9
  510. package/dist/secrets/backend-registry.d.ts +0 -9
  511. package/dist/secrets/cleanup.d.ts +0 -1
  512. package/dist/secrets/config.d.ts +0 -3
  513. package/dist/secrets/ephemeral-keys.d.ts +0 -3
  514. package/dist/secrets/pg-secret-store.d.ts +0 -3
  515. package/dist/secrets/rbac.d.ts +0 -6
  516. package/dist/secrets/secret-output-store.d.ts +0 -6
  517. package/dist/secrets/secret-resolver.d.ts +2 -6
  518. package/dist/secrets/token-manager.d.ts +0 -4
  519. package/dist/secrets/vault-secret-store.d.ts +0 -13
  520. package/dist/security/comment-handler.d.ts +0 -2
  521. package/dist/security/workflow-diff.d.ts +1 -1
  522. package/dist/server.js +8628 -13569
  523. package/dist/sources/source-manager.d.ts +0 -3
  524. package/dist/sources/source-store.d.ts +0 -9
  525. package/dist/sources/source-validator.d.ts +0 -3
  526. package/dist/stale-detector/all-terminal-runs.d.ts +8 -11
  527. package/dist/stale-detector/gate-deadline-detector.d.ts +14 -19
  528. package/dist/stale-detector/reboot-deadline-sweep.d.ts +7 -11
  529. package/dist/stale-detector/stale-dispatch-candidates.d.ts +13 -20
  530. package/dist/stale-detector/stale-run-detector.d.ts +74 -121
  531. package/dist/stale-detector/workflow-deadline-detector.d.ts +15 -43
  532. package/dist/standalone.js +7670 -12402
  533. package/dist/storage/blob-routes.d.ts +10 -19
  534. package/dist/storage/filesystem.d.ts +19 -29
  535. package/dist/storage/index.d.ts +2 -10
  536. package/dist/storage/key-discriminator.d.ts +8 -10
  537. package/dist/storage/loopback-guard.d.ts +27 -45
  538. package/dist/storage/s3.d.ts +25 -52
  539. package/dist/storage/sign-url.d.ts +7 -22
  540. package/dist/storage/types.d.ts +44 -70
  541. package/dist/webhook/event-log.d.ts +0 -2
  542. package/dist/webhook/generic-sources.d.ts +0 -21
  543. package/dist/webhook/ingest-admission.d.ts +0 -1
  544. package/dist/webhook/relay-buffer.d.ts +2 -2
  545. package/dist/webhook/verify-inbound.d.ts +0 -1
  546. package/dist/worker/in-memory-execution-tracker.d.ts +9 -31
  547. package/dist/worker/in-memory-job-queue.d.ts +32 -72
  548. package/dist/worker/peer-outbox.d.ts +5 -8
  549. package/dist/worker/reroute-dispatch.d.ts +4 -6
  550. package/dist/worker/static-agent-token-store.d.ts +6 -27
  551. package/dist/worker/worker-outbox-relay.d.ts +2 -2
  552. package/dist/worker/worker-status.d.ts +3 -20
  553. package/dist/ws/agent-api-registry.d.ts +8 -27
  554. package/dist/ws/agent-handler.d.ts +63 -110
  555. package/dist/ws/agent-heartbeat.d.ts +5 -12
  556. package/dist/ws/bringup-api.d.ts +31 -38
  557. package/dist/ws/dashboard-backends-handler.d.ts +12 -22
  558. package/dist/ws/dashboard-context-handler.d.ts +37 -80
  559. package/dist/ws/dashboard-diagnostics-handler.d.ts +8 -25
  560. package/dist/ws/dashboard-dispatch-guard.d.ts +3 -4
  561. package/dist/ws/dashboard-fleet-handler.d.ts +9 -13
  562. package/dist/ws/dashboard-fleet-write-handler.d.ts +7 -21
  563. package/dist/ws/dashboard-global-workflows-handler.d.ts +22 -44
  564. package/dist/ws/dashboard-registrations-handler.d.ts +10 -27
  565. package/dist/ws/dashboard-run-state-handler.d.ts +10 -13
  566. package/dist/ws/event-buffer.d.ts +3 -6
  567. package/dist/ws/execution-status-frame.d.ts +9 -11
  568. package/dist/ws/failure-messages.d.ts +9 -14
  569. package/dist/ws/fleet-agent-collector.d.ts +6 -12
  570. package/dist/ws/fleet-runs-on-all.d.ts +1 -6
  571. package/dist/ws/git-credential-relay.d.ts +12 -20
  572. package/dist/ws/inventory-api.d.ts +4 -5
  573. package/dist/ws/job-status-forward-frame.d.ts +30 -0
  574. package/dist/ws/observer-registry.d.ts +14 -59
  575. package/dist/ws/outbound-frame-guard.d.ts +4 -0
  576. package/dist/ws/ownership-gate.d.ts +1 -1
  577. package/dist/ws/platform-client.d.ts +32 -31
  578. package/dist/ws/replay-chunker.d.ts +7 -10
  579. package/dist/ws/server-options.d.ts +5 -9
  580. package/dist/ws/test-relay-handlers.d.ts +45 -59
  581. package/dist/ws/test-run-log-cursor.d.ts +18 -0
  582. package/installer-image-digests.json +3 -3
  583. package/package.json +6 -5
  584. package/sbom.spdx.json +53 -53
  585. package/dist/__test-helpers__/fake-scaler-state-store.d.ts +0 -24
  586. package/dist/__test-helpers__/mock-db-query.d.ts +0 -129
  587. package/dist/__test-helpers__/mock-db.d.ts +0 -134
  588. package/dist/__test-helpers__/mock-ws.d.ts +0 -13
  589. package/dist/__test-helpers__/peer-mutual-auth.d.ts +0 -42
  590. package/dist/__test-helpers__/scratch-db.d.ts +0 -16
  591. package/dist/__test-helpers__/test-db.d.ts +0 -34
  592. package/dist/pipeline/dispatch-matched-workflow.test-helpers.d.ts +0 -121
@@ -12,31 +12,25 @@ interface DashboardHandlerDeps {
12
12
  logStorage: LogStorage;
13
13
  /**
14
14
  * The orchestrator's own provenance issuer (`KICI_ORCHESTRATOR_PROVENANCE_ISSUER`)
15
- * when it owns signing. Surfaced on attestations-list responses so the Platform
16
- * returns it as `trustedIssuer` — the dashboard / CLI verify against the
17
- * orchestrator that signed the bundles.
15
+ * when it owns signing. The Platform returns it as `trustedIssuer`, so the
16
+ * dashboard / CLI verify against the orchestrator that signed the bundles.
18
17
  */
19
18
  provenanceSigningIssuer?: string | null;
20
19
  /**
21
- * Object-storage backend for provenance bundles. The attestations handler
22
- * reads each stored bundle by `storage_key` and inlines it into the response
23
- * so the dashboard verifies it client-side without a second fetch. Optional —
24
- * when absent (e.g. orchestrators without provenance configured) the handler
25
- * replies with an `error` and an empty list. Reuses the cache storage backend
26
- * (the same one attestation bundles are written to).
20
+ * The cache storage backend attestation bundles are written to. The handler
21
+ * inlines each bundle (by `storage_key`) so the dashboard verifies it
22
+ * client-side without a second fetch. Absent (no provenance configured) ⇒ an
23
+ * `error` reply with an empty list.
27
24
  */
28
25
  provenanceStorage?: CacheStorage | null;
29
26
  /**
30
- * User-facing artifacts layer. Backs `dashboard.artifacts.list` — lists a
31
- * run's named artifacts and mints a presigned GET per entry. Optional — when
32
- * absent (orchestrator without a DB / cache storage) the handler replies with
33
- * an `error` and an empty list.
27
+ * Backs `dashboard.artifacts.list` (a presigned GET per artifact). Absent (no
28
+ * DB / cache storage) ⇒ an `error` reply with an empty list.
34
29
  */
35
30
  artifactStore?: ArtifactStore | null;
36
31
  /**
37
32
  * Drain the deferred-attestation outbox on demand (mints in this process,
38
- * which owns the Platform WS). Backs `dashboard.attestation.retry`. Optional —
39
- * absent on orchestrators without the retrier wired.
33
+ * which owns the Platform WS). Backs `dashboard.attestation.retry`.
40
34
  */
41
35
  retryAttestations?: (opts: {
42
36
  runId?: string;
@@ -44,33 +38,25 @@ interface DashboardHandlerDeps {
44
38
  minted: number;
45
39
  stillPending: number;
46
40
  }>;
47
- /** Send a response message back to Platform over the WS connection. */
48
41
  send: (msg: unknown) => void;
49
- /** This orchestrator's instance ID, included in job detail responses. */
42
+ /** Included in job detail responses. */
50
43
  orchestratorId?: string;
51
- /** Access log writer — records one row per read / mutation with actor attribution. */
44
+ /** Records one row per read / mutation with actor attribution. */
52
45
  accessLog?: AccessLogWriter;
53
46
  /** Org ID for access_log rows (null when the orchestrator isn't org-scoped). */
54
47
  orgId?: string | null;
55
48
  /** Routing key for access_log rows (null when not run-scoped). */
56
49
  routingKey?: string | null;
57
50
  /**
58
- * Long-lived cold-store handle for read fallback. When set, run /
59
- * job / step lookups fall through to S3 if the row has aged out of
60
- * PG. `null` means the orchestrator is running without cold-store
61
- * configured — handler then serves PG rows only.
51
+ * Run / job / step lookups fall through to this S3 cold store once a row ages
52
+ * out of PG; `null` serves PG rows only.
62
53
  */
63
54
  coldStore?: ColdStore | null;
64
55
  /**
65
- * Callback for handling re-run requests.
66
- * Returns { newRunId } on success or throws on failure.
67
- *
68
- * `routingKey` is forwarded from the Platform (read from
69
- * Platform's denormalized `execution_runs.routing_key`) so the
70
- * orchestrator can probe its cold-store under the right tenant
71
- * prefix when the run row is missing from PG. Optional for back-
72
- * compat with mixed deploys; absent means the orchestrator falls
73
- * back to the legacy "no PG row → throw" path.
56
+ * Throws on failure. `routingKey` comes from the Platform's denormalized
57
+ * `execution_runs.routing_key`, so the cold-store probe uses the right tenant
58
+ * prefix when the run row is missing from PG. It is optional for mixed-deploy
59
+ * back-compat; absent ⇒ the legacy "no PG row → throw" path.
74
60
  */
75
61
  onRerun: (runId: string, triggeredBy: string | null, triggeredByAgentLabel: string | null,
76
62
  /**
@@ -82,19 +68,12 @@ interface DashboardHandlerDeps {
82
68
  requestId: string, routingKey?: string) => Promise<{
83
69
  newRunId: string;
84
70
  }>;
85
- /**
86
- * Callback for handling cancel requests.
87
- * Returns { cancelledJobs } on success or throws on failure.
88
- * The force flag indicates whether to force-cancel (SIGKILL, skip hooks).
89
- */
71
+ /** Throws on failure. `force` force-cancels (SIGKILL, skip hooks). */
90
72
  onCancel: (runId: string, cancelledBy: string | null, cancelledByAgentLabel: string | null, force?: boolean) => Promise<{
91
73
  cancelledJobs: number;
92
74
  alreadyTerminal?: boolean;
93
75
  }>;
94
- /**
95
- * Callback for handling manual schedule trigger requests.
96
- * Returns { newRunId } on success or throws on failure.
97
- */
76
+ /** Throws on failure. */
98
77
  onManualSchedule: (registrationId: string, triggeredBy: string | null, triggeredByAgentLabel: string | null,
99
78
  /**
100
79
  * Platform-minted `requestId` for this manual schedule. Used as an
@@ -105,17 +84,15 @@ interface DashboardHandlerDeps {
105
84
  newRunId: string;
106
85
  }>;
107
86
  /**
108
- * Event store for the per-org DLQ surface. Optional — when absent the
109
- * `handleEventDlq*` methods reply with a structured `error` so the
110
- * dashboard renders an empty-state without crashing. In real
111
- * deployments the store is wired by `bootstrapOrchestrator`.
87
+ * Backs the per-org DLQ surface (wired by `bootstrapOrchestrator`). Absent ⇒
88
+ * `handleEventDlq*` replies with a structured `error`, which the dashboard
89
+ * renders as an empty state.
112
90
  */
113
91
  eventStore?: EventStore | null;
114
92
  /**
115
93
  * **Test-only fault injection**, supplied only by the build-time test double:
116
- * `handleRerunRequest` awaits this hook before invoking `onRerun`, so an HA
117
- * test can force a slow first coordinator and trigger a relay failover.
118
- * Undefined (the shipped default) means no delay.
94
+ * awaited before `onRerun` so an HA test can slow the first coordinator into
95
+ * a relay failover. The shipped default is undefined (no delay).
119
96
  */
120
97
  beforeRerun?: () => Promise<void>;
121
98
  }
@@ -140,79 +117,60 @@ export declare class DashboardHandler {
140
117
  private readonly beforeRerun;
141
118
  constructor(deps: DashboardHandlerDeps);
142
119
  /**
143
- * Update the bound orgId + routingKey. Called from server.ts after resolving
144
- * the single tenant org from the `sources` / `generic_webhook_sources` table.
120
+ * Called from server.ts after resolving the single tenant org from the
121
+ * `sources`, `generic_webhook_sources` or `remote_sources` table.
145
122
  *
146
- * NOTE: this binding is the **fallback** access_log scope. Run-targeted
147
- * handlers resolve the run-owning org per-request via `resolveOrgForRun`;
148
- * the bound pair is consulted only when the per-target lookup yields no
149
- * result (e.g. cold-archived run, deleted source). On a multi-tenant
150
- * orchestrator the bound pair is non-deterministic (server.ts:937-955
123
+ * The binding is only the **fallback** access_log scope: run-targeted
124
+ * handlers resolve the run-owning org per request via `resolveOrgForRun`
125
+ * and use the bound pair only when that yields nothing (e.g. cold-archived
126
+ * run, deleted source). On a multi-tenant
127
+ * orchestrator the bound pair is non-deterministic (server.ts `onAuthenticated`
151
128
  * picks the first row from a `LIMIT 1` query with no `ORDER BY`), so it
152
129
  * MUST NOT be the source of truth for `access_log.org_id`.
153
130
  */
154
131
  setOrgContext(orgId: string | null, routingKey: string | null): void;
155
132
  /**
156
- * Resolve the run-owning org from `execution_runs.routing_key` plus a
157
- * sources/generic_webhook_sources lookup on that routing key. Returns
158
- * `null` when the run row is missing (e.g. cold-archived) so the caller
159
- * can fall back to the handler-bound context.
160
- *
161
- * Returns `{ orgId, routingKey }` where either field can be null:
162
- * - `routingKey` is non-null whenever the PG run row was found, even if
163
- * the source row has since been deleted (best-effort attribution).
164
- * - `orgId` is null only when the routing key has no matching source row.
133
+ * Null when the run row is missing (e.g. cold-archived), so the caller falls
134
+ * back to the bound context. Otherwise `routingKey` is set even when the
135
+ * source row was deleted (best-effort attribution), and `orgId` is null only
136
+ * when no source row matches the routing key.
165
137
  */
166
138
  private resolveOrgForRun;
167
139
  /**
168
- * Resolve the org owning a routing key by consulting both source tables
169
- * (GitHub-app `sources` first, then `generic_webhook_sources`). Used
170
- * directly for `handleRerunRequest` (which gets a `routingKey` hint from
171
- * Platform's denormalized copy) and indirectly via
172
- * `resolveOrgForRun`.
140
+ * GitHub-app `sources` first, then `generic_webhook_sources`. Also used
141
+ * directly by `handleRerunRequest` with the Platform's `routingKey` hint.
173
142
  */
174
143
  private resolveOrgForRoutingKey;
175
- /**
176
- * Resolve the org from a `workflow_registrations` row. Returns null when
177
- * the registration is missing (caller falls back to bound context).
178
- */
144
+ /** Null when the registration is missing (caller falls back to bound context). */
179
145
  private resolveOrgForRegistration;
180
146
  /**
181
- * Apply a per-target resolution result, falling back to the handler-bound
182
- * orgId / routingKey when the resolution is null or its individual fields
183
- * are null. This is the merge point that makes the bound context a
184
- * fallback rather than the source of truth.
147
+ * The merge point that makes the bound context a per-field fallback for a
148
+ * per-target resolution, never the source of truth.
185
149
  */
186
150
  private contextOrFallback;
187
151
  /**
188
- * Defense-in-depth dashboard-write policy gate for the DLQ handlers.
189
- * Returns true when allowed; false (with a `denied` access_log row and
190
- * an `operation_disabled` envelope on the wire) when the orch policy
191
- * has the operation switched off.
152
+ * Defense-in-depth policy gate for the DLQ handlers: false when the policy
153
+ * disables the op, after recording a `denied` row and sending the
154
+ * `operation_disabled` envelope.
192
155
  */
193
156
  private enforcePolicy;
194
- /**
195
- * Handle a dashboard.run.detail request.
196
- * Queries execution_jobs and execution_steps for the given runId,
197
- * builds a nested job/step tree, and sends the response.
198
- */
157
+ /** dashboard.run.detail: the run's nested job/step tree. */
199
158
  handleRunDetail(msg: DashboardRunDetailRequest): Promise<void>;
159
+ /** Answer a run-detail read for a run this orchestrator does not hold. */
160
+ private sendRunDetailNotFound;
200
161
  /**
201
- * Handle a dashboard.run.structured request — the user-plane equivalent of
202
- * the orchestrator-admin `/runs/:id/structured` endpoint. Reuses the
203
- * aggregator + provenance mapper so the result is byte-identical to the admin
204
- * surface; emits an `access_log` `run.structured.read` row (carrying the
205
- * agent label when the actor came through an agent PAT).
162
+ * dashboard.run.structured: the user-plane twin of the orchestrator-admin
163
+ * `/runs/:id/structured` endpoint, byte-identical because it reuses the
164
+ * aggregator + provenance mapper. The `run.structured.read` access-log row
165
+ * carries the agent label when the actor came through an agent PAT.
206
166
  */
207
167
  handleRunStructured(msg: DashboardRunStructuredRequest): Promise<void>;
208
168
  /**
209
- * Resolve every routing key owned by an org by unioning both source
210
- * tables. The orchestrator is single-org but multi-routing-key: one org
211
- * owns one GitHub-app source plus N generic sources, each with its own
212
- * `routing_key`. `execution_runs` has no `org_id` column — org ownership
213
- * is expressed purely through `routing_key → sources.customer_id` /
214
- * `generic_webhook_sources.customer_id`, so scoping a run query to an org
215
- * means scoping it to the union of that org's routing keys.
169
+ * The orchestrator is single-org but multi-routing-key: one org owns one
170
+ * GitHub-app source plus N generic sources. `execution_runs` has no `org_id`;
171
+ * ownership is only `routing_key → sources.customer_id` /
172
+ * `generic_webhook_sources.customer_id`, so an org-scoped run query scopes to
173
+ * the union of the org's routing keys.
216
174
  *
217
175
  * Predicates mirror the org-context resolver in `server.ts` and
218
176
  * `resolveOrgForRoutingKey` above:
@@ -222,294 +180,174 @@ export declare class DashboardHandler {
222
180
  */
223
181
  private resolveOrgRoutingKeys;
224
182
  /**
225
- * Resolve a per-routing-key source identity map for a set of routing keys,
226
- * unioning both source tables. Uses the identical name/subtype/provider
227
- * derivation as `handleSourcesList` so a run summary's `source` block
228
- * matches what the sources page shows for the same routing key. Routing
229
- * keys with no live source row are absent from the map (the caller
230
- * falls back to the run's own provider).
183
+ * Same name/subtype/provider derivation as `handleSourcesList`, so a run
184
+ * summary's `source` block matches the sources page. Keys with no live source
185
+ * row are absent (the caller falls back to the run's own provider).
231
186
  */
232
187
  private resolveSourceIdentities;
233
188
  /**
234
- * Look up the page's jobs in one query to derive per-run `jobCount` plus the
235
- * compile-job markers (`hadCompileJob` / `compileJobId`). The compile job is
236
- * the synthetic `__build__*` job KiCI inserts for the compile phase — the
237
- * same definition the Platform run-list route uses
238
- * (`job_name LIKE '__build__%'`). Returns a per-run aggregate keyed by
239
- * `run_id`; runs with no job rows are absent (the caller omits the fields).
189
+ * Per-run `jobCount` plus compile-job markers (`hadCompileJob` /
190
+ * `compileJobId`) for one page, in one query. Runs with no job rows are
191
+ * absent (the caller omits the fields).
240
192
  */
241
193
  private resolveRunJobAggregates;
242
194
  /**
243
- * Handle a dashboard.runs.list request.
244
- *
245
- * Returns a page of run summaries from `execution_runs`, scoped to ALL
246
- * routing keys owned by this orchestrator's bound org (`this.orgId`). The
247
- * orchestrator is single-org but multi-routing-key, and the bound
248
- * `this.routingKey` is just ONE of the org's keys (resolved
249
- * non-deterministically at startup), so filtering on it alone would drop
250
- * runs that arrived under a sibling routing key. We resolve the org's full
251
- * routing-key set from `sources` + `generic_webhook_sources` and filter on
252
- * the union. Attribution still uses the handler-bound `orgId` /
253
- * `routingKey` directly — the same inline-ctx pattern as the org-scoped
254
- * event-log / access-log handlers.
195
+ * dashboard.runs.list: a page of run summaries scoped to ALL routing keys of
196
+ * the bound org. The bound `this.routingKey` is just ONE of them (picked
197
+ * non-deterministically at startup), so filtering on it alone would drop runs
198
+ * under a sibling key. Attribution uses the bound `orgId` / `routingKey`
199
+ * directly, like the org-scoped event-log / access-log handlers.
255
200
  *
256
- * Used by the operator console (`support-read` break-glass) and the
257
- * dashboard's run-list view. The access_log row carries the wire actor
258
- * (including the platform_operator reason) so the customer can audit any
259
- * operator read.
201
+ * Serves the operator console (`support-read` break-glass) and the run-list
202
+ * view. The access_log row carries the wire actor (including the
203
+ * platform_operator reason) so the customer can audit any operator read.
260
204
  */
261
205
  handleRunsList(msg: DashboardRunsListRequest): Promise<DashboardRunsListResponse>;
262
206
  /**
263
- * Handle a dashboard.runs.filters request.
264
- *
265
- * Returns the distinct filter-option values the customer runs page renders
266
- * in its filter controls — statuses / workflows / branches / repositories /
267
- * triggerTypes / sources — scoped to ALL routing keys owned by this
268
- * orchestrator's bound org (same scoping as `handleRunsList`). Distinct
269
- * values are derived in-memory from a single column projection over
270
- * `execution_runs`; `sources` reuses `resolveSourceIdentities` so the list
271
- * matches what the sources page shows for the same routing key.
207
+ * dashboard.runs.filters: the distinct filter-option values for the customer
208
+ * runs page, with `handleRunsList`'s scoping and attribution. Values come
209
+ * in-memory from one column projection over `execution_runs`; `sources`
210
+ * reuses `resolveSourceIdentities` to match the sources page.
272
211
  *
273
- * `triggerTypes` is populated from `execution_runs.provider` — the
274
- * orchestrator has no dedicated trigger-event column, so `provider`
275
- * (`github` / `generic` / `local`) is the closest available
276
- * discriminator the customer filter can offer.
277
- *
278
- * Attribution uses the handler-bound `orgId` / `routingKey` directly — the
279
- * same inline-ctx pattern as `handleRunsList`. The access_log row carries
280
- * the wire actor (including the platform_operator reason) so the customer
281
- * can audit any operator read.
212
+ * `triggerTypes` comes from `execution_runs.provider` (`github` / `generic` /
213
+ * `local`): with no trigger-event column, it is the closest discriminator.
214
+ * The access_log row carries the wire actor (including the platform_operator
215
+ * reason) so the customer can audit any operator read.
282
216
  */
283
217
  handleRunsFilters(msg: DashboardRunsFiltersRequest): Promise<DashboardRunsFiltersResponse>;
284
218
  /**
285
- * Handle a dashboard.sources.list request.
286
- *
287
- * Returns the org's webhook source summaries by unioning both source
288
- * tables (GitHub-app `sources` + live `generic_webhook_sources`), scoped
289
- * to this orchestrator's bound org (`this.orgId`). Source counts are tiny
290
- * so the page is returned unpaginated (`msg.limit` is ignored). Secret-
291
- * bearing columns (`config`, `git_config`, `verification_config`) are
292
- * never projected — `git_config` is read only to derive the subtype.
293
- *
294
- * Attribution uses the handler-bound `orgId` / `routingKey` directly —
295
- * the same inline-ctx pattern as `handleRunsList`. The access_log row
296
- * carries the wire actor so the customer can audit any operator read.
219
+ * dashboard.sources.list: the bound org's GitHub-app `sources` plus live
220
+ * `generic_webhook_sources`, unpaginated because counts are tiny (`msg.limit`
221
+ * is ignored). Secret-bearing columns (`config`, `git_config`,
222
+ * `verification_config`) are never returned; `git_config` is read only to
223
+ * derive the subtype. Attribution follows `handleRunsList`; the access_log
224
+ * row carries the wire actor so the customer can audit any operator read.
297
225
  */
298
226
  handleSourcesList(msg: DashboardSourcesListRequest): Promise<DashboardSourcesListResponse>;
299
227
  /**
300
- * Handle a dashboard.admin-tokens.list request.
301
- *
302
- * Returns the orchestrator's live admin-token inventory for the Platform's
303
- * RBAC drift report. `admin_tokens` is orchestrator-wide — an orchestrator
304
- * serves exactly one org — so the projection is not filtered by `orgId`; the
305
- * handler-bound `orgId` / `routingKey` attribute the access_log row, the same
306
- * inline-ctx pattern `handleSourcesList` uses.
307
- *
308
- * Only live tokens are returned: a revoked or already-expired token is not a
309
- * finding, so reporting one would be noise the operator learns to ignore.
310
- *
311
- * `token_hash` is never selected. The report has no use for it, and a hash is
312
- * a credential verifier — relaying one would put an offline-crackable value
313
- * on the dashboard plane.
228
+ * dashboard.admin-tokens.list: the live admin-token inventory for the
229
+ * Platform's RBAC drift report. `admin_tokens` is orchestrator-wide (one org
230
+ * per orchestrator), so there is no `orgId` filter; the bound context
231
+ * attributes the row. Revoked or expired tokens are not findings, so they
232
+ * are left out as noise.
314
233
  *
315
- * Reading who holds admin tokens is itself privileged, so every read writes
316
- * an access_log row carrying the wire actor.
234
+ * `token_hash` is never selected: a hash is a credential verifier, and
235
+ * relaying one would put an offline-crackable value on the dashboard plane.
236
+ * Reading who holds admin tokens is privileged, so every read writes an
237
+ * access_log row carrying the wire actor.
317
238
  */
318
239
  handleAdminTokensList(msg: DashboardAdminTokensListRequest): Promise<DashboardAdminTokensListResponse>;
319
- /**
320
- * Handle a dashboard.step.logs request.
321
- * Looks up the step's log_path and reads content from LogStorage.
322
- */
240
+ /** dashboard.step.logs: reads the step's log_path from LogStorage. */
323
241
  handleStepLogs(msg: DashboardStepLogsRequest): Promise<void>;
324
- /**
325
- * Read the attestation rows for a run, joined to `execution_jobs` for the
326
- * job name. Ordered oldest-first so the dashboard table is stable.
327
- */
242
+ /** Oldest-first so the dashboard table is stable. */
328
243
  private resolveAttestationsForRun;
329
244
  /**
330
- * Handle a dashboard.attestations.list request: list the run's provenance
331
- * attestations, inlining each stored bundle from object storage so the
332
- * dashboard verifies it client-side. Mirrors `handleStepLogs` (per-run org
333
- * resolution + `access.recordIn` + `send`). Rows whose bundle can't be read are
334
- * skipped (best-effort) rather than failing the whole list.
245
+ * dashboard.attestations.list: the run's attestations with each bundle
246
+ * inlined for client-side verification. A row whose bundle can't be read is
247
+ * skipped rather than failing the whole list.
335
248
  */
336
249
  handleAttestationsList(msg: DashboardAttestationsListRequest): Promise<void>;
337
250
  /**
338
- * Handle a dashboard.artifacts.list request: list the run's named artifacts
339
- * with a presigned GET per entry. Mirrors `handleAttestationsList` (per-run
340
- * org resolution + `access.recordIn` + `send`). Org is resolved server-side from
341
- * the run row, never the wire, so the listing cannot cross tenants.
251
+ * dashboard.artifacts.list: a presigned GET per named artifact. The org comes
252
+ * from the run row, never the wire, so the listing cannot cross tenants.
342
253
  */
343
254
  handleArtifactsList(msg: DashboardArtifactsListRequest): Promise<void>;
344
- /**
345
- * Fetch + parse one attestation bundle from object storage. Returns the full
346
- * detail item, or null when the bundle is missing or not valid JSON (logged).
347
- * Shared by `handleAttestationsList` (per-run) and `handleAttestationGet`.
348
- */
255
+ /** Null (logged) when the bundle is missing or not valid JSON. */
349
256
  private inlineBundle;
350
- /**
351
- * Org-wide attestations query: one page of metadata-only summaries (no bundle
352
- * fetch) plus the total matching count. Filters/pagination/sort applied via
353
- * the shared filter builder.
354
- */
257
+ /** One page of metadata-only summaries (no bundle fetch) plus the total count. */
355
258
  private resolveAttestationsListAll;
356
- /** Map the deferred-attestation outbox into pending list summaries (page 1). */
357
259
  private resolvePendingAttestationSummaries;
358
- /**
359
- * Handle a dashboard.attestations.list.all request: org-wide, paginated,
360
- * filtered list of attestation summaries (metadata only). Access-logged
361
- * against the `attestation` target.
362
- */
260
+ /** Org-wide, metadata only; access-logged against the `attestation` target. */
363
261
  handleAttestationsListAll(msg: DashboardAttestationsListAllRequest): Promise<void>;
364
262
  /**
365
- * Handle a dashboard.attestation.retry request: drain the deferred-attestation
366
- * outbox (optionally scoped to one run) and reply with the mint counts. The
367
- * mint happens in this orchestrator process, which owns the Platform WS.
263
+ * Drains the deferred-attestation outbox (optionally one run's) in this
264
+ * process, which owns the Platform WS.
368
265
  */
369
266
  handleAttestationRetry(msg: DashboardAttestationRetryRequest): Promise<void>;
370
267
  /**
371
- * Handle a dashboard.attestation.get request: a single attestation by id with
372
- * its bundle inlined for the detail page. Resolves the run-owning org for the
373
- * access-log row, then logs against the `attestation` target.
268
+ * One attestation with its bundle inlined, logged against the `attestation`
269
+ * target under the run-owning org.
374
270
  */
375
271
  handleAttestationGet(msg: DashboardAttestationGetRequest): Promise<void>;
376
- /**
377
- * Handle a dashboard.payload request.
378
- * Reads the webhook payload from log storage for the given runId.
379
- */
380
272
  handlePayload(msg: DashboardPayloadRequest): Promise<void>;
381
273
  /**
382
- * Handle a dashboard.orch.logs request.
383
- * Reads orchestration + provisioning log files from LogStorage for the given run/job.
384
- * Provisioning logs are returned with phase "provisioning" so the dashboard can
385
- * render them in a separate collapsible section.
274
+ * Provisioning logs carry phase "provisioning" so the dashboard renders them
275
+ * in a separate collapsible section.
386
276
  */
387
277
  handleOrchLogs(msg: DashboardOrchLogsRequest): Promise<void>;
388
278
  /**
389
- * Handle a run.rerun.request.
390
- * Delegates to the onRerun callback which invokes handleRerun from the rerun module.
391
- *
392
- * Resolution: prefer `msg.routingKey` (denormalization hint from
393
- * Platform — `execution_runs.routing_key` mirror). The hint is the ONLY
394
- * org context we have when the run row has been cold-archived out of PG,
395
- * so consult sources/generic_webhook_sources directly. If the hint is
396
- * absent, fall back to `resolveOrgForRun` against the warm PG row.
279
+ * Org resolution prefers the Platform's `msg.routingKey` hint: it is the ONLY
280
+ * org context once the run row is cold-archived out of PG. Without it,
281
+ * `resolveOrgForRun` reads the warm PG row.
397
282
  */
398
283
  handleRerunRequest(msg: RunRerunRequest): Promise<void>;
399
- /**
400
- * Handle a run.cancel.request.
401
- * Delegates to the onCancel callback which sends job.cancel to agents.
402
- */
403
284
  handleCancelRequest(msg: RunCancelRequest): Promise<void>;
404
285
  /**
405
- * Handle a dashboard.event-log.list request.
406
- *
407
- * Returns a paginated page of inbound webhook delivery rows owned by this
408
- * orchestrator (`event_log` table) for the given org. Pagination uses an
409
- * opaque cursor (received_at + id) so concurrent inserts don't shift pages.
410
- *
411
- * Filters: routingKey, event, status, fromTimestamp/toTimestamp,
412
- * deliveryId substring. All optional.
286
+ * Inbound webhook deliveries (`event_log`) for the org. The opaque
287
+ * (received_at + id) cursor keeps concurrent inserts from shifting pages.
288
+ * Every filter is optional; deliveryId matches a substring.
413
289
  */
414
290
  handleEventLogList(msg: DashboardEventLogListRequest): Promise<void>;
415
291
  /**
416
- * Handle a dashboard.event-log.activity request — windowed aggregate counts
417
- * for the org (matched vs unmatched vs lockfile-missing), the
418
- * orchestrator-only facts the Platform relay cannot compute (it only sees
419
- * "delivered", not whether a trigger matched). Powers the Runs-page misconfig
420
- * strip + the `kici runs` hint. Aggregate counts only — no payloads, no repo
292
+ * Windowed matched / unmatched / lockfile-missing counts: facts the Platform
293
+ * relay cannot compute (it only sees "delivered"). Powers the Runs-page
294
+ * misconfig strip + the `kici runs` hint. Counts only — no payloads, no repo
421
295
  * identifiers — so the Platform route serves them to all org members.
422
296
  */
423
297
  handleEventLogActivity(msg: DashboardEventLogActivityRequest): Promise<void>;
424
298
  /**
425
- * Handle a dashboard.access-log.list request.
426
- *
427
- * Returns a paginated page of access_log rows for the given org. Used by
428
- * the dashboard "Data access" tab to show who read what (and when).
429
- *
430
- * Every filter is optional; the orchestrator scopes on orgId then applies
431
- * each supplied filter independently. Records its own access_log row
432
- * under action='access_log.list.read' so there's a meta-audit of who
433
- * looked at the audit log.
299
+ * Backs the dashboard "Data access" tab. Scopes on orgId, then applies each
300
+ * optional filter independently. Its own `access_log.list.read` row is a
301
+ * meta-audit of who looked at the audit log.
434
302
  */
435
303
  handleAccessLogList(msg: DashboardAccessLogListRequest): Promise<void>;
436
304
  /**
437
- * Handle a dashboard.event-log.detail request.
438
- *
439
- * Returns the metadata row only — the webhook body bytes stream over a
440
- * separate chunked-WS path (`handleEventLogPayloadStream` below) so
441
- * Platform never holds the full body in memory and the dashboard can
442
- * render progress as bytes arrive. When `payload_omitted=true` the row's
443
- * `payloadOmitted`/`payloadOmittedReason` fields tell the dashboard to
444
- * skip issuing a stream request.
305
+ * Metadata only: the body streams over `handleEventLogPayloadStream`, so the
306
+ * Platform never holds it in memory and the dashboard shows progress. With
307
+ * `payload_omitted=true`, `payloadOmitted`/`payloadOmittedReason` tell the
308
+ * dashboard to skip the stream request.
445
309
  */
446
310
  handleEventLogDetail(msg: DashboardEventLogDetailRequest): Promise<void>;
447
311
  /**
448
- * Handle a dashboard.event-log.payload.stream request.
312
+ * Gunzips the body and emits it as base64 `dashboard.event-log.payload.chunk`
313
+ * messages of 64 KiB decompressed bytes; the first carries `totalBytes`, the
314
+ * last `isLast=true`.
449
315
  *
450
- * Reads the gzipped body from LogStorage, decompresses it, slices the
451
- * decompressed bytes into 64 KiB chunks, base64-encodes each, and emits a
452
- * sequence of `dashboard.event-log.payload.chunk` messages. The first
453
- * chunk carries `totalBytes`; the last chunk carries `isLast=true`.
316
+ * One `event_log.payload.read` audit row is written at stream start:
317
+ * `allowed` when the body begins streaming, `not_found` / `denied` for an
318
+ * empty/error stream. Per-chunk rows would add volume, not attribution.
454
319
  *
455
- * The single audit row (`event_log.payload.read`) is written at the start
456
- * of the stream — outcome `allowed` when the row exists and the body
457
- * begins streaming, `not_found` / `denied` when the request resolves to
458
- * an empty/error stream. Per-chunk audits would inflate the access-log
459
- * volume without adding attribution detail.
460
- *
461
- * Pacing: a `setImmediate` yield between sends keeps the WS connection
462
- * from saturating. For the 5 MB cap this means
463
- * ~80 yields per stream — negligible.
320
+ * A `setImmediate` yield between sends keeps the WS from saturating: ~80
321
+ * yields for the 5 MB cap.
464
322
  */
465
323
  handleEventLogPayloadStream(msg: DashboardEventLogPayloadStreamRequest): Promise<void>;
466
324
  /**
467
- * Handle a dashboard.event-dlq.list request.
468
- *
469
- * Returns a paginated page of DLQ rows (events whose dispatch attempts
470
- * exhausted the retry budget). The page is keyed off `dlq_at DESC` and
471
- * paginates with a single `before` ISO cursor.
472
- *
473
- * Records one `event_dlq.list.read` access_log entry using the user
474
- * actor on the wire — mirrors the HTTP admin route's audit shape but
475
- * with the calling user's identity instead of the bearer-token role.
325
+ * DLQ rows (dispatch retries exhausted), `dlq_at DESC` with one `before` ISO
326
+ * cursor. The `event_dlq.list.read` row mirrors the HTTP admin route's audit
327
+ * shape, with the wire user's identity instead of the bearer-token role.
476
328
  */
477
329
  handleEventDlqList(msg: DashboardEventDlqListRequest): Promise<void>;
478
330
  /**
479
- * Handle a dashboard.event-dlq.count request.
480
- *
481
- * Returns the DLQ depth for the sidebar badge. Polled ~30s by the
482
- * dashboard. No access_log row — the count surface is intentionally
483
- * un-audited (it's a frequent badge poll, not a triage action).
331
+ * DLQ depth for the sidebar badge, polled every ~30s. Deliberately
332
+ * un-audited: a frequent badge poll is not a triage action.
484
333
  */
485
334
  handleEventDlqCount(msg: DashboardEventDlqCountRequest): Promise<void>;
486
335
  /**
487
- * Handle a dashboard.event-dlq.retry request.
488
- *
489
- * Clears the DLQ flag on the row and issues a `pg_notify` so a healthy
490
- * node picks the event up immediately rather than waiting for the
491
- * leader-only retry scanner's next tick. Notify failure is non-fatal —
492
- * the scanner will catch up.
336
+ * Clears the DLQ flag and `pg_notify`s so a healthy node picks the event up
337
+ * without waiting for the leader-only retry scanner. A notify failure is
338
+ * non-fatal: the scanner catches up.
493
339
  */
494
340
  handleEventDlqRetry(msg: DashboardEventDlqRetryRequest): Promise<void>;
495
341
  /**
496
- * Handle a dashboard.event-dlq.discard request.
497
- *
498
- * Permanently deletes the DLQ row. No retry, no archive — used when the
499
- * payload is corrupt or the routing target has been removed.
342
+ * Permanently deletes the DLQ row (no retry, no archive), for a corrupt
343
+ * payload or a removed routing target.
500
344
  */
501
345
  handleEventDlqDiscard(msg: DashboardEventDlqDiscardRequest): Promise<void>;
502
- /**
503
- * Handle a run.manual_schedule.request.
504
- * Delegates to the onManualSchedule callback which invokes handleManualSchedule.
505
- */
506
346
  handleManualScheduleRequest(msg: ManualScheduleRequest): Promise<void>;
507
347
  /**
508
- * Cold-store fallback: fetch the run + its jobs + its steps
509
- * from S3 when the PG copy has been archived. Bounded scan: stops at
510
- * the warm cutoff (older entries don't exist in cold-store yet by
511
- * construction). Each row is filtered by `run_id` because chunks
512
- * span multiple runs.
348
+ * Fetch an archived run + jobs + steps from S3. The scan stops at the warm
349
+ * cutoff (cold-store holds nothing past it by construction), and rows are
350
+ * filtered by `run_id` because chunks span runs.
513
351
  */
514
352
  private fetchArchivedRunDetail;
515
353
  }