@allocator-one/rcl 4.5.7 → 4.5.8

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.
@@ -0,0 +1,23 @@
1
+ declare const ENCODING: "json-string-table-v1";
2
+ type Scalar = null | boolean | number;
3
+ type EncodedNode = ['s', number] | ['v', Scalar] | ['a', EncodedNode[]] | [
4
+ 'o',
5
+ Array<[number, EncodedNode]>
6
+ ];
7
+ export interface RetainedGuardedInput {
8
+ version: 1;
9
+ encoding: typeof ENCODING;
10
+ strings: string[];
11
+ root: EncodedNode;
12
+ }
13
+ export type StoredGuardedInput = Record<string, unknown> | RetainedGuardedInput;
14
+ /**
15
+ * Retain exact JSON while storing repeated prompt and context strings once.
16
+ * Canonical JSON size is counted during traversal so an admitted archive is
17
+ * always within the decoder's recovery bound without materializing repeated
18
+ * prompt strings first.
19
+ */
20
+ export declare function retainGuardedInput(value: Record<string, unknown>): RetainedGuardedInput;
21
+ /** Restore and authenticate the canonical retained representation. */
22
+ export declare function restoreGuardedInput(value: StoredGuardedInput): Record<string, unknown>;
23
+ export {};
@@ -0,0 +1,179 @@
1
+ const ENCODING = 'json-string-table-v1';
2
+ const MAX_DECODED_GUARDED_INPUT_BYTES = 128 * 1024 * 1024;
3
+ const MAX_GUARDED_INPUT_NODES = 1_000_000;
4
+ // Recursive codec frames and the archive's tuple wrappers both consume V8 stack.
5
+ // 256 leaves ample headroom for callers and JSON serialization while exceeding
6
+ // any expected prompt, roster, or recovery-package structure.
7
+ const MAX_GUARDED_INPUT_DEPTH = 256;
8
+ function plainRecord(value) {
9
+ return !!value && typeof value === 'object' && !Array.isArray(value);
10
+ }
11
+ function interned(strings, encodedStringBytes, indices, value) {
12
+ const existing = indices.get(value);
13
+ if (existing !== undefined)
14
+ return existing;
15
+ const index = strings.length;
16
+ strings.push(value);
17
+ encodedStringBytes.push(Buffer.byteLength(JSON.stringify(value), 'utf8'));
18
+ indices.set(value, index);
19
+ return index;
20
+ }
21
+ /**
22
+ * Retain exact JSON while storing repeated prompt and context strings once.
23
+ * Canonical JSON size is counted during traversal so an admitted archive is
24
+ * always within the decoder's recovery bound without materializing repeated
25
+ * prompt strings first.
26
+ */
27
+ export function retainGuardedInput(value) {
28
+ if (!plainRecord(value))
29
+ throw new Error('guarded_input_invalid');
30
+ const strings = [];
31
+ const encodedStringBytes = [];
32
+ const indices = new Map();
33
+ let nodes = 0;
34
+ let expandedBytes = 0;
35
+ const addExpandedBytes = (bytes) => {
36
+ expandedBytes += bytes;
37
+ if (!Number.isSafeInteger(expandedBytes) || expandedBytes > MAX_DECODED_GUARDED_INPUT_BYTES) {
38
+ throw new Error('guarded_input_archive_expands_too_large');
39
+ }
40
+ };
41
+ const encode = (item, depth) => {
42
+ if (depth > MAX_GUARDED_INPUT_DEPTH)
43
+ throw new Error('guarded_input_too_deep');
44
+ nodes++;
45
+ if (nodes > MAX_GUARDED_INPUT_NODES)
46
+ throw new Error('guarded_input_too_complex');
47
+ if (typeof item === 'string') {
48
+ const index = interned(strings, encodedStringBytes, indices, item);
49
+ addExpandedBytes(encodedStringBytes[index]);
50
+ return ['s', index];
51
+ }
52
+ if (item === null || typeof item === 'boolean') {
53
+ addExpandedBytes(Buffer.byteLength(JSON.stringify(item), 'utf8'));
54
+ return ['v', item];
55
+ }
56
+ if (typeof item === 'number') {
57
+ const canonical = Number.isFinite(item) ? (Object.is(item, -0) ? 0 : item) : null;
58
+ addExpandedBytes(Buffer.byteLength(JSON.stringify(canonical), 'utf8'));
59
+ return ['v', canonical];
60
+ }
61
+ if (item === undefined || typeof item === 'function' || typeof item === 'symbol') {
62
+ addExpandedBytes(4);
63
+ return ['v', null];
64
+ }
65
+ if (Array.isArray(item)) {
66
+ addExpandedBytes(2 + Math.max(0, item.length - 1));
67
+ return ['a', Array.from({ length: item.length }, (_, index) => encode(item[index], depth + 1))];
68
+ }
69
+ if (plainRecord(item)) {
70
+ const entries = Object.entries(item).filter(([, child]) => child !== undefined)
71
+ .sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
72
+ addExpandedBytes(2 + Math.max(0, entries.length - 1));
73
+ return ['o', entries.map(([key, child]) => {
74
+ const index = interned(strings, encodedStringBytes, indices, key);
75
+ addExpandedBytes(encodedStringBytes[index] + 1);
76
+ return [index, encode(child, depth + 1)];
77
+ })];
78
+ }
79
+ throw new Error('guarded_input_invalid');
80
+ };
81
+ return { version: 1, encoding: ENCODING, strings, root: encode(value, 0) };
82
+ }
83
+ function isRetained(value) {
84
+ return plainRecord(value) && value.encoding === ENCODING;
85
+ }
86
+ /** Restore and authenticate the canonical retained representation. */
87
+ export function restoreGuardedInput(value) {
88
+ if (!isRetained(value)) {
89
+ if (!plainRecord(value))
90
+ throw new Error('guarded_input_invalid');
91
+ // Legacy pending packages retain raw JSON. Traverse it with the same
92
+ // recovery bounds before callers authenticate it with recursive hashing.
93
+ retainGuardedInput(value);
94
+ return value;
95
+ }
96
+ if (Object.keys(value).sort().join(',') !== 'encoding,root,strings,version' ||
97
+ value.version !== 1 || !Array.isArray(value.strings) ||
98
+ value.strings.some(item => typeof item !== 'string') ||
99
+ new Set(value.strings).size !== value.strings.length) {
100
+ throw new Error('guarded_input_archive_invalid');
101
+ }
102
+ let nodes = 0;
103
+ let expandedBytes = 0;
104
+ let nextFirstStringIndex = 0;
105
+ const seenStringIndices = new Set();
106
+ const encodedStringBytes = value.strings.map(string => Buffer.byteLength(JSON.stringify(string), 'utf8'));
107
+ const addExpandedBytes = (bytes) => {
108
+ expandedBytes += bytes;
109
+ if (!Number.isSafeInteger(expandedBytes) || expandedBytes > MAX_DECODED_GUARDED_INPUT_BYTES) {
110
+ throw new Error('guarded_input_archive_expands_too_large');
111
+ }
112
+ };
113
+ const stringAt = (index) => {
114
+ if (!Number.isSafeInteger(index) || index < 0 ||
115
+ index >= value.strings.length)
116
+ throw new Error('guarded_input_archive_invalid');
117
+ const resolved = index;
118
+ if (!seenStringIndices.has(resolved)) {
119
+ if (resolved !== nextFirstStringIndex)
120
+ throw new Error('guarded_input_archive_invalid');
121
+ seenStringIndices.add(resolved);
122
+ nextFirstStringIndex++;
123
+ }
124
+ return value.strings[resolved];
125
+ };
126
+ const decode = (node, depth) => {
127
+ if (depth > MAX_GUARDED_INPUT_DEPTH)
128
+ throw new Error('guarded_input_too_deep');
129
+ nodes++;
130
+ if (nodes > MAX_GUARDED_INPUT_NODES)
131
+ throw new Error('guarded_input_too_complex');
132
+ if (!Array.isArray(node) || typeof node[0] !== 'string') {
133
+ throw new Error('guarded_input_archive_invalid');
134
+ }
135
+ if (node[0] === 's' && node.length === 2) {
136
+ const string = stringAt(node[1]);
137
+ addExpandedBytes(encodedStringBytes[node[1]]);
138
+ return string;
139
+ }
140
+ if (node[0] === 'v' && node.length === 2 &&
141
+ (node[1] === null || typeof node[1] === 'boolean' ||
142
+ (typeof node[1] === 'number' && Number.isFinite(node[1]) && !Object.is(node[1], -0)))) {
143
+ addExpandedBytes(Buffer.byteLength(JSON.stringify(node[1]), 'utf8'));
144
+ return node[1];
145
+ }
146
+ if (node[0] === 'a' && node.length === 2 && Array.isArray(node[1])) {
147
+ addExpandedBytes(2 + Math.max(0, node[1].length - 1));
148
+ return node[1].map(child => decode(child, depth + 1));
149
+ }
150
+ if (node[0] === 'o' && node.length === 2 && Array.isArray(node[1])) {
151
+ const result = {};
152
+ let previousKey;
153
+ addExpandedBytes(2 + Math.max(0, node[1].length - 1));
154
+ for (const entry of node[1]) {
155
+ if (!Array.isArray(entry) || entry.length !== 2)
156
+ throw new Error('guarded_input_archive_invalid');
157
+ const key = stringAt(entry[0]);
158
+ if (previousKey !== undefined && previousKey >= key)
159
+ throw new Error('guarded_input_archive_invalid');
160
+ previousKey = key;
161
+ addExpandedBytes(encodedStringBytes[entry[0]] + 1);
162
+ Object.defineProperty(result, key, {
163
+ value: decode(entry[1], depth + 1),
164
+ enumerable: true,
165
+ configurable: true,
166
+ writable: true,
167
+ });
168
+ }
169
+ return result;
170
+ }
171
+ throw new Error('guarded_input_archive_invalid');
172
+ };
173
+ const restored = decode(value.root, 0);
174
+ if (!plainRecord(restored) || nextFirstStringIndex !== value.strings.length) {
175
+ throw new Error('guarded_input_archive_invalid');
176
+ }
177
+ return restored;
178
+ }
179
+ //# sourceMappingURL=guarded-input-retention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guarded-input-retention.js","sourceRoot":"","sources":["../../src/converge/guarded-input-retention.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { link, lstat, mkdir, realpath, unlink } from 'node:fs/promises';
3
3
  import { dirname, join, relative, resolve, sep } from 'node:path';
4
+ import { isDeepStrictEqual } from 'node:util';
4
5
  import { convergeAttemptStatePath, loadConvergeAttemptState } from './attempt-budget.js';
5
6
  import { convergeRunStatePath, loadConvergeRunState } from './run-state.js';
6
7
  import { launchSchema } from './launch-record.js';
7
- import { validateOrdinaryPendingPackage } from './ordinary-pending-package.js';
8
+ import { prepareOrdinaryPendingGuardedInput, validateOrdinaryPendingPackage } from './ordinary-pending-package.js';
8
9
  import { MAX_ASYNC_CALLS_PER_ROUND, snapshotAsyncHistory, snapshotAsyncResults } from '../dispatch/async-lane.js';
9
- import { guardedInputSha256, sha256Hex } from '../report/run-header.js';
10
+ import { sha256Hex } from '../report/run-header.js';
10
11
  import { MAX_REPORT_BYTES, readStable } from '../telemetry/recovery/files.js';
11
- import { serializeRecoveryDocument, writeExclusive } from '../evidence/original-run/journal.js';
12
+ import { serializeRecoveryDocument, writeExclusiveBytes } from '../evidence/original-run/journal.js';
12
13
  import { syncNativeDirectory, writeNativeStateExclusive } from './native-lock.js';
13
14
  import { assertReviewCyclePair } from './fresh-review.js';
14
15
  // Leave room for the recovery package's retained-async descriptors beneath
@@ -18,29 +19,46 @@ function retainedInputsPath(options) {
18
19
  const namespace = sha256Hex(JSON.stringify([options.target, options.cycleId ?? null]));
19
20
  return join(options.gitCommonDir, 'rcl-ordinary-inputs', `${namespace}-attempt-${options.attempt}-${options.packetSha256}.json`);
20
21
  }
21
- function retainedInputs(options) {
22
- return { version: 1, target: options.target, headSha: options.headSha, baseSha: options.baseSha,
22
+ function retainedInputs(options, representation = 'retained', prepared = prepareOrdinaryPendingGuardedInput(options.guardedInput)) {
23
+ // Validate recursive bounds before guardedInputSha256 reaches stableStringify.
24
+ // Version 1 keeps its historical raw wire representation; only version 2
25
+ // stores the validated compact archive.
26
+ return { version: representation === 'raw' ? 1 : 2,
27
+ target: options.target, headSha: options.headSha, baseSha: options.baseSha,
23
28
  attempt: options.attempt, round: options.round, ...(options.cycleId ? { cycleId: options.cycleId } : {}),
24
- inputSha256: guardedInputSha256(options.guardedInput), guardedInput: options.guardedInput };
29
+ inputSha256: prepared.inputSha256(),
30
+ guardedInput: representation === 'raw' ? prepared.wireInput : prepared.retained };
25
31
  }
26
32
  /** Called under native target ownership before spending the claim or dispatching. */
27
33
  export async function retainOrdinaryLaunchInputs(options) {
28
34
  const common = await realpath(options.gitCommonDir);
29
- const packet = retainedInputs(options);
30
- const bytes = serializeRecoveryDocument(packet, MAX_RETAINED_INPUT_BYTES);
31
- const descriptors = options.asyncDescriptors ?? [];
32
- // Recovery repeats the async reviewer identifiers alongside the guarded
33
- // roster. Bound that actual envelope before claim, including its future
34
- // fixed-length hashes and the largest permitted PID representation.
35
- const projectedRecovery = {
36
- target: options.target, headSha: options.headSha, baseSha: options.baseSha ?? 'f'.repeat(40),
37
- attempt: options.attempt, round: options.round, pid: Number.MAX_SAFE_INTEGER,
38
- retainedAsyncSha256: descriptors.map(() => 'f'.repeat(64)),
39
- retainedAsync: descriptors.map(descriptor => ({ model: descriptor.model, role: descriptor.role,
40
- provider: descriptor.provider, lane: 'async', sha256: 'f'.repeat(64) })),
41
- guardedInput: options.guardedInput,
42
- };
43
- serializeRecoveryDocument(projectedRecovery, MAX_REPORT_BYTES);
35
+ let packet;
36
+ let bytes;
37
+ try {
38
+ packet = retainedInputs(options);
39
+ bytes = serializeRecoveryDocument(packet, MAX_RETAINED_INPUT_BYTES);
40
+ const descriptors = options.asyncDescriptors ?? [];
41
+ // Recovery repeats the async reviewer identifiers alongside the guarded
42
+ // roster. Bound that actual envelope before claim, including its future
43
+ // fixed-length hashes and the largest permitted PID representation.
44
+ const projectedRecovery = {
45
+ guardedInputRepresentation: { version: 1, encoding: 'json-string-table-v1' },
46
+ target: options.target, headSha: options.headSha, baseSha: options.baseSha ?? 'f'.repeat(40),
47
+ attempt: options.attempt, round: options.round, pid: Number.MAX_SAFE_INTEGER,
48
+ retainedAsyncSha256: descriptors.map(() => 'f'.repeat(64)),
49
+ retainedAsync: descriptors.map(descriptor => ({ model: descriptor.model, role: descriptor.role,
50
+ provider: descriptor.provider, lane: 'async', sha256: 'f'.repeat(64) })),
51
+ guardedInput: packet.guardedInput,
52
+ };
53
+ serializeRecoveryDocument(projectedRecovery, MAX_REPORT_BYTES);
54
+ }
55
+ catch (error) {
56
+ if (error instanceof Error && (error.message === 'recovery_document_too_large' ||
57
+ error.message === 'guarded_input_archive_expands_too_large')) {
58
+ throw new Error('retained_review_work_too_large: retained prompts exceed the recovery limit; split the diff or reduce prompt context or the reviewer roster before retrying');
59
+ }
60
+ throw error;
61
+ }
44
62
  const packetSha256 = sha256Hex(bytes);
45
63
  // A preclaim crash leaves the ordinal unspent. Include the full packet so
46
64
  // a changed base (which the guarded-input digest omits) gets its own file.
@@ -98,14 +116,25 @@ function retainedHistoricalInput(text, options, packetSha256) {
98
116
  if (!value || typeof value !== 'object' || Array.isArray(value))
99
117
  refuse('retained_input_mismatch');
100
118
  const packet = value;
101
- const guardedInput = packet.guardedInput;
102
- if (!guardedInput || typeof guardedInput !== 'object' || Array.isArray(guardedInput))
119
+ if (packet.version !== 1 && packet.version !== 2)
120
+ refuse('retained_input_mismatch');
121
+ const compact = packet.guardedInput && typeof packet.guardedInput === 'object' &&
122
+ !Array.isArray(packet.guardedInput) &&
123
+ packet.guardedInput.encoding === 'json-string-table-v1';
124
+ if (compact !== (packet.version === 2))
125
+ refuse('retained_input_mismatch');
126
+ let prepared;
127
+ try {
128
+ prepared = prepareOrdinaryPendingGuardedInput(packet.guardedInput);
129
+ }
130
+ catch {
103
131
  refuse('retained_input_mismatch');
104
- const expected = retainedInputs({ ...options, guardedInput: guardedInput });
132
+ }
133
+ const expected = retainedInputs({ ...options, guardedInput: prepared.input }, packet.version === 1 ? 'raw' : 'retained', prepared);
105
134
  if (sha256Hex(text) !== packetSha256 || text !== serializeRecoveryDocument(expected, MAX_RETAINED_INPUT_BYTES)) {
106
135
  refuse('retained_input_mismatch');
107
136
  }
108
- return guardedInput;
137
+ return prepared;
109
138
  }
110
139
  /**
111
140
  * Authenticate reconstructed ordinary inputs without locks, claims or native writes.
@@ -116,6 +145,9 @@ function retainedHistoricalInput(text, options, packetSha256) {
116
145
  export async function exportOrdinaryPendingPackage(options) {
117
146
  if (!/^[a-f0-9]{40}$/.test(options.baseSha) || options.baseSha !== options.expectedBaseSha)
118
147
  refuse('base_mismatch');
148
+ // Current caller input participates in hashes and canonical comparisons
149
+ // below, so bound its recursion before either operation.
150
+ const currentInput = prepareOrdinaryPendingGuardedInput(options.guardedInput);
119
151
  const common = await realpath(options.gitCommonDir);
120
152
  const outputPath = resolve(options.path);
121
153
  const outputParent = await realpath(dirname(outputPath));
@@ -138,7 +170,7 @@ export async function exportOrdinaryPendingPackage(options) {
138
170
  launch.pendingRecovery || !record || record.pid !== launch.pid || record.retrySource ||
139
171
  record.boundFixRecoverySource || record.pendingRecoverySource ||
140
172
  launch.attempt !== attempts.attemptsUsed || launch.headSha !== options.headSha ||
141
- (!cycleBacked && launch.inputSha256 !== guardedInputSha256(options.guardedInput)) ||
173
+ (!cycleBacked && launch.inputSha256 !== currentInput.inputSha256()) ||
142
174
  (options.expectedRound !== undefined && launch.round !== options.expectedRound))
143
175
  refuse('input_mismatch');
144
176
  if (ownerAlive(launch.pid))
@@ -155,24 +187,23 @@ export async function exportOrdinaryPendingPackage(options) {
155
187
  const retainedBefore = retainedPath ? await readStable(retainedPath, MAX_RETAINED_INPUT_BYTES) : undefined;
156
188
  if (binding && (!retainedBefore || retainedBefore.sha256 !== binding.packetSha256))
157
189
  refuse('retained_input_mismatch');
158
- if (binding && !cycleBacked && retainedBefore.text !== serializeRecoveryDocument(retainedInputs({
159
- gitCommonDir: common, target: options.target, headSha: launch.headSha, baseSha: options.baseSha,
160
- attempt: launch.attempt, round: launch.round, guardedInput: options.guardedInput,
161
- }), MAX_RETAINED_INPUT_BYTES))
162
- refuse('retained_input_mismatch');
163
- const historicalInput = binding && cycleBacked ? retainedHistoricalInput(retainedBefore.text, {
190
+ const historicalInput = binding ? retainedHistoricalInput(retainedBefore.text, {
164
191
  gitCommonDir: common, target: options.target, headSha: launch.headSha, baseSha: options.baseSha,
165
192
  attempt: launch.attempt, round: launch.round, ...(state.cycle ? { cycleId: state.cycle.id } : {}),
166
193
  guardedInput: options.guardedInput,
167
- }, binding.packetSha256) : options.guardedInput;
168
- if (launch.inputSha256 !== guardedInputSha256(historicalInput))
194
+ }, binding.packetSha256) : currentInput;
195
+ if (binding && !cycleBacked &&
196
+ !isDeepStrictEqual(historicalInput.retained, currentInput.retained)) {
197
+ refuse('retained_input_mismatch');
198
+ }
199
+ if (launch.inputSha256 !== historicalInput.inputSha256())
169
200
  refuse('input_mismatch');
170
201
  const snapshot = cycleBacked
171
202
  ? await snapshotAsyncHistory(options.asyncStoreDir, options.asyncTargetKey, Math.max(MAX_ASYNC_CALLS_PER_ROUND, (attempts.attemptsUsed + 1) * MAX_ASYNC_CALLS_PER_ROUND))
172
203
  : await snapshotAsyncResults(options.asyncStoreDir, options.asyncTargetKey);
173
204
  const identity = (item) => JSON.stringify([item.model, item.role, item.provider]);
174
- const historicalRoster = Array.isArray(historicalInput.roster)
175
- ? historicalInput.roster.filter(item => item && typeof item === 'object' &&
205
+ const historicalRoster = Array.isArray(historicalInput.input.roster)
206
+ ? historicalInput.input.roster.filter(item => item && typeof item === 'object' &&
176
207
  item.lane === 'async')
177
208
  : [];
178
209
  const expected = (cycleBacked ? historicalRoster : options.asyncDescriptors).map(identity).sort();
@@ -187,15 +218,18 @@ export async function exportOrdinaryPendingPackage(options) {
187
218
  provider: review.provider, lane: 'async',
188
219
  }));
189
220
  const retainedAsyncSha256 = retainedAsync.map(item => item.sha256).sort();
190
- const candidate = { ...(cycleBacked ? { version: 2, cycle: state.cycle,
221
+ const candidate = {
222
+ guardedInputRepresentation: { version: 1, encoding: 'json-string-table-v1' },
223
+ ...(cycleBacked ? { version: 2, cycle: state.cycle,
191
224
  attemptCap: attempts.cap, roundCap: state.roundCap, attemptsUsed: attempts.attemptsUsed,
192
225
  asyncAttribution: 'cycle-history-unattributed' } : {}),
193
226
  target: options.target, headSha: launch.headSha,
194
227
  baseSha: options.baseSha, attempt: launch.attempt, round: launch.round, pid: launch.pid,
195
- retainedAsyncSha256, retainedAsync, guardedInput: historicalInput };
228
+ retainedAsyncSha256, retainedAsync, guardedInput: historicalInput.retained
229
+ };
196
230
  // Canonical JSON drops undefined optional properties exactly as the original
197
231
  // guarded-input hash did; it never adds an artificial null spec binding.
198
- const packet = validateOrdinaryPendingPackage(JSON.parse(JSON.stringify(candidate)), { ...candidate, inputSha256: launch.inputSha256 });
232
+ const packet = validateOrdinaryPendingPackage(candidate, { ...candidate, inputSha256: launch.inputSha256 }, historicalInput);
199
233
  const [nativeAfter, attemptsAfter, asyncAfter] = await Promise.all([
200
234
  readStable(nativePath), readStable(attemptPath),
201
235
  cycleBacked
@@ -209,7 +243,7 @@ export async function exportOrdinaryPendingPackage(options) {
209
243
  refuse('state_changed');
210
244
  const bytes = serializeRecoveryDocument(packet, MAX_REPORT_BYTES);
211
245
  if (!options.preview)
212
- await writeExclusive(outputPath, packet, MAX_REPORT_BYTES);
246
+ await writeExclusiveBytes(outputPath, bytes);
213
247
  return { mode: options.preview ? 'pending-package-preview' : 'pending-package-export', path: outputPath,
214
248
  packageSha256: sha256Hex(bytes), target: options.target, headSha: launch.headSha, baseSha: options.baseSha,
215
249
  baseBinding: retainedBefore ? 'retained-launch-inputs' : 'current-review-target', blockingOutcome: 'unknown',
@@ -1 +1 @@
1
- {"version":3,"file":"ordinary-pending-export.js","sourceRoot":"","sources":["../../src/converge/ordinary-pending-export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ordinary-pending-export.js","sourceRoot":"","sources":["../../src/converge/ordinary-pending-export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kCAAkC,EAAE,8BAA8B,EACF,MAAM,+BAA+B,CAAC;AAC/G,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAClH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AACrG,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,2EAA2E;AAC3E,4EAA4E;AAC5E,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAclD,SAAS,kBAAkB,CAAC,OAAiH;IAC3I,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACvF,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,qBAAqB,EAAE,GAAG,SAAS,YAAY,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,OAAO,CAAC,CAAC;AACnI,CAAC;AAED,SAAS,cAAc,CAAC,OAA6B,EAAE,iBAAqC,UAAU,EACpG,QAAQ,GAAG,kCAAkC,CAAC,OAAO,CAAC,YAAY,CAAC;IACnE,+EAA+E;IAC/E,yEAAyE;IACzE,wCAAwC;IACxC,OAAO,EAAE,OAAO,EAAE,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO;QAC1E,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxG,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE;QACnC,YAAY,EAAE,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AACtF,CAAC;AAQD,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,OAA6B;IAC5E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,MAAyC,CAAC;IAC9C,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACjC,KAAK,GAAG,yBAAyB,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACnD,wEAAwE;QACxE,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,iBAAiB,GAA2B;YAChD,0BAA0B,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE;YAC5E,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5F,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,gBAAgB;YAC5E,mBAAmB,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1D,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI;gBAC5F,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1E,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;QACF,yBAAyB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,6BAA6B;YAC1E,KAAK,CAAC,OAAO,KAAK,yCAAyC,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,4JAA4J,CAAC,CAAC;QAChL,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACtC,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACpD,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;IACtE,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS;QACvF,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3G,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,UAAU,EAAE,UAAU,CAAC;IACpD,MAAM,yBAAyB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC;QAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC;IACpC,OAAO,KAAK,EAAE,CAAC;QACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;QACpE,IAAI,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,wBAAwB,EAAE,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAChH,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,UAAU,CAAC,IAAI,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACxB,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;AAClE,CAAC;AAiBD,SAAS,MAAM,CAAC,MAAc,IAAW,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACvF,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAC1C,OAAO,KAAK,EAAE,CAAC;QAAC,OAAQ,KAA+B,CAAC,IAAI,KAAK,OAAO,CAAC;IAAC,CAAC;AAC7E,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY,EAAE,OAA6B,EAC1E,YAAoB;IACpB,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAAC,CAAC;IAC9E,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACnG,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC;QAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;QAC5E,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;QAClC,MAAM,CAAC,YAAwC,CAAC,QAAQ,KAAK,sBAAsB,CAAC;IACvF,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC;QAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAC1E,IAAI,QAA6C,CAAC;IAClD,IAAI,CAAC;QAAC,QAAQ,GAAG,kCAAkC,CAAC,MAAM,CAAC,YAAuC,CAAC,CAAC;IAAC,CAAC;IACtG,MAAM,CAAC;QAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,EAC1E,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvD,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,YAAY,IAAI,IAAI,KAAK,yBAAyB,CAAC,QAAQ,EAAE,wBAAwB,CAAC,EAAE,CAAC;QAC/G,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,OAAqC;IACtF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,eAAe;QAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IACpH,wEAAwE;IACxE,yDAAyD;IACzD,MAAM,YAAY,GAAG,kCAAkC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAClD,IAAI,UAAU,KAAK,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACnH,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5G,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1C,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;KAC/F,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,CAAC,QAAQ;QAAE,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACxE,MAAM,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;IAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,QAAQ;QACjG,MAAM,CAAC,eAAe,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,WAAW;QACpF,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,qBAAqB;QAC7D,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,YAAY,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;QAC9E,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;QACnE,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,aAAa,CAAC;QAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC9G,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAClD,qEAAqE;IACrE,8EAA8E;IAC9E,+EAA+E;IAC/E,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;IACtC,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;QAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM;QAC9F,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3G,IAAI,OAAO,IAAI,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC;QAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACtH,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,cAAe,CAAC,IAAI,EAAE;QAC9E,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO;QAC/F,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjG,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IACxC,IAAI,OAAO,IAAI,CAAC,WAAW;QACvB,CAAC,iBAAiB,CAAC,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxE,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,eAAe,CAAC,WAAW,EAAE;QAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEnF,MAAM,QAAQ,GAAG,WAAW;QAC1B,CAAC,CAAC,MAAM,oBAAoB,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,EACxE,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,yBAAyB,CAAC,CAAC;QAC/F,CAAC,CAAC,MAAM,oBAAoB,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,CAAC,IAAwD,EAAE,EAAE,CAC5E,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;QAClE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAC3E,IAAgC,CAAC,IAAI,KAAK,OAAO,CAA8D;QAClH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAClG,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,IAAI,WAAW;QACb,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAChG,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7D,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI;QACjF,QAAQ,EAAE,MAAM,CAAC,QAAS,EAAE,IAAI,EAAE,OAAgB;KACnD,CAAC,CAAC,CAAC;IACJ,MAAM,mBAAmB,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,MAAM,SAAS,GAA2B;QACxC,0BAA0B,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE;QAC5E,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK;YAC3D,UAAU,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY;YACvF,gBAAgB,EAAE,4BAAqC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO;QAC/C,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG;QACvF,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,CAAC,QAAQ;KAAE,CAAC;IAC/E,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,MAAM,GAAG,8BAA8B,CAAC,SAAS,EACrD,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;IACtE,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjE,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC;QAC/C,WAAW;YACT,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,EAClE,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,yBAAyB,CAAC,EAAE,mBAAmB,CAAC;YACpH,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE,mBAAmB,CAAC;KACjG,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM;QAC5F,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IACjJ,IAAI,cAAc,IAAI,CAAC,MAAM,UAAU,CAAC,YAAa,EAAE,wBAAwB,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM;QAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAC5I,MAAM,KAAK,GAAG,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAClE,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,MAAM,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,wBAAwB,EAAE,IAAI,EAAE,UAAU;QACrG,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO;QAC1G,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,EAAE,eAAe,EAAE,SAAS;QAC5G,YAAY,EAAE,sCAAsC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW;QACrF,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY;QAClG,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,iBAAiB,EAAE,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,cAAc,CAAC,MAAM;QACpG,mBAAmB,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;YAC9D,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/E,CAAC"}
@@ -1,6 +1,11 @@
1
1
  import type { NativeReviewCycle } from './review-cycle.js';
2
+ import { type RetainedGuardedInput, type StoredGuardedInput } from './guarded-input-retention.js';
2
3
  export interface OrdinaryPendingPackage {
3
4
  version?: 2;
5
+ guardedInputRepresentation?: {
6
+ version: 1;
7
+ encoding: 'json-string-table-v1';
8
+ };
4
9
  target: string;
5
10
  headSha: string;
6
11
  baseSha: string;
@@ -20,7 +25,7 @@ export interface OrdinaryPendingPackage {
20
25
  provider: string;
21
26
  lane: 'async';
22
27
  }[];
23
- guardedInput: Record<string, unknown>;
28
+ guardedInput: StoredGuardedInput;
24
29
  }
25
30
  export interface PendingLaunchIdentity {
26
31
  target: string;
@@ -36,4 +41,13 @@ export interface PendingLaunchIdentity {
36
41
  roundCap?: number;
37
42
  attemptsUsed?: number;
38
43
  }
39
- export declare function validateOrdinaryPendingPackage(value: OrdinaryPendingPackage, expected: PendingLaunchIdentity): OrdinaryPendingPackage;
44
+ export interface PreparedOrdinaryPendingGuardedInput {
45
+ readonly wireInput: Record<string, unknown>;
46
+ readonly input: Record<string, unknown>;
47
+ readonly retained: RetainedGuardedInput;
48
+ inputSha256(): string;
49
+ }
50
+ /** Prepare one bounded canonical archive and lazily memoized digest for trusted internal reuse. */
51
+ export declare function prepareOrdinaryPendingGuardedInput(stored: StoredGuardedInput): PreparedOrdinaryPendingGuardedInput;
52
+ export declare function ordinaryPendingGuardedInput(value: OrdinaryPendingPackage): Record<string, unknown>;
53
+ export declare function validateOrdinaryPendingPackage(value: OrdinaryPendingPackage, expected: PendingLaunchIdentity, prepared?: PreparedOrdinaryPendingGuardedInput): OrdinaryPendingPackage;
@@ -1,7 +1,77 @@
1
1
  import { guardedInputSha256, stableStringify } from '../report/run-header.js';
2
2
  import { isDeepStrictEqual } from 'node:util';
3
- export function validateOrdinaryPendingPackage(value, expected) {
4
- const input = value?.guardedInput;
3
+ import { retainGuardedInput, restoreGuardedInput } from './guarded-input-retention.js';
4
+ const preparedInputs = new WeakSet();
5
+ const deeplyFrozen = new WeakSet();
6
+ function deepFreezeJson(value) {
7
+ if (!value || typeof value !== 'object' || deeplyFrozen.has(value))
8
+ return value;
9
+ for (const child of Object.values(value))
10
+ deepFreezeJson(child);
11
+ Object.freeze(value);
12
+ deeplyFrozen.add(value);
13
+ return value;
14
+ }
15
+ /** Prepare one bounded canonical archive and lazily memoized digest for trusted internal reuse. */
16
+ export function prepareOrdinaryPendingGuardedInput(stored) {
17
+ const compact = !!stored && typeof stored === 'object' && !Array.isArray(stored) &&
18
+ stored.encoding === 'json-string-table-v1';
19
+ let input;
20
+ let wireInput;
21
+ let retained;
22
+ if (compact) {
23
+ input = deepFreezeJson(restoreGuardedInput(stored));
24
+ wireInput = input;
25
+ retained = deepFreezeJson({ version: 1, encoding: 'json-string-table-v1',
26
+ strings: stored.strings,
27
+ root: stored.root });
28
+ }
29
+ else {
30
+ wireInput = stored;
31
+ // This single encoder pass both validates raw recursive bounds and creates
32
+ // the immutable wire archive. Canonical expansion stays lazy for retention
33
+ // paths that only need the archive, exact raw bytes and digest.
34
+ retained = deepFreezeJson(retainGuardedInput(wireInput));
35
+ }
36
+ const digest = guardedInputSha256(input ?? wireInput);
37
+ const prepared = Object.freeze({ wireInput, retained,
38
+ get input() {
39
+ return input ??= deepFreezeJson(restoreGuardedInput(retained));
40
+ },
41
+ inputSha256: () => digest });
42
+ preparedInputs.add(prepared);
43
+ return prepared;
44
+ }
45
+ function validateGuardedInputRepresentation(value) {
46
+ const representation = value?.guardedInputRepresentation;
47
+ const compact = !!value?.guardedInput &&
48
+ value.guardedInput.encoding === 'json-string-table-v1';
49
+ const representationValid = representation === undefined
50
+ ? !compact
51
+ : !!representation && typeof representation === 'object' && !Array.isArray(representation) &&
52
+ representation.version === 1 && representation.encoding === 'json-string-table-v1' &&
53
+ Object.keys(representation).sort().join(',') === 'encoding,version' && compact;
54
+ if (!representationValid)
55
+ throw new Error('ordinary_pending_package_mismatch');
56
+ }
57
+ export function ordinaryPendingGuardedInput(value) {
58
+ validateGuardedInputRepresentation(value);
59
+ return restoreGuardedInput(value.guardedInput);
60
+ }
61
+ export function validateOrdinaryPendingPackage(value, expected, prepared) {
62
+ let input;
63
+ try {
64
+ if (value)
65
+ validateGuardedInputRepresentation(value);
66
+ if (prepared !== undefined &&
67
+ (!preparedInputs.has(prepared) || value?.guardedInput !== prepared.retained)) {
68
+ throw new Error('ordinary_pending_package_mismatch');
69
+ }
70
+ input = value ? prepared?.input ?? restoreGuardedInput(value.guardedInput) : undefined;
71
+ }
72
+ catch {
73
+ throw new Error('ordinary_pending_package_mismatch');
74
+ }
5
75
  const specPresent = !!input && Object.hasOwn(input, 'spec');
6
76
  const keys = ['asyncRoles', 'config', 'diff', 'head', 'kind', 'pr', 'prompts', 'repo', 'roster',
7
77
  ...(specPresent ? ['spec'] : [])];
@@ -27,7 +97,8 @@ export function validateOrdinaryPendingPackage(value, expected) {
27
97
  if (!value || !cycleFieldsValid || value.target !== expected.target || value.headSha !== expected.headSha || value.baseSha !== expected.baseSha || value.attempt !== expected.attempt || value.round !== expected.round || value.pid !== expected.pid || !/^[a-f0-9]{40}$/.test(value.baseSha) ||
28
98
  !Number.isSafeInteger(value.attempt) || value.attempt < 1 || !Number.isSafeInteger(value.round) || value.round < 1 ||
29
99
  !Number.isSafeInteger(value.pid) || value.pid < 1 || !input || Object.keys(input).sort().join(',') !== keys.join(',') ||
30
- !Array.isArray(value.retainedAsyncSha256) || [...value.retainedAsyncSha256].sort().join(',') !== [...expected.retainedAsyncSha256].sort().join(',') || input.head !== value.headSha || guardedInputSha256(input) !== expected.inputSha256)
100
+ !Array.isArray(value.retainedAsyncSha256) || [...value.retainedAsyncSha256].sort().join(',') !== [...expected.retainedAsyncSha256].sort().join(',') || input.head !== value.headSha ||
101
+ (prepared ? prepared.inputSha256() : guardedInputSha256(input)) !== expected.inputSha256)
31
102
  throw new Error('ordinary_pending_package_mismatch');
32
103
  const cycleHistory = value.version === 2;
33
104
  const descriptorHashes = Array.isArray(value.retainedAsync)
@@ -45,6 +116,8 @@ export function validateOrdinaryPendingPackage(value, expected) {
45
116
  !input.roster.some(seat => seat?.model === item.model &&
46
117
  seat.role === item.role && seat.provider === item.provider && seat.lane === 'async')))
47
118
  throw new Error('ordinary_pending_package_mismatch');
48
- return Object.freeze(JSON.parse(stableStringify(value)));
119
+ return prepared
120
+ ? deepFreezeJson(value)
121
+ : Object.freeze(JSON.parse(stableStringify(value)));
49
122
  }
50
123
  //# sourceMappingURL=ordinary-pending-package.js.map