codex-orchestrator 2.0.11 → 2.0.13

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 (262) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +25 -51
  3. package/dist/src/index.d.ts +2 -8
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +1 -4
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/v2/acceptance-proof.d.ts +46 -31
  8. package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
  9. package/dist/src/v2/acceptance-proof.js +157 -195
  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 +6 -0
  16. package/dist/src/v2/adapters/command.d.ts.map +1 -1
  17. package/dist/src/v2/adapters/command.js +43 -2
  18. package/dist/src/v2/adapters/command.js.map +1 -1
  19. package/dist/src/v2/candidate.d.ts +15 -31
  20. package/dist/src/v2/candidate.d.ts.map +1 -1
  21. package/dist/src/v2/candidate.js +7 -29
  22. package/dist/src/v2/candidate.js.map +1 -1
  23. package/dist/src/v2/checked-change.d.ts +3 -2
  24. package/dist/src/v2/checked-change.d.ts.map +1 -1
  25. package/dist/src/v2/checked-change.js +4 -3
  26. package/dist/src/v2/checked-change.js.map +1 -1
  27. package/dist/src/v2/cli-contract.d.ts +1 -1
  28. package/dist/src/v2/cli-contract.d.ts.map +1 -1
  29. package/dist/src/v2/cli-contract.js +4 -6
  30. package/dist/src/v2/cli-contract.js.map +1 -1
  31. package/dist/src/v2/cli.d.ts +8 -0
  32. package/dist/src/v2/cli.d.ts.map +1 -1
  33. package/dist/src/v2/cli.js +13 -0
  34. package/dist/src/v2/cli.js.map +1 -1
  35. package/dist/src/v2/code-review-report.d.ts +10 -18
  36. package/dist/src/v2/code-review-report.d.ts.map +1 -1
  37. package/dist/src/v2/code-review-report.js +63 -60
  38. package/dist/src/v2/code-review-report.js.map +1 -1
  39. package/dist/src/v2/codex-process.d.ts +6 -2
  40. package/dist/src/v2/codex-process.d.ts.map +1 -1
  41. package/dist/src/v2/codex-process.js +25 -9
  42. package/dist/src/v2/codex-process.js.map +1 -1
  43. package/dist/src/v2/config.d.ts +0 -2
  44. package/dist/src/v2/config.d.ts.map +1 -1
  45. package/dist/src/v2/config.js +3 -6
  46. package/dist/src/v2/config.js.map +1 -1
  47. package/dist/src/v2/contained-report-operation.d.ts +41 -196
  48. package/dist/src/v2/contained-report-operation.d.ts.map +1 -1
  49. package/dist/src/v2/contained-report-operation.js +139 -466
  50. package/dist/src/v2/contained-report-operation.js.map +1 -1
  51. package/dist/src/v2/containment.d.ts +1 -0
  52. package/dist/src/v2/containment.d.ts.map +1 -1
  53. package/dist/src/v2/containment.js +12 -2
  54. package/dist/src/v2/containment.js.map +1 -1
  55. package/dist/src/v2/delivery-authority.d.ts +26 -0
  56. package/dist/src/v2/delivery-authority.d.ts.map +1 -0
  57. package/dist/src/v2/delivery-authority.js +44 -0
  58. package/dist/src/v2/delivery-authority.js.map +1 -0
  59. package/dist/src/v2/direct-delivery.d.ts +16 -36
  60. package/dist/src/v2/direct-delivery.d.ts.map +1 -1
  61. package/dist/src/v2/direct-delivery.js +135 -122
  62. package/dist/src/v2/direct-delivery.js.map +1 -1
  63. package/dist/src/v2/immutable-workflow-publisher.d.ts.map +1 -1
  64. package/dist/src/v2/immutable-workflow-publisher.js +3 -1
  65. package/dist/src/v2/immutable-workflow-publisher.js.map +1 -1
  66. package/dist/src/v2/implementation-report.d.ts +3 -1
  67. package/dist/src/v2/implementation-report.d.ts.map +1 -1
  68. package/dist/src/v2/implementation-report.js +28 -10
  69. package/dist/src/v2/implementation-report.js.map +1 -1
  70. package/dist/src/v2/implementation-reviewer.d.ts +41 -12
  71. package/dist/src/v2/implementation-reviewer.d.ts.map +1 -1
  72. package/dist/src/v2/implementation-reviewer.js +114 -42
  73. package/dist/src/v2/implementation-reviewer.js.map +1 -1
  74. package/dist/src/v2/pending-effect-settlement.d.ts +44 -0
  75. package/dist/src/v2/pending-effect-settlement.d.ts.map +1 -0
  76. package/dist/src/v2/pending-effect-settlement.js +69 -0
  77. package/dist/src/v2/pending-effect-settlement.js.map +1 -0
  78. package/dist/src/v2/process-identity.d.ts +45 -0
  79. package/dist/src/v2/process-identity.d.ts.map +1 -0
  80. package/dist/src/v2/process-identity.js +118 -0
  81. package/dist/src/v2/process-identity.js.map +1 -0
  82. package/dist/src/v2/proof-report.d.ts +2 -1
  83. package/dist/src/v2/proof-report.d.ts.map +1 -1
  84. package/dist/src/v2/proof-report.js +10 -4
  85. package/dist/src/v2/proof-report.js.map +1 -1
  86. package/dist/src/v2/review-feedback-coordinator.d.ts +1 -1
  87. package/dist/src/v2/review-feedback-coordinator.d.ts.map +1 -1
  88. package/dist/src/v2/review-feedback-coordinator.js +1 -1
  89. package/dist/src/v2/review-feedback-coordinator.js.map +1 -1
  90. package/dist/src/v2/review-feedback.d.ts +14 -20
  91. package/dist/src/v2/review-feedback.d.ts.map +1 -1
  92. package/dist/src/v2/review-feedback.js +45 -87
  93. package/dist/src/v2/review-feedback.js.map +1 -1
  94. package/dist/src/v2/run-issue.d.ts +129 -88
  95. package/dist/src/v2/run-issue.d.ts.map +1 -1
  96. package/dist/src/v2/run-issue.js +1965 -2381
  97. package/dist/src/v2/run-issue.js.map +1 -1
  98. package/dist/src/v2/run-state-projections.d.ts +84 -0
  99. package/dist/src/v2/run-state-projections.d.ts.map +1 -0
  100. package/dist/src/v2/run-state-projections.js +142 -0
  101. package/dist/src/v2/run-state-projections.js.map +1 -0
  102. package/dist/src/v2/run-store.d.ts +99 -81
  103. package/dist/src/v2/run-store.d.ts.map +1 -1
  104. package/dist/src/v2/run-store.js +245 -542
  105. package/dist/src/v2/run-store.js.map +1 -1
  106. package/dist/src/v2/runtime-assets.d.ts +3 -0
  107. package/dist/src/v2/runtime-assets.d.ts.map +1 -1
  108. package/dist/src/v2/runtime-assets.js +104 -0
  109. package/dist/src/v2/runtime-assets.js.map +1 -1
  110. package/dist/src/v2/runtime.d.ts +56 -44
  111. package/dist/src/v2/runtime.d.ts.map +1 -1
  112. package/dist/src/v2/runtime.js +383 -503
  113. package/dist/src/v2/runtime.js.map +1 -1
  114. package/dist/src/v2/setup.js +0 -2
  115. package/dist/src/v2/setup.js.map +1 -1
  116. package/dist/src/v2/validation-progression.d.ts +70 -0
  117. package/dist/src/v2/validation-progression.d.ts.map +1 -0
  118. package/dist/src/v2/validation-progression.js +247 -0
  119. package/dist/src/v2/validation-progression.js.map +1 -0
  120. package/dist/src/v2/workflow-assets.d.ts +9 -3
  121. package/dist/src/v2/workflow-assets.d.ts.map +1 -1
  122. package/dist/src/v2/workflow-assets.js +256 -43
  123. package/dist/src/v2/workflow-assets.js.map +1 -1
  124. package/internal-workflow/docs/agents/bug-workflow-routing.md +9 -7
  125. package/internal-workflow/docs/agents/coding-skill-routing.md +170 -120
  126. package/internal-workflow/docs/agents/tool-usage.md +23 -12
  127. package/internal-workflow/manifest.json +1 -1
  128. package/internal-workflow/operations/code-review/SKILL.md +34 -15
  129. package/internal-workflow/operations/implementation/SKILL.md +21 -16
  130. package/internal-workflow/profiles/implementer.toml +9 -0
  131. package/internal-workflow/profiles/review_coordinator.toml +9 -0
  132. package/internal-workflow/profiles/spec_reviewer.toml +9 -0
  133. package/internal-workflow/profiles/standards_reviewer.toml +9 -0
  134. package/internal-workflow/schemas/code-review-v1.json +1 -1
  135. package/internal-workflow/schemas/implementation-report-v1.json +1 -1
  136. package/internal-workflow/schemas/proof-report-v1.json +1 -1
  137. package/internal-workflow/skills/bug-root-cause-explainer/SKILL.md +114 -0
  138. package/internal-workflow/skills/bug-root-cause-explainer/agents/openai.yaml +7 -0
  139. package/internal-workflow/skills/bug-root-cause-explainer/evals/evals.json +18 -0
  140. package/internal-workflow/skills/code-review/SKILL.md +84 -306
  141. package/internal-workflow/skills/code-review/agents/openai.yaml +5 -3
  142. package/internal-workflow/skills/code-review/evals/evals.json +83 -0
  143. package/internal-workflow/skills/code-review/references/standards-smells.md +41 -0
  144. package/internal-workflow/skills/diagnosing-bugs/SKILL.md +69 -32
  145. package/internal-workflow/skills/diagnosing-bugs/agents/openai.yaml +2 -2
  146. package/internal-workflow/skills/diagnosing-bugs/evals/evals.json +63 -0
  147. package/internal-workflow/skills/grilling/SKILL.md +51 -0
  148. package/internal-workflow/skills/grilling/agents/openai.yaml +6 -0
  149. package/internal-workflow/skills/grilling/evals/evals.json +47 -0
  150. package/internal-workflow/skills/implement/SKILL.md +135 -0
  151. package/internal-workflow/skills/implement/agents/openai.yaml +6 -0
  152. package/internal-workflow/skills/implement/evals/evals.json +150 -0
  153. package/internal-workflow/skills/plan/SKILL.md +59 -0
  154. package/internal-workflow/skills/plan/agents/openai.yaml +6 -0
  155. package/internal-workflow/skills/plan/evals/evals.json +36 -0
  156. package/internal-workflow/skills/prototype/LOGIC.md +130 -0
  157. package/internal-workflow/skills/prototype/SKILL.md +69 -0
  158. package/internal-workflow/skills/prototype/UI.md +157 -0
  159. package/internal-workflow/skills/prototype/agents/openai.yaml +6 -0
  160. package/internal-workflow/skills/prototype/evals/evals.json +67 -0
  161. package/internal-workflow/skills/research/SKILL.md +110 -0
  162. package/internal-workflow/skills/research/agents/openai.yaml +6 -0
  163. package/internal-workflow/skills/research/evals/evals.json +49 -0
  164. package/internal-workflow/skills/tdd/SKILL.md +72 -67
  165. package/internal-workflow/skills/tdd/agents/openai.yaml +2 -2
  166. package/internal-workflow/skills/tdd/evals/evals.json +12 -0
  167. package/internal-workflow/skills/tdd/mocking.md +48 -1
  168. package/internal-workflow/skills/tdd/refactoring.md +3 -3
  169. package/internal-workflow/skills/tickets-orchestrator/SKILL.md +199 -0
  170. package/internal-workflow/skills/tickets-orchestrator/agents/openai.yaml +6 -0
  171. package/internal-workflow/skills/tickets-orchestrator/evals/evals.json +126 -0
  172. package/internal-workflow/skills/tickets-orchestrator/references/delegate-integrate.md +83 -0
  173. package/internal-workflow/skills/tickets-orchestrator/references/finish-delivery.md +69 -0
  174. package/internal-workflow/skills/tickets-orchestrator/references/stop-completion.md +63 -0
  175. package/internal-workflow/skills/to-spec/SKILL.md +133 -0
  176. package/internal-workflow/skills/to-spec/agents/openai.yaml +6 -0
  177. package/internal-workflow/skills/to-spec/evals/evals.json +24 -0
  178. package/internal-workflow/skills/to-tickets/SKILL.md +189 -0
  179. package/internal-workflow/skills/to-tickets/agents/openai.yaml +6 -0
  180. package/internal-workflow/skills/to-tickets/evals/evals.json +79 -0
  181. package/internal-workflow/skills/to-tickets/references/publishing-details.md +117 -0
  182. package/package.json +1 -1
  183. package/dist/src/v2/proof-store.d.ts +0 -54
  184. package/dist/src/v2/proof-store.d.ts.map +0 -1
  185. package/dist/src/v2/proof-store.js +0 -301
  186. package/dist/src/v2/proof-store.js.map +0 -1
  187. package/dist/src/v2/route-continuations.d.ts +0 -32
  188. package/dist/src/v2/route-continuations.d.ts.map +0 -1
  189. package/dist/src/v2/route-continuations.js +0 -2
  190. package/dist/src/v2/route-continuations.js.map +0 -1
  191. package/dist/src/v2/route-coordinator.d.ts +0 -72
  192. package/dist/src/v2/route-coordinator.d.ts.map +0 -1
  193. package/dist/src/v2/route-coordinator.js +0 -275
  194. package/dist/src/v2/route-coordinator.js.map +0 -1
  195. package/dist/src/v2/route-decision.d.ts +0 -120
  196. package/dist/src/v2/route-decision.d.ts.map +0 -1
  197. package/dist/src/v2/route-decision.js +0 -380
  198. package/dist/src/v2/route-decision.js.map +0 -1
  199. package/dist/src/v2/spec-coordinator.d.ts +0 -73
  200. package/dist/src/v2/spec-coordinator.d.ts.map +0 -1
  201. package/dist/src/v2/spec-coordinator.js +0 -126
  202. package/dist/src/v2/spec-coordinator.js.map +0 -1
  203. package/dist/src/v2/spec-delivery.d.ts +0 -112
  204. package/dist/src/v2/spec-delivery.d.ts.map +0 -1
  205. package/dist/src/v2/spec-delivery.js +0 -336
  206. package/dist/src/v2/spec-delivery.js.map +0 -1
  207. package/dist/src/v2/triage-route.d.ts +0 -68
  208. package/dist/src/v2/triage-route.d.ts.map +0 -1
  209. package/dist/src/v2/triage-route.js +0 -223
  210. package/dist/src/v2/triage-route.js.map +0 -1
  211. package/dist/src/v2/waiting-human-coordinator.d.ts +0 -49
  212. package/dist/src/v2/waiting-human-coordinator.d.ts.map +0 -1
  213. package/dist/src/v2/waiting-human-coordinator.js +0 -509
  214. package/dist/src/v2/waiting-human-coordinator.js.map +0 -1
  215. package/dist/src/v2/waiting-human.d.ts +0 -143
  216. package/dist/src/v2/waiting-human.d.ts.map +0 -1
  217. package/dist/src/v2/waiting-human.js +0 -408
  218. package/dist/src/v2/waiting-human.js.map +0 -1
  219. package/internal-workflow/docs/agents/contract-test-ledger.md +0 -71
  220. package/internal-workflow/docs/agents/review-gates.md +0 -42
  221. package/internal-workflow/docs/agents/review-protocol.md +0 -98
  222. package/internal-workflow/evals/coding-skill-evals.json +0 -373
  223. package/internal-workflow/operations/ambiguity-review/SKILL.md +0 -5
  224. package/internal-workflow/operations/qualification-repair/SKILL.md +0 -17
  225. package/internal-workflow/operations/spec-author/SKILL.md +0 -12
  226. package/internal-workflow/operations/spec-review/SKILL.md +0 -12
  227. package/internal-workflow/operations/triage/SKILL.md +0 -12
  228. package/internal-workflow/profiles/analyst_deep.toml +0 -9
  229. package/internal-workflow/profiles/implementer_standard.toml +0 -9
  230. package/internal-workflow/profiles/proof_agent.toml +0 -8
  231. package/internal-workflow/profiles/reviewer_deep.toml +0 -9
  232. package/internal-workflow/profiles/reviewer_standard.toml +0 -9
  233. package/internal-workflow/schemas/ambiguity-review-v1.json +0 -1
  234. package/internal-workflow/schemas/spec-author-v1.json +0 -1
  235. package/internal-workflow/schemas/spec-review-v1.json +0 -30
  236. package/internal-workflow/schemas/triage-route-v1.json +0 -1
  237. package/internal-workflow/skills/agent-auto/SKILL.md +0 -19
  238. package/internal-workflow/skills/agent-auto/agents/openai.yaml +0 -6
  239. package/internal-workflow/skills/code-debugger/SKILL.md +0 -122
  240. package/internal-workflow/skills/code-debugger/agents/openai.yaml +0 -7
  241. package/internal-workflow/skills/code-review/references/bug-classes.md +0 -56
  242. package/internal-workflow/skills/code-review/references/cleanup-lens.md +0 -52
  243. package/internal-workflow/skills/code-review/references/framework-lenses.md +0 -34
  244. package/internal-workflow/skills/code-review/references/targeted-recipes.md +0 -49
  245. package/internal-workflow/skills/implementation-spec-maker/SKILL.md +0 -107
  246. package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +0 -6
  247. package/internal-workflow/skills/implementation-spec-maker/references/source-modes.md +0 -32
  248. package/internal-workflow/skills/implementation-spec-maker/references/spec-template.md +0 -146
  249. package/internal-workflow/skills/implementation-spec-review/SKILL.md +0 -131
  250. package/internal-workflow/skills/implementation-spec-review/agents/openai.yaml +0 -6
  251. package/internal-workflow/skills/implementation-spec-review/evals/evals.json +0 -78
  252. package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +0 -121
  253. package/internal-workflow/skills/small-task-implementer/SKILL.md +0 -112
  254. package/internal-workflow/skills/small-task-implementer/agents/openai.yaml +0 -6
  255. package/internal-workflow/skills/spec-implementer/SKILL.md +0 -133
  256. package/internal-workflow/skills/spec-implementer/agents/openai.yaml +0 -6
  257. package/internal-workflow/skills/spec-implementer/evals/evals.json +0 -30
  258. package/internal-workflow/skills/spec-implementer/references/review-loop.md +0 -100
  259. package/internal-workflow/skills/triage/AGENT-BRIEF.md +0 -192
  260. package/internal-workflow/skills/triage/OUT-OF-SCOPE.md +0 -101
  261. package/internal-workflow/skills/triage/SKILL.md +0 -134
  262. package/internal-workflow/skills/triage/agents/openai.yaml +0 -6
@@ -0,0 +1,94 @@
1
+ export type ProcessStartIdentity = {
2
+ kind: 'linux-start-ticks';
3
+ value: string;
4
+ } | {
5
+ kind: 'unavailable';
6
+ platform: 'darwin';
7
+ };
8
+ export interface AttemptProcessIdentity {
9
+ host: string;
10
+ bootId: string;
11
+ pid: number;
12
+ processGroupId: number;
13
+ processStartIdentity: ProcessStartIdentity;
14
+ launchedAt: string;
15
+ }
16
+ interface AttemptBase {
17
+ attemptId: string;
18
+ runId: string;
19
+ operationId: string;
20
+ operationSourceId: string;
21
+ incarnationId: string;
22
+ resultPath: string;
23
+ preparedAt: string;
24
+ cleanup: 'pending' | 'confirmed';
25
+ cleanupConfirmedAt: string | null;
26
+ }
27
+ export type ActiveAttempt = (AttemptBase & {
28
+ stage: 'prepared';
29
+ }) | (AttemptBase & {
30
+ stage: 'launched';
31
+ process: AttemptProcessIdentity;
32
+ }) | (AttemptBase & {
33
+ stage: 'observed';
34
+ process: AttemptProcessIdentity;
35
+ observation: {
36
+ leader: 'absent' | 'reused';
37
+ group: 'absent';
38
+ observedAt: string;
39
+ };
40
+ result: {
41
+ path: string;
42
+ sha256: string;
43
+ } | null;
44
+ }) | (AttemptBase & {
45
+ stage: 'adopted';
46
+ process: AttemptProcessIdentity;
47
+ observation: {
48
+ leader: 'absent' | 'reused';
49
+ group: 'absent';
50
+ observedAt: string;
51
+ };
52
+ result: {
53
+ path: string;
54
+ sha256: string;
55
+ };
56
+ adoptedAt: string;
57
+ });
58
+ export declare function createActiveAttempt(input: {
59
+ runId: string;
60
+ operationId: string;
61
+ operationSourceId: string;
62
+ resultPath: string;
63
+ preparedAt: string;
64
+ }, createIncarnationId?: () => string): Extract<ActiveAttempt, {
65
+ stage: 'prepared';
66
+ }>;
67
+ export declare function launchActiveAttempt(attempt: Extract<ActiveAttempt, {
68
+ stage: 'prepared';
69
+ }>, process: AttemptProcessIdentity): Extract<ActiveAttempt, {
70
+ stage: 'launched';
71
+ }>;
72
+ export declare function observeActiveAttempt(attempt: Extract<ActiveAttempt, {
73
+ stage: 'launched';
74
+ }>, observation: {
75
+ leader: 'same' | 'reused' | 'absent' | 'unknown';
76
+ group: 'live' | 'absent' | 'unknown';
77
+ result: {
78
+ path: string;
79
+ sha256: string;
80
+ } | null;
81
+ observedAt: string;
82
+ }): Extract<ActiveAttempt, {
83
+ stage: 'observed';
84
+ }>;
85
+ export declare function adoptActiveAttempt(attempt: Extract<ActiveAttempt, {
86
+ stage: 'observed';
87
+ }>, adoptedAt: string): Extract<ActiveAttempt, {
88
+ stage: 'adopted';
89
+ }>;
90
+ export declare function confirmActiveAttemptCleanup<T extends ActiveAttempt>(attempt: T, confirmedAt: string): T;
91
+ export declare function clearActiveAttempt(attempt: ActiveAttempt): undefined;
92
+ export declare function validateActiveAttempt(value: unknown): ActiveAttempt;
93
+ export {};
94
+ //# sourceMappingURL=active-attempt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-attempt.d.ts","sourceRoot":"","sources":["../../../src/v2/active-attempt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,200 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { canonicalJson, sha256 } from './containment.js';
3
+ const UUID_V4 = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/u;
4
+ const SHA256 = /^[0-9a-f]{64}$/u;
5
+ export function createActiveAttempt(input, createIncarnationId = randomUUID) {
6
+ const incarnationId = createIncarnationId();
7
+ uuid(input.runId, 'runId');
8
+ uuid(incarnationId, 'incarnationId');
9
+ text(input.operationId, 'operationId');
10
+ text(input.operationSourceId, 'operationSourceId');
11
+ absolutePath(input.resultPath);
12
+ timestamp(input.preparedAt, 'preparedAt');
13
+ return {
14
+ ...structuredClone(input),
15
+ incarnationId,
16
+ attemptId: sha256(canonicalJson({
17
+ runId: input.runId,
18
+ operationId: input.operationId,
19
+ operationSourceId: input.operationSourceId,
20
+ incarnationId,
21
+ })),
22
+ stage: 'prepared',
23
+ cleanup: 'pending',
24
+ cleanupConfirmedAt: null,
25
+ };
26
+ }
27
+ export function launchActiveAttempt(attempt, process) {
28
+ requireStage(validateActiveAttempt(attempt), 'prepared');
29
+ validateProcess(process);
30
+ return { ...structuredClone(attempt), stage: 'launched', process: structuredClone(process) };
31
+ }
32
+ export function observeActiveAttempt(attempt, observation) {
33
+ requireStage(validateActiveAttempt(attempt), 'launched');
34
+ if (!['absent', 'reused'].includes(observation.leader) || observation.group !== 'absent') {
35
+ throw new Error('active attempt process absence is not confirmed');
36
+ }
37
+ const leader = observation.leader;
38
+ timestamp(observation.observedAt, 'observedAt');
39
+ if (observation.result) {
40
+ if (observation.result.path !== attempt.resultPath)
41
+ throw new Error('active attempt result path mismatch');
42
+ if (!SHA256.test(observation.result.sha256))
43
+ throw new Error('active attempt result hash is invalid');
44
+ }
45
+ return {
46
+ ...structuredClone(attempt),
47
+ stage: 'observed',
48
+ observation: { leader, group: 'absent', observedAt: observation.observedAt },
49
+ result: structuredClone(observation.result),
50
+ };
51
+ }
52
+ export function adoptActiveAttempt(attempt, adoptedAt) {
53
+ requireStage(validateActiveAttempt(attempt), 'observed');
54
+ if (!attempt.result)
55
+ throw new Error('active attempt has no result to adopt');
56
+ timestamp(adoptedAt, 'adoptedAt');
57
+ return { ...structuredClone(attempt), stage: 'adopted', result: structuredClone(attempt.result), adoptedAt };
58
+ }
59
+ export function confirmActiveAttemptCleanup(attempt, confirmedAt) {
60
+ validateActiveAttempt(attempt);
61
+ timestamp(confirmedAt, 'cleanupConfirmedAt');
62
+ if (attempt.cleanup === 'confirmed') {
63
+ if (attempt.cleanupConfirmedAt !== confirmedAt)
64
+ throw new Error('active attempt cleanup is already confirmed');
65
+ return structuredClone(attempt);
66
+ }
67
+ return { ...structuredClone(attempt), cleanup: 'confirmed', cleanupConfirmedAt: confirmedAt };
68
+ }
69
+ export function clearActiveAttempt(attempt) {
70
+ validateActiveAttempt(attempt);
71
+ if (attempt.cleanup !== 'confirmed')
72
+ throw new Error('active attempt cleanup is not confirmed');
73
+ return undefined;
74
+ }
75
+ export function validateActiveAttempt(value) {
76
+ record(value, 'active attempt');
77
+ const stage = value.stage;
78
+ const keys = [
79
+ 'attemptId', 'runId', 'operationId', 'operationSourceId', 'incarnationId', 'resultPath',
80
+ 'preparedAt', 'cleanup', 'cleanupConfirmedAt', 'stage',
81
+ ...(stage === 'launched' ? ['process'] : []),
82
+ ...(stage === 'observed' ? ['process', 'observation', 'result'] : []),
83
+ ...(stage === 'adopted' ? ['process', 'observation', 'result', 'adoptedAt'] : []),
84
+ ];
85
+ if (!['prepared', 'launched', 'observed', 'adopted'].includes(String(stage))) {
86
+ throw new Error('active attempt stage is invalid');
87
+ }
88
+ exactKeys(value, keys, 'active attempt');
89
+ uuid(value.runId, 'runId');
90
+ uuid(value.incarnationId, 'incarnationId');
91
+ text(value.operationId, 'operationId');
92
+ text(value.operationSourceId, 'operationSourceId');
93
+ absolutePath(value.resultPath);
94
+ timestamp(value.preparedAt, 'preparedAt');
95
+ const expectedAttemptId = sha256(canonicalJson({
96
+ runId: value.runId,
97
+ operationId: value.operationId,
98
+ operationSourceId: value.operationSourceId,
99
+ incarnationId: value.incarnationId,
100
+ }));
101
+ if (value.attemptId !== expectedAttemptId)
102
+ throw new Error('active attempt attemptId is invalid');
103
+ if (value.cleanup === 'pending') {
104
+ if (value.cleanupConfirmedAt !== null)
105
+ throw new Error('pending active attempt has cleanup confirmation');
106
+ }
107
+ else if (value.cleanup === 'confirmed') {
108
+ timestamp(value.cleanupConfirmedAt, 'cleanupConfirmedAt');
109
+ }
110
+ else {
111
+ throw new Error('active attempt cleanup status is invalid');
112
+ }
113
+ if (stage !== 'prepared')
114
+ validateProcess(value.process);
115
+ if (stage === 'observed' || stage === 'adopted') {
116
+ validateObservation(value.observation);
117
+ validateResult(value.result, value.resultPath, stage === 'adopted');
118
+ }
119
+ if (stage === 'adopted')
120
+ timestamp(value.adoptedAt, 'adoptedAt');
121
+ return structuredClone(value);
122
+ }
123
+ function validateProcess(value) {
124
+ record(value, 'active attempt process');
125
+ exactKeys(value, ['host', 'bootId', 'pid', 'processGroupId', 'processStartIdentity', 'launchedAt'], 'active attempt process');
126
+ text(value.host, 'process host');
127
+ text(value.bootId, 'process bootId');
128
+ positive(value.pid, 'process pid');
129
+ positive(value.processGroupId, 'process group id');
130
+ timestamp(value.launchedAt, 'launchedAt');
131
+ record(value.processStartIdentity, 'process start identity');
132
+ if (value.processStartIdentity.kind === 'linux-start-ticks') {
133
+ exactKeys(value.processStartIdentity, ['kind', 'value'], 'Linux process start identity');
134
+ text(value.processStartIdentity.value, 'process start ticks');
135
+ if (!/^[0-9]+$/u.test(value.processStartIdentity.value))
136
+ throw new Error('process start ticks is invalid');
137
+ }
138
+ else if (value.processStartIdentity.kind === 'unavailable' && value.processStartIdentity.platform === 'darwin') {
139
+ exactKeys(value.processStartIdentity, ['kind', 'platform'], 'Darwin process start identity');
140
+ }
141
+ else {
142
+ throw new Error('process start identity is invalid');
143
+ }
144
+ }
145
+ function validateObservation(value) {
146
+ record(value, 'active attempt observation');
147
+ exactKeys(value, ['leader', 'group', 'observedAt'], 'active attempt observation');
148
+ if (!['absent', 'reused'].includes(String(value.leader)) || value.group !== 'absent') {
149
+ throw new Error('active attempt observation is invalid');
150
+ }
151
+ timestamp(value.observedAt, 'observedAt');
152
+ }
153
+ function validateResult(value, resultPath, required) {
154
+ if (value === null && !required)
155
+ return;
156
+ record(value, 'active attempt result');
157
+ exactKeys(value, ['path', 'sha256'], 'active attempt result');
158
+ if (value.path !== resultPath)
159
+ throw new Error('active attempt result path mismatch');
160
+ if (typeof value.sha256 !== 'string' || !SHA256.test(value.sha256))
161
+ throw new Error('active attempt result hash is invalid');
162
+ }
163
+ function requireStage(value, stage) {
164
+ if (value.stage !== stage)
165
+ throw new Error(`active attempt must be ${stage}`);
166
+ }
167
+ function record(value, field) {
168
+ if (!value || typeof value !== 'object' || Array.isArray(value))
169
+ throw new Error(`${field} is invalid`);
170
+ }
171
+ function exactKeys(value, expected, field) {
172
+ const actual = Object.keys(value).sort();
173
+ const canonical = [...expected].sort();
174
+ if (actual.length !== canonical.length || actual.some((key, index) => key !== canonical[index])) {
175
+ throw new Error(`${field} must contain exact keys`);
176
+ }
177
+ }
178
+ function uuid(value, field) {
179
+ if (typeof value !== 'string' || !UUID_V4.test(value))
180
+ throw new Error(`${field} is invalid`);
181
+ }
182
+ function text(value, field) {
183
+ if (typeof value !== 'string' || !value || value.length > 16 * 1024)
184
+ throw new Error(`${field} is invalid`);
185
+ }
186
+ function positive(value, field) {
187
+ if (!Number.isSafeInteger(value) || value <= 0)
188
+ throw new Error(`${field} is invalid`);
189
+ }
190
+ function absolutePath(value) {
191
+ if (typeof value !== 'string' || !value.startsWith('/'))
192
+ throw new Error('resultPath is invalid');
193
+ }
194
+ function timestamp(value, field) {
195
+ if (typeof value !== 'string')
196
+ throw new Error(`${field} is invalid`);
197
+ if (Number.isNaN(Date.parse(value)) || new Date(value).toISOString() !== value)
198
+ throw new Error(`${field} is invalid`);
199
+ }
200
+ //# sourceMappingURL=active-attempt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-attempt.js","sourceRoot":"","sources":["../../../src/v2/active-attempt.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export interface ProcessCommandOptions {
7
7
  idleTimeoutMs?: number;
8
8
  signal?: AbortSignal;
9
9
  processGroup?: boolean;
10
+ maxOutputBytes?: number;
10
11
  onStdoutChunk?: (chunk: string) => void | Promise<void>;
11
12
  onStderrChunk?: (chunk: string) => void | Promise<void>;
12
13
  }
@@ -15,6 +16,11 @@ export interface ProcessCommandResult {
15
16
  stderr: string;
16
17
  exitCode: number;
17
18
  }
19
+ export declare class ProcessOutputLimitError extends Error {
20
+ readonly maxOutputBytes: number;
21
+ readonly code = "command-output-limit-exceeded";
22
+ constructor(maxOutputBytes: number);
23
+ }
18
24
  export type ProcessExecutor = (file: string, args: string[], options?: ProcessCommandOptions) => Promise<ProcessCommandResult>;
19
25
  export type ShellCommandExecutor = (command: string, options?: ProcessCommandOptions) => Promise<ProcessCommandResult>;
20
26
  export declare const defaultProcessExecutor: ProcessExecutor;
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/v2/adapters/command.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,qBAAqB,KAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEvH,eAAO,MAAM,sBAAsB,EAAE,eACe,CAAC;AAErD,eAAO,MAAM,2BAA2B,EAAE,oBACU,CAAC"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/v2/adapters/command.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAGpC,QAAQ,CAAC,cAAc,EAAE,MAAM;IAF3C,QAAQ,CAAC,IAAI,mCAAmC;gBAE3B,cAAc,EAAE,MAAM;CAI5C;AAED,MAAM,MAAM,eAAe,GAAG,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,qBAAqB,KAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEvH,eAAO,MAAM,sBAAsB,EAAE,eACe,CAAC;AAErD,eAAO,MAAM,2BAA2B,EAAE,oBACU,CAAC"}
@@ -1,4 +1,13 @@
1
1
  import { spawn } from 'node:child_process';
2
+ export class ProcessOutputLimitError extends Error {
3
+ maxOutputBytes;
4
+ code = 'command-output-limit-exceeded';
5
+ constructor(maxOutputBytes) {
6
+ super(`Command output exceeded ${maxOutputBytes} bytes.`);
7
+ this.maxOutputBytes = maxOutputBytes;
8
+ this.name = 'ProcessOutputLimitError';
9
+ }
10
+ }
2
11
  export const defaultProcessExecutor = (file, args, options) => runSpawn(file, args, { ...options, shell: false });
3
12
  export const defaultShellCommandExecutor = (command, options) => runSpawn(command, [], { ...options, shell: true });
4
13
  function runSpawn(file, args, options) {
@@ -7,6 +16,8 @@ function runSpawn(file, args, options) {
7
16
  let timedOut = false;
8
17
  let idleTimedOut = false;
9
18
  let aborted = false;
19
+ let outputLimitExceeded = false;
20
+ let outputBytes = 0;
10
21
  const callbackTasks = [];
11
22
  const ownsProcessGroup = options.processGroup === true && process.platform !== 'win32';
12
23
  const child = spawn(file, args, {
@@ -18,6 +29,12 @@ function runSpawn(file, args, options) {
18
29
  });
19
30
  let stdout = '';
20
31
  let stderr = '';
32
+ if (options.maxOutputBytes !== undefined
33
+ && (!Number.isSafeInteger(options.maxOutputBytes) || options.maxOutputBytes < 1)) {
34
+ child.kill();
35
+ reject(new Error('maxOutputBytes must be a positive safe integer'));
36
+ return;
37
+ }
21
38
  child.stdout.setEncoding('utf8');
22
39
  child.stderr.setEncoding('utf8');
23
40
  const scheduleCallback = (callback, chunk) => {
@@ -44,13 +61,33 @@ function runSpawn(file, args, options) {
44
61
  idleTimeout.unref();
45
62
  };
46
63
  resetIdleTimeout();
64
+ const capture = (chunk, stream) => {
65
+ const bytes = Buffer.byteLength(chunk, 'utf8');
66
+ if (options.maxOutputBytes !== undefined && outputBytes + bytes > options.maxOutputBytes) {
67
+ outputLimitExceeded = true;
68
+ signalOwnedProcess(child.pid, ownsProcessGroup, 'SIGTERM');
69
+ setTimeout(() => {
70
+ if (ownsProcessGroup || !settled)
71
+ signalOwnedProcess(child.pid, ownsProcessGroup, 'SIGKILL');
72
+ }, 2_000).unref();
73
+ return false;
74
+ }
75
+ outputBytes += bytes;
76
+ if (stream === 'stdout')
77
+ stdout += chunk;
78
+ else
79
+ stderr += chunk;
80
+ return true;
81
+ };
47
82
  child.stdout.on('data', (chunk) => {
48
- stdout += chunk;
83
+ if (!capture(chunk, 'stdout'))
84
+ return;
49
85
  scheduleCallback(options.onStdoutChunk, chunk);
50
86
  resetIdleTimeout();
51
87
  });
52
88
  child.stderr.on('data', (chunk) => {
53
- stderr += chunk;
89
+ if (!capture(chunk, 'stderr'))
90
+ return;
54
91
  scheduleCallback(options.onStderrChunk, chunk);
55
92
  resetIdleTimeout();
56
93
  });
@@ -108,6 +145,10 @@ function runSpawn(file, args, options) {
108
145
  if ((aborted || timedOut || idleTimedOut) && ownsProcessGroup && child.pid) {
109
146
  await waitForProcessGroupAbsence(child.pid);
110
147
  }
148
+ if (outputLimitExceeded) {
149
+ reject(new ProcessOutputLimitError(options.maxOutputBytes));
150
+ return;
151
+ }
111
152
  if (aborted) {
112
153
  resolve({ stdout, stderr: stderr ? `${stderr}\nCommand cancelled.` : 'Command cancelled.', exitCode: 130 });
113
154
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../src/v2/adapters/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../src/v2/adapters/command.ts"],"names":[],"mappings":"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"}
@@ -9,28 +9,20 @@ export interface CandidateBindingV2 {
9
9
  sourceWorktreeIdentity: string;
10
10
  }
11
11
  export type CandidateBoundaryV2 = {
12
- kind: 'qualification';
13
- repairAttempt: 0 | 1 | 2 | 3 | 4 | 5;
14
- } | {
15
12
  kind: 'implementation-cycle';
16
- cycle: 1 | 2 | 3 | 4 | 5;
13
+ cycle: number;
14
+ authoritySha256: string;
17
15
  } | {
18
16
  kind: 'review-feedback';
19
17
  batchId: string;
20
- repairRound: 1 | 2 | 3;
18
+ repairRound: number;
19
+ authoritySha256: string;
21
20
  };
22
- export interface CandidateExecutionLeaseV2 {
21
+ export interface CandidateMaterializationV2 {
23
22
  version: 2;
24
23
  bindingId: string;
25
24
  candidateCommitSha: string;
26
25
  path: string;
27
- operation: 'qualification-check' | 'direct-review' | 'final-check' | 'acceptance-proof';
28
- attemptId: string;
29
- phase: 'prepared' | 'launched';
30
- pid: number | null;
31
- processGroupId: number | null;
32
- preparedAt: string;
33
- launchedAt: string | null;
34
26
  }
35
27
  export type CandidateOperationFailureCode = 'candidate-unstable' | 'candidate-io-failed' | 'candidate-materialization-io-failed' | 'candidate-ref-update-unknown';
36
28
  export type CandidateResult<T> = {
@@ -53,7 +45,7 @@ export interface CandidateGitV2 {
53
45
  boundary: CandidateBoundaryV2;
54
46
  artifactDir: string;
55
47
  }>;
56
- activeExecutions: Array<{
48
+ activeMaterializations: Array<{
57
49
  path: string;
58
50
  candidateCommitSha: string;
59
51
  }>;
@@ -70,36 +62,28 @@ export interface CandidateGitV2 {
70
62
  worktreePath: string;
71
63
  expectedHeadSha: string;
72
64
  }): Promise<CandidateResult<void>>;
73
- prepareExecution(input: {
65
+ prepareMaterialization(input: {
74
66
  binding: CandidateBindingV2;
75
67
  runId: string;
76
68
  workspaceRoot: string;
77
- operation: CandidateExecutionLeaseV2['operation'];
78
- attemptId: string;
69
+ materializationId: string;
79
70
  }): Promise<CandidateResult<{
80
71
  kind: 'prepared';
81
- lease: CandidateExecutionLeaseV2;
72
+ materialization: CandidateMaterializationV2;
82
73
  } | {
83
74
  kind: 'path-diverged';
84
75
  path: string;
85
76
  }>>;
86
- markExecutionLaunched(input: {
87
- lease: CandidateExecutionLeaseV2;
88
- pid: number;
89
- processGroupId: number;
90
- launchedAt: string;
91
- }): CandidateExecutionLeaseV2;
92
- inspectExecution(input: {
77
+ inspectMaterialization(input: {
93
78
  binding: CandidateBindingV2;
94
- lease: CandidateExecutionLeaseV2;
79
+ materialization: CandidateMaterializationV2;
95
80
  artifactDir: string;
96
81
  }): Promise<CandidateResult<'matching' | 'mutated' | 'missing'>>;
97
- removeExecution(input: {
98
- lease: CandidateExecutionLeaseV2;
99
- requireProcessAbsent: true;
82
+ removeMaterialization(input: {
83
+ materialization: CandidateMaterializationV2;
100
84
  }): Promise<CandidateResult<void>>;
101
85
  copyProofArtifacts(input: {
102
- lease: CandidateExecutionLeaseV2;
86
+ materialization: CandidateMaterializationV2;
103
87
  issueWorktreePath: string;
104
88
  artifactDir: string;
105
89
  proofId: string;
@@ -148,5 +132,5 @@ export declare function candidateBindingId(input: {
148
132
  }): string;
149
133
  export declare function candidateRef(runId: string, bindingId: string): string;
150
134
  export declare function validateCandidateBinding(value: unknown, field?: string, expectedRunId?: string): CandidateBindingV2;
151
- export declare function validateCandidateExecutionLease(value: unknown, field?: string): CandidateExecutionLeaseV2;
135
+ export declare function validateCandidateMaterialization(value: unknown, field?: string): CandidateMaterializationV2;
152
136
  //# sourceMappingURL=candidate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"candidate.d.ts","sourceRoot":"","sources":["../../../src/v2/candidate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"candidate.d.ts","sourceRoot":"","sources":["../../../src/v2/candidate.ts"],"names":[],"mappings":"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"}
@@ -43,10 +43,9 @@ export function validateCandidateBinding(value, field = 'candidate binding', exp
43
43
  assertSha256(value.sourceWorktreeIdentity, `${field}.sourceWorktreeIdentity`);
44
44
  return value;
45
45
  }
46
- export function validateCandidateExecutionLease(value, field = 'candidate execution lease') {
46
+ export function validateCandidateMaterialization(value, field = 'candidate materialization') {
47
47
  assertExactObject(value, [
48
- 'version', 'bindingId', 'candidateCommitSha', 'path', 'operation', 'attemptId', 'phase', 'pid',
49
- 'processGroupId', 'preparedAt', 'launchedAt',
48
+ 'version', 'bindingId', 'candidateCommitSha', 'path',
50
49
  ], field);
51
50
  if (value.version !== 2)
52
51
  throw new Error(`${field}.version is invalid`);
@@ -54,33 +53,18 @@ export function validateCandidateExecutionLease(value, field = 'candidate execut
54
53
  assertGitSha(value.candidateCommitSha, `${field}.candidateCommitSha`);
55
54
  if (typeof value.path !== 'string' || value.path.length === 0)
56
55
  throw new Error(`${field}.path is invalid`);
57
- if (!['qualification-check', 'direct-review', 'final-check', 'acceptance-proof'].includes(value.operation)) {
58
- throw new Error(`${field}.operation is invalid`);
59
- }
60
- assertSha256(value.attemptId, `${field}.attemptId`);
61
- if (value.phase !== 'prepared' && value.phase !== 'launched')
62
- throw new Error(`${field}.phase is invalid`);
63
- const prepared = value.phase === 'prepared';
64
- if (prepared ? value.pid !== null || value.processGroupId !== null || value.launchedAt !== null
65
- : !isPositiveInteger(value.pid) || !isPositiveInteger(value.processGroupId) || !isTimestamp(value.launchedAt)) {
66
- throw new Error(`${field} launch ownership is invalid`);
67
- }
68
- if (!isTimestamp(value.preparedAt))
69
- throw new Error(`${field}.preparedAt is invalid`);
70
56
  return value;
71
57
  }
72
58
  function validateCandidateBoundary(value) {
73
- if (value.kind === 'qualification') {
74
- if (!Number.isInteger(value.repairAttempt) || value.repairAttempt < 0 || value.repairAttempt > 5)
75
- throw new Error('candidate qualification boundary is invalid');
76
- }
77
- else if (value.kind === 'implementation-cycle') {
78
- if (!Number.isInteger(value.cycle) || value.cycle < 1 || value.cycle > 5)
59
+ if (value.kind === 'implementation-cycle') {
60
+ if (!Number.isSafeInteger(value.cycle) || value.cycle < 1)
79
61
  throw new Error('candidate implementation boundary is invalid');
62
+ assertSha256(value.authoritySha256, 'candidate delivery authority');
80
63
  }
81
64
  else if (value.kind === 'review-feedback') {
82
65
  assertSha256(value.batchId, 'candidate review feedback batch ID');
83
- if (!Number.isInteger(value.repairRound) || value.repairRound < 1 || value.repairRound > 3)
66
+ assertSha256(value.authoritySha256, 'candidate delivery authority');
67
+ if (!Number.isSafeInteger(value.repairRound) || value.repairRound < 1)
84
68
  throw new Error('candidate review feedback boundary is invalid');
85
69
  }
86
70
  else {
@@ -120,10 +104,4 @@ function assertExactObject(value, keys, field) {
120
104
  if (actual.length !== expected.length || actual.some((key, index) => key !== expected[index]))
121
105
  throw new Error(`${field} has unknown or missing keys`);
122
106
  }
123
- function isPositiveInteger(value) {
124
- return Number.isSafeInteger(value) && value > 0;
125
- }
126
- function isTimestamp(value) {
127
- return typeof value === 'string' && !Number.isNaN(Date.parse(value)) && new Date(value).toISOString() === value;
128
- }
129
107
  //# sourceMappingURL=candidate.js.map