codex-orchestrator 2.0.2 → 2.0.4

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 (221) hide show
  1. package/CHANGELOG.md +44 -426
  2. package/README.md +135 -34
  3. package/dist/src/index.d.ts +11 -1
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +5 -0
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/v2/acceptance-proof.d.ts +3 -0
  8. package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
  9. package/dist/src/v2/acceptance-proof.js +2 -8
  10. package/dist/src/v2/acceptance-proof.js.map +1 -1
  11. package/dist/src/v2/adapters/gh-issue-adapter.d.ts +5 -3
  12. package/dist/src/v2/adapters/gh-issue-adapter.d.ts.map +1 -1
  13. package/dist/src/v2/adapters/gh-issue-adapter.js +67 -12
  14. package/dist/src/v2/adapters/gh-issue-adapter.js.map +1 -1
  15. package/dist/src/v2/adapters/issues.d.ts +16 -2
  16. package/dist/src/v2/adapters/issues.d.ts.map +1 -1
  17. package/dist/src/v2/adapters/issues.js +15 -5
  18. package/dist/src/v2/adapters/issues.js.map +1 -1
  19. package/dist/src/v2/adapters/mission-coordinator-lock.d.ts +1 -0
  20. package/dist/src/v2/adapters/mission-coordinator-lock.d.ts.map +1 -1
  21. package/dist/src/v2/adapters/mission-coordinator-lock.js +5 -1
  22. package/dist/src/v2/adapters/mission-coordinator-lock.js.map +1 -1
  23. package/dist/src/v2/cli-contract.d.ts +3 -3
  24. package/dist/src/v2/cli-contract.d.ts.map +1 -1
  25. package/dist/src/v2/cli-contract.js +9 -1
  26. package/dist/src/v2/cli-contract.js.map +1 -1
  27. package/dist/src/v2/cli.d.ts +24 -0
  28. package/dist/src/v2/cli.d.ts.map +1 -0
  29. package/dist/src/v2/{candidate-cli.js → cli.js} +30 -26
  30. package/dist/src/v2/cli.js.map +1 -0
  31. package/dist/src/v2/code-review-report.d.ts +66 -0
  32. package/dist/src/v2/code-review-report.d.ts.map +1 -0
  33. package/dist/src/v2/code-review-report.js +259 -0
  34. package/dist/src/v2/code-review-report.js.map +1 -0
  35. package/dist/src/v2/codex-process.d.ts +8 -1
  36. package/dist/src/v2/codex-process.d.ts.map +1 -1
  37. package/dist/src/v2/codex-process.js +22 -0
  38. package/dist/src/v2/codex-process.js.map +1 -1
  39. package/dist/src/v2/config.d.ts +4 -3
  40. package/dist/src/v2/config.d.ts.map +1 -1
  41. package/dist/src/v2/config.js +8 -3
  42. package/dist/src/v2/config.js.map +1 -1
  43. package/dist/src/v2/contained-report-operation.d.ts +100 -0
  44. package/dist/src/v2/contained-report-operation.d.ts.map +1 -0
  45. package/dist/src/v2/contained-report-operation.js +200 -0
  46. package/dist/src/v2/contained-report-operation.js.map +1 -0
  47. package/dist/src/v2/containment.d.ts +10 -0
  48. package/dist/src/v2/containment.d.ts.map +1 -1
  49. package/dist/src/v2/containment.js +49 -1
  50. package/dist/src/v2/containment.js.map +1 -1
  51. package/dist/src/v2/direct-delivery.d.ts +96 -0
  52. package/dist/src/v2/direct-delivery.d.ts.map +1 -0
  53. package/dist/src/v2/direct-delivery.js +482 -0
  54. package/dist/src/v2/direct-delivery.js.map +1 -0
  55. package/dist/src/v2/immutable-workflow-publisher.d.ts +40 -0
  56. package/dist/src/v2/immutable-workflow-publisher.d.ts.map +1 -0
  57. package/dist/src/v2/immutable-workflow-publisher.js +218 -0
  58. package/dist/src/v2/immutable-workflow-publisher.js.map +1 -0
  59. package/dist/src/v2/implementation-reviewer.d.ts +81 -0
  60. package/dist/src/v2/implementation-reviewer.d.ts.map +1 -0
  61. package/dist/src/v2/implementation-reviewer.js +157 -0
  62. package/dist/src/v2/implementation-reviewer.js.map +1 -0
  63. package/dist/src/v2/owner-control-lock.d.ts +41 -0
  64. package/dist/src/v2/owner-control-lock.d.ts.map +1 -0
  65. package/dist/src/v2/owner-control-lock.js +174 -0
  66. package/dist/src/v2/owner-control-lock.js.map +1 -0
  67. package/dist/src/v2/proof-report.d.ts.map +1 -1
  68. package/dist/src/v2/proof-report.js +55 -29
  69. package/dist/src/v2/proof-report.js.map +1 -1
  70. package/dist/src/v2/route-continuations.d.ts +32 -0
  71. package/dist/src/v2/route-continuations.d.ts.map +1 -0
  72. package/dist/src/v2/route-continuations.js +2 -0
  73. package/dist/src/v2/route-continuations.js.map +1 -0
  74. package/dist/src/v2/route-coordinator.d.ts +77 -0
  75. package/dist/src/v2/route-coordinator.d.ts.map +1 -0
  76. package/dist/src/v2/route-coordinator.js +370 -0
  77. package/dist/src/v2/route-coordinator.js.map +1 -0
  78. package/dist/src/v2/route-decision.d.ts +129 -0
  79. package/dist/src/v2/route-decision.d.ts.map +1 -0
  80. package/dist/src/v2/route-decision.js +400 -0
  81. package/dist/src/v2/route-decision.js.map +1 -0
  82. package/dist/src/v2/run-issue.d.ts +64 -6
  83. package/dist/src/v2/run-issue.d.ts.map +1 -1
  84. package/dist/src/v2/run-issue.js +962 -92
  85. package/dist/src/v2/run-issue.js.map +1 -1
  86. package/dist/src/v2/run-store.d.ts +25 -1
  87. package/dist/src/v2/run-store.d.ts.map +1 -1
  88. package/dist/src/v2/run-store.js +129 -4
  89. package/dist/src/v2/run-store.js.map +1 -1
  90. package/dist/src/v2/runtime-assets.d.ts +15 -13
  91. package/dist/src/v2/runtime-assets.d.ts.map +1 -1
  92. package/dist/src/v2/runtime-assets.js +263 -416
  93. package/dist/src/v2/runtime-assets.js.map +1 -1
  94. package/dist/src/v2/runtime.d.ts +17 -9
  95. package/dist/src/v2/runtime.d.ts.map +1 -1
  96. package/dist/src/v2/runtime.js +564 -64
  97. package/dist/src/v2/runtime.js.map +1 -1
  98. package/dist/src/v2/setup-cli.d.ts.map +1 -1
  99. package/dist/src/v2/setup-cli.js +4 -10
  100. package/dist/src/v2/setup-cli.js.map +1 -1
  101. package/dist/src/v2/setup-runtime.d.ts.map +1 -1
  102. package/dist/src/v2/setup-runtime.js +19 -131
  103. package/dist/src/v2/setup-runtime.js.map +1 -1
  104. package/dist/src/v2/setup-store.d.ts +0 -5
  105. package/dist/src/v2/setup-store.d.ts.map +1 -1
  106. package/dist/src/v2/setup-store.js +3 -106
  107. package/dist/src/v2/setup-store.js.map +1 -1
  108. package/dist/src/v2/setup.d.ts +6 -43
  109. package/dist/src/v2/setup.d.ts.map +1 -1
  110. package/dist/src/v2/setup.js +13 -192
  111. package/dist/src/v2/setup.js.map +1 -1
  112. package/dist/src/v2/spec-coordinator.d.ts +85 -0
  113. package/dist/src/v2/spec-coordinator.d.ts.map +1 -0
  114. package/dist/src/v2/spec-coordinator.js +88 -0
  115. package/dist/src/v2/spec-coordinator.js.map +1 -0
  116. package/dist/src/v2/spec-delivery.d.ts +143 -0
  117. package/dist/src/v2/spec-delivery.d.ts.map +1 -0
  118. package/dist/src/v2/spec-delivery.js +401 -0
  119. package/dist/src/v2/spec-delivery.js.map +1 -0
  120. package/dist/src/v2/triage-route.d.ts +68 -0
  121. package/dist/src/v2/triage-route.d.ts.map +1 -0
  122. package/dist/src/v2/triage-route.js +223 -0
  123. package/dist/src/v2/triage-route.js.map +1 -0
  124. package/dist/src/v2/waiting-human-coordinator.d.ts +49 -0
  125. package/dist/src/v2/waiting-human-coordinator.d.ts.map +1 -0
  126. package/dist/src/v2/waiting-human-coordinator.js +509 -0
  127. package/dist/src/v2/waiting-human-coordinator.js.map +1 -0
  128. package/dist/src/v2/waiting-human.d.ts +143 -0
  129. package/dist/src/v2/waiting-human.d.ts.map +1 -0
  130. package/dist/src/v2/waiting-human.js +408 -0
  131. package/dist/src/v2/waiting-human.js.map +1 -0
  132. package/dist/src/v2/workflow-assets.d.ts +98 -0
  133. package/dist/src/v2/workflow-assets.d.ts.map +1 -0
  134. package/dist/src/v2/workflow-assets.js +646 -0
  135. package/dist/src/v2/workflow-assets.js.map +1 -0
  136. package/docs/deep-dive.md +275 -52
  137. package/internal-workflow/docs/agents/bug-workflow-routing.md +24 -0
  138. package/internal-workflow/docs/agents/bugfix-quality-gate.md +11 -0
  139. package/internal-workflow/docs/agents/coding-skill-routing.md +123 -0
  140. package/internal-workflow/docs/agents/confidence-rubric.md +65 -0
  141. package/internal-workflow/docs/agents/contract-test-ledger.md +60 -0
  142. package/internal-workflow/docs/agents/review-gates.md +42 -0
  143. package/internal-workflow/docs/agents/review-protocol.md +98 -0
  144. package/internal-workflow/docs/agents/tool-usage.md +88 -0
  145. package/internal-workflow/evals/coding-skill-evals.json +66 -0
  146. package/internal-workflow/manifest.json +1 -0
  147. package/internal-workflow/operations/acceptance-proof/SKILL.md +9 -0
  148. package/internal-workflow/operations/ambiguity-review/SKILL.md +5 -0
  149. package/internal-workflow/operations/code-review/SKILL.md +23 -0
  150. package/internal-workflow/operations/implementation/SKILL.md +24 -0
  151. package/internal-workflow/operations/spec-author/SKILL.md +12 -0
  152. package/internal-workflow/operations/spec-review/SKILL.md +12 -0
  153. package/internal-workflow/operations/triage/SKILL.md +12 -0
  154. package/internal-workflow/profiles/analyst_deep.toml +9 -0
  155. package/internal-workflow/profiles/implementer_standard.toml +9 -0
  156. package/internal-workflow/profiles/proof_agent.toml +8 -0
  157. package/internal-workflow/profiles/reviewer_deep.toml +9 -0
  158. package/internal-workflow/profiles/reviewer_standard.toml +9 -0
  159. package/internal-workflow/schemas/ambiguity-review-v1.json +1 -0
  160. package/internal-workflow/schemas/code-review-v1.json +1 -0
  161. package/internal-workflow/schemas/implementation-report-v1.json +1 -0
  162. package/internal-workflow/schemas/proof-report-v1.json +1 -0
  163. package/internal-workflow/schemas/spec-author-v1.json +1 -0
  164. package/internal-workflow/schemas/spec-review-v1.json +30 -0
  165. package/internal-workflow/schemas/triage-route-v1.json +1 -0
  166. package/internal-workflow/skills/acceptance-proof/agents/openai.yaml +6 -0
  167. package/{internal-skills → internal-workflow/skills}/agent-auto/SKILL.md +6 -1
  168. package/internal-workflow/skills/agent-auto/agents/openai.yaml +6 -0
  169. package/internal-workflow/skills/code-debugger/SKILL.md +122 -0
  170. package/internal-workflow/skills/code-debugger/agents/openai.yaml +7 -0
  171. package/internal-workflow/skills/code-review/SKILL.md +279 -0
  172. package/internal-workflow/skills/code-review/agents/openai.yaml +4 -0
  173. package/internal-workflow/skills/code-review/references/bug-classes.md +56 -0
  174. package/internal-workflow/skills/code-review/references/cleanup-lens.md +52 -0
  175. package/internal-workflow/skills/code-review/references/framework-lenses.md +34 -0
  176. package/internal-workflow/skills/code-review/references/targeted-recipes.md +49 -0
  177. package/internal-workflow/skills/diagnosing-bugs/SKILL.md +138 -0
  178. package/internal-workflow/skills/diagnosing-bugs/agents/openai.yaml +6 -0
  179. package/internal-workflow/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
  180. package/internal-workflow/skills/implementation-spec-maker/SKILL.md +102 -0
  181. package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +6 -0
  182. package/internal-workflow/skills/implementation-spec-maker/references/source-modes.md +31 -0
  183. package/internal-workflow/skills/implementation-spec-maker/references/spec-template.md +146 -0
  184. package/internal-workflow/skills/implementation-spec-review/SKILL.md +115 -0
  185. package/internal-workflow/skills/implementation-spec-review/agents/openai.yaml +6 -0
  186. package/internal-workflow/skills/implementation-spec-review/evals/evals.json +24 -0
  187. package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +93 -0
  188. package/internal-workflow/skills/small-task-implementer/SKILL.md +104 -0
  189. package/internal-workflow/skills/small-task-implementer/agents/openai.yaml +6 -0
  190. package/internal-workflow/skills/spec-implementer/SKILL.md +126 -0
  191. package/internal-workflow/skills/spec-implementer/agents/openai.yaml +6 -0
  192. package/internal-workflow/skills/spec-implementer/evals/evals.json +30 -0
  193. package/internal-workflow/skills/spec-implementer/references/review-loop.md +94 -0
  194. package/internal-workflow/skills/tdd/SKILL.md +72 -0
  195. package/internal-workflow/skills/tdd/agents/openai.yaml +6 -0
  196. package/internal-workflow/skills/tdd/interface-design.md +31 -0
  197. package/internal-workflow/skills/tdd/mocking.md +59 -0
  198. package/internal-workflow/skills/tdd/refactoring.md +10 -0
  199. package/internal-workflow/skills/tdd/tests.md +77 -0
  200. package/internal-workflow/skills/triage/AGENT-BRIEF.md +192 -0
  201. package/internal-workflow/skills/triage/OUT-OF-SCOPE.md +101 -0
  202. package/internal-workflow/skills/triage/SKILL.md +134 -0
  203. package/internal-workflow/skills/triage/agents/openai.yaml +6 -0
  204. package/package.json +14 -8
  205. package/dist/src/v2/adapters/target-activity-fence.d.ts +0 -23
  206. package/dist/src/v2/adapters/target-activity-fence.d.ts.map +0 -1
  207. package/dist/src/v2/adapters/target-activity-fence.js +0 -249
  208. package/dist/src/v2/adapters/target-activity-fence.js.map +0 -1
  209. package/dist/src/v2/candidate-cli.d.ts +0 -22
  210. package/dist/src/v2/candidate-cli.d.ts.map +0 -1
  211. package/dist/src/v2/candidate-cli.js.map +0 -1
  212. package/dist/src/v2/legacy-cutover.d.ts +0 -52
  213. package/dist/src/v2/legacy-cutover.d.ts.map +0 -1
  214. package/dist/src/v2/legacy-cutover.js +0 -87
  215. package/dist/src/v2/legacy-cutover.js.map +0 -1
  216. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/SKILL.md +0 -0
  217. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/android.md +0 -0
  218. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/browser.md +0 -0
  219. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/ios.md +0 -0
  220. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/tools/android-lease.mjs +0 -0
  221. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/tools/ios-lease.mjs +0 -0
@@ -0,0 +1,400 @@
1
+ import { canonicalJson, sha256 } from './containment.js';
2
+ import { validateTriageRoute } from './triage-route.js';
3
+ const SHA256_PATTERN = /^[0-9a-f]{64}$/;
4
+ const MAX_STRING_LENGTH = 16 * 1024;
5
+ const MAX_ARRAY_LENGTH = 256;
6
+ const TRIAGE_ARTIFACT_DOMAIN = 'codex-orchestrator-triage-artifact-v1';
7
+ const AMBIGUITY_REVIEW_DOMAIN = 'codex-orchestrator-ambiguity-review-v1';
8
+ const ROUTE_DECISION_DOMAIN = 'codex-orchestrator-route-decision-v1';
9
+ export function hashTriageArtifact(value) {
10
+ return hashDomain(TRIAGE_ARTIFACT_DOMAIN, validateTriageRoute(value));
11
+ }
12
+ export function hashAmbiguityReviewArtifact(value) {
13
+ return hashDomain(AMBIGUITY_REVIEW_DOMAIN, validateAmbiguityReviewArtifact(value));
14
+ }
15
+ export function hashRouteDecision(value) {
16
+ const receipt = validateRouteReceiptCore(value, undefined, false);
17
+ return hashDomain(ROUTE_DECISION_DOMAIN, { ...receipt, decisionSha256: '' });
18
+ }
19
+ export function validateAmbiguityReviewArtifact(value) {
20
+ assertExactObject(value, [
21
+ 'version', 'candidateSha256', 'verdict', 'evidenceReviewed', 'findings', 'recommendation',
22
+ ], 'ambiguity review artifact');
23
+ if (value.version !== 1)
24
+ throw new Error('ambiguity review artifact.version must be 1');
25
+ assertSha256(value.candidateSha256, 'ambiguity review artifact.candidateSha256');
26
+ if (!['approved', 'rejected', 'blocked'].includes(value.verdict)) {
27
+ throw new Error('ambiguity review artifact.verdict is invalid');
28
+ }
29
+ assertStringArray(value.evidenceReviewed, 'ambiguity review artifact.evidenceReviewed', 0);
30
+ assertUnique(value.evidenceReviewed, 'ambiguity review artifact.evidenceReviewed');
31
+ assertStringArray(value.findings, 'ambiguity review artifact.findings', 0);
32
+ assertUnique(value.findings, 'ambiguity review artifact.findings');
33
+ assertString(value.recommendation, 'ambiguity review artifact.recommendation');
34
+ return value;
35
+ }
36
+ export function validateRouteArtifactRef(value, expectedGenerationHash) {
37
+ assertExactObject(value, ['operation', 'attemptId', 'artifactSha256', 'generationHash'], 'route triage ref');
38
+ if (value.operation !== 'triage')
39
+ throw new Error('route triage ref.operation must be triage');
40
+ assertString(value.attemptId, 'route triage ref.attemptId');
41
+ assertSha256(value.artifactSha256, 'route triage ref.artifactSha256');
42
+ assertGeneration(value.generationHash, expectedGenerationHash, 'route triage ref.generationHash');
43
+ return value;
44
+ }
45
+ export function validateAmbiguityReviewRef(value, expectedGenerationHash) {
46
+ assertExactObject(value, [
47
+ 'operation', 'attemptId', 'candidateSha256', 'artifactSha256', 'verdict', 'generationHash',
48
+ ], 'ambiguity review ref');
49
+ if (value.operation !== 'ambiguity-review')
50
+ throw new Error('ambiguity review ref.operation must be ambiguity-review');
51
+ assertString(value.attemptId, 'ambiguity review ref.attemptId');
52
+ assertSha256(value.candidateSha256, 'ambiguity review ref.candidateSha256');
53
+ assertSha256(value.artifactSha256, 'ambiguity review ref.artifactSha256');
54
+ if (value.verdict !== 'approved' && value.verdict !== 'rejected')
55
+ throw new Error('ambiguity review ref.verdict is invalid');
56
+ assertGeneration(value.generationHash, expectedGenerationHash, 'ambiguity review ref.generationHash');
57
+ return value;
58
+ }
59
+ export function validateRouteReceipt(value, expectedGenerationHash) {
60
+ return validateRouteReceiptCore(value, expectedGenerationHash, true);
61
+ }
62
+ function validateRouteReceiptCore(value, expectedGenerationHash, verifyDecisionHash) {
63
+ assertExactObject(value, [
64
+ 'version', 'route', 'triage', 'review', 'artifact', 'decisionSha256', 'decidedAt', 'assumptions',
65
+ ], 'route receipt');
66
+ if (value.version !== 1)
67
+ throw new Error('route receipt.version must be 1');
68
+ if (!['direct', 'spec-required', 'awaiting-user'].includes(value.route)) {
69
+ throw new Error('route receipt.route is invalid');
70
+ }
71
+ const triage = validateRouteArtifactRef(value.triage, expectedGenerationHash);
72
+ const artifact = validateTriageRoute(value.artifact);
73
+ if (artifact.status === 'blocked' || artifact.status !== value.route) {
74
+ throw new Error('route receipt.route does not match artifact status');
75
+ }
76
+ const artifactSha256 = hashTriageArtifact(artifact);
77
+ if (triage.artifactSha256 !== artifactSha256)
78
+ throw new Error('route receipt artifact hash mismatch');
79
+ let review;
80
+ if (value.review === null) {
81
+ review = null;
82
+ }
83
+ else {
84
+ review = validateAmbiguityReviewRef(value.review, expectedGenerationHash ?? triage.generationHash);
85
+ if (review.generationHash !== triage.generationHash)
86
+ throw new Error('route receipt review generation mismatch');
87
+ }
88
+ if (value.route === 'awaiting-user') {
89
+ if (review === null || review.verdict !== 'approved')
90
+ throw new Error('awaiting-user route requires an approved review');
91
+ if (review.candidateSha256 !== triage.artifactSha256)
92
+ throw new Error('awaiting-user review candidate hash mismatch');
93
+ if (review.attemptId === triage.attemptId)
94
+ throw new Error('triage and ambiguity review attempt IDs must be distinct');
95
+ }
96
+ else if (review !== null) {
97
+ throw new Error(`${String(value.route)} route requires review null`);
98
+ }
99
+ if (verifyDecisionHash || value.decisionSha256 !== '') {
100
+ assertSha256(value.decisionSha256, 'route receipt.decisionSha256');
101
+ }
102
+ assertTimestamp(value.decidedAt, 'route receipt.decidedAt');
103
+ assertStringArray(value.assumptions, 'route receipt.assumptions', 0);
104
+ assertUnique(value.assumptions, 'route receipt.assumptions');
105
+ if (canonicalJson(value.assumptions) !== canonicalJson(artifact.assumptions)) {
106
+ throw new Error('route receipt assumptions must equal artifact assumptions');
107
+ }
108
+ const receipt = value;
109
+ const expectedDecisionSha256 = hashDomain(ROUTE_DECISION_DOMAIN, { ...receipt, decisionSha256: '' });
110
+ if (verifyDecisionHash && value.decisionSha256 !== expectedDecisionSha256) {
111
+ throw new Error('route receipt decision hash mismatch');
112
+ }
113
+ return receipt;
114
+ }
115
+ export function validateRouteExecution(value, expectedGenerationHash) {
116
+ assertRecord(value, 'route execution');
117
+ validateBudgets(value);
118
+ const budgetKeys = [
119
+ 'version', 'triageRepairs', 'triageTransportRetries', 'ambiguityTransportRetries', 'candidateReviews',
120
+ ];
121
+ if (value.phase === 'triage-ready') {
122
+ assertExactObject(value, [...budgetKeys, 'phase', 'previousAttemptId'], 'route execution');
123
+ if (value.previousAttemptId !== null)
124
+ assertString(value.previousAttemptId, 'route execution.previousAttemptId');
125
+ }
126
+ else if (value.phase === 'triage-in-flight') {
127
+ assertExactObject(value, [...budgetKeys, 'phase', 'attemptId', 'startedAt'], 'route execution');
128
+ assertAttemptAndTimestamp(value);
129
+ }
130
+ else if (value.phase === 'candidate-ready') {
131
+ assertExactObject(value, [...budgetKeys, 'phase', 'candidate', 'triage'], 'route execution');
132
+ validateWaitingCandidate(value.candidate, value.triage, expectedGenerationHash);
133
+ if (value.candidateReviews !== 0)
134
+ throw new Error('candidate-ready candidateReviews must be 0');
135
+ }
136
+ else if (value.phase === 'review-in-flight') {
137
+ assertExactObject(value, [...budgetKeys, 'phase', 'attemptId', 'startedAt', 'candidate', 'triage'], 'route execution');
138
+ assertAttemptAndTimestamp(value);
139
+ const triage = validateWaitingCandidate(value.candidate, value.triage, expectedGenerationHash);
140
+ if (value.attemptId === triage.attemptId)
141
+ throw new Error('review attempt ID must be distinct from triage attempt ID');
142
+ if (value.candidateReviews !== 0)
143
+ throw new Error('review-in-flight candidateReviews must be 0');
144
+ }
145
+ else if (value.phase === 'malformed-repair-ready') {
146
+ assertExactObject(value, [...budgetKeys, 'phase', 'findings'], 'route execution');
147
+ validateFindings(value.findings, 'route execution.findings');
148
+ assertRepairConsumed(value);
149
+ }
150
+ else if (value.phase === 'candidate-repair-ready') {
151
+ assertExactObject(value, [...budgetKeys, 'phase', 'candidate', 'triage', 'review', 'findings'], 'route execution');
152
+ validateRejectedCandidate(value.candidate, value.triage, value.review, value.findings, expectedGenerationHash);
153
+ assertRejectedRepairBudgets(value);
154
+ }
155
+ else if (value.phase === 'repair-in-flight') {
156
+ assertExactObject(value, [...budgetKeys, 'phase', 'attemptId', 'startedAt', 'repairInput'], 'route execution');
157
+ assertAttemptAndTimestamp(value);
158
+ validateRepairInput(value.repairInput, expectedGenerationHash);
159
+ assertRepairConsumed(value);
160
+ if (value.repairInput.kind === 'rejected-candidate') {
161
+ if (value.candidateReviews !== 1)
162
+ throw new Error('rejected-candidate repair requires candidateReviews 1');
163
+ }
164
+ else if (value.candidateReviews !== 0) {
165
+ throw new Error('malformed repair requires candidateReviews 0');
166
+ }
167
+ }
168
+ else if (value.phase === 'route-complete') {
169
+ assertExactObject(value, [...budgetKeys, 'phase', 'triage', 'review'], 'route execution');
170
+ const triage = validateRouteArtifactRef(value.triage, expectedGenerationHash);
171
+ if (value.review !== null) {
172
+ const review = validateAmbiguityReviewRef(value.review, expectedGenerationHash ?? triage.generationHash);
173
+ validateReviewBinding(triage, review);
174
+ if (review.verdict !== 'approved')
175
+ throw new Error('route-complete review must be approved');
176
+ if (value.candidateReviews !== 1)
177
+ throw new Error('reviewed route-complete requires candidateReviews 1');
178
+ }
179
+ }
180
+ else {
181
+ throw new Error('route execution.phase is invalid');
182
+ }
183
+ return value;
184
+ }
185
+ export function validateRouteStateInvariant(input) {
186
+ assertSha256(input.generationHash, 'route state.generationHash');
187
+ if (!ROUTE_LIFECYCLES.includes(input.lifecycle))
188
+ throw new Error('route state lifecycle is invalid');
189
+ const hasExecution = input.routeExecution !== undefined;
190
+ const hasReceipt = input.routeReceipt !== undefined;
191
+ if (input.lifecycle === 'claimed') {
192
+ if (hasExecution || hasReceipt)
193
+ throw new Error('claimed route state requires routeExecution and routeReceipt absent');
194
+ return;
195
+ }
196
+ if (input.lifecycle === 'triaging') {
197
+ if (!hasExecution || hasReceipt)
198
+ throw new Error('triaging route state requires routeExecution and routeReceipt absent');
199
+ const execution = validateRouteExecution(input.routeExecution, input.generationHash);
200
+ if (execution.phase === 'route-complete')
201
+ throw new Error('triaging route execution cannot be route-complete');
202
+ return;
203
+ }
204
+ if (input.lifecycle === 'safe-halt' && hasExecution && !hasReceipt) {
205
+ const execution = validateRouteExecution(input.routeExecution, input.generationHash);
206
+ if (!['triage-in-flight', 'repair-in-flight', 'review-in-flight'].includes(execution.phase)) {
207
+ throw new Error('pre-route safe-halt requires an in-flight route execution');
208
+ }
209
+ return;
210
+ }
211
+ if (TERMINAL_LIFECYCLES.includes(input.lifecycle) && !hasExecution && !hasReceipt)
212
+ return;
213
+ if (!hasExecution || !hasReceipt)
214
+ throw new Error(`${input.lifecycle} route execution and receipt are required as an exact pair`);
215
+ const execution = validateRouteExecution(input.routeExecution, input.generationHash);
216
+ if (execution.phase !== 'route-complete')
217
+ throw new Error(`${input.lifecycle} route execution must be route-complete`);
218
+ const receipt = validateRouteReceipt(input.routeReceipt, input.generationHash);
219
+ if (canonicalJson(execution.triage) !== canonicalJson(receipt.triage)
220
+ || canonicalJson(execution.review) !== canonicalJson(receipt.review)) {
221
+ throw new Error('route-complete refs must equal route receipt refs');
222
+ }
223
+ if (input.lifecycle === 'implementing' && receipt.route !== 'direct') {
224
+ throw new Error('implementing lifecycle requires direct route');
225
+ }
226
+ if (input.lifecycle === 'spec-authoring' && receipt.route !== 'spec-required') {
227
+ throw new Error('direct route dispatch requires implementing lifecycle');
228
+ }
229
+ if (input.lifecycle === 'waiting-human' && receipt.route !== 'awaiting-user') {
230
+ throw new Error('waiting-human lifecycle requires awaiting-user route');
231
+ }
232
+ }
233
+ export function downstreamLifecycleForRoute(receiptValue, expectedGenerationHash) {
234
+ const receipt = validateRouteReceipt(receiptValue, expectedGenerationHash);
235
+ if (receipt.route === 'direct')
236
+ return 'implementing';
237
+ if (receipt.route === 'spec-required')
238
+ return 'spec-authoring';
239
+ return 'waiting-human';
240
+ }
241
+ export function validateRouteTransition(previous, next) {
242
+ validateRouteStateInvariant(previous);
243
+ validateRouteStateInvariant(next);
244
+ if (previous.generationHash !== next.generationHash)
245
+ throw new Error('route transition generation is immutable');
246
+ if (previous.routeReceipt !== undefined) {
247
+ if (next.routeReceipt === undefined
248
+ || canonicalJson(previous.routeReceipt) !== canonicalJson(next.routeReceipt)) {
249
+ throw new Error('route receipt is immutable after routing');
250
+ }
251
+ }
252
+ if (previous.lifecycle === 'routed' && next.lifecycle !== 'routed') {
253
+ const expected = downstreamLifecycleForRoute(previous.routeReceipt, previous.generationHash);
254
+ if (next.lifecycle !== expected)
255
+ throw new Error(`routed ${String(previous.routeReceipt.route)} must dispatch to ${expected}`);
256
+ }
257
+ }
258
+ export function validateTrustedAnswerResumeTransition(previous, next, waitingHuman) {
259
+ validateRouteStateInvariant(previous);
260
+ validateRouteStateInvariant(next);
261
+ if (previous.lifecycle !== 'waiting-human' || previous.routeReceipt.route !== 'awaiting-user') {
262
+ throw new Error('trusted answer resume requires waiting-human awaiting-user authority');
263
+ }
264
+ if (waitingHuman.phase !== 'resume-ready')
265
+ throw new Error('trusted answer resume requires resume-ready evidence');
266
+ if (next.lifecycle !== 'triaging' || next.routeReceipt !== undefined)
267
+ throw new Error('trusted answer resume must restart triage without a receipt');
268
+ const execution = validateRouteExecution(next.routeExecution, next.generationHash);
269
+ if (execution.phase !== 'triage-ready' || execution.previousAttemptId !== null
270
+ || execution.triageRepairs !== 0 || execution.triageTransportRetries !== 0
271
+ || execution.ambiguityTransportRetries !== 0 || execution.candidateReviews !== 0) {
272
+ throw new Error('trusted answer resume requires initial route execution');
273
+ }
274
+ }
275
+ const ROUTE_LIFECYCLES = [
276
+ 'claimed', 'triaging', 'routed', 'implementing', 'waiting-human', 'spec-authoring', 'reworking', 'checking',
277
+ 'proving', 'publishing', 'safe-halt', 'review-ready', 'blocked', 'transport-failed', 'cancelled', 'internal-error',
278
+ ];
279
+ const TERMINAL_LIFECYCLES = [
280
+ 'review-ready', 'blocked', 'transport-failed', 'cancelled', 'internal-error',
281
+ ];
282
+ function validateBudgets(value) {
283
+ if (value.version !== 1)
284
+ throw new Error('route execution.version must be 1');
285
+ for (const key of [
286
+ 'triageRepairs', 'triageTransportRetries', 'ambiguityTransportRetries', 'candidateReviews',
287
+ ]) {
288
+ if (value[key] !== 0 && value[key] !== 1)
289
+ throw new Error(`route execution.${key} must be 0 or 1`);
290
+ }
291
+ }
292
+ function validateWaitingCandidate(candidateValue, triageValue, expectedGenerationHash) {
293
+ const candidate = validateTriageRoute(candidateValue);
294
+ if (candidate.status !== 'awaiting-user')
295
+ throw new Error('route execution candidate must be awaiting-user');
296
+ const triage = validateRouteArtifactRef(triageValue, expectedGenerationHash);
297
+ if (triage.artifactSha256 !== hashTriageArtifact(candidate))
298
+ throw new Error('route execution candidate artifact hash mismatch');
299
+ return triage;
300
+ }
301
+ function validateRejectedCandidate(candidate, triageValue, reviewValue, findings, expectedGenerationHash) {
302
+ const triage = validateWaitingCandidate(candidate, triageValue, expectedGenerationHash);
303
+ const review = validateAmbiguityReviewRef(reviewValue, expectedGenerationHash ?? triage.generationHash);
304
+ validateReviewBinding(triage, review);
305
+ if (review.verdict !== 'rejected')
306
+ throw new Error('candidate repair review must be rejected');
307
+ validateFindings(findings, 'route execution findings');
308
+ }
309
+ function validateRepairInput(value, expectedGenerationHash) {
310
+ assertRecord(value, 'route execution.repairInput');
311
+ if (value.kind === 'malformed') {
312
+ assertExactObject(value, ['kind', 'findings'], 'route execution.repairInput');
313
+ validateFindings(value.findings, 'route execution.repairInput.findings');
314
+ return;
315
+ }
316
+ if (value.kind === 'rejected-candidate') {
317
+ assertExactObject(value, ['kind', 'candidate', 'triage', 'review', 'findings'], 'route execution.repairInput');
318
+ validateRejectedCandidate(value.candidate, value.triage, value.review, value.findings, expectedGenerationHash);
319
+ return;
320
+ }
321
+ throw new Error('route execution.repairInput.kind is invalid');
322
+ }
323
+ function validateReviewBinding(triage, review) {
324
+ if (review.generationHash !== triage.generationHash)
325
+ throw new Error('ambiguity review generation mismatch');
326
+ if (review.candidateSha256 !== triage.artifactSha256)
327
+ throw new Error('ambiguity review candidate hash mismatch');
328
+ if (review.attemptId === triage.attemptId)
329
+ throw new Error('ambiguity review attempt must be distinct from triage attempt');
330
+ }
331
+ function assertRepairConsumed(value) {
332
+ if (value.triageRepairs !== 1)
333
+ throw new Error('repair phase requires triageRepairs 1');
334
+ }
335
+ function assertRejectedRepairBudgets(value) {
336
+ assertRepairConsumed(value);
337
+ if (value.candidateReviews !== 1)
338
+ throw new Error('rejected candidate requires candidateReviews 1');
339
+ }
340
+ function validateFindings(value, field) {
341
+ assertStringArray(value, field, 1);
342
+ assertUnique(value, field);
343
+ }
344
+ function assertAttemptAndTimestamp(value) {
345
+ assertString(value.attemptId, 'route execution.attemptId');
346
+ assertTimestamp(value.startedAt, 'route execution.startedAt');
347
+ }
348
+ function hashDomain(domain, value) {
349
+ return sha256(Buffer.concat([
350
+ Buffer.from(domain, 'ascii'),
351
+ Buffer.from([0]),
352
+ Buffer.from(canonicalJson(value), 'utf8'),
353
+ ]));
354
+ }
355
+ function assertGeneration(value, expected, field) {
356
+ assertSha256(value, field);
357
+ if (expected !== undefined) {
358
+ assertSha256(expected, 'expected generation hash');
359
+ if (value !== expected)
360
+ throw new Error(`${field} generation mismatch`);
361
+ }
362
+ }
363
+ function assertTimestamp(value, field) {
364
+ if (typeof value !== 'string' || Number.isNaN(Date.parse(value)) || new Date(value).toISOString() !== value) {
365
+ throw new Error(`${field} must be an ISO timestamp`);
366
+ }
367
+ }
368
+ function assertSha256(value, field) {
369
+ if (typeof value !== 'string' || !SHA256_PATTERN.test(value))
370
+ throw new Error(`${field} must be lowercase SHA-256`);
371
+ }
372
+ function assertStringArray(value, field, minItems) {
373
+ if (!Array.isArray(value) || value.length < minItems || value.length > MAX_ARRAY_LENGTH) {
374
+ throw new Error(`${field} has invalid cardinality`);
375
+ }
376
+ for (const item of value)
377
+ assertString(item, `${field} entry`);
378
+ }
379
+ function assertUnique(values, field) {
380
+ if (new Set(values).size !== values.length)
381
+ throw new Error(`${field} must be unique`);
382
+ }
383
+ function assertString(value, field) {
384
+ if (typeof value !== 'string' || value.length === 0 || value.length > MAX_STRING_LENGTH) {
385
+ throw new Error(`${field} must be a bounded non-empty string`);
386
+ }
387
+ }
388
+ function assertRecord(value, field) {
389
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
390
+ throw new Error(`${field} must be an object`);
391
+ }
392
+ function assertExactObject(value, keys, field) {
393
+ assertRecord(value, field);
394
+ const actual = Object.keys(value).sort();
395
+ const expected = [...keys].sort();
396
+ if (actual.length !== expected.length || actual.some((key, index) => key !== expected[index])) {
397
+ throw new Error(`${field} has unknown or missing keys`);
398
+ }
399
+ }
400
+ //# sourceMappingURL=route-decision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-decision.js","sourceRoot":"","sources":["../../../src/v2/route-decision.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,29 @@
1
1
  import { type CheckedChange, type CheckedChangeFreshness, type CheckedChangeMintCapability } from './checked-change.js';
2
- import { type AgentAutoConfigV1 } from './config.js';
2
+ import { type AgentAutoConfig } from './config.js';
3
+ import type { ImplementationReviewerInput, ImplementationReviewerResult } from './implementation-reviewer.js';
3
4
  import { type FrozenCriterion, type IssueSnapshot, type ProveChangeResult } from './acceptance-proof.js';
4
- import type { RunRecordV1, RunRecordWriter } from './run-store.js';
5
+ import type { WorkflowGenerationReceipt } from './workflow-assets.js';
6
+ import { type RouteCoordinatorInput, type RouteCoordinatorResult, type RouteCoordinatorState } from './route-coordinator.js';
7
+ import type { RoutedContinuationRegistry } from './route-continuations.js';
8
+ import type { FrozenSpecReceiptV1 } from './spec-delivery.js';
9
+ import type { RunRecordV1, RunRecordWriter, RunStateFileV1 } from './run-store.js';
5
10
  export type RunIssueResult = {
6
11
  status: 'review-ready';
7
12
  pullRequestUrl: string;
8
13
  evidencePath: string;
14
+ } | {
15
+ status: 'route-ready';
16
+ route: 'spec-required' | 'awaiting-user';
17
+ evidencePath: string;
18
+ } | {
19
+ status: 'spec-frozen';
20
+ receipt: FrozenSpecReceiptV1;
21
+ evidencePath: string;
22
+ } | {
23
+ status: 'awaiting-user';
24
+ questionId: string;
25
+ answerPrefix: string;
26
+ evidencePath: string;
9
27
  } | {
10
28
  status: 'not-eligible';
11
29
  reason: string;
@@ -25,6 +43,10 @@ export type RunIssueResult = {
25
43
  } | {
26
44
  status: 'internal-error';
27
45
  evidencePath: string;
46
+ } | {
47
+ status: 'requeued';
48
+ reason: 'owner-contention';
49
+ evidencePath: string;
28
50
  };
29
51
  export interface RunIssueSnapshot {
30
52
  number: number;
@@ -58,6 +80,7 @@ export interface RunIssueGit {
58
80
  snapshot(worktreePath: string): Promise<Omit<CheckedChangeFreshness, 'checkPolicySha256'>>;
59
81
  fingerprintDeniedPaths(worktreePath: string, deniedPaths: string[]): Promise<string>;
60
82
  listChangedFiles(worktreePath: string): Promise<string[]>;
83
+ fingerprintChangedFiles(worktreePath: string, changedFiles: string[]): Promise<string>;
61
84
  stageAll(worktreePath: string): Promise<void>;
62
85
  getTreeSha(worktreePath: string): Promise<string>;
63
86
  getHead(worktreePath: string): Promise<string>;
@@ -77,9 +100,11 @@ export interface RunIssueGit {
77
100
  branchName: string;
78
101
  }): Promise<void>;
79
102
  }
103
+ type InterruptedProcess = Omit<NonNullable<RunRecordV1['process']>, 'purpose' | 'resumeLifecycle' | 'resumeReviewStage'>;
80
104
  export type ImplementationAgentResult = {
81
105
  kind: 'completed';
82
106
  report: unknown;
107
+ attemptId?: string;
83
108
  } | {
84
109
  kind: 'transport-failed';
85
110
  resumable: boolean;
@@ -89,15 +114,15 @@ export type ImplementationAgentResult = {
89
114
  kind: 'internal-error';
90
115
  } | {
91
116
  kind: 'safe-halt';
92
- process: NonNullable<RunRecordV1['process']>;
117
+ process: InterruptedProcess;
93
118
  waitForAbsence(): Promise<void>;
94
119
  };
95
120
  export interface RunIssueDependencies {
96
121
  readConfig(targetRoot: string): Promise<{
97
122
  bytes: Buffer;
98
- config: AgentAutoConfigV1;
123
+ config: AgentAutoConfig;
99
124
  }>;
100
- validateContainment(config: AgentAutoConfigV1): Promise<void>;
125
+ validateContainment(config: AgentAutoConfig): Promise<void>;
101
126
  ownerLock: {
102
127
  acquire(input: {
103
128
  canonicalRepository: string;
@@ -138,9 +163,20 @@ export interface RunIssueDependencies {
138
163
  cycle: number;
139
164
  reworkFindings: string[];
140
165
  repairOnly: boolean;
166
+ workflowGeneration: WorkflowGenerationReceipt;
141
167
  signal: AbortSignal;
142
168
  }): Promise<ImplementationAgentResult>;
143
169
  };
170
+ implementationReviewer: {
171
+ run(input: ImplementationReviewerInput): Promise<ImplementationReviewerResult>;
172
+ };
173
+ waitForReviewProcessAbsence(processGroupId: number): Promise<void>;
174
+ routeCoordinator: {
175
+ run(input: RouteCoordinatorInput & {
176
+ state: RouteCoordinatorState;
177
+ }): Promise<RouteCoordinatorResult>;
178
+ };
179
+ routeContinuations: RoutedContinuationRegistry;
144
180
  checks: {
145
181
  run(input: {
146
182
  id: string;
@@ -158,6 +194,7 @@ export interface RunIssueDependencies {
158
194
  issue: IssueSnapshot;
159
195
  frozenCriteria: FrozenCriterion[];
160
196
  checkedChange: CheckedChange;
197
+ workflowGeneration: WorkflowGenerationReceipt;
161
198
  }): Promise<ProveChangeResult>;
162
199
  };
163
200
  checkedChangeMint: CheckedChangeMintCapability;
@@ -171,14 +208,25 @@ export interface RunIssueDependencies {
171
208
  path: string;
172
209
  }>;
173
210
  packageVersion: string;
174
- skillHashes: Record<string, string>;
211
+ createWorkflowGeneration(): Promise<{
212
+ receipt: WorkflowGenerationReceipt;
213
+ skillHashes: Record<string, string>;
214
+ }>;
215
+ verifyWorkflowGeneration(receipt: WorkflowGenerationReceipt): Promise<void>;
175
216
  createRunId(): string;
176
217
  createProofId(): string;
218
+ createReviewSessionId(): string;
177
219
  now(): string;
178
220
  signal?: AbortSignal;
179
221
  }
180
222
  export declare class OwnerLockSafetyError extends Error {
181
223
  }
224
+ export declare class OwnerLockContentionError extends Error {
225
+ }
226
+ interface ActiveRun {
227
+ state: RunStateFileV1;
228
+ record: RunRecordV1;
229
+ }
182
230
  export declare class RunIssue {
183
231
  private readonly dependencies;
184
232
  private readonly signal;
@@ -190,6 +238,13 @@ export declare class RunIssue {
190
238
  targetRoot: string;
191
239
  issueNumber: number;
192
240
  }): Promise<RunIssueResult>;
241
+ initializeClaimedRun(active: ActiveRun, issue?: RunIssueSnapshot): Promise<ActiveRun>;
242
+ private routeRun;
243
+ private waitingState;
244
+ private specState;
245
+ private continueSpecRequired;
246
+ private continueWaitingHuman;
247
+ private mapWaitingResult;
193
248
  private readStrictConfig;
194
249
  private ineligibilityReason;
195
250
  private createRun;
@@ -199,6 +254,8 @@ export declare class RunIssue {
199
254
  private authorized;
200
255
  private readIssue;
201
256
  private runImplementation;
257
+ private runDirectReviewFull;
258
+ private recoverDirectReviewInvocation;
202
259
  private startNextCycle;
203
260
  private mapImplementationFailure;
204
261
  private mapProofFailure;
@@ -210,4 +267,5 @@ export declare class RunIssue {
210
267
  private preClaimTransport;
211
268
  private timestamp;
212
269
  }
270
+ export {};
213
271
  //# sourceMappingURL=run-issue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-issue.d.ts","sourceRoot":"","sources":["../../../src/v2/run-issue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-issue.d.ts","sourceRoot":"","sources":["../../../src/v2/run-issue.ts"],"names":[],"mappings":"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"}