@bridge_gpt/mcp-server 0.2.68 → 0.2.70

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 (166) hide show
  1. package/README.md +226 -320
  2. package/build/agent-launchers/claude-executor-adapter.js +17 -4
  3. package/build/agents.generated.js +4 -4
  4. package/build/artifact-diff.js +110 -0
  5. package/build/bin-entrypoint.js +36 -0
  6. package/build/bridge-permissions.js +650 -98
  7. package/build/check-update-cli.js +74 -0
  8. package/build/claude-review-workflow-drift.js +3 -3
  9. package/build/claude-settings.js +84 -2
  10. package/build/cli-help.js +7 -1
  11. package/build/codex-bridge-profile.js +1 -1
  12. package/build/codex-home.js +9 -1
  13. package/build/codex-launcher-pin.js +598 -0
  14. package/build/commands.generated.js +8 -8
  15. package/build/conductor/bridge-api-client.js +598 -19
  16. package/build/conductor/bring-up-facts.js +9 -9
  17. package/build/conductor/doctor.js +466 -18
  18. package/build/conductor/epic-child-continuation.js +54 -3
  19. package/build/conductor/epic-implementer-cli.js +132 -34
  20. package/build/conductor/epic-runtime.js +2 -2
  21. package/build/conductor/epic-state.js +1 -1
  22. package/build/conductor/hook-runtime-qualification.js +1 -1
  23. package/build/conductor/install-doctor.js +4 -2
  24. package/build/conductor/launch-need-probes.js +337 -0
  25. package/build/conductor/local-merge.js +241 -56
  26. package/build/conductor/merge-credential.js +172 -0
  27. package/build/conductor/merge-execution-eligibility.js +1 -1
  28. package/build/conductor/merged-child-check.js +95 -0
  29. package/build/conductor/plan-trim.js +30 -0
  30. package/build/conductor/pr-ci-producer.js +1 -1
  31. package/build/conductor/readiness-cli.js +11 -6
  32. package/build/conductor/readiness-prerequisites.js +41 -0
  33. package/build/conductor/readiness-sections.js +345 -55
  34. package/build/conductor/readiness.js +99 -87
  35. package/build/conductor/recovery-cli.js +606 -21
  36. package/build/conductor/recovery-operations.js +306 -7
  37. package/build/conductor/repair-contract.js +47 -2
  38. package/build/conductor/repository-workflow-remedy.js +8 -6
  39. package/build/conductor/stored-merge-credential.js +76 -0
  40. package/build/conductor/stored-merge-token-probe.js +28 -0
  41. package/build/conductor/temporary-plan.js +50 -0
  42. package/build/conductor/wait-run-cli.js +759 -0
  43. package/build/conductor/worker-database-doctor-inspector.js +49 -0
  44. package/build/conductor-bin.js +2 -2
  45. package/build/conductor-claude-hook-bin.js +2 -2
  46. package/build/conductor-claude-hook-removed-stub-bin.js +2 -5
  47. package/build/conductor-removed-stub-bin.js +2 -5
  48. package/build/connect-github-api.js +33 -14
  49. package/build/credential-store.js +356 -13
  50. package/build/docs.generated.js +27 -14
  51. package/build/doctor.js +203 -38
  52. package/build/drive-epic-help.js +212 -0
  53. package/build/drive-epic.js +1840 -373
  54. package/build/epic-ci-workflow-drift.js +77 -0
  55. package/build/epic-ci-workflow-install.js +183 -0
  56. package/build/epic-ci-workflow.js +157 -0
  57. package/build/epic-contract-context.js +326 -0
  58. package/build/epic-implementer-bin.js +131 -120
  59. package/build/epic-implementer-claude-hook-bin.js +2 -2
  60. package/build/escalation-reachability.js +134 -0
  61. package/build/executor/cleanup-report.js +99 -0
  62. package/build/executor/cli.js +12 -1
  63. package/build/executor/completion-contract.js +68 -11
  64. package/build/executor/completion-supervision.js +99 -0
  65. package/build/executor/delivery-outcome.js +179 -0
  66. package/build/executor/deps.js +3 -0
  67. package/build/executor/env.js +71 -0
  68. package/build/executor/failure-reason-codes.js +126 -0
  69. package/build/executor/heartbeat.js +38 -0
  70. package/build/executor/http-client.js +115 -4
  71. package/build/executor/integration-job.js +298 -5
  72. package/build/executor/job-errors.js +36 -6
  73. package/build/executor/job-runner.js +720 -36
  74. package/build/executor/likely-tests.js +36 -2
  75. package/build/executor/merge-job.js +145 -2
  76. package/build/executor/observation.js +73 -4
  77. package/build/executor/permissions.js +193 -97
  78. package/build/executor/preflight.js +14 -3
  79. package/build/executor/process-containment.js +28 -2
  80. package/build/executor/prompt-spec.js +50 -5
  81. package/build/executor/rebase-finalization.js +38 -3
  82. package/build/executor/reconcile-overlap-job.js +35 -7
  83. package/build/executor/required-work-ledger.js +236 -81
  84. package/build/executor/resume-pre-spawn.js +38 -1
  85. package/build/executor/runner.js +91 -3
  86. package/build/executor/test-clock.js +8 -0
  87. package/build/executor/types.js +37 -2
  88. package/build/executor/worker-cli-launcher.js +259 -0
  89. package/build/executor/worker-command.js +41 -4
  90. package/build/executor/worker-database-target.js +91 -0
  91. package/build/executor/worker-database.js +908 -0
  92. package/build/executor/worker-finalization.js +106 -0
  93. package/build/executor/worker-guard-hook.js +203 -0
  94. package/build/executor/worker-resources.js +47 -0
  95. package/build/executor/worker-verification-guidance.js +15 -2
  96. package/build/executor/worktree.js +303 -15
  97. package/build/executor-launch.js +11 -1
  98. package/build/generated-assets-doctor.js +9 -1
  99. package/build/generated-assets-health.js +13 -4
  100. package/build/generated-assets-legacy.js +39 -0
  101. package/build/generated-assets-paths.js +12 -1
  102. package/build/generated-assets-repair.js +4 -1
  103. package/build/generated-assets-test-support.js +12 -0
  104. package/build/github-remote.js +33 -0
  105. package/build/github-sign-in.js +62 -0
  106. package/build/index.js +1214 -465
  107. package/build/init.js +39 -1
  108. package/build/install-bridge-conductor-gate.js +78 -0
  109. package/build/install-bridge-conductor-setup.js +413 -0
  110. package/build/install-bridge-conductor.js +1226 -267
  111. package/build/install-bridge.js +629 -350
  112. package/build/launcher-config-inspection.js +184 -19
  113. package/build/mcp-host-targets.js +4 -0
  114. package/build/mcp-identity.js +7 -0
  115. package/build/mcp-install-state.js +8 -2
  116. package/build/merge-pull-request.js +6 -0
  117. package/build/merge-workflow-install.js +763 -345
  118. package/build/phase-result-artifacts.js +75 -20
  119. package/build/pipeline-orchestrator.js +247 -4
  120. package/build/pipelines.generated.js +35 -35
  121. package/build/plan-discovery.js +15 -2
  122. package/build/plan-execution-ledger.js +306 -17
  123. package/build/plan-phase-routing.js +48 -13
  124. package/build/plane/cli.js +105 -51
  125. package/build/plane/defaults.js +3 -0
  126. package/build/plane/plane-freshness.js +294 -0
  127. package/build/plane/schema-compatibility.js +137 -0
  128. package/build/plane/shutdown-deps.js +38 -0
  129. package/build/plane/shutdown.js +83 -8
  130. package/build/plane/terminal-run-cleanup.js +303 -0
  131. package/build/printed-remedy-commands.js +26 -4
  132. package/build/readiness-check.js +6 -2
  133. package/build/readiness-prerequisites.generated.js +532 -0
  134. package/build/readme.generated.js +1 -1
  135. package/build/session-upgrade-notice.js +86 -0
  136. package/build/setup-epic.js +400 -30
  137. package/build/shared-resources.generated.js +5 -0
  138. package/build/start-tickets.js +43 -15
  139. package/build/test-command-detection.js +247 -0
  140. package/build/test-command-validation.js +73 -0
  141. package/build/testing-config-client.js +150 -0
  142. package/build/ticket-delivery-artifacts.js +258 -0
  143. package/build/ticket-delivery-enrollment.js +306 -0
  144. package/build/ticket-delivery.js +205 -0
  145. package/build/ticket-review-summary.js +14 -0
  146. package/build/tool-call-advisory.js +162 -0
  147. package/build/tool-surface-gating.js +28 -89
  148. package/build/update-check.js +97 -16
  149. package/build/update-status.js +61 -71
  150. package/build/upgrade-advice.js +15 -11
  151. package/build/upgrade-cli.js +360 -20
  152. package/build/v2-readiness-requirements.js +552 -0
  153. package/build/version.generated.js +3 -3
  154. package/build/worker-guard-hook-bin.js +2 -2
  155. package/build/worktree-core.js +22 -7
  156. package/docs/BRIDGE-DIRECTORY-README.md +48 -0
  157. package/docs/EPIC-IMPLEMENTER-INSTALL.md +12 -867
  158. package/docs/EPIC-IMPLEMENTER.md +104 -63
  159. package/docs/epic-implementer/getting-started.md +131 -0
  160. package/docs/epic-implementer/self-hosting.md +133 -0
  161. package/package.json +3 -3
  162. package/pipelines/idea-to-ticket.json +1 -1
  163. package/pipelines/implement-ticket.json +8 -8
  164. package/pipelines/review-ticket.json +2 -2
  165. package/design-assets/favicon/favicon-32x32.png +0 -0
  166. package/design-assets/just-logo-rough-draft.png +0 -0
@@ -147,7 +147,7 @@ const POSIX_PATH_ROOTS = [
147
147
  * Deliberately narrow: it catches the obvious leak (`/Users/...`, `/private/tmp/...`,
148
148
  * `C:\\...`) without rejecting the relative, repository-conventional paths
149
149
  * remediations legitimately name (`.github/workflows/claude-review.yml`,
150
- * `docs/epic-implementer/operator-runbook.md`) or the approved setup
150
+ * `docs/install/epic-implementer-install.md`) or the approved setup
151
151
  * URLs (`https://host/setup`) — note the Windows drive alternative requires a
152
152
  * word boundary before the letter, so the `s:/` inside `https://` is not a hit.
153
153
  */
@@ -243,13 +243,15 @@ export function createReadinessCheck(input) {
243
243
  }
244
244
  const label = normalizeProse(input.label, "label", READINESS_DETAIL_MAX_LENGTH);
245
245
  const detail = input.detail === undefined ? undefined : normalizeReadinessDetail(input.detail);
246
+ // BAPI-1452: only an explicit `true` blocks; anything else is `false`.
247
+ const blocking = input.blocking === true;
246
248
  if (input.status === "pass") {
247
249
  if (input.remediation !== undefined) {
248
250
  // A pass with a fix attached is how a report starts telling operators to
249
251
  // act on things that are already fine, which is how they learn to ignore it.
250
252
  throw new ReadinessCheckValidationError("a passing check must not carry a remediation");
251
253
  }
252
- return { id: input.id, source: input.source, label, status: "pass", ...(detail ? { detail } : {}) };
254
+ return { id: input.id, source: input.source, label, status: "pass", ...(detail ? { detail } : {}), blocking };
253
255
  }
254
256
  if (input.status === "fail") {
255
257
  if (input.remediation === undefined) {
@@ -262,6 +264,7 @@ export function createReadinessCheck(input) {
262
264
  status: "fail",
263
265
  ...(detail ? { detail } : {}),
264
266
  remediation: normalizeReadinessRemediation(input.remediation),
267
+ blocking,
265
268
  };
266
269
  }
267
270
  const remediation = input.remediation === undefined ? undefined : normalizeReadinessRemediation(input.remediation);
@@ -272,6 +275,7 @@ export function createReadinessCheck(input) {
272
275
  status: input.status,
273
276
  ...(detail ? { detail } : {}),
274
277
  ...(remediation ? { remediation } : {}),
278
+ blocking,
275
279
  };
276
280
  }
277
281
  /** Fixed prose for a check that had to be replaced because it was malformed. */
@@ -0,0 +1,532 @@
1
+ // Generated by scripts/generate-readiness-prerequisites.mjs. Do not edit.
2
+ export const READINESS_PRE_CREATE_CODES = { "INDEXED_WORKFLOWS_NOT_MET": "indexed_workflows_not_met", "ESCALATION_CHANNEL_NOT_MET": "escalation_channel_not_met", "TEST_COMMAND_NOT_MET": "test_command_not_met" };
3
+ export const READINESS_PREREQUISITE_CATALOG = [
4
+ {
5
+ "id": "server.unattended-posture",
6
+ "label": "Unattended posture (Setup page)",
7
+ "impact": "blocking",
8
+ "scope": "customer"
9
+ },
10
+ {
11
+ "id": "server.resolved-merge-mode",
12
+ "label": "Resolved merge mode",
13
+ "impact": "warning",
14
+ "scope": "customer"
15
+ },
16
+ {
17
+ "id": "server.provider-repository",
18
+ "label": "Provider repository",
19
+ "impact": "warning",
20
+ "scope": "customer"
21
+ },
22
+ {
23
+ "id": "server.supervisor-setup",
24
+ "label": "Supervisor setup",
25
+ "impact": "blocking",
26
+ "scope": "customer"
27
+ },
28
+ {
29
+ "id": "server.supervisor-config",
30
+ "label": "Supervisor configuration",
31
+ "impact": "blocking",
32
+ "scope": "customer"
33
+ },
34
+ {
35
+ "id": "server.supervisor-required-checks",
36
+ "label": "Supervisor required CI checks",
37
+ "impact": "blocking",
38
+ "scope": "customer"
39
+ },
40
+ {
41
+ "id": "server.review-policy",
42
+ "label": "Review policy",
43
+ "impact": "warning",
44
+ "scope": "customer"
45
+ },
46
+ {
47
+ "id": "server.github-credentials",
48
+ "label": "GitHub App credentials",
49
+ "impact": "blocking",
50
+ "scope": "customer"
51
+ },
52
+ {
53
+ "id": "server.github-actions-permission",
54
+ "label": "GitHub App actions permission",
55
+ "impact": "warning",
56
+ "scope": "customer"
57
+ },
58
+ {
59
+ "id": "server.merge-execution-workflow",
60
+ "label": "Merge workflow eligibility",
61
+ "impact": "warning",
62
+ "scope": "customer"
63
+ },
64
+ {
65
+ "id": "server.merge-execution-branch-policy",
66
+ "label": "Merge branch policy",
67
+ "impact": "warning",
68
+ "scope": "customer"
69
+ },
70
+ {
71
+ "id": "server.reconciler-liveness",
72
+ "label": "Active-run progress",
73
+ "impact": "warning",
74
+ "scope": "self_host"
75
+ },
76
+ {
77
+ "id": "server.executor-readiness",
78
+ "label": "Executor server observation",
79
+ "impact": "warning",
80
+ "scope": "customer"
81
+ },
82
+ {
83
+ "id": "server.review-workflow",
84
+ "label": "Review workflow protocol",
85
+ "impact": "warning",
86
+ "scope": "customer"
87
+ },
88
+ {
89
+ "id": "server.conductor-ci-workflow",
90
+ "label": "Conductor CI migration guard",
91
+ "impact": "warning",
92
+ "scope": "customer"
93
+ },
94
+ {
95
+ "id": "server.unattended-notify-default",
96
+ "label": "Escalation channel (webhook or email)",
97
+ "impact": "blocking",
98
+ "scope": "customer"
99
+ },
100
+ {
101
+ "id": "server.repository-workflow-readiness",
102
+ "label": "Repository workflow readiness",
103
+ "impact": "warning",
104
+ "scope": "customer"
105
+ },
106
+ {
107
+ "id": "server.database-migration-current",
108
+ "label": "Database migration",
109
+ "impact": "blocking",
110
+ "scope": "self_host"
111
+ },
112
+ {
113
+ "id": "server.worker-present",
114
+ "label": "Server worker",
115
+ "impact": "blocking",
116
+ "scope": "self_host"
117
+ },
118
+ {
119
+ "id": "server.single-transition-authority",
120
+ "label": "Single transition authority",
121
+ "impact": "blocking",
122
+ "scope": "self_host"
123
+ },
124
+ {
125
+ "id": "server.indexed-workflows",
126
+ "label": "Workflows at indexed commit",
127
+ "impact": "blocking",
128
+ "scope": "customer"
129
+ },
130
+ {
131
+ "id": "server.test-command",
132
+ "label": "Known test command",
133
+ "impact": "blocking",
134
+ "scope": "customer"
135
+ },
136
+ {
137
+ "id": "server.service-availability",
138
+ "label": "Service availability",
139
+ "impact": "blocking",
140
+ "scope": "customer"
141
+ },
142
+ {
143
+ "id": "install.claude-login",
144
+ "label": "Claude login",
145
+ "impact": "warning",
146
+ "scope": "customer"
147
+ },
148
+ {
149
+ "id": "install.identity",
150
+ "label": "Repository identity",
151
+ "impact": "warning",
152
+ "scope": "customer"
153
+ },
154
+ {
155
+ "id": "install.credential",
156
+ "label": "Bridge API credential",
157
+ "impact": "warning",
158
+ "scope": "customer"
159
+ },
160
+ {
161
+ "id": "install.connectivity",
162
+ "label": "Server connectivity",
163
+ "impact": "warning",
164
+ "scope": "customer"
165
+ },
166
+ {
167
+ "id": "install.bootstrap",
168
+ "label": "Bootstrap config fields",
169
+ "impact": "warning",
170
+ "scope": "customer"
171
+ },
172
+ {
173
+ "id": "install.integrations",
174
+ "label": "Integration credentials",
175
+ "impact": "warning",
176
+ "scope": "customer"
177
+ },
178
+ {
179
+ "id": "install.github",
180
+ "label": "GitHub connection",
181
+ "impact": "warning",
182
+ "scope": "customer"
183
+ },
184
+ {
185
+ "id": "install.indexing",
186
+ "label": "Repository indexing",
187
+ "impact": "warning",
188
+ "scope": "customer"
189
+ },
190
+ {
191
+ "id": "conductor.ledger",
192
+ "label": "Conductor event ledger",
193
+ "impact": "warning",
194
+ "scope": "customer"
195
+ },
196
+ {
197
+ "id": "conductor.git-hooks",
198
+ "label": "Conductor git hooks",
199
+ "impact": "warning",
200
+ "scope": "customer"
201
+ },
202
+ {
203
+ "id": "conductor.mcp-profile",
204
+ "label": "Epic Implementer MCP profile",
205
+ "impact": "warning",
206
+ "scope": "customer"
207
+ },
208
+ {
209
+ "id": "conductor.gh-cli",
210
+ "label": "GitHub CLI availability",
211
+ "impact": "warning",
212
+ "scope": "customer"
213
+ },
214
+ {
215
+ "id": "conductor.merge-credential",
216
+ "label": "Configured merge credential",
217
+ "impact": "warning",
218
+ "scope": "customer"
219
+ },
220
+ {
221
+ "id": "conductor.native-ledger",
222
+ "label": "Native ledger binding",
223
+ "impact": "warning",
224
+ "scope": "customer"
225
+ },
226
+ {
227
+ "id": "conductor.mcp-registration-form",
228
+ "label": "Worker MCP registration form",
229
+ "impact": "warning",
230
+ "scope": "customer"
231
+ },
232
+ {
233
+ "id": "conductor.node-engine",
234
+ "label": "Expected Node engine",
235
+ "impact": "warning",
236
+ "scope": "customer"
237
+ },
238
+ {
239
+ "id": "conductor.deny-enforcement",
240
+ "label": "Deny-layer enforcement",
241
+ "impact": "warning",
242
+ "scope": "customer"
243
+ },
244
+ {
245
+ "id": "conductor.claude-login",
246
+ "label": "Claude login",
247
+ "impact": "warning",
248
+ "scope": "customer"
249
+ },
250
+ {
251
+ "id": "plane.legacy-environment",
252
+ "label": "Legacy environment",
253
+ "impact": "warning",
254
+ "scope": "self_host"
255
+ },
256
+ {
257
+ "id": "plane.repository-root",
258
+ "label": "Repository root",
259
+ "impact": "warning",
260
+ "scope": "self_host"
261
+ },
262
+ {
263
+ "id": "plane.worktree-presence",
264
+ "label": "Git work tree",
265
+ "impact": "warning",
266
+ "scope": "self_host"
267
+ },
268
+ {
269
+ "id": "plane.claude-login",
270
+ "label": "Claude login",
271
+ "impact": "warning",
272
+ "scope": "self_host"
273
+ },
274
+ {
275
+ "id": "plane.repo-identity",
276
+ "label": "Bridge repository identity",
277
+ "impact": "warning",
278
+ "scope": "self_host"
279
+ },
280
+ {
281
+ "id": "plane.bridge-credentials",
282
+ "label": "Bridge API credential",
283
+ "impact": "warning",
284
+ "scope": "self_host"
285
+ },
286
+ {
287
+ "id": "plane.credential-permissions",
288
+ "label": "Bridge credential file permissions",
289
+ "impact": "warning",
290
+ "scope": "self_host"
291
+ },
292
+ {
293
+ "id": "plane.executor-build",
294
+ "label": "Executor build freshness",
295
+ "impact": "warning",
296
+ "scope": "self_host"
297
+ },
298
+ {
299
+ "id": "plane.runtime-entrypoint",
300
+ "label": "Runtime re-exec entrypoint",
301
+ "impact": "warning",
302
+ "scope": "self_host"
303
+ },
304
+ {
305
+ "id": "plane.server-port",
306
+ "label": "Local server port",
307
+ "impact": "warning",
308
+ "scope": "self_host"
309
+ },
310
+ {
311
+ "id": "plane.alembic-head",
312
+ "label": "Database migration head",
313
+ "impact": "warning",
314
+ "scope": "self_host"
315
+ },
316
+ {
317
+ "id": "plane.existing-plane",
318
+ "label": "Existing plane",
319
+ "impact": "warning",
320
+ "scope": "self_host"
321
+ },
322
+ {
323
+ "id": "conductor.merge-credential-capability",
324
+ "label": "Merge credential capability",
325
+ "impact": "blocking",
326
+ "scope": "customer"
327
+ },
328
+ {
329
+ "id": "conductor.worktree-preparation",
330
+ "label": "Worktree preparation",
331
+ "impact": "blocking",
332
+ "scope": "customer"
333
+ },
334
+ {
335
+ "id": "conductor.install-section-supervisor-gate-profile",
336
+ "label": "Supervisor gate profile",
337
+ "impact": "warning",
338
+ "scope": "customer"
339
+ },
340
+ {
341
+ "id": "conductor.install-section-supervisor-required-checks",
342
+ "label": "Supervisor required CI checks",
343
+ "impact": "warning",
344
+ "scope": "customer"
345
+ },
346
+ {
347
+ "id": "conductor.install-section-supervisor-review-alignment",
348
+ "label": "Supervisor review-policy alignment",
349
+ "impact": "warning",
350
+ "scope": "customer"
351
+ },
352
+ {
353
+ "id": "conductor.install-section-github-actions-permission",
354
+ "label": "GitHub App actions permission",
355
+ "impact": "warning",
356
+ "scope": "customer"
357
+ },
358
+ {
359
+ "id": "conductor.install-section-merge-execution-eligibility",
360
+ "label": "Merge execution eligibility",
361
+ "impact": "warning",
362
+ "scope": "customer"
363
+ },
364
+ {
365
+ "id": "conductor.install-section-executor-provisioning",
366
+ "label": "Executor provisioning",
367
+ "impact": "warning",
368
+ "scope": "self_host"
369
+ },
370
+ {
371
+ "id": "conductor.install-section-executor-service-state",
372
+ "label": "Executor service state",
373
+ "impact": "warning",
374
+ "scope": "self_host"
375
+ },
376
+ {
377
+ "id": "conductor.install-section-epic-implementer-profile-token",
378
+ "label": "Epic Implementer MCP profile token",
379
+ "impact": "warning",
380
+ "scope": "customer"
381
+ },
382
+ {
383
+ "id": "conductor.install-section-conductor-hook-targets",
384
+ "label": "Conductor hook targets",
385
+ "impact": "warning",
386
+ "scope": "customer"
387
+ },
388
+ {
389
+ "id": "conductor.install-section-gh-actions-merge-auth",
390
+ "label": "GitHub Actions merge: local observation prerequisites",
391
+ "impact": "warning",
392
+ "scope": "customer"
393
+ },
394
+ {
395
+ "id": "conductor.install-section-gh-actions-merge-observable",
396
+ "label": "GitHub Actions merge: capability observability",
397
+ "impact": "warning",
398
+ "scope": "customer"
399
+ },
400
+ {
401
+ "id": "conductor.install-section-epic-implementer-ledger-loadability",
402
+ "label": "Epic Implementer ledger loadability",
403
+ "impact": "warning",
404
+ "scope": "customer"
405
+ },
406
+ {
407
+ "id": "server.admission-evidence",
408
+ "label": "Launch evidence",
409
+ "impact": "warning",
410
+ "scope": "customer"
411
+ },
412
+ {
413
+ "id": "server.admission-unattended-consent",
414
+ "label": "Launch evidence: unattended consent",
415
+ "impact": "warning",
416
+ "scope": "customer"
417
+ },
418
+ {
419
+ "id": "server.admission-notify-webhook",
420
+ "label": "Launch evidence: notification destination",
421
+ "impact": "warning",
422
+ "scope": "customer"
423
+ },
424
+ {
425
+ "id": "server.admission-repository-readiness",
426
+ "label": "Launch evidence: repository workflows",
427
+ "impact": "warning",
428
+ "scope": "customer"
429
+ },
430
+ {
431
+ "id": "server.admission-required-checks",
432
+ "label": "Launch evidence: required CI checks",
433
+ "impact": "warning",
434
+ "scope": "customer"
435
+ },
436
+ {
437
+ "id": "server.admission-index-provenance",
438
+ "label": "Launch evidence: indexed repository",
439
+ "impact": "warning",
440
+ "scope": "customer"
441
+ },
442
+ {
443
+ "id": "server.admission-durable-actor",
444
+ "label": "Launch evidence: actor handshake",
445
+ "impact": "warning",
446
+ "scope": "self_host"
447
+ },
448
+ {
449
+ "id": "server.admission-migration-head",
450
+ "label": "Launch evidence: database migration",
451
+ "impact": "warning",
452
+ "scope": "self_host"
453
+ },
454
+ {
455
+ "id": "server.gate-profile",
456
+ "label": "Repository test gate",
457
+ "impact": "warning",
458
+ "scope": "customer"
459
+ },
460
+ {
461
+ "id": "server.gate-profile-warnings",
462
+ "label": "Repository test gate warnings",
463
+ "impact": "warning",
464
+ "scope": "customer"
465
+ },
466
+ {
467
+ "id": "server.effective-review-mode",
468
+ "label": "Effective review mode",
469
+ "impact": "warning",
470
+ "scope": "customer"
471
+ },
472
+ {
473
+ "id": "server.epic-branch-ci-decision",
474
+ "label": "Epic branch CI",
475
+ "impact": "warning",
476
+ "scope": "customer"
477
+ },
478
+ {
479
+ "id": "server.epic-branch-ci-coverage-warning",
480
+ "label": "Epic branch CI coverage",
481
+ "impact": "warning",
482
+ "scope": "customer"
483
+ },
484
+ {
485
+ "id": "server.diagnostics",
486
+ "label": "Additional readiness diagnostics",
487
+ "impact": "warning",
488
+ "scope": "customer"
489
+ },
490
+ {
491
+ "id": "conductor.command-drift",
492
+ "label": "Command versions",
493
+ "impact": "warning",
494
+ "scope": "customer"
495
+ },
496
+ {
497
+ "id": "escalation-reachability",
498
+ "label": "Escalation delivery",
499
+ "impact": "warning",
500
+ "scope": "customer"
501
+ }
502
+ ];
503
+ export const READINESS_LEGACY_IDS = {
504
+ "conductor.install-section-supervisor-gate-profile": "conductor.install-section-supervisor-gate-profile",
505
+ "conductor.install-section-supervisor-configuration": "server.supervisor-config",
506
+ "conductor.install-section-supervisor-required-checks": "conductor.install-section-supervisor-required-checks",
507
+ "conductor.install-section-supervisor-review-alignment": "conductor.install-section-supervisor-review-alignment",
508
+ "conductor.install-section-github-credentials": "server.github-credentials",
509
+ "conductor.install-section-github-actions-permission": "conductor.install-section-github-actions-permission",
510
+ "conductor.install-section-merge-execution-eligibility": "conductor.install-section-merge-execution-eligibility",
511
+ "conductor.install-section-reconciler-liveness": "server.reconciler-liveness",
512
+ "conductor.install-section-claude-review-workflow": "server.review-workflow",
513
+ "conductor.install-section-executor-provisioning": "conductor.install-section-executor-provisioning",
514
+ "conductor.install-section-executor-service-state": "conductor.install-section-executor-service-state",
515
+ "conductor.install-section-executor-observation": "server.executor-readiness",
516
+ "conductor.install-section-epic-implementer-profile-token": "conductor.install-section-epic-implementer-profile-token",
517
+ "conductor.install-section-conductor-hook-targets": "conductor.install-section-conductor-hook-targets",
518
+ "conductor.install-section-gh-actions-merge-auth": "conductor.install-section-gh-actions-merge-auth",
519
+ "conductor.install-section-gh-actions-merge-observable": "conductor.install-section-gh-actions-merge-observable",
520
+ "conductor.install-section-epic-implementer-ledger-loadability": "conductor.install-section-epic-implementer-ledger-loadability",
521
+ "supervisor_setup": "server.supervisor-setup",
522
+ "supervisor_config": "server.supervisor-config",
523
+ "github_credentials": "server.github-credentials",
524
+ "reconciler_live": "server.worker-present",
525
+ "executor_live": "server.executor-readiness",
526
+ "unattended_consent": "server.unattended-posture",
527
+ "unattended_notify_default": "server.unattended-notify-default",
528
+ "repository_readiness": "server.repository-workflow-readiness",
529
+ "merge_credential_capability": "conductor.merge-credential-capability",
530
+ "worktree_preparation": "conductor.worktree-preparation"
531
+ };
532
+ export const READINESS_PREREQUISITE_BY_ID = new Map(READINESS_PREREQUISITE_CATALOG.map(d => [d.id, d]));