codex-orchestrator 2.0.10 → 2.0.12

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 (279) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +29 -30
  3. package/dist/src/index.d.ts +4 -9
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +2 -5
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/v2/acceptance-proof.d.ts +53 -25
  8. package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
  9. package/dist/src/v2/acceptance-proof.js +189 -197
  10. package/dist/src/v2/acceptance-proof.js.map +1 -1
  11. package/dist/src/v2/active-attempt.d.ts +94 -0
  12. package/dist/src/v2/active-attempt.d.ts.map +1 -0
  13. package/dist/src/v2/active-attempt.js +200 -0
  14. package/dist/src/v2/active-attempt.js.map +1 -0
  15. package/dist/src/v2/adapters/command.d.ts +7 -0
  16. package/dist/src/v2/adapters/command.d.ts.map +1 -1
  17. package/dist/src/v2/adapters/command.js +44 -3
  18. package/dist/src/v2/adapters/command.js.map +1 -1
  19. package/dist/src/v2/adapters/gh-pull-request-adapter.js +1 -0
  20. package/dist/src/v2/adapters/gh-pull-request-adapter.js.map +1 -1
  21. package/dist/src/v2/adapters/pull-requests.d.ts +1 -0
  22. package/dist/src/v2/adapters/pull-requests.d.ts.map +1 -1
  23. package/dist/src/v2/adapters/pull-requests.js +1 -0
  24. package/dist/src/v2/adapters/pull-requests.js.map +1 -1
  25. package/dist/src/v2/adapters/worktree.js +3 -3
  26. package/dist/src/v2/adapters/worktree.js.map +1 -1
  27. package/dist/src/v2/atomic-store.d.ts +15 -0
  28. package/dist/src/v2/atomic-store.d.ts.map +1 -1
  29. package/dist/src/v2/atomic-store.js +55 -8
  30. package/dist/src/v2/atomic-store.js.map +1 -1
  31. package/dist/src/v2/candidate.d.ts +136 -0
  32. package/dist/src/v2/candidate.d.ts.map +1 -0
  33. package/dist/src/v2/candidate.js +107 -0
  34. package/dist/src/v2/candidate.js.map +1 -0
  35. package/dist/src/v2/checked-change.d.ts +39 -7
  36. package/dist/src/v2/checked-change.d.ts.map +1 -1
  37. package/dist/src/v2/checked-change.js +73 -1
  38. package/dist/src/v2/checked-change.js.map +1 -1
  39. package/dist/src/v2/cli-contract.d.ts +1 -1
  40. package/dist/src/v2/cli-contract.d.ts.map +1 -1
  41. package/dist/src/v2/cli-contract.js +4 -6
  42. package/dist/src/v2/cli-contract.js.map +1 -1
  43. package/dist/src/v2/cli.d.ts +14 -0
  44. package/dist/src/v2/cli.d.ts.map +1 -1
  45. package/dist/src/v2/cli.js +70 -21
  46. package/dist/src/v2/cli.js.map +1 -1
  47. package/dist/src/v2/code-review-report.d.ts +10 -18
  48. package/dist/src/v2/code-review-report.d.ts.map +1 -1
  49. package/dist/src/v2/code-review-report.js +63 -60
  50. package/dist/src/v2/code-review-report.js.map +1 -1
  51. package/dist/src/v2/codex-process.d.ts +6 -1
  52. package/dist/src/v2/codex-process.d.ts.map +1 -1
  53. package/dist/src/v2/codex-process.js +36 -9
  54. package/dist/src/v2/codex-process.js.map +1 -1
  55. package/dist/src/v2/config.d.ts +0 -2
  56. package/dist/src/v2/config.d.ts.map +1 -1
  57. package/dist/src/v2/config.js +3 -6
  58. package/dist/src/v2/config.js.map +1 -1
  59. package/dist/src/v2/contained-report-operation.d.ts +17 -6
  60. package/dist/src/v2/contained-report-operation.d.ts.map +1 -1
  61. package/dist/src/v2/contained-report-operation.js +11 -24
  62. package/dist/src/v2/contained-report-operation.js.map +1 -1
  63. package/dist/src/v2/containment.d.ts +1 -0
  64. package/dist/src/v2/containment.d.ts.map +1 -1
  65. package/dist/src/v2/containment.js +12 -2
  66. package/dist/src/v2/containment.js.map +1 -1
  67. package/dist/src/v2/delivery-authority.d.ts +26 -0
  68. package/dist/src/v2/delivery-authority.d.ts.map +1 -0
  69. package/dist/src/v2/delivery-authority.js +44 -0
  70. package/dist/src/v2/delivery-authority.js.map +1 -0
  71. package/dist/src/v2/direct-delivery.d.ts +19 -57
  72. package/dist/src/v2/direct-delivery.d.ts.map +1 -1
  73. package/dist/src/v2/direct-delivery.js +154 -211
  74. package/dist/src/v2/direct-delivery.js.map +1 -1
  75. package/dist/src/v2/immutable-workflow-publisher.d.ts.map +1 -1
  76. package/dist/src/v2/immutable-workflow-publisher.js +3 -1
  77. package/dist/src/v2/immutable-workflow-publisher.js.map +1 -1
  78. package/dist/src/v2/implementation-report.d.ts +3 -1
  79. package/dist/src/v2/implementation-report.d.ts.map +1 -1
  80. package/dist/src/v2/implementation-report.js +17 -4
  81. package/dist/src/v2/implementation-report.js.map +1 -1
  82. package/dist/src/v2/implementation-reviewer.d.ts +22 -13
  83. package/dist/src/v2/implementation-reviewer.d.ts.map +1 -1
  84. package/dist/src/v2/implementation-reviewer.js +96 -30
  85. package/dist/src/v2/implementation-reviewer.js.map +1 -1
  86. package/dist/src/v2/owner-control-lock.d.ts +13 -1
  87. package/dist/src/v2/owner-control-lock.d.ts.map +1 -1
  88. package/dist/src/v2/owner-control-lock.js +66 -7
  89. package/dist/src/v2/owner-control-lock.js.map +1 -1
  90. package/dist/src/v2/pending-effect-settlement.d.ts +44 -0
  91. package/dist/src/v2/pending-effect-settlement.d.ts.map +1 -0
  92. package/dist/src/v2/pending-effect-settlement.js +69 -0
  93. package/dist/src/v2/pending-effect-settlement.js.map +1 -0
  94. package/dist/src/v2/process-identity.d.ts +45 -0
  95. package/dist/src/v2/process-identity.d.ts.map +1 -0
  96. package/dist/src/v2/process-identity.js +118 -0
  97. package/dist/src/v2/process-identity.js.map +1 -0
  98. package/dist/src/v2/proof-report.d.ts +4 -2
  99. package/dist/src/v2/proof-report.d.ts.map +1 -1
  100. package/dist/src/v2/proof-report.js +16 -44
  101. package/dist/src/v2/proof-report.js.map +1 -1
  102. package/dist/src/v2/review-feedback-coordinator.d.ts +8 -2
  103. package/dist/src/v2/review-feedback-coordinator.d.ts.map +1 -1
  104. package/dist/src/v2/review-feedback-coordinator.js +98 -71
  105. package/dist/src/v2/review-feedback-coordinator.js.map +1 -1
  106. package/dist/src/v2/review-feedback.d.ts +14 -38
  107. package/dist/src/v2/review-feedback.d.ts.map +1 -1
  108. package/dist/src/v2/review-feedback.js +48 -115
  109. package/dist/src/v2/review-feedback.js.map +1 -1
  110. package/dist/src/v2/run-issue.d.ts +139 -60
  111. package/dist/src/v2/run-issue.d.ts.map +1 -1
  112. package/dist/src/v2/run-issue.js +2236 -1974
  113. package/dist/src/v2/run-issue.js.map +1 -1
  114. package/dist/src/v2/run-state-projections.d.ts +84 -0
  115. package/dist/src/v2/run-state-projections.d.ts.map +1 -0
  116. package/dist/src/v2/run-state-projections.js +142 -0
  117. package/dist/src/v2/run-state-projections.js.map +1 -0
  118. package/dist/src/v2/run-store.d.ts +114 -82
  119. package/dist/src/v2/run-store.d.ts.map +1 -1
  120. package/dist/src/v2/run-store.js +308 -224
  121. package/dist/src/v2/run-store.js.map +1 -1
  122. package/dist/src/v2/runtime-assets.d.ts +3 -0
  123. package/dist/src/v2/runtime-assets.d.ts.map +1 -1
  124. package/dist/src/v2/runtime-assets.js +104 -0
  125. package/dist/src/v2/runtime-assets.js.map +1 -1
  126. package/dist/src/v2/runtime.d.ts +52 -15
  127. package/dist/src/v2/runtime.d.ts.map +1 -1
  128. package/dist/src/v2/runtime.js +818 -348
  129. package/dist/src/v2/runtime.js.map +1 -1
  130. package/dist/src/v2/setup.js +0 -2
  131. package/dist/src/v2/setup.js.map +1 -1
  132. package/dist/src/v2/validation-progression.d.ts +70 -0
  133. package/dist/src/v2/validation-progression.d.ts.map +1 -0
  134. package/dist/src/v2/validation-progression.js +247 -0
  135. package/dist/src/v2/validation-progression.js.map +1 -0
  136. package/dist/src/v2/workflow-assets.d.ts +9 -3
  137. package/dist/src/v2/workflow-assets.d.ts.map +1 -1
  138. package/dist/src/v2/workflow-assets.js +256 -43
  139. package/dist/src/v2/workflow-assets.js.map +1 -1
  140. package/docs/deep-dive.md +52 -14
  141. package/internal-workflow/docs/agents/bug-workflow-routing.md +9 -7
  142. package/internal-workflow/docs/agents/coding-skill-routing.md +170 -120
  143. package/internal-workflow/docs/agents/tool-usage.md +23 -12
  144. package/internal-workflow/manifest.json +1 -1
  145. package/internal-workflow/operations/code-review/SKILL.md +34 -15
  146. package/internal-workflow/operations/implementation/SKILL.md +21 -16
  147. package/internal-workflow/profiles/implementer.toml +9 -0
  148. package/internal-workflow/profiles/review_coordinator.toml +9 -0
  149. package/internal-workflow/profiles/spec_reviewer.toml +9 -0
  150. package/internal-workflow/profiles/standards_reviewer.toml +9 -0
  151. package/internal-workflow/schemas/code-review-v1.json +1 -1
  152. package/internal-workflow/schemas/implementation-report-v1.json +1 -1
  153. package/internal-workflow/schemas/proof-report-v1.json +1 -1
  154. package/internal-workflow/skills/bug-root-cause-explainer/SKILL.md +114 -0
  155. package/internal-workflow/skills/bug-root-cause-explainer/agents/openai.yaml +7 -0
  156. package/internal-workflow/skills/bug-root-cause-explainer/evals/evals.json +18 -0
  157. package/internal-workflow/skills/code-review/SKILL.md +84 -288
  158. package/internal-workflow/skills/code-review/agents/openai.yaml +5 -3
  159. package/internal-workflow/skills/code-review/evals/evals.json +83 -0
  160. package/internal-workflow/skills/code-review/references/standards-smells.md +41 -0
  161. package/internal-workflow/skills/diagnosing-bugs/SKILL.md +69 -32
  162. package/internal-workflow/skills/diagnosing-bugs/agents/openai.yaml +2 -2
  163. package/internal-workflow/skills/diagnosing-bugs/evals/evals.json +63 -0
  164. package/internal-workflow/skills/grilling/SKILL.md +51 -0
  165. package/internal-workflow/skills/grilling/agents/openai.yaml +6 -0
  166. package/internal-workflow/skills/grilling/evals/evals.json +47 -0
  167. package/internal-workflow/skills/implement/SKILL.md +135 -0
  168. package/internal-workflow/skills/implement/agents/openai.yaml +6 -0
  169. package/internal-workflow/skills/implement/evals/evals.json +150 -0
  170. package/internal-workflow/skills/plan/SKILL.md +59 -0
  171. package/internal-workflow/skills/plan/agents/openai.yaml +6 -0
  172. package/internal-workflow/skills/plan/evals/evals.json +36 -0
  173. package/internal-workflow/skills/prototype/LOGIC.md +130 -0
  174. package/internal-workflow/skills/prototype/SKILL.md +69 -0
  175. package/internal-workflow/skills/prototype/UI.md +157 -0
  176. package/internal-workflow/skills/prototype/agents/openai.yaml +6 -0
  177. package/internal-workflow/skills/prototype/evals/evals.json +67 -0
  178. package/internal-workflow/skills/research/SKILL.md +110 -0
  179. package/internal-workflow/skills/research/agents/openai.yaml +6 -0
  180. package/internal-workflow/skills/research/evals/evals.json +49 -0
  181. package/internal-workflow/skills/tdd/SKILL.md +72 -67
  182. package/internal-workflow/skills/tdd/agents/openai.yaml +2 -2
  183. package/internal-workflow/skills/tdd/evals/evals.json +12 -0
  184. package/internal-workflow/skills/tdd/mocking.md +48 -1
  185. package/internal-workflow/skills/tdd/refactoring.md +3 -3
  186. package/internal-workflow/skills/tickets-orchestrator/SKILL.md +199 -0
  187. package/internal-workflow/skills/tickets-orchestrator/agents/openai.yaml +6 -0
  188. package/internal-workflow/skills/tickets-orchestrator/evals/evals.json +126 -0
  189. package/internal-workflow/skills/tickets-orchestrator/references/delegate-integrate.md +83 -0
  190. package/internal-workflow/skills/tickets-orchestrator/references/finish-delivery.md +69 -0
  191. package/internal-workflow/skills/tickets-orchestrator/references/stop-completion.md +63 -0
  192. package/internal-workflow/skills/to-spec/SKILL.md +133 -0
  193. package/internal-workflow/skills/to-spec/agents/openai.yaml +6 -0
  194. package/internal-workflow/skills/to-spec/evals/evals.json +24 -0
  195. package/internal-workflow/skills/to-tickets/SKILL.md +189 -0
  196. package/internal-workflow/skills/to-tickets/agents/openai.yaml +6 -0
  197. package/internal-workflow/skills/to-tickets/evals/evals.json +79 -0
  198. package/internal-workflow/skills/to-tickets/references/publishing-details.md +117 -0
  199. package/package.json +1 -1
  200. package/dist/src/v2/proof-store.d.ts +0 -42
  201. package/dist/src/v2/proof-store.d.ts.map +0 -1
  202. package/dist/src/v2/proof-store.js +0 -180
  203. package/dist/src/v2/proof-store.js.map +0 -1
  204. package/dist/src/v2/route-continuations.d.ts +0 -32
  205. package/dist/src/v2/route-continuations.d.ts.map +0 -1
  206. package/dist/src/v2/route-continuations.js +0 -2
  207. package/dist/src/v2/route-continuations.js.map +0 -1
  208. package/dist/src/v2/route-coordinator.d.ts +0 -77
  209. package/dist/src/v2/route-coordinator.d.ts.map +0 -1
  210. package/dist/src/v2/route-coordinator.js +0 -370
  211. package/dist/src/v2/route-coordinator.js.map +0 -1
  212. package/dist/src/v2/route-decision.d.ts +0 -129
  213. package/dist/src/v2/route-decision.d.ts.map +0 -1
  214. package/dist/src/v2/route-decision.js +0 -400
  215. package/dist/src/v2/route-decision.js.map +0 -1
  216. package/dist/src/v2/spec-coordinator.d.ts +0 -85
  217. package/dist/src/v2/spec-coordinator.d.ts.map +0 -1
  218. package/dist/src/v2/spec-coordinator.js +0 -88
  219. package/dist/src/v2/spec-coordinator.js.map +0 -1
  220. package/dist/src/v2/spec-delivery.d.ts +0 -143
  221. package/dist/src/v2/spec-delivery.d.ts.map +0 -1
  222. package/dist/src/v2/spec-delivery.js +0 -401
  223. package/dist/src/v2/spec-delivery.js.map +0 -1
  224. package/dist/src/v2/triage-route.d.ts +0 -68
  225. package/dist/src/v2/triage-route.d.ts.map +0 -1
  226. package/dist/src/v2/triage-route.js +0 -223
  227. package/dist/src/v2/triage-route.js.map +0 -1
  228. package/dist/src/v2/waiting-human-coordinator.d.ts +0 -49
  229. package/dist/src/v2/waiting-human-coordinator.d.ts.map +0 -1
  230. package/dist/src/v2/waiting-human-coordinator.js +0 -509
  231. package/dist/src/v2/waiting-human-coordinator.js.map +0 -1
  232. package/dist/src/v2/waiting-human.d.ts +0 -143
  233. package/dist/src/v2/waiting-human.d.ts.map +0 -1
  234. package/dist/src/v2/waiting-human.js +0 -408
  235. package/dist/src/v2/waiting-human.js.map +0 -1
  236. package/internal-workflow/docs/agents/contract-test-ledger.md +0 -71
  237. package/internal-workflow/docs/agents/review-gates.md +0 -42
  238. package/internal-workflow/docs/agents/review-protocol.md +0 -98
  239. package/internal-workflow/evals/coding-skill-evals.json +0 -332
  240. package/internal-workflow/operations/ambiguity-review/SKILL.md +0 -5
  241. package/internal-workflow/operations/qualification-repair/SKILL.md +0 -17
  242. package/internal-workflow/operations/spec-author/SKILL.md +0 -12
  243. package/internal-workflow/operations/spec-review/SKILL.md +0 -12
  244. package/internal-workflow/operations/triage/SKILL.md +0 -12
  245. package/internal-workflow/profiles/analyst_deep.toml +0 -9
  246. package/internal-workflow/profiles/implementer_standard.toml +0 -9
  247. package/internal-workflow/profiles/proof_agent.toml +0 -8
  248. package/internal-workflow/profiles/reviewer_deep.toml +0 -9
  249. package/internal-workflow/profiles/reviewer_standard.toml +0 -9
  250. package/internal-workflow/schemas/ambiguity-review-v1.json +0 -1
  251. package/internal-workflow/schemas/spec-author-v1.json +0 -1
  252. package/internal-workflow/schemas/spec-review-v1.json +0 -30
  253. package/internal-workflow/schemas/triage-route-v1.json +0 -1
  254. package/internal-workflow/skills/agent-auto/SKILL.md +0 -19
  255. package/internal-workflow/skills/agent-auto/agents/openai.yaml +0 -6
  256. package/internal-workflow/skills/code-debugger/SKILL.md +0 -122
  257. package/internal-workflow/skills/code-debugger/agents/openai.yaml +0 -7
  258. package/internal-workflow/skills/code-review/references/bug-classes.md +0 -56
  259. package/internal-workflow/skills/code-review/references/cleanup-lens.md +0 -52
  260. package/internal-workflow/skills/code-review/references/framework-lenses.md +0 -34
  261. package/internal-workflow/skills/code-review/references/targeted-recipes.md +0 -49
  262. package/internal-workflow/skills/implementation-spec-maker/SKILL.md +0 -107
  263. package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +0 -6
  264. package/internal-workflow/skills/implementation-spec-maker/references/source-modes.md +0 -32
  265. package/internal-workflow/skills/implementation-spec-maker/references/spec-template.md +0 -146
  266. package/internal-workflow/skills/implementation-spec-review/SKILL.md +0 -131
  267. package/internal-workflow/skills/implementation-spec-review/agents/openai.yaml +0 -6
  268. package/internal-workflow/skills/implementation-spec-review/evals/evals.json +0 -78
  269. package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +0 -121
  270. package/internal-workflow/skills/small-task-implementer/SKILL.md +0 -112
  271. package/internal-workflow/skills/small-task-implementer/agents/openai.yaml +0 -6
  272. package/internal-workflow/skills/spec-implementer/SKILL.md +0 -126
  273. package/internal-workflow/skills/spec-implementer/agents/openai.yaml +0 -6
  274. package/internal-workflow/skills/spec-implementer/evals/evals.json +0 -30
  275. package/internal-workflow/skills/spec-implementer/references/review-loop.md +0 -100
  276. package/internal-workflow/skills/triage/AGENT-BRIEF.md +0 -192
  277. package/internal-workflow/skills/triage/OUT-OF-SCOPE.md +0 -101
  278. package/internal-workflow/skills/triage/SKILL.md +0 -134
  279. package/internal-workflow/skills/triage/agents/openai.yaml +0 -6
package/CHANGELOG.md CHANGED
@@ -6,6 +6,58 @@ The format is based on Keep a Changelog, and this project follows SemVer.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [2.0.12] - 2026-08-10
10
+
11
+ ### Changed
12
+ - Collapsed direct, approved spec-first, product-answer, and trusted PR-feedback
13
+ delivery onto one Run-owned validation loop with exact Run/ActiveAttempt/
14
+ PendingEffect recovery, clean state-schema cutover, checked-change authority,
15
+ and intent-based publication.
16
+ - Bound packed scratch-smoke reports to a clean immutable source HEAD before
17
+ package creation and retained strict scratch-only cleanup.
18
+
19
+ ### Removed
20
+ - Removed legacy qualification, Full/Closure, operation-specific invocation,
21
+ separate post-PR progression, compatibility/migration, and duplicate
22
+ lifecycle ownership paths.
23
+
24
+ ## [2.0.11] - 2026-07-30
25
+
26
+ ### Added
27
+ - Added V2 candidate-bound `CheckedChange` contracts and optional candidate Git
28
+ capability while preserving existing V1 payload and freshness semantics.
29
+ - Added run-state V3 migration with an exact raw-byte backup, pre-publication
30
+ rollback guard, candidate bindings, execution leases, and retained commit
31
+ intents for observation-only recovery.
32
+
33
+ ### Changed
34
+ - Direct-route review, checks, and Acceptance Proof now execute from fresh
35
+ detached materializations of one private-index-captured, ref-pinned Git tree.
36
+ Publication creates and observes the exact single-parent commit from that
37
+ tree before push, including restart-safe branch-CAS reconciliation.
38
+ - Recovery across direct, report-only, mutable worker, spec-author, review, and
39
+ proof operations now uses one canonical attempt-owned invocation lifecycle.
40
+ Infrastructure failures before recoverable output do not consume semantic
41
+ budgets, while recovered Runner-classified output consumes its existing
42
+ phase budget exactly once.
43
+ - Replaced the generic positive-proof live-smoke scenario with an
44
+ `authoritative-candidate-publication` scenario that injects stale shared-index
45
+ content and proves exact candidate-tree publication plus pin/materialization
46
+ cleanup.
47
+ - Updated interrupted-worker live-smoke scenarios to prove bounded
48
+ infrastructure clearing, delayed replacement launches, no accidental
49
+ publication, deterministic process-absent output discard, and strict scratch
50
+ ownership cleanup under the canonical recovery lifecycle.
51
+
52
+ ### Fixed
53
+ - New issue worktrees now use a freshly fetched configured remote base and are
54
+ created from its immutable pinned SHA. Base fetch failures remain unclaimed
55
+ and safely retryable.
56
+
57
+ ### Removed
58
+ - Removed the superseded operation-specific recovery owners and parallel state
59
+ machines after each operation migrated to the canonical invocation lifecycle.
60
+
9
61
  ## [2.0.10] - 2026-07-29
10
62
 
11
63
  ### Fixed
package/README.md CHANGED
@@ -1,16 +1,12 @@
1
1
  # Codex Orchestrator
2
2
 
3
- Codex Orchestrator turns an authorized GitHub Issue into a controlled Codex delivery run. It reads the issue, decides whether the work is ready to implement, works in an isolated Git worktree, validates the result, and—only after all required gates pass—pushes a branch and opens a draft pull request.
3
+ Codex Orchestrator turns one explicitly authorized GitHub Issue into a controlled Codex delivery run. Planning remains external. The package implements the issue in an isolated Git worktree, validates the immutable candidate, and—only after all required gates pass—pushes a branch and opens a draft pull request.
4
4
 
5
5
  The package is designed for unattended local execution without giving the Codex worker your GitHub, SSH, npm, or cloud publication credentials. The trusted Runner owns authorization, checks, recovery, and publication; Codex owns the bounded analysis, implementation, review, and proof tasks assigned to it.
6
6
 
7
7
  ## What happens to an issue
8
8
 
9
- Add the configured `agent:auto` label to an open issue, then run the orchestrator. It will choose one of three routes:
10
-
11
- - **Direct delivery:** the issue is clear enough to implement. Codex changes the code, an independent review checks it, issue-scoped verification checks run, Acceptance Proof verifies the acceptance criteria, and the Runner creates a draft PR.
12
- - **Specification first:** the issue is too complex for safe direct implementation. Separate Codex workers author and independently review a deterministic implementation specification; the Runner freezes the approved revision and returns `spec-frozen`. Implementation is intentionally a separate follow-up run or workflow.
13
- - **Human decision required:** the repository does not contain enough authority to choose between materially different product outcomes. The package posts one precise question, applies `agent:waiting-human`, and resumes the same run after an authorized repository writer answers with the requested prefix.
9
+ Add the configured `agent:auto` label to an open executable issue, then run the orchestrator. That label authorizes only that issue. The lifecycle is `implementation → affected checks → Acceptance Proof → Review → publication`. A product or ownership decision gap is returned as an issue-local blocker for external Plan; the package does not create a PRD, spec, or ticket graph.
14
10
 
15
11
  Ordinary technical choices do not stop the run. A human question is reserved for real product ambiguity.
16
12
 
@@ -40,7 +36,7 @@ npx codex-orchestrator setup --target "$PWD" --prepare-labels
40
36
  npx codex-orchestrator doctor --target "$PWD"
41
37
  ```
42
38
 
43
- `setup` infers the GitHub repository and base branch from the target checkout. If that is not possible, provide both repository fields:
39
+ `setup` derives the base branch only from `origin/HEAD`. When an agent performs setup, it must show that detected branch and obtain explicit user confirmation before running the mutating setup command. If repository inference is not possible, provide both repository fields:
44
40
 
45
41
  ```sh
46
42
  npx codex-orchestrator setup \
@@ -57,7 +53,7 @@ Now create or choose a clear GitHub Issue, include acceptance criteria when poss
57
53
  npx codex-orchestrator run --target "$PWD" --issue 123
58
54
  ```
59
55
 
60
- The command prints one JSON result. A successful direct delivery returns `review-ready` with the draft PR URL. A complex issue may instead return `spec-frozen`; a genuine product decision returns `awaiting-user` with the answer prefix to use in the issue comment.
56
+ The command prints one JSON result. Successful delivery returns `review-ready` with the draft PR URL. Decision, authority, preservation, and proof boundaries return a precise blocked result with evidence.
61
57
 
62
58
  ## Main commands
63
59
 
@@ -106,6 +102,8 @@ npx codex-orchestrator run --target "$PWD" --issue 123
106
102
 
107
103
  Repeated calls do not start an unrelated second run. The Runner reads durable state, reconciles unfinished effects, revalidates issue authorization, and continues only when ownership and process state are safe.
108
104
 
105
+ Before a new run is claimed, the Runner fetches only the configured remote base branch, pins its exact commit, and creates the issue worktree from that immutable SHA. A temporary fetch failure remains unclaimed and safely retryable; existing runs keep their already-persisted base SHA.
106
+
109
107
  ### `daemon`
110
108
 
111
109
  Poll for open issues carrying `agent:auto` and process them serially:
@@ -128,16 +126,17 @@ The daemon uses the same lifecycle as `run`; it does not have a less strict exec
128
126
 
129
127
  ### Continue from pull-request review feedback
130
128
 
131
- After a direct-delivery run reaches `review-ready`, the daemon also polls issues
132
- with `agent:review`. A quiet PR remains effect-free. When the same marker-bound,
133
- same-repository draft PR receives a new unresolved inline thread root or a
134
- non-empty `CHANGES_REQUESTED` review from a current repository writer or admin,
135
- the Runner freezes that exact feedback batch and resumes the existing run.
136
-
137
- The repair uses the existing implementation and affected Closure flow, then
138
- reruns the run's resolved check policy and Acceptance Proof against the repaired content. It
139
- has a separate maximum of three feedback rounds and does not consume the
140
- original five implementation cycles. Publication appends one fast-forward
129
+ After a run reaches `review-ready`, the daemon also
130
+ polls issues with `agent:review`. A quiet PR remains effect-free. When the same
131
+ marker-bound, same-repository draft PR receives a new unresolved inline thread
132
+ root or a non-empty `CHANGES_REQUESTED` review from a current repository writer
133
+ or admin, the Runner freezes that exact feedback batch and resumes the existing
134
+ run through the same targeted repair lifecycle.
135
+
136
+ The frozen batch enters the same implementation → affected checks → proof →
137
+ targeted independent review loop used by in-scope repair. The reviewer receives
138
+ the previous revision, repair delta, blocker IDs, direct impact cone, and affected
139
+ proof. There is no semantic round limit. Publication appends one fast-forward
141
140
  commit to the existing branch and PR; divergence blocks without reset, rebase,
142
141
  amend, or force-push recovery.
143
142
 
@@ -156,8 +155,7 @@ The default labels are:
156
155
  | --- | --- |
157
156
  | `agent:auto` | The issue is authorized for orchestration. |
158
157
  | `agent:running` | A Runner has claimed the issue. |
159
- | `agent:waiting-human` | One approved product question is waiting for an authorized answer. |
160
- | `agent:blocked` | The run stopped on an external, safety, or exhausted-budget blocker. |
158
+ | `agent:blocked` | The run stopped on an authority, external, preservation, proof, or safety boundary. |
161
159
  | `agent:review` | The branch and draft PR passed the delivery gates and are ready for human review. |
162
160
 
163
161
  Important command results:
@@ -165,8 +163,7 @@ Important command results:
165
163
  | Result | What to do |
166
164
  | --- | --- |
167
165
  | `review-ready` | Open the returned draft PR URL and review the change; later trusted unresolved feedback may resume the same run and PR. |
168
- | `spec-frozen` | Use the returned frozen specification receipt as the authority for a later implementation workflow. |
169
- | `awaiting-user` | Reply to the issue using the returned answer prefix. Re-run the command or let the daemon pick it up. |
166
+ | `repair-ready` | The semantic repair batch is durably ready. Run one more bounded CLI call or daemon tick; live smoke continues only up to its fixed limit. |
170
167
  | `not-eligible` | Check that the issue is open, has only the appropriate authorization label, and has no existing open PR for its branch. |
171
168
  | `requeued` | Another known Runner owns the repository; retry later. |
172
169
  | `blocked` | Read `kind`, `resumable`, and `evidencePath`; fix the external condition only when the evidence says it is safe to resume. |
@@ -181,18 +178,16 @@ All outcomes include structured evidence or a path to local evidence. Quiet term
181
178
  - `github.baseBranch` and `github.labels`: where completed branches target and which labels control the workflow.
182
179
  - `runner.pollIntervalSeconds`: daemon polling interval.
183
180
  - `checks`: finite fallback commands for issues without a command-only
184
- `Verification:` section. Before the issue implementation starts, the Runner
185
- requires the resolved scoped policy to pass. A red qualification check starts
186
- a separate sealed, bounded repair operation, reruns the policy, and does not
187
- consume the issue's implementation-cycle budget. Its launched process is
188
- durably recoverable across daemon restarts. Final checks must all pass;
189
- failures are never accepted by comparing output hashes.
181
+ `Verification:` section. They run before Review against the immutable candidate.
182
+ A failed check becomes a bounded finding for the next implementation cycle;
183
+ there is no qualification operation or separate retry coordinator. Final
184
+ checks must all pass; failures are never accepted by comparing output hashes.
190
185
  - `proof.artifactDir`: repository-relative location for proof artifacts inside the run worktree.
191
186
  - `proof.android`: optional Runner-owned Android recipe. It selects `avdName`, creates an ephemeral clean data directory, requires fixed `build apk` arguments, removes any old `apkPath`, snapshots a fresh no-symlink APK outside the worker-writable tree, and binds its digest to the checked change. It installs and launches that exact snapshot, repeatedly verifies emulator process identity, waits up to `navigationTimeoutMs` for each exact `tapText` accessibility label, and captures proof-bound screenshot, hierarchy, PID log, and lease artifacts. Commands are bounded, cancellable, and process-group quiescent; URI query/fragment credentials are rejected. The contained proof worker never receives `adb`, emulator, Flutter, or durable lease authority. Emulator or Android-tool startup failure is retained as an explicit unfinished-UI-proof warning and does not by itself block delivery.
192
187
  - `deny.readPaths`: paths the worker must not read or modify.
193
188
  - `deny.commands`: absolute command paths that must not be exposed to the worker.
194
189
 
195
- `runner.maxCycles`, the branch template, and containment settings are fixed policy in the current schema rather than open-ended tuning knobs. There is no configured Codex version pin or local certification step: the Runner uses the installed `codex` command and applies the fixed sandbox, environment, network, and authority restrictions to every worker invocation.
190
+ The branch template and containment settings are fixed policy in the current schema rather than open-ended tuning knobs. Semantic repair counts are not stop conditions. There is no configured Codex version pin or local certification step: the Runner uses the installed `codex` command and applies the fixed sandbox, environment, network, and authority restrictions to every worker invocation.
196
191
 
197
192
  ## Safety model in plain language
198
193
 
@@ -216,6 +211,10 @@ npm pack --dry-run --json
216
211
 
217
212
  `npm run refresh:workflow` rebuilds the package-owned workflow inventory from the explicit allowlist in `scripts/agent-auto-workflow-source.json`, validates operation bindings, and runs focused contract tests. `npm run check:workflow` is the non-writing drift check; `npm run verify:workflow` verifies the committed generated workflow without reading local skills.
218
213
 
214
+ Packaged skill eval files are static target scenarios. Workflow refresh and
215
+ package tests validate their schema, uniqueness, and exact generated bytes;
216
+ they never launch Codex or a real agent.
217
+
219
218
  `npm run smoke:live` packs the current package and mutates a configured scratch GitHub repository. Run it only when live smoke was explicitly requested. Releases are published by the GitHub release workflow after the release commit reaches `main`; do not run `npm publish` manually unless that workflow is unavailable.
220
219
 
221
- For the complete lifecycle, state machine, containment boundary, retry budgets, review flow, proof contracts, and publication recovery model, see [docs/deep-dive.md](docs/deep-dive.md). For live release scenarios, see [docs/live-smoke-checklist.md](docs/live-smoke-checklist.md).
220
+ Human maintainers can find the complete lifecycle, state machine, containment boundary, retry budgets, review flow, proof contracts, and publication recovery model in [docs/deep-dive.md](docs/deep-dive.md). That guide is not agent context. For live release scenarios, see [docs/live-smoke-checklist.md](docs/live-smoke-checklist.md).
@@ -1,15 +1,12 @@
1
- export { AcceptanceProof, ProofQuiescenceError } from './v2/acceptance-proof.js';
1
+ export { AcceptanceProof } from './v2/acceptance-proof.js';
2
2
  export type { FrozenCriterion, IssueSnapshot, ProveChangeResult, ProofAgent, ProofAgentResult } from './v2/acceptance-proof.js';
3
3
  export { createCheckedChangeCapabilities, checkedChangeFreshnessMatches, checkedChangePayloadSha256 } from './v2/checked-change.js';
4
- export type { CheckedChange, CheckedChangeFreshness, CheckedChangePayloadV1 } from './v2/checked-change.js';
5
- export { codeReviewReportOutputSchema, hashClosureRequest, hashCodeReviewReport, validateCodeReviewDefects, validateCodeReviewReport } from './v2/code-review-report.js';
4
+ export type { CheckedChange, CheckedChangeCandidateFreshness, CheckedChangeFreshness, CheckedChangeFreshnessAny, CheckedChangePayload, CheckedChangePayloadV1, CheckedChangePayloadV2, } from './v2/checked-change.js';
5
+ export type { CandidateBindingV2, CandidateBoundaryV2, CandidateMaterializationV2, CandidateGitV2, CandidateOperationFailureCode, CandidateResult, } from './v2/candidate.js';
6
+ export { codeReviewReportOutputSchema, hashCodeReviewReport, validateCodeReviewDefects, validateCodeReviewReport } from './v2/code-review-report.js';
6
7
  export type { CodeReviewDefectV1, CodeReviewReportV1, CodeReviewValidationContext } from './v2/code-review-report.js';
7
8
  export { ContainedImplementationReviewer } from './v2/implementation-reviewer.js';
8
9
  export type { ImplementationReviewerInput, ImplementationReviewerResult } from './v2/implementation-reviewer.js';
9
- export { SpecCoordinator } from './v2/spec-coordinator.js';
10
- export type { SpecCoordinatorResult, SpecDeliveryOperation, SpecDeliveryState } from './v2/spec-coordinator.js';
11
- export { createInitialSpecDelivery, createSpecRevision, freezeApprovedSpec, validateFrozenSpecReceipt, validateSpecDelivery } from './v2/spec-delivery.js';
12
- export type { FrozenSpecReceiptV1, SpecDeliveryV1, SpecReviewReportV1, SpecRevisionV1 } from './v2/spec-delivery.js';
13
10
  export { parseAgentAutoConfig } from './v2/config.js';
14
11
  export type { AgentAutoConfig } from './v2/config.js';
15
12
  export { validateImplementationReport } from './v2/implementation-report.js';
@@ -22,6 +19,4 @@ export { createV2Runtime } from './v2/runtime.js';
22
19
  export type { V2Runtime } from './v2/runtime.js';
23
20
  export { Setup } from './v2/setup.js';
24
21
  export type { SetupIntent, SetupOutcome } from './v2/setup.js';
25
- export { createWaitingQuestion, normalizeAnswer, renderWaitingQuestionBody } from './v2/waiting-human.js';
26
- export type { TrustedAnswerReceiptV1, WaitingHumanExecutionV1, WaitingQuestionReceiptV1, WaitingQuestionV1 } from './v2/waiting-human.js';
27
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAChI,OAAO,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpI,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC5G,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACzK,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACtH,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAClF,YAAY,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AACjH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAChH,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC3J,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,YAAY,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC1G,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAChI,OAAO,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpI,YAAY,EACV,aAAa,EACb,+BAA+B,EAC/B,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,6BAA6B,EAC7B,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACrJ,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACtH,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAClF,YAAY,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AACjH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,YAAY,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,14 +1,11 @@
1
- export { AcceptanceProof, ProofQuiescenceError } from './v2/acceptance-proof.js';
1
+ export { AcceptanceProof } from './v2/acceptance-proof.js';
2
2
  export { createCheckedChangeCapabilities, checkedChangeFreshnessMatches, checkedChangePayloadSha256 } from './v2/checked-change.js';
3
- export { codeReviewReportOutputSchema, hashClosureRequest, hashCodeReviewReport, validateCodeReviewDefects, validateCodeReviewReport } from './v2/code-review-report.js';
3
+ export { codeReviewReportOutputSchema, hashCodeReviewReport, validateCodeReviewDefects, validateCodeReviewReport } from './v2/code-review-report.js';
4
4
  export { ContainedImplementationReviewer } from './v2/implementation-reviewer.js';
5
- export { SpecCoordinator } from './v2/spec-coordinator.js';
6
- export { createInitialSpecDelivery, createSpecRevision, freezeApprovedSpec, validateFrozenSpecReceipt, validateSpecDelivery } from './v2/spec-delivery.js';
7
5
  export { parseAgentAutoConfig } from './v2/config.js';
8
6
  export { validateImplementationReport } from './v2/implementation-report.js';
9
7
  export { validateProofReport } from './v2/proof-report.js';
10
8
  export { RunIssue } from './v2/run-issue.js';
11
9
  export { createV2Runtime } from './v2/runtime.js';
12
10
  export { Setup } from './v2/setup.js';
13
- export { createWaitingQuestion, normalizeAnswer, renderWaitingQuestionBody } from './v2/waiting-human.js';
14
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,OAAO,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEpI,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEzK,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAElF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE3J,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAkBpI,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAErJ,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC"}
@@ -1,6 +1,6 @@
1
- import { type CheckedChange, type CheckedChangeFreshness, type CheckedChangePayloadV1, type CheckedChangeReadCapability } from './checked-change.js';
1
+ import { type CheckedChange, type CheckedChangeFreshnessAny, type CheckedChangePayload, type CheckedChangePayloadV1, type CheckedChangeReadCapability } from './checked-change.js';
2
+ import type { CandidateMaterializationV2 } from './candidate.js';
2
3
  import { type ProofReceipt } from './proof-report.js';
3
- import type { ProofRecordWriter } from './proof-store.js';
4
4
  import type { AndroidLeaseVerifier, IosLeaseVerifier } from './mobile-lease.js';
5
5
  import type { WorkflowGenerationReceipt } from './workflow-assets.js';
6
6
  export interface IssueSnapshot {
@@ -18,14 +18,17 @@ export interface FrozenCriterion {
18
18
  text: string;
19
19
  }
20
20
  export interface ExternalBlocker {
21
- kind: 'credential' | 'tool' | 'service' | 'product-decision';
21
+ kind: 'credential' | 'tool' | 'service' | 'decision-delta' | 'out-of-scope' | 'authority-boundary';
22
22
  summary: string;
23
23
  attempted: string[];
24
+ resumable: boolean;
24
25
  }
25
26
  export type ProofAgentResult = {
26
27
  kind: 'report';
27
28
  report: unknown;
28
29
  proofPhaseChangedFiles: string[];
30
+ } | {
31
+ kind: 'safe-halt';
29
32
  } | {
30
33
  kind: 'transport-failed';
31
34
  resumable: boolean;
@@ -34,15 +37,23 @@ export type ProofAgentResult = {
34
37
  } | {
35
38
  kind: 'internal-error';
36
39
  };
37
- export interface ProofAgent {
40
+ export interface ProofAgent<TPayload extends CheckedChangePayload = CheckedChangePayloadV1> {
38
41
  run(input: {
42
+ attemptId: string;
43
+ recoverOnly?: boolean;
39
44
  proofId: string;
40
45
  runId: string;
41
46
  issue: IssueSnapshot;
42
47
  frozenCriteria: FrozenCriterion[];
43
48
  checkedChangeSha256: string;
44
49
  changedFiles: string[];
45
- checks: CheckedChangePayloadV1['checks'];
50
+ checks: TPayload['checks'];
51
+ worktreePath?: string;
52
+ onLaunched?: (input: {
53
+ pid: number;
54
+ processGroupId: number;
55
+ launchedAt: string;
56
+ }) => Promise<void>;
46
57
  runnerPreparedArtifactPaths: string[];
47
58
  runnerPreparedArtifactSha256: Record<string, string>;
48
59
  runnerPreparationWarnings: string[];
@@ -52,17 +63,15 @@ export interface ProofAgent {
52
63
  signal: AbortSignal;
53
64
  }): Promise<ProofAgentResult>;
54
65
  }
55
- export declare class ProofQuiescenceError extends Error {
56
- readonly pid: number;
57
- readonly processGroupId: number;
58
- readonly waitForAbsence: () => Promise<void>;
59
- constructor(pid: number, processGroupId: number, waitForAbsence: () => Promise<void>);
66
+ export declare class CandidateProofInspectionError extends Error {
67
+ readonly code: string;
68
+ constructor(code: string);
60
69
  }
61
70
  export declare class ProofLaunchAuthorizationError extends Error {
62
71
  readonly outcome: unknown;
63
72
  constructor(outcome: unknown);
64
73
  }
65
- export type ProveChangeResult = {
74
+ export type SettledProveChangeResult = {
66
75
  status: 'passed';
67
76
  receipt: ProofReceipt;
68
77
  } | {
@@ -75,7 +84,7 @@ export type ProveChangeResult = {
75
84
  receipt: ProofReceipt;
76
85
  } | {
77
86
  status: 'transport-failed';
78
- resumable: boolean;
87
+ resumable: false;
79
88
  receipt: ProofReceipt;
80
89
  } | {
81
90
  status: 'cancelled';
@@ -84,13 +93,25 @@ export type ProveChangeResult = {
84
93
  status: 'internal-error';
85
94
  receipt: ProofReceipt;
86
95
  };
87
- export declare class AcceptanceProof {
96
+ export type ProveChangeResult = SettledProveChangeResult | {
97
+ status: 'safe-halt';
98
+ } | {
99
+ status: 'transport-failed';
100
+ resumable: true;
101
+ } | {
102
+ status: 'report-repair';
103
+ reportRepairCount: number;
104
+ findings: string[];
105
+ } | {
106
+ status: 'cleanup-pending';
107
+ outcome: SettledProveChangeResult;
108
+ };
109
+ export declare class AcceptanceProof<TPayload extends CheckedChangePayload = CheckedChangePayloadV1> {
88
110
  private readonly dependencies;
89
111
  constructor(dependencies: {
90
112
  checkedChangeReader: CheckedChangeReadCapability;
91
- proofRecords: ProofRecordWriter;
92
- proofAgent: ProofAgent;
93
- inspectFreshness: (payload: CheckedChangePayloadV1) => Promise<CheckedChangeFreshness>;
113
+ proofAgent: ProofAgent<TPayload>;
114
+ inspectFreshness: (payload: TPayload, materialization?: CandidateMaterializationV2) => Promise<CheckedChangeFreshnessAny>;
94
115
  readArtifact: (relativePath: string) => Promise<Buffer>;
95
116
  inspectArtifact?: (relativePath: string) => Promise<{
96
117
  modifiedAt: string;
@@ -98,29 +119,36 @@ export declare class AcceptanceProof {
98
119
  androidLease?: AndroidLeaseVerifier;
99
120
  iosLease?: IosLeaseVerifier;
100
121
  proofArtifactDir: string;
101
- createAttemptId: () => string;
102
- now: () => string;
103
122
  signal?: AbortSignal;
104
123
  });
124
+ cleanupMobileLeases(proofId: string): Promise<void>;
105
125
  proveChange(input: {
106
126
  proofId: string;
127
+ attemptId: string;
128
+ recoverOnly: boolean;
129
+ proofStartedAt: string;
130
+ transportRetryCount: number;
131
+ reportRepairCount: number;
132
+ reportRepairFindings: string[];
133
+ passedReceipt?: ProofReceipt;
107
134
  issue: IssueSnapshot;
108
135
  frozenCriteria: FrozenCriterion[];
109
- checkedChange: CheckedChange;
136
+ checkedChange: CheckedChange<TPayload>;
137
+ materialization?: CandidateMaterializationV2;
110
138
  workflowGeneration?: WorkflowGenerationReceipt;
111
139
  beforeAgentLaunch?: () => Promise<void>;
140
+ onLaunched?: (input: {
141
+ pid: number;
142
+ processGroupId: number;
143
+ launchedAt: string;
144
+ }) => Promise<void>;
112
145
  runnerPreparedArtifactPaths?: string[];
113
146
  runnerPreparedArtifactSha256?: Record<string, string>;
114
147
  runnerPreparationWarnings?: string[];
115
148
  }): Promise<ProveChangeResult>;
116
149
  private execute;
117
150
  private validateArtifactsAndDiff;
118
- private releaseMobileLeasesIfSettled;
119
- private releaseMobileLeases;
120
- private startProofRetry;
121
151
  private isFresh;
122
- private persistOperationalTerminal;
123
- private persistTerminal;
124
- private timestamp;
152
+ private settle;
125
153
  }
126
154
  //# sourceMappingURL=acceptance-proof.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"acceptance-proof.d.ts","sourceRoot":"","sources":["../../../src/v2/acceptance-proof.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acceptance-proof.d.ts","sourceRoot":"","sources":["../../../src/v2/acceptance-proof.ts"],"names":[],"mappings":"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"}