@kici-dev/orchestrator 0.0.0 → 0.1.2

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 (342) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +1 -6
  3. package/dist/__test-helpers__/mock-db.d.ts +103 -0
  4. package/dist/__test-helpers__/mock-ws.d.ts +13 -0
  5. package/dist/agent/dispatcher.d.ts +231 -0
  6. package/dist/agent/ownership-tracker.d.ts +46 -0
  7. package/dist/agent/registry.d.ts +255 -0
  8. package/dist/agent/token-store.d.ts +96 -0
  9. package/dist/app.d.ts +234 -0
  10. package/dist/audit/access-log.d.ts +92 -0
  11. package/dist/audit/sampling-rate-limiter.d.ts +41 -0
  12. package/dist/cache/build-coordinator.d.ts +42 -0
  13. package/dist/cache/dep-cache.d.ts +51 -0
  14. package/dist/cache/index.d.ts +16 -0
  15. package/dist/cache/pending-builds.d.ts +14 -0
  16. package/dist/cache/pending-dynamics.d.ts +15 -0
  17. package/dist/cache/pending-inits.d.ts +19 -0
  18. package/dist/cache/pending-tracker.d.ts +65 -0
  19. package/dist/cache/source-cache.d.ts +30 -0
  20. package/dist/cli/api-client.d.ts +411 -0
  21. package/dist/cli/commands/access-log.d.ts +30 -0
  22. package/dist/cli/commands/agent-service/index.d.ts +15 -0
  23. package/dist/cli/commands/agent-service/install.d.ts +9 -0
  24. package/dist/cli/commands/agent-service/logs.d.ts +9 -0
  25. package/dist/cli/commands/agent-service/restart.d.ts +8 -0
  26. package/dist/cli/commands/agent-service/start.d.ts +8 -0
  27. package/dist/cli/commands/agent-service/status.d.ts +10 -0
  28. package/dist/cli/commands/agent-service/stop.d.ts +8 -0
  29. package/dist/cli/commands/agent-service/uninstall.d.ts +9 -0
  30. package/dist/cli/commands/agent-service/upgrade.d.ts +11 -0
  31. package/dist/cli/commands/agent.d.ts +10 -0
  32. package/dist/cli/commands/api-key.d.ts +12 -0
  33. package/dist/cli/commands/audit.d.ts +9 -0
  34. package/dist/cli/commands/backend.d.ts +17 -0
  35. package/dist/cli/commands/cold-store-impl.d.ts +101 -0
  36. package/dist/cli/commands/cold-store.d.ts +30 -0
  37. package/dist/cli/commands/config.d.ts +16 -0
  38. package/dist/cli/commands/db.d.ts +19 -0
  39. package/dist/cli/commands/debug-bundle.d.ts +16 -0
  40. package/dist/cli/commands/diagnose.d.ts +15 -0
  41. package/dist/cli/commands/environment.d.ts +24 -0
  42. package/dist/cli/commands/event-dlq.d.ts +19 -0
  43. package/dist/cli/commands/event-log.d.ts +27 -0
  44. package/dist/cli/commands/event.d.ts +4 -0
  45. package/dist/cli/commands/execution.d.ts +17 -0
  46. package/dist/cli/commands/inspect-bundle.d.ts +16 -0
  47. package/dist/cli/commands/maintenance.d.ts +4 -0
  48. package/dist/cli/commands/orchestrator-service/index.d.ts +12 -0
  49. package/dist/cli/commands/orchestrator-service/install.d.ts +10 -0
  50. package/dist/cli/commands/orchestrator-service/logs.d.ts +10 -0
  51. package/dist/cli/commands/orchestrator-service/restart.d.ts +8 -0
  52. package/dist/cli/commands/orchestrator-service/start.d.ts +8 -0
  53. package/dist/cli/commands/orchestrator-service/status.d.ts +10 -0
  54. package/dist/cli/commands/orchestrator-service/stop.d.ts +8 -0
  55. package/dist/cli/commands/orchestrator-service/uninstall.d.ts +9 -0
  56. package/dist/cli/commands/orchestrator-service/upgrade.d.ts +12 -0
  57. package/dist/cli/commands/org-settings.d.ts +17 -0
  58. package/dist/cli/commands/peer.d.ts +13 -0
  59. package/dist/cli/commands/queue.d.ts +16 -0
  60. package/dist/cli/commands/registration.d.ts +18 -0
  61. package/dist/cli/commands/rotate.d.ts +9 -0
  62. package/dist/cli/commands/runs.d.ts +34 -0
  63. package/dist/cli/commands/secret.d.ts +12 -0
  64. package/dist/cli/commands/shared/db.d.ts +16 -0
  65. package/dist/cli/commands/shared/versioned-upgrade.d.ts +38 -0
  66. package/dist/cli/commands/source.d.ts +24 -0
  67. package/dist/cli/commands/token.d.ts +10 -0
  68. package/dist/cli/commands/workflow.d.ts +31 -0
  69. package/dist/cli/join.d.ts +14 -0
  70. package/dist/cli/kici-admin.d.ts +13 -0
  71. package/dist/cli/lazy-deps/cache.d.ts +17 -0
  72. package/dist/cli/lazy-deps/downloader.d.ts +33 -0
  73. package/dist/cli/lazy-deps/registry.d.ts +43 -0
  74. package/dist/cli/service/compose.d.ts +25 -0
  75. package/dist/cli/service/index.d.ts +24 -0
  76. package/dist/cli/service/launchd.d.ts +34 -0
  77. package/dist/cli/service/platform-detect.d.ts +59 -0
  78. package/dist/cli/service/systemd.d.ts +41 -0
  79. package/dist/cli/service/types.d.ts +91 -0
  80. package/dist/cli/service/windows.d.ts +20 -0
  81. package/dist/cli/wizard/agent-wizard.d.ts +24 -0
  82. package/dist/cli/wizard/orchestrator-wizard.d.ts +38 -0
  83. package/dist/cli/wizard/prompts.d.ts +23 -0
  84. package/dist/cli.js +11435 -0
  85. package/dist/cluster/cluster-identity.d.ts +59 -0
  86. package/dist/cluster/coordinator.d.ts +204 -0
  87. package/dist/cluster/health-api.d.ts +30 -0
  88. package/dist/cluster/index.d.ts +24 -0
  89. package/dist/cluster/join-client.d.ts +75 -0
  90. package/dist/cluster/join-handler.d.ts +58 -0
  91. package/dist/cluster/join-token.d.ts +94 -0
  92. package/dist/cluster/orphan-recovery.d.ts +67 -0
  93. package/dist/cluster/peer-client.d.ts +190 -0
  94. package/dist/cluster/peer-credentials.d.ts +108 -0
  95. package/dist/cluster/peer-crypto.d.ts +57 -0
  96. package/dist/cluster/peer-handler.d.ts +97 -0
  97. package/dist/cluster/peer-registry.d.ts +186 -0
  98. package/dist/cluster/raft-state.d.ts +36 -0
  99. package/dist/cluster/raft.d.ts +140 -0
  100. package/dist/cold-store/load-access-log-range.d.ts +73 -0
  101. package/dist/cold-store/load-event-log-range.d.ts +62 -0
  102. package/dist/cold-store/load-secret-audit-log-range.d.ts +38 -0
  103. package/dist/cold-store/orchestrator-cold-store.d.ts +58 -0
  104. package/dist/cold-store/tables/access-log.d.ts +80 -0
  105. package/dist/cold-store/tables/event-log.d.ts +70 -0
  106. package/dist/cold-store/tables/execution-jobs.d.ts +63 -0
  107. package/dist/cold-store/tables/execution-runs.d.ts +81 -0
  108. package/dist/cold-store/tables/execution-steps.d.ts +65 -0
  109. package/dist/cold-store/tables/secret-audit-log.d.ts +77 -0
  110. package/dist/concurrency/dispatch-next-queued.d.ts +63 -0
  111. package/dist/concurrency/group-tracker.d.ts +51 -0
  112. package/dist/concurrency/index.d.ts +3 -0
  113. package/dist/concurrency/queue-manager.d.ts +68 -0
  114. package/dist/concurrency/waiters.d.ts +58 -0
  115. package/dist/config/encryption.d.ts +82 -0
  116. package/dist/config/env-overlay.d.ts +45 -0
  117. package/dist/config/index.d.ts +16 -0
  118. package/dist/config/loader.d.ts +26 -0
  119. package/dist/config/reload.d.ts +113 -0
  120. package/dist/config/resolver.d.ts +47 -0
  121. package/dist/config/schema.d.ts +210 -0
  122. package/dist/config/shared-store.d.ts +142 -0
  123. package/dist/config/types.d.ts +218 -0
  124. package/dist/config.d.ts +249 -0
  125. package/dist/cron/cron-scheduler.d.ts +78 -0
  126. package/dist/cron/cron-store.d.ts +38 -0
  127. package/dist/dashboard/handler.d.ts +243 -0
  128. package/dist/db/client.d.ts +13 -0
  129. package/dist/db/migration-provider.d.ts +9 -0
  130. package/dist/db/migrations/001_initial.d.ts +8 -0
  131. package/dist/db/migrations/002_config_versions_key_version.d.ts +16 -0
  132. package/dist/db/migrations/003_access_log.d.ts +26 -0
  133. package/dist/db/migrations/004_rename_bundle_to_source.d.ts +19 -0
  134. package/dist/db/migrations/005_cold_store_chunk_counter.d.ts +19 -0
  135. package/dist/db/migrations/006_runs_jobs_steps_archived_at.d.ts +38 -0
  136. package/dist/db/migrations/007_audit_logs_archived_at.d.ts +42 -0
  137. package/dist/db/migrations/008_event_log_archived_at.d.ts +40 -0
  138. package/dist/db/migrations/009_access_log_trigram.d.ts +15 -0
  139. package/dist/db/migrations/010_cold_store_chunks.d.ts +34 -0
  140. package/dist/db/migrations/011_drop_source_secrets_notify.d.ts +21 -0
  141. package/dist/db/migrations/012_peer_credentials_active_uniq.d.ts +28 -0
  142. package/dist/db/migrations/013_execution_log_bytes.d.ts +21 -0
  143. package/dist/db/migrations/014_kici_events_lease_retry.d.ts +36 -0
  144. package/dist/db/migrations/015_org_settings_customer_scoped.d.ts +30 -0
  145. package/dist/db/migrations/016_org_settings_allow_http_npm.d.ts +15 -0
  146. package/dist/db/migrations/017_org_id_widen.d.ts +4 -0
  147. package/dist/db/migrations/018_org_id_prefix_backfill.d.ts +4 -0
  148. package/dist/db/migrator.d.ts +32 -0
  149. package/dist/db/types.d.ts +1266 -0
  150. package/dist/diagnostics/bundle-reader.d.ts +48 -0
  151. package/dist/diagnostics/bundle-writer.d.ts +57 -0
  152. package/dist/diagnostics/checks/agents.d.ts +10 -0
  153. package/dist/diagnostics/checks/certs.d.ts +9 -0
  154. package/dist/diagnostics/checks/config.d.ts +10 -0
  155. package/dist/diagnostics/checks/db.d.ts +9 -0
  156. package/dist/diagnostics/checks/disk.d.ts +9 -0
  157. package/dist/diagnostics/checks/index.d.ts +17 -0
  158. package/dist/diagnostics/checks/ws.d.ts +9 -0
  159. package/dist/diagnostics/index.d.ts +13 -0
  160. package/dist/diagnostics/runner.d.ts +23 -0
  161. package/dist/diagnostics/types.d.ts +38 -0
  162. package/dist/entry-helpers.d.ts +93 -0
  163. package/dist/environments/binding-store.d.ts +27 -0
  164. package/dist/environments/environment-store.d.ts +74 -0
  165. package/dist/environments/held-runs.d.ts +64 -0
  166. package/dist/environments/index.d.ts +10 -0
  167. package/dist/environments/protection/branch-gate.d.ts +5 -0
  168. package/dist/environments/protection/concurrency-gate.d.ts +7 -0
  169. package/dist/environments/protection/pipeline.d.ts +18 -0
  170. package/dist/environments/protection/reviewer-gate.d.ts +7 -0
  171. package/dist/environments/protection/trust-gate.d.ts +7 -0
  172. package/dist/environments/protection/wait-timer-gate.d.ts +7 -0
  173. package/dist/environments/variable-store.d.ts +39 -0
  174. package/dist/events/circuit-breaker.d.ts +33 -0
  175. package/dist/events/event-emitter.d.ts +55 -0
  176. package/dist/events/event-retry-scanner.d.ts +52 -0
  177. package/dist/events/event-router.d.ts +183 -0
  178. package/dist/events/event-store.d.ts +157 -0
  179. package/dist/events/trust-store.d.ts +54 -0
  180. package/dist/events/types.d.ts +61 -0
  181. package/dist/helpers/ip-extraction.d.ts +29 -0
  182. package/dist/helpers/rate-limiter.d.ts +23 -0
  183. package/dist/index.d.ts +7 -0
  184. package/dist/index.js +772 -0
  185. package/dist/lockfile-cache.d.ts +39 -0
  186. package/dist/metrics/agent-metrics-aggregator.d.ts +116 -0
  187. package/dist/metrics/metrics-reporter.d.ts +40 -0
  188. package/dist/metrics/prometheus.d.ts +261 -0
  189. package/dist/metrics/scheduled-jobs.d.ts +20 -0
  190. package/dist/orchestrator-core.d.ts +193 -0
  191. package/dist/pipeline/dispatch-matched-workflow.d.ts +102 -0
  192. package/dist/pipeline/inline-eval.d.ts +28 -0
  193. package/dist/pipeline/install-secrets-resolver.d.ts +73 -0
  194. package/dist/pipeline/manual-schedule.d.ts +21 -0
  195. package/dist/pipeline/needs-scheduler.d.ts +85 -0
  196. package/dist/pipeline/process-webhook.d.ts +38 -0
  197. package/dist/pipeline/processor.d.ts +326 -0
  198. package/dist/pipeline/rerun.d.ts +79 -0
  199. package/dist/pipeline/test-pipeline.d.ts +110 -0
  200. package/dist/provider-registry.d.ts +122 -0
  201. package/dist/providers/generic/index.d.ts +23 -0
  202. package/dist/providers/generic/normalizer.d.ts +112 -0
  203. package/dist/providers/generic/verification.d.ts +47 -0
  204. package/dist/providers/github/auth.d.ts +60 -0
  205. package/dist/providers/github/changed-files.d.ts +51 -0
  206. package/dist/providers/github/check-status-poster.d.ts +35 -0
  207. package/dist/providers/github/contributor-resolver.d.ts +30 -0
  208. package/dist/providers/github/index.d.ts +20 -0
  209. package/dist/providers/github/lock-file.d.ts +32 -0
  210. package/dist/providers/github/normalizer.d.ts +103 -0
  211. package/dist/providers/github/repo-url.d.ts +35 -0
  212. package/dist/providers/internal/index.d.ts +32 -0
  213. package/dist/providers/internal/lock-file-fetcher.d.ts +34 -0
  214. package/dist/providers/internal/normalizer.d.ts +89 -0
  215. package/dist/providers/internal/repo-url-builder.d.ts +42 -0
  216. package/dist/providers/universal-git/changed-files.d.ts +42 -0
  217. package/dist/providers/universal-git/clone-token.d.ts +83 -0
  218. package/dist/providers/universal-git/config.d.ts +192 -0
  219. package/dist/providers/universal-git/index.d.ts +55 -0
  220. package/dist/providers/universal-git/lock-file.d.ts +71 -0
  221. package/dist/providers/universal-git/normalizer.d.ts +90 -0
  222. package/dist/providers/universal-git/repo-url.d.ts +50 -0
  223. package/dist/providers/universal-git/ssh-auth.d.ts +94 -0
  224. package/dist/queue/bootstrap.d.ts +50 -0
  225. package/dist/queue/cleanup.d.ts +41 -0
  226. package/dist/queue/depth-refresher.d.ts +65 -0
  227. package/dist/queue/job-queue.d.ts +343 -0
  228. package/dist/queue/scheduled-job.d.ts +91 -0
  229. package/dist/registration/extractor.d.ts +44 -0
  230. package/dist/registration/registration-index.d.ts +162 -0
  231. package/dist/registration/registration-store.d.ts +111 -0
  232. package/dist/reporting/check-run-summary.d.ts +102 -0
  233. package/dist/reporting/commit-status.d.ts +382 -0
  234. package/dist/reporting/execution-tracker.d.ts +538 -0
  235. package/dist/reporting/fs-log-storage.d.ts +41 -0
  236. package/dist/reporting/log-pull-handler.d.ts +35 -0
  237. package/dist/reporting/log-storage.d.ts +70 -0
  238. package/dist/reporting/log-writer.d.ts +45 -0
  239. package/dist/reporting/s3-log-storage.d.ts +42 -0
  240. package/dist/reporting/step-log-buffer.d.ts +57 -0
  241. package/dist/routes/admin-access-log.d.ts +34 -0
  242. package/dist/routes/admin-backends.d.ts +28 -0
  243. package/dist/routes/admin-config.d.ts +57 -0
  244. package/dist/routes/admin-db.d.ts +20 -0
  245. package/dist/routes/admin-environments.d.ts +42 -0
  246. package/dist/routes/admin-errors.d.ts +4 -0
  247. package/dist/routes/admin-event-dlq.d.ts +39 -0
  248. package/dist/routes/admin-event-log.d.ts +42 -0
  249. package/dist/routes/admin-events.d.ts +46 -0
  250. package/dist/routes/admin-maintenance.d.ts +22 -0
  251. package/dist/routes/admin-org-settings.d.ts +29 -0
  252. package/dist/routes/admin-queue-execution.d.ts +27 -0
  253. package/dist/routes/admin-registrations.d.ts +37 -0
  254. package/dist/routes/admin-runs.d.ts +57 -0
  255. package/dist/routes/admin-scheduled-jobs.d.ts +36 -0
  256. package/dist/routes/admin-sources.d.ts +18 -0
  257. package/dist/routes/admin.d.ts +103 -0
  258. package/dist/routes/capabilities.d.ts +24 -0
  259. package/dist/routes/diagnostics.d.ts +16 -0
  260. package/dist/routes/health.d.ts +20 -0
  261. package/dist/routes/test-trigger.d.ts +41 -0
  262. package/dist/routes/uploads.d.ts +38 -0
  263. package/dist/routes/webhooks.d.ts +36 -0
  264. package/dist/scaler/bare-metal-backend.d.ts +107 -0
  265. package/dist/scaler/config.d.ts +303 -0
  266. package/dist/scaler/container-backend.d.ts +125 -0
  267. package/dist/scaler/file-tail.d.ts +23 -0
  268. package/dist/scaler/firecracker-api.d.ts +100 -0
  269. package/dist/scaler/firecracker-backend.d.ts +263 -0
  270. package/dist/scaler/index.d.ts +24 -0
  271. package/dist/scaler/ip-allocator.d.ts +177 -0
  272. package/dist/scaler/label-matcher.d.ts +73 -0
  273. package/dist/scaler/log-forwarder.d.ts +54 -0
  274. package/dist/scaler/machine-ledger.d.ts +160 -0
  275. package/dist/scaler/manager.d.ts +338 -0
  276. package/dist/scaler/nftables.d.ts +85 -0
  277. package/dist/scaler/types.d.ts +388 -0
  278. package/dist/scaler/warm-pool.d.ts +81 -0
  279. package/dist/secrets/audit-logger.d.ts +65 -0
  280. package/dist/secrets/backend-health.d.ts +60 -0
  281. package/dist/secrets/backend-registry.d.ts +68 -0
  282. package/dist/secrets/backend-sync.d.ts +40 -0
  283. package/dist/secrets/cleanup.d.ts +40 -0
  284. package/dist/secrets/config.d.ts +51 -0
  285. package/dist/secrets/crypto.d.ts +49 -0
  286. package/dist/secrets/ephemeral-keys.d.ts +49 -0
  287. package/dist/secrets/index.d.ts +17 -0
  288. package/dist/secrets/pg-secret-store.d.ts +105 -0
  289. package/dist/secrets/rbac.d.ts +47 -0
  290. package/dist/secrets/secret-output-store.d.ts +46 -0
  291. package/dist/secrets/secret-resolver.d.ts +137 -0
  292. package/dist/secrets/source-credentials.d.ts +61 -0
  293. package/dist/secrets/token-manager.d.ts +63 -0
  294. package/dist/secrets/vault-secret-store.d.ts +85 -0
  295. package/dist/security/comment-handler.d.ts +67 -0
  296. package/dist/security/contributor-cache.d.ts +75 -0
  297. package/dist/security/global-workflow-policy.d.ts +72 -0
  298. package/dist/security/lock-source.d.ts +34 -0
  299. package/dist/security/trust-resolver.d.ts +108 -0
  300. package/dist/security/workflow-diff.d.ts +26 -0
  301. package/dist/server.d.ts +17 -0
  302. package/dist/server.js +48055 -0
  303. package/dist/sources/index.d.ts +10 -0
  304. package/dist/sources/source-manager.d.ts +63 -0
  305. package/dist/sources/source-store.d.ts +79 -0
  306. package/dist/sources/source-validator.d.ts +16 -0
  307. package/dist/stale-detector/stale-run-detector.d.ts +109 -0
  308. package/dist/standalone.d.ts +20 -0
  309. package/dist/standalone.js +41546 -0
  310. package/dist/storage/blob-routes.d.ts +20 -0
  311. package/dist/storage/filesystem.d.ts +60 -0
  312. package/dist/storage/index.d.ts +20 -0
  313. package/dist/storage/s3.d.ts +68 -0
  314. package/dist/storage/sign-url.d.ts +45 -0
  315. package/dist/storage/types.d.ts +98 -0
  316. package/dist/webhook/dedup.d.ts +44 -0
  317. package/dist/webhook/event-log.d.ts +83 -0
  318. package/dist/webhook/generic-sources.d.ts +169 -0
  319. package/dist/webhook/handler.d.ts +23 -0
  320. package/dist/webhook/relay-buffer.d.ts +96 -0
  321. package/dist/webhook/verify-inbound.d.ts +78 -0
  322. package/dist/worker/in-memory-execution-tracker.d.ts +94 -0
  323. package/dist/worker/in-memory-job-queue.d.ts +74 -0
  324. package/dist/worker/static-agent-token-store.d.ts +58 -0
  325. package/dist/worker/worker-status.d.ts +36 -0
  326. package/dist/worker-core.d.ts +74 -0
  327. package/dist/ws/agent-api-registry.d.ts +49 -0
  328. package/dist/ws/agent-handler.d.ts +176 -0
  329. package/dist/ws/agent-heartbeat.d.ts +45 -0
  330. package/dist/ws/dashboard-backends-handler.d.ts +51 -0
  331. package/dist/ws/dashboard-diagnostics-handler.d.ts +56 -0
  332. package/dist/ws/dashboard-env-handler.d.ts +107 -0
  333. package/dist/ws/dashboard-global-workflows-handler.d.ts +72 -0
  334. package/dist/ws/dashboard-registrations-handler.d.ts +84 -0
  335. package/dist/ws/event-buffer.d.ts +16 -0
  336. package/dist/ws/observer-handler.d.ts +42 -0
  337. package/dist/ws/observer-registry.d.ts +88 -0
  338. package/dist/ws/platform-client.d.ts +270 -0
  339. package/dist/ws/server-options.d.ts +15 -0
  340. package/package.json +87 -7
  341. package/sbom.spdx.json +14370 -0
  342. package/index.js +0 -3
@@ -0,0 +1,382 @@
1
+ /**
2
+ * GitHub check run integration module.
3
+ *
4
+ * Creates and updates check runs at key lifecycle points using the Checks API.
5
+ * Per locked decisions:
6
+ * - Check runs created (queued) at trigger match time (before agent picks up the job)
7
+ * - Both per-job AND overall workflow check runs: kici/{workflow} and kici/{workflow}/job/{job}
8
+ * - Success ONLY if ALL jobs pass
9
+ * - Cancelled/timed-out use 'cancelled' conclusion
10
+ * - All API calls are fire-and-forget (non-blocking)
11
+ *
12
+ * Check run IDs are tracked in-memory after creation so that subsequent
13
+ * updates (job complete, workflow complete) can reference them via checks.update().
14
+ *
15
+ * Enriched output (Phase 14):
16
+ * - Live step progress with checklist-style updates (debounced at 5s)
17
+ * - Failed check runs include step names, error messages, exit codes, and log context
18
+ * - Check run annotations link failures to step source locations in workflow files (.kici/workflows/*.ts)
19
+ *
20
+ * Currently GitHub-only. Non-GitHub providers are handled gracefully (no-op with log).
21
+ *
22
+ * Note: The engine-level CheckStatusPoster interface (packages/engine/src/provider/check-status-poster.ts)
23
+ * provides a provider-agnostic API for posting security-related check statuses (holds, approvals,
24
+ * workflow modifications). The GitHub implementation is at packages/orchestrator/src/providers/github/check-status-poster.ts.
25
+ * This CommitStatusReporter handles execution lifecycle checks (queued, in_progress, completed per job/workflow).
26
+ * Future cleanup may unify both under CheckStatusPoster, but they serve different purposes today.
27
+ */
28
+ import { type GitHubAppConfig } from '../providers/github/auth.js';
29
+ import type { ProviderRegistry } from '../provider-registry.js';
30
+ import type { StepLogBuffer } from './step-log-buffer.js';
31
+ import { type SourceLocationData } from './check-run-summary.js';
32
+ import { ExecutionJobStatus } from '@kici-dev/engine';
33
+ /**
34
+ * Dependencies for the CommitStatusReporter.
35
+ */
36
+ interface CommitStatusReporterDeps {
37
+ /**
38
+ * Provider registry for per-routing-key credential lookup.
39
+ * When provided, the reporter resolves GitHub App credentials by routing key
40
+ * from the registry's CloneTokenProvider config. Takes precedence over githubConfig.
41
+ */
42
+ providerRegistry?: ProviderRegistry;
43
+ /**
44
+ * GitHub App config for creating Octokit instances.
45
+ * Fallback for backward compatibility when providerRegistry is not provided
46
+ * or when no routing key is available.
47
+ */
48
+ githubConfig?: GitHubAppConfig;
49
+ /** Step log buffer for enriched failure summaries. */
50
+ stepLogBuffer?: StepLogBuffer;
51
+ /** Resolver for step source locations from the lock file (for annotations). */
52
+ getStepSourceLocations?: (workflowName: string, jobName: string) => SourceLocationData[] | undefined;
53
+ /**
54
+ * Base URL of the user-facing dashboard (e.g.
55
+ * `https://dashboard.example.com/dashboard`). When set AND
56
+ * `getOrgPublicAlias()` returns an alias, the reporter populates
57
+ * `details_url = <dashboardUrl>/r/orgs/<alias>/runs/<runId>` on
58
+ * every check-run create/update. When unset, no `details_url` is
59
+ * emitted (preserving today's behavior).
60
+ */
61
+ dashboardUrl?: string;
62
+ /**
63
+ * Resolver for the orchestrator's owning org public alias. Typically
64
+ * wired to `PlatformClient.getOrgPublicAlias()`. Returns the
65
+ * `oal_<12-char>` alias supplied by Platform on `auth.success`, or
66
+ * `undefined` before auth completes / when running against a
67
+ * Platform that predates the alias plumbing.
68
+ */
69
+ getOrgPublicAlias?: () => string | undefined;
70
+ }
71
+ /**
72
+ * Options for setPending.
73
+ */
74
+ interface SetPendingOptions {
75
+ provider: string;
76
+ owner: string;
77
+ repo: string;
78
+ sha: string;
79
+ workflowName: string;
80
+ jobNames: string[];
81
+ installationId?: number;
82
+ /** Routing key for per-app credential lookup (e.g., "github:12345"). */
83
+ routingKey?: string;
84
+ /** Explicit requestId for trace context (falls back to AsyncLocalStorage context). */
85
+ requestId?: string;
86
+ /** Explicit runId for trace context (falls back to AsyncLocalStorage context). */
87
+ runId?: string;
88
+ }
89
+ /**
90
+ * Options for setBuildPending.
91
+ */
92
+ interface SetBuildPendingOptions {
93
+ provider: string;
94
+ owner: string;
95
+ repo: string;
96
+ sha: string;
97
+ workflowName: string;
98
+ installationId?: number;
99
+ /** Routing key for per-app credential lookup (e.g., "github:12345"). */
100
+ routingKey?: string;
101
+ /** Explicit requestId for trace context (falls back to AsyncLocalStorage context). */
102
+ requestId?: string;
103
+ /** Explicit runId for trace context (falls back to AsyncLocalStorage context). */
104
+ runId?: string;
105
+ }
106
+ /**
107
+ * Options for setBuildComplete.
108
+ */
109
+ interface SetBuildCompleteOptions {
110
+ provider: string;
111
+ owner: string;
112
+ repo: string;
113
+ sha: string;
114
+ workflowName: string;
115
+ status: Extract<ExecutionJobStatus, 'success' | 'failed' | 'cancelled' | 'timed_out_stale'>;
116
+ installationId?: number;
117
+ /** Routing key for per-app credential lookup (e.g., "github:12345"). */
118
+ routingKey?: string;
119
+ description?: string;
120
+ /** Explicit requestId for trace context (falls back to AsyncLocalStorage context). */
121
+ requestId?: string;
122
+ /** Explicit runId for trace context (falls back to AsyncLocalStorage context). */
123
+ runId?: string;
124
+ }
125
+ /**
126
+ * Options for updateJobStatus.
127
+ */
128
+ interface UpdateJobStatusOptions {
129
+ provider: string;
130
+ owner: string;
131
+ repo: string;
132
+ sha: string;
133
+ workflowName: string;
134
+ jobName: string;
135
+ state: Extract<ExecutionJobStatus, 'success' | 'failed' | 'cancelled' | 'timed_out_stale'>;
136
+ installationId?: number;
137
+ /** Routing key for per-app credential lookup (e.g., "github:12345"). */
138
+ routingKey?: string;
139
+ description?: string;
140
+ /** Explicit requestId for trace context (falls back to AsyncLocalStorage context). */
141
+ requestId?: string;
142
+ /** Explicit runId for trace context (falls back to AsyncLocalStorage context). */
143
+ runId?: string;
144
+ /** Additional data from the agent (e.g., stepResults). */
145
+ data?: Record<string, unknown>;
146
+ /** Run ID for StepLogBuffer lookup. */
147
+ runIdForLogs?: string;
148
+ /** Job ID for StepLogBuffer lookup. */
149
+ jobId?: string;
150
+ }
151
+ /**
152
+ * Options for updateWorkflowStatus.
153
+ */
154
+ interface UpdateWorkflowStatusOptions {
155
+ provider: string;
156
+ owner: string;
157
+ repo: string;
158
+ sha: string;
159
+ workflowName: string;
160
+ overallStatus: Extract<ExecutionJobStatus, 'success' | 'failed' | 'cancelled' | 'timed_out_stale'>;
161
+ installationId?: number;
162
+ /** Routing key for per-app credential lookup (e.g., "github:12345"). */
163
+ routingKey?: string;
164
+ description?: string;
165
+ /** Explicit requestId for trace context (falls back to AsyncLocalStorage context). */
166
+ requestId?: string;
167
+ /** Explicit runId for trace context (falls back to AsyncLocalStorage context). */
168
+ runId?: string;
169
+ }
170
+ /**
171
+ * Options for updateStepProgress.
172
+ */
173
+ interface UpdateStepProgressOptions {
174
+ provider: string;
175
+ owner: string;
176
+ repo: string;
177
+ sha: string;
178
+ workflowName: string;
179
+ jobName: string;
180
+ stepIndex: number;
181
+ stepName: string;
182
+ state: 'running' | 'success' | 'failed' | 'skipped' | 'cancelled' | 'error';
183
+ durationMs?: number;
184
+ installationId?: number;
185
+ /** Routing key for per-app credential lookup (e.g., "github:12345"). */
186
+ routingKey?: string;
187
+ requestId?: string;
188
+ runId?: string;
189
+ }
190
+ /**
191
+ * Reports check run status to Git hosting providers.
192
+ *
193
+ * Currently supports GitHub via the Checks API (checks.create / checks.update).
194
+ * Non-GitHub providers are handled gracefully (no-op with warning log).
195
+ *
196
+ * All public methods are fire-and-forget: they return void immediately
197
+ * and log errors internally without propagating them.
198
+ */
199
+ export declare class CommitStatusReporter {
200
+ private deps;
201
+ /** Map from composite key to check run ID for subsequent updates. */
202
+ private readonly checkRunIds;
203
+ /** In-flight build check run creation promises, keyed by composite key. */
204
+ private readonly pendingBuildCreations;
205
+ /** Step progress entries per check run key. */
206
+ private readonly stepProgress;
207
+ /** Debounce timers for in_progress updates per check run key. */
208
+ private readonly progressTimers;
209
+ /** Track whether the first in_progress transition has been sent per check run key. */
210
+ private readonly inProgressSent;
211
+ constructor(deps: CommitStatusReporterDeps);
212
+ /**
213
+ * Update the provider registry used for per-routing-key credential lookup.
214
+ * Called after config reload when the provider registry is rebuilt.
215
+ */
216
+ updateRegistry(newRegistry: ProviderRegistry): void;
217
+ /**
218
+ * Late-bind the public-alias resolver. Called from `server.ts` /
219
+ * `standalone.ts` after `PlatformClient` is constructed so the reporter
220
+ * can pull the freshly-authenticated org's alias when building
221
+ * `details_url`. orchestrator-core can't pass it at construction time
222
+ * because the platform client is created later (after the HTTP server
223
+ * starts).
224
+ */
225
+ setOrgPublicAliasResolver(resolver: () => string | undefined): void;
226
+ /**
227
+ * Set pending (queued) check runs for a workflow and all its jobs.
228
+ * Called at trigger match time (before agent picks up the job).
229
+ * Fire-and-forget: errors are logged but don't block the pipeline.
230
+ *
231
+ * Creates check runs via checks.create with status 'queued'.
232
+ * Per locked decision: both per-job AND overall workflow check runs.
233
+ * Name format: kici/{workflow-name}, kici/{workflow-name}/job/{job-name}
234
+ */
235
+ setPending(opts: SetPendingOptions): void;
236
+ /**
237
+ * Same as setPending but returns a Promise that resolves when check runs
238
+ * are created. Used by the RunCoordinator for rerouted jobs where the
239
+ * check runs MUST exist before job dispatch to ensure updates work.
240
+ */
241
+ setPendingAwait(opts: SetPendingOptions): Promise<void>;
242
+ /**
243
+ * Update a specific job's check run.
244
+ * Called when a job reaches a terminal state.
245
+ * Fire-and-forget: errors are logged but don't block the pipeline.
246
+ */
247
+ updateJobStatus(opts: UpdateJobStatusOptions): void;
248
+ /**
249
+ * Update the overall workflow check run.
250
+ * Called when ALL jobs in a workflow reach terminal state.
251
+ * Per locked decision: success ONLY if ALL jobs pass.
252
+ * Fire-and-forget: errors are logged but don't block the pipeline.
253
+ */
254
+ updateWorkflowStatus(opts: UpdateWorkflowStatusOptions): void;
255
+ /**
256
+ * Clean up stale check runs left by a dead orchestrator.
257
+ *
258
+ * Unlike updateJobStatus/updateWorkflowStatus (which rely on in-memory checkRunId),
259
+ * this method discovers check runs via the GitHub API by listing check runs for the
260
+ * commit SHA and matching on the `kici/` name prefix. This allows a replacement
261
+ * orchestrator to clean up check runs it didn't create.
262
+ *
263
+ * Uses the GitHub App to look up the installation for each repo, then lists and
264
+ * updates any stuck "in_progress" check runs with a "timed_out" conclusion.
265
+ *
266
+ * Fire-and-forget: errors are logged but don't block.
267
+ */
268
+ cleanupStaleCheckRuns(opts: {
269
+ provider: string;
270
+ routingKey: string;
271
+ owner: string;
272
+ repo: string;
273
+ sha: string;
274
+ workflowName: string;
275
+ jobNames: string[];
276
+ }): void;
277
+ /**
278
+ * Update live step progress for a job's check run.
279
+ * Called each time a step starts, completes, or fails.
280
+ * The first 'running' step triggers an immediate in_progress transition.
281
+ * Subsequent updates are debounced (5 seconds) to prevent API rate limiting.
282
+ * Fire-and-forget: errors are logged but don't block the pipeline.
283
+ */
284
+ updateStepProgress(opts: UpdateStepProgressOptions): void;
285
+ /**
286
+ * Set a build check run to pending (queued).
287
+ * Called when a build job is dispatched for dependency installation and/or bundle compilation.
288
+ * Separate from execution check runs so users see build progress independently.
289
+ * Fire-and-forget: errors are logged but don't block the pipeline.
290
+ *
291
+ * Check run name format: kici/{workflowName}/setup
292
+ */
293
+ setBuildPending(opts: SetBuildPendingOptions): void;
294
+ /**
295
+ * Update a build check run to completed.
296
+ * Called when the build job finishes (success, failure, or cancellation).
297
+ * Fire-and-forget: errors are logged but don't block the pipeline.
298
+ */
299
+ setBuildComplete(opts: SetBuildCompleteOptions): void;
300
+ /**
301
+ * Clean up step progress entries and pending timers for a completed run.
302
+ * Called when execution tracker prunes a run from memory.
303
+ */
304
+ cleanupRun(runId: string): void;
305
+ /** Map from runId to check run keys for cleanup. */
306
+ private readonly runIdToKeys;
307
+ /** Track a check run key associated with a runId for later cleanup. */
308
+ private trackRunKey;
309
+ /**
310
+ * Resolve GitHub App credentials for a given routing key.
311
+ *
312
+ * Resolution order:
313
+ * 1. If providerRegistry is provided AND routingKey is given, look up the bundle
314
+ * by routing key and extract config from the CloneTokenProvider's getAppConfig().
315
+ * 2. Fall back to the direct githubConfig dep (backward compatible).
316
+ *
317
+ * Returns undefined if no config is available.
318
+ */
319
+ private resolveGithubConfig;
320
+ /**
321
+ * Resolve trace IDs for check run summaries.
322
+ * Priority: explicit option value > AsyncLocalStorage context > 'N/A'
323
+ */
324
+ private resolveTraceIds;
325
+ /**
326
+ * Append trace IDs to a check run summary string.
327
+ */
328
+ private appendTraceIds;
329
+ private checkRunKey;
330
+ /**
331
+ * Build the `details_url` for a check run pointing at the dashboard's
332
+ * public-alias resolver (`/r/orgs/<oal_xxx>/runs/<runId>`). Returns
333
+ * `undefined` when either the dashboard URL or the alias is missing,
334
+ * or when the runId is the synthetic `'N/A'` sentinel from
335
+ * `resolveTraceIds` (no real run to link to). Strips any trailing
336
+ * slash on `dashboardUrl` so the concatenation produces a single
337
+ * separator.
338
+ */
339
+ private buildDetailsUrl;
340
+ private doSetPending;
341
+ private doUpdateJobStatus;
342
+ private doUpdateWorkflowStatus;
343
+ private doCleanupStaleCheckRuns;
344
+ private doUpdateStepProgress;
345
+ /**
346
+ * Flush pending progress update to GitHub.
347
+ */
348
+ private flushProgress;
349
+ private doSetBuildPending;
350
+ private doSetBuildComplete;
351
+ /**
352
+ * Map internal build status to GitHub Checks conclusion and description.
353
+ */
354
+ private mapBuildConclusion;
355
+ /**
356
+ * Map internal job state to GitHub Checks conclusion and description.
357
+ */
358
+ private mapJobConclusion;
359
+ /**
360
+ * Map internal workflow state to GitHub Checks conclusion and description.
361
+ */
362
+ private mapWorkflowConclusion;
363
+ /**
364
+ * Create a check run via the GitHub Checks API.
365
+ * Returns the check run ID on success, or undefined on failure.
366
+ */
367
+ private createCheckRun;
368
+ /**
369
+ * Update an existing check run via the GitHub Checks API.
370
+ * Supports both 'completed' and 'in_progress' statuses.
371
+ */
372
+ private updateCheckRun;
373
+ }
374
+ /**
375
+ * Build a meaningful failure description from agent job status data.
376
+ *
377
+ * Examines `stepResults` for the first failed step, falling back to
378
+ * `data.error`, and finally to a generic "Job failed" message.
379
+ */
380
+ export declare function buildJobFailureDescription(data: Record<string, unknown>): string;
381
+ export {};
382
+ //# sourceMappingURL=commit-status.d.ts.map