@opensip-cli/graph 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/__tests__/cli/graph-execute.test.js +7 -5
- package/dist/__tests__/cli/graph-execute.test.js.map +1 -1
- package/dist/__tests__/cli/graph.test.js +18 -12
- package/dist/__tests__/cli/graph.test.js.map +1 -1
- package/dist/__tests__/internal-surface.test.js +3 -0
- package/dist/__tests__/internal-surface.test.js.map +1 -1
- package/dist/__tests__/persistence/session-replay.test.js +7 -4
- package/dist/__tests__/persistence/session-replay.test.js.map +1 -1
- package/dist/__tests__/rules/registry.test.js +2 -2
- package/dist/__tests__/rules/registry.test.js.map +1 -1
- package/dist/__tests__/test-utils/with-graph-scope.d.ts.map +1 -1
- package/dist/__tests__/test-utils/with-graph-scope.js +2 -2
- package/dist/__tests__/test-utils/with-graph-scope.js.map +1 -1
- package/dist/__tests__/tool-branches.test.d.ts +3 -3
- package/dist/__tests__/tool-branches.test.js +25 -14
- package/dist/__tests__/tool-branches.test.js.map +1 -1
- package/dist/__tests__/tool-register.test.js +61 -77
- package/dist/__tests__/tool-register.test.js.map +1 -1
- package/dist/__tests__/tool.test.d.ts +4 -4
- package/dist/__tests__/tool.test.js +31 -16
- package/dist/__tests__/tool.test.js.map +1 -1
- package/dist/cli/__tests__/build-envelope.test.js +77 -0
- package/dist/cli/__tests__/build-envelope.test.js.map +1 -1
- package/dist/cli/__tests__/graph-envelope-view.test.d.ts +2 -0
- package/dist/cli/__tests__/graph-envelope-view.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-envelope-view.test.js +97 -0
- package/dist/cli/__tests__/graph-envelope-view.test.js.map +1 -0
- package/dist/cli/__tests__/graph-list.test.d.ts +2 -0
- package/dist/cli/__tests__/graph-list.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-list.test.js +20 -0
- package/dist/cli/__tests__/graph-list.test.js.map +1 -0
- package/dist/cli/__tests__/shard-worker.test.js +22 -0
- package/dist/cli/__tests__/shard-worker.test.js.map +1 -1
- package/dist/cli/equivalence-check-command.d.ts.map +1 -1
- package/dist/cli/equivalence-check-command.js +0 -2
- package/dist/cli/equivalence-check-command.js.map +1 -1
- package/dist/cli/graph/graph-aux-command-specs.d.ts +54 -27
- package/dist/cli/graph/graph-aux-command-specs.d.ts.map +1 -1
- package/dist/cli/graph/graph-aux-command-specs.js +359 -265
- package/dist/cli/graph/graph-aux-command-specs.js.map +1 -1
- package/dist/cli/graph-envelope-view.d.ts +41 -0
- package/dist/cli/graph-envelope-view.d.ts.map +1 -0
- package/dist/cli/graph-envelope-view.js +133 -0
- package/dist/cli/graph-envelope-view.js.map +1 -0
- package/dist/cli/graph-list.d.ts +29 -0
- package/dist/cli/graph-list.d.ts.map +1 -0
- package/dist/cli/graph-list.js +44 -0
- package/dist/cli/graph-list.js.map +1 -0
- package/dist/cli/graph-report.d.ts +16 -6
- package/dist/cli/graph-report.d.ts.map +1 -1
- package/dist/cli/graph-report.js +10 -6
- package/dist/cli/graph-report.js.map +1 -1
- package/dist/cli/graph-runner.d.ts.map +1 -1
- package/dist/cli/graph-runner.js +23 -10
- package/dist/cli/graph-runner.js.map +1 -1
- package/dist/cli/graph-worker.d.ts.map +1 -1
- package/dist/cli/graph-worker.js +1 -0
- package/dist/cli/graph-worker.js.map +1 -1
- package/dist/cli/graph.d.ts.map +1 -1
- package/dist/cli/graph.js +30 -25
- package/dist/cli/graph.js.map +1 -1
- package/dist/cli/lookup.d.ts.map +1 -1
- package/dist/cli/lookup.js +0 -2
- package/dist/cli/lookup.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.d.ts +22 -0
- package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.js +208 -0
- package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.js.map +1 -0
- package/dist/cli/orchestrate/shard-model.d.ts +17 -0
- package/dist/cli/orchestrate/shard-model.d.ts.map +1 -1
- package/dist/cli/orchestrate/shard-runner.d.ts +31 -1
- package/dist/cli/orchestrate/shard-runner.d.ts.map +1 -1
- package/dist/cli/orchestrate/shard-runner.js +215 -11
- package/dist/cli/orchestrate/shard-runner.js.map +1 -1
- package/dist/cli/orchestrate/sharded-graph.d.ts.map +1 -1
- package/dist/cli/orchestrate/sharded-graph.js +32 -3
- package/dist/cli/orchestrate/sharded-graph.js.map +1 -1
- package/dist/cli/shard-worker.d.ts.map +1 -1
- package/dist/cli/shard-worker.js +127 -11
- package/dist/cli/shard-worker.js.map +1 -1
- package/dist/cli/symbol-index.d.ts.map +1 -1
- package/dist/cli/symbol-index.js +0 -2
- package/dist/cli/symbol-index.js.map +1 -1
- package/dist/internal.d.ts +1 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +5 -0
- package/dist/internal.js.map +1 -1
- package/dist/persistence/session-replay.d.ts +9 -4
- package/dist/persistence/session-replay.d.ts.map +1 -1
- package/dist/persistence/session-replay.js +8 -12
- package/dist/persistence/session-replay.js.map +1 -1
- package/dist/tool.d.ts.map +1 -1
- package/dist/tool.js +37 -118
- package/dist/tool.js.map +1 -1
- package/package.json +22 -26
package/dist/cli/graph.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/cli/graph.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;GAmBG;AAsBH,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAM7E;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA4EtC;AAyFD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA6BtC;
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/cli/graph.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;GAmBG;AAsBH,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAM7E;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA4EtC;AAyFD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA6BtC;AAiKD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAsBzF;AAED,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/cli/graph.js
CHANGED
|
@@ -301,17 +301,21 @@ async function deliverGraphResult(opts, result, cli, startedAt, finalized) {
|
|
|
301
301
|
* Render the run and return its {@link SignalEnvelope} (ADR-0011).
|
|
302
302
|
*
|
|
303
303
|
* `--json` emits the envelope through the shared `formatSignalJson`
|
|
304
|
-
* (`cli.emitEnvelope`). The default/`--verbose` path hands a
|
|
305
|
-
*
|
|
306
|
-
*
|
|
307
|
-
*
|
|
308
|
-
*
|
|
309
|
-
*
|
|
310
|
-
*
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
*
|
|
304
|
+
* (`cli.emitEnvelope`). The default/`--verbose` path hands a {@link RunPresentation}
|
|
305
|
+
* to the render seam (Ink on TTY, plain text in pipes/CI): the SAME `envelope`
|
|
306
|
+
* already built here IS carried on the render object (envelope-first-presentation
|
|
307
|
+
* plan, RP-2), so `presentationToView` derives the PASS/FAIL summary and verdict
|
|
308
|
+
* from it — graph no longer carries a count-based `graph-done` summary. The
|
|
309
|
+
* verbose catalog/findings/entry-point body rides as `verboseDetail`
|
|
310
|
+
* ({kind:'lines'}, ADR-0021), and that verbose/detail surface also carries the
|
|
311
|
+
* per-unit table; graph's fast-tier caveat moves to `RunPresentation.banners` (a
|
|
312
|
+
* muted line above the summary); the non-verbose footer hints are emitted by the
|
|
313
|
+
* shared seam. The host-stamped
|
|
314
|
+
* `durationMs` (ADR-0051) is threaded as `RunPresentation.durationMs` so the
|
|
315
|
+
* summary shows the real wall-clock — graph's envelope units carry `durationMs: 0`,
|
|
316
|
+
* so without this thread `presentationToView`'s unit-sum default would render
|
|
317
|
+
* `0ms`. The envelope is also RETURNED for the composition root's cloud +
|
|
318
|
+
* `--report-to` delivery (egress, a separate plane — untouched here).
|
|
315
319
|
*/
|
|
316
320
|
async function renderGraphResult(opts, result, startedAt, cli) {
|
|
317
321
|
const durationMs = Math.max(0, Date.now() - Date.parse(startedAt));
|
|
@@ -328,12 +332,13 @@ async function renderGraphResult(opts, result, startedAt, cli) {
|
|
|
328
332
|
});
|
|
329
333
|
return envelope;
|
|
330
334
|
}
|
|
331
|
-
logger.info({ evt: 'graph.render.
|
|
335
|
+
logger.info({ evt: 'graph.render.presentation.start', module: MODULE_GRAPH_RENDER });
|
|
332
336
|
const verbose = opts.verbose === true;
|
|
333
337
|
// ADR-0021: graph's verbose body is carried as VerboseDetail{kind:'lines'} and
|
|
334
338
|
// rendered through the shared resultToView seam — the same path the live runner
|
|
335
339
|
// uses — instead of a graph-only `reportLines`/`footerHints` shape. The
|
|
336
|
-
// non-verbose footer hints are emitted by the seam (
|
|
340
|
+
// non-verbose footer hints are emitted by the seam (envelope-first-presentation
|
|
341
|
+
// RP-2 → `presentationToView`).
|
|
337
342
|
const verboseDetail = verbose
|
|
338
343
|
? {
|
|
339
344
|
kind: 'lines',
|
|
@@ -346,22 +351,22 @@ async function renderGraphResult(opts, result, startedAt, cli) {
|
|
|
346
351
|
}
|
|
347
352
|
: undefined;
|
|
348
353
|
const resolutionBanner = resolutionBannerText(result.catalog?.resolutionMode);
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
354
|
+
// envelope-first-presentation RP-2: route graph's static render through the
|
|
355
|
+
// shared RunPresentation. The envelope IS carried (it drives the verdict and
|
|
356
|
+
// optional verbose/detail table); `durationMs` is threaded so the host-owned
|
|
357
|
+
// wall-clock wins over the unit-sum (graph units carry durationMs:0); the
|
|
358
|
+
// resolution caveat moves to `banners`.
|
|
359
|
+
const presentation = {
|
|
360
|
+
type: 'run-presentation',
|
|
361
|
+
tool: 'graph',
|
|
362
|
+
envelope,
|
|
352
363
|
...(verboseDetail === undefined ? {} : { verboseDetail }),
|
|
353
|
-
...(resolutionBanner === undefined ? {} : { resolutionBanner }),
|
|
354
|
-
summary: {
|
|
355
|
-
passed: summary.passed,
|
|
356
|
-
failed: summary.failed,
|
|
357
|
-
errors: summary.errors,
|
|
358
|
-
warnings: summary.warnings,
|
|
359
|
-
},
|
|
364
|
+
...(resolutionBanner === undefined ? {} : { banners: [resolutionBanner] }),
|
|
360
365
|
durationMs,
|
|
361
366
|
};
|
|
362
|
-
await cli.render(
|
|
367
|
+
await cli.render(presentation);
|
|
363
368
|
logger.info({
|
|
364
|
-
evt: 'graph.render.
|
|
369
|
+
evt: 'graph.render.presentation.complete',
|
|
365
370
|
module: MODULE_GRAPH_RENDER,
|
|
366
371
|
});
|
|
367
372
|
return envelope;
|
package/dist/cli/graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/cli/graph.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/cli/graph.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/lookup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/cli/lookup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/cli/lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,oBAAoB,EAC1B,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CAmDf"}
|
package/dist/cli/lookup.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @fitness-ignore-file no-direct-stdout-in-tool-engine -- read-only auxiliary subcommand: the `--json` machine path deliberately bypasses the human render seam to emit a structured catalog-query result straight to stdout (documented inline at the call site). The human path uses cli.render. Not the signal-envelope run output.
|
|
2
|
-
// @fitness-ignore-file only-documented-toolcli-seams -- same rationale as above: the `--json` lookup result is a read-only catalog query straight to stdout; the human path uses cli.render. Not run output through a ToolCliContext seam.
|
|
3
1
|
/**
|
|
4
2
|
* `opensip graph lookup <name>` — read-only catalog query.
|
|
5
3
|
*
|
package/dist/cli/lookup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/cli/lookup.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/cli/lookup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shard runner — the spawn-path CORRELATION + failure-taxonomy contract
|
|
3
|
+
* (subprocess-correlation telemetry spec, Phase 1). Drives REAL child processes
|
|
4
|
+
* via a fixture "CLI" worker (the same harness pattern as `shard-runner-spawn`):
|
|
5
|
+
*
|
|
6
|
+
* - the worker inherits the PARENT run via `OPENSIP_RUN_ID` env (B1) — the spec
|
|
7
|
+
* JSON carries `correlation` WITHOUT `runId`, and the child sees the parent's
|
|
8
|
+
* `OPENSIP_RUN_ID` in its env;
|
|
9
|
+
* - a non-zero exit yields a `ShardFailure { failureClass: 'exit_nonzero' }` and
|
|
10
|
+
* a structured `graph.shard.runner.shard_failed` event whose `stderrPreview`
|
|
11
|
+
* is capped at 500 chars while the returned `ShardFailure.stderr` stays FULL
|
|
12
|
+
* (M4);
|
|
13
|
+
* - a hung shard past a SHORT injected kill-timeout settles as
|
|
14
|
+
* `failureClass: 'timeout'` (M3) — never an indefinite hang;
|
|
15
|
+
* - an OLD-build spec WITHOUT a `correlation` field still builds (wire-compat,
|
|
16
|
+
* GAP a) — the worker tolerates `spec.correlation === undefined`.
|
|
17
|
+
*
|
|
18
|
+
* The fixture echoes the env + spec it saw back through its stdout JSON so the
|
|
19
|
+
* test can assert what the runner forwarded without standing up a real build.
|
|
20
|
+
*/
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=shard-runner-correlation.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-runner-correlation.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/orchestrate/__tests__/shard-runner-correlation.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shard runner — the spawn-path CORRELATION + failure-taxonomy contract
|
|
3
|
+
* (subprocess-correlation telemetry spec, Phase 1). Drives REAL child processes
|
|
4
|
+
* via a fixture "CLI" worker (the same harness pattern as `shard-runner-spawn`):
|
|
5
|
+
*
|
|
6
|
+
* - the worker inherits the PARENT run via `OPENSIP_RUN_ID` env (B1) — the spec
|
|
7
|
+
* JSON carries `correlation` WITHOUT `runId`, and the child sees the parent's
|
|
8
|
+
* `OPENSIP_RUN_ID` in its env;
|
|
9
|
+
* - a non-zero exit yields a `ShardFailure { failureClass: 'exit_nonzero' }` and
|
|
10
|
+
* a structured `graph.shard.runner.shard_failed` event whose `stderrPreview`
|
|
11
|
+
* is capped at 500 chars while the returned `ShardFailure.stderr` stays FULL
|
|
12
|
+
* (M4);
|
|
13
|
+
* - a hung shard past a SHORT injected kill-timeout settles as
|
|
14
|
+
* `failureClass: 'timeout'` (M3) — never an indefinite hang;
|
|
15
|
+
* - an OLD-build spec WITHOUT a `correlation` field still builds (wire-compat,
|
|
16
|
+
* GAP a) — the worker tolerates `spec.correlation === undefined`.
|
|
17
|
+
*
|
|
18
|
+
* The fixture echoes the env + spec it saw back through its stdout JSON so the
|
|
19
|
+
* test can assert what the runner forwarded without standing up a real build.
|
|
20
|
+
*/
|
|
21
|
+
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
22
|
+
import { tmpdir } from 'node:os';
|
|
23
|
+
import { join } from 'node:path';
|
|
24
|
+
import { configureLogger, RunScope, runWithScope } from '@opensip-cli/core';
|
|
25
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
26
|
+
import { runShardsInParallel } from '../shard-runner.js';
|
|
27
|
+
// The fixture worker, invoked as `node <script> graph-shard-worker <specPath>`.
|
|
28
|
+
// - `fail:<id>` → exit 3 with a LONG stderr (proves the 500-char preview cap
|
|
29
|
+
// while the full stderr survives on the ShardFailure).
|
|
30
|
+
// - `sleep:<id>` → sleep well past the injected short kill-timeout (proves M3).
|
|
31
|
+
// - anything else → emit a ShardBuildResult whose `fragment.cacheKey` carries an
|
|
32
|
+
// env+spec snapshot: the OPENSIP_RUN_ID the child saw and whether the spec had
|
|
33
|
+
// a `correlation` (and, if so, its runId-stripped shape).
|
|
34
|
+
const WORKER_SCRIPT = String.raw `
|
|
35
|
+
const { readFileSync } = require('node:fs');
|
|
36
|
+
const specPath = process.argv[3];
|
|
37
|
+
const spec = JSON.parse(readFileSync(specPath, 'utf8'));
|
|
38
|
+
const id = spec.shard.id;
|
|
39
|
+
if (id.startsWith('fail:')) {
|
|
40
|
+
process.stderr.write('boom '.repeat(200) + 'for ' + id + '\n');
|
|
41
|
+
process.exit(3);
|
|
42
|
+
}
|
|
43
|
+
if (id.startsWith('sleep:')) {
|
|
44
|
+
// Hang past the injected short kill-timeout; the parent SIGKILLs us.
|
|
45
|
+
setTimeout(() => process.exit(0), 60_000);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const snapshot = {
|
|
49
|
+
runIdEnv: process.env.OPENSIP_RUN_ID ?? null,
|
|
50
|
+
specHasCorrelation: spec.correlation !== undefined,
|
|
51
|
+
specCorrelation: spec.correlation ?? null,
|
|
52
|
+
};
|
|
53
|
+
const result = {
|
|
54
|
+
shardId: id,
|
|
55
|
+
fragment: {
|
|
56
|
+
version: '3.0', tool: 'graph', language: spec.language ?? 'typescript',
|
|
57
|
+
builtAt: 'x', cacheKey: JSON.stringify(snapshot), resolutionMode: 'exact', functions: {},
|
|
58
|
+
},
|
|
59
|
+
fingerprint: 'fp-' + id,
|
|
60
|
+
boundaryCalls: [],
|
|
61
|
+
parseErrors: [],
|
|
62
|
+
};
|
|
63
|
+
process.stdout.write(JSON.stringify(result));
|
|
64
|
+
process.exit(0);
|
|
65
|
+
`;
|
|
66
|
+
const PARENT_CORRELATION = {
|
|
67
|
+
runId: 'RUN_test',
|
|
68
|
+
tool: 'graph',
|
|
69
|
+
parentCommand: 'graph',
|
|
70
|
+
repo: '/work/acme',
|
|
71
|
+
};
|
|
72
|
+
describe('runShardsInParallel — spawn-path correlation + failure taxonomy', () => {
|
|
73
|
+
let dir;
|
|
74
|
+
let cliScript;
|
|
75
|
+
const stderrCalls = [];
|
|
76
|
+
beforeEach(() => {
|
|
77
|
+
dir = mkdtempSync(join(tmpdir(), 'shard-corr-'));
|
|
78
|
+
cliScript = join(dir, 'fake-cli.cjs');
|
|
79
|
+
writeFileSync(cliScript, WORKER_SCRIPT, 'utf8');
|
|
80
|
+
stderrCalls.length = 0;
|
|
81
|
+
});
|
|
82
|
+
afterEach(() => {
|
|
83
|
+
rmSync(dir, { recursive: true, force: true });
|
|
84
|
+
vi.restoreAllMocks();
|
|
85
|
+
// Restore the singleton logger to its quiet default so capture state can't
|
|
86
|
+
// leak into sibling suites.
|
|
87
|
+
configureLogger({ debugMode: false, silent: true, runId: '' });
|
|
88
|
+
});
|
|
89
|
+
function shard(id) {
|
|
90
|
+
return { id, rootDir: dir, files: [join(dir, `${id}.ts`)] };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Capture the singleton logger's JSONL by enabling stderr output (the runner
|
|
94
|
+
* emits through the imported `logger` singleton) and routing stderr through a
|
|
95
|
+
* spy. `silent: false` + `debugMode: true` is the only mode in which the
|
|
96
|
+
* singleton writes its structured lines to stderr (the SAME gate the
|
|
97
|
+
* run-id-log-isolation test uses).
|
|
98
|
+
*/
|
|
99
|
+
function captureLogs() {
|
|
100
|
+
vi.spyOn(process.stderr, 'write').mockImplementation((chunk) => {
|
|
101
|
+
stderrCalls.push(String(chunk));
|
|
102
|
+
return true;
|
|
103
|
+
});
|
|
104
|
+
configureLogger({ debugMode: true, silent: false, runId: '' });
|
|
105
|
+
}
|
|
106
|
+
function loggedEvents(evt) {
|
|
107
|
+
return stderrCalls
|
|
108
|
+
.flatMap((c) => c.split('\n'))
|
|
109
|
+
.filter((line) => line.trim().length > 0)
|
|
110
|
+
.map((line) => {
|
|
111
|
+
try {
|
|
112
|
+
return JSON.parse(line);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return {};
|
|
116
|
+
}
|
|
117
|
+
})
|
|
118
|
+
.filter((e) => e.evt === evt);
|
|
119
|
+
}
|
|
120
|
+
/** Run the pool inside a scope carrying the parent correlation bag. */
|
|
121
|
+
function runWithCorrelation(shards, opts = {}) {
|
|
122
|
+
const scope = new RunScope({
|
|
123
|
+
runId: PARENT_CORRELATION.runId,
|
|
124
|
+
correlation: PARENT_CORRELATION,
|
|
125
|
+
});
|
|
126
|
+
return runWithScope(scope, () => runShardsInParallel({
|
|
127
|
+
shards: [...shards],
|
|
128
|
+
projectRoot: dir,
|
|
129
|
+
cliScript,
|
|
130
|
+
resolutionMode: 'exact',
|
|
131
|
+
...(opts.hardKillTimeoutMs === undefined
|
|
132
|
+
? {}
|
|
133
|
+
: { hardKillTimeoutMs: opts.hardKillTimeoutMs }),
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
136
|
+
it('forwards OPENSIP_RUN_ID to the child (B1) and writes correlation sans runId into the spec', async () => {
|
|
137
|
+
const out = await runWithCorrelation([shard('pkg:a')]);
|
|
138
|
+
expect(out.failures).toHaveLength(0);
|
|
139
|
+
const snap = JSON.parse(out.fragments[0].fragment.cacheKey);
|
|
140
|
+
// The child inherited the PARENT run via env (B1) — not via the spec JSON.
|
|
141
|
+
expect(snap.runIdEnv).toBe('RUN_test');
|
|
142
|
+
// The spec carries correlation, but NOT runId (it is env-only).
|
|
143
|
+
expect(snap.specHasCorrelation).toBe(true);
|
|
144
|
+
expect(snap.specCorrelation).not.toBeNull();
|
|
145
|
+
expect(snap.specCorrelation).not.toHaveProperty('runId');
|
|
146
|
+
// The rest of the bag rode along in the spec, plus this shard's id/workerKind.
|
|
147
|
+
expect(snap.specCorrelation?.tool).toBe('graph');
|
|
148
|
+
expect(snap.specCorrelation?.parentCommand).toBe('graph');
|
|
149
|
+
expect(snap.specCorrelation?.shardId).toBe('pkg:a');
|
|
150
|
+
expect(snap.specCorrelation?.workerKind).toBe('shard');
|
|
151
|
+
});
|
|
152
|
+
it('emits graph.shard.runner.shard_failed (exit_nonzero) with a ≤500-char preview; full stderr untruncated (M4)', async () => {
|
|
153
|
+
captureLogs();
|
|
154
|
+
const out = await runWithCorrelation([shard('fail:x')]);
|
|
155
|
+
expect(out.failures).toHaveLength(1);
|
|
156
|
+
const failure = out.failures[0];
|
|
157
|
+
expect(failure.shardId).toBe('fail:x');
|
|
158
|
+
expect(failure.exitCode).toBe(3);
|
|
159
|
+
expect(failure.failureClass).toBe('exit_nonzero');
|
|
160
|
+
// The returned ShardFailure.stderr is the FULL captured output (M4): the
|
|
161
|
+
// fixture writes ~1000 chars of 'boom ' — well over the 500-char preview cap.
|
|
162
|
+
expect(failure.stderr.length).toBeGreaterThan(500);
|
|
163
|
+
expect(failure.stderr).toContain('for fail:x');
|
|
164
|
+
const [event] = loggedEvents('graph.shard.runner.shard_failed');
|
|
165
|
+
expect(event).toBeDefined();
|
|
166
|
+
expect(event?.shardId).toBe('fail:x');
|
|
167
|
+
expect(event?.exitCode).toBe(3);
|
|
168
|
+
expect(event?.failureClass).toBe('exit_nonzero');
|
|
169
|
+
expect(event?.runId).toBe('RUN_test');
|
|
170
|
+
// The structured event's preview is independently capped at 500 chars.
|
|
171
|
+
expect((event?.stderrPreview ?? '').length).toBeLessThanOrEqual(500);
|
|
172
|
+
});
|
|
173
|
+
it('kills a hung shard at the injected timeout → failureClass timeout (M3)', async () => {
|
|
174
|
+
captureLogs();
|
|
175
|
+
// A 200ms injected kill-timeout: the fixture sleeps 60s, so the parent must
|
|
176
|
+
// SIGKILL it and settle as `timeout` — the test itself completes far under
|
|
177
|
+
// the 10-minute production default (proving no indefinite hang).
|
|
178
|
+
const out = await runWithCorrelation([shard('sleep:hang')], { hardKillTimeoutMs: 200 });
|
|
179
|
+
expect(out.fragments).toHaveLength(0);
|
|
180
|
+
expect(out.failures).toHaveLength(1);
|
|
181
|
+
expect(out.failures[0]?.shardId).toBe('sleep:hang');
|
|
182
|
+
expect(out.failures[0]?.failureClass).toBe('timeout');
|
|
183
|
+
expect(out.failures[0]?.stderr).toContain('hard kill-timeout');
|
|
184
|
+
const [event] = loggedEvents('graph.shard.runner.shard_failed');
|
|
185
|
+
expect(event?.failureClass).toBe('timeout');
|
|
186
|
+
expect(event?.shardId).toBe('sleep:hang');
|
|
187
|
+
}, 15_000);
|
|
188
|
+
it('builds a spec WITHOUT a correlation field (wire-compat, GAP a) — no throw, valid result', async () => {
|
|
189
|
+
// Run OUTSIDE any scope correlation: spawnShardWorker reads
|
|
190
|
+
// currentScope()?.correlation === undefined, so the spec omits `correlation`
|
|
191
|
+
// entirely. The worker must tolerate that and still produce a ShardBuildResult.
|
|
192
|
+
const out = await runShardsInParallel({
|
|
193
|
+
shards: [shard('pkg:nocorr')],
|
|
194
|
+
projectRoot: dir,
|
|
195
|
+
cliScript,
|
|
196
|
+
resolutionMode: 'exact',
|
|
197
|
+
});
|
|
198
|
+
expect(out.failures).toHaveLength(0);
|
|
199
|
+
expect(out.fragments).toHaveLength(1);
|
|
200
|
+
const snap = JSON.parse(out.fragments[0].fragment.cacheKey);
|
|
201
|
+
// GAP a: no scope correlation ⇒ the runner omits `correlation` from the spec,
|
|
202
|
+
// and the worker tolerates `spec.correlation === undefined` (no throw — proven
|
|
203
|
+
// by the valid ShardBuildResult above).
|
|
204
|
+
expect(snap.specHasCorrelation).toBe(false);
|
|
205
|
+
expect(snap.specCorrelation).toBeNull();
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
//# sourceMappingURL=shard-runner-correlation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-runner-correlation.test.js","sourceRoot":"","sources":["../../../../src/cli/orchestrate/__tests__/shard-runner-correlation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
* cache(fragment by shardId+fingerprint) (Phase 3)
|
|
21
21
|
*/
|
|
22
22
|
import type { Catalog, CrossBoundaryCall, ParseError, ResolutionMode } from '../../types.js';
|
|
23
|
+
import type { RunCorrelation } from '@opensip-cli/core';
|
|
23
24
|
/**
|
|
24
25
|
* One parallelizable unit of a sharded build. The discovery strategies
|
|
25
26
|
* (workspace units, flat-monorepo partitions) map their output onto this
|
|
@@ -62,6 +63,22 @@ export interface ShardWorkerSpec {
|
|
|
62
63
|
/** Optional adapter id requested by the parent `graph --language <id>` run. */
|
|
63
64
|
readonly language?: string;
|
|
64
65
|
readonly resolutionMode: ResolutionMode;
|
|
66
|
+
/**
|
|
67
|
+
* OPTIONAL correlation bag forwarded from the parent run so the shard worker
|
|
68
|
+
* can stamp `tool`/`parentCommand`/`traceId`/`shardId` on its spans and logs
|
|
69
|
+
* (subprocess-correlation telemetry spec, Phase 1).
|
|
70
|
+
*
|
|
71
|
+
* Wire-compat seam: this field is OPTIONAL on purpose. A mismatched
|
|
72
|
+
* parent↔worker build during a partial upgrade — an old worker reading a new
|
|
73
|
+
* spec, or a new worker reading an old spec — MUST NOT break. A required field
|
|
74
|
+
* would. If a hard contract is ever needed, version the envelope with a
|
|
75
|
+
* `specVersion` field rather than making this required.
|
|
76
|
+
*
|
|
77
|
+
* `runId` is deliberately EXCLUDED (`Omit<…, 'runId'>`): it travels via the
|
|
78
|
+
* `OPENSIP_RUN_ID` env ONLY (B1), inherited at the worker's pre-action hook
|
|
79
|
+
* before any spec JSON is parsed.
|
|
80
|
+
*/
|
|
81
|
+
readonly correlation?: Omit<RunCorrelation, 'runId'>;
|
|
65
82
|
}
|
|
66
83
|
/**
|
|
67
84
|
* The serializable result one shard worker returns. JSON-safe by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shard-model.d.ts","sourceRoot":"","sources":["../../../src/cli/orchestrate/shard-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"shard-model.d.ts","sourceRoot":"","sources":["../../../src/cli/orchestrate/shard-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,KAAK;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yGAAyG;IACzG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;CACtD;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C;AAED;kEACkE;AAClE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,kEAAkE;IAClE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC"}
|
|
@@ -16,6 +16,19 @@ import type { Shard, ShardBuildResult } from './shard-model.js';
|
|
|
16
16
|
import type { GraphLanguageAdapter } from '../../lang-adapter/types.js';
|
|
17
17
|
import type { CatalogRepo } from '../../persistence/catalog-repo.js';
|
|
18
18
|
import type { ResolutionMode } from '../../types.js';
|
|
19
|
+
/**
|
|
20
|
+
* The machine-filterable failure taxonomy for a shard worker, stamped on the
|
|
21
|
+
* parent's `graph.shard.runner.shard_failed` event (subprocess-correlation
|
|
22
|
+
* telemetry spec, Failure taxonomy). Every value is LIVE — `timeout` became
|
|
23
|
+
* emittable with the hard kill-timeout below (M3); there is no dead enum value.
|
|
24
|
+
*
|
|
25
|
+
* - `spawn` — the child process failed to spawn (`child.on('error')`).
|
|
26
|
+
* - `exit_nonzero` — the child spawned but exited with a non-zero code.
|
|
27
|
+
* - `stdout_parse` — the child exited 0 but its stdout was not valid JSON.
|
|
28
|
+
* - `timeout` — the hard kill-timeout fired and SIGKILLed a hung child.
|
|
29
|
+
* - `ipc_error` — reserved for the fork (live-engine) transport (Phase 2).
|
|
30
|
+
*/
|
|
31
|
+
export type FailureClass = 'spawn' | 'exit_nonzero' | 'stdout_parse' | 'timeout' | 'ipc_error';
|
|
19
32
|
export interface RunShardsInput {
|
|
20
33
|
readonly shards: readonly Shard[];
|
|
21
34
|
/** Common project root — every fragment's filePaths resolve against it. */
|
|
@@ -27,12 +40,29 @@ export interface RunShardsInput {
|
|
|
27
40
|
readonly resolutionMode: ResolutionMode;
|
|
28
41
|
/** Concurrency cap. Default: `max(1, cpus()-1)`. */
|
|
29
42
|
readonly concurrency?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Hard wall-clock kill-timeout (ms) after which a hung shard worker is
|
|
45
|
+
* SIGKILLed with `failureClass: 'timeout'` (M3). Defaults to
|
|
46
|
+
* {@link SHARD_HARD_KILL_TIMEOUT_MS} (10 min) — the conservative production
|
|
47
|
+
* floor. Exposed as an input ONLY so the timeout path is deterministically
|
|
48
|
+
* exercisable in tests with a short value (the resilience spec, Q3/M3, will
|
|
49
|
+
* later make it user-configurable); production never sets it.
|
|
50
|
+
*/
|
|
51
|
+
readonly hardKillTimeoutMs?: number;
|
|
30
52
|
}
|
|
31
|
-
/** A shard whose worker
|
|
53
|
+
/** A shard whose worker failed — attributable, non-fatal. */
|
|
32
54
|
export interface ShardFailure {
|
|
33
55
|
readonly shardId: string;
|
|
34
56
|
readonly exitCode: number;
|
|
57
|
+
/**
|
|
58
|
+
* The FULL captured stderr — drives the user-facing message and stays
|
|
59
|
+
* UNTRUNCATED here (M4). The parent's structured `shard_failed` event caps a
|
|
60
|
+
* separate `stderrPreview` (~500c) independently, so a long stderr is never
|
|
61
|
+
* lost from the failure surface.
|
|
62
|
+
*/
|
|
35
63
|
readonly stderr: string;
|
|
64
|
+
/** Machine-filterable failure taxonomy ({@link FailureClass}); absent on a clean exit. */
|
|
65
|
+
readonly failureClass?: FailureClass;
|
|
36
66
|
}
|
|
37
67
|
export interface RunShardsOutput {
|
|
38
68
|
readonly fragments: readonly ShardBuildResult[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shard-runner.d.ts","sourceRoot":"","sources":["../../../src/cli/orchestrate/shard-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"shard-runner.d.ts","sourceRoot":"","sources":["../../../src/cli/orchestrate/shard-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAmBH,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,cAAc,GAAG,SAAS,GAAG,WAAW,CAAC;AAgF/F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,uGAAuG;IACvG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,oDAAoD;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;CAC5C;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAoGzF;AAED,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,OAAO,EAAE,oBAAoB,EAC7B,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,OAAO,GAChB,aAAa,CA+Bf"}
|