@allocator-one/rcl 4.5.7 → 4.5.9
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 +5 -4
- package/dist/consensus/semantic-deduper.d.ts +2 -1
- package/dist/consensus/semantic-deduper.js +21 -10
- package/dist/consensus/semantic-deduper.js.map +1 -1
- package/dist/converge/attempt-budget.d.ts +11 -0
- package/dist/converge/attempt-budget.js +119 -61
- package/dist/converge/attempt-budget.js.map +1 -1
- package/dist/converge/delivery-reconciliation.d.ts +2 -1
- package/dist/converge/delivery-reconciliation.js +17 -9
- package/dist/converge/delivery-reconciliation.js.map +1 -1
- package/dist/converge/guarded-input-retention.d.ts +23 -0
- package/dist/converge/guarded-input-retention.js +179 -0
- package/dist/converge/guarded-input-retention.js.map +1 -0
- package/dist/converge/launch-guard.d.ts +3 -0
- package/dist/converge/launch-guard.js +53 -17
- package/dist/converge/launch-guard.js.map +1 -1
- package/dist/converge/ordinary-pending-export.js +74 -40
- package/dist/converge/ordinary-pending-export.js.map +1 -1
- package/dist/converge/ordinary-pending-package.d.ts +16 -2
- package/dist/converge/ordinary-pending-package.js +77 -4
- package/dist/converge/ordinary-pending-package.js.map +1 -1
- package/dist/converge/recovered-production.d.ts +14 -0
- package/dist/converge/recovered-production.js +61 -0
- package/dist/converge/recovered-production.js.map +1 -0
- package/dist/converge/recovery-launch.js +82 -35
- package/dist/converge/recovery-launch.js.map +1 -1
- package/dist/converge/run-state.d.ts +2 -0
- package/dist/converge/run-state.js +26 -12
- package/dist/converge/run-state.js.map +1 -1
- package/dist/converge/semantic-state.js +18 -4
- package/dist/converge/semantic-state.js.map +1 -1
- package/dist/coordination/registry-lock.d.ts +2 -0
- package/dist/coordination/registry-lock.js +42 -13
- package/dist/coordination/registry-lock.js.map +1 -1
- package/dist/evidence/claim-recovery/delivery.d.ts +25 -0
- package/dist/evidence/claim-recovery/delivery.js +100 -0
- package/dist/evidence/claim-recovery/delivery.js.map +1 -0
- package/dist/evidence/claim-recovery/public-adoption.d.ts +31 -0
- package/dist/evidence/claim-recovery/public-adoption.js +177 -0
- package/dist/evidence/claim-recovery/public-adoption.js.map +1 -0
- package/dist/evidence/claim-recovery/public-manifest.d.ts +114 -0
- package/dist/evidence/claim-recovery/public-manifest.js +11 -0
- package/dist/evidence/claim-recovery/public-manifest.js.map +1 -0
- package/dist/evidence/claim-recovery/public-model.d.ts +85 -0
- package/dist/evidence/claim-recovery/public-model.js +177 -0
- package/dist/evidence/claim-recovery/public-model.js.map +1 -0
- package/dist/evidence/original-run/journal.d.ts +10 -0
- package/dist/evidence/original-run/journal.js +55 -3
- package/dist/evidence/original-run/journal.js.map +1 -1
- package/dist/evidence/original-run/lock.js +22 -9
- package/dist/evidence/original-run/lock.js.map +1 -1
- package/dist/evidence/recover-claim.d.ts +21 -0
- package/dist/evidence/recover-claim.js +504 -0
- package/dist/evidence/recover-claim.js.map +1 -0
- package/dist/index.js +234 -139
- package/dist/index.js.map +1 -1
- package/dist/report/assembly.d.ts +2 -0
- package/dist/report/assembly.js +1 -0
- package/dist/report/assembly.js.map +1 -1
- package/dist/report/consensus-assembly.d.ts +2 -0
- package/dist/report/consensus-assembly.js +6 -3
- package/dist/report/consensus-assembly.js.map +1 -1
- package/dist/report/reviewer-artifact.js +3 -1
- package/dist/report/reviewer-artifact.js.map +1 -1
- package/dist/report/run-header.js +2 -0
- package/dist/report/run-header.js.map +1 -1
- package/dist/telemetry/deliver.d.ts +8 -0
- package/dist/telemetry/deliver.js +55 -8
- package/dist/telemetry/deliver.js.map +1 -1
- package/dist/telemetry/events.js +2 -0
- package/dist/telemetry/events.js.map +1 -1
- package/dist/telemetry/outbox.d.ts +20 -0
- package/dist/telemetry/outbox.js +324 -103
- package/dist/telemetry/outbox.js.map +1 -1
- package/dist/telemetry/reviewer-delivery.d.ts +95 -3
- package/dist/telemetry/reviewer-delivery.js +600 -12
- package/dist/telemetry/reviewer-delivery.js.map +1 -1
- package/dist/telemetry/sink.d.ts +14 -0
- package/dist/telemetry/sink.js +44 -2
- package/dist/telemetry/sink.js.map +1 -1
- package/dist/telemetry/terminal-reviewer-delivery.d.ts +154 -5
- package/dist/telemetry/terminal-reviewer-delivery.js +196 -21
- package/dist/telemetry/terminal-reviewer-delivery.js.map +1 -1
- package/package.json +1 -1
|
@@ -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 {
|
|
10
|
+
import { sha256Hex } from '../report/run-header.js';
|
|
10
11
|
import { MAX_REPORT_BYTES, readStable } from '../telemetry/recovery/files.js';
|
|
11
|
-
import { serializeRecoveryDocument,
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
102
|
-
|
|
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
|
-
|
|
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
|
|
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 !==
|
|
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
|
-
|
|
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) :
|
|
168
|
-
if (
|
|
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 = {
|
|
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(
|
|
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
|
|
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:
|
|
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
|
|
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
|
-
|
|
4
|
-
|
|
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 ||
|
|
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
|
|
119
|
+
return prepared
|
|
120
|
+
? deepFreezeJson(value)
|
|
121
|
+
: Object.freeze(JSON.parse(stableStringify(value)));
|
|
49
122
|
}
|
|
50
123
|
//# sourceMappingURL=ordinary-pending-package.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ordinary-pending-package.js","sourceRoot":"","sources":["../../src/converge/ordinary-pending-package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ordinary-pending-package.js","sourceRoot":"","sources":["../../src/converge/ordinary-pending-package.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ConsensusFinding } from '../consensus/types.js';
|
|
2
|
+
import type { ConvergeContext } from '../report/run-header.js';
|
|
3
|
+
/** Local predecessor evidence, selected before providers; never review authority. */
|
|
4
|
+
export interface RecoveredProduction {
|
|
5
|
+
readonly version: 1;
|
|
6
|
+
readonly nativeSha256: string;
|
|
7
|
+
}
|
|
8
|
+
/** A patch review outside a repository has no canonical native target. Preserve
|
|
9
|
+
* that ordinary producer while refusing every other Git discovery failure. */
|
|
10
|
+
export declare function selectCurrentRecoveredProduction(context: ConvergeContext, cwd?: string): Promise<RecoveredProduction | undefined>;
|
|
11
|
+
/** Read and fully validate the canonical target, including every recovery source. */
|
|
12
|
+
export declare function selectRecoveredProduction(gitCommonDir: string, context: ConvergeContext): Promise<RecoveredProduction | undefined>;
|
|
13
|
+
/** Materialize all consensus members before kept/appendix partition or serialization. */
|
|
14
|
+
export declare function materializeRecoveredClaims(findings: ConsensusFinding[], mode: RecoveredProduction | undefined): ConsensusFinding[];
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { lstat } from 'node:fs/promises';
|
|
2
|
+
import { execFile } from 'node:child_process';
|
|
3
|
+
import { promisify } from 'node:util';
|
|
4
|
+
import { describeClaim } from '../consensus/claim-identity.js';
|
|
5
|
+
import { ConvergeRunStateError, convergeRunStatePath, loadConvergeRunStateEvidence } from './run-state.js';
|
|
6
|
+
import { resolveGitCommonDir } from './attempt-budget.js';
|
|
7
|
+
const execFileAsync = promisify(execFile);
|
|
8
|
+
/** A patch review outside a repository has no canonical native target. Preserve
|
|
9
|
+
* that ordinary producer while refusing every other Git discovery failure. */
|
|
10
|
+
export async function selectCurrentRecoveredProduction(context, cwd = process.cwd()) {
|
|
11
|
+
try {
|
|
12
|
+
await execFileAsync('git', ['rev-parse', '--is-inside-work-tree'], { cwd, encoding: 'utf8', timeout: 5000, env: { ...process.env, LC_ALL: 'C' } });
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
const failure = error;
|
|
16
|
+
const stderr = failure.stderr?.trim();
|
|
17
|
+
// Both C-locale discovery results mean there is no target. Other exit-128
|
|
18
|
+
// failures (including damaged or unsafe repositories) must remain fatal.
|
|
19
|
+
const outside = stderr === 'fatal: not a git repository (or any of the parent directories): .git' ||
|
|
20
|
+
/^fatal: not a git repository \(or any parent up to mount point [^\r\n]+\)\r?\nStopping at filesystem boundary \(GIT_DISCOVERY_ACROSS_FILESYSTEM not set\)\.$/.test(stderr ?? '');
|
|
21
|
+
if (failure.code === 128 && outside)
|
|
22
|
+
return undefined;
|
|
23
|
+
throw new ConvergeRunStateError('Could not inspect the repository for native recovery evidence.', { cause: error });
|
|
24
|
+
}
|
|
25
|
+
return selectRecoveredProduction(await resolveGitCommonDir(cwd), context);
|
|
26
|
+
}
|
|
27
|
+
/** Read and fully validate the canonical target, including every recovery source. */
|
|
28
|
+
export async function selectRecoveredProduction(gitCommonDir, context) {
|
|
29
|
+
const observed = await loadConvergeRunStateEvidence(gitCommonDir, context.target);
|
|
30
|
+
if (!observed) {
|
|
31
|
+
// A missing recovered state is not a new target: its retained sources are
|
|
32
|
+
// evidence that ordinary fallback would discard prior identity/accounting.
|
|
33
|
+
const path = convergeRunStatePath(gitCommonDir, context.target);
|
|
34
|
+
for (const suffix of ['.recovery-sources', '.recovery-materials', '.evidence']) {
|
|
35
|
+
try {
|
|
36
|
+
await lstat(path + suffix);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
if (error.code === 'ENOENT')
|
|
40
|
+
continue;
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
throw new ConvergeRunStateError('Native recovery state unavailable; retained sources require inspection before review.');
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
if (observed.state.version === 1 || observed.state.version === 2 && observed.state.cycle !== undefined)
|
|
48
|
+
return undefined;
|
|
49
|
+
if (observed.state.version !== 3)
|
|
50
|
+
throw new ConvergeRunStateError('Semantic continuation requires supported recovery of this target first.');
|
|
51
|
+
const nextRound = Math.max(0, ...observed.state.rounds.map(r => r.round)) + 1;
|
|
52
|
+
if (context.round !== nextRound || nextRound > observed.state.roundCap) {
|
|
53
|
+
throw new ConvergeRunStateError(`Recovered target requires next round ${nextRound} within its retained cap.`);
|
|
54
|
+
}
|
|
55
|
+
return Object.freeze({ version: 1, nativeSha256: observed.sha256 });
|
|
56
|
+
}
|
|
57
|
+
/** Materialize all consensus members before kept/appendix partition or serialization. */
|
|
58
|
+
export function materializeRecoveredClaims(findings, mode) {
|
|
59
|
+
return mode ? findings.map(finding => ({ ...finding, claimDescriptor: describeClaim(finding) })) : findings;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=recovered-production.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovered-production.js","sourceRoot":"","sources":["../../src/converge/recovered-production.ts"],"names":[],"mappings":"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"}
|