instar 1.3.592 → 1.3.594

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +14 -13
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/PostUpdateMigrator.d.ts +10 -0
  5. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  6. package/dist/core/PostUpdateMigrator.js +83 -12
  7. package/dist/core/PostUpdateMigrator.js.map +1 -1
  8. package/dist/core/selfQuotaState.d.ts +48 -0
  9. package/dist/core/selfQuotaState.d.ts.map +1 -0
  10. package/dist/core/selfQuotaState.js +49 -0
  11. package/dist/core/selfQuotaState.js.map +1 -0
  12. package/dist/core/types.d.ts +15 -0
  13. package/dist/core/types.d.ts.map +1 -1
  14. package/dist/core/types.js.map +1 -1
  15. package/dist/monitoring/GreenPrAutoMerger.d.ts +90 -5
  16. package/dist/monitoring/GreenPrAutoMerger.d.ts.map +1 -1
  17. package/dist/monitoring/GreenPrAutoMerger.js +269 -6
  18. package/dist/monitoring/GreenPrAutoMerger.js.map +1 -1
  19. package/dist/monitoring/MergeRunner.d.ts +21 -0
  20. package/dist/monitoring/MergeRunner.d.ts.map +1 -1
  21. package/dist/monitoring/MergeRunner.js +33 -5
  22. package/dist/monitoring/MergeRunner.js.map +1 -1
  23. package/dist/monitoring/greenPrAutomergeWiring.d.ts +7 -0
  24. package/dist/monitoring/greenPrAutomergeWiring.d.ts.map +1 -1
  25. package/dist/monitoring/greenPrAutomergeWiring.js +44 -2
  26. package/dist/monitoring/greenPrAutomergeWiring.js.map +1 -1
  27. package/dist/monitoring/greenPrLogic.d.ts +39 -1
  28. package/dist/monitoring/greenPrLogic.d.ts.map +1 -1
  29. package/dist/monitoring/greenPrLogic.js +33 -1
  30. package/dist/monitoring/greenPrLogic.js.map +1 -1
  31. package/dist/server/CapabilityIndex.js +1 -1
  32. package/dist/server/CapabilityIndex.js.map +1 -1
  33. package/dist/server/routes.d.ts.map +1 -1
  34. package/dist/server/routes.js +29 -4
  35. package/dist/server/routes.js.map +1 -1
  36. package/package.json +1 -1
  37. package/scripts/safe-merge.mjs +27 -1
  38. package/src/data/builtin-manifest.json +63 -63
  39. package/upgrades/1.3.593.md +28 -0
  40. package/upgrades/1.3.594.md +35 -0
  41. package/upgrades/side-effects/mergerunner-auto-arm-handoff-parity-track.md +60 -0
  42. package/upgrades/side-effects/mergerunner-auto-arm-handoff.md +48 -0
  43. package/upgrades/side-effects/placement-llm-circuit-aware-quota.md +50 -0
@@ -26,10 +26,27 @@ export interface MergeAttempt {
26
26
  }
27
27
  /** The classified result of a merge attempt (from the MergeRunner). */
28
28
  export interface MergeRunResult {
29
- /** safe-merge's classified result slug, e.g. merged / refused:* / error:* / already-merged / closed. */
29
+ /**
30
+ * safe-merge's classified result slug, e.g. merged / armed / refused:* /
31
+ * error:* / already-merged / closed. `armed` (mergerunner-auto-arm-handoff)
32
+ * is terminal-success-PENDING: GitHub native auto-merge is armed and now
33
+ * owns the merge — confirmed later by the reconciliation tick, NOT here.
34
+ */
30
35
  outcome: string;
31
- /** True only when an INDEPENDENT gh pr view confirmed MERGED (B10). */
36
+ /**
37
+ * True only when an INDEPENDENT gh pr view confirmed MERGED (B10). ALWAYS
38
+ * false for `armed` BY DESIGN — the merge has not landed at arm time, so an
39
+ * independent confirm at arm time is meaningless. `confirmedMerged:false` is
40
+ * CORRECT and EXPECTED for `armed`, NOT a B10 violation (the B10 rewrite line
41
+ * in act() is gated on outcome === 'merged' and MUST NOT touch `armed`).
42
+ */
32
43
  confirmedMerged: boolean;
44
+ /**
45
+ * For an `armed` outcome: the head sha GitHub auto-merge was armed against
46
+ * (the `--match-head-commit` we passed). Carried so the episode stamps
47
+ * `armedHead` and reconciliation can compare it to the PR's final head.
48
+ */
49
+ armedHead?: string;
33
50
  /** Set when the watcher hard-killed the child at the deadline. */
34
51
  deadlineKilled?: boolean;
35
52
  }
@@ -64,10 +81,30 @@ export interface GreenPrAutoMergerDeps {
64
81
  listOpenPrs(): Promise<PrSummary[]>;
65
82
  /** Did this PR's diff touch protected paths? Enumerated to exhaustion. */
66
83
  protectedPaths(pr: PrSummary): Promise<ProtectedPathsVerdict>;
67
- /** Re-fetch hold-relevant + state fields immediately before acting. null → vanished. */
68
- refetchPr(pr: number): Promise<Pick<PrSummary, 'title' | 'labels' | 'isDraft' | 'headRefOid'> & {
84
+ /**
85
+ * Re-fetch hold-relevant + state fields immediately before acting AND for the
86
+ * armed-episode reconciliation read. null → vanished. Widened
87
+ * (mergerunner-auto-arm-handoff Blocker 4): also returns `mergeCommitOid` (the
88
+ * squashed base commit on a MERGED read — informational for the audit line,
89
+ * NOT the head-pin comparison operand) and `autoMergeRequest` (present ⇔
90
+ * GitHub auto-merge armed; `expectedHeadOid` is the PR's FINAL head GitHub
91
+ * will merge — the head-pin comparison operand when present).
92
+ */
93
+ refetchPr(pr: number): Promise<(Pick<PrSummary, 'title' | 'labels' | 'isDraft' | 'headRefOid'> & {
69
94
  state: string;
70
- } | null>;
95
+ mergeCommitOid?: string | null;
96
+ autoMergeRequest?: {
97
+ enabledAt?: string | null;
98
+ expectedHeadOid?: string | null;
99
+ } | null;
100
+ }) | null>;
101
+ /**
102
+ * Disarm GitHub native auto-merge on a PR (`gh pr merge <pr> --disable-auto`).
103
+ * Returns a per-PR CONFIRMED-disabled boolean. The operator-authorized reach
104
+ * of the documented kill switch (rollback / pause / pool-disarm / per-PR HOLD
105
+ * on an armed episode — mergerunner-auto-arm-handoff Blocker 3). Idempotent.
106
+ */
107
+ disarmArmedEpisodes(pr: number): Promise<boolean>;
71
108
  /** gh api user login (async, never blocks boot). null → unresolved. */
72
109
  resolveGhLogin(): Promise<string | null>;
73
110
  /**
@@ -142,6 +179,21 @@ export interface GreenPrAutoMergerConfig {
142
179
  agentNamespace: string;
143
180
  repo: string;
144
181
  backoffBaseMs?: number;
182
+ /**
183
+ * mergerunner-auto-arm-handoff. `auto` (default) arms GitHub native
184
+ * auto-merge and confirms on a later reconciliation tick; `admin` is the
185
+ * legacy synchronous poll+merge. The rollback lever + the escape hatch for a
186
+ * repo without native auto-merge.
187
+ */
188
+ mergeStrategy?: 'auto' | 'admin';
189
+ /** ms an armed episode may stay OPEN before transitioning to armed-overdue (24h). */
190
+ armedConfirmCeilingMs?: number;
191
+ /** deduped re-raise cadence for an armed-overdue episode (24h). */
192
+ armedOverdueReraiseMs?: number;
193
+ /** the `--auto` spawn deadline (60s) — threaded into MergeRunnerConfig. */
194
+ armTimeoutMs?: number;
195
+ /** K-consecutive-unconfirmed-arms-on-same-head threshold before the Blocker-D line. */
196
+ unconfirmedArmCeiling?: number;
145
197
  }
146
198
  export declare function freshState(): GreenPrState;
147
199
  export declare class GreenPrAutoMerger extends EventEmitter {
@@ -179,6 +231,39 @@ export declare class GreenPrAutoMerger extends EventEmitter {
179
231
  private gather;
180
232
  private act;
181
233
  private recordOutcome;
234
+ /**
235
+ * The top-of-acting-tick reconciliation: confirm the eventual GitHub merge of
236
+ * each armed episode one tick after arming (the B10 truth, moved off the
237
+ * synchronous arm). READ-ONLY — never calls `gh pr merge`; the disarm reach is
238
+ * the SEPARATE in-route call (Blocker 3a). Resolves each `armedAt` episode:
239
+ * MERGED → reap (head-pin verified) · CLOSED → reap (closed-by-other)
240
+ * OPEN+armed → steady state (leave) · OPEN+disarmed/head-moved → clear + re-evaluate
241
+ * >ceiling → armed-overdue (keep reconciling + deduped re-raise) · read-fail → fail-open
242
+ */
243
+ private reconcileArmed;
244
+ /**
245
+ * Transition an armed episode to `armed-overdue` past armedConfirmCeilingMs and
246
+ * re-raise a byte-stable deduped attention line on the armedOverdueReraiseMs
247
+ * cadence (Blocker 5). Never clears armedAt — the loop stays open.
248
+ */
249
+ private maybeMarkOverdue;
250
+ /**
251
+ * Enumerate every `armedAt` episode and `gh pr merge <pr> --disable-auto` it.
252
+ * Called IN-LINE from the rollback / pool-disarm route handlers (NOT the
253
+ * latch-gated tick — the latch the operator just set is the very thing that
254
+ * stops the tick reaching this code). LEASE-INDEPENDENT (like applyHold); the
255
+ * operator's kill switch must reach the armed merges from wherever the route
256
+ * is served, and `--disable-auto` is idempotent/safe from any holder.
257
+ *
258
+ * Honest failure (Blocker 3b): on a CONFIRMED disable, clear armedAt/armedHead
259
+ * and add to the disarmed-confirmed set; on a FAILED disable, LEAVE armedAt set
260
+ * (reconciliation keeps watching it) and add to a DISTINCT disarm-FAILED set.
261
+ * The two outcomes are NEVER collapsed into one attention line.
262
+ */
263
+ disarmAllArmed(reason: string): Promise<{
264
+ disarmed: number[];
265
+ failed: number[];
266
+ }>;
182
267
  private identityOk;
183
268
  private warmupReap;
184
269
  private refreshAggregate;
@@ -1 +1 @@
1
- {"version":3,"file":"GreenPrAutoMerger.d.ts","sourceRoot":"","sources":["../../src/monitoring/GreenPrAutoMerger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GreenPrAutoMerger.d.ts","sourceRoot":"","sources":["../../src/monitoring/GreenPrAutoMerger.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,11 @@ const DEFAULTS = {
34
34
  holdReleaseTicks: 2,
35
35
  staleHoldDays: 7,
36
36
  backoffBaseMs: 30_000,
37
+ mergeStrategy: 'auto',
38
+ armedConfirmCeilingMs: 86_400_000,
39
+ armedOverdueReraiseMs: 86_400_000,
40
+ armTimeoutMs: 60_000,
41
+ unconfirmedArmCeiling: 3,
37
42
  };
38
43
  export function freshState() {
39
44
  return {
@@ -63,7 +68,12 @@ export class GreenPrAutoMerger extends EventEmitter {
63
68
  repo: cfg.repo,
64
69
  expectedGhLogin: cfg.expectedGhLogin ?? '',
65
70
  };
66
- const inv = validateTimeoutInvariant(this.cfg.busySkipBreakerThreshold, this.cfg.tickIntervalMs, this.cfg.mergeTimeoutMs, this.cfg.mergeKillGraceMs);
71
+ // B24 invariant scope (mergerunner-auto-arm-handoff §armTimeoutMs): on the
72
+ // auto path the busy-skip budget is checked against the SHORT armTimeoutMs
73
+ // (a hung arm trips in minutes, not ~26 min); the admin path keeps the
74
+ // 25-min mergeTimeoutMs invariant verbatim.
75
+ const invTimeoutMs = this.cfg.mergeStrategy === 'admin' ? this.cfg.mergeTimeoutMs : this.cfg.armTimeoutMs;
76
+ const inv = validateTimeoutInvariant(this.cfg.busySkipBreakerThreshold, this.cfg.tickIntervalMs, invTimeoutMs, this.cfg.mergeKillGraceMs);
67
77
  this.invariantOk = inv.ok;
68
78
  this.invariantReason = inv.reason;
69
79
  }
@@ -102,6 +112,34 @@ export class GreenPrAutoMerger extends EventEmitter {
102
112
  if (!applied)
103
113
  return { ok: false, status: 502, detail: 'gh failed to apply the hold marker', pr };
104
114
  this.deps.audit({ kind: 'green-pr-automerge', event: 'hold-applied', pr });
115
+ // The HOLD-label/title path does NOT stop GitHub native auto-merge (GitHub
116
+ // gates on checks/mergeability, not title/labels — mergerunner-auto-arm-
117
+ // handoff Blocker 3). If this PR is armed, ALSO --disable-auto it; the
118
+ // marker only blocks a LATER re-arm. Honest non-2xx on a disable failure.
119
+ const state = this.deps.loadState();
120
+ const ep = state.episodes[pr];
121
+ if (ep && ep.armedAt != null) {
122
+ let disabled = false;
123
+ try {
124
+ disabled = await this.deps.disarmArmedEpisodes(pr);
125
+ }
126
+ catch { /* @silent-fallback-ok: green-pr-automerge fail-safe — a disable error is honest; never claim the hold stopped the merge */
127
+ disabled = false;
128
+ }
129
+ if (disabled) {
130
+ delete ep.armedAt;
131
+ delete ep.armedHead;
132
+ delete ep.overdue;
133
+ delete ep.overdueSurfacedAt;
134
+ this.deps.audit({ kind: 'green-pr-automerge', event: 'disarmed', pr, reason: 'hold' });
135
+ this.deps.saveState(state);
136
+ }
137
+ else {
138
+ this.deps.audit({ kind: 'green-pr-automerge', event: 'disarm-failed', pr, reason: 'hold' });
139
+ this.deps.saveState(state);
140
+ return { ok: false, status: 502, detail: 'hold marker applied but could not disable the in-flight auto-merge — PR may still merge; disable it on GitHub directly', pr };
141
+ }
142
+ }
105
143
  return { ok: true, pr };
106
144
  }
107
145
  catch (e) { /* @silent-fallback-ok: green-pr-automerge fail-safe — skip/refuse, never over-merge; safe-merge is the act-time authority */
@@ -138,6 +176,13 @@ export class GreenPrAutoMerger extends EventEmitter {
138
176
  this.deps.saveState(state);
139
177
  return { acted: false, reason: 'breaker-open' };
140
178
  }
179
+ // Armed-episode reconciliation (mergerunner-auto-arm-handoff): the top-of-
180
+ // acting-tick step. READ-ONLY accounting — confirms an eventual GitHub merge
181
+ // one tick later (the B10 truth, just moved off the synchronous arm). Below
182
+ // the disabled: early-return (so it never runs under a live disarm latch —
183
+ // which is exactly why the disarm reach lives in the route, not here), above
184
+ // gather(). Fail-open on any read error; never feeds the breaker.
185
+ await this.reconcileArmed(state);
141
186
  // Warm-up (R10): the first tick of a new lease tenure is OBSERVE-ONLY.
142
187
  const epoch = safeNum(() => this.deps.leaseEpoch());
143
188
  const isWarmup = state.lastActingEpoch !== epoch;
@@ -192,6 +237,19 @@ export class GreenPrAutoMerger extends EventEmitter {
192
237
  const snapshotEntries = [];
193
238
  const nowMs = this.deps.now();
194
239
  for (const pr of prs) {
240
+ // Skip an already-armed PR (mergerunner-auto-arm-handoff Blocker 2 — re-arm
241
+ // thrash). An armed PR is GitHub's and never re-enters the act path; it
242
+ // re-enters ONLY after reconciliation clears armedAt. The GitHub-side
243
+ // autoMergeArmed flag (cheap-pass, from the widened PrSummary) is the belt
244
+ // that catches a lease move where the local episode is stale/absent
245
+ // (Blocker 4). It is still surfaced in the Layer-2 snapshot so status sees it.
246
+ const localArmed = state.episodes[pr.number]?.armedAt != null;
247
+ const githubArmed = pr.autoMergeArmed === true;
248
+ if (localArmed || githubArmed) {
249
+ this.deps.audit({ kind: 'green-pr-automerge', event: 'skipped:already-armed', pr: pr.number, source: localArmed ? 'local-episode' : 'github' });
250
+ snapshotEntries.push({ pr: pr.number, headRefName: pr.headRefName, headRefOid: pr.headRefOid, kind: 'mergeable' });
251
+ continue;
252
+ }
195
253
  const verdict = classifyCandidate(pr, this.cfg.agentNamespace);
196
254
  // Hold-release debounce (R3): a PR that WAS held resumes only after the
197
255
  // marker is absent for holdReleaseTicks AND tickIntervalMs elapsed.
@@ -275,6 +333,19 @@ export class GreenPrAutoMerger extends EventEmitter {
275
333
  this.deps.audit({ kind: 'green-pr-automerge', event: 'skipped:held-on-refetch', pr: target.number });
276
334
  return false;
277
335
  }
336
+ // Authoritative pre-arm gate (mergerunner-auto-arm-handoff Blocker 4 — defense
337
+ // in depth): if the cheap-pass autoMergeArmed was stale-false but the live
338
+ // refetchPr shows auto-merge already armed, REFUSE to re-arm right before
339
+ // spawning. Synthesize the local episode so reconciliation tracks the merge.
340
+ if (live.autoMergeRequest) {
341
+ this.deps.audit({ kind: 'green-pr-automerge', event: 'skipped:already-armed-on-refetch', pr: target.number });
342
+ const ep = state.episodes[target.number] ?? { pr: target.number, headRefOid: target.headRefOid, attempts: 0, rearmEpisodes: 0, state: 'active' };
343
+ ep.armedAt = ep.armedAt ?? this.deps.now();
344
+ ep.armedHead = ep.armedHead ?? (live.autoMergeRequest.expectedHeadOid ?? live.headRefOid);
345
+ ep.lastOutcome = 'armed';
346
+ state.episodes[target.number] = ep;
347
+ return false;
348
+ }
278
349
  if (live.headRefOid !== target.headRefOid) {
279
350
  this.deps.audit({ kind: 'green-pr-automerge', event: 'skipped:head-moved', pr: target.number });
280
351
  return false;
@@ -295,14 +366,39 @@ export class GreenPrAutoMerger extends EventEmitter {
295
366
  if (result.deadlineKilled) {
296
367
  state.breaker = feedBreaker(state.breaker, 'deadline-kill', this.deps.now(), this.breakerCfg());
297
368
  }
298
- // B10: classify "merged" ONLY on independent confirmation.
369
+ // B10: classify "merged" ONLY on independent confirmation. This rewrite is
370
+ // gated on outcome === 'merged' and MUST NOT touch 'armed' — an `armed`
371
+ // result carries confirmedMerged:false BY DESIGN (the merge has not landed
372
+ // at arm time; the independent confirm happens ONE TICK LATER in
373
+ // reconcileArmed). Generalizing this to a merged-MIRROR form
374
+ // ((merged || armed) && !confirmedMerged → error) would rewrite every
375
+ // legitimate armed into an error and give up on a PR GitHub genuinely armed
376
+ // — the exact inverse of intent. Do NOT do that (mergerunner-auto-arm-
377
+ // handoff Blocker B).
299
378
  const outcome = result.outcome === 'merged' && !result.confirmedMerged ? 'error:merge-unconfirmed' : result.outcome;
300
- this.recordOutcome(state, target, outcome);
301
- return outcome === 'merged';
379
+ this.recordOutcome(state, target, outcome, result.armedHead);
380
+ // `act()` returns "did the watcher perform a real, intended terminal action"
381
+ // — NOT "did the PR merge." Both `merged` (immediate) and `armed`
382
+ // (terminal-success-pending; GitHub now owns the merge, the slot is freed,
383
+ // the episode is stamped armedAt) are real terminal actions → acted:true.
384
+ return outcome === 'merged' || outcome === 'armed';
302
385
  }
303
- recordOutcome(state, target, outcome) {
386
+ recordOutcome(state, target, outcome, armedHead) {
387
+ // auto-merge-unavailable (repo setting OFF) — terminal-non-ladder. A
388
+ // PERMANENT condition; do NOT burn maxAttempts over three pointless ticks
389
+ // and do NOT silently flip to --admin (signal, not authority). Record the
390
+ // refusal + raise ONE attention line; the operator chooses.
391
+ if (outcome === 'refused:auto-arm-unavailable') {
392
+ const ep = state.episodes[target.number] ?? { pr: target.number, headRefOid: target.headRefOid, attempts: 0, rearmEpisodes: 0, state: 'active' };
393
+ ep.lastOutcome = outcome;
394
+ ep.lastAttemptAt = this.deps.now();
395
+ state.episodes[target.number] = ep;
396
+ this.deps.audit({ kind: 'green-pr-automerge', event: 'auto-merge-unavailable', pr: target.number });
397
+ void this.refreshAggregate(state, [`PR #${target.number} is green but I could not arm auto-merge — "Allow auto-merge" is disabled on the repo. Enable it, or set mergeStrategy:'admin'.`]);
398
+ return;
399
+ }
304
400
  const ep = state.episodes[target.number] ?? { pr: target.number, headRefOid: target.headRefOid, attempts: 0, rearmEpisodes: 0, state: 'active' };
305
- const folded = applyOutcome(ep, outcome, this.deps.now(), this.ladderCfg());
401
+ const folded = applyOutcome(ep, outcome, this.deps.now(), this.ladderCfg(), { armedHead: armedHead ?? target.headRefOid });
306
402
  state.episodes[target.number] = folded.ep;
307
403
  if (folded.feedsBreaker) {
308
404
  // Per-PR ladder failures do NOT feed the global breaker directly (that is
@@ -313,6 +409,19 @@ export class GreenPrAutoMerger extends EventEmitter {
313
409
  // Reap the episode on success.
314
410
  delete state.episodes[target.number];
315
411
  }
412
+ else if (outcome === 'armed') {
413
+ // GitHub now owns the merge — the episode stays armed; reconciliation
414
+ // confirms the eventual merge. No attention, no reap.
415
+ }
416
+ else if (outcome === 'error:auto-arm-unconfirmed' || outcome === 'error:auto-confirm-unreadable') {
417
+ // Non-ladder retry (Blocker D). The head-keyed unconfirmedArmAttempts
418
+ // counter advanced in applyOutcome; surface ONE deduped attention line at
419
+ // the ceiling (signal, not authority — never blocks the next attempt).
420
+ const ctr = folded.ep.unconfirmedArmAttempts;
421
+ if (ctr && ctr.count >= this.cfg.unconfirmedArmCeiling) {
422
+ void this.refreshAggregate(state, [`Armed PR #${target.number} but cannot confirm it stuck (${ctr.count} attempts) — check GitHub auto-merge state for #${target.number}`]);
423
+ }
424
+ }
316
425
  else if (folded.ep.state === 'gave-up' && outcome !== 'merged-by-other' && outcome !== 'closed-by-other') {
317
426
  void this.refreshAggregate(state, [`PR #${target.number} could not be auto-merged after ${folded.ep.attempts} attempts (${outcome}) — needs a look`]);
318
427
  }
@@ -320,6 +429,160 @@ export class GreenPrAutoMerger extends EventEmitter {
320
429
  void this.refreshAggregate(state, [`PR #${target.number} was closed without merging — discarded work`]);
321
430
  }
322
431
  }
432
+ // ---- armed-episode reconciliation (mergerunner-auto-arm-handoff) ---------
433
+ /**
434
+ * The top-of-acting-tick reconciliation: confirm the eventual GitHub merge of
435
+ * each armed episode one tick after arming (the B10 truth, moved off the
436
+ * synchronous arm). READ-ONLY — never calls `gh pr merge`; the disarm reach is
437
+ * the SEPARATE in-route call (Blocker 3a). Resolves each `armedAt` episode:
438
+ * MERGED → reap (head-pin verified) · CLOSED → reap (closed-by-other)
439
+ * OPEN+armed → steady state (leave) · OPEN+disarmed/head-moved → clear + re-evaluate
440
+ * >ceiling → armed-overdue (keep reconciling + deduped re-raise) · read-fail → fail-open
441
+ */
442
+ async reconcileArmed(state) {
443
+ const armed = Object.values(state.episodes).filter((e) => e.armedAt != null);
444
+ for (const ep of armed) {
445
+ let live;
446
+ try {
447
+ live = await this.deps.refetchPr(ep.pr);
448
+ }
449
+ catch { /* @silent-fallback-ok: green-pr-automerge fail-safe — fail-open on a reconciliation read error; never give up on a real in-flight merge */
450
+ live = undefined;
451
+ }
452
+ // UNKNOWN / read-failure → fail-open: leave armed, NO ladder, NO breaker,
453
+ // retry next tick. We never give up on a real in-flight merge.
454
+ if (!live || live.state === 'UNKNOWN') {
455
+ this.deps.audit({ kind: 'green-pr-automerge', event: 'armed-reconcile-read-failed', pr: ep.pr });
456
+ this.maybeMarkOverdue(state, ep);
457
+ continue;
458
+ }
459
+ if (live.state === 'MERGED') {
460
+ // The PR's FINAL HEAD (autoMergeRequest.expectedHeadOid else headRefOid)
461
+ // is the comparison operand — NEVER mergeCommitOid (the squash base
462
+ // commit never equals the head; comparing it would false-fire on EVERY
463
+ // clean squash merge).
464
+ const finalHead = live.autoMergeRequest?.expectedHeadOid ?? live.headRefOid;
465
+ if (finalHead && ep.armedHead && finalHead === ep.armedHead) {
466
+ this.deps.audit({ kind: 'green-pr-automerge', event: 'merged', pr: ep.pr, head: finalHead, viaArmed: true });
467
+ }
468
+ else {
469
+ // Merged at a head we did NOT arm — post-hoc detection of the residual
470
+ // race. Audit + ONE attention line, but STILL reap (the merge happened).
471
+ this.deps.audit({ kind: 'green-pr-automerge', event: 'merged-at-unexpected-head', pr: ep.pr, armedHead: ep.armedHead ?? null, finalHead: finalHead ?? null, mergeCommitOid: live.mergeCommitOid ?? null });
472
+ void this.refreshAggregate(state, [`PR #${ep.pr} auto-merged at a head I did not arm — review the merged commit`]);
473
+ }
474
+ delete state.episodes[ep.pr];
475
+ continue;
476
+ }
477
+ if (live.state === 'CLOSED') {
478
+ this.deps.audit({ kind: 'green-pr-automerge', event: 'closed-by-other', pr: ep.pr, viaArmed: true });
479
+ delete state.episodes[ep.pr];
480
+ void this.refreshAggregate(state, [`PR #${ep.pr} was closed without merging — discarded work`]);
481
+ continue;
482
+ }
483
+ // Still OPEN.
484
+ const stillArmed = !!live.autoMergeRequest;
485
+ const headMoved = ep.armedHead != null && live.headRefOid !== ep.armedHead;
486
+ if (!stillArmed || headMoved) {
487
+ // A force-push disarmed it, a maintainer turned it off, or the head moved
488
+ // past armedHead → clear armedAt/armedHead and let the candidate path
489
+ // re-evaluate and (if still eligible) re-arm. A new head is a genuine new
490
+ // attempt, bounded by the existing maybeRearm ladder.
491
+ this.deps.audit({ kind: 'green-pr-automerge', event: 'armed-cleared', pr: ep.pr, reason: !stillArmed ? 'disarmed' : 'head-moved' });
492
+ const fresh = state.episodes[ep.pr];
493
+ if (fresh) {
494
+ delete fresh.armedAt;
495
+ delete fresh.armedHead;
496
+ delete fresh.overdue;
497
+ delete fresh.overdueSurfacedAt;
498
+ }
499
+ continue;
500
+ }
501
+ // Steady state while CI runs — no ladder advance, no breaker feed. Leave
502
+ // the armed episode; surface armed-overdue past the ceiling (Close the Loop).
503
+ this.maybeMarkOverdue(state, ep);
504
+ }
505
+ }
506
+ /**
507
+ * Transition an armed episode to `armed-overdue` past armedConfirmCeilingMs and
508
+ * re-raise a byte-stable deduped attention line on the armedOverdueReraiseMs
509
+ * cadence (Blocker 5). Never clears armedAt — the loop stays open.
510
+ */
511
+ maybeMarkOverdue(state, ep) {
512
+ if (ep.armedAt == null)
513
+ return;
514
+ const now = this.deps.now();
515
+ const overdue = now - ep.armedAt >= this.cfg.armedConfirmCeilingMs;
516
+ if (!overdue)
517
+ return;
518
+ const live = state.episodes[ep.pr];
519
+ if (!live)
520
+ return;
521
+ const dueToReraise = live.overdueSurfacedAt == null || (now - live.overdueSurfacedAt) >= this.cfg.armedOverdueReraiseMs;
522
+ if (!dueToReraise)
523
+ return;
524
+ live.overdue = true;
525
+ live.overdueSurfacedAt = now;
526
+ this.deps.audit({ kind: 'green-pr-automerge', event: 'armed-overdue', pr: ep.pr });
527
+ // Byte-stable text so P17 attention-coalescing dedupes it instead of flooding.
528
+ void this.refreshAggregate(state, [`PR #${ep.pr} has had auto-merge armed >24h and still hasn't merged — CI may be stuck or red; needs a look`]);
529
+ }
530
+ // ---- disarm reach — operator kill-switch (Blocker 3) --------------------
531
+ /**
532
+ * Enumerate every `armedAt` episode and `gh pr merge <pr> --disable-auto` it.
533
+ * Called IN-LINE from the rollback / pool-disarm route handlers (NOT the
534
+ * latch-gated tick — the latch the operator just set is the very thing that
535
+ * stops the tick reaching this code). LEASE-INDEPENDENT (like applyHold); the
536
+ * operator's kill switch must reach the armed merges from wherever the route
537
+ * is served, and `--disable-auto` is idempotent/safe from any holder.
538
+ *
539
+ * Honest failure (Blocker 3b): on a CONFIRMED disable, clear armedAt/armedHead
540
+ * and add to the disarmed-confirmed set; on a FAILED disable, LEAVE armedAt set
541
+ * (reconciliation keeps watching it) and add to a DISTINCT disarm-FAILED set.
542
+ * The two outcomes are NEVER collapsed into one attention line.
543
+ */
544
+ async disarmAllArmed(reason) {
545
+ const state = this.deps.loadState();
546
+ const armed = Object.values(state.episodes).filter((e) => e.armedAt != null).map((e) => e.pr);
547
+ const disarmed = [];
548
+ const failed = [];
549
+ for (const pr of armed) {
550
+ let ok = false;
551
+ try {
552
+ ok = await this.deps.disarmArmedEpisodes(pr);
553
+ }
554
+ catch { /* @silent-fallback-ok: green-pr-automerge fail-safe — a disable error is an honest FAILED disarm, never a silent strand */
555
+ ok = false;
556
+ }
557
+ const ep = state.episodes[pr];
558
+ if (ok) {
559
+ if (ep) {
560
+ delete ep.armedAt;
561
+ delete ep.armedHead;
562
+ delete ep.overdue;
563
+ delete ep.overdueSurfacedAt;
564
+ }
565
+ disarmed.push(pr);
566
+ this.deps.audit({ kind: 'green-pr-automerge', event: 'disarmed', pr, reason });
567
+ }
568
+ else {
569
+ // Leave armedAt set so reconciliation keeps watching it.
570
+ failed.push(pr);
571
+ this.deps.audit({ kind: 'green-pr-automerge', event: 'disarm-failed', pr, reason });
572
+ }
573
+ }
574
+ const lines = [];
575
+ if (disarmed.length > 0) {
576
+ lines.push(`Disarmed auto-merge on PR ${disarmed.map((p) => `#${p}`).join(', ')} per ${reason} — they will NOT merge until re-armed`);
577
+ }
578
+ for (const pr of failed) {
579
+ lines.push(`Could NOT disable auto-merge on PR #${pr} — disable it on GitHub directly; it may still merge`);
580
+ }
581
+ if (lines.length > 0)
582
+ await this.refreshAggregate(state, lines);
583
+ this.deps.saveState(state);
584
+ return { disarmed, failed };
585
+ }
323
586
  // ---- identity (R4) ------------------------------------------------------
324
587
  async identityOk(state) {
325
588
  if (!this.cfg.expectedGhLogin)
@@ -1 +1 @@
1
- {"version":3,"file":"GreenPrAutoMerger.js","sourceRoot":"","sources":["../../src/monitoring/GreenPrAutoMerger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GreenPrAutoMerger.js","sourceRoot":"","sources":["../../src/monitoring/GreenPrAutoMerger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAKL,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,YAAY,EACZ,WAAW,EACX,eAAe,EACf,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AA8K3B,MAAM,QAAQ,GAAG;IACf,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,OAAO;IACvB,WAAW,EAAE,CAAC;IACd,gBAAgB,EAAE,CAAC;IACnB,gBAAgB,EAAE,CAAC;IACnB,4BAA4B,EAAE,CAAC;IAC/B,wBAAwB,EAAE,CAAC;IAC3B,kBAAkB,EAAE,EAAE;IACtB,cAAc,EAAE,SAAS;IACzB,gBAAgB,EAAE,MAAM;IACxB,eAAe,EAAE,EAAE;IACnB,oBAAoB,EAAE,CAAC;IACvB,gBAAgB,EAAE,CAAC;IACnB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,MAA0B;IACzC,qBAAqB,EAAE,UAAU;IACjC,qBAAqB,EAAE,UAAU;IACjC,YAAY,EAAE,MAAM;IACpB,qBAAqB,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,4BAA4B,EAAE,CAAC;QAC/B,OAAO,EAAE,YAAY,EAAE;QACvB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IAU9B;IATF,GAAG,CAAiB;IAC7B,UAAU,GAA0C,IAAI,CAAC;IACzD,QAAQ,GAAG,KAAK,CAAC;IACjB,SAAS,GAAG,CAAC,CAAC;IACtB,yDAAyD;IAChD,WAAW,CAAU;IACrB,eAAe,CAAU;IAElC,YACmB,IAA2B,EAC5C,GAA4B;QAE5B,KAAK,EAAE,CAAC;QAHS,SAAI,GAAJ,IAAI,CAAuB;QAI5C,IAAI,CAAC,GAAG,GAAG;YACT,GAAG,QAAQ;YACX,GAAG,GAAG;YACN,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,EAAE;SACzB,CAAC;QACpB,2EAA2E;QAC3E,2EAA2E;QAC3E,uEAAuE;QACvE,4CAA4C;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;QAC1G,MAAM,GAAG,GAAG,wBAAwB,CAClC,IAAI,CAAC,GAAG,CAAC,wBAAwB,EACjC,IAAI,CAAC,GAAG,CAAC,cAAc,EACvB,YAAY,EACZ,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAC1B,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QACjD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,4EAA4E;YAC5E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;YAC/G,OAAO;QACT,CAAC;QACD,0DAA0D;QAC1D,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACpF,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,UAAU;YAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3E,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAAC,CAAC;IAClF,CAAC;IAED,QAAQ,KAAmB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAE1D;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,EAAU,EAAE,MAAc;QACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,0BAA0B,EAAE,EAAE,EAAE,CAAC;QACtH,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,oCAAoC,EAAE,EAAE,EAAE,CAAC;YAClG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;YAE3E,2EAA2E;YAC3E,yEAAyE;YACzE,uEAAuE;YACvE,0EAA0E;YAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;gBAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC;oBAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBAAC,CAAC;gBAC3D,MAAM,CAAC,CAAC,2HAA2H;oBAAC,QAAQ,GAAG,KAAK,CAAC;gBAAC,CAAC;gBACvJ,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,EAAE,CAAC,OAAO,CAAC;oBAAC,OAAO,EAAE,CAAC,SAAS,CAAC;oBAAC,OAAO,EAAE,CAAC,OAAO,CAAC;oBAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBACvF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;oBACvF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC5F,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAC3B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,wHAAwH,EAAE,EAAE,EAAE,CAAC;gBAC1K,CAAC;YACH,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAC,6HAA6H;YACzI,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAE,CAAW,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,IAAI,CAAC,OAA6B,EAAE;QACxC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAEnC,kDAAkD;QAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QACtD,CAAC;QAED,0DAA0D;QAC1D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC5F,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC5E,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC1C,CAAC;QAED,4EAA4E;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACrG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7D,CAAC;QAED,uCAAuC;QACvC,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC;YAC1F,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAClD,CAAC;QAED,2EAA2E;QAC3E,6EAA6E;QAC7E,4EAA4E;QAC5E,2EAA2E;QAC3E,6EAA6E;QAC7E,kEAAkE;QAClE,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAEjC,uEAAuE;QACvE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC;QAEjD,IAAI,UAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7C,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1F,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAC,6HAA6H;YACzI,gFAAgF;YAChF,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC9F,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAE,CAAW,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1I,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QACjD,CAAC;QAED,iEAAiE;QACjE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC3E,KAAK,CAAC,QAAQ,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAEnE,IAAI,QAAQ,EAAE,CAAC;YACb,yEAAyE;YACzE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC7B,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;YAC9B,KAAK,CAAC,4BAA4B,IAAI,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,wBAAwB,KAAK,CAAC,4BAA4B,iFAAiF,CAAC,CAAC,CAAC;YACpL,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACpG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC7C,CAAC;QAED,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;QAC9B,KAAK,CAAC,4BAA4B,GAAG,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAClD,CAAC;QAED,6CAA6C;QAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAClH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACxD,CAAC;IAED,2EAA2E;IAEnE,KAAK,CAAC,MAAM,CAAC,GAAgB,EAAE,KAAmB;QACxD,MAAM,QAAQ,GAAgB,EAAE,CAAC;QACjC,MAAM,eAAe,GAA2B,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,4EAA4E;YAC5E,wEAAwE;YACxE,sEAAsE;YACtE,2EAA2E;YAC3E,oEAAoE;YACpE,+EAA+E;YAC/E,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;YAC9D,MAAM,WAAW,GAAG,EAAE,CAAC,cAAc,KAAK,IAAI,CAAC;YAC/C,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAChJ,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBACnH,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC/D,wEAAwE;YACxE,oEAAoE;YACpE,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;YAC1C,MAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACjI,IAAI,GAAG,CAAC,GAAG;gBAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;;gBAAM,OAAO,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAE5F,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;oBAC7D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,SAAS;YACX,CAAC;YACD,2EAA2E;YAC3E,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc;gBAAE,SAAS;YAE7C,mDAAmD;YACnD,IAAI,EAAyB,CAAC;YAC9B,IAAI,CAAC;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC,CAAC,6HAA6H;gBACrI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YAC9C,CAAC;YACD,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxH,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACf,uEAAuE;gBACvE,+DAA+D;gBAC/D,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBACzH,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,+EAA+E,CAAC,CAAC,CAAC;gBACtI,SAAS;YACX,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClB,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACrH,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,4EAA4E;IAEpE,KAAK,CAAC,GAAG,CAAC,MAAiB,EAAE,KAAmB;QACtD,gFAAgF;QAChF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,8BAA8B;QAC9B,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC/D,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrG,OAAO,KAAK,CAAC;YACf,CAAC;YACD,EAAE,GAAG,EAAE,CAAC;YACR,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAExD,wEAAwE;QACxE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;YACtF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4EAA4E;QAC5E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QAC3H,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QAChJ,IAAI,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACpG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACrG,OAAO,KAAK,CAAC;QACf,CAAC;QACD,+EAA+E;QAC/E,2EAA2E;QAC3E,0EAA0E;QAC1E,6EAA6E;QAC7E,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9G,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,QAAiB,EAAE,CAAC;YAC1J,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3C,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1F,EAAE,CAAC,WAAW,GAAG,OAAO,CAAC;YACzB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAChG,OAAO,KAAK,CAAC;QACf,CAAC;QAED,6EAA6E;QAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,MAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACtH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACjH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAC,6HAA6H;YACzI,MAAM,GAAG,EAAE,OAAO,EAAE,gBAAgB,MAAM,CAAE,CAAW,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;QAC7G,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;QAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAClG,CAAC;QAED,2EAA2E;QAC3E,wEAAwE;QACxE,2EAA2E;QAC3E,iEAAiE;QACjE,6DAA6D;QAC7D,sEAAsE;QACtE,4EAA4E;QAC5E,uEAAuE;QACvE,sBAAsB;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACpH,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7D,6EAA6E;QAC7E,kEAAkE;QAClE,2EAA2E;QAC3E,0EAA0E;QAC1E,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,OAAO,CAAC;IACrD,CAAC;IAEO,aAAa,CAAC,KAAmB,EAAE,MAAiB,EAAE,OAAe,EAAE,SAAkB;QAC/F,qEAAqE;QACrE,0EAA0E;QAC1E,0EAA0E;QAC1E,4DAA4D;QAC5D,IAAI,OAAO,KAAK,8BAA8B,EAAE,CAAC;YAC/C,MAAM,EAAE,GAAY,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YAC1J,EAAE,CAAC,WAAW,GAAG,OAAO,CAAC;YACzB,EAAE,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACnC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACpG,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,OAAO,MAAM,CAAC,MAAM,iIAAiI,CAAC,CAAC,CAAC;YAC3L,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAY,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC1J,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3H,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,0EAA0E;YAC1E,wEAAwE;QAC1E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACnF,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,+BAA+B;YAC/B,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAC/B,sEAAsE;YACtE,sDAAsD;QACxD,CAAC;aAAM,IAAI,OAAO,KAAK,4BAA4B,IAAI,OAAO,KAAK,+BAA+B,EAAE,CAAC;YACnG,sEAAsE;YACtE,0EAA0E;YAC1E,uEAAuE;YACvE,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,sBAAsB,CAAC;YAC7C,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;gBACvD,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,aAAa,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,KAAK,mDAAmD,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC9K,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,iBAAiB,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC;YAC3G,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,OAAO,MAAM,CAAC,MAAM,mCAAmC,MAAM,CAAC,EAAE,CAAC,QAAQ,cAAc,OAAO,kBAAkB,CAAC,CAAC,CAAC;QACxJ,CAAC;aAAM,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC;YACzC,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,OAAO,MAAM,CAAC,MAAM,8CAA8C,CAAC,CAAC,CAAC;QAC1G,CAAC;IACH,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;OAQG;IACK,KAAK,CAAC,cAAc,CAAC,KAAmB;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;QAC7E,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAA6D,CAAC;YAClE,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC,CAAC,2IAA2I;gBACnJ,IAAI,GAAG,SAAkB,CAAC;YAC5B,CAAC;YACD,0EAA0E;YAC1E,+DAA+D;YAC/D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACjC,SAAS;YACX,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,yEAAyE;gBACzE,oEAAoE;gBACpE,uEAAuE;gBACvE,uBAAuB;gBACvB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC;gBAC5E,IAAI,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;oBAC5D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/G,CAAC;qBAAM,CAAC;oBACN,uEAAuE;oBACvE,yEAAyE;oBACzE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE,SAAS,EAAE,SAAS,IAAI,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC,CAAC;oBAC3M,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,iEAAiE,CAAC,CAAC,CAAC;gBACrH,CAAC;gBACD,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrG,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7B,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,8CAA8C,CAAC,CAAC,CAAC;gBAChG,SAAS;YACX,CAAC;YAED,cAAc;YACd,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC3C,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,SAAS,CAAC;YAC3E,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC;gBAC7B,0EAA0E;gBAC1E,sEAAsE;gBACtE,0EAA0E;gBAC1E,sDAAsD;gBACtD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;gBACpI,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpC,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,KAAK,CAAC,OAAO,CAAC;oBACrB,OAAO,KAAK,CAAC,SAAS,CAAC;oBACvB,OAAO,KAAK,CAAC,OAAO,CAAC;oBACrB,OAAO,KAAK,CAAC,iBAAiB,CAAC;gBACjC,CAAC;gBACD,SAAS;YACX,CAAC;YAED,yEAAyE;YACzE,8EAA8E;YAC9E,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,KAAmB,EAAE,EAAW;QACvD,IAAI,EAAE,CAAC,OAAO,IAAI,IAAI;YAAE,OAAO;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,GAAG,GAAG,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACnE,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACxH,IAAI,CAAC,YAAY;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACnF,+EAA+E;QAC/E,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,+FAA+F,CAAC,CAAC,CAAC;IACnJ,CAAC;IAED,4EAA4E;IAE5E;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9F,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,EAAE,GAAG,KAAK,CAAC;YACf,IAAI,CAAC;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC,CAAC,2HAA2H;gBACnI,EAAE,GAAG,KAAK,CAAC;YACb,CAAC;YACD,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,EAAE,EAAE,CAAC;gBACP,IAAI,EAAE,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC,OAAO,CAAC;oBAAC,OAAO,EAAE,CAAC,SAAS,CAAC;oBAAC,OAAO,EAAE,CAAC,OAAO,CAAC;oBAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC;gBAAC,CAAC;gBACnG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACN,yDAAyD;gBACzD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,6BAA6B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,MAAM,uCAAuC,CAAC,CAAC;QACxI,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,uCAAuC,EAAE,sDAAsD,CAAC,CAAC;QAC9G,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,4EAA4E;IAEpE,KAAK,CAAC,UAAU,CAAC,KAAmB;QAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,OAAO,uBAAuB,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;QACtE,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QACtE,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,KAAK,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC1D,CAAC;QACD,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,qBAAqB,CAAC;QACjD,IAAI,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,OAAO,mBAAmB,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2EAA2E;IAEnE,KAAK,CAAC,UAAU,CAAC,KAAmB;QAC1C,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC9C,IAAI,CAAC,CAAC,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5G,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAC,6HAA6H;YACzI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,CAAE,CAAW,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACxI,CAAC;IACH,CAAC;IAED,2EAA2E;IAEnE,KAAK,CAAC,gBAAgB,CAAC,KAAmB,EAAE,QAAkB;QACpE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,cAAc,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC,CAAC,6HAA6H,CAAC,yDAAyD,CAAC,CAAC;IACrM,CAAC;IAED,4EAA4E;IAC5E,4EAA4E;IAC5E,uEAAuE;IAE/D,UAAU;QAChB,OAAO;YACL,wBAAwB,EAAE,IAAI,CAAC,GAAG,CAAC,wBAAwB;YAC3D,4BAA4B,EAAE,IAAI,CAAC,GAAG,CAAC,4BAA4B;YACnE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB;YAC3C,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,MAAM;SACxD,CAAC;IACJ,CAAC;IAEO,SAAS;QACf,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IACnI,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,EAAiB;IACjC,IAAI,CAAC;QAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,6HAA6H;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAC9K,CAAC;AACD,SAAS,OAAO,CAAC,EAAgB;IAC/B,IAAI,CAAC;QAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;QAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,6HAA6H;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC;AAC9M,CAAC"}
@@ -66,6 +66,18 @@ export interface MergeRunnerConfig {
66
66
  mergeTimeoutMs: number;
67
67
  mergeKillGraceMs: number;
68
68
  expectedContractVersion: number;
69
+ /**
70
+ * Merge strategy (mergerunner-auto-arm-handoff). `auto` (default) arms GitHub
71
+ * native auto-merge via `safe-merge … --auto` and returns in seconds; `admin`
72
+ * is the legacy synchronous poll+merge via `--admin`. Absent → 'auto'.
73
+ */
74
+ mergeStrategy?: 'auto' | 'admin';
75
+ /**
76
+ * The `--auto` spawn deadline (default ~60s). Arming is a single API call, so
77
+ * the 25-min `mergeTimeoutMs` is vestigial on the auto path — a hung arm
78
+ * should trip in minutes, not ~26 min. The admin path keeps `mergeTimeoutMs`.
79
+ */
80
+ armTimeoutMs?: number;
69
81
  /** node executable (default process.execPath). */
70
82
  nodePath?: string;
71
83
  }
@@ -101,6 +113,15 @@ export declare class DefaultMergeRunner implements MergeRunner {
101
113
  /** Pinned per-attempt: the probed script's hash + path. */
102
114
  private pinnedHash;
103
115
  constructor(cfg: MergeRunnerConfig, deps: MergeRunnerDeps);
116
+ /**
117
+ * The resolved merge strategy the runner will spawn with (mergerunner-auto-arm-
118
+ * handoff M2). Read-only — exposed so the wiring-integrity test can prove the
119
+ * config survived `config → GreenPrAutoMergerConfig → buildGreenPrDeps →
120
+ * MergeRunnerConfig` and the runner is no longer hardcoded to `--admin`.
121
+ */
122
+ get resolvedStrategy(): 'auto' | 'admin';
123
+ /** The resolved `--auto` spawn deadline (M2 wiring-integrity surface). */
124
+ get resolvedArmTimeoutMs(): number;
104
125
  probeContract(): Promise<{
105
126
  ok: boolean;
106
127
  version?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"MergeRunner.d.ts","sourceRoot":"","sources":["../../src/monitoring/MergeRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MergeRunner.d.ts","sourceRoot":"","sources":["../../src/monitoring/MergeRunner.ts"],"names":[],"mappings":"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"}