codeloop-mcp-server 0.1.91 → 0.1.96

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 (82) hide show
  1. package/README.md +30 -0
  2. package/dist/evidence/binary_freshness.d.ts +27 -0
  3. package/dist/evidence/binary_freshness.d.ts.map +1 -1
  4. package/dist/evidence/binary_freshness.js +100 -22
  5. package/dist/evidence/binary_freshness.js.map +1 -1
  6. package/dist/evidence/change_coverage.d.ts +41 -0
  7. package/dist/evidence/change_coverage.d.ts.map +1 -1
  8. package/dist/evidence/change_coverage.js +69 -2
  9. package/dist/evidence/change_coverage.js.map +1 -1
  10. package/dist/evidence/interaction_evidence.d.ts +38 -0
  11. package/dist/evidence/interaction_evidence.d.ts.map +1 -1
  12. package/dist/evidence/interaction_evidence.js +60 -0
  13. package/dist/evidence/interaction_evidence.js.map +1 -1
  14. package/dist/index.d.ts +2 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +80 -5
  17. package/dist/index.js.map +1 -1
  18. package/dist/runners/android_sdk.d.ts +50 -0
  19. package/dist/runners/android_sdk.d.ts.map +1 -0
  20. package/dist/runners/android_sdk.js +123 -0
  21. package/dist/runners/android_sdk.js.map +1 -0
  22. package/dist/runners/app_launcher.d.ts +22 -0
  23. package/dist/runners/app_launcher.d.ts.map +1 -1
  24. package/dist/runners/app_launcher.js +70 -18
  25. package/dist/runners/app_launcher.js.map +1 -1
  26. package/dist/runners/device_probe.d.ts.map +1 -1
  27. package/dist/runners/device_probe.js +5 -2
  28. package/dist/runners/device_probe.js.map +1 -1
  29. package/dist/runners/interaction_engine.js +7 -0
  30. package/dist/runners/interaction_engine.js.map +1 -1
  31. package/dist/runners/journey_to_maestro.d.ts +27 -0
  32. package/dist/runners/journey_to_maestro.d.ts.map +1 -1
  33. package/dist/runners/journey_to_maestro.js +54 -0
  34. package/dist/runners/journey_to_maestro.js.map +1 -1
  35. package/dist/runners/logging_readiness.d.ts.map +1 -1
  36. package/dist/runners/logging_readiness.js +38 -7
  37. package/dist/runners/logging_readiness.js.map +1 -1
  38. package/dist/runners/modal_detector.d.ts +13 -0
  39. package/dist/runners/modal_detector.d.ts.map +1 -1
  40. package/dist/runners/modal_detector.js +101 -2
  41. package/dist/runners/modal_detector.js.map +1 -1
  42. package/dist/runners/screenshot.d.ts.map +1 -1
  43. package/dist/runners/screenshot.js +10 -1
  44. package/dist/runners/screenshot.js.map +1 -1
  45. package/dist/runners/semantics_audit.d.ts +32 -0
  46. package/dist/runners/semantics_audit.d.ts.map +1 -0
  47. package/dist/runners/semantics_audit.js +140 -0
  48. package/dist/runners/semantics_audit.js.map +1 -0
  49. package/dist/runners/uia_resolver.d.ts.map +1 -1
  50. package/dist/runners/uia_resolver.js +32 -0
  51. package/dist/runners/uia_resolver.js.map +1 -1
  52. package/dist/runners/video_recorder.d.ts.map +1 -1
  53. package/dist/runners/video_recorder.js +25 -6
  54. package/dist/runners/video_recorder.js.map +1 -1
  55. package/dist/runners/wayland.d.ts +32 -0
  56. package/dist/runners/wayland.d.ts.map +1 -0
  57. package/dist/runners/wayland.js +49 -0
  58. package/dist/runners/wayland.js.map +1 -0
  59. package/dist/runners/window_manager.d.ts +23 -0
  60. package/dist/runners/window_manager.d.ts.map +1 -1
  61. package/dist/runners/window_manager.js +66 -3
  62. package/dist/runners/window_manager.js.map +1 -1
  63. package/dist/tools/discover_interactions.d.ts.map +1 -1
  64. package/dist/tools/discover_interactions.js +5 -1
  65. package/dist/tools/discover_interactions.js.map +1 -1
  66. package/dist/tools/gate_check.d.ts.map +1 -1
  67. package/dist/tools/gate_check.js +16 -2
  68. package/dist/tools/gate_check.js.map +1 -1
  69. package/dist/tools/plan_change_journey.d.ts.map +1 -1
  70. package/dist/tools/plan_change_journey.js +15 -2
  71. package/dist/tools/plan_change_journey.js.map +1 -1
  72. package/dist/tools/plan_user_journey.d.ts.map +1 -1
  73. package/dist/tools/plan_user_journey.js +5 -2
  74. package/dist/tools/plan_user_journey.js.map +1 -1
  75. package/dist/tools/run_journey.d.ts +64 -0
  76. package/dist/tools/run_journey.d.ts.map +1 -1
  77. package/dist/tools/run_journey.js +135 -6
  78. package/dist/tools/run_journey.js.map +1 -1
  79. package/dist/tools/verify.d.ts.map +1 -1
  80. package/dist/tools/verify.js +55 -11
  81. package/dist/tools/verify.js.map +1 -1
  82. package/package.json +1 -1
@@ -36,6 +36,9 @@ export interface MobileFlowSummary {
36
36
  export interface RunJourneyResult {
37
37
  status: "completed" | "device_required" | "launch_failed";
38
38
  target_type: string;
39
+ /** Run id / artifacts dir of this journey (set on completed runs). */
40
+ run_id?: string;
41
+ run_dir?: string;
39
42
  booted?: {
40
43
  booted: boolean;
41
44
  already: boolean;
@@ -85,7 +88,24 @@ export interface RunJourneyOptions {
85
88
  launch_stall_seconds?: number;
86
89
  /** Emulator/simulator boot timeout, seconds (default 180). */
87
90
  boot_timeout_seconds?: number;
91
+ /** P3.1 — pinned Xcode scheme for native-iOS builds. */
92
+ ios_scheme?: string;
93
+ /** P3.1 — Xcode build configuration for native-iOS builds (default "Debug"). */
94
+ ios_configuration?: string;
95
+ /** P3.2 — Gradle install task for native-Android builds (e.g. ":app:installDevDebug"). */
96
+ gradle_install_task?: string;
97
+ /** P3.2 — explicit applicationId to launch after install (flavor/suffix builds). */
98
+ android_app_id?: string;
99
+ /** P5.3 — drive MULTIPLE platforms sequentially (["ios","android"]) with per-platform evidence. */
100
+ platforms?: string[];
88
101
  };
102
+ /**
103
+ * P5.3 — suppress the 0.1.87 alternate-mobile-target fallback. Set by the
104
+ * multi-platform orchestrator: when the user EXPLICITLY listed platforms,
105
+ * an iOS failure must surface as an iOS failure, not silently re-run the
106
+ * Android leg that has its own slot in the loop.
107
+ */
108
+ disableMobileFallback?: boolean;
89
109
  /** evidence.target_app for desktop launch / screenshot. */
90
110
  targetApp?: string;
91
111
  /** Override target detection. */
@@ -98,7 +118,51 @@ export interface RunJourneyOptions {
98
118
  * mode when omitted.
99
119
  */
100
120
  mode?: AgentMode;
121
+ /**
122
+ * P5.5 (0.1.92) — phase/heartbeat progress stream. The journey emits a
123
+ * phase update at every stage transition (boot, build+launch, drive,
124
+ * capture) and a ~10s heartbeat with the latest launcher output line while
125
+ * a build runs, so cold builds don't read as hangs. Best-effort: callback
126
+ * errors are swallowed.
127
+ */
128
+ onProgress?: JourneyProgress;
101
129
  }
130
+ /** P5.5 — journey progress callback shape (mirrors verify's VerifyProgress). */
131
+ export type JourneyProgress = (u: {
132
+ phase: string;
133
+ detail?: string;
134
+ elapsedMs: number;
135
+ }) => void;
102
136
  /** Orchestrate the full deep-E2E run. Never throws; degrades gracefully. */
103
137
  export declare function runJourney(opts: RunJourneyOptions): Promise<RunJourneyResult>;
138
+ /**
139
+ * P5.3 (0.1.94) — normalize the `e2e.platforms` list into journey targets:
140
+ * synonyms per entry ("ios" → ios_simulator, "android" → android_emulator,
141
+ * "web" → browser), order preserved, duplicates and unrecognized values
142
+ * dropped (a typo skips that entry rather than crashing the run).
143
+ */
144
+ export declare function normalizeE2ePlatforms(platforms?: string[]): JourneyTarget[];
145
+ /** Per-platform outcome of a multi-platform journey run. */
146
+ export interface PlatformJourneyOutcome {
147
+ platform: JourneyTarget;
148
+ result: RunJourneyResult;
149
+ }
150
+ /**
151
+ * P5.3 (0.1.94) — run the journey on EVERY configured platform sequentially,
152
+ * each leg with its own boot + launch + drive + screenshots + video evidence.
153
+ *
154
+ * Resolution: an explicit opts.targetType always wins (single run — the
155
+ * one-off "test the other platform" call). Otherwise `e2e.platforms` with 2+
156
+ * entries triggers the loop; 1 entry pins that platform; empty/missing falls
157
+ * through to the existing single-run path (e2e.target / auto-detection).
158
+ *
159
+ * After a multi run, an AGGREGATE interaction-evidence record (per_platform
160
+ * breakdown) is written into the newest completed leg's run dir so the
161
+ * interaction_evidence gate sees ALL legs — a launch_failed platform blocks
162
+ * the gate honestly instead of being shadowed by the other platform's pass.
163
+ */
164
+ export declare function runJourneyForPlatforms(opts: RunJourneyOptions): Promise<{
165
+ multi: boolean;
166
+ outcomes: PlatformJourneyOutcome[];
167
+ }>;
104
168
  //# sourceMappingURL=run_journey.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run_journey.d.ts","sourceRoot":"","sources":["../../src/tools/run_journey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run_journey.d.ts","sourceRoot":"","sources":["../../src/tools/run_journey.ts"],"names":[],"mappings":"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"}
@@ -75,6 +75,14 @@ export function flattenJourneyToSteps(plan, target) {
75
75
  export async function runJourney(opts) {
76
76
  const { cwd } = opts;
77
77
  const notes = [];
78
+ // P5.5 — phase progress emitter (never throws into the journey).
79
+ const journeyStartedAt = Date.now();
80
+ const progress = (phase, detail) => {
81
+ try {
82
+ opts.onProgress?.({ phase, detail, elapsedMs: Date.now() - journeyStartedAt });
83
+ }
84
+ catch { /* progress is best-effort */ }
85
+ };
78
86
  // No mode gate: launching + driving the app is VERIFICATION, not a code
79
87
  // modification, so the journey runs in every mode. A "don't modify my code"
80
88
  // request only pauses the agent's source edits — CodeLoop must still produce
@@ -97,6 +105,7 @@ export async function runJourney(opts) {
97
105
  const { detectTargetType } = await import("../runners/platform_detect.js");
98
106
  target = (await detectTargetType(cwd));
99
107
  }
108
+ progress("Target resolved", target);
100
109
  const runId = `journey_${Date.now()}`;
101
110
  const runDir = join(cwd, "artifacts", "runs", runId);
102
111
  const screensDir = join(runDir, "screenshots");
@@ -120,16 +129,18 @@ export async function runJourney(opts) {
120
129
  // app won't launch, CodeLoop tries the alternate platform once before giving
121
130
  // up — so a single broken platform no longer means "0 screenshots".
122
131
  const primary = target;
132
+ progress("Booting device + launching app", primary);
123
133
  let outcome = await attemptMobileTarget(primary, {
124
- cwd, runDir, mode, e2e: opts.e2e, dp, launchApp, notes,
134
+ cwd, runDir, mode, e2e: opts.e2e, dp, launchApp, notes, onProgress: progress,
125
135
  });
126
136
  if (!outcome.ok) {
127
- const alt = alternateMobileTarget(primary, cwd);
137
+ const alt = opts.disableMobileFallback ? undefined : alternateMobileTarget(primary, cwd);
128
138
  if (alt) {
129
139
  notes.push(`Primary mobile target ${primary} ${outcome.status === "device_required" ? "had no device" : "failed to launch"} — ` +
130
140
  `falling back to ${alt}.`);
141
+ progress("Falling back to alternate mobile target", alt);
131
142
  const altOutcome = await attemptMobileTarget(alt, {
132
- cwd, runDir, mode, e2e: opts.e2e, dp, launchApp, notes,
143
+ cwd, runDir, mode, e2e: opts.e2e, dp, launchApp, notes, onProgress: progress,
133
144
  });
134
145
  if (altOutcome.ok) {
135
146
  target = alt;
@@ -187,6 +198,7 @@ export async function runJourney(opts) {
187
198
  // A Flutter desktop app launches via `flutter run -d <macos|windows|linux>`;
188
199
  // a non-Flutter desktop app uses the configured window/process name.
189
200
  if (isFlutterProject(cwd)) {
201
+ progress("Building + launching desktop app");
190
202
  const prep = await prepareMobileBuildSafe({ cwd, target, mode, logPath: join(runDir, "logs", "build_prep.log") });
191
203
  if (prep.directive)
192
204
  notes.push(prep.directive);
@@ -196,6 +208,7 @@ export async function runJourney(opts) {
196
208
  logPath: join(runDir, "logs", "app_launch.log"),
197
209
  readyTimeoutMs: opts.e2e?.launch_timeout_seconds ? opts.e2e.launch_timeout_seconds * 1000 : undefined,
198
210
  stallTimeoutMs: opts.e2e?.launch_stall_seconds ? opts.e2e.launch_stall_seconds * 1000 : undefined,
211
+ onProgress: (u) => progress("Building + launching desktop app", `${Math.round(u.elapsedMs / 1000)}s — ${u.lastLine}`),
199
212
  });
200
213
  notes.push(`App launch: ${launch.method} → ${launch.launched ? "launched" : "NOT launched"}${launch.reason ? ` (${launch.reason})` : ""}`);
201
214
  if (!launch.launched) {
@@ -232,6 +245,7 @@ export async function runJourney(opts) {
232
245
  }
233
246
  }
234
247
  // 4. Plan the journey.
248
+ progress("Planning journey");
235
249
  const { planUserJourney } = await import("./plan_user_journey.js");
236
250
  let plan;
237
251
  try {
@@ -275,6 +289,7 @@ export async function runJourney(opts) {
275
289
  if (isMobile) {
276
290
  // Opt-in high-fidelity path first, when requested for a Flutter project.
277
291
  if (opts.e2e?.flutter_driver && isFlutterProject(cwd) && booted?.device) {
292
+ progress("Driving interactions", "Flutter integration_test driver");
278
293
  const driverFlow = await driveMobileWithFlutterDriver({ cwd, plan, device: booted.device, runDir });
279
294
  if (driverFlow) {
280
295
  mobileFlow = driverFlow;
@@ -287,7 +302,8 @@ export async function runJourney(opts) {
287
302
  }
288
303
  // Default Maestro path (also the fallback when the opt-in driver didn't run).
289
304
  if (!mobileFlow) {
290
- const maestroFlow = (await driveMobileWithMaestro({ cwd, target, plan, runDir, device: booted?.device })) ?? undefined;
305
+ progress("Driving interactions", "Maestro label-based flow");
306
+ const maestroFlow = (await driveMobileWithMaestro({ cwd, target, plan, runDir, device: booted?.device, appIdOverride: target === "android_emulator" ? opts.e2e?.android_app_id : undefined })) ?? undefined;
291
307
  if (maestroFlow) {
292
308
  mobileFlow = maestroFlow;
293
309
  screenshots.push(...maestroFlow.screenshots);
@@ -317,6 +333,7 @@ export async function runJourney(opts) {
317
333
  }
318
334
  let i = 0;
319
335
  for (const { source, step } of runCoordinateSteps ? engineSteps : []) {
336
+ progress("Driving steps (coordinate engine)", `step ${i + 1}/${engineSteps.length}: ${step.action}`);
320
337
  const res = await executeInteraction(step, { target, app_name: opts.targetApp, device: booted?.device });
321
338
  if (res.unsupported)
322
339
  unsupported += 1;
@@ -345,6 +362,7 @@ export async function runJourney(opts) {
345
362
  i += 1;
346
363
  }
347
364
  // 7. Full screen coverage (A6) — visit every discovered screen + screenshot.
365
+ progress("Capturing screens");
348
366
  const screensCaptured = [];
349
367
  try {
350
368
  const { discoverScreens } = await import("./discover_screens.js");
@@ -371,6 +389,7 @@ export async function runJourney(opts) {
371
389
  notes.push(`Screen discovery skipped: ${e.message}`);
372
390
  }
373
391
  // 8. Stop recording, then quit the launched app.
392
+ progress("Finalizing", "stopping recording + app teardown");
374
393
  if (recordingId) {
375
394
  try {
376
395
  const vr = await import("../runners/video_recorder.js");
@@ -430,6 +449,8 @@ export async function runJourney(opts) {
430
449
  return {
431
450
  status: "completed",
432
451
  target_type: target,
452
+ run_id: runId,
453
+ run_dir: runDir,
433
454
  booted,
434
455
  plan_summary: plan.project_summary,
435
456
  recording_id: recordingId,
@@ -444,6 +465,88 @@ export async function runJourney(opts) {
444
465
  notes,
445
466
  };
446
467
  }
468
+ /**
469
+ * P5.3 (0.1.94) — normalize the `e2e.platforms` list into journey targets:
470
+ * synonyms per entry ("ios" → ios_simulator, "android" → android_emulator,
471
+ * "web" → browser), order preserved, duplicates and unrecognized values
472
+ * dropped (a typo skips that entry rather than crashing the run).
473
+ */
474
+ export function normalizeE2ePlatforms(platforms) {
475
+ const out = [];
476
+ for (const p of platforms ?? []) {
477
+ const t = normalizeConfigTarget(String(p));
478
+ if (t && !out.includes(t))
479
+ out.push(t);
480
+ }
481
+ return out;
482
+ }
483
+ /**
484
+ * P5.3 (0.1.94) — run the journey on EVERY configured platform sequentially,
485
+ * each leg with its own boot + launch + drive + screenshots + video evidence.
486
+ *
487
+ * Resolution: an explicit opts.targetType always wins (single run — the
488
+ * one-off "test the other platform" call). Otherwise `e2e.platforms` with 2+
489
+ * entries triggers the loop; 1 entry pins that platform; empty/missing falls
490
+ * through to the existing single-run path (e2e.target / auto-detection).
491
+ *
492
+ * After a multi run, an AGGREGATE interaction-evidence record (per_platform
493
+ * breakdown) is written into the newest completed leg's run dir so the
494
+ * interaction_evidence gate sees ALL legs — a launch_failed platform blocks
495
+ * the gate honestly instead of being shadowed by the other platform's pass.
496
+ */
497
+ export async function runJourneyForPlatforms(opts) {
498
+ const platforms = opts.targetType ? [] : normalizeE2ePlatforms(opts.e2e?.platforms);
499
+ if (platforms.length === 0) {
500
+ const result = await runJourney(opts);
501
+ return { multi: false, outcomes: [{ platform: result.target_type, result }] };
502
+ }
503
+ if (platforms.length === 1) {
504
+ const result = await runJourney({ ...opts, targetType: platforms[0] });
505
+ return { multi: false, outcomes: [{ platform: platforms[0], result }] };
506
+ }
507
+ const outcomes = [];
508
+ for (const p of platforms) {
509
+ const result = await runJourney({
510
+ ...opts,
511
+ targetType: p,
512
+ disableMobileFallback: true,
513
+ onProgress: opts.onProgress
514
+ ? (u) => opts.onProgress({ ...u, phase: `[${p}] ${u.phase}` })
515
+ : undefined,
516
+ });
517
+ outcomes.push({ platform: p, result });
518
+ }
519
+ // Aggregate evidence — written LAST so its mtime makes it the record the
520
+ // gate's newest-lookup finds.
521
+ try {
522
+ const completed = outcomes.filter((o) => o.result.status === "completed" && o.result.run_dir);
523
+ const evidenceDir = completed[completed.length - 1]?.result.run_dir;
524
+ if (evidenceDir) {
525
+ const { writeInteractionEvidence } = await import("../evidence/interaction_evidence.js");
526
+ writeInteractionEvidence(evidenceDir, {
527
+ generated_at: new Date().toISOString(),
528
+ source: "run_journey",
529
+ target: outcomes.map((o) => o.platform).join("+"),
530
+ driven_steps: outcomes.reduce((n, o) => n +
531
+ o.result.steps.length +
532
+ (o.result.mobile_flow && o.result.mobile_flow.engine !== "coordinate" ? o.result.mobile_flow.flows : 0), 0),
533
+ screenshots: outcomes.reduce((n, o) => n + o.result.screenshots.length, 0),
534
+ per_platform: outcomes.map((o) => ({
535
+ target: o.platform,
536
+ status: o.result.status,
537
+ driven_steps: o.result.steps.length +
538
+ (o.result.mobile_flow && o.result.mobile_flow.engine !== "coordinate" ? o.result.mobile_flow.flows : 0),
539
+ screenshots: o.result.screenshots.length,
540
+ mobile_engine: o.result.mobile_flow?.engine,
541
+ mobile_flows_passed: o.result.mobile_flow?.passed,
542
+ mobile_flows_total: o.result.mobile_flow?.flows,
543
+ })),
544
+ });
545
+ }
546
+ }
547
+ catch { /* best-effort */ }
548
+ return { multi: true, outcomes };
549
+ }
447
550
  /**
448
551
  * Drive the FULL label-based interaction suite on a booted mobile device via
449
552
  * Maestro: translate the journey plan into Maestro steps, generate a flow with
@@ -473,9 +576,18 @@ async function driveMobileWithMaestro(args) {
473
576
  const { resolveMobileAppId } = await import("../runners/mobile_app_id.js");
474
577
  const { runCommand } = await import("../runners/base.js");
475
578
  const { MAESTRO_TIMEOUT_MS } = await import("../runners/test_watchdog.js");
476
- const steps = journeyToMaestroSteps(plan);
579
+ // P1.5 (0.1.92) — feed discovered screens into the flow so it BREADTH-visits
580
+ // every screen (optional nav tap + scroll pass + back), not just the entity
581
+ // arcs. Static scan, best-effort: discovery failure just means no breadth.
477
582
  const platformName = target === "android_emulator" ? "android" : "ios";
478
- const appId = resolveMobileAppId(cwd, platformName) ?? undefined;
583
+ let screens = [];
584
+ try {
585
+ const { discoverScreens } = await import("./discover_screens.js");
586
+ screens = discoverScreens(cwd, "auto").screens;
587
+ }
588
+ catch { /* best-effort */ }
589
+ const steps = journeyToMaestroSteps(plan, { screens, platform: platformName });
590
+ const appId = args.appIdOverride ?? resolveMobileAppId(cwd, platformName) ?? undefined;
479
591
  if (steps.length === 0) {
480
592
  return { engine: "maestro", flows: 0, passed: 0, failed: 0, app_id: appId, screenshots: [], detail: "Journey produced no label-drivable steps." };
481
593
  }
@@ -643,6 +755,12 @@ function normalizeConfigTarget(v) {
643
755
  */
644
756
  async function attemptMobileTarget(target, deps) {
645
757
  const { cwd, runDir, mode, e2e, dp, launchApp, notes } = deps;
758
+ const emit = (phase, detail) => {
759
+ try {
760
+ deps.onProgress?.(phase, detail);
761
+ }
762
+ catch { /* best-effort */ }
763
+ };
646
764
  const platformName = target === "android_emulator" ? "android" : "ios";
647
765
  // A connected PHYSICAL device (or an explicit, already-running e2e.device_id)
648
766
  // needs no boot — launch directly on it.
@@ -654,6 +772,7 @@ async function attemptMobileTarget(target, deps) {
654
772
  notes.push(`Device (${target}): ${existing.reason}.`);
655
773
  }
656
774
  else if (wantBoot) {
775
+ emit(`Booting ${platformName} device`, "cold boots can take minutes on first run");
657
776
  const r = await dp.bootDevice({
658
777
  platform: platformName,
659
778
  avd: e2e?.android_avd ?? e2e?.device_id,
@@ -686,11 +805,13 @@ async function attemptMobileTarget(target, deps) {
686
805
  }
687
806
  // Build PRE-FLIGHT: pub get / pod install / create missing asset dirs (fix
688
807
  // mode) BEFORE launch.
808
+ emit("Preparing build", "pub get / pod install pre-flight");
689
809
  const prep = await prepareMobileBuildSafe({ cwd, target, mode, logPath: join(runDir, "logs", "build_prep.log") });
690
810
  if (prep.directive)
691
811
  notes.push(prep.directive);
692
812
  // Device is up — now LAUNCH the app on it. The wait is stall-aware (P0.2):
693
813
  // a cold build that keeps producing output keeps the wait alive.
814
+ emit("Building + launching app", target);
694
815
  const launch = await launchApp({
695
816
  cwd,
696
817
  target,
@@ -698,6 +819,14 @@ async function attemptMobileTarget(target, deps) {
698
819
  logPath: join(runDir, "logs", "app_launch.log"),
699
820
  readyTimeoutMs: e2e?.launch_timeout_seconds ? e2e.launch_timeout_seconds * 1000 : undefined,
700
821
  stallTimeoutMs: e2e?.launch_stall_seconds ? e2e.launch_stall_seconds * 1000 : undefined,
822
+ // P3.1/P3.2 — native build pinning (multi-scheme Xcode / flavored Gradle).
823
+ iosScheme: e2e?.ios_scheme,
824
+ iosConfiguration: e2e?.ios_configuration,
825
+ gradleInstallTask: e2e?.gradle_install_task,
826
+ androidAppId: e2e?.android_app_id,
827
+ // P5.5 — surface the live build line every ~10s ("Running Gradle task
828
+ // assembleDebug…", "Xcode build…") so a cold build reads as progress.
829
+ onProgress: (u) => emit("Building + launching app", `${Math.round(u.elapsedMs / 1000)}s — ${u.lastLine}`),
701
830
  });
702
831
  notes.push(`App launch (${target}): ${launch.method} → ${launch.launched ? "launched" : "NOT launched"}${launch.reason ? ` (${launch.reason})` : ""}`);
703
832
  if (!launch.launched) {
@@ -1 +1 @@
1
- {"version":3,"file":"run_journey.js","sourceRoot":"","sources":["../../src/tools/run_journey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run_journey.js","sourceRoot":"","sources":["../../src/tools/run_journey.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAyD9B;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAqB,EACrB,MAAqB;IAErB,MAAM,KAAK,GAAqD,EAAE,CAAC;IACnE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAC;IAEvC,2EAA2E;IAC3E,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC1C,IAAI,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;gBACzI,CAAC;qBAAM,IAAI,MAAM,KAAK,kBAAkB,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;oBACvE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;gBACnH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC;oBAC/G,SAAS;gBACX,CAAC;gBACD,oEAAoE;gBACpE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC/E,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACxH,CAAC;QACH,CAAC;IACH,CAAC;IAED,kFAAkF;IAClF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC9C,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC/B,IAAI,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;wBAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC5I,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,gCAAgC,MAAM,IAAI,CAAC,CAAC;oBAC5I,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzG,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3I,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AA8DD,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAuB;IACtD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,iEAAiE;IACjE,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,MAAe,EAAQ,EAAE;QACxD,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,EAAE,CAAC,CAAC;QACjF,CAAC;QAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,wEAAwE;IACxE,4EAA4E;IAC5E,6EAA6E;IAC7E,0EAA0E;IAC1E,yEAAyE;IACzE,kCAAkC;IAClC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACvE,MAAM,IAAI,GAAc,IAAI,CAAC,IAAI,IAAI,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAE/D,8EAA8E;IAC9E,+EAA+E;IAC/E,gFAAgF;IAChF,8DAA8D;IAC9D,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;QAChC,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,wDAAwD,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAC3E,MAAM,GAAG,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAkB,CAAC;IAC1D,CAAC;IACD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAEpC,MAAM,KAAK,GAAG,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/C,IAAI,CAAC;QAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAE/E,8EAA8E;IAC9E,6EAA6E;IAC7E,oEAAoE;IACpE,IAAI,MAAkC,CAAC;IACvC,IAAI,OAA0C,CAAC;IAC/C,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IACtD,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IACnF,IAAI,MAAM,KAAK,kBAAkB,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QAChE,0EAA0E;QAC1E,4EAA4E;QAC5E,4EAA4E;QAC5E,0EAA0E;QAC1E,6EAA6E;QAC7E,6EAA6E;QAC7E,oEAAoE;QACpE,MAAM,OAAO,GAAG,MAAM,CAAC;QACvB,QAAQ,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,OAAO,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE;YAC/C,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ;SAC7E,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzF,IAAI,GAAG,EAAE,CAAC;gBACR,KAAK,CAAC,IAAI,CACR,yBAAyB,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,KAAK;oBACpH,mBAAmB,GAAG,GAAG,CAC1B,CAAC;gBACF,QAAQ,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC;gBACzD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE;oBAChD,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ;iBAC7E,CAAC,CAAC;gBACH,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;oBAClB,MAAM,GAAG,GAAG,CAAC;oBACb,OAAO,GAAG,UAAU,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CACR,mBAAmB,GAAG,SAAS,UAAU,CAAC,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,GAAG,CACjH,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO;oBACL,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,WAAW,EAAE,OAAO;oBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,KAAK,EAAE,EAAE;oBACT,gBAAgB,EAAE,EAAE;oBACpB,WAAW,EAAE,EAAE;oBACf,iBAAiB,EAAE,CAAC;oBACpB,gBAAgB,EAAE,EAAE;oBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,KAAK;iBACN,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACxB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,wEAAwE;QACxE,uEAAuE;QACvE,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;gBACzE,gBAAgB,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3E,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC/B,CAAC;QACD,iFAAiF;QACjF,IAAI,CAAC;YACH,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;YAC7E,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;YAC7D,MAAM,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,YAAY,CAAC,MAAM,EAAE,0BAA2B,CAAW,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,6EAA6E;QAC7E,qEAAqE;QACrE,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,kCAAkC,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;YAClH,IAAI,IAAI,CAAC,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;gBAC7B,GAAG;gBACH,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC;gBAC/C,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;gBACrG,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;gBACjG,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,kCAAkC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;aACtH,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3I,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,KAAK,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChG,OAAO;oBACL,MAAM,EAAE,eAAe;oBACvB,WAAW,EAAE,MAAM;oBACnB,KAAK,EAAE,EAAE;oBACT,gBAAgB,EAAE,EAAE;oBACpB,WAAW,EAAE,EAAE;oBACf,iBAAiB,EAAE,CAAC;oBACpB,gBAAgB,EAAE,EAAE;oBACpB,SAAS,EACP,yCAAyC,MAAM,CAAC,MAAM,IAAI,SAAS,IAAI;wBACvE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,8BAA8B,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpF,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;wBACtC,uFAAuF;wBACvF,UAAU;oBACZ,KAAK;iBACN,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,oGAAoG,CAAC,CAAC;QACnH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;gBACxD,MAAM,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,KAAK,CAAC,IAAI,CAAC,sCAAuC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC7B,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACnE,IAAI,IAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,YAAY,CAAC,MAAM,EAAE,4BAA6B,CAAW,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;IACzF,CAAC;IAED,6DAA6D;IAC7D,IAAI,WAA+B,CAAC;IACpC,IAAI,SAA6B,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,KAAK,CAAC;IACnH,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAC9C,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EACrB,OAAO,EACP,IAAI,CAAC,kBAAkB,IAAI,GAAG,EAC9B,MAAe,EACf,MAAM,EAAE,MAAM,CACf,CAAC;QACF,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC;YACzB,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;YAClC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,2BAA4B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,kDAAkD;IAClD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;IAChF,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACvE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE3E,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,gFAAgF;IAChF,6EAA6E;IAC7E,8EAA8E;IAC9E,+EAA+E;IAC/E,gEAAgE;IAChE,IAAI,UAAyC,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,KAAK,kBAAkB,IAAI,MAAM,KAAK,eAAe,CAAC;IAC7E,IAAI,QAAQ,EAAE,CAAC;QACb,yEAAyE;QACzE,IAAI,IAAI,CAAC,GAAG,EAAE,cAAc,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACxE,QAAQ,CAAC,sBAAsB,EAAE,iCAAiC,CAAC,CAAC;YACpE,MAAM,UAAU,GAAG,MAAM,4BAA4B,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,GAAG,UAAU,CAAC;gBACxB,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,4DAA4D,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,kBAAkB,CAAC,CAAC;YAClI,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;QACD,8EAA8E;QAC9E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,QAAQ,CAAC,sBAAsB,EAAE,0BAA0B,CAAC,CAAC;YAC7D,MAAM,WAAW,GAAG,CAAC,MAAM,sBAAsB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC;YAC5M,IAAI,WAAW,EAAE,CAAC;gBAChB,UAAU,GAAG,WAAW,CAAC;gBACzB,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,oCAAoC,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,0BAA0B,WAAW,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC;gBAC/I,uEAAuE;gBACvE,IAAI,WAAW,CAAC,KAAK,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM;oBAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YAChH,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;gBAC1E,MAAM,CAAC,IAAI,CAAC,GAAG,uBAAuB,EAAE,yDAAyD,CAAC,CAAC;gBACnG,UAAU,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,8CAA8C,EAAE,CAAC;YACjJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,+EAA+E;IAC/E,uEAAuE;IACvE,wDAAwD;IACxD,MAAM,gBAAgB,GACpB,QAAQ;QACR,CAAC,UAAU,EAAE,MAAM,KAAK,SAAS,IAAI,UAAU,EAAE,MAAM,KAAK,gBAAgB,CAAC;QAC7E,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC;QAC5B,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,kBAAkB,GAAG,CAAC,gBAAgB,CAAC;IAC7C,IAAI,QAAQ,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,KAAK,CAAC,IAAI,CACR,4HAA4H,CAC7H,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACrE,QAAQ,CAAC,mCAAmC,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACrG,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACzG,IAAI,GAAG,CAAC,WAAW;YAAE,WAAW,IAAI,CAAC,CAAC;QACtC,IAAI,IAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,KAAK,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACvJ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;QACxF,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC;YACf,KAAK,EAAE,CAAC;YACR,MAAM;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS;YAC9C,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SACnD,CAAC,CAAC;QACH,kDAAkD;QAClD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IAED,6EAA6E;IAC7E,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAC9B,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;oBAC9D,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;oBAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACjD,MAAM,EAAE,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpG,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAChD,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,UAAU,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,KAAK,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBACnK,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAAC,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;oBAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAC,CAAC;YAC9G,CAAC;YAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,6BAA8B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,iDAAiD;IACjD,QAAQ,CAAC,YAAY,EAAE,mCAAmC,CAAC,CAAC;IAC5D,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,IAAI,OAAQ,IAA0B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/G,SAAS,GAAI,IAAyB,CAAC,IAAI,CAAC;YAC9C,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,sCAAuC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC;YAAC,MAAM,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,KAAK,CAAC,IAAI,CAAC,oCAAqC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAAC,CAAC;IAChH,CAAC;IAED,MAAM,cAAc,GAAa;QAC/B,gBAAgB,KAAK,wBAAwB,MAAM,IAAI;QACvD,SAAS,WAAW,CAAC,MAAM,2BAA2B,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,eAAe,WAAW,+BAA+B,WAAW,CAAC,MAAM,yBAAyB,eAAe,CAAC,MAAM,aAAa;KACzO,CAAC;IACF,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,gBAAgB,CAAC,EAAE,CAAC;QAC9F,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qCAAqC,CAAC;QACvG,cAAc,CAAC,IAAI,CAAC,kCAAkC,UAAU,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,kBAAkB,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjR,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,cAAc,CAAC,IAAI,CAAC,+BAA+B,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,0FAA0F,CAAC,CAAC;QAClL,CAAC;aAAM,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3C,cAAc,CAAC,IAAI,CAAC,uIAAuI,CAAC,CAAC;QAC/J,CAAC;IACH,CAAC;IACD,IAAI,SAAS;QAAE,cAAc,CAAC,IAAI,CAAC,UAAU,SAAS,oDAAoD,KAAK,0DAA0D,CAAC,CAAC;IAC3K,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,cAAc,CAAC,IAAI,CACjB,GAAG,MAAM,CAAC,MAAM,mJAAmJ,EACnK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAC9C,CAAC;IACJ,CAAC;IACD,cAAc,CAAC,IAAI,CAAC,2HAA2H,CAAC,CAAC;IAEjJ,6EAA6E;IAC7E,+EAA+E;IAC/E,IAAI,CAAC;QACH,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAC;QACzF,wBAAwB,CAAC,MAAM,EAAE;YAC/B,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACtC,MAAM,EAAE,aAAa;YACrB,MAAM;YACN,YAAY,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5G,WAAW,EAAE,WAAW,CAAC,MAAM;YAC/B,aAAa,EAAE,UAAU,EAAE,MAAM;YACjC,mBAAmB,EAAE,UAAU,EAAE,MAAM;YACvC,kBAAkB,EAAE,UAAU,EAAE,KAAK;SACtC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAE7B,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,MAAM;QACf,MAAM;QACN,YAAY,EAAE,IAAI,CAAC,eAAe;QAClC,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,WAAW;QAClB,gBAAgB,EAAE,eAAe;QACjC,WAAW;QACX,iBAAiB,EAAE,WAAW;QAC9B,gBAAgB,EAAE,MAAM;QACxB,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QACpC,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAoB;IACxD,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAQD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAuB;IAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACpF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,WAA4B,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACjG,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,GAAG,IAAI;YACP,UAAU,EAAE,CAAC;YACb,qBAAqB,EAAE,IAAI;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;gBACzB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAW,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC/D,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,yEAAyE;IACzE,8BAA8B;IAC9B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9F,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;QACpE,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAC;YACzF,wBAAwB,CAAC,WAAW,EAAE;gBACpC,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACtC,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACjD,YAAY,EAAE,QAAQ,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC;oBACD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;oBACrB,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EACzG,CAAC,CACF;gBACD,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1E,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACjC,MAAM,EAAE,CAAC,CAAC,QAAQ;oBAClB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;oBACvB,YAAY,EACV,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;wBACrB,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM;oBACxC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM;oBAC3C,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM;oBACjD,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK;iBAChD,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAE7B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,sBAAsB,CAAC,IASrC;IACC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACtG,IAAI,CAAC,CAAC,MAAM,kBAAkB,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,uEAAuE;IACvE,mEAAmE;IACnE,MAAM,SAAS,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC3C,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,SAAS,CAAC,SAAS,IAAI,qCAAqC;SACrE,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;IACnF,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAChF,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;IAC3E,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC1D,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;IAE3E,6EAA6E;IAC7E,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,YAAY,GAAG,MAAM,KAAK,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IACvE,IAAI,OAAO,GAAyD,EAAE,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAClE,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,IAAI,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,SAAS,CAAC;IACvF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAC;IACpJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IACjF,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IAClH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,IAAI,CAAC;QAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,6DAA6D;IAC7D,MAAM,GAAG,GAAG,MAAM,UAAU,CAC1B,SAAS,EACT,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,EAC1F,GAAG,EACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC;IACnC,oEAAoE;IACpE,gDAAgD;IAChD,aAAa,EAAE,EACf,kBAAkB,CACnB,CAAC;IACF,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,KAAK,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,MAAM,GAAG,qBAAqB,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;QACrF,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1E,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC1B,CAAC,CAAC,4BAA4B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kFAAkF;YACnI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChF,MAAM,GAAG,WAAW,MAAM,IAAI,MAAM,UAAU,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;IAC1E,CAAC;IACD,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,SAAS,EAAE,GAAG,CAAC,QAAQ;QACvB,MAAM,EAAE,KAAK;QACb,WAAW;QACX,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,4BAA4B,CAAC,IAK3C;IACC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3C,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;IAC1E,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,GAAG,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO;QACL,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACxD,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,eAAe,CAAC;KAChG,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QACjC,IAAI,OAAO,GAA0B,EAAE,CAAC;QACxC,IAAI,CAAC;YAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QAC9E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,CAAC,WAAW,EAAE;gBAAE,IAAI,CAAC,CAAC,CAAC,CAAC;iBACxB,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,kFAAkF;AAClF,KAAK,UAAU,sBAAsB,CAAC,IAKrC;IACC,IAAI,CAAC;QACH,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;QAC/E,MAAM,CAAC,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACpC,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,SAAS,iBAAiB,CAAC,QAA4B,EAAE,IAAe;IACtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAClE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,IAAI,GACR,IAAI,KAAK,OAAO;QACd,CAAC,CAAC,qEAAqE;QACvE,CAAC,CAAC,uCAAuC,CAAC;IAC9C,OAAO,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjG,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,MAAM,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC7B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,MAAc,EAAE,KAAe;IACnE,OAAO;QACL,MAAM,EAAE,eAAe;QACvB,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,EAAE;QACT,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,EAAE;QACf,iBAAiB,EAAE,CAAC;QACpB,gBAAgB,EAAE,EAAE;QACpB,SAAS,EAAE,qCAAqC,MAAM,wGAAwG;QAC9J,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,CAAS;IACtC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/B,KAAK,eAAe,CAAC;QACrB,KAAK,KAAK;YACR,OAAO,eAAe,CAAC;QACzB,KAAK,kBAAkB,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,kBAAkB,CAAC;QAC5B,KAAK,SAAS,CAAC;QACf,KAAK,KAAK;YACR,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAYD;;;;;;GAMG;AACH,KAAK,UAAU,mBAAmB,CAChC,MAA4C,EAC5C,IAUC;IAED,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC9D,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,MAAe,EAAQ,EAAE;QACpD,IAAI,CAAC;YAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACvE,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,KAAK,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAEvE,8EAA8E;IAC9E,yCAAyC;IACzC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,qBAAqB,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,GAAG,EAAE,WAAW,KAAK,KAAK,CAAC;IAC5C,IAAI,MAAkC,CAAC;IACvC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,MAAM,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACxD,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,YAAY,SAAS,EAAE,0CAA0C,CAAC,CAAC;QACnF,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC;YAC5B,QAAQ,EAAE,YAAY;YACtB,GAAG,EAAE,GAAG,EAAE,WAAW,IAAI,GAAG,EAAE,SAAS;YACvC,SAAS,EAAE,GAAG,EAAE,UAAU,IAAI,GAAG,EAAE,SAAS;YAC5C,yEAAyE;YACzE,SAAS,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;SACnF,CAAC,CAAC;QACH,MAAM,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACtF,IAAI,CAAC,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,KAAK,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5F,oEAAoE;QACpE,MAAM,GAAG,GAAG,MAAM,KAAK,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5G,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wCAAwC,EAAE,CAAC;IAC1H,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,iBAAiB;YACzB,MAAM;YACN,SAAS,EAAE,EAAE,CAAC,4BAA4B,CAAC;gBACzC,MAAM,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE;gBACrC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC;gBACpC,OAAO,EAAE,WAAW;aACrB,CAAC;SACH,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,uBAAuB;IACvB,IAAI,CAAC,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAClH,IAAI,IAAI,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE/C,2EAA2E;IAC3E,iEAAiE;IACjE,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;QAC7B,GAAG;QACH,MAAM;QACN,YAAY,EAAE,MAAM,CAAC,MAAM;QAC3B,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC;QAC/C,cAAc,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;QAC3F,cAAc,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;QACvF,2EAA2E;QAC3E,SAAS,EAAE,GAAG,EAAE,UAAU;QAC1B,gBAAgB,EAAE,GAAG,EAAE,iBAAiB;QACxC,iBAAiB,EAAE,GAAG,EAAE,mBAAmB;QAC3C,YAAY,EAAE,GAAG,EAAE,cAAc;QACjC,sEAAsE;QACtE,sEAAsE;QACtE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;KAC1G,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,MAAM,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvJ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,KAAK,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC,CAAC;QAChG,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,eAAe;YACvB,MAAM;YACN,SAAS,EACP,+CAA+C,MAAM,CAAC,MAAM,IAAI,SAAS,IAAI;gBAC7E,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,8BAA8B,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;gBACtC,6FAA6F;gBAC7F,+CAA+C;gBAC/C,UAAU;SACb,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAC5B,OAA6C,EAC7C,GAAW;IAEX,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,eAAe,IAAI,UAAU;QAAE,OAAO,kBAAkB,CAAC;IACzE,IAAI,OAAO,KAAK,kBAAkB,IAAI,MAAM,IAAI,QAAQ,EAAE,KAAK,QAAQ;QAAE,OAAO,eAAe,CAAC;IAChG,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/tools/verify.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAuCtF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAyElD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAuC1D;AAkJD;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,KAAK,IAAI,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,GACjB,MAAM,CA0BR;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAOT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,EACjE,YAAY,EAAE,MAAM,GACnB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAetD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,GACrB,OAAO,CAOT;AAED,wBAAsB,SAAS,CAC7B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,cAAc,EACtB,GAAG,GAAE,MAAsB,EAC3B,UAAU,CAAC,EAAE,cAAc,EAC3B,UAAU,GAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,2BAA2B,EAAE,SAAS,CAAA;CAAO,GAC5G,OAAO,CAAC,YAAY,CAAC,CA83BvB;AA4XD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAoCzC"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/tools/verify.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAuCtF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAyElD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAuC1D;AAkJD;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,KAAK,IAAI,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,GACjB,MAAM,CA0BR;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAOT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,EACjE,YAAY,EAAE,MAAM,GACnB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAetD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,GACrB,OAAO,CAOT;AAED,wBAAsB,SAAS,CAC7B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,cAAc,EACtB,GAAG,GAAE,MAAsB,EAC3B,UAAU,CAAC,EAAE,cAAc,EAC3B,UAAU,GAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,2BAA2B,EAAE,SAAS,CAAA;CAAO,GAC5G,OAAO,CAAC,YAAY,CAAC,CA+6BvB;AA4XD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAoCzC"}
@@ -1,4 +1,4 @@
1
- import { existsSync, readdirSync, copyFileSync, mkdirSync, readFileSync, statSync } from "fs";
1
+ import { existsSync, readdirSync, copyFileSync, mkdirSync, readFileSync, statSync, writeFileSync } from "fs";
2
2
  import { join, basename, dirname } from "path";
3
3
  import { createRunDir, saveRunMeta, getArtifactsBaseDir } from "../evidence/artifacts.js";
4
4
  import { buildLineage, appendToIndex } from "../evidence/run_lineage.js";
@@ -779,23 +779,41 @@ export async function runVerify(input, config, cwd = process.cwd(), onProgress,
779
779
  phaseLabel = "Launching + driving the app (deep-E2E journey)";
780
780
  emitProgress();
781
781
  try {
782
- const { runJourney } = await import("./run_journey.js");
783
- const jr = await runJourney({
782
+ // P5.3 e2e.platforms drives EVERY listed platform sequentially (each
783
+ // leg with its own launch + drive + screenshots + video); single-target
784
+ // configs take the unchanged single-journey path inside the orchestrator.
785
+ const { runJourneyForPlatforms } = await import("./run_journey.js");
786
+ const multi = await runJourneyForPlatforms({
784
787
  cwd,
785
788
  e2e: config.e2e,
786
789
  targetApp: config.evidence?.target_app,
787
790
  mode: verifyOpts.journeyMode,
791
+ // P5.5 — stream the journey's phase + build heartbeat through verify's
792
+ // existing progress channel, so "Launching + driving" shows live build
793
+ // lines instead of a frozen label during a 12-minute cold build.
794
+ onProgress: (u) => {
795
+ phaseLabel = `Deep-E2E journey — ${u.phase}${u.detail ? `: ${u.detail.slice(0, 110)}` : ""}`;
796
+ emitProgress();
797
+ },
788
798
  });
789
799
  journeyRan = true;
790
- if (jr.screenshots && jr.screenshots.length > 0) {
791
- screenshotPaths.push(...jr.screenshots);
800
+ if (multi.multi) {
801
+ const parts = multi.outcomes.map((o) => o.result.status === "completed"
802
+ ? `${o.platform}: launched + driven, ${o.result.screenshots.length} screenshot(s)`
803
+ : `${o.platform}: ${o.result.status.toUpperCase()}`);
804
+ captureNotes.push(`[CodeLoop] Multi-platform deep-E2E (e2e.platforms) ran ${multi.outcomes.length} leg(s) — ${parts.join("; ")}. EVERY listed platform must produce driven evidence for the interaction_evidence gate.`);
805
+ }
806
+ for (const { result: jr } of multi.outcomes) {
807
+ if (jr.screenshots && jr.screenshots.length > 0) {
808
+ screenshotPaths.push(...jr.screenshots);
809
+ }
810
+ const head = jr.status === "completed"
811
+ ? `[CodeLoop] Deep-E2E journey RAN automatically (target ${jr.target_type}): the app was launched and driven, ${jr.screenshots.length} screenshot(s) captured across ${jr.screens_captured.length} screen(s).`
812
+ : jr.status === "launch_failed"
813
+ ? `[CodeLoop] Deep-E2E journey ran but the APP DID NOT LAUNCH (target ${jr.target_type}) — this launch_failed IS the evidence: the app cannot currently open. Fix the build/launch blocker below, then re-run codeloop_verify (it will re-attempt the launch automatically).`
814
+ : `[CodeLoop] Deep-E2E journey could not start (target ${jr.target_type}, ${jr.status}) — no device was available to launch on.`;
815
+ captureNotes.push(`${head}\n${jr.directive}`);
792
816
  }
793
- const head = jr.status === "completed"
794
- ? `[CodeLoop] Deep-E2E journey RAN automatically (target ${jr.target_type}): the app was launched and driven, ${jr.screenshots.length} screenshot(s) captured across ${jr.screens_captured.length} screen(s).`
795
- : jr.status === "launch_failed"
796
- ? `[CodeLoop] Deep-E2E journey ran but the APP DID NOT LAUNCH (target ${jr.target_type}) — this launch_failed IS the evidence: the app cannot currently open. Fix the build/launch blocker below, then re-run codeloop_verify (it will re-attempt the launch automatically).`
797
- : `[CodeLoop] Deep-E2E journey could not start (target ${jr.target_type}, ${jr.status}) — no device was available to launch on.`;
798
- captureNotes.push(`${head}\n${jr.directive}`);
799
817
  }
800
818
  catch (e) {
801
819
  captureNotes.push(`[CodeLoop] Auto deep-E2E journey errored: ${e.message}. Call codeloop_run_journey to launch + drive the app manually.`);
@@ -1036,6 +1054,32 @@ export async function runVerify(input, config, cwd = process.cwd(), onProgress,
1036
1054
  catch {
1037
1055
  /* best-effort — observability scan never breaks verify */
1038
1056
  }
1057
+ // 0.1.92 — P1.4 Flutter semantics audit. Unlabeled interactive widgets are
1058
+ // invisible to label-based driving (Maestro) AND to screen readers; flag
1059
+ // them file:line as a NON-BLOCKING polish note so the agent can add
1060
+ // tooltip:/Semantics(label:) at the source. Never affects the gate.
1061
+ try {
1062
+ if (existsSync(join(cwd, "pubspec.yaml"))) {
1063
+ const { auditFlutterSemantics } = await import("../runners/semantics_audit.js");
1064
+ const audit = auditFlutterSemantics(cwd);
1065
+ if (audit.applicable) {
1066
+ try {
1067
+ writeFileSync(join(runDir, "semantics_audit.json"), JSON.stringify(audit, null, 2), "utf-8");
1068
+ }
1069
+ catch { /* best-effort */ }
1070
+ if (audit.findings.length > 0) {
1071
+ const sample = audit.findings
1072
+ .slice(0, 6)
1073
+ .map((f) => `${f.source_file}:${f.line} ${f.widget}`)
1074
+ .join(", ");
1075
+ captureNotesC5.push(`[Semantics] NON-BLOCKING: ${audit.findings.length} interactive widget(s) have no visible text/tooltip/Semantics label — invisible to label-based driving (Maestro) and to screen readers: ${sample}${audit.findings.length > 6 ? `, +${audit.findings.length - 6} more (see semantics_audit.json)` : ""}. Adding tooltip:/Semantics(label:) raises journey hit-rate AND accessibility.`);
1076
+ }
1077
+ }
1078
+ }
1079
+ }
1080
+ catch {
1081
+ /* best-effort — semantics audit never breaks verify */
1082
+ }
1039
1083
  // 0.1.64 — Remote / hosting / third-party log collection via provider CLIs.
1040
1084
  // Auto-detects deploy targets (Vercel/Heroku/Fly/Firebase/GCloud/AWS/…),
1041
1085
  // pulls read-only logs when the CLI is installed, and pushes the agent to