@allocator-one/rcl 4.5.21 → 4.5.22

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.
package/README.md CHANGED
@@ -445,6 +445,8 @@ commands are documented in
445
445
  | `rcl converge-reconcile-history` | Authenticate and append a reconciliation receipt for an exact historical guarded launch after `lastLaunch` advanced |
446
446
  | `rcl converge-stale` | Audited disposition of a healthy or reconciled delivered-hard-failure report that became stale before admission |
447
447
  | `rcl converge-gap` | Audited record of one evidenced missing terminal report |
448
+ | `rcl converge-close-fresh` | Audited close of a fresh-review operation whose launch died before writing any report |
449
+ | `rcl pr-snapshot` | Capture a pull request's live state for a review process that holds no GitHub credentials (`rcl review --pr-snapshot`) |
448
450
  | `rcl converge-rejected` | Audited disposition of a report rejected locally before delivery |
449
451
  | `rcl converge-attempt` | Claim one durable attempt; recovered-v3 continuation hands the exact claim to its guarded producer with `--attempt` |
450
452
 
@@ -0,0 +1,89 @@
1
+ import { z } from 'zod';
2
+ import { processIdentitySchema, type ProcessIdentityStatus } from './process-identity.js';
3
+ export declare const freshReviewCloseManifestSchema: z.ZodObject<{
4
+ kind: z.ZodLiteral<"rcl-fresh-review-close">;
5
+ version: z.ZodLiteral<1>;
6
+ auditId: z.ZodString;
7
+ createdAt: z.ZodString;
8
+ gitCommonDir: z.ZodString;
9
+ target: z.ZodString;
10
+ freshOperationId: z.ZodString;
11
+ cycleId: z.ZodString;
12
+ headSha: z.ZodString;
13
+ operation: z.ZodObject<{
14
+ path: z.ZodString;
15
+ sha256: z.ZodString;
16
+ bytes: z.ZodNumber;
17
+ }, z.core.$strict>;
18
+ run: z.ZodObject<{
19
+ path: z.ZodString;
20
+ sha256: z.ZodString;
21
+ bytes: z.ZodNumber;
22
+ }, z.core.$strict>;
23
+ attempts: z.ZodObject<{
24
+ path: z.ZodString;
25
+ sha256: z.ZodString;
26
+ bytes: z.ZodNumber;
27
+ }, z.core.$strict>;
28
+ launch: z.ZodObject<{
29
+ attempt: z.ZodNumber;
30
+ round: z.ZodNumber;
31
+ startedAt: z.ZodString;
32
+ pid: z.ZodNumber;
33
+ processIdentity: z.ZodObject<{
34
+ version: z.ZodLiteral<1>;
35
+ pid: z.ZodNumber;
36
+ scope: z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
37
+ platform: z.ZodLiteral<"darwin">;
38
+ boot: z.ZodString;
39
+ namespace: z.ZodLiteral<"native">;
40
+ }, z.core.$strict>, z.ZodObject<{
41
+ platform: z.ZodLiteral<"linux">;
42
+ boot: z.ZodString;
43
+ namespace: z.ZodString;
44
+ }, z.core.$strict>], "platform">, z.ZodObject<{
45
+ platform: z.ZodLiteral<"win32">;
46
+ bootSha256: z.ZodString;
47
+ namespace: z.ZodLiteral<"native">;
48
+ }, z.core.$strict>]>;
49
+ birthSha256: z.ZodString;
50
+ }, z.core.$strict>;
51
+ }, z.core.$strict>;
52
+ evidence: z.ZodObject<{
53
+ process: z.ZodLiteral<"dead">;
54
+ admittedRounds: z.ZodLiteral<0>;
55
+ checkpoint: z.ZodObject<{
56
+ path: z.ZodString;
57
+ present: z.ZodBoolean;
58
+ results: z.ZodLiteral<0>;
59
+ events: z.ZodNumber;
60
+ }, z.core.$strict>;
61
+ }, z.core.$strict>;
62
+ disposition: z.ZodObject<{
63
+ kind: z.ZodLiteral<"died_before_report">;
64
+ accounting: z.ZodLiteral<"unchanged">;
65
+ scope: z.ZodLiteral<"local operation close; no admission or approval">;
66
+ }, z.core.$strict>;
67
+ }, z.core.$strict>;
68
+ export type FreshReviewCloseManifest = z.infer<typeof freshReviewCloseManifestSchema>;
69
+ export interface FreshReviewCloseSelection {
70
+ target: string;
71
+ operationId: string;
72
+ }
73
+ export interface FreshReviewCloseIO {
74
+ inspectProcess?: (identity: z.infer<typeof processIdentitySchema>) => Promise<ProcessIdentityStatus>;
75
+ }
76
+ /** Read-only preview of a close; the only identity it introduces is the audit's own. */
77
+ export declare function previewFreshReviewClose(selection: FreshReviewCloseSelection, gitCommonDir: string, io?: FreshReviewCloseIO): Promise<FreshReviewCloseManifest>;
78
+ /** Where a close retains its manifest and the exact native bytes it rested on. */
79
+ export declare function freshReviewCloseAuditPath(commonDir: string, target: string, auditId: string): string;
80
+ export interface ApplyFreshReviewCloseOptions {
81
+ manifest: string;
82
+ manifestSha256: string;
83
+ }
84
+ /**
85
+ * Apply a reviewed manifest: under recovery ownership of the target, prove the
86
+ * same facts on the same bytes, retain them, then mark the operation terminal.
87
+ * Re-applying a completed close answers `already_closed` and changes nothing.
88
+ */
89
+ export declare function applyFreshReviewClose(input: ApplyFreshReviewCloseOptions, gitCommonDir: string, io?: FreshReviewCloseIO): Promise<'closed' | 'already_closed'>;
@@ -0,0 +1,222 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { readdir, realpath } from 'node:fs/promises';
3
+ import { join, resolve } from 'node:path';
4
+ import { isDeepStrictEqual } from 'node:util';
5
+ import { z } from 'zod';
6
+ import { checkpointPath } from '../dispatch/checkpoint.js';
7
+ import { prepareLockRoot } from '../evidence/original-run/lock-path.js';
8
+ import { serializeRecoveryDocument, syncDirectory, writeExclusiveBytes } from '../evidence/original-run/journal.js';
9
+ import { readStable } from '../telemetry/recovery/files.js';
10
+ import { convergeAttemptStatePath, loadConvergeAttemptState } from './attempt-budget.js';
11
+ import { closeDiedFreshReview, readFreshReviewOperation, reviewCycleDirectory } from './fresh-review.js';
12
+ import { ordinaryCheckpointNamespace } from './launch-guard.js';
13
+ import { inspectProcessIdentity, processIdentitySchema } from './process-identity.js';
14
+ import { convergeRunStatePath, loadConvergeRunState } from './run-state.js';
15
+ import { withRecoveryTarget } from './target-ownership.js';
16
+ /**
17
+ * An audited close of a fresh-review operation whose launch died before the
18
+ * council wrote anything (RCL-216).
19
+ *
20
+ * Such an operation stays `active` for good: `converge-gap` needs an original
21
+ * report and run that never existed, an ordinary round refuses while the
22
+ * operation is pending, and `--start-over` resumes it. The close proves, from
23
+ * the target's own native state, that nothing was produced: the operation is
24
+ * active, its cycle admitted no round, its last launch is still pending with
25
+ * no run, report or recovery, the exact process that claimed it is dead, and
26
+ * the launch's council journal holds no reviewer result. The preview pins all
27
+ * of that in a manifest; the apply re-proves it on the same bytes, retains
28
+ * them, and marks the operation terminal with a reference to the audit. No
29
+ * round, finding, verdict or attempt is created or released: the spent
30
+ * attempt stays spent, and the cycle's accounting becomes history for the
31
+ * next explicitly requested fresh review.
32
+ */
33
+ const MAX_MANIFEST = 256 * 1024;
34
+ const digest = z.string().regex(/^[a-f0-9]{64}$/);
35
+ const sourceSchema = z.object({ path: z.string().min(1), sha256: digest, bytes: z.number().int().nonnegative().safe() }).strict();
36
+ export const freshReviewCloseManifestSchema = z.object({
37
+ kind: z.literal('rcl-fresh-review-close'),
38
+ version: z.literal(1),
39
+ auditId: z.string().uuid(),
40
+ createdAt: z.string().datetime(),
41
+ gitCommonDir: z.string().min(1),
42
+ target: z.string().min(1).max(200),
43
+ freshOperationId: z.string().uuid(),
44
+ cycleId: z.string().uuid(),
45
+ headSha: z.string().regex(/^[a-f0-9]{40}$/),
46
+ operation: sourceSchema,
47
+ run: sourceSchema,
48
+ attempts: sourceSchema,
49
+ launch: z.object({
50
+ attempt: z.number().int().positive().safe(),
51
+ round: z.number().int().positive().safe(),
52
+ startedAt: z.string().datetime(),
53
+ pid: z.number().int().positive().safe(),
54
+ processIdentity: processIdentitySchema,
55
+ }).strict(),
56
+ evidence: z.object({
57
+ process: z.literal('dead'),
58
+ admittedRounds: z.literal(0),
59
+ checkpoint: z.object({ path: z.string().min(1), present: z.boolean(), results: z.literal(0),
60
+ events: z.number().int().nonnegative().safe() }).strict(),
61
+ }).strict(),
62
+ disposition: z.object({ kind: z.literal('died_before_report'), accounting: z.literal('unchanged'),
63
+ scope: z.literal('local operation close; no admission or approval') }).strict(),
64
+ }).strict();
65
+ const fail = (code) => { throw new Error(code); };
66
+ const source = (path, snap) => ({ path, sha256: snap.sha256, bytes: snap.raw.length });
67
+ async function entries(path) {
68
+ try {
69
+ return (await readdir(path)).filter(name => !name.startsWith('.'));
70
+ }
71
+ catch (error) {
72
+ if (error.code === 'ENOENT')
73
+ return undefined;
74
+ throw error;
75
+ }
76
+ }
77
+ /** Everything the close rests on, read from the target's current native files. */
78
+ async function observe(commonDir, selection, io) {
79
+ const { target, operationId } = selection;
80
+ const current = await readFreshReviewOperation(commonDir, target);
81
+ if (!current || current.operation.operationId !== operationId)
82
+ fail('fresh_close_operation_not_current');
83
+ const operation = current.operation;
84
+ if (operation.phase !== 'active' || !operation.receipt)
85
+ fail('fresh_close_operation_not_active');
86
+ const runPath = convergeRunStatePath(commonDir, target), attemptsPath = convergeAttemptStatePath(commonDir, target);
87
+ const runBytes = await readStable(runPath), attemptBytes = await readStable(attemptsPath);
88
+ const run = await loadConvergeRunState(commonDir, target), attempts = await loadConvergeAttemptState(commonDir, target);
89
+ if (!run || !attempts)
90
+ fail('fresh_close_state_missing');
91
+ if (run.cycle?.operationId !== operationId || attempts.cycle?.operationId !== operationId ||
92
+ run.cycle.id !== operation.receipt.id || !isDeepStrictEqual(run.cycle, attempts.cycle))
93
+ fail('fresh_close_cycle_mismatch');
94
+ if (run.rounds.length !== 0)
95
+ fail('fresh_close_round_admitted');
96
+ const launch = run.lastLaunch;
97
+ if (!launch || launch.status !== 'pending')
98
+ fail('fresh_close_launch_not_pending');
99
+ if (launch.runId || launch.reportJsonSha256 || launch.retainedOriginal || launch.pendingResume ||
100
+ launch.pendingRecovery || launch.recovery)
101
+ fail('fresh_close_launch_has_work');
102
+ if (launch.headSha !== operation.headSha)
103
+ fail('fresh_close_launch_head_mismatch');
104
+ if (!launch.processIdentity)
105
+ fail('fresh_close_process_unverifiable');
106
+ // The dead launch must hold the cycle's latest claim: a later attempt may
107
+ // have produced work this close would not see.
108
+ const claim = attempts.attempts.find(record => record.attempt === launch.attempt);
109
+ if (!claim || attempts.attemptsUsed !== launch.attempt)
110
+ fail('fresh_close_attempt_not_latest');
111
+ const status = await (io.inspectProcess ?? inspectProcessIdentity)(launch.processIdentity).catch(() => 'unverifiable');
112
+ if (status === 'alive')
113
+ fail('fresh_close_process_alive');
114
+ if (status !== 'dead')
115
+ fail('fresh_close_process_unverifiable');
116
+ // The council journals every reviewer result before anything is reported;
117
+ // an empty (or never created) journal is the proof that nothing was produced.
118
+ // Without the launch's packet binding there is no journal to inspect, and
119
+ // so no proof.
120
+ if (!launch.ordinaryInputs)
121
+ fail('fresh_close_journal_unknown');
122
+ const checkpoint = checkpointPath(commonDir, target, ordinaryCheckpointNamespace(launch.ordinaryInputs.packetSha256));
123
+ const results = await entries(join(checkpoint, 'results'));
124
+ const events = await entries(join(checkpoint, 'events'));
125
+ if (results && results.length)
126
+ fail('fresh_close_results_present');
127
+ return { operation, operationPath: current.path, operationBytes: await readStable(current.path, 64 * 1024),
128
+ runPath, runBytes, attemptsPath, attemptBytes, launch: launch,
129
+ checkpoint: { path: checkpoint, present: results !== undefined, results: 0, events: events?.length ?? 0 } };
130
+ }
131
+ /** Read-only preview of a close; the only identity it introduces is the audit's own. */
132
+ export async function previewFreshReviewClose(selection, gitCommonDir, io = {}) {
133
+ const parsed = z.object({ target: z.string().min(1).max(200).refine(value => value.trim() === value),
134
+ operationId: z.string().uuid() }).strict().safeParse(selection);
135
+ if (!parsed.success)
136
+ fail('invalid_fresh_close_selection');
137
+ const commonDir = await realpath(resolve(gitCommonDir));
138
+ const seen = await observe(commonDir, parsed.data, io);
139
+ return freshReviewCloseManifestSchema.parse({
140
+ kind: 'rcl-fresh-review-close', version: 1, auditId: randomUUID(), createdAt: new Date().toISOString(),
141
+ gitCommonDir: commonDir, target: parsed.data.target, freshOperationId: seen.operation.operationId,
142
+ cycleId: seen.operation.receipt.id, headSha: seen.operation.headSha,
143
+ operation: source(seen.operationPath, seen.operationBytes), run: source(seen.runPath, seen.runBytes),
144
+ attempts: source(seen.attemptsPath, seen.attemptBytes),
145
+ launch: { attempt: seen.launch.attempt, round: seen.launch.round, startedAt: seen.launch.startedAt,
146
+ pid: seen.launch.pid, processIdentity: seen.launch.processIdentity },
147
+ evidence: { process: 'dead', admittedRounds: 0, checkpoint: seen.checkpoint },
148
+ disposition: { kind: 'died_before_report', accounting: 'unchanged', scope: 'local operation close; no admission or approval' },
149
+ });
150
+ }
151
+ /** Where a close retains its manifest and the exact native bytes it rested on. */
152
+ export function freshReviewCloseAuditPath(commonDir, target, auditId) {
153
+ if (!z.string().uuid().safeParse(auditId).success)
154
+ fail('invalid_fresh_close_audit');
155
+ return join(reviewCycleDirectory(commonDir, target), 'closures', auditId);
156
+ }
157
+ async function retain(path, bytes) {
158
+ try {
159
+ await writeExclusiveBytes(path, bytes);
160
+ }
161
+ catch (error) {
162
+ if (error.code !== 'EEXIST')
163
+ throw error;
164
+ if (!(await readStable(path, MAX_MANIFEST)).raw.equals(bytes))
165
+ fail('fresh_close_retained_conflict');
166
+ }
167
+ }
168
+ /**
169
+ * Apply a reviewed manifest: under recovery ownership of the target, prove the
170
+ * same facts on the same bytes, retain them, then mark the operation terminal.
171
+ * Re-applying a completed close answers `already_closed` and changes nothing.
172
+ */
173
+ export async function applyFreshReviewClose(input, gitCommonDir, io = {}) {
174
+ const pinned = z.object({ manifest: z.string().min(1), manifestSha256: digest }).strict().safeParse(input);
175
+ if (!pinned.success)
176
+ fail('invalid_fresh_close_apply_selection');
177
+ const original = await readStable(pinned.data.manifest, MAX_MANIFEST);
178
+ if (original.sha256 !== pinned.data.manifestSha256)
179
+ fail('fresh_close_manifest_digest_mismatch');
180
+ let manifest;
181
+ try {
182
+ manifest = freshReviewCloseManifestSchema.parse(JSON.parse(original.text));
183
+ }
184
+ catch {
185
+ return fail('invalid_fresh_close_manifest');
186
+ }
187
+ const commonDir = await realpath(resolve(gitCommonDir));
188
+ if (commonDir !== manifest.gitCommonDir)
189
+ fail('fresh_close_repository_changed');
190
+ const closure = { kind: 'died_before_report', auditId: manifest.auditId, manifestSha256: original.sha256 };
191
+ return withRecoveryTarget(commonDir, manifest.target, async (ownership) => {
192
+ const current = await readFreshReviewOperation(commonDir, manifest.target);
193
+ if (current?.operation.operationId === manifest.freshOperationId && current.operation.phase === 'terminal' &&
194
+ isDeepStrictEqual(current.operation.closure, closure))
195
+ return 'already_closed';
196
+ const seen = await observe(commonDir, { target: manifest.target, operationId: manifest.freshOperationId }, io);
197
+ const now = { operation: source(seen.operationPath, seen.operationBytes), run: source(seen.runPath, seen.runBytes),
198
+ attempts: source(seen.attemptsPath, seen.attemptBytes) };
199
+ if (!isDeepStrictEqual(now, { operation: manifest.operation, run: manifest.run, attempts: manifest.attempts }) ||
200
+ seen.operation.receipt.id !== manifest.cycleId || !isDeepStrictEqual(seen.checkpoint, manifest.evidence.checkpoint) ||
201
+ !isDeepStrictEqual(seen.launch.processIdentity, manifest.launch.processIdentity))
202
+ fail('fresh_close_state_changed');
203
+ const audit = freshReviewCloseAuditPath(commonDir, manifest.target, manifest.auditId);
204
+ await prepareLockRoot(join(audit, '..'));
205
+ await prepareLockRoot(audit);
206
+ await retain(join(audit, 'manifest.json'), original.raw);
207
+ await retain(join(audit, 'operation-before.json'), seen.operationBytes.raw);
208
+ await retain(join(audit, 'run-before.json'), seen.runBytes.raw);
209
+ await retain(join(audit, 'attempts-before.json'), seen.attemptBytes.raw);
210
+ await syncDirectory(audit);
211
+ // Nothing may have moved while the evidence was retained.
212
+ if ((await readStable(seen.runPath)).sha256 !== manifest.run.sha256 ||
213
+ (await readStable(seen.attemptsPath)).sha256 !== manifest.attempts.sha256)
214
+ fail('fresh_close_state_changed');
215
+ const result = await closeDiedFreshReview(commonDir, manifest.target, manifest.freshOperationId, manifest.operation.sha256, closure, ownership);
216
+ await retain(join(audit, 'complete.json'), Buffer.from(serializeRecoveryDocument({ version: 1,
217
+ auditId: manifest.auditId, manifestSha256: original.sha256, freshOperationId: manifest.freshOperationId,
218
+ cycleId: manifest.cycleId, phase: 'terminal' })));
219
+ return result;
220
+ });
221
+ }
222
+ //# sourceMappingURL=fresh-review-close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fresh-review-close.js","sourceRoot":"","sources":["../../src/converge/fresh-review-close.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,42 @@
1
+ import { z } from 'zod';
1
2
  import { type NativeTargetOwnership } from './target-ownership.js';
2
3
  import { type NativeReviewCycle, type ReviewCycleRemote } from './review-cycle.js';
4
+ declare const operationSchema: z.ZodObject<{
5
+ version: z.ZodLiteral<1>;
6
+ target: z.ZodString;
7
+ operationId: z.ZodString;
8
+ repo: z.ZodString;
9
+ prNumber: z.ZodNumber;
10
+ url: z.ZodString;
11
+ headSha: z.ZodString;
12
+ previousCycleId: z.ZodNullable<z.ZodString>;
13
+ attemptCap: z.ZodNumber;
14
+ roundCap: z.ZodNumber;
15
+ archiveSha256: z.ZodString;
16
+ phase: z.ZodEnum<{
17
+ terminal: "terminal";
18
+ rejected: "rejected";
19
+ active: "active";
20
+ recorded: "recorded";
21
+ prepared: "prepared";
22
+ }>;
23
+ rejection: z.ZodOptional<z.ZodString>;
24
+ receipt: z.ZodOptional<z.ZodObject<{
25
+ id: z.ZodString;
26
+ operation_id: z.ZodString;
27
+ previous_cycle_id: z.ZodNullable<z.ZodString>;
28
+ head_sha: z.ZodString;
29
+ inserted_at: z.ZodString;
30
+ }, z.core.$strict>>;
31
+ closure: z.ZodOptional<z.ZodObject<{
32
+ kind: z.ZodLiteral<"died_before_report">;
33
+ auditId: z.ZodString;
34
+ manifestSha256: z.ZodString;
35
+ }, z.core.$strict>>;
36
+ }, z.core.$strict>;
37
+ type Operation = z.infer<typeof operationSchema>;
38
+ export type FreshReviewOperationRecord = Operation;
39
+ export type FreshReviewClosure = NonNullable<Operation['closure']>;
3
40
  export interface FreshReviewOptions {
4
41
  gitCommonDir: string;
5
42
  target: string;
@@ -14,6 +51,12 @@ export interface FreshReviewOperation {
14
51
  operationId: string;
15
52
  }
16
53
  export declare function reviewCycleDirectory(common: string, target: string): string;
54
+ /** The target's current fresh-review operation and its exact bytes, if any. */
55
+ export declare function readFreshReviewOperation(common: string, target: string): Promise<{
56
+ operation: Operation;
57
+ path: string;
58
+ sha256: string;
59
+ } | undefined>;
17
60
  /** Capture the request generation before waiting for another launcher. */
18
61
  export declare function freshReviewRequestVersion(common: string, target: string): Promise<string | undefined>;
19
62
  /** A durably completed first dispatch needs no new provider/output preflight. */
@@ -28,6 +71,14 @@ export declare function verifyReviewCycle(common: string, target: string, cycle:
28
71
  export declare function prepareFreshReview(options: FreshReviewOptions): Promise<FreshReviewOperation>;
29
72
  /** Mark a returned dispatch outcome terminal; a later explicit request may create another cycle. */
30
73
  export declare function finishFreshReview(common: string, target: string, operationId: string, ownership: NativeTargetOwnership): Promise<void>;
74
+ /**
75
+ * Close an active operation whose launch died before any report, as one
76
+ * compare-and-swap on its exact bytes: it becomes terminal and names the audit
77
+ * that justified it. Nothing else changes: no round, finding, verdict or
78
+ * attempt is created or released, and the cycle's spending stays history for
79
+ * the next explicitly requested fresh review (RCL-216).
80
+ */
81
+ export declare function closeDiedFreshReview(common: string, target: string, operationId: string, expectedSha256: string, closure: FreshReviewClosure, ownership: NativeTargetOwnership): Promise<'closed' | 'already_closed'>;
31
82
  /** Neither a missing partner nor a legacy ledger may replenish a cycle's budget. */
32
83
  export declare function assertReviewCyclePair(common: string, target: string, expected: NativeReviewCycle | undefined): Promise<void>;
33
84
  /** Default retained outputs make the explicit command usable without bookkeeping flags. */
@@ -35,3 +86,4 @@ export declare function freshReviewOutputPaths(common: string): Promise<{
35
86
  jsonFile: string;
36
87
  markdown: string;
37
88
  }>;
89
+ export {};
@@ -30,6 +30,9 @@ const operationSchema = z.object({
30
30
  phase: z.enum(['prepared', 'recorded', 'active', 'rejected', 'terminal']),
31
31
  rejection: z.string().optional(),
32
32
  receipt: reviewCycleReceiptSchema.optional(),
33
+ /** An audited close of an operation whose launch died before any report (RCL-216). */
34
+ closure: z.object({ kind: z.literal('died_before_report'), auditId: z.string().uuid(),
35
+ manifestSha256: z.string().regex(/^[a-f0-9]{64}$/) }).strict().optional(),
33
36
  }).strict();
34
37
  export function reviewCycleDirectory(common, target) {
35
38
  return join(common, 'rcl-review-cycles', basename(convergeRunStatePath(common, target), '.json'));
@@ -97,6 +100,18 @@ async function currentOperation(directory, target) {
97
100
  throw new Error('fresh_review_operation_mismatch');
98
101
  return operation;
99
102
  }
103
+ /** The target's current fresh-review operation and its exact bytes, if any. */
104
+ export async function readFreshReviewOperation(common, target) {
105
+ const directory = reviewCycleDirectory(common, target);
106
+ const operation = await currentOperation(directory, target);
107
+ if (!operation)
108
+ return undefined;
109
+ const path = join(directory, `${operation.operationId}.json`);
110
+ const bytes = (await readStable(path, 64 * 1024)).raw;
111
+ if (!isDeepStrictEqual(operationSchema.parse(JSON.parse(bytes.toString())), operation))
112
+ throw new Error('fresh_review_operation_changed');
113
+ return { operation, path, sha256: hash(bytes) };
114
+ }
100
115
  /** Capture the request generation before waiting for another launcher. */
101
116
  export async function freshReviewRequestVersion(common, target) {
102
117
  const operation = await currentOperation(reviewCycleDirectory(common, target), target);
@@ -303,6 +318,26 @@ export async function finishFreshReview(common, target, operationId, ownership)
303
318
  throw new Error('fresh_review_operation_changed');
304
319
  await replaceJson(join(directory, `${operationId}.json`), { ...operation, phase: 'terminal' });
305
320
  }
321
+ /**
322
+ * Close an active operation whose launch died before any report, as one
323
+ * compare-and-swap on its exact bytes: it becomes terminal and names the audit
324
+ * that justified it. Nothing else changes: no round, finding, verdict or
325
+ * attempt is created or released, and the cycle's spending stays history for
326
+ * the next explicitly requested fresh review (RCL-216).
327
+ */
328
+ export async function closeDiedFreshReview(common, target, operationId, expectedSha256, closure, ownership) {
329
+ common = await ownedNativeTargetCommonDir(ownership, common, target);
330
+ const directory = reviewCycleDirectory(common, target);
331
+ const current = await readFreshReviewOperation(common, target);
332
+ if (!current || current.operation.operationId !== operationId)
333
+ throw new Error('fresh_review_operation_changed');
334
+ if (current.operation.phase === 'terminal' && isDeepStrictEqual(current.operation.closure, closure))
335
+ return 'already_closed';
336
+ if (current.operation.phase !== 'active' || current.sha256 !== expectedSha256)
337
+ throw new Error('fresh_review_operation_changed');
338
+ await replaceJson(join(directory, `${operationId}.json`), { ...current.operation, phase: 'terminal', closure });
339
+ return 'closed';
340
+ }
306
341
  /** Neither a missing partner nor a legacy ledger may replenish a cycle's budget. */
307
342
  export async function assertReviewCyclePair(common, target, expected) {
308
343
  const run = await loadConvergeRunState(common, target);
@@ -1 +1 @@
1
- {"version":3,"file":"fresh-review.js","sourceRoot":"","sources":["../../src/converge/fresh-review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fresh-review.js","sourceRoot":"","sources":["../../src/converge/fresh-review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * A pull request's live state, read once by a parent process that holds
4
+ * GitHub credentials and handed to a review process that holds none (RCL-216).
5
+ *
6
+ * Grid hosts strip GitHub credentials from every reviewer process on purpose,
7
+ * yet a review cycle must confirm that the pull request is still open at the
8
+ * head under review. The parent captures that state with `rcl pr-snapshot`
9
+ * shortly before launching, and the review reads it with `--pr-snapshot`
10
+ * instead of calling GitHub. Harness still verifies the reviewed head against
11
+ * the pull request when the evidence arrives; this snapshot only replaces the
12
+ * reviewer's own pre-launch read.
13
+ */
14
+ export declare const PR_SNAPSHOT_MAX_AGE_MS: number;
15
+ export declare const prSnapshotSchema: z.ZodObject<{
16
+ kind: z.ZodLiteral<"rcl-pr-snapshot">;
17
+ version: z.ZodLiteral<1>;
18
+ repo: z.ZodString;
19
+ prNumber: z.ZodNumber;
20
+ headSha: z.ZodString;
21
+ baseSha: z.ZodString;
22
+ baseRef: z.ZodString;
23
+ merged: z.ZodBoolean;
24
+ state: z.ZodString;
25
+ fetchedAt: z.ZodString;
26
+ }, z.core.$strict>;
27
+ export type PrSnapshot = z.infer<typeof prSnapshotSchema>;
28
+ export interface LivePullRequestState {
29
+ headSha: string;
30
+ merged: boolean;
31
+ state: string;
32
+ }
33
+ /** The fields a snapshot keeps from GitHub's pull request object. */
34
+ export declare function prSnapshotFrom(repo: string, prNumber: number, pr: {
35
+ head: {
36
+ sha: string;
37
+ };
38
+ base: {
39
+ sha: string;
40
+ ref: string;
41
+ };
42
+ merged: boolean | null;
43
+ state: string;
44
+ }, now?: Date): PrSnapshot;
45
+ /** Write a new snapshot exclusively, readable by its owner only; answer its SHA-256. */
46
+ export declare function writePrSnapshot(path: string, snapshot: PrSnapshot): Promise<string>;
47
+ /**
48
+ * Read a snapshot for `repo#prNumber` and answer the live state it records.
49
+ * Refuses a file another user could have written, one for another pull
50
+ * request, and one older than {@link PR_SNAPSHOT_MAX_AGE_MS}: an old reading
51
+ * cannot stand in for the live check.
52
+ */
53
+ export declare function readPrSnapshot(path: string, repo: string, prNumber: number, now?: number): Promise<LivePullRequestState>;