@on-par/factory-core 0.9.4 → 0.9.5-next.2

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 (178) hide show
  1. package/dist/checkers/base-health.js +2 -2
  2. package/dist/checkers/base-health.js.map +1 -1
  3. package/dist/checkers/baseline-cache.d.ts +6 -4
  4. package/dist/checkers/baseline-cache.d.ts.map +1 -1
  5. package/dist/checkers/baseline-cache.js +24 -7
  6. package/dist/checkers/baseline-cache.js.map +1 -1
  7. package/dist/checkers/baseline.d.ts.map +1 -1
  8. package/dist/checkers/baseline.js +4 -3
  9. package/dist/checkers/baseline.js.map +1 -1
  10. package/dist/checkers/constitution-preflight.d.ts +8 -0
  11. package/dist/checkers/constitution-preflight.d.ts.map +1 -0
  12. package/dist/checkers/constitution-preflight.js +71 -0
  13. package/dist/checkers/constitution-preflight.js.map +1 -0
  14. package/dist/checkers/design-smells.d.ts +1 -0
  15. package/dist/checkers/design-smells.d.ts.map +1 -1
  16. package/dist/checkers/design-smells.js +24 -5
  17. package/dist/checkers/design-smells.js.map +1 -1
  18. package/dist/checkers/index.d.ts +13 -2
  19. package/dist/checkers/index.d.ts.map +1 -1
  20. package/dist/checkers/index.js +73 -11
  21. package/dist/checkers/index.js.map +1 -1
  22. package/dist/config/config-lint.d.ts +28 -0
  23. package/dist/config/config-lint.d.ts.map +1 -0
  24. package/dist/config/config-lint.js +39 -0
  25. package/dist/config/config-lint.js.map +1 -0
  26. package/dist/config/config-schema-lint.d.ts +17 -0
  27. package/dist/config/config-schema-lint.d.ts.map +1 -0
  28. package/dist/config/config-schema-lint.js +104 -0
  29. package/dist/config/config-schema-lint.js.map +1 -0
  30. package/dist/config/example.js +1 -1
  31. package/dist/config/example.js.map +1 -1
  32. package/dist/config/index.d.ts +16 -2
  33. package/dist/config/index.d.ts.map +1 -1
  34. package/dist/config/index.js +37 -13
  35. package/dist/config/index.js.map +1 -1
  36. package/dist/config/repo.d.ts +3 -0
  37. package/dist/config/repo.d.ts.map +1 -1
  38. package/dist/config/repo.js +12 -1
  39. package/dist/config/repo.js.map +1 -1
  40. package/dist/config/template-tokens.d.ts +21 -0
  41. package/dist/config/template-tokens.d.ts.map +1 -0
  42. package/dist/config/template-tokens.js +62 -0
  43. package/dist/config/template-tokens.js.map +1 -0
  44. package/dist/daemon/run-worktree.d.ts +5 -1
  45. package/dist/daemon/run-worktree.d.ts.map +1 -1
  46. package/dist/daemon/run-worktree.js +5 -2
  47. package/dist/daemon/run-worktree.js.map +1 -1
  48. package/dist/events/kinds.d.ts +1 -1
  49. package/dist/events/kinds.d.ts.map +1 -1
  50. package/dist/events/kinds.js +6 -0
  51. package/dist/events/kinds.js.map +1 -1
  52. package/dist/harness/catalog.d.ts +3 -0
  53. package/dist/harness/catalog.d.ts.map +1 -1
  54. package/dist/harness/catalog.js +6 -0
  55. package/dist/harness/catalog.js.map +1 -1
  56. package/dist/internal.d.ts +30 -6
  57. package/dist/internal.d.ts.map +1 -1
  58. package/dist/internal.js +18 -5
  59. package/dist/internal.js.map +1 -1
  60. package/dist/kpis/defects.js +1 -1
  61. package/dist/kpis/defects.js.map +1 -1
  62. package/dist/models/index.d.ts +8 -0
  63. package/dist/models/index.d.ts.map +1 -1
  64. package/dist/models/index.js +32 -2
  65. package/dist/models/index.js.map +1 -1
  66. package/dist/phases/build.d.ts +2 -0
  67. package/dist/phases/build.d.ts.map +1 -1
  68. package/dist/phases/build.js +5 -2
  69. package/dist/phases/build.js.map +1 -1
  70. package/dist/phases/check.d.ts +7 -1
  71. package/dist/phases/check.d.ts.map +1 -1
  72. package/dist/phases/check.js +27 -7
  73. package/dist/phases/check.js.map +1 -1
  74. package/dist/phases/plan.d.ts +8 -3
  75. package/dist/phases/plan.d.ts.map +1 -1
  76. package/dist/phases/plan.js +74 -30
  77. package/dist/phases/plan.js.map +1 -1
  78. package/dist/phases/ship-stack.d.ts +49 -0
  79. package/dist/phases/ship-stack.d.ts.map +1 -0
  80. package/dist/phases/ship-stack.js +110 -0
  81. package/dist/phases/ship-stack.js.map +1 -0
  82. package/dist/phases/ship.d.ts +3 -0
  83. package/dist/phases/ship.d.ts.map +1 -1
  84. package/dist/phases/ship.js +1 -1
  85. package/dist/phases/ship.js.map +1 -1
  86. package/dist/phases/stack-check-failure.d.ts +42 -0
  87. package/dist/phases/stack-check-failure.d.ts.map +1 -0
  88. package/dist/phases/stack-check-failure.js +47 -0
  89. package/dist/phases/stack-check-failure.js.map +1 -0
  90. package/dist/phases/stack-fallback.d.ts +33 -0
  91. package/dist/phases/stack-fallback.d.ts.map +1 -0
  92. package/dist/phases/stack-fallback.js +47 -0
  93. package/dist/phases/stack-fallback.js.map +1 -0
  94. package/dist/phases/stack-review-change.d.ts +48 -0
  95. package/dist/phases/stack-review-change.d.ts.map +1 -0
  96. package/dist/phases/stack-review-change.js +73 -0
  97. package/dist/phases/stack-review-change.js.map +1 -0
  98. package/dist/queue/github-queue.d.ts +6 -0
  99. package/dist/queue/github-queue.d.ts.map +1 -1
  100. package/dist/queue/github-queue.js.map +1 -1
  101. package/dist/readiness/decompose.d.ts +4 -2
  102. package/dist/readiness/decompose.d.ts.map +1 -1
  103. package/dist/readiness/decompose.js +6 -2
  104. package/dist/readiness/decompose.js.map +1 -1
  105. package/dist/readiness/enrich.d.ts +6 -0
  106. package/dist/readiness/enrich.d.ts.map +1 -1
  107. package/dist/readiness/enrich.js +20 -1
  108. package/dist/readiness/enrich.js.map +1 -1
  109. package/dist/readiness/slice-gate.d.ts +5 -0
  110. package/dist/readiness/slice-gate.d.ts.map +1 -1
  111. package/dist/readiness/slice-gate.js +10 -4
  112. package/dist/readiness/slice-gate.js.map +1 -1
  113. package/dist/readiness/slice-plan-github.d.ts +25 -0
  114. package/dist/readiness/slice-plan-github.d.ts.map +1 -1
  115. package/dist/readiness/slice-plan-github.js +23 -1
  116. package/dist/readiness/slice-plan-github.js.map +1 -1
  117. package/dist/readiness/slice-plan.d.ts +29 -2
  118. package/dist/readiness/slice-plan.d.ts.map +1 -1
  119. package/dist/readiness/slice-plan.js +71 -4
  120. package/dist/readiness/slice-plan.js.map +1 -1
  121. package/dist/reports/benchmark-artifacts.d.ts +1 -1
  122. package/dist/reports/benchmark-artifacts.d.ts.map +1 -1
  123. package/dist/review/routing.d.ts +3 -1
  124. package/dist/review/routing.d.ts.map +1 -1
  125. package/dist/review/routing.js +21 -9
  126. package/dist/review/routing.js.map +1 -1
  127. package/dist/router/index.d.ts +10 -0
  128. package/dist/router/index.d.ts.map +1 -1
  129. package/dist/router/index.js +61 -13
  130. package/dist/router/index.js.map +1 -1
  131. package/dist/run/outcome.d.ts +3 -1
  132. package/dist/run/outcome.d.ts.map +1 -1
  133. package/dist/run/outcome.js.map +1 -1
  134. package/dist/run/resume-context.d.ts +51 -0
  135. package/dist/run/resume-context.d.ts.map +1 -1
  136. package/dist/run/resume-context.js +97 -0
  137. package/dist/run/resume-context.js.map +1 -1
  138. package/dist/run/run-issue.d.ts +19 -2
  139. package/dist/run/run-issue.d.ts.map +1 -1
  140. package/dist/run/run-issue.js +291 -192
  141. package/dist/run/run-issue.js.map +1 -1
  142. package/dist/sandbox/egress-proxy.d.ts +16 -0
  143. package/dist/sandbox/egress-proxy.d.ts.map +1 -1
  144. package/dist/sandbox/egress-proxy.js +91 -7
  145. package/dist/sandbox/egress-proxy.js.map +1 -1
  146. package/dist/sandbox/index.d.ts +2 -0
  147. package/dist/sandbox/index.d.ts.map +1 -1
  148. package/dist/sandbox/index.js +3 -1
  149. package/dist/sandbox/index.js.map +1 -1
  150. package/dist/sim/monte-carlo.js +1 -1
  151. package/dist/sim/monte-carlo.js.map +1 -1
  152. package/dist/steward/diagnose.d.ts +5 -1
  153. package/dist/steward/diagnose.d.ts.map +1 -1
  154. package/dist/steward/diagnose.js +13 -5
  155. package/dist/steward/diagnose.js.map +1 -1
  156. package/dist/steward/run.d.ts +2 -0
  157. package/dist/steward/run.d.ts.map +1 -1
  158. package/dist/steward/run.js +1 -0
  159. package/dist/steward/run.js.map +1 -1
  160. package/dist/types/index.d.ts +3 -1
  161. package/dist/types/index.d.ts.map +1 -1
  162. package/dist/usage/index.d.ts +19 -1
  163. package/dist/usage/index.d.ts.map +1 -1
  164. package/dist/usage/index.js +27 -1
  165. package/dist/usage/index.js.map +1 -1
  166. package/dist/utils/claude-config.d.ts +18 -1
  167. package/dist/utils/claude-config.d.ts.map +1 -1
  168. package/dist/utils/claude-config.js +48 -3
  169. package/dist/utils/claude-config.js.map +1 -1
  170. package/dist/utils/local-auth-record.d.ts +29 -0
  171. package/dist/utils/local-auth-record.d.ts.map +1 -0
  172. package/dist/utils/local-auth-record.js +92 -0
  173. package/dist/utils/local-auth-record.js.map +1 -0
  174. package/package.json +7 -7
  175. package/dist/daemon/repo-lane.d.ts +0 -5
  176. package/dist/daemon/repo-lane.d.ts.map +0 -1
  177. package/dist/daemon/repo-lane.js +0 -9
  178. package/dist/daemon/repo-lane.js.map +0 -1
@@ -8,7 +8,7 @@ import { withLifecycle } from '../bus/index.js';
8
8
  import { buildConstitutionContext } from '../constitutions/index.js';
9
9
  import { findUnresolvedRegressions, parseDesignArtifact, renderDesignArtifact } from '../design/index.js';
10
10
  import { buildFastPathSpec, isFastPathEligible } from '../efficiency/fast-path.js';
11
- import { buildReadinessEnrichmentPrompt, buildReadinessEnrichmentRetryPrompt, composeEnrichedIssueBody, stripEnrichedBlock, } from '../readiness/enrich.js';
11
+ import { buildReadinessEnrichmentPrompt, buildReadinessEnrichmentRetryPrompt, composeEnrichedIssueBody, scoreEnrichedIssueReadiness, stripEnrichedBlock, } from '../readiness/enrich.js';
12
12
  import { decomposeOversizedIssue, renderChildIssueBody } from '../readiness/decompose.js';
13
13
  import { resolveSliceGate } from '../readiness/slice-gate.js';
14
14
  import { DEFAULT_MAX_SLICES } from '../readiness/slice-plan.js';
@@ -43,10 +43,37 @@ export function runnableBuildRoutes(router) {
43
43
  export function defaultBuildRoute(runnable) {
44
44
  return runnable[0] ?? 'claude';
45
45
  }
46
+ /** Keep the requested route when it can run here (or the router cannot say); otherwise fall back. */
47
+ export function resolveRunnableBuildRoute(requested, runnable) {
48
+ if (runnable.length === 0 || runnable.includes(requested))
49
+ return { route: requested, rerouted: false };
50
+ return { route: defaultBuildRoute(runnable), rerouted: true };
51
+ }
52
+ /** Step-3 route bullets, in display order. */
53
+ const ROUTE_BULLETS = {
54
+ codex: ` - route: codex — when the implementation from a frozen spec is bounded and mechanical
55
+ (known-repro fixes, well-scoped features, refactors, test writing, CI/tooling)`,
56
+ claude: ` - route: claude — when the work needs UX, design, or architecture judgment; naming/API
57
+ design calls; is a tiny diff (<20 lines); needs session tools; or when the repo's
58
+ pinned build worker is a claude-cli model (e.g. claude-sonnet-5 in .factory/config.json)`,
59
+ opencode: ` - route: opencode — when the repo's pinned build worker is an opencode-harness model
60
+ (e.g. opencode-deepseek-v4-flash in .factory/config.json); bounded mechanical work`,
61
+ };
46
62
  export function buildPlanPrompt(opts) {
47
63
  const { issue, issueTitle, issueBody, specPath, constitutionCtx, adrCtx } = opts;
48
64
  const runnable = opts.runnableRoutes ?? [];
49
65
  const fallbackRoute = defaultBuildRoute(runnable);
66
+ const offered = runnable.length > 0 ? runnable : ROUTE_FALLBACK_ORDER;
67
+ const routeBullets = ['codex', 'claude', 'opencode']
68
+ .filter((r) => offered.includes(r))
69
+ .map((r) => ROUTE_BULLETS[r])
70
+ .join('\n');
71
+ const exampleRoute = offered.includes('codex') ? 'codex' : fallbackRoute;
72
+ const replaceNote = offered.includes('codex') && offered.includes('claude')
73
+ ? `(Replace 'codex' in the frontmatter with 'claude' if that's the route you chose.)\n`
74
+ : offered.length > 1
75
+ ? `(Set route: in the frontmatter to the route you chose.)\n`
76
+ : '';
50
77
  const runnableNote = runnable.length > 0 && runnable.length < ROUTE_FALLBACK_ORDER.length
51
78
  ? `\n Only these routes can run on this machine: ${runnable.join(', ')}. Choose one of them.`
52
79
  : '';
@@ -69,13 +96,7 @@ Steps:
69
96
  2. Explore the codebase (read/search only) enough to name the exact files, functions,
70
97
  and existing patterns/tests this issue touches, and any edge cases.
71
98
  3. Decide the build route:
72
- - route: codex — when the implementation from a frozen spec is bounded and mechanical
73
- (known-repro fixes, well-scoped features, refactors, test writing, CI/tooling)
74
- - route: claude — when the work needs UX, design, or architecture judgment; naming/API
75
- design calls; is a tiny diff (<20 lines); needs session tools; or when the repo's
76
- pinned build worker is a claude-cli model (e.g. claude-sonnet-5 in .factory/config.json)
77
- - route: opencode — when the repo's pinned build worker is an opencode-harness model
78
- (e.g. opencode-deepseek-v4-flash in .factory/config.json); bounded mechanical work
99
+ ${routeBullets}
79
100
  A pinned build worker's harness always wins over your judgment: the factory forces the
80
101
  route to match it after PLAN. Default to route: ${fallbackRoute} when genuinely unsure.${runnableNote}
81
102
  4. RIGHT-SIZE THE SLICE. A single BUILD pass must be bounded: aim for roughly
@@ -117,7 +138,7 @@ ${constitutionCtx ? '5. The constitution above defines the standards for this pr
117
138
 
118
139
  Write EXACTLY ONE file, at ${specPath}, in this shape:
119
140
  ---
120
- route: codex
141
+ route: ${exampleRoute}
121
142
  design:
122
143
  restatedProblem: >-
123
144
  <one paragraph, the problem in your own words — if this is wrong, stop>
@@ -187,8 +208,7 @@ ${constitutionCtx ? `## Constitution compliance\nFor each standard in the consti
187
208
  ## Non-goals
188
209
  <explicitly out of scope, from the issue>
189
210
 
190
- (Replace 'codex' in the frontmatter with 'claude' if that's the route you chose.)
191
- The design: block is machine-validated — keys must match exactly as shown.
211
+ ${replaceNote}The design: block is machine-validated — keys must match exactly as shown.
192
212
  targetTypes / signatures / callGraph must be grounded in the real checkout: every
193
213
  file must be one that exists (or one you are creating), and every name/symbol must
194
214
  be one you actually read or are adding — omit an entry rather than guess. Quote
@@ -222,16 +242,17 @@ function blockedNoChangeSpecReason(body) {
222
242
  return null;
223
243
  return 'PLAN returned a blocked/no-change note instead of a frozen spec';
224
244
  }
225
- /** The file-mode size-gate escalation: log it and build the parked (or decomposed) PlanResult. */
226
- function fileModeEscalation(childIssues, readiness, specPath, log, prefix = '') {
245
+ /** The file-mode size-gate escalation: logs size-gate-decomposed when children were filed and
246
+ * size-gate-escalated otherwise, and builds the parked (or decomposed) PlanResult. */
247
+ function fileModeEscalation(childIssues, readiness, specPath, route, log, prefix = '') {
227
248
  const reason = prefix +
228
249
  (childIssues.length > 0
229
250
  ? `issue exceeds the size gate (${readiness.sizeReason ?? 'too big'}) — decomposed into ${childIssues.map((n) => `#${n}`).join(', ')}`
230
251
  : `issue exceeds the size gate (${readiness.sizeReason ?? 'too big'}) — parked for decomposition`);
231
- log('size-gate-escalated', reason, { readiness });
252
+ log(childIssues.length > 0 ? 'size-gate-decomposed' : 'size-gate-escalated', reason, { readiness });
232
253
  return {
233
254
  ok: false,
234
- route: 'claude',
255
+ route,
235
256
  specPath,
236
257
  model: '',
237
258
  escalate: reason,
@@ -255,7 +276,9 @@ async function planPhaseImpl(opts) {
255
276
  let issueBody = work.brief;
256
277
  log('work_request', `resolved work request ${work.id} (${work.kind}, ${work.acceptanceCriteria.length} acceptance criteria)`);
257
278
  const constitutionCtx = buildConstitutionContext(constitution);
258
- let readiness = scoreIssueReadiness({ title: issueTitle, body: issueBody });
279
+ const runnableRoutes = runnableBuildRoutes(router);
280
+ const failureRoute = defaultBuildRoute(runnableRoutes);
281
+ let readiness = scoreEnrichedIssueReadiness({ title: issueTitle, body: issueBody });
259
282
  if (opts.enforceReadiness &&
260
283
  source.kind === GITHUB_ISSUE_SOURCE &&
261
284
  readiness.template === 'factory-task' &&
@@ -310,7 +333,14 @@ async function planPhaseImpl(opts) {
310
333
  previous = { previousOutput: enrichment.output, template: candidate.template, stillMissing: candidate.missing };
311
334
  }
312
335
  if (!enriched) {
313
- return { ok: false, route: 'claude', specPath, model: lastModel, escalate: lastReason, designArtifact: null };
336
+ return {
337
+ ok: false,
338
+ route: failureRoute,
339
+ specPath,
340
+ model: lastModel,
341
+ escalate: lastReason,
342
+ designArtifact: null,
343
+ };
314
344
  }
315
345
  }
316
346
  catch (error) {
@@ -318,7 +348,7 @@ async function planPhaseImpl(opts) {
318
348
  log('readiness_enrichment_failed', `enrichment failed: ${reason}`);
319
349
  return {
320
350
  ok: false,
321
- route: 'claude',
351
+ route: failureRoute,
322
352
  specPath,
323
353
  model: '',
324
354
  escalate: `readiness enrichment failed: ${reason}`,
@@ -326,10 +356,15 @@ async function planPhaseImpl(opts) {
326
356
  };
327
357
  }
328
358
  }
359
+ // ADR-0161: stack PRs are not built yet; stack runs the slice-mode gates (its fallback).
360
+ const sliceMode = opts.sizeGateMode === 'slice' || opts.sizeGateMode === 'stack';
361
+ if (enforceSizeGate && opts.sizeGateMode === 'stack') {
362
+ log('plan', 'sizeGate.mode stack: stacked PRs are not built yet — using slice mode');
363
+ }
329
364
  let planningSlice = false;
330
365
  let sliceLabel = '';
331
366
  let plannedSlice;
332
- if (enforceSizeGate && opts.sizeGateMode === 'slice' && source.kind === GITHUB_ISSUE_SOURCE) {
367
+ if (enforceSizeGate && sliceMode && source.kind === GITHUB_ISSUE_SOURCE) {
333
368
  const params = source.params;
334
369
  const gate = await resolveSliceGate({
335
370
  issue: params.issue,
@@ -348,7 +383,7 @@ async function planPhaseImpl(opts) {
348
383
  });
349
384
  const park = (reason) => ({
350
385
  ok: false,
351
- route: 'claude',
386
+ route: failureRoute,
352
387
  specPath,
353
388
  model: '',
354
389
  escalate: reason,
@@ -358,7 +393,7 @@ async function planPhaseImpl(opts) {
358
393
  log('escalate', gate.reason);
359
394
  return park(gate.reason);
360
395
  }
361
- if (gate.kind === 'over-cap') {
396
+ if (gate.kind === 'over-cap' || gate.kind === 'unsliceable') {
362
397
  log('size-gate-escalated', gate.reason);
363
398
  return park(gate.reason);
364
399
  }
@@ -379,7 +414,7 @@ async function planPhaseImpl(opts) {
379
414
  }
380
415
  }
381
416
  if (enforceSizeGate &&
382
- opts.sizeGateMode !== 'slice' &&
417
+ !sliceMode &&
383
418
  source.kind === GITHUB_ISSUE_SOURCE &&
384
419
  readiness.template === 'factory-task' &&
385
420
  readiness.sizeOk === false) {
@@ -397,7 +432,7 @@ async function planPhaseImpl(opts) {
397
432
  onProviderFailure,
398
433
  fileSubIssues: true,
399
434
  });
400
- return fileModeEscalation(decomposeResult.childIssues, readiness, specPath, log);
435
+ return fileModeEscalation(decomposeResult.childIssues, readiness, specPath, failureRoute, log);
401
436
  }
402
437
  // The fast path emits a compact Codex spec, so it is only valid when the route may be codex:
403
438
  // a pinned claude/opencode build route (#1367) must go through model PLAN like any other issue.
@@ -456,7 +491,6 @@ async function planPhaseImpl(opts) {
456
491
  });
457
492
  let steering;
458
493
  let replans = 0;
459
- const runnableRoutes = runnableBuildRoutes(router);
460
494
  while (true) {
461
495
  const prompt = applySteering(buildPlanPrompt({ issue, issueTitle, issueBody, specPath, constitutionCtx, adrCtx, runnableRoutes }), steering);
462
496
  if (replans > 0) {
@@ -485,7 +519,7 @@ async function planPhaseImpl(opts) {
485
519
  log('escalate', escalateLine ?? 'plan escalated');
486
520
  return {
487
521
  ok: false,
488
- route: 'claude',
522
+ route: failureRoute,
489
523
  specPath,
490
524
  model: result.model,
491
525
  escalate: escalateLine,
@@ -514,8 +548,9 @@ async function planPhaseImpl(opts) {
514
548
  // since it's the frozen artifact downstream consumers (eval scoring, PR review) read.
515
549
  await updateSpecRoute(specPath, 'claude', 'codex-disabled');
516
550
  }
517
- if (runnableNow.length > 0 && !runnableNow.includes(route)) {
518
- const next = defaultBuildRoute(runnableNow);
551
+ const resolved = resolveRunnableBuildRoute(route, runnableNow);
552
+ if (resolved.rerouted) {
553
+ const next = resolved.route;
519
554
  log('model-override', `route ${route} has no runnable model on this machine, rerouting to ${next}`);
520
555
  route = next;
521
556
  await updateSpecRoute(specPath, next, 'route-unavailable');
@@ -552,6 +587,7 @@ async function planPhaseImpl(opts) {
552
587
  // ~40 min of agent churn is a planning failure, not a build problem.
553
588
  // Decompose the issue instead of handing a mega-slice to BUILD: detect
554
589
  // complexity at planning time and keep each build pass short (2026-08-15).
590
+ // File mode files the decomposition as sub-issues and re-queues them (#2662).
555
591
  if (enforceSizeGate &&
556
592
  source.kind === GITHUB_ISSUE_SOURCE &&
557
593
  (designArtifact.targetTypes.length > MAX_BUILD_TARGET_TYPES ||
@@ -570,7 +606,7 @@ async function planPhaseImpl(opts) {
570
606
  designArtifact: null,
571
607
  });
572
608
  // ADR-0147: in slice mode the post-plan gate slices a whole issue; a slice is never sliced again.
573
- if (opts.sizeGateMode === 'slice') {
609
+ if (sliceMode) {
574
610
  if (planningSlice) {
575
611
  const reason = `${sliceLabel} exceeds the bounded-build budget (${scope}) — parked; a slice is never sliced again`;
576
612
  log('size-gate-escalated', reason);
@@ -595,7 +631,7 @@ async function planPhaseImpl(opts) {
595
631
  const reason = `plan scope exceeds the bounded-build budget (${scope}) — sliced into ${gate.plan.slices.length} slice(s); the next run plans slice ${gate.slice.index}`;
596
632
  return { ...park(reason), sliced: { sliceCount: gate.plan.slices.length } };
597
633
  }
598
- if (gate.kind === 'over-cap') {
634
+ if (gate.kind === 'over-cap' || gate.kind === 'unsliceable') {
599
635
  log('size-gate-escalated', gate.reason);
600
636
  return park(gate.reason);
601
637
  }
@@ -603,7 +639,8 @@ async function planPhaseImpl(opts) {
603
639
  log('escalate', reason);
604
640
  return park(reason);
605
641
  }
606
- await decomposeOversizedIssue({
642
+ // File mode (#2662): file the decomposition as sub-issues and re-queue them instead of parking.
643
+ const decomposeResult = await decomposeOversizedIssue({
607
644
  issue: params.issue,
608
645
  repo: params.repo,
609
646
  title: issueTitle,
@@ -614,7 +651,14 @@ async function planPhaseImpl(opts) {
614
651
  log: (type, msg) => log(type, msg),
615
652
  timeoutSeconds: Math.min(timeoutSeconds ?? 1800, 300),
616
653
  onProviderFailure,
654
+ fileSubIssues: true,
617
655
  });
656
+ const { childIssues } = decomposeResult;
657
+ if (childIssues.length > 0) {
658
+ const reason = `plan scope exceeds the bounded-build budget (${scope}) — decomposed into ${childIssues.map((n) => `#${n}`).join(', ')}`;
659
+ log('size-gate-decomposed', reason);
660
+ return { ...park(reason), decomposed: { childIssues } };
661
+ }
618
662
  log('size-gate-escalated', fileReason);
619
663
  return park(fileReason);
620
664
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/phases/plan.ts"],"names":[],"mappings":"AAAA,oGAAoG;AAEpG,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAqB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEnF,OAAO,EACL,8BAA8B,EAC9B,mCAAmC,EACnC,wBAAwB,EACxB,kBAAkB,GAEnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAkB,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAyB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAErF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAA0B,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,+BAA+B,EAAuD,MAAM,kBAAkB,CAAC;AAExH;;;;GAIG;AACH,MAAM,+BAA+B,GAAG,YAAY,CAAC;AAmCrD,2EAA2E;AAC3E,MAAM,oBAAoB,GAA8B,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAExF;yFACyF;AACzF,MAAM,UAAU,mBAAmB,CAAC,MAAuC;IACzE,IAAI,CAAC;QACH,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,iBAAiB,CAAC,QAAmC;IACnE,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAoB;IAClD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAC3C,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,YAAY,GAChB,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,oBAAoB,CAAC,MAAM;QAClE,CAAC,CAAC,mDAAmD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB;QAC/F,CAAC,CAAC,EAAE,CAAC;IAET,OAAO,uEAAuE,KAAK;;;EAGnF,eAAe;EACf,MAAM,IAAI,EAAE;YACF,KAAK,KAAK,UAAU;;EAE9B,2BAA2B;;EAE3B,sBAAsB,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;qDAkBkB,aAAa,0BAA0B,YAAY;;;;;;;;EAQtG,eAAe,CAAC,CAAC,CAAC,0GAA0G,CAAC,CAAC,CAAC,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA8BzJ,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA4D3B,UAAU,MAAM,KAAK;;;;;;;;EAQ7B,eAAe,CAAC,CAAC,CAAC,oGAAoG,CAAC,CAAC,CAAC,mDAAmD;;;;;;;;;;;;;;;;;mBAiB3J,QAAQ,GAAG,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAyC;IACvE,OAAO,aAAa,CAClB;QACE,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,KAAK;QACnB,YAAY,EAAE,IAAI,CAAC,QAAQ;QAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,EACD,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EACzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EACX,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC,CACpH,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY;IAC7C,MAAM,YAAY,GAAG,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAE/B,MAAM,aAAa,GAAG,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpH,MAAM,eAAe,GACnB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,uDAAuD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClG,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAEpD,OAAO,iEAAiE,CAAC;AAC3E,CAAC;AAED,kGAAkG;AAClG,SAAS,kBAAkB,CACzB,WAAqB,EACrB,SAAwB,EACxB,QAAgB,EAChB,GAAkF,EAClF,MAAM,GAAG,EAAE;IAEX,MAAM,MAAM,GACV,MAAM;QACN,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YACrB,CAAC,CAAC,gCAAgC,SAAS,CAAC,UAAU,IAAI,SAAS,uBAAuB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtI,CAAC,CAAC,gCAAgC,SAAS,CAAC,UAAU,IAAI,SAAS,8BAA8B,CAAC,CAAC;IACvG,GAAG,CAAC,qBAAqB,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAClD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,QAAQ;QACf,QAAQ;QACR,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,MAAM;QAChB,cAAc,EAAE,IAAI;QACpB,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAuD5B;IACC,MAAM,EACJ,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,OAAO,EACP,GAAG,EACH,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,MAAM,EACN,YAAY,EACZ,aAAa,GACd,GAAG,IAAI,CAAC;IACT,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IACxC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;IAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;IAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,+BAA+B,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI;QAChC,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAA8B;KACpD,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACnE,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5B,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;IAC3B,GAAG,CACD,cAAc,EACd,yBAAyB,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,kBAAkB,CAAC,MAAM,uBAAuB,CACzG,CAAC;IAEF,MAAM,eAAe,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAE/D,IAAI,SAAS,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5E,IACE,IAAI,CAAC,gBAAgB;QACrB,MAAM,CAAC,IAAI,KAAK,mBAAmB;QACnC,SAAS,CAAC,QAAQ,KAAK,cAAc;QACrC,CAAC,SAAS,CAAC,IAAI,EACf,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAA2B,CAAC;QAClD,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC;QAC7D,MAAM,qBAAqB,GAAG,CAAC,CAAC,CAAC,sEAAsE;QACvG,GAAG,CAAC,8BAA8B,EAAE,4CAA4C,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC;YACH,IAAI,QAAQ,GAA2C,IAAI,CAAC;YAC5D,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,qBAAqB,EAAE,OAAO,EAAE,EAAE,CAAC;gBAClE,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;gBACrG,MAAM,MAAM,GACV,QAAQ,KAAK,IAAI;oBACf,CAAC,CAAC,8BAA8B,CAAC,KAAK,CAAC;oBACvC,CAAC,CAAC,mCAAmC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC3D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,EAAE;oBAC9D,QAAQ;oBACR,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,EAAE,GAAG,CAAC;oBACrD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;iBACnC,CAAC,CAAC;gBACH,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC;gBAC7B,MAAM,SAAS,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;gBACtF,IAAI,SAAS,CAAC,QAAQ,KAAK,cAAc,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;oBAC5D,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;oBACxE,IAAI,eAAe,EAAE,CAAC;wBACpB,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;4BAC/B,KAAK;4BACL,IAAI,EAAE,IAAI;4BACV,YAAY,EAAE,MAAM,CAAC,KAAK;4BAC1B,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,EAAE,sBAAsB,EAAE,+BAA+B,EAAE;yBACrE,CAAC,CAAC;oBACL,CAAC;oBACD,SAAS,GAAG,QAAQ,CAAC;oBACrB,SAAS,GAAG,SAAS,CAAC;oBACtB,GAAG,CACD,gCAAgC,EAChC,eAAe;wBACb,CAAC,CAAC,gCAAgC,MAAM,CAAC,KAAK,SAAS,UAAU,CAAC,KAAK,mPAAmP;wBAC1T,CAAC,CAAC,gCAAgC,MAAM,CAAC,KAAK,SAAS,UAAU,CAAC,KAAK,wHAAwH,EACjM;wBACE,KAAK,EAAE,UAAU,CAAC,KAAK;qBACxB,CACF,CAAC;oBACF,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACR,CAAC;gBACD,UAAU,GAAG,uCAAuC,SAAS,CAAC,QAAQ,cAAc,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC;gBAC9H,GAAG,CACD,6BAA6B,EAC7B,OAAO,GAAG,qBAAqB;oBAC7B,CAAC,CAAC,GAAG,UAAU,0DAA0D,OAAO,IAAI,qBAAqB,GAAG;oBAC5G,CAAC,CAAC,GAAG,UAAU,YAAY,qBAAqB,aAAa,CAChE,CAAC;gBACF,QAAQ,GAAG,EAAE,cAAc,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;YAClH,CAAC;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;YAChH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,GAAG,CAAC,6BAA6B,EAAE,sBAAsB,MAAM,EAAE,CAAC,CAAC;YACnE,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,QAAQ;gBACf,QAAQ;gBACR,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,gCAAgC,MAAM,EAAE;gBAClD,cAAc,EAAE,IAAI;aACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,YAAiC,CAAC;IACtC,IAAI,eAAe,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QAC5F,MAAM,MAAM,GAAG,MAAM,CAAC,MAA2B,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;YAClC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,SAAS,CAAC,QAAQ,KAAK,cAAc,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK;YAC9E,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,kBAAkB;YAC/C,QAAQ;YACR,MAAM;YACN,OAAO;YACP,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;YAClC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,EAAE,GAAG,CAAC;YACrD,iBAAiB;SAClB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAc,EAAc,EAAE,CAAC,CAAC;YAC5C,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,QAAQ;YACf,QAAQ;YACR,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,MAAM;YAChB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YAC7B,UAAU,GAAG,GAAG,UAAU,YAAY,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;YAC1F,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5D,SAAS,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACxE,aAAa,GAAG,IAAI,CAAC;YACrB,YAAY,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5C,UAAU,GAAG,SAAS,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;YAC9E,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACvG,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,SAAS,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,KAAK,2BAA2B,SAAS,CAAC,UAAU,IAAI,SAAS,2CAA2C,CAAC;gBACrL,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IACE,eAAe;QACf,IAAI,CAAC,YAAY,KAAK,OAAO;QAC7B,MAAM,CAAC,IAAI,KAAK,mBAAmB;QACnC,SAAS,CAAC,QAAQ,KAAK,cAAc;QACrC,SAAS,CAAC,MAAM,KAAK,KAAK,EAC1B,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAA2B,CAAC;QAClD,MAAM,eAAe,GAAG,MAAM,uBAAuB,CAAC;YACpD,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,SAAS;YACf,QAAQ;YACR,MAAM;YACN,OAAO;YACP,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;YAClC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,EAAE,GAAG,CAAC;YACrD,iBAAiB;YACjB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,kBAAkB,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IACnF,CAAC;IAED,6FAA6F;IAC7F,gGAAgG;IAChG,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,CAAC;IAChF,IACE,IAAI,CAAC,QAAQ;QACb,CAAC,eAAe;QAChB,eAAe;QACf,kBAAkB,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAClE,CAAC;QACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5E,MAAM,SAAS,CAAC,QAAQ,EAAE;YACxB,IAAI,EAAE,QAAQ,CAAC,QAAQ;YACvB,IAAI,EAAE,QAAQ,CAAC,WAAW;YAC1B,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC;SACnE,CAAC,CAAC;QACH,GAAG,CAAC,WAAW,EAAE,6EAA6E,CAAC,CAAC;QAChG,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,OAAO;YACd,QAAQ;YACR,KAAK,EAAE,WAAW;YAClB,cAAc,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM;YAC3C,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAEnC,GAAG,CACD,WAAW,EACX,mBAAmB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EACrJ,EAAE,SAAS,EAAE,CACd,CAAC;IAEF,GAAG,CAAC,oBAAoB,EAAE,uDAAuD,CAAC,CAAC;IACnF,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,cAAc,CAAC;QAC/B,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW;gBAAE,OAAO,CAAC,oCAAoC;YAC9E,GAAG,CAAC,mBAAmB,EAAE,sBAAsB,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACpG,CAAC;KACF,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM;aAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;aACpG,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,GAAG,CACD,aAAa,EACb,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,oDAAoD,KAAK,EAAE;YACpF,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,SAAS,qCAAqC,CAAC,CAAC,CAAC,EAAE,CAAC,CACnG,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,mBAAmB,EAAE,6BAA6B,UAAU,CAAC,GAAG,qCAAqC,CAAC,CAAC;IAC7G,CAAC;IACD,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxF,GAAG,CAAC,aAAa,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,yBAAyB,WAAW,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,GAAG,CAAC,sBAAsB,EAAE,2BAA2B,UAAU,CAAC,MAAM,CAAC,MAAM,UAAU,EAAE;QACzF,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB;KAC5C,CAAC,CAAC;IAEH,IAAI,QAAsC,CAAC;IAC3C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAEnD,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,aAAa,CAC1B,eAAe,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,EACpG,QAAQ,CACT,CAAC;QAEF,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,GAAG,CAAC,MAAM,EAAE,gDAAgD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,MAAM,EAAE,2CAA2C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE;YAC9C,QAAQ;YACR,cAAc,EAAE,cAAc,IAAI,IAAI;YACtC,aAAa;YACb,cAAc;YACd,iBAAiB;YACjB,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;SACnC,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE;gBACjG,cAAc,EAAE,CAAC,CAAC,MAAM;aACzB,CAAC,CAAC;QACL,CAAC;QAED,uBAAuB;QACvB,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnD,GAAG,CAAC,UAAU,EAAE,YAAY,IAAI,gBAAgB,CAAC,CAAC;YAClD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,QAAQ;gBACf,QAAQ;gBACR,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,YAAY;gBACtB,cAAc,EAAE,IAAI;aACrB,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,6EAA6E;QAC7E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,0EAA0E;QAC1E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxC,oGAAoG;QACpG,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,KAAK,GAAoC,MAAM,CAAC,KAAK,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAE5F,IAAI,SAAS,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACnC,GAAG,CAAC,MAAM,EAAE,yEAAyE,CAAC,CAAC;YACvF,KAAK,GAAG,OAAO,CAAC;YAChB,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,KAAK,KAAK,OAAO,IAAI,eAAe,EAAE,CAAC;YACzC,GAAG,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC;YAC1D,KAAK,GAAG,QAAQ,CAAC;YACjB,uEAAuE;YACvE,sFAAsF;YACtF,MAAM,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAC5C,GAAG,CAAC,gBAAgB,EAAE,SAAS,KAAK,wDAAwD,IAAI,EAAE,CAAC,CAAC;YACpG,KAAK,GAAG,IAAI,CAAC;YACb,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YACzD,GAAG,CAAC,gBAAgB,EAAE,sBAAsB,IAAI,CAAC,cAAc,wBAAwB,KAAK,EAAE,CAAC,CAAC;YAChG,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;YAC5B,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpH,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,GAAG,CACD,yBAAyB,EACzB,WAAW,aAAa,CAAC,MAAM,4CAA4C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtG,CAAC;QACJ,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,SAAS,CAAC,QAAQ,EAAE;gBACxB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnD,QAAQ,EAAE,oBAAoB,CAAC,cAAc,EAAE,KAAK,CAAC;aACtD,CAAC,CAAC;YACH,GAAG,CACD,yBAAyB,EACzB,0DAA0D,cAAc,CAAC,aAAa,CAAC,MAAM,IAAI;gBAC/F,iBAAiB,cAAc,CAAC,WAAW,CAAC,MAAM,IAAI;gBACtD,eAAe,cAAc,CAAC,UAAU,CAAC,MAAM,IAAI;gBACnD,eAAe,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,CACpD,CAAC;YACF,IACE,cAAc,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;gBACvC,cAAc,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gBACtC,cAAc,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EACrC,CAAC;gBACD,GAAG,CACD,gBAAgB,EAChB,wGAAwG,CACzG,CAAC;YACJ,CAAC;YACD,IAAI,cAAc,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC/E,GAAG,CAAC,uBAAuB,EAAE,YAAY,cAAc,CAAC,aAAa,CAAC,MAAM,sBAAsB,SAAS,EAAE,CAAC,CAAC;YACjH,CAAC;YAED,0EAA0E;YAC1E,qEAAqE;YACrE,uEAAuE;YACvE,2EAA2E;YAC3E,IACE,eAAe;gBACf,MAAM,CAAC,IAAI,KAAK,mBAAmB;gBACnC,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,GAAG,sBAAsB;oBACzD,cAAc,CAAC,UAAU,CAAC,MAAM,GAAG,oBAAoB;oBACvD,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,oBAAoB,CAAC,EACzD,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAA2B,CAAC;gBAClD,MAAM,KAAK,GACT,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,kBAAkB,cAAc,CAAC,UAAU,CAAC,MAAM,eAAe;oBACrG,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,aAAa,CAAC;gBAClD,MAAM,UAAU,GAAG,gDAAgD,KAAK,8BAA8B,CAAC;gBACvG,MAAM,IAAI,GAAG,CAAC,MAAc,EAAc,EAAE,CAAC,CAAC;oBAC5C,EAAE,EAAE,KAAK;oBACT,KAAK;oBACL,QAAQ;oBACR,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,QAAQ,EAAE,MAAM;oBAChB,cAAc,EAAE,IAAI;iBACrB,CAAC,CAAC;gBACH,kGAAkG;gBAClG,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;oBAClC,IAAI,aAAa,EAAE,CAAC;wBAClB,MAAM,MAAM,GAAG,GAAG,UAAU,sCAAsC,KAAK,2CAA2C,CAAC;wBACnH,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;wBACnC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;oBACtB,CAAC;oBACD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;wBAClC,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,KAAK,EAAE,UAAU;wBACjB,IAAI,EAAE,SAAS;wBACf,SAAS,EAAE,IAAI;wBACf,UAAU,EAAE,gDAAgD,KAAK,EAAE;wBACnE,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,kBAAkB;wBAC/C,QAAQ;wBACR,MAAM;wBACN,OAAO;wBACP,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;wBAClC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,EAAE,GAAG,CAAC;wBACrD,iBAAiB;qBAClB,CAAC,CAAC;oBACH,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC1B,MAAM,MAAM,GAAG,gDAAgD,KAAK,mBAAmB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,uCAAuC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;wBACxK,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC9E,CAAC;oBACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBAC7B,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;wBACxC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC3B,CAAC;oBACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;oBAC/D,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBACxB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM,uBAAuB,CAAC;oBAC5B,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,UAAU;oBACjB,IAAI,EAAE,SAAS;oBACf,QAAQ;oBACR,MAAM;oBACN,OAAO;oBACP,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;oBAClC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,EAAE,GAAG,CAAC;oBACrD,iBAAiB;iBAClB,CAAC,CAAC;gBACH,GAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;gBACvC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM,UAAU,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;YAC7D,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,GAAG,CACD,8BAA8B,EAC9B,sBAAsB,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,qCAAqC,CACjH,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAC7D,MAAM,MAAM,GAAG,YAAY,UAAU,CAAC,MAAM,qIAAqI,CAAC;gBAClL,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;YACrG,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,aAAa,EAAE,CAAC;gBAClB,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;gBAC/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;YAC5G,CAAC;YACD,GAAG,CAAC,yBAAyB,EAAE,kDAAkD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9G,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,4BAA4B,MAAM,CAAC,KAAK,YAAY,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAElG,MAAM,UAAU,GAAe;YAC7B,EAAE,EAAE,IAAI;YACR,KAAK;YACL,QAAQ;YACR,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,cAAc;YACd,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC;QAEF,IAAI,CAAC,YAAY;YAAE,OAAO,UAAU,CAAC;QAErC,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,WAAW,GACf,eAAe,CAAC,MAAM,GAAG,uBAAuB;YAC9C,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC;YACnD,CAAC,CAAC,eAAe,CAAC;QAEtB,GAAG,CAAC,yBAAyB,EAAE,qCAAqC,KAAK,YAAY,KAAK,GAAG,CAAC,CAAC;QAC/F,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;YAClC,KAAK;YACL,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,QAAQ;YACR,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,MAAM;YACZ,WAAW;SACZ,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,GAAG,CAAC,uBAAuB,EAAE,4BAA4B,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,EAAE,EAAE,CAAC;QACnC,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,gCAAgC,UAAU,aAAa,CAAC;gBACvE,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;YACrG,CAAC;YACD,OAAO,EAAE,CAAC;YACV,QAAQ,GAAG,QAAQ,CAAC;YACpB,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjD,SAAS,CAAC,kDAAkD;QAC9D,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,2BAA2B,CAAC;QAC9D,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK;YACL,QAAQ;YACR,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,kBAAkB,MAAM,EAAE;YACpC,cAAc,EAAE,IAAI;SACrB,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/phases/plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { Octokit } from '@octokit/rest';
2
+ import type { EventKind } from '../events/kinds.js';
3
+ import { type SlicePlan } from '../readiness/slice-plan.js';
4
+ import type { CheckSummary } from '../types/index.js';
5
+ /** One built, already-pushed slice branch, bottom to top. */
6
+ export interface StackSliceInput {
7
+ /** 1-based slice index from the slice plan. */
8
+ index: number;
9
+ /** Pushed head branch of this slice. */
10
+ branch: string;
11
+ diffStat: string;
12
+ specBody?: string;
13
+ risk?: string;
14
+ checkSummary?: CheckSummary;
15
+ reworkRounds?: number;
16
+ }
17
+ export interface StackedPr {
18
+ index: number;
19
+ prNumber: number;
20
+ branch: string;
21
+ base: string;
22
+ /** Head SHA of the created PR; unset for a reused existing PR. */
23
+ headSha?: string;
24
+ }
25
+ export type SliceStackResult = {
26
+ ok: true;
27
+ stackNumber: number;
28
+ prs: StackedPr[];
29
+ } | {
30
+ ok: false;
31
+ reason: string;
32
+ prs: StackedPr[];
33
+ /** Set only when the native stack API call itself failed (ADR-0161 fallback trigger). */
34
+ stackError?: string;
35
+ };
36
+ /** Opens one draft PR per built slice (slice 1 on main, slice k on slice k-1's branch), links them as one
37
+ * GitHub stack, and records every PR and branch in the slice-plan comment. Only the top PR closes the issue. */
38
+ export declare function openSliceStack(opts: {
39
+ octokit: Octokit;
40
+ repo: string;
41
+ issue: number;
42
+ title: string;
43
+ plan: SlicePlan;
44
+ slices: readonly StackSliceInput[];
45
+ /** Slice indexes the run stopped before building (ADR-0161); recorded as `not-built` in the same comment write. */
46
+ notBuilt?: readonly number[];
47
+ log: (type: EventKind, msg: string) => void;
48
+ }): Promise<SliceStackResult>;
49
+ //# sourceMappingURL=ship-stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship-stack.d.ts","sourceRoot":"","sources":["../../src/phases/ship-stack.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAAsC,MAAM,4BAA4B,CAAC;AAGhG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,EAAE,CAAA;CAAE,GACnD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,SAAS,EAAE,CAAC;IACjB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAMN;iHACiH;AACjH,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IACnC,mHAAmH;IACnH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyG5B"}
@@ -0,0 +1,110 @@
1
+ // src/phases/ship-stack.ts — ADR-0161 stack mode SHIP: open every built slice PR and link them as one GitHub stack.
2
+ import { withSliceState, withSlicesNotBuilt } from '../readiness/slice-plan.js';
3
+ import { upsertSlicePlanComment } from '../readiness/slice-plan-github.js';
4
+ import { renderPrBody } from '../reports/pr-body.js';
5
+ import { findOpenPR, isPullAlreadyExistsError } from './ship.js';
6
+ function messageOf(err) {
7
+ return err instanceof Error ? err.message : String(err);
8
+ }
9
+ /** Opens one draft PR per built slice (slice 1 on main, slice k on slice k-1's branch), links them as one
10
+ * GitHub stack, and records every PR and branch in the slice-plan comment. Only the top PR closes the issue. */
11
+ export async function openSliceStack(opts) {
12
+ const { octokit, repo, issue, plan, log } = opts;
13
+ const notBuilt = opts.notBuilt ?? [];
14
+ const [owner, repoName] = repo.split('/');
15
+ const count = plan.slices.length;
16
+ const sorted = [...opts.slices].sort((a, b) => a.index - b.index);
17
+ if (sorted.length === 0)
18
+ return { ok: false, reason: 'no built slices to open', prs: [] };
19
+ const prs = [];
20
+ let failure;
21
+ let stackError;
22
+ for (const [i, slice] of sorted.entries()) {
23
+ const base = i === 0 ? 'main' : sorted[i - 1].branch;
24
+ const top = slice.index === count;
25
+ const label = `slice ${slice.index}/${count}`;
26
+ let prNumber;
27
+ let headSha;
28
+ try {
29
+ const { data: pr } = await octokit.rest.pulls.create({
30
+ owner,
31
+ repo: repoName,
32
+ head: slice.branch,
33
+ base,
34
+ title: `${opts.title} — ${label} (#${issue})`,
35
+ draft: true,
36
+ body: renderPrBody({
37
+ summaryLine: `Implements ${label} of #${issue}.`,
38
+ specBody: slice.specBody,
39
+ diffStat: slice.diffStat,
40
+ checkSummary: slice.checkSummary,
41
+ reworkRounds: slice.reworkRounds,
42
+ risk: slice.risk,
43
+ closes: top ? issue : undefined,
44
+ partOf: top ? undefined : issue,
45
+ }),
46
+ });
47
+ prNumber = pr.number;
48
+ headSha = pr.head?.sha;
49
+ log('pr_opened', `opened PR #${prNumber} for ${label} on ${slice.branch} (base ${base})`);
50
+ }
51
+ catch (err) {
52
+ const existing = isPullAlreadyExistsError(err)
53
+ ? await findOpenPR(octokit, owner, repoName, slice.branch)
54
+ : undefined;
55
+ if (existing?.status === 'found') {
56
+ prNumber = existing.prNumber;
57
+ log('recovered', `PR #${prNumber} already existed for ${label} on ${slice.branch}; reusing it`);
58
+ }
59
+ else {
60
+ failure = `could not open the PR for ${label} (${slice.branch}): ${messageOf(err)}`;
61
+ log('ship', failure);
62
+ break;
63
+ }
64
+ }
65
+ prs.push({
66
+ index: slice.index,
67
+ prNumber,
68
+ branch: slice.branch,
69
+ base,
70
+ ...(headSha !== undefined ? { headSha } : {}),
71
+ });
72
+ }
73
+ let stackNumber = 0;
74
+ if (failure === undefined) {
75
+ try {
76
+ const { data } = await octokit.request('POST /repos/{owner}/{repo}/stacks', {
77
+ owner,
78
+ repo: repoName,
79
+ pull_requests: prs.map((p) => p.prNumber),
80
+ });
81
+ stackNumber = data.number;
82
+ log('ship', `linked PRs ${prs.map((p) => `#${p.prNumber}`).join(', ')} as stack ${stackNumber}`);
83
+ }
84
+ catch (err) {
85
+ stackError = messageOf(err);
86
+ failure = `could not link the slice PRs as a stack: ${messageOf(err)}`;
87
+ log('ship', failure);
88
+ }
89
+ }
90
+ if (prs.length > 0) {
91
+ try {
92
+ const start = notBuilt.length > 0 ? withSlicesNotBuilt(plan, Math.min(...notBuilt)) : plan;
93
+ const recorded = prs.reduce((p, s) => withSliceState(p, s.index, 'pr-open', s.prNumber, s.branch, s.headSha), start);
94
+ await upsertSlicePlanComment({ octokit, repo, issue, plan: recorded });
95
+ log('ship', `recorded slices ${prs.map((p) => p.index).join(', ')} as pr-open${notBuilt.length > 0 ? `; slices ${notBuilt.join(', ')} as not-built` : ''} in the slice plan comment`);
96
+ }
97
+ catch (err) {
98
+ return {
99
+ ok: false,
100
+ reason: `could not record the slice plan comment: ${messageOf(err)}`,
101
+ prs,
102
+ ...(stackError !== undefined ? { stackError } : {}),
103
+ };
104
+ }
105
+ }
106
+ if (failure === undefined)
107
+ return { ok: true, stackNumber, prs };
108
+ return { ok: false, reason: failure, prs, ...(stackError !== undefined ? { stackError } : {}) };
109
+ }
110
+ //# sourceMappingURL=ship-stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship-stack.js","sourceRoot":"","sources":["../../src/phases/ship-stack.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,9 @@ declare function shipPhaseImpl(opts: {
68
68
  }): Promise<ShipResult>;
69
69
  export declare function findOpenPR(octokit: Octokit, owner: string, repo: string, branch: string): Promise<PrLookup>;
70
70
  export declare function findMergedPR(octokit: Octokit, owner: string, repo: string, branch: string): Promise<PrLookup>;
71
+ /** A `pulls.create` 422 whose message says the PR already exists — recoverable by re-querying,
72
+ * unlike every other 422 (e.g. "No commits between ..."), which still propagates (#641). */
73
+ export declare function isPullAlreadyExistsError(err: unknown): boolean;
71
74
  /** The result of asking GitHub whether a PR exists for a branch. `error` is never collapsed
72
75
  * into `absent` — an unanswered lookup makes ship fail closed rather than open a duplicate
73
76
  * PR (#641). */
@@ -1 +1 @@
1
- {"version":3,"file":"ship.d.ts","sourceRoot":"","sources":["../../src/phases/ship.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ship.d.ts","sourceRoot":"","sources":["../../src/phases/ship.ts"],"names":[],"mappings":"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"}
@@ -351,7 +351,7 @@ export async function findMergedPR(octokit, owner, repo, branch) {
351
351
  }
352
352
  /** A `pulls.create` 422 whose message says the PR already exists — recoverable by re-querying,
353
353
  * unlike every other 422 (e.g. "No commits between ..."), which still propagates (#641). */
354
- function isPullAlreadyExistsError(err) {
354
+ export function isPullAlreadyExistsError(err) {
355
355
  const e = err;
356
356
  if (e?.status !== 422)
357
357
  return false;