@miller-tech/uap 1.53.0 → 1.55.0

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.
@@ -0,0 +1,596 @@
1
+ /**
2
+ * Execution gate — proves generated code actually RUNS, not just that files
3
+ * exist and parse.
4
+ *
5
+ * The build/type-check/test rungs in verifier-ladder catch syntax and (for TS)
6
+ * type errors, but a vanilla-JS project has none of those gates, so crash-class
7
+ * bugs — a temporal-dead-zone ReferenceError, an undefined cross-file global, a
8
+ * forgotten draw call — ship green. This gate closes that hole by executing the
9
+ * artifact in a type-appropriate runtime and failing on any uncaught error.
10
+ *
11
+ * It is exposed two ways:
12
+ * - `runExecutionGate(projectRoot)` — async, directly callable/testable.
13
+ * - `synthesizeExecutionRung(projectRoot)` — a GateRung that shells out to the
14
+ * sibling runner (execution-gate-runner) so the SYNC verifier ladder can run
15
+ * it via the normal spawn path (mirrors how deploy-dev is a special rung).
16
+ */
17
+ import { spawnSync } from 'child_process';
18
+ import { createServer } from 'http';
19
+ import { createReadStream, existsSync, readdirSync, readFileSync, realpathSync, statSync } from 'fs';
20
+ import { extname, join, resolve } from 'path';
21
+ import { fileURLToPath } from 'url';
22
+ import vm from 'vm';
23
+ /**
24
+ * Env for spawned smoke-runs with secret-bearing vars stripped, mirroring
25
+ * verifier-ladder's sanitizedEnv. Inlined (not imported) so the type-only
26
+ * back-edge to verifier-ladder stays type-only and no runtime import cycle
27
+ * forms. Generated code runs in this child, so it must never inherit
28
+ * provider credentials it could exfiltrate.
29
+ */
30
+ function gateEnv() {
31
+ const out = {};
32
+ for (const [k, v] of Object.entries(process.env)) {
33
+ if (/API_KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL/i.test(k))
34
+ continue;
35
+ out[k] = v;
36
+ }
37
+ out.CI = 'true';
38
+ return out;
39
+ }
40
+ const DEFAULT_TIMEOUT_MS = 60_000;
41
+ const DEFAULT_SETTLE_MS = 1_500;
42
+ const SKIP_DIRS = new Set(['node_modules', '.git', 'dist', 'build', 'out', 'coverage', '.uap', 'agents']);
43
+ /** Resolve the compiled sibling runner so a GateRung can `node` it. */
44
+ export function executionRunnerPath() {
45
+ return fileURLToPath(new URL('./execution-gate-runner.js', import.meta.url));
46
+ }
47
+ /** Find the directory containing an index.html within depth 2 (root + subdirs). */
48
+ export function findWebEntryDir(projectRoot) {
49
+ const root = resolve(projectRoot);
50
+ if (existsSync(join(root, 'index.html')))
51
+ return root;
52
+ let entries;
53
+ try {
54
+ entries = readdirSync(root);
55
+ }
56
+ catch {
57
+ return null;
58
+ }
59
+ for (const e of entries) {
60
+ if (SKIP_DIRS.has(e) || e.startsWith('.'))
61
+ continue;
62
+ const sub = join(root, e);
63
+ try {
64
+ if (statSync(sub).isDirectory() && existsSync(join(sub, 'index.html')))
65
+ return sub;
66
+ }
67
+ catch {
68
+ /* unreadable — skip */
69
+ }
70
+ }
71
+ return null;
72
+ }
73
+ /** Best-effort classification of what kind of artifact lives in the project. */
74
+ export function detectArtifactType(projectRoot) {
75
+ if (findWebEntryDir(projectRoot))
76
+ return 'web';
77
+ const pkgPath = join(projectRoot, 'package.json');
78
+ if (existsSync(pkgPath)) {
79
+ try {
80
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
81
+ if (pkg.bin)
82
+ return 'cli';
83
+ if (pkg.main || pkg.module || pkg.exports)
84
+ return 'lib';
85
+ // A scripts-only / bare package.json has no clear runnable entrypoint; such
86
+ // projects already carry build/test gates, so don't synthesize a redundant
87
+ // (and entryless) execution rung. Only declared entrypoints are gated.
88
+ return null;
89
+ }
90
+ catch {
91
+ return null;
92
+ }
93
+ }
94
+ return null;
95
+ }
96
+ // ---------------------------------------------------------------------------
97
+ // Static file server (web path) — no python dependency, binds to an ephemeral
98
+ // loopback port and serves a single directory.
99
+ // ---------------------------------------------------------------------------
100
+ const MIME = {
101
+ '.html': 'text/html',
102
+ '.js': 'text/javascript',
103
+ '.mjs': 'text/javascript',
104
+ '.css': 'text/css',
105
+ '.json': 'application/json',
106
+ '.png': 'image/png',
107
+ '.jpg': 'image/jpeg',
108
+ '.svg': 'image/svg+xml',
109
+ '.wasm': 'application/wasm',
110
+ };
111
+ export function startStaticServer(dir) {
112
+ // realpath the root so the symlink guard below compares like-for-like.
113
+ let rootReal;
114
+ try {
115
+ rootReal = realpathSync(resolve(dir));
116
+ }
117
+ catch {
118
+ rootReal = resolve(dir);
119
+ }
120
+ return new Promise((res, rej) => {
121
+ let server;
122
+ try {
123
+ server = createServer((req, response) => {
124
+ try {
125
+ let urlPath;
126
+ try {
127
+ urlPath = decodeURIComponent((req.url ?? '/').split('?')[0]);
128
+ }
129
+ catch {
130
+ response.statusCode = 400;
131
+ response.end('bad request');
132
+ return;
133
+ }
134
+ // Browsers auto-request /favicon.ico; answer it so the missing-favicon
135
+ // 404 is not mistaken for a real broken asset and failing the gate.
136
+ if (urlPath === '/favicon.ico') {
137
+ response.statusCode = 204;
138
+ response.end();
139
+ return;
140
+ }
141
+ const rel = urlPath === '/' ? 'index.html' : urlPath.replace(/^\/+/, '');
142
+ const target = resolve(rootReal, rel);
143
+ // Lexical path-escape guard.
144
+ if (target !== rootReal && !target.startsWith(rootReal + '/')) {
145
+ response.statusCode = 403;
146
+ response.end('forbidden');
147
+ return;
148
+ }
149
+ if (!existsSync(target) || statSync(target).isDirectory()) {
150
+ response.statusCode = 404;
151
+ response.end('not found');
152
+ return;
153
+ }
154
+ // Symlink guard: resolve the real path and confirm it stays in-tree, so
155
+ // a model-planted symlink (link -> /etc) cannot read out-of-tree files.
156
+ let realTarget;
157
+ try {
158
+ realTarget = realpathSync(target);
159
+ }
160
+ catch {
161
+ response.statusCode = 404;
162
+ response.end('not found');
163
+ return;
164
+ }
165
+ if (realTarget !== rootReal && !realTarget.startsWith(rootReal + '/')) {
166
+ response.statusCode = 403;
167
+ response.end('forbidden');
168
+ return;
169
+ }
170
+ response.setHeader('Content-Type', MIME[extname(realTarget).toLowerCase()] ?? 'application/octet-stream');
171
+ createReadStream(realTarget).pipe(response);
172
+ }
173
+ catch {
174
+ // Never let a handler exception hang the request (would stall the gate).
175
+ try {
176
+ response.statusCode = 500;
177
+ response.end('error');
178
+ }
179
+ catch {
180
+ /* response already sent */
181
+ }
182
+ }
183
+ });
184
+ }
185
+ catch (e) {
186
+ rej(e);
187
+ return;
188
+ }
189
+ server.on('error', rej);
190
+ server.listen(0, '127.0.0.1', () => {
191
+ const addr = server.address();
192
+ const port = typeof addr === 'object' && addr ? addr.port : 0;
193
+ res({ url: `http://127.0.0.1:${port}/index.html`, close: () => server.close() });
194
+ });
195
+ });
196
+ }
197
+ // ---------------------------------------------------------------------------
198
+ // Web execution — headless browser, with a vm+mocked-DOM fallback so the gate
199
+ // never silently no-ops when a real browser/chromium is unavailable.
200
+ // ---------------------------------------------------------------------------
201
+ async function runWeb(entryDir, opts) {
202
+ const start = Date.now();
203
+ const settleMs = opts.settleMs ?? DEFAULT_SETTLE_MS;
204
+ let server = null;
205
+ try {
206
+ server = await startStaticServer(entryDir);
207
+ let browser = null;
208
+ try {
209
+ browser = opts.browserFactory ? opts.browserFactory() : await loadWebBrowser();
210
+ await browser.launch({ headless: true });
211
+ }
212
+ catch (e) {
213
+ // Browser unavailable (e.g. no chromium) — fall back to the vm harness.
214
+ if (browser) {
215
+ try {
216
+ await browser.close();
217
+ }
218
+ catch {
219
+ /* ignore */
220
+ }
221
+ }
222
+ return runVmDomHarness(entryDir, start, `browser launch failed: ${String(e).slice(0, 120)}`);
223
+ }
224
+ try {
225
+ const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
226
+ // Wall-clock guard so a hung goto/load never wedges a direct caller (the
227
+ // spawned-runner path also has the rung-level spawn timeout as a backstop).
228
+ const status = await withTimeout(browser.goto(server.url), timeoutMs, 'goto');
229
+ await Promise.race([browser.waitForLoadState('load'), delay(timeoutMs)]).catch(() => undefined);
230
+ await delay(settleMs);
231
+ const errors = browser.getErrors();
232
+ const durationMs = Date.now() - start;
233
+ // Accept any 2xx (and 304 cached) — exact '200' false-fails on benign codes.
234
+ const loaded = /^2\d\d$/.test(status) || status === '304';
235
+ if (!loaded) {
236
+ return {
237
+ passed: false,
238
+ exitCode: 1,
239
+ failureReason: `entry did not load (HTTP ${status})`,
240
+ outputTail: `GET index.html -> ${status}`,
241
+ durationMs,
242
+ via: 'browser',
243
+ };
244
+ }
245
+ // Fail ONLY on uncaught exceptions (pageerror) — the crash-class signal
246
+ // this gate exists for. console.error and failed sub-resource requests are
247
+ // common in working apps (handled errors, missing decorative assets), so
248
+ // they are advisory: surfaced in the output but never fail the gate.
249
+ const fatal = errors.filter((e) => e.kind === 'pageerror');
250
+ const advisory = errors.filter((e) => e.kind !== 'pageerror');
251
+ if (fatal.length > 0) {
252
+ return {
253
+ passed: false,
254
+ exitCode: 1,
255
+ failureReason: `${fatal.length} uncaught error(s) in the page`,
256
+ outputTail: [...fatal, ...advisory].map((e) => `[${e.kind}] ${e.message}`).join('\n').slice(0, 4000),
257
+ durationMs,
258
+ via: 'browser',
259
+ };
260
+ }
261
+ return {
262
+ passed: true,
263
+ exitCode: 0,
264
+ outputTail: advisory.length > 0
265
+ ? `page loaded and ran (no uncaught errors). advisory: ${advisory.map((e) => e.kind).join(', ')}`
266
+ : 'page loaded and ran with no console/page errors',
267
+ durationMs,
268
+ via: 'browser',
269
+ };
270
+ }
271
+ finally {
272
+ await browser.close().catch(() => undefined);
273
+ }
274
+ }
275
+ catch (e) {
276
+ return {
277
+ passed: false,
278
+ exitCode: 1,
279
+ failureReason: 'web execution gate error',
280
+ outputTail: String(e).slice(0, 2000),
281
+ durationMs: Date.now() - start,
282
+ via: 'browser',
283
+ };
284
+ }
285
+ finally {
286
+ server?.close();
287
+ }
288
+ }
289
+ /** Lazy-load the real WebBrowser (cloakbrowser) only when actually needed. */
290
+ async function loadWebBrowser() {
291
+ const mod = await import('../browser/web-browser.js');
292
+ return new mod.WebBrowser();
293
+ }
294
+ /**
295
+ * No-browser fallback: load the page's classic scripts in order inside a vm with
296
+ * a mocked DOM/canvas/AudioContext/requestAnimationFrame, boot, dispatch a click
297
+ * + mousemove, and tick a few animation frames. Catches the exact class of bug
298
+ * the octopus build had (TDZ/undefined-global/init throw). Only handles classic
299
+ * (non-module) <script src> tags — ES modules return a clean skip.
300
+ */
301
+ export function runVmDomHarness(entryDir, startedAt, note) {
302
+ const start = startedAt ?? Date.now();
303
+ const indexPath = join(entryDir, 'index.html');
304
+ let html;
305
+ try {
306
+ html = readFileSync(indexPath, 'utf-8');
307
+ }
308
+ catch {
309
+ return { passed: false, exitCode: null, failureReason: 'no index.html', outputTail: '', durationMs: Date.now() - start, via: 'none' };
310
+ }
311
+ if (/<script[^>]+type=["']module["']/i.test(html)) {
312
+ return {
313
+ passed: true,
314
+ exitCode: 0,
315
+ failureReason: 'skipped (ES modules need a real browser)',
316
+ outputTail: 'vm-dom harness only runs classic scripts; install a headless browser for module apps',
317
+ durationMs: Date.now() - start,
318
+ via: 'none',
319
+ };
320
+ }
321
+ const srcs = [...html.matchAll(/<script[^>]+src=["']([^"']+)["']/gi)].map((m) => m[1]);
322
+ if (srcs.length === 0) {
323
+ return { passed: true, exitCode: 0, outputTail: 'no scripts to execute', durationMs: Date.now() - start, via: 'vm-dom' };
324
+ }
325
+ let bundle = '';
326
+ for (const s of srcs) {
327
+ const p = join(entryDir, s.replace(/^\//, ''));
328
+ if (!existsSync(p)) {
329
+ return {
330
+ passed: false,
331
+ exitCode: 1,
332
+ failureReason: `script not found: ${s}`,
333
+ outputTail: `index.html references ${s} which does not exist`,
334
+ durationMs: Date.now() - start,
335
+ via: 'vm-dom',
336
+ };
337
+ }
338
+ bundle += `\n//=== ${s} ===\n${readFileSync(p, 'utf-8')}\n`;
339
+ }
340
+ const sandbox = buildDomSandbox();
341
+ try {
342
+ vm.createContext(sandbox);
343
+ vm.runInContext(bundle, sandbox, { filename: 'bundle.js', timeout: 8000 });
344
+ // Drive a few frames + a start interaction to exercise the playing path.
345
+ const tick = (n) => {
346
+ let t = 0;
347
+ for (let i = 0; i < n && sandbox.__raf.cb; i++) {
348
+ const cb = sandbox.__raf.cb;
349
+ sandbox.__raf.cb = null;
350
+ cb(t += 16);
351
+ }
352
+ };
353
+ tick(3);
354
+ sandbox.__fire('click');
355
+ sandbox.__fire('mousedown');
356
+ sandbox.__fire('mousemove', { clientX: 100, clientY: 100 });
357
+ tick(60);
358
+ return {
359
+ passed: true,
360
+ exitCode: 0,
361
+ outputTail: `vm-dom: booted ${srcs.length} script(s), ran menu→playing frames clean${note ? ` (${note})` : ''}`,
362
+ durationMs: Date.now() - start,
363
+ via: 'vm-dom',
364
+ };
365
+ }
366
+ catch (e) {
367
+ const stack = e instanceof Error ? (e.stack ?? e.message) : String(e);
368
+ return {
369
+ passed: false,
370
+ exitCode: 1,
371
+ failureReason: 'runtime error while executing the page',
372
+ outputTail: stack.split('\n').slice(0, 6).join('\n').slice(0, 4000),
373
+ durationMs: Date.now() - start,
374
+ via: 'vm-dom',
375
+ };
376
+ }
377
+ }
378
+ /** A mocked browser global scope sufficient to boot a canvas app. */
379
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
380
+ function buildDomSandbox() {
381
+ const listeners = {
382
+ window: {},
383
+ document: {},
384
+ canvas: {},
385
+ };
386
+ const reg = (bag) => (type, fn) => {
387
+ (bag[type] ||= []).push(fn);
388
+ };
389
+ const ctxStub = new Proxy({}, {
390
+ get(_t, p) {
391
+ if (p === 'canvas')
392
+ return canvas;
393
+ if (p === 'measureText')
394
+ return () => ({ width: 10 });
395
+ if (p === 'createLinearGradient' || p === 'createRadialGradient')
396
+ return () => ({ addColorStop() { } });
397
+ if (p === 'getImageData')
398
+ return () => ({ data: new Uint8ClampedArray(4) });
399
+ if (['globalAlpha', 'lineWidth', 'font', 'fillStyle', 'strokeStyle', 'globalCompositeOperation', 'textAlign', 'textBaseline', 'shadowBlur', 'shadowColor', 'lineCap', 'lineJoin'].includes(String(p)))
400
+ return 0;
401
+ return () => { };
402
+ },
403
+ set() {
404
+ return true;
405
+ },
406
+ });
407
+ const canvas = {
408
+ width: 1280,
409
+ height: 720,
410
+ style: {},
411
+ getContext: () => ctxStub,
412
+ addEventListener: reg(listeners.canvas),
413
+ getBoundingClientRect: () => ({ left: 0, top: 0, width: 1280, height: 720 }),
414
+ };
415
+ const audioStub = new Proxy({}, {
416
+ get(_t, p) {
417
+ if (p === 'createOscillator')
418
+ return () => ({ connect() { }, start() { }, stop() { }, frequency: { setValueAtTime() { }, exponentialRampToValueAtTime() { }, linearRampToValueAtTime() { }, value: 0 }, type: '', detune: { setValueAtTime() { } } });
419
+ if (p === 'createGain')
420
+ return () => ({ connect() { }, gain: { setValueAtTime() { }, exponentialRampToValueAtTime() { }, linearRampToValueAtTime() { }, value: 0 } });
421
+ if (p === 'createBuffer')
422
+ return () => ({ getChannelData: () => new Float32Array(64) });
423
+ if (p === 'createBufferSource')
424
+ return () => ({ connect() { }, start() { }, stop() { }, buffer: null });
425
+ if (p === 'createBiquadFilter')
426
+ return () => ({ connect() { }, frequency: { setValueAtTime() { }, value: 0 }, type: '', Q: { value: 0 } });
427
+ if (p === 'destination')
428
+ return {};
429
+ if (p === 'currentTime')
430
+ return 0;
431
+ if (p === 'sampleRate')
432
+ return 44100;
433
+ return () => { };
434
+ },
435
+ });
436
+ const raf = { cb: null };
437
+ const win = {
438
+ innerWidth: 1280,
439
+ innerHeight: 720,
440
+ devicePixelRatio: 1,
441
+ addEventListener: reg(listeners.window),
442
+ requestAnimationFrame: (cb) => {
443
+ raf.cb = cb;
444
+ return 1;
445
+ },
446
+ cancelAnimationFrame: () => { },
447
+ AudioContext: function () {
448
+ return audioStub;
449
+ },
450
+ webkitAudioContext: function () {
451
+ return audioStub;
452
+ },
453
+ performance: { now: () => 0 },
454
+ };
455
+ const doc = {
456
+ getElementById: () => canvas,
457
+ querySelector: () => canvas,
458
+ addEventListener: reg(listeners.document),
459
+ createElement: () => canvas,
460
+ body: { appendChild() { }, style: {} },
461
+ };
462
+ const fire = (type, ev = {}) => {
463
+ const e = Object.assign({ preventDefault() { }, stopPropagation() { }, clientX: 640, clientY: 360, button: 0, key: '' }, ev);
464
+ for (const bag of [listeners.canvas, listeners.document, listeners.window]) {
465
+ (bag[type] || []).forEach((fn) => fn(e));
466
+ }
467
+ };
468
+ return {
469
+ window: win,
470
+ document: doc,
471
+ console,
472
+ requestAnimationFrame: win.requestAnimationFrame,
473
+ cancelAnimationFrame: win.cancelAnimationFrame,
474
+ AudioContext: win.AudioContext,
475
+ webkitAudioContext: win.webkitAudioContext,
476
+ performance: win.performance,
477
+ navigator: { userAgent: 'uap-execution-gate' },
478
+ setTimeout,
479
+ clearTimeout,
480
+ setInterval: () => 0,
481
+ clearInterval,
482
+ Math,
483
+ Date,
484
+ isNaN,
485
+ parseInt,
486
+ parseFloat,
487
+ __raf: raf,
488
+ __fire: fire,
489
+ };
490
+ }
491
+ function delay(ms) {
492
+ return new Promise((r) => setTimeout(r, ms));
493
+ }
494
+ /** Reject if `p` does not settle within `ms` (bounds a hung browser call). */
495
+ function withTimeout(p, ms, label) {
496
+ return Promise.race([
497
+ p,
498
+ new Promise((_, rej) => setTimeout(() => rej(new Error(`${label} timed out after ${ms}ms`)), ms)),
499
+ ]);
500
+ }
501
+ // ---------------------------------------------------------------------------
502
+ // Node / CLI / lib execution — run the entrypoint in a child process and fail
503
+ // on a non-zero exit or a thrown error at import/run time.
504
+ // ---------------------------------------------------------------------------
505
+ function runNodeLike(projectRoot, type, opts) {
506
+ const start = Date.now();
507
+ const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
508
+ let entry = null;
509
+ let mode = 'import';
510
+ try {
511
+ const pkg = JSON.parse(readFileSync(join(projectRoot, 'package.json'), 'utf-8'));
512
+ if (type === 'cli' && pkg.bin) {
513
+ entry = typeof pkg.bin === 'string' ? pkg.bin : Object.values(pkg.bin)[0];
514
+ mode = 'help';
515
+ }
516
+ else {
517
+ entry = pkg.main ?? pkg.module ?? 'index.js';
518
+ mode = 'import';
519
+ }
520
+ }
521
+ catch {
522
+ entry = 'index.js';
523
+ }
524
+ if (!entry || !existsSync(join(projectRoot, entry))) {
525
+ return {
526
+ passed: true,
527
+ exitCode: 0,
528
+ failureReason: `skipped (no runnable entry '${entry ?? '?'}')`,
529
+ outputTail: 'no entrypoint to smoke-run',
530
+ durationMs: Date.now() - start,
531
+ via: 'none',
532
+ };
533
+ }
534
+ const args = mode === 'help' ? [entry, '--help'] : ['-e', `import(${JSON.stringify('./' + entry)}).then(()=>process.exit(0)).catch(e=>{console.error(e&&e.stack||e);process.exit(1)})`];
535
+ const r = spawnSync('node', args, {
536
+ cwd: projectRoot,
537
+ encoding: 'utf-8',
538
+ timeout: timeoutMs,
539
+ maxBuffer: 16 * 1024 * 1024,
540
+ env: gateEnv(),
541
+ });
542
+ const out = `${r.stdout ?? ''}${r.stderr ?? ''}`.slice(-4000);
543
+ const passed = r.status === 0;
544
+ return {
545
+ passed,
546
+ exitCode: r.status ?? 1,
547
+ failureReason: passed ? undefined : `entrypoint ${mode === 'help' ? '--help' : 'import'} exited ${r.status ?? 'null'}`,
548
+ outputTail: out || (passed ? 'ran clean' : 'no output'),
549
+ durationMs: Date.now() - start,
550
+ via: 'child-process',
551
+ };
552
+ }
553
+ /**
554
+ * Execute the project's artifact and report whether it runs without error.
555
+ * Auto-detects the artifact type; returns a skip-pass when there is nothing
556
+ * runnable (the ladder's fail-closed floor lives in detectRungs, not here).
557
+ */
558
+ export async function runExecutionGate(projectRoot, opts = {}) {
559
+ const type = detectArtifactType(projectRoot);
560
+ if (type === 'web') {
561
+ const dir = findWebEntryDir(projectRoot);
562
+ if (dir)
563
+ return runWeb(dir, opts);
564
+ }
565
+ if (type === 'node' || type === 'cli' || type === 'lib') {
566
+ return runNodeLike(projectRoot, type, opts);
567
+ }
568
+ return {
569
+ passed: true,
570
+ exitCode: 0,
571
+ failureReason: 'skipped (no detectable artifact)',
572
+ outputTail: '',
573
+ durationMs: 0,
574
+ via: 'none',
575
+ };
576
+ }
577
+ /**
578
+ * Build a GateRung that runs the execution gate via the sibling runner so the
579
+ * synchronous verifier ladder can spawn it like any other rung. Returns null
580
+ * when there is no runnable artifact to gate (caller decides fail-closed).
581
+ */
582
+ export function synthesizeExecutionRung(projectRoot, timeoutMs = DEFAULT_TIMEOUT_MS) {
583
+ const type = detectArtifactType(projectRoot);
584
+ if (!type)
585
+ return null;
586
+ return {
587
+ id: 'execution',
588
+ name: `Execution smoke (runs the ${type} artifact)`,
589
+ command: 'node',
590
+ args: [executionRunnerPath(), projectRoot],
591
+ required: true,
592
+ timeoutMs: timeoutMs + 15_000, // runner overhead beyond the inner budget
593
+ tier: 'runtime',
594
+ };
595
+ }
596
+ //# sourceMappingURL=execution-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-gate.js","sourceRoot":"","sources":["../../src/delivery/execution-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAe,MAAM,MAAM,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACrG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB;;;;;;GAMG;AACH,SAAS,OAAO;IACd,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,IAAI,2CAA2C,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS;QAClE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IACD,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;IAChB,OAAO,GAAG,CAAC;AACb,CAAC;AAsCD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE1G,uEAAuE;AACvE,MAAM,UAAU,mBAAmB;IACjC,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAClC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;gBAAE,OAAO,GAAG,CAAC;QACrF,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,IAAI,eAAe,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAClD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAKpD,CAAC;YACF,IAAI,GAAG,CAAC,GAAG;gBAAE,OAAO,KAAK,CAAC;YAC1B,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;YACxD,4EAA4E;YAC5E,2EAA2E;YAC3E,uEAAuE;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAE9E,MAAM,IAAI,GAA2B;IACnC,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,kBAAkB;CAC5B,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,uEAAuE;IACvE,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9B,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;gBACtC,IAAI,CAAC;oBACH,IAAI,OAAe,CAAC;oBACpB,IAAI,CAAC;wBACH,OAAO,GAAG,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/D,CAAC;oBAAC,MAAM,CAAC;wBACP,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;wBAC1B,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;wBAC5B,OAAO;oBACT,CAAC;oBACD,uEAAuE;oBACvE,oEAAoE;oBACpE,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;wBAC/B,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;wBAC1B,QAAQ,CAAC,GAAG,EAAE,CAAC;wBACf,OAAO;oBACT,CAAC;oBACD,MAAM,GAAG,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBACzE,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBACtC,6BAA6B;oBAC7B,IAAI,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC;wBAC9D,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;wBAC1B,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;wBAC1B,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;wBAC1D,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;wBAC1B,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;wBAC1B,OAAO;oBACT,CAAC;oBACD,wEAAwE;oBACxE,wEAAwE;oBACxE,IAAI,UAAkB,CAAC;oBACvB,IAAI,CAAC;wBACH,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;oBACpC,CAAC;oBAAC,MAAM,CAAC;wBACP,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;wBAC1B,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;wBAC1B,OAAO;oBACT,CAAC;oBACD,IAAI,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC;wBACtE,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;wBAC1B,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;wBAC1B,OAAO;oBACT,CAAC;oBACD,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,0BAA0B,CAAC,CAAC;oBAC1G,gBAAgB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9C,CAAC;gBAAC,MAAM,CAAC;oBACP,yEAAyE;oBACzE,IAAI,CAAC;wBACH,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;wBAC1B,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACxB,CAAC;oBAAC,MAAM,CAAC;wBACP,2BAA2B;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,CAAC,CAAC,CAAC;YACP,OAAO;QACT,CAAC;QACD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;YACjC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,GAAG,CAAC,EAAE,GAAG,EAAE,oBAAoB,IAAI,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,qEAAqE;AACrE,8EAA8E;AAE9E,KAAK,UAAU,MAAM,CAAC,QAAgB,EAAE,IAA0B;IAChE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACpD,IAAI,MAAM,GAA8C,IAAI,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,OAAO,GAAyB,IAAI,CAAC;QACzC,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,MAAM,cAAc,EAAE,CAAC;YAC/E,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,wEAAwE;YACxE,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACP,YAAY;gBACd,CAAC;YACH,CAAC;YACD,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,0BAA0B,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;YACvD,yEAAyE;YACzE,4EAA4E;YAC5E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAC9E,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAChG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YACtC,6EAA6E;YAC7E,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,KAAK,CAAC;YAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;oBACL,MAAM,EAAE,KAAK;oBACb,QAAQ,EAAE,CAAC;oBACX,aAAa,EAAE,4BAA4B,MAAM,GAAG;oBACpD,UAAU,EAAE,qBAAqB,MAAM,EAAE;oBACzC,UAAU;oBACV,GAAG,EAAE,SAAS;iBACf,CAAC;YACJ,CAAC;YACD,wEAAwE;YACxE,2EAA2E;YAC3E,yEAAyE;YACzE,qEAAqE;YACrE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;YAC9D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO;oBACL,MAAM,EAAE,KAAK;oBACb,QAAQ,EAAE,CAAC;oBACX,aAAa,EAAE,GAAG,KAAK,CAAC,MAAM,gCAAgC;oBAC9D,UAAU,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;oBACpG,UAAU;oBACV,GAAG,EAAE,SAAS;iBACf,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,CAAC;gBACX,UAAU,EACR,QAAQ,CAAC,MAAM,GAAG,CAAC;oBACjB,CAAC,CAAC,uDAAuD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACjG,CAAC,CAAC,iDAAiD;gBACvD,UAAU;gBACV,GAAG,EAAE,SAAS;aACf,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,CAAC;YACX,aAAa,EAAE,0BAA0B;YACzC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;YACpC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC9B,GAAG,EAAE,SAAS;SACf,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,KAAK,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,KAAK,UAAU,cAAc;IAC3B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACtD,OAAO,IAAI,GAAG,CAAC,UAAU,EAA8B,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,SAAkB,EAAE,IAAa;IACjF,MAAM,KAAK,GAAG,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC/C,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACxI,CAAC;IACD,IAAI,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,CAAC;YACX,aAAa,EAAE,0CAA0C;YACzD,UAAU,EAAE,sFAAsF;YAClG,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC9B,GAAG,EAAE,MAAM;SACZ,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,uBAAuB,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAC3H,CAAC;IACD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,CAAC;gBACX,aAAa,EAAE,qBAAqB,CAAC,EAAE;gBACvC,UAAU,EAAE,yBAAyB,CAAC,uBAAuB;gBAC7D,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC9B,GAAG,EAAE,QAAQ;aACd,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,WAAW,CAAC,SAAS,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC;IAC9D,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1B,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,yEAAyE;QACzE,MAAM,IAAI,GAAG,CAAC,CAAS,EAAQ,EAAE;YAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;gBACxB,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC,CAAC,CAAC,CAAC;QACR,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,kBAAkB,IAAI,CAAC,MAAM,4CAA4C,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/G,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC9B,GAAG,EAAE,QAAQ;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO;YACL,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,CAAC;YACX,aAAa,EAAE,wCAAwC;YACvD,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;YACnE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC9B,GAAG,EAAE,QAAQ;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,qEAAqE;AACrE,8DAA8D;AAC9D,SAAS,eAAe;IACtB,MAAM,SAAS,GAAgE;QAC7E,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;KACX,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,GAAgD,EAAE,EAAE,CAAC,CAAC,IAAY,EAAE,EAAwB,EAAE,EAAE;QAC3G,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,MAAM,OAAO,GAAY,IAAI,KAAK,CAChC,EAAE,EACF;QACE,GAAG,CAAC,EAAE,EAAE,CAAC;YACP,IAAI,CAAC,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAC;YAClC,IAAI,CAAC,KAAK,aAAa;gBAAE,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,sBAAsB,IAAI,CAAC,KAAK,sBAAsB;gBAC9D,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,YAAY,KAAI,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,cAAc;gBAAE,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5E,IACE,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,0BAA0B,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAEjM,OAAO,CAAC,CAAC;YACX,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;QACD,GAAG;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CACF,CAAC;IACF,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO;QACzB,gBAAgB,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;QACvC,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KAC7E,CAAC;IACF,MAAM,SAAS,GAAY,IAAI,KAAK,CAClC,EAAE,EACF;QACE,GAAG,CAAC,EAAE,EAAE,CAAC;YACP,IAAI,CAAC,KAAK,kBAAkB;gBAC1B,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,KAAI,CAAC,EAAE,KAAK,KAAI,CAAC,EAAE,IAAI,KAAI,CAAC,EAAE,SAAS,EAAE,EAAE,cAAc,KAAI,CAAC,EAAE,4BAA4B,KAAI,CAAC,EAAE,uBAAuB,KAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,cAAc,KAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACnN,IAAI,CAAC,KAAK,YAAY;gBACpB,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,KAAI,CAAC,EAAE,IAAI,EAAE,EAAE,cAAc,KAAI,CAAC,EAAE,4BAA4B,KAAI,CAAC,EAAE,uBAAuB,KAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5I,IAAI,CAAC,KAAK,cAAc;gBAAE,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxF,IAAI,CAAC,KAAK,oBAAoB;gBAAE,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,KAAI,CAAC,EAAE,KAAK,KAAI,CAAC,EAAE,IAAI,KAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACrG,IAAI,CAAC,KAAK,oBAAoB;gBAAE,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,KAAI,CAAC,EAAE,SAAS,EAAE,EAAE,cAAc,KAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACzI,IAAI,CAAC,KAAK,aAAa;gBAAE,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,aAAa;gBAAE,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,YAAY;gBAAE,OAAO,KAAK,CAAC;YACrC,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;KACF,CACF,CAAC;IACF,MAAM,GAAG,GAAyC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAC/D,MAAM,GAAG,GAA4B;QACnC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,GAAG;QAChB,gBAAgB,EAAE,CAAC;QACnB,gBAAgB,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;QACvC,qBAAqB,EAAE,CAAC,EAAuB,EAAE,EAAE;YACjD,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC;QACX,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE,GAAE,CAAC;QAC9B,YAAY,EAAE;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,kBAAkB,EAAE;YAClB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;KAC9B,CAAC;IACF,MAAM,GAAG,GAAG;QACV,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM;QAC5B,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM;QAC3B,gBAAgB,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;QACzC,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM;QAC3B,IAAI,EAAE,EAAE,WAAW,KAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;KACtC,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,KAA8B,EAAE,EAAQ,EAAE;QACpE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,cAAc,KAAI,CAAC,EAAE,eAAe,KAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3H,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;IACF,OAAO;QACL,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,GAAG;QACb,OAAO;QACP,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;QAChD,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;QAC9C,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;QAC1C,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,SAAS,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE;QAC9C,UAAU;QACV,YAAY;QACZ,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QACpB,aAAa;QACb,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,UAAU;QACV,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,8EAA8E;AAC9E,SAAS,WAAW,CAAI,CAAa,EAAE,EAAU,EAAE,KAAa;IAC9D,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,OAAO,CAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KACrG,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAE9E,SAAS,WAAW,CAAC,WAAmB,EAAE,IAAkB,EAAE,IAA0B;IACtF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;IACvD,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,IAAI,IAAI,GAAsB,QAAQ,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAI9E,CAAC;QACF,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YAC9B,KAAK,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,IAAI,UAAU,CAAC;YAC7C,IAAI,GAAG,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,UAAU,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,CAAC;YACX,aAAa,EAAE,+BAA+B,KAAK,IAAI,GAAG,IAAI;YAC9D,UAAU,EAAE,4BAA4B;YACxC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC9B,GAAG,EAAE,MAAM;SACZ,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,sFAAsF,CAAC,CAAC;IACxL,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE;QAChC,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC3B,GAAG,EAAE,OAAO,EAAE;KACf,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAC9B,OAAO;QACL,MAAM;QACN,QAAQ,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,WAAW,CAAC,CAAC,MAAM,IAAI,MAAM,EAAE;QACtH,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;QACvD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;QAC9B,GAAG,EAAE,eAAe;KACrB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAmB,EACnB,OAA6B,EAAE;IAE/B,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,GAAG;YAAE,OAAO,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACxD,OAAO,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,CAAC;QACX,aAAa,EAAE,kCAAkC;QACjD,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,CAAC;QACb,GAAG,EAAE,MAAM;KACZ,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAmB,EAAE,SAAS,GAAG,kBAAkB;IACzF,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO;QACL,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,6BAA6B,IAAI,YAAY;QACnD,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,CAAC,mBAAmB,EAAE,EAAE,WAAW,CAAC;QAC1C,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,0CAA0C;QACzE,IAAI,EAAE,SAAS;KAChB,CAAC;AACJ,CAAC"}
@@ -17,7 +17,7 @@
17
17
  * `ci`/`deploy-staging`/`deploy-prod` bands are NEVER run locally — they are
18
18
  * consumed after commit via the CI watcher (see ci-watcher.ts).
19
19
  */
20
- export type GateTier = 'fast' | 'integration' | 'deploy-dev' | 'ci' | 'deploy-staging' | 'deploy-prod';
20
+ export type GateTier = 'fast' | 'runtime' | 'integration' | 'deploy-dev' | 'ci' | 'deploy-staging' | 'deploy-prod';
21
21
  /** Cheap → expensive promotion order. */
22
22
  export declare const TIER_ORDER: GateTier[];
23
23
  export interface GateRung {
@@ -1 +1 @@
1
- {"version":3,"file":"verifier-ladder.d.ts","sourceRoot":"","sources":["../../src/delivery/verifier-ladder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifier-ladder.d.ts","sourceRoot":"","sources":["../../src/delivery/verifier-ladder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,SAAS,GACT,aAAa,GACb,YAAY,GACZ,IAAI,GACJ,gBAAgB,GAChB,aAAa,CAAC;AAElB,yCAAyC;AACzC,eAAO,MAAM,UAAU,EAAE,QAAQ,EAQhC,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE;AAED,8EAA8E;AAC9E,wBAAgB,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAE/C;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE9E,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mEAAmE;IACnE,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,eAAO,MAAM,kBAAkB,OAAQ,CAAC;AAOxC,wBAAgB,YAAY,IAAI,MAAM,CAAC,UAAU,CAOhD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAA2B,GAAG,QAAQ,EAAE,CA6FnG;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,SAAS,GAAE,MAA2B,GACrC,QAAQ,EAAE,CA2CZ;AAkBD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,SAAS,GAAE,MAA2B,GACrC,QAAQ,GAAG,IAAI,CAkDjB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAA2B,GAAG,QAAQ,EAAE,CA8DzG;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAInE;AAED,2DAA2D;AAC3D,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAA2B,GAAG,UAAU,CA+C/G;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAqB/E;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CACvB,KAAK,EAAE,QAAQ,EAAE,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,aAAkB,GAC1B,YAAY,CA8Cd;AAED,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,QAAQ,EAAE,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,KACpB,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAE1C,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,eAAe,CAAC,EAAE,WAAW,CAAC;CAC/B;AAYD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,QAAQ,EAAE,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,YAAY,CAAC,CAsEvB"}