@telora/daemon 0.21.156 → 0.21.163
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/build-info.json +7 -3
- package/dist/completion/review-cycle-delta.d.ts +74 -0
- package/dist/completion/review-cycle-delta.d.ts.map +1 -0
- package/dist/completion/review-cycle-delta.js +55 -0
- package/dist/completion/review-cycle-delta.js.map +1 -0
- package/dist/completion/review-defect-detector.d.ts +13 -0
- package/dist/completion/review-defect-detector.d.ts.map +1 -1
- package/dist/completion/review-defect-detector.js +39 -0
- package/dist/completion/review-defect-detector.js.map +1 -1
- package/dist/completion/review-exit-attribution.d.ts +35 -0
- package/dist/completion/review-exit-attribution.d.ts.map +1 -0
- package/dist/completion/review-exit-attribution.js +53 -0
- package/dist/completion/review-exit-attribution.js.map +1 -0
- package/dist/completion/review-exit-escalations.d.ts +21 -2
- package/dist/completion/review-exit-escalations.d.ts.map +1 -1
- package/dist/completion/review-exit-escalations.js +24 -10
- package/dist/completion/review-exit-escalations.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts +2 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +87 -43
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/review-exit-progress.d.ts +30 -0
- package/dist/completion/review-exit-progress.d.ts.map +1 -0
- package/dist/completion/review-exit-progress.js +49 -0
- package/dist/completion/review-exit-progress.js.map +1 -0
- package/dist/delivery/delivery-reconciler.d.ts +20 -0
- package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler.js +46 -11
- package/dist/delivery/delivery-reconciler.js.map +1 -1
- package/dist/queries/daemon-connection.d.ts +13 -0
- package/dist/queries/daemon-connection.d.ts.map +1 -1
- package/dist/queries/daemon-connection.js.map +1 -1
- package/dist/queries/focuses.d.ts +12 -0
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +19 -0
- package/dist/queries/focuses.js.map +1 -1
- package/dist/shell/heartbeat.d.ts +26 -5
- package/dist/shell/heartbeat.d.ts.map +1 -1
- package/dist/shell/heartbeat.js +88 -7
- package/dist/shell/heartbeat.js.map +1 -1
- package/package.json +3 -3
|
@@ -17,7 +17,7 @@ import { hasPendingSpawnDirective } from '../directive/directive-queue.js';
|
|
|
17
17
|
import { DELIVERY_STATUS } from '@telora/daemon-core';
|
|
18
18
|
import { resolveReconciledWrite } from '../delivery/delivery-reconciler-apply.js';
|
|
19
19
|
import { emitLoopTrigger } from '../loops/index.js';
|
|
20
|
-
import { getFocusDeliveries, getFocusIssues, clearReviewRequestedAt, setReviewedThroughSha, setReviewCycleCount, setReviewHandoffCount, getFocusReviewReportForSession, } from '../queries/focuses.js';
|
|
20
|
+
import { getFocusDeliveries, getFocusIssues, clearReviewRequestedAt, setReviewedThroughSha, setReviewCycleCount, setReviewHandoffCount, getFocusReviewReportForSession, getFocusReviewFiledIssueIds, } from '../queries/focuses.js';
|
|
21
21
|
import { resolveReviewCycleCap, resolveReviewHandoffCap } from '../verify/stall-detector-config.js';
|
|
22
22
|
import { getDeliveryIssues } from '../queries/issues.js';
|
|
23
23
|
import { createEscalation, hasOpenFocusEscalation } from '../queries/escalations.js';
|
|
@@ -29,7 +29,9 @@ import { listOpenShortfallProposalIds } from '../queries/reality-tree.js';
|
|
|
29
29
|
import { resolveShortfallHold, writeShortfallGateState, describeShortfallHold, } from './review-exit-shortfall.js';
|
|
30
30
|
import { recordReviewCycleAndMaybeEscalate, fileCoverageIncompleteEscalation, fileGapsWithoutIssueEscalation, fileMissingReportNotice, recordHandoffAndMaybeTerminate, } from './review-exit-escalations.js';
|
|
31
31
|
import { forceFullPassReviewFocuses, recordBelowCoverageDrift, resetCoverageDriftState } from './coverage-drift-state.js';
|
|
32
|
-
import {
|
|
32
|
+
import { resolveReviewCycleProgress } from './review-exit-progress.js';
|
|
33
|
+
import { reviewFiledIssueExistsComplete, blockingReviewFiledIssueExistsComplete, filterDeferrableReviewNotesComplete, } from './review-defect-detector.js';
|
|
34
|
+
import { resolveAttributedDeliveryIds, resolveGapsAttribution } from './review-exit-attribution.js';
|
|
33
35
|
import { createLogger } from '../shell/log.js';
|
|
34
36
|
const log = createLogger({ module: 'focus-executor' });
|
|
35
37
|
const defaultReviewExitDeps = {
|
|
@@ -52,6 +54,7 @@ const defaultReviewExitDeps = {
|
|
|
52
54
|
hasPendingSpawnDirective,
|
|
53
55
|
emitLoopTrigger,
|
|
54
56
|
getFocusReviewReportForSession,
|
|
57
|
+
getFocusReviewFiledIssueIds,
|
|
55
58
|
createEscalation,
|
|
56
59
|
};
|
|
57
60
|
// The in-memory below-coverage drift trackers live in a tiny standalone module
|
|
@@ -149,10 +152,13 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
|
|
|
149
152
|
// a verify delivery to done. Read failure => null (treated as no verdict, the
|
|
150
153
|
// safe direction -- no gaps_found routing, no inconsistency escalation).
|
|
151
154
|
let reviewOutcome = null;
|
|
155
|
+
// The issue ids THIS review session filed (the gaps_found verdict's target set).
|
|
156
|
+
let reviewCreatedIssueIds = [];
|
|
152
157
|
try {
|
|
153
158
|
const report = await deps.getFocusReviewReportForSession(focusId, sessionId);
|
|
154
159
|
reportExists = report.exists;
|
|
155
160
|
reviewOutcome = report.outcome;
|
|
161
|
+
reviewCreatedIssueIds = report.createdIssueIds ?? [];
|
|
156
162
|
}
|
|
157
163
|
catch (err) {
|
|
158
164
|
log.warn(`[focus-executor] getFocusReviewReportForSession failed for "${focusName}" session ${sessionId}: ${err.message}`);
|
|
@@ -169,11 +175,31 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
|
|
|
169
175
|
// them as blocking open work. Empty on read failure => current behavior
|
|
170
176
|
// (every open issue blocking).
|
|
171
177
|
let deferrableIssueIds = new Set();
|
|
178
|
+
// The focus-wide, time-independent set of review-filed issue ids
|
|
179
|
+
// (focus_reviews.created_issue_ids union). Read best-effort BEFORE the focus
|
|
180
|
+
// issues so the classification below keys on the non-lossy set; on read failure
|
|
181
|
+
// (or a partial test deps object) it is empty and the classification falls back
|
|
182
|
+
// to the legacy review-window heuristic alone.
|
|
183
|
+
let reviewFiledIds = new Set();
|
|
184
|
+
if (deps.getFocusReviewFiledIssueIds) {
|
|
185
|
+
try {
|
|
186
|
+
reviewFiledIds = new Set(await deps.getFocusReviewFiledIssueIds(focusId));
|
|
187
|
+
}
|
|
188
|
+
catch (err) {
|
|
189
|
+
log.warn(`[focus-executor] getFocusReviewFiledIssueIds failed for "${focusName}": ${err.message}`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// Delivery attribution for a gaps_found verdict: the deliveries that OWN this
|
|
193
|
+
// review's filed gap issues (the verdict's target set; see
|
|
194
|
+
// review-exit-attribution.ts). A delivery NOT in it converges on its own merits.
|
|
195
|
+
let attributedDeliveryIds = new Set();
|
|
196
|
+
const createdIssueIdSet = new Set(reviewCreatedIssueIds);
|
|
172
197
|
try {
|
|
173
198
|
const focusIssues = await deps.getFocusIssues(focusId);
|
|
174
|
-
hasIssueEvidence =
|
|
175
|
-
hasBlockingIssueEvidence =
|
|
176
|
-
deferrableIssueIds = new Set(
|
|
199
|
+
hasIssueEvidence = reviewFiledIssueExistsComplete(focusIssues, reviewFiledIds, reviewRequestedAt);
|
|
200
|
+
hasBlockingIssueEvidence = blockingReviewFiledIssueExistsComplete(focusIssues, reviewFiledIds, reviewRequestedAt);
|
|
201
|
+
deferrableIssueIds = new Set(filterDeferrableReviewNotesComplete(focusIssues, reviewFiledIds, reviewRequestedAt).map(i => i.id));
|
|
202
|
+
attributedDeliveryIds = resolveAttributedDeliveryIds(focusIssues, createdIssueIdSet);
|
|
177
203
|
}
|
|
178
204
|
catch (err) {
|
|
179
205
|
log.warn(`[focus-executor] getFocusIssues failed for "${focusName}": ${err.message}`);
|
|
@@ -181,14 +207,10 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
|
|
|
181
207
|
// message and the issue-evidence notice; routing runs regardless (with
|
|
182
208
|
// every open issue treated as blocking, i.e. the pre-deferrability default).
|
|
183
209
|
}
|
|
184
|
-
//
|
|
185
|
-
//
|
|
186
|
-
//
|
|
187
|
-
//
|
|
188
|
-
// but filed nothing actionable. Pre-existing blocking work counts (the coding
|
|
189
|
-
// team still has a concrete task), so this keys on actual open work, not on
|
|
190
|
-
// review-filed evidence specifically.
|
|
191
|
-
let anyBlockingOpenWork = false;
|
|
210
|
+
// The gaps-without-issue inconsistency (below) keys on hasBlockingIssueEvidence
|
|
211
|
+
// -- whether the review filed a blocking issue ANYWHERE in the focus (read
|
|
212
|
+
// focus-wide from the complete review-filed id set above), NOT a verify-scoped
|
|
213
|
+
// walk that made a sibling-delivery gap structurally invisible.
|
|
192
214
|
// ── Route verify deliveries ──────────────────────────────────────
|
|
193
215
|
// Runs unconditionally: open work routes to verify_failed even when no
|
|
194
216
|
// review evidence is present. This is the self-healing path -- a coding
|
|
@@ -196,6 +218,9 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
|
|
|
196
218
|
// agent to file fresh defects before the loop can correct itself.
|
|
197
219
|
const reviewDeliveries = await deps.getFocusDeliveries(focusId);
|
|
198
220
|
let routedAny = false;
|
|
221
|
+
// Whether any delivery CONVERGED to done this cycle -- feeds the review-cycle
|
|
222
|
+
// delta (a convergence is progress; a verify_failed re-route is not).
|
|
223
|
+
let convergedAny = false;
|
|
199
224
|
// Set when a clean review would have auto-approved a delivery but coverage is
|
|
200
225
|
// incomplete (spawn-tip != exit-tip -- the branch drifted mid-review). Drives
|
|
201
226
|
// the per-focus one-full-pass-respawn-then-escalate path after the loop.
|
|
@@ -208,9 +233,22 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
|
|
|
208
233
|
// irreducibly-external dependency carried as gate_state STATE (external-hold.ts,
|
|
209
234
|
// NOT an escalation row). Drives the same "leave the review window open" tail.
|
|
210
235
|
let externalHeldAny = false;
|
|
236
|
+
// Whether the gaps_found verdict resolved to ANY delivery. When false, no
|
|
237
|
+
// delivery is targeted and every delivery reads 'unresolvable' -- absence of
|
|
238
|
+
// attribution holds toward intent, it does not become a pass.
|
|
239
|
+
const attributionResolvable = attributedDeliveryIds.size > 0;
|
|
211
240
|
for (const d of reviewDeliveries) {
|
|
212
|
-
|
|
241
|
+
const isVerify = d.executionStatus === DELIVERY_STATUS.VERIFY;
|
|
242
|
+
// A gaps_found verdict may name a delivery already `done`: pull THAT delivery
|
|
243
|
+
// back into the loop to re-open it (via the reconciled path), rather than
|
|
244
|
+
// failing whichever delivery happens to be in verify.
|
|
245
|
+
const isReopenableDone = d.executionStatus === DELIVERY_STATUS.DONE &&
|
|
246
|
+
reviewOutcome === 'gaps_found' &&
|
|
247
|
+
attributedDeliveryIds.has(d.id);
|
|
248
|
+
if (!isVerify && !isReopenableDone)
|
|
213
249
|
continue;
|
|
250
|
+
// The loop body runs ONLY for a verify or a re-openable done delivery.
|
|
251
|
+
const fromStatus = isVerify ? DELIVERY_STATUS.VERIFY : DELIVERY_STATUS.DONE;
|
|
214
252
|
try {
|
|
215
253
|
const [issues, dWorkflow] = await Promise.all([
|
|
216
254
|
deps.getDeliveryIssues(d.id),
|
|
@@ -223,17 +261,16 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
|
|
|
223
261
|
// converges (approve) rather than re-coding. Deferrability was classified
|
|
224
262
|
// once from the focus-issue read above (deferrableIssueIds).
|
|
225
263
|
const blockingOpenWork = openWork.filter(i => !deferrableIssueIds.has(i.id));
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
// Route through the single-writer reconciler
|
|
229
|
-
//
|
|
230
|
-
//
|
|
231
|
-
//
|
|
232
|
-
//
|
|
233
|
-
// off the resolved target + reportExists below.
|
|
264
|
+
// Per-delivery attribution for a gaps_found verdict (see review-exit-attribution.ts).
|
|
265
|
+
const gapsAttribution = resolveGapsAttribution(d.id, reviewOutcome === 'gaps_found', attributedDeliveryIds, attributionResolvable);
|
|
266
|
+
// Route through the single-writer reconciler: the review-exit conditions are
|
|
267
|
+
// exactly its verify-state inputs. The route-specific WRITE mechanism is keyed
|
|
268
|
+
// off the resolved target + reportExists below. currentStatus is the
|
|
269
|
+
// delivery's ACTUAL status so a re-openable done delivery routes through the
|
|
270
|
+
// reconciler's done case (done -> verify_failed).
|
|
234
271
|
const decision = resolveReconciledWrite({
|
|
235
272
|
input: {
|
|
236
|
-
currentStatus:
|
|
273
|
+
currentStatus: fromStatus,
|
|
237
274
|
// Tag deferrable review notes so the reconciler's verify case does not
|
|
238
275
|
// treat them as blocking open work.
|
|
239
276
|
issues: issues.map(i => ({
|
|
@@ -243,10 +280,16 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
|
|
|
243
280
|
})),
|
|
244
281
|
gitState: { worktreeCommitted: true },
|
|
245
282
|
guardVerdict: null,
|
|
246
|
-
reviewState: { reviewRequested: true, reportExists, sessionType, succeeded, outcome: reviewOutcome, inspected: reviewInspected },
|
|
283
|
+
reviewState: { reviewRequested: true, reportExists, sessionType, succeeded, outcome: reviewOutcome, inspected: reviewInspected, gapsAttribution },
|
|
247
284
|
},
|
|
248
285
|
});
|
|
249
286
|
const target = decision.target;
|
|
287
|
+
// A re-openable done delivery's only action is re-open to verify_failed; if
|
|
288
|
+
// the reconciler leaves it done (gap already closed) there is nothing to
|
|
289
|
+
// write -- skip so the verify-only done branches below never fire for it.
|
|
290
|
+
if (!isVerify && target !== DELIVERY_STATUS.VERIFY_FAILED) {
|
|
291
|
+
continue;
|
|
292
|
+
}
|
|
250
293
|
// Operator-hold gate (FAIL-CLOSED): a delivery carrying an unresolved
|
|
251
294
|
// needs_operator / external_wait escalation anchored to it must not
|
|
252
295
|
// converge to done by ANY path -- including this auto-approve path, which
|
|
@@ -293,13 +336,13 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
|
|
|
293
336
|
// gateState null: the delivery is routing, so any prior shortfall hold
|
|
294
337
|
// banner must not survive into verify_failed. If the shortfall is still
|
|
295
338
|
// open, the next hold re-writes it.
|
|
296
|
-
await deps.updateDeliveryStatus(d.id, 'verify_failed', awaitingVerifyStage?.id ?? null, null, undefined, { organizationId, fromStatus
|
|
339
|
+
await deps.updateDeliveryStatus(d.id, 'verify_failed', awaitingVerifyStage?.id ?? null, null, undefined, { organizationId, fromStatus });
|
|
297
340
|
const failReason = blockingOpenWork.length > 0
|
|
298
341
|
? `${blockingOpenWork.length} blocking open issue(s) (of ${openWork.length} open)`
|
|
299
342
|
: reviewOutcome === 'gaps_found'
|
|
300
343
|
? 'review verdict gaps_found with no blocking issue filed (routing inconsistency)'
|
|
301
344
|
: 'clean review exit with no inspection evidence (blind gate -- bounded re-work)';
|
|
302
|
-
log.info(`Delivery "${d.name}" moved from
|
|
345
|
+
log.info(`Delivery "${d.name}" moved from ${fromStatus} to verify_failed: ${failReason}`);
|
|
303
346
|
routedAny = true;
|
|
304
347
|
}
|
|
305
348
|
else if (target === DELIVERY_STATUS.DONE && reportExists) {
|
|
@@ -320,6 +363,7 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
|
|
|
320
363
|
await deps.updateDeliveryStatus(d.id, 'done', doneStage?.id ?? null, null, undefined, { organizationId, fromStatus: 'verify' });
|
|
321
364
|
log.info(`Delivery "${d.name}" moved from verify to done (review passed)`);
|
|
322
365
|
routedAny = true;
|
|
366
|
+
convergedAny = true;
|
|
323
367
|
}
|
|
324
368
|
}
|
|
325
369
|
else if (target === DELIVERY_STATUS.DONE && !shortfallsClear) {
|
|
@@ -348,6 +392,7 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
|
|
|
348
392
|
log.info(`[focus-executor] Delivery "${d.name}" auto-approved verify -> done ` +
|
|
349
393
|
`(clean review, full coverage @ ${(reviewSpawnTip ?? '').slice(0, 12)}, no defects filed)`);
|
|
350
394
|
routedAny = true;
|
|
395
|
+
convergedAny = true;
|
|
351
396
|
}
|
|
352
397
|
else {
|
|
353
398
|
belowCoverageHold = true;
|
|
@@ -372,18 +417,19 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
|
|
|
372
417
|
}
|
|
373
418
|
}
|
|
374
419
|
// The routing inconsistency this focus exists to catch: the review stamped a
|
|
375
|
-
// gaps_found VERDICT but no
|
|
376
|
-
//
|
|
377
|
-
//
|
|
420
|
+
// gaps_found VERDICT but filed no open, blocking issue anywhere in the focus
|
|
421
|
+
// (hasBlockingIssueEvidence, read focus-wide from the complete review-filed id
|
|
422
|
+
// set) -- the coding team has nothing concrete to close. gaps_found still routes
|
|
423
|
+
// the delivery to verify_failed (above, toward intent), and we ALSO file one
|
|
378
424
|
// needs_operator escalation below. Mutually exclusive with the
|
|
379
425
|
// review_missing_report notice by construction: gaps_found implies
|
|
380
426
|
// reportExists=true, and that notice requires !reportExists, so the two can
|
|
381
427
|
// never double-fire for one exit.
|
|
382
|
-
const gapsWithoutIssue = reviewOutcome === 'gaps_found' && !
|
|
428
|
+
const gapsWithoutIssue = reviewOutcome === 'gaps_found' && !hasBlockingIssueEvidence;
|
|
383
429
|
if (routedAny) {
|
|
384
430
|
await deps.clearReviewRequestedAt(focusId);
|
|
385
431
|
log.info(`[focus-executor] Review complete for "${focusName}" -- review_requested_at cleared ` +
|
|
386
|
-
`(reportExists=${reportExists}, issueEvidence=${hasIssueEvidence})`);
|
|
432
|
+
`(reportExists=${reportExists}, issueEvidence=${hasIssueEvidence}, blockingEvidence=${hasBlockingIssueEvidence})`);
|
|
387
433
|
// Advance the review coverage watermark to what the review ACTUALLY covered
|
|
388
434
|
// (the carried spawn-tip, `coveredSha`) -- NOT the exit tip. A COMPLETED
|
|
389
435
|
// cycle with a routed outcome (approve / auto-approve / defects filed)
|
|
@@ -423,18 +469,16 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
|
|
|
423
469
|
// the per-focus below-coverage counter so a future drift starts fresh (this
|
|
424
470
|
// also writes the cleared budget through durably).
|
|
425
471
|
resetCoverageDriftState(focusId);
|
|
426
|
-
//
|
|
427
|
-
//
|
|
428
|
-
//
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
}
|
|
437
|
-
}
|
|
472
|
+
// Gate the hand-off counter's reset on a real DELTA: a routed cycle that
|
|
473
|
+
// changed nothing is the empty loop the cap must bound, not progress that
|
|
474
|
+
// rearms it. See review-exit-progress.ts.
|
|
475
|
+
await resolveReviewCycleProgress(deps, escalationCtx, {
|
|
476
|
+
coveredSha,
|
|
477
|
+
priorReviewedSha: current.reviewed_through_sha ?? null,
|
|
478
|
+
deliveryConverged: convergedAny,
|
|
479
|
+
issuesFiled: reviewCreatedIssueIds.length > 0,
|
|
480
|
+
currentHandoffCount: current.review_handoff_count ?? 0,
|
|
481
|
+
});
|
|
438
482
|
// Focus-level review-cycle churn meter + the cap escalation it arms; see
|
|
439
483
|
// recordReviewCycleAndMaybeEscalate for the take-turns-failing tail this
|
|
440
484
|
// exists to make visible. Best-effort -- never aborts the routing above.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-exit-phase.js","sourceRoot":"","sources":["../../src/completion/review-exit-phase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"review-exit-phase.js","sourceRoot":"","sources":["../../src/completion/review-exit-phase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACrH,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC9H,OAAO,EAAE,qCAAqC,EAAE,MAAM,sCAAsC,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,iCAAiC,EACjC,gCAAgC,EAChC,8BAA8B,EAC9B,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC1H,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EACL,8BAA8B,EAC9B,sCAAsC,EACtC,mCAAmC,GACpC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAqDvD,MAAM,qBAAqB,GAAmB;IAC5C,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,iBAAiB;IACjB,sBAAsB;IACtB,oBAAoB;IACpB,wBAAwB;IACxB,sBAAsB;IACtB,qBAAqB;IACrB,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,uBAAuB;IACvB,sBAAsB;IACtB,4BAA4B;IAC5B,+BAA+B;IAC/B,wBAAwB;IACxB,eAAe;IACf,8BAA8B;IAC9B,2BAA2B;IAC3B,gBAAgB;CACjB,CAAC;AA0CF,+EAA+E;AAC/E,6EAA6E;AAC7E,2EAA2E;AAC3E,kFAAkF;AAClF,OAAO,EACL,iCAAiC,EACjC,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,gGAAgG;AAChG,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,IAAI,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,0BAA0B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAwB,EACxB,OAAuB,qBAAqB;IAE5C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAEvJ,sFAAsF;IACtF,MAAM,aAAa,GAAgC,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAErG,2EAA2E;IAC3E,+EAA+E;IAC/E,MAAM,UAAU,GAAG,cAAc,IAAI,gBAAgB,IAAI,IAAI,CAAC;IAC9D,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,iFAAiF;IACjF,MAAM,gBAAgB,GACpB,cAAc,IAAI,IAAI,IAAI,gBAAgB,IAAI,IAAI,IAAI,cAAc,KAAK,gBAAgB,CAAC;IAE5F,2EAA2E;IAC3E,0EAA0E;IAC1E,+CAA+C;IAC/C,EAAE;IACF,+EAA+E;IAC/E,8EAA8E;IAC9E,4EAA4E;IAC5E,kEAAkE;IAClE,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC;IACxC,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC;QAClC,gCAAgC;QAChC,OAAO;IACT,CAAC;IACD,MAAM,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAEtD,wEAAwE;IACxE,yEAAyE;IACzE,6EAA6E;IAC7E,6EAA6E;IAC7E,sEAAsE;IACtE,2EAA2E;IAC3E,8EAA8E;IAC9E,2BAA2B;IAE3B,oEAAoE;IACpE,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,+EAA+E;IAC/E,+EAA+E;IAC/E,8EAA8E;IAC9E,yEAAyE;IACzE,IAAI,aAAa,GAAqC,IAAI,CAAC;IAC3D,iFAAiF;IACjF,IAAI,qBAAqB,GAAa,EAAE,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC7E,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,qBAAqB,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CACN,+DAA+D,SAAS,aAAa,SAAS,KAAM,GAAa,CAAC,OAAO,EAAE,CAC5H,CAAC;QACF,0CAA0C;IAC5C,CAAC;IAED,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,yEAAyE;IACzE,6EAA6E;IAC7E,+EAA+E;IAC/E,oDAAoD;IACpD,IAAI,wBAAwB,GAAG,KAAK,CAAC;IACrC,8EAA8E;IAC9E,6EAA6E;IAC7E,wEAAwE;IACxE,+BAA+B;IAC/B,IAAI,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,iEAAiE;IACjE,6EAA6E;IAC7E,gFAAgF;IAChF,gFAAgF;IAChF,+CAA+C;IAC/C,IAAI,cAAc,GAAwB,IAAI,GAAG,EAAU,CAAC;IAC5D,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CACN,4DAA4D,SAAS,MAAO,GAAa,CAAC,OAAO,EAAE,CACpG,CAAC;QACJ,CAAC;IACH,CAAC;IACD,8EAA8E;IAC9E,2DAA2D;IAC3D,iFAAiF;IACjF,IAAI,qBAAqB,GAAwB,IAAI,GAAG,EAAU,CAAC;IACnE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACvD,gBAAgB,GAAG,8BAA8B,CAAC,WAAW,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAClG,wBAAwB,GAAG,sCAAsC,CAAC,WAAW,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAClH,kBAAkB,GAAG,IAAI,GAAG,CAC1B,mCAAmC,CAAC,WAAW,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACnG,CAAC;QACF,qBAAqB,GAAG,4BAA4B,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CACN,+CAA+C,SAAS,MAAO,GAAa,CAAC,OAAO,EAAE,CACvF,CAAC;QACF,uEAAuE;QACvE,uEAAuE;QACvE,6EAA6E;IAC/E,CAAC;IAED,gFAAgF;IAChF,2EAA2E;IAC3E,+EAA+E;IAC/E,gEAAgE;IAEhE,oEAAoE;IACpE,uEAAuE;IACvE,wEAAwE;IACxE,0EAA0E;IAC1E,kEAAkE;IAClE,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,8EAA8E;IAC9E,sEAAsE;IACtE,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,8EAA8E;IAC9E,8EAA8E;IAC9E,yEAAyE;IACzE,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,0EAA0E;IAC1E,6EAA6E;IAC7E,+CAA+C;IAC/C,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,qEAAqE;IACrE,iFAAiF;IACjF,+EAA+E;IAC/E,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,0EAA0E;IAC1E,6EAA6E;IAC7E,8DAA8D;IAC9D,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,IAAI,GAAG,CAAC,CAAC;IAC7D,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,CAAC,CAAC,eAAe,KAAK,eAAe,CAAC,MAAM,CAAC;QAC9D,8EAA8E;QAC9E,0EAA0E;QAC1E,sDAAsD;QACtD,MAAM,gBAAgB,GACpB,CAAC,CAAC,eAAe,KAAK,eAAe,CAAC,IAAI;YAC1C,aAAa,KAAK,YAAY;YAC9B,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB;YAAE,SAAS;QAC7C,uEAAuE;QACvE,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC;QAC5E,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC5C,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;aAClC,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,sEAAsE;YACtE,wEAAwE;YACxE,0EAA0E;YAC1E,6DAA6D;YAC7D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAE7E,sFAAsF;YACtF,MAAM,eAAe,GAAG,sBAAsB,CAC5C,CAAC,CAAC,EAAE,EACJ,aAAa,KAAK,YAAY,EAC9B,qBAAqB,EACrB,qBAAqB,CACtB,CAAC;YAEF,6EAA6E;YAC7E,+EAA+E;YAC/E,qEAAqE;YACrE,6EAA6E;YAC7E,kDAAkD;YAClD,MAAM,QAAQ,GAAG,sBAAsB,CAAC;gBACtC,KAAK,EAAE;oBACL,aAAa,EAAE,UAAU;oBACzB,uEAAuE;oBACvE,oCAAoC;oBACpC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACvB,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,UAAU,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;qBACzC,CAAC,CAAC;oBACH,QAAQ,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE;oBACrC,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE;iBAClJ;aACF,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAE/B,4EAA4E;YAC5E,yEAAyE;YACzE,0EAA0E;YAC1E,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAK,eAAe,CAAC,aAAa,EAAE,CAAC;gBAC1D,SAAS;YACX,CAAC;YAED,sEAAsE;YACtE,oEAAoE;YACpE,0EAA0E;YAC1E,yEAAyE;YACzE,yEAAyE;YACzE,2EAA2E;YAC3E,0EAA0E;YAC1E,4EAA4E;YAC5E,uDAAuD;YACvD,IAAI,MAAM,KAAK,eAAe,CAAC,IAAI,IAAI,IAAI,CAAC,+BAA+B,EAAE,CAAC;gBAC5E,MAAM,QAAQ,GAAG;oBACf,+BAA+B,EAAE,IAAI,CAAC,+BAA+B;oBACrE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;iBAChD,CAAC;gBACF,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAChE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,eAAe,GAAG,IAAI,CAAC;oBACvB,MAAM,0BAA0B,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBACvD,GAAG,CAAC,IAAI,CACN,8BAA8B,CAAC,CAAC,IAAI,0BAA0B,oBAAoB,CAAC,IAAI,CAAC,IAAI;wBAC5F,6CAA6C,CAC9C,CAAC;oBACF,SAAS;gBACX,CAAC;YACH,CAAC;YAED,uEAAuE;YACvE,oEAAoE;YACpE,yEAAyE;YACzE,wEAAwE;YACxE,4EAA4E;YAC5E,IAAI,MAAM,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAC5C,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,EACnD,CAAC,CAAC,EAAE,EACJ,CAAC,CAAC,SAAS,EACX,mCAAmC,CAAC,SAAS,CAAC,CAC/C,CAAC;gBACF,2EAA2E;gBAC3E,2EAA2E;gBAC3E,+DAA+D;gBAC/D,qCAAqC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,kBAAkB,IAAI,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;gBACjH,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;oBACtB,eAAe,GAAG,IAAI,CAAC;oBACvB,GAAG,CAAC,IAAI,CACN,8BAA8B,CAAC,CAAC,IAAI,0BAA0B,oBAAoB,CAAC,YAAY,CAAC,IAAI;wBACpG,oDAAoD,CACrD,CAAC;oBACF,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,MAAM,KAAK,eAAe,CAAC,aAAa,EAAE,CAAC;gBAC7C,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;gBACnF,uEAAuE;gBACvE,wEAAwE;gBACxE,oCAAoC;gBACpC,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,eAAe,EAAE,mBAAmB,EAAE,EAAE,IAAI,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC;gBACzI,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC;oBAC5C,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,+BAA+B,QAAQ,CAAC,MAAM,QAAQ;oBAClF,CAAC,CAAC,aAAa,KAAK,YAAY;wBAC9B,CAAC,CAAC,gFAAgF;wBAClF,CAAC,CAAC,+EAA+E,CAAC;gBACtF,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,gBAAgB,UAAU,sBAAsB,UAAU,EAAE,CAAC,CAAC;gBAC1F,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;iBAAM,IAAI,MAAM,KAAK,eAAe,CAAC,IAAI,IAAI,YAAY,EAAE,CAAC;gBAC3D,sEAAsE;gBACtE,uEAAuE;gBACvE,wEAAwE;gBACxE,wEAAwE;gBACxE,mDAAmD;gBACnD,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,aAAa,GAAG,IAAI,CAAC;oBACrB,MAAM,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;oBACzD,GAAG,CAAC,IAAI,CACN,8BAA8B,CAAC,CAAC,IAAI,kDAAkD;wBACtF,GAAG,qBAAqB,CAAC,SAAS,CAAC,mBAAmB,CACvD,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;oBAChE,kEAAkE;oBAClE,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAChI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,6CAA6C,CAAC,CAAC;oBAC3E,SAAS,GAAG,IAAI,CAAC;oBACjB,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,KAAK,eAAe,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC/D,sEAAsE;gBACtE,gEAAgE;gBAChE,sEAAsE;gBACtE,sEAAsE;gBACtE,aAAa,GAAG,IAAI,CAAC;gBACrB,MAAM,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;gBACzD,GAAG,CAAC,IAAI,CACN,8BAA8B,CAAC,CAAC,IAAI,yBAAyB;oBACvE,GAAG,qBAAqB,CAAC,SAAS,CAAC,uCAAuC,CACjE,CAAC;YACJ,CAAC;iBAAM,IAAI,MAAM,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;gBAC3C,yEAAyE;gBACzE,uEAAuE;gBACvE,qEAAqE;gBACrE,0EAA0E;gBAC1E,yEAAyE;gBACzE,yEAAyE;gBACzE,wEAAwE;gBACxE,oEAAoE;gBACpE,+DAA+D;gBAC/D,IAAI,gBAAgB,EAAE,CAAC;oBACrB,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;oBAChE,MAAM,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;oBACpI,GAAG,CAAC,IAAI,CACN,8BAA8B,CAAC,CAAC,IAAI,iCAAiC;wBACrE,kCAAkC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAC3F,CAAC;oBACF,SAAS,GAAG,IAAI,CAAC;oBACjB,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,iBAAiB,GAAG,IAAI,CAAC;oBACzB,GAAG,CAAC,IAAI,CACN,8BAA8B,CAAC,CAAC,IAAI,wDAAwD;wBAC5F,GAAG,CAAC,cAAc,IAAI,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,gBAAgB,IAAI,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;wBACtH,+EAA+E,CAChF,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,oEAAoE;gBACpE,qEAAqE;gBACrE,wDAAwD;gBACxD,MAAM,MAAM,GAAG,WAAW,KAAK,QAAQ;oBACrC,CAAC,CAAC,GAAG,WAAW,iDAAiD;oBACjE,CAAC,CAAC,gCAAgC,CAAC;gBACrC,GAAG,CAAC,IAAI,CACN,8BAA8B,CAAC,CAAC,IAAI,qBAAqB,MAAM,GAAG;oBAClE,0DAA0D,CAC3D,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,IAAI,mBAAoB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,6EAA6E;IAC7E,+EAA+E;IAC/E,iFAAiF;IACjF,6EAA6E;IAC7E,+DAA+D;IAC/D,mEAAmE;IACnE,4EAA4E;IAC5E,kCAAkC;IAClC,MAAM,gBAAgB,GAAG,aAAa,KAAK,YAAY,IAAI,CAAC,wBAAwB,CAAC;IAErF,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC3C,GAAG,CAAC,IAAI,CACN,yCAAyC,SAAS,mCAAmC;YACrF,iBAAiB,YAAY,mBAAmB,gBAAgB,sBAAsB,wBAAwB,GAAG,CAClH,CAAC;QACF,4EAA4E;QAC5E,yEAAyE;QACzE,uEAAuE;QACvE,4EAA4E;QAC5E,0EAA0E;QAC1E,sEAAsE;QACtE,8EAA8E;QAC9E,gDAAgD;QAChD,EAAE;QACF,4EAA4E;QAC5E,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,yEAAyE;QACzE,6EAA6E;QAC7E,uCAAuC;QACvC,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CACN,mDAAmD,SAAS,sBAAsB;gBAClF,6FAA6F,CAC9F,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACtD,GAAG,CAAC,IAAI,CACN,mDAAmD,SAAS,gBAAgB;oBAC5E,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,iCAAiC,CAC5D,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CACN,sDAAsD,SAAS,MAAO,GAAa,CAAC,OAAO,EAAE,CAC9F,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CACN,uCAAuC,SAAS,2BAA2B;gBAC3E,yFAAyF,CAC1F,CAAC;QACJ,CAAC;QACD,wEAAwE;QACxE,6EAA6E;QAC7E,4EAA4E;QAC5E,mDAAmD;QACnD,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEjC,yEAAyE;QACzE,0EAA0E;QAC1E,0CAA0C;QAC1C,MAAM,0BAA0B,CAAC,IAAI,EAAE,aAAa,EAAE;YACpD,UAAU;YACV,gBAAgB,EAAE,OAAO,CAAC,oBAAoB,IAAI,IAAI;YACtD,iBAAiB,EAAE,YAAY;YAC/B,WAAW,EAAE,qBAAqB,CAAC,MAAM,GAAG,CAAC;YAC7C,mBAAmB,EAAE,OAAO,CAAC,oBAAoB,IAAI,CAAC;SACvD,CAAC,CAAC;QAEH,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,MAAM,iCAAiC,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC;QAE9F,MAAM,QAAQ,GAAG,gBAAgB;YAC/B,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,YAAY;gBACZ,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,wBAAwB;oBACxB,CAAC,CAAC,gBAAgB;oBAClB,oEAAoE;oBACpE,sEAAsE;oBACtE,gEAAgE;oBAChE,qEAAqE;oBACrE,6BAA6B;oBAC7B,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,SAAS,IAAI,eAAe,KAAK,KAAK;wBAClE,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,SAAS;4BACrC,CAAC,CAAC,cAAc;4BAChB,CAAC,CAAC,WAAW,CAAC;QACxB,IAAI,CAAC,eAAe,CAAC;YACnB,IAAI,EAAE,kBAAkB;YACxB,OAAO;YACP,MAAM,EAAE,uBAAuB,SAAS,gBAAgB,QAAQ,EAAE;SACnE,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,6EAA6E;QAC7E,yEAAyE;QACzE,0EAA0E;QAC1E,EAAE;QACF,0EAA0E;QAC1E,8EAA8E;QAC9E,6EAA6E;QAC7E,6EAA6E;QAC7E,yEAAyE;QACzE,MAAM,8BAA8B,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;IAC/F,CAAC;SAAM,IAAI,aAAa,EAAE,CAAC;QACzB,4EAA4E;QAC5E,6EAA6E;QAC7E,4EAA4E;QAC5E,4BAA4B;QAC5B,EAAE;QACF,8DAA8D;QAC9D,6EAA6E;QAC7E,wDAAwD;QACxD,GAAG,CAAC,IAAI,CACN,qBAAqB,SAAS,sBAAsB;YAC1D,GAAG,qBAAqB,CAAC,SAAS,CAAC,uDAAuD,CACrF,CAAC;IACJ,CAAC;SAAM,IAAI,eAAe,EAAE,CAAC;QAC3B,0EAA0E;QAC1E,6EAA6E;QAC7E,2EAA2E;QAC3E,6EAA6E;QAC7E,4EAA4E;QAC5E,yEAAyE;QACzE,qDAAqD;QACrD,GAAG,CAAC,IAAI,CACN,qBAAqB,SAAS,6DAA6D;YAC3F,wGAAwG,CACzG,CAAC;IACJ,CAAC;SAAM,IAAI,eAAe,EAAE,CAAC;QAC3B,yEAAyE;QACzE,2EAA2E;QAC3E,yEAAyE;QACzE,6EAA6E;QAC7E,2EAA2E;QAC3E,GAAG,CAAC,IAAI,CACN,qBAAqB,SAAS,+DAA+D;YAC7F,qHAAqH,CACtH,CAAC;IACJ,CAAC;SAAM,IAAI,iBAAiB,EAAE,CAAC;QAC7B,0EAA0E;QAC1E,uEAAuE;QACvE,6EAA6E;QAC7E,+EAA+E;QAC/E,qEAAqE;QACrE,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,6CAA6C,SAAS,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,wEAAwE;YACxE,MAAM,gCAAgC,CAAC,IAAI,EAAE,aAAa,EAAE;gBAC1D,UAAU;gBACV,gBAAgB,EAAE,gBAAgB,IAAI,IAAI;gBAC1C,MAAM;aACP,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,uEAAuE;YACvE,+DAA+D;YAC/D,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,GAAG,CAAC,IAAI,CACN,qBAAqB,SAAS,mEAAmE,CAClG,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,YAAY,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,sEAAsE;QACtE,kEAAkE;QAClE,uEAAuE;QACvE,uEAAuE;QACvE,gEAAgE;QAChE,MAAM,MAAM,GAAG,WAAW,KAAK,QAAQ;YACrC,CAAC,CAAC,GAAG,WAAW,kCAAkC;YAClD,CAAC,CAAC,CAAC,SAAS;gBACV,CAAC,CAAC,6BAA6B;gBAC/B,CAAC,CAAC,2GAA2G,CAAC;QAClH,GAAG,CAAC,IAAI,CACN,qBAAqB,SAAS,qCAAqC,MAAM,IAAI;YAC7E,sEAAsE;YACtE,4CAA4C,CAC7C,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,8EAA8E;IAC9E,0EAA0E;IAC1E,0EAA0E;IAC1E,mEAAmE;IACnE,0EAA0E;IAC1E,4EAA4E;IAC5E,IAAI,SAAS,IAAI,gBAAgB,EAAE,CAAC;QAClC,MAAM,8BAA8B,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED,8EAA8E;IAC9E,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,oDAAoD;IACpD,IAAI,SAAS,IAAI,CAAC,YAAY,IAAI,wBAAwB,EAAE,CAAC;QAC3D,MAAM,uBAAuB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The review-exit hand-off counter's reset-or-bound decision.
|
|
3
|
+
*
|
|
4
|
+
* The hand-off cap bounds a focus that keeps cycling reviews without converging.
|
|
5
|
+
* It was defeated because the RESET fired on any status write -- including the
|
|
6
|
+
* verify -> verify_failed round trip that IS the empty loop -- so the loop's own
|
|
7
|
+
* churn rearmed the cap (2026-08-24, ran until a human disarmed the focus).
|
|
8
|
+
*
|
|
9
|
+
* This seam keys the reset on a real DELTA (review-cycle-delta.ts) instead:
|
|
10
|
+
* - delta -> the no-progress streak is broken; reset the durable counter to 0.
|
|
11
|
+
* - no delta -> drive the counter toward the cap via the SAME bounded
|
|
12
|
+
* terminator the nothing-routed hand-off uses (recordHandoffAndMaybeTerminate);
|
|
13
|
+
* at the cap it closes the review window and files one escalation.
|
|
14
|
+
*
|
|
15
|
+
* Extracted from review-exit-phase.ts to keep that file under the size limit --
|
|
16
|
+
* sibling of review-exit-escalations.ts / review-exit-attribution.ts.
|
|
17
|
+
*
|
|
18
|
+
* @module completion/review-exit-progress
|
|
19
|
+
*/
|
|
20
|
+
import { type ReviewCycleState } from './review-cycle-delta.js';
|
|
21
|
+
import { type HandoffBoundDeps, type ReviewExitEscalationContext } from './review-exit-escalations.js';
|
|
22
|
+
/**
|
|
23
|
+
* Given a routed review exit's cycle state, either reset the durable hand-off
|
|
24
|
+
* counter (real progress) or drive it toward the terminating cap (no delta).
|
|
25
|
+
* Returns whether the cycle produced a delta. All writes best-effort.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveReviewCycleProgress(deps: HandoffBoundDeps, ctx: ReviewExitEscalationContext, state: ReviewCycleState & {
|
|
28
|
+
currentHandoffCount: number;
|
|
29
|
+
}): Promise<boolean>;
|
|
30
|
+
//# sourceMappingURL=review-exit-progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-exit-progress.d.ts","sourceRoot":"","sources":["../../src/completion/review-exit-progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,2BAA2B,EACjC,MAAM,8BAA8B,CAAC;AAKtC;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,gBAAgB,EACtB,GAAG,EAAE,2BAA2B,EAChC,KAAK,EAAE,gBAAgB,GAAG;IAAE,mBAAmB,EAAE,MAAM,CAAA;CAAE,GACxD,OAAO,CAAC,OAAO,CAAC,CAoBlB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The review-exit hand-off counter's reset-or-bound decision.
|
|
3
|
+
*
|
|
4
|
+
* The hand-off cap bounds a focus that keeps cycling reviews without converging.
|
|
5
|
+
* It was defeated because the RESET fired on any status write -- including the
|
|
6
|
+
* verify -> verify_failed round trip that IS the empty loop -- so the loop's own
|
|
7
|
+
* churn rearmed the cap (2026-08-24, ran until a human disarmed the focus).
|
|
8
|
+
*
|
|
9
|
+
* This seam keys the reset on a real DELTA (review-cycle-delta.ts) instead:
|
|
10
|
+
* - delta -> the no-progress streak is broken; reset the durable counter to 0.
|
|
11
|
+
* - no delta -> drive the counter toward the cap via the SAME bounded
|
|
12
|
+
* terminator the nothing-routed hand-off uses (recordHandoffAndMaybeTerminate);
|
|
13
|
+
* at the cap it closes the review window and files one escalation.
|
|
14
|
+
*
|
|
15
|
+
* Extracted from review-exit-phase.ts to keep that file under the size limit --
|
|
16
|
+
* sibling of review-exit-escalations.ts / review-exit-attribution.ts.
|
|
17
|
+
*
|
|
18
|
+
* @module completion/review-exit-progress
|
|
19
|
+
*/
|
|
20
|
+
import { reviewCycleProducedDelta } from './review-cycle-delta.js';
|
|
21
|
+
import { recordHandoffAndMaybeTerminate, } from './review-exit-escalations.js';
|
|
22
|
+
import { createLogger } from '../shell/log.js';
|
|
23
|
+
const log = createLogger({ module: 'focus-executor' });
|
|
24
|
+
/**
|
|
25
|
+
* Given a routed review exit's cycle state, either reset the durable hand-off
|
|
26
|
+
* counter (real progress) or drive it toward the terminating cap (no delta).
|
|
27
|
+
* Returns whether the cycle produced a delta. All writes best-effort.
|
|
28
|
+
*/
|
|
29
|
+
export async function resolveReviewCycleProgress(deps, ctx, state) {
|
|
30
|
+
const delta = reviewCycleProducedDelta(state);
|
|
31
|
+
if (delta) {
|
|
32
|
+
// Real progress -> reset the streak (only when >0, to avoid a needless write).
|
|
33
|
+
if (deps.setReviewHandoffCount && state.currentHandoffCount > 0) {
|
|
34
|
+
try {
|
|
35
|
+
await deps.setReviewHandoffCount(ctx.focusId, 0);
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
log.warn(`[focus-executor] setReviewHandoffCount(0) failed for "${ctx.focusName}": ${err.message}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
// Routed a status but changed nothing (a no-delta round trip). Do NOT rearm the
|
|
44
|
+
// cap -- drive the durable counter toward it; at the cap the terminator closes
|
|
45
|
+
// the review window and files exactly one review_handoff_exhausted escalation.
|
|
46
|
+
await recordHandoffAndMaybeTerminate(deps, ctx, state.currentHandoffCount, { trigger: 'no_delta_cycle' });
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=review-exit-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-exit-progress.js","sourceRoot":"","sources":["../../src/completion/review-exit-progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,wBAAwB,EAAyB,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EACL,8BAA8B,GAG/B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAEvD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,IAAsB,EACtB,GAAgC,EAChC,KAAyD;IAEzD,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,KAAK,EAAE,CAAC;QACV,+EAA+E;QAC/E,IAAI,IAAI,CAAC,qBAAqB,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CACN,yDAAyD,GAAG,CAAC,SAAS,MAAO,GAAa,CAAC,OAAO,EAAE,CACrG,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,gFAAgF;IAChF,+EAA+E;IAC/E,+EAA+E;IAC/E,MAAM,8BAA8B,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC1G,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -110,6 +110,26 @@ export interface ReconcilerReviewState {
|
|
|
110
110
|
* gated by this field.
|
|
111
111
|
*/
|
|
112
112
|
inspected?: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* DELIVERY ATTRIBUTION for a gaps_found verdict: whether THIS delivery is one
|
|
115
|
+
* the verdict actually judges. A focus-level gaps_found review is NOT an
|
|
116
|
+
* undifferentiated per-delivery instruction -- it judges only the deliveries
|
|
117
|
+
* that own its filed gap issues (review_complete.created_issue_ids -> each
|
|
118
|
+
* issue's delivery). Resolved at the call site and passed in as data, so the
|
|
119
|
+
* reconciler stays pure.
|
|
120
|
+
*
|
|
121
|
+
* 'targeted' -> this delivery owns a filed gap -> route back (verify_failed).
|
|
122
|
+
* 'not_targeted' -> a SIBLING owns the gap; this delivery is not held hostage
|
|
123
|
+
* and converges on its own merits (report / auto-approve).
|
|
124
|
+
* 'unresolvable' -> the verdict resolved to NO delivery at all (no created
|
|
125
|
+
* issues, or none map to a delivery). Absence of attribution
|
|
126
|
+
* must not become a pass: HOLD toward intent (verify_failed).
|
|
127
|
+
*
|
|
128
|
+
* Only consulted when outcome === 'gaps_found'. Absent => 'targeted' (the
|
|
129
|
+
* pre-attribution behaviour: every verify delivery routes back on gaps_found),
|
|
130
|
+
* so every caller and test that predates attribution is unchanged.
|
|
131
|
+
*/
|
|
132
|
+
gapsAttribution?: 'targeted' | 'not_targeted' | 'unresolvable';
|
|
113
133
|
}
|
|
114
134
|
export interface ReconcileInput {
|
|
115
135
|
currentStatus: ExecutionStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-reconciler.d.ts","sourceRoot":"","sources":["../../src/delivery/delivery-reconciler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,8EAA8E;AAC9E,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,eAAe,EAAE,OAAO,CAAC;IACzB,8EAA8E;IAC9E,YAAY,EAAE,OAAO,CAAC;IACtB,kCAAkC;IAClC,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAAC;IAC3C;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"delivery-reconciler.d.ts","sourceRoot":"","sources":["../../src/delivery/delivery-reconciler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,8EAA8E;AAC9E,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,eAAe,EAAE,OAAO,CAAC;IACzB,8EAA8E;IAC9E,YAAY,EAAE,OAAO,CAAC;IACtB,kCAAkC;IAClC,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAAC;IAC3C;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;;;;;;;;;;OAkBG;IACH,eAAe,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,cAAc,CAAC;CAChE;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,eAAe,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACvC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,YAAY,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC7C,WAAW,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC3C;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,4FAA4F;IAC5F,MAAM,EAAE,eAAe,CAAC;IACxB,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,OAAO,CAIrF;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,OAAO,CAE7E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,OAAO,CAE3E;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,OAAO,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,OAAO,CAGnF;AAOD,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AAcjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAgL9E"}
|
|
@@ -208,16 +208,34 @@ export function reconcileDeliveryStatus(input) {
|
|
|
208
208
|
if (discoveryOnly) {
|
|
209
209
|
return result(currentStatus, DELIVERY_STATUS.DONE, 'discovery-only delivery, discovery complete -> done');
|
|
210
210
|
}
|
|
211
|
-
// The verdict is authoritative: a gaps_found
|
|
212
|
-
//
|
|
213
|
-
//
|
|
214
|
-
//
|
|
215
|
-
//
|
|
216
|
-
//
|
|
217
|
-
//
|
|
218
|
-
|
|
219
|
-
|
|
211
|
+
// The verdict is authoritative but ATTRIBUTED: a focus-level gaps_found
|
|
212
|
+
// judges only the deliveries that own its filed gap issues, not every
|
|
213
|
+
// verify delivery on the focus. gapsAttribution (resolved at the call site,
|
|
214
|
+
// passed in as data) says which side THIS delivery is on:
|
|
215
|
+
// - 'targeted'/'unresolvable' -> route back (verify_failed). Targeted owns
|
|
216
|
+
// a gap; unresolvable means the verdict resolved to no delivery, and
|
|
217
|
+
// absence of attribution must not become a pass, so it HOLDS toward
|
|
218
|
+
// intent. Absent => 'targeted' (pre-attribution behaviour preserved).
|
|
219
|
+
// - 'not_targeted' -> a sibling owns the gap; this delivery is NOT held
|
|
220
|
+
// hostage. Fall through to the report/auto-approve branches so it
|
|
221
|
+
// converges on its own merits. (It only reaches here with no blocking
|
|
222
|
+
// open work of its own -- hasBlockingOpenWork routed above otherwise.)
|
|
223
|
+
// Sits BEFORE the reportExists/auto-approve done branches precisely because
|
|
224
|
+
// a gaps_found report has reportExists=true.
|
|
225
|
+
if (reviewState?.outcome === 'gaps_found' && (reviewState.gapsAttribution ?? 'targeted') !== 'not_targeted') {
|
|
226
|
+
const why = reviewState.gapsAttribution === 'unresolvable'
|
|
227
|
+
? 'gaps_found with no resolvable delivery attribution -> verify_failed (hold; absence of attribution is not a pass)'
|
|
228
|
+
: 'review verdict gaps_found targets this delivery -> verify_failed (never converge to done on an unresolved verdict)';
|
|
229
|
+
return result(currentStatus, DELIVERY_STATUS.VERIFY_FAILED, why);
|
|
220
230
|
}
|
|
231
|
+
// EVIDENCE-COMPLETENESS INVARIANT (instrumented once): the ONLY paths to
|
|
232
|
+
// done below are (a) an explicit report present, or (b) a clean, INSPECTED
|
|
233
|
+
// review session. Every incomplete/unresolvable shape above and below
|
|
234
|
+
// (blind gate, gaps_found targeted/unresolvable, failed/non-review session)
|
|
235
|
+
// routes toward intent, never to done. This is the single choke point every
|
|
236
|
+
// review-exit route passes through (lint:reconciler-single-writer), so the
|
|
237
|
+
// invariant is pinned once here -- see review-exit-evidence-completeness.test.ts
|
|
238
|
+
// for the three-instance class (a8bce5a5 / e48b989b / 7c926753) it closes.
|
|
221
239
|
if (reviewState?.reportExists) {
|
|
222
240
|
return result(currentStatus, DELIVERY_STATUS.DONE, 'explicit review report present -> done');
|
|
223
241
|
}
|
|
@@ -269,8 +287,25 @@ export function reconcileDeliveryStatus(input) {
|
|
|
269
287
|
}
|
|
270
288
|
return result(currentStatus, DELIVERY_STATUS.PAUSED, 'guard still blocks or no re-eval -> stay paused (named human-act hold, watchdog-surfaced)');
|
|
271
289
|
}
|
|
272
|
-
|
|
273
|
-
|
|
290
|
+
case DELIVERY_STATUS.DONE: {
|
|
291
|
+
// A done delivery is terminal EXCEPT when a gaps_found review filed a gap
|
|
292
|
+
// against it: the gap is blocking open work the delivery must address, so
|
|
293
|
+
// it re-opens through verify_failed (a canonical done -> verify_failed edge)
|
|
294
|
+
// and the normal verify_failed -> queued -> coding walk re-drives it. Gated
|
|
295
|
+
// on 'targeted' so a focus-level gaps_found never re-opens a done delivery
|
|
296
|
+
// it did not judge, and on hasBlockingOpenWork so an already-closed gap does
|
|
297
|
+
// not churn a settled delivery. This is the "gap named a delivery already
|
|
298
|
+
// done" case: the verdict re-opens THAT delivery via the reconciled path,
|
|
299
|
+
// rather than failing whichever sibling happens to be in verify.
|
|
300
|
+
if (reviewState?.outcome === 'gaps_found' &&
|
|
301
|
+
reviewState.gapsAttribution === 'targeted' &&
|
|
302
|
+
hasBlockingOpenWork(issues)) {
|
|
303
|
+
return result(currentStatus, DELIVERY_STATUS.VERIFY_FAILED, 'gaps_found targets this done delivery with open work -> re-open to verify_failed');
|
|
304
|
+
}
|
|
305
|
+
return result(currentStatus, currentStatus, 'done is terminal -> stay');
|
|
306
|
+
}
|
|
307
|
+
// draft / planning / cancelled: not driven by the issue-rollup reconciler.
|
|
308
|
+
// Terminal states are final; draft/planning await scoping.
|
|
274
309
|
default:
|
|
275
310
|
return result(currentStatus, currentStatus, `status '${currentStatus}' is not reconciler-driven -> stay`);
|
|
276
311
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-reconciler.js","sourceRoot":"","sources":["../../src/delivery/delivery-reconciler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"delivery-reconciler.js","sourceRoot":"","sources":["../../src/delivery/delivery-reconciler.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,19 @@ export declare function sendHeartbeat(pid: number, hostname: string, repoPath: s
|
|
|
38
38
|
productId?: string;
|
|
39
39
|
productIds?: string[];
|
|
40
40
|
healthStatus?: string;
|
|
41
|
+
/**
|
|
42
|
+
* True when the daemon has armed the drain-to-idle stop (committed to
|
|
43
|
+
* stopping at the next batch boundary) but is still beating. The edge writes
|
|
44
|
+
* status='stopping' so the row reads 'departing' rather than plain 'online'.
|
|
45
|
+
*/
|
|
46
|
+
draining?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* The lease horizon (ms): how long this beat should be believed before the
|
|
49
|
+
* daemon is presumed gone. The edge stamps belief_expires_at = now() + this;
|
|
50
|
+
* the dashboard and the SQL sweep read that stamp as the one presume-gone
|
|
51
|
+
* declaration, needing no successor daemon.
|
|
52
|
+
*/
|
|
53
|
+
beliefHorizonMs?: number;
|
|
41
54
|
}, metadata?: Record<string, unknown>): Promise<HeartbeatResponse>;
|
|
42
55
|
/**
|
|
43
56
|
* Mark this daemon as disconnected (graceful shutdown).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-connection.d.ts","sourceRoot":"","sources":["../../src/queries/daemon-connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE;IACR,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon-connection.d.ts","sourceRoot":"","sources":["../../src/queries/daemon-connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE;IACR,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,EACD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,iBAAiB,CAAC,CAW5B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/D;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAKnD"}
|