@opensip-cli/graph 0.1.6 → 0.1.8

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 (99) hide show
  1. package/README.md +2 -2
  2. package/dist/__tests__/cli/graph-execute.test.js +7 -5
  3. package/dist/__tests__/cli/graph-execute.test.js.map +1 -1
  4. package/dist/__tests__/cli/graph.test.js +18 -12
  5. package/dist/__tests__/cli/graph.test.js.map +1 -1
  6. package/dist/__tests__/internal-surface.test.js +3 -0
  7. package/dist/__tests__/internal-surface.test.js.map +1 -1
  8. package/dist/__tests__/persistence/session-replay.test.js +7 -4
  9. package/dist/__tests__/persistence/session-replay.test.js.map +1 -1
  10. package/dist/__tests__/rules/registry.test.js +2 -2
  11. package/dist/__tests__/rules/registry.test.js.map +1 -1
  12. package/dist/__tests__/test-utils/with-graph-scope.d.ts.map +1 -1
  13. package/dist/__tests__/test-utils/with-graph-scope.js +2 -2
  14. package/dist/__tests__/test-utils/with-graph-scope.js.map +1 -1
  15. package/dist/__tests__/tool-branches.test.d.ts +3 -3
  16. package/dist/__tests__/tool-branches.test.js +25 -14
  17. package/dist/__tests__/tool-branches.test.js.map +1 -1
  18. package/dist/__tests__/tool-register.test.js +61 -77
  19. package/dist/__tests__/tool-register.test.js.map +1 -1
  20. package/dist/__tests__/tool.test.d.ts +4 -4
  21. package/dist/__tests__/tool.test.js +31 -16
  22. package/dist/__tests__/tool.test.js.map +1 -1
  23. package/dist/cli/__tests__/build-envelope.test.js +77 -0
  24. package/dist/cli/__tests__/build-envelope.test.js.map +1 -1
  25. package/dist/cli/__tests__/graph-envelope-view.test.d.ts +2 -0
  26. package/dist/cli/__tests__/graph-envelope-view.test.d.ts.map +1 -0
  27. package/dist/cli/__tests__/graph-envelope-view.test.js +97 -0
  28. package/dist/cli/__tests__/graph-envelope-view.test.js.map +1 -0
  29. package/dist/cli/__tests__/graph-list.test.d.ts +2 -0
  30. package/dist/cli/__tests__/graph-list.test.d.ts.map +1 -0
  31. package/dist/cli/__tests__/graph-list.test.js +20 -0
  32. package/dist/cli/__tests__/graph-list.test.js.map +1 -0
  33. package/dist/cli/__tests__/shard-worker.test.js +22 -0
  34. package/dist/cli/__tests__/shard-worker.test.js.map +1 -1
  35. package/dist/cli/equivalence-check-command.d.ts.map +1 -1
  36. package/dist/cli/equivalence-check-command.js +0 -2
  37. package/dist/cli/equivalence-check-command.js.map +1 -1
  38. package/dist/cli/graph/graph-aux-command-specs.d.ts +54 -27
  39. package/dist/cli/graph/graph-aux-command-specs.d.ts.map +1 -1
  40. package/dist/cli/graph/graph-aux-command-specs.js +359 -265
  41. package/dist/cli/graph/graph-aux-command-specs.js.map +1 -1
  42. package/dist/cli/graph-envelope-view.d.ts +41 -0
  43. package/dist/cli/graph-envelope-view.d.ts.map +1 -0
  44. package/dist/cli/graph-envelope-view.js +133 -0
  45. package/dist/cli/graph-envelope-view.js.map +1 -0
  46. package/dist/cli/graph-list.d.ts +29 -0
  47. package/dist/cli/graph-list.d.ts.map +1 -0
  48. package/dist/cli/graph-list.js +44 -0
  49. package/dist/cli/graph-list.js.map +1 -0
  50. package/dist/cli/graph-report.d.ts +16 -6
  51. package/dist/cli/graph-report.d.ts.map +1 -1
  52. package/dist/cli/graph-report.js +10 -6
  53. package/dist/cli/graph-report.js.map +1 -1
  54. package/dist/cli/graph-runner.d.ts.map +1 -1
  55. package/dist/cli/graph-runner.js +23 -10
  56. package/dist/cli/graph-runner.js.map +1 -1
  57. package/dist/cli/graph-worker.d.ts.map +1 -1
  58. package/dist/cli/graph-worker.js +1 -0
  59. package/dist/cli/graph-worker.js.map +1 -1
  60. package/dist/cli/graph.d.ts.map +1 -1
  61. package/dist/cli/graph.js +30 -25
  62. package/dist/cli/graph.js.map +1 -1
  63. package/dist/cli/lookup.d.ts.map +1 -1
  64. package/dist/cli/lookup.js +0 -2
  65. package/dist/cli/lookup.js.map +1 -1
  66. package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.d.ts +22 -0
  67. package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.d.ts.map +1 -0
  68. package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.js +208 -0
  69. package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.js.map +1 -0
  70. package/dist/cli/orchestrate/shard-model.d.ts +17 -0
  71. package/dist/cli/orchestrate/shard-model.d.ts.map +1 -1
  72. package/dist/cli/orchestrate/shard-runner.d.ts +31 -1
  73. package/dist/cli/orchestrate/shard-runner.d.ts.map +1 -1
  74. package/dist/cli/orchestrate/shard-runner.js +215 -11
  75. package/dist/cli/orchestrate/shard-runner.js.map +1 -1
  76. package/dist/cli/orchestrate/sharded-graph.d.ts.map +1 -1
  77. package/dist/cli/orchestrate/sharded-graph.js +32 -3
  78. package/dist/cli/orchestrate/sharded-graph.js.map +1 -1
  79. package/dist/cli/shard-worker.d.ts.map +1 -1
  80. package/dist/cli/shard-worker.js +127 -11
  81. package/dist/cli/shard-worker.js.map +1 -1
  82. package/dist/cli/symbol-index.d.ts.map +1 -1
  83. package/dist/cli/symbol-index.js +0 -2
  84. package/dist/cli/symbol-index.js.map +1 -1
  85. package/dist/internal.d.ts +1 -0
  86. package/dist/internal.d.ts.map +1 -1
  87. package/dist/internal.js +5 -0
  88. package/dist/internal.js.map +1 -1
  89. package/dist/persistence/schema.d.ts.map +1 -1
  90. package/dist/persistence/schema.js +18 -0
  91. package/dist/persistence/schema.js.map +1 -1
  92. package/dist/persistence/session-replay.d.ts +9 -4
  93. package/dist/persistence/session-replay.d.ts.map +1 -1
  94. package/dist/persistence/session-replay.js +8 -12
  95. package/dist/persistence/session-replay.js.map +1 -1
  96. package/dist/tool.d.ts.map +1 -1
  97. package/dist/tool.js +37 -118
  98. package/dist/tool.js.map +1 -1
  99. package/package.json +22 -26
@@ -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;AA4JD,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"}
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 `graph-done`
305
- * result to the render seam (Ink on TTY, plain text in pipes/CI): graph's
306
- * report is richer than the neutral per-unit table it carries the verbose
307
- * catalog/findings/entry-point body as `verboseDetail` ({kind:'lines'},
308
- * ADR-0021), a fast-tier caveat (`resolutionBanner`), and the one-line
309
- * PASS/FAIL `summary`; the non-verbose footer hints are emitted by the shared
310
- * seam (`graphDoneView`). The summary counts are derived from the envelope's
311
- * verdict so `--json` and the human report agree; the envelope itself is NOT
312
- * carried on the result (it would route to the neutral unit table and drop
313
- * graph's body), but IS returned for the composition root's cloud +
314
- * `--report-to` delivery.
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.table.start', module: MODULE_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 (`graphDoneView`).
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
- const { summary } = envelope.verdict;
350
- const done = {
351
- type: 'graph-done',
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(done);
367
+ await cli.render(presentation);
363
368
  logger.info({
364
- evt: 'graph.render.table.complete',
369
+ evt: 'graph.render.presentation.complete',
365
370
  module: MODULE_GRAPH_RENDER,
366
371
  });
367
372
  return envelope;
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/cli/graph.ts"],"names":[],"mappings":"AAAA,yQAAyQ;AACzQ,iLAAiL;AACjL,kUAAkU;AAClU,oJAAoJ;AACpJ,gHAAgH;AAChH,4MAA4M;AAC5M,+QAA+Q;AAC/Q;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACN,SAAS,EACT,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAyB,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAuB,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAatE,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AACtD,MAAM,gBAAgB,GAAG,WAAW,CAAC;AACrC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAyB,EACzB,GAAmB;IAEnB,2EAA2E;IAC3E,8EAA8E;IAC9E,kEAAkE;IAClE,MAAM,mBAAmB,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrD,MAAM,SAAS,GAAW,mBAAmB,CAAC;IAC9C,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAEhE,MAAM,CAAC,IAAI,CAAC;QACV,GAAG,EAAE,uBAAuB;QAC5B,MAAM,EAAE,gBAAgB;QACxB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,uEAAuE;QACvE,4EAA4E;QAC5E,4EAA4E;QAC5E,sCAAsC;QACtC,eAAe,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KAC3D,CAAC,CAAC;IACH,8EAA8E;IAC9E,0EAA0E;IAC1E,yEAAyE;IACzE,+EAA+E;IAC/E,8EAA8E;IAC9E,wEAAwE;IACxE,+EAA+E;IAC/E,6EAA6E;IAC7E,gEAAgE;IAChE,8BAA8B;IAC9B,YAAY,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE;QAC5E,eAAe,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KAC3D,CAAC,CAAC;IACH,sFAAsF;IACtF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,2EAA2E;QAC3E,2EAA2E;QAC3E,gDAAgD;QAChD,uEAAuE;QACvE,8EAA8E;QAC9E,4EAA4E;QAC5E,uEAAuE;QACvE,uDAAuD;QACvD,MAAM,eAAe,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,oBAAoB,CAAC,eAAe,CAAC,IAAI,EAAE;YACvD,QAAQ,EAAE,eAAe,CAAC,QAAQ;SACnC,CAAC,CAAC;QACH,yEAAyE;QACzE,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,6EAA6E;QAC7E,mEAAmE;QAClE,IAA4B,CAAC,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC;QAC5D,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAChE,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,qBAAqB,CACzC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAC5D,IAAI,CAAC,eAAe,CACrB,CAAC;YACF,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAC1C,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAC7D,IAAI,CAAC,eAAe,CACrB,CAAC;QACF,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wFAAwF;AACxF,SAAS,WAAW,CAAC,IAAyB;IAC5C,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC;IAChD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IACvD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAyB,EACzB,SAAiB;IAEjB,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9E,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,mBAAmB,CAAC;QAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;QACvB,cAAc,EAAE,IAAI,CAAC,UAAU;QAC/B,SAAS;KACV,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAAyB,EACzB,OAAwC;IAExC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO;IAClC,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACtF,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpF,MAAM,CAAC,IAAI,CAAC;QACV,GAAG,EAAE,8BAA8B;QACnC,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,OAAO;KAChB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAClB,IAAyB,EACzB,MAAsB,EACtB,UAAkB;IAElB,OAAO,kBAAkB,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;QAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,UAAU;QACV,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,cAAc;KAC/C,CAAC,CAAC;AACL,CAAC;AAED,2EAA2E;AAC3E,6EAA6E;AAC7E,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,6EAA6E;AAC7E,gFAAgF;AAChF,8CAA8C;AAC9C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAyB,EACzB,SAAyB,EACzB,GAAmB,EACnB,SAAiB,EACjB,eAAuB;IAEvB,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,0BAA0B;IAC1B,EAAE;IACF,yEAAyE;IACzE,6EAA6E;IAC7E,sEAAsE;IACtE,4EAA4E;IAC5E,yEAAyE;IACzE,2EAA2E;IAC3E,2EAA2E;IAC3E,0CAA0C;IAC1C,+EAA+E;IAC/E,0EAA0E;IAC1E,mEAAmE;IACnE,8EAA8E;IAC9E,+EAA+E;IAC/E,uBAAuB;IACvB,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACjF,OAAO,kBAAkB,CACvB,IAAI,EACJ,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,EAC5C,GAAG,EACH,SAAS,EACT,SAAS,CACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,kBAAkB,CAC/B,IAAyB,EACzB,MAAsB,EACtB,GAAmB,EACnB,SAAiB,EACjB,SAA2B;IAE3B,MAAM,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACnE,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QACxD,4EAA4E;QAC5E,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,iEAAiE;QACjE,qDAAqD;QACrD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,kBAAkB;YACvB,MAAM,EAAE,gBAAgB;YACxB,UAAU,EAAE,eAAe;SAC5B,CAAC,CAAC;QACH,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5E,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,kBAAkB;YACvB,MAAM,EAAE,gBAAgB;YACxB,UAAU,EAAE,eAAe;SAC5B,CAAC,CAAC;QACH,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;IAC7D,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACvE,4EAA4E;IAC5E,qBAAqB;IACrB,+DAA+D;IAC/D,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,yEAAyE;IACzE,6EAA6E;IAC7E,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACjF,MAAM,OAAO,GACX,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjG,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,CAAC,IAAI,CAAC;QACV,GAAG,EAAE,kBAAkB;QACvB,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;QAC9B,UAAU,EAAE,eAAe;KAC5B,CAAC,CAAC;IACH,2EAA2E;IAC3E,wEAAwE;IACxE,yEAAyE;IACzE,8EAA8E;IAC9E,kDAAkD;IAClD,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACxF,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,iBAAiB,CAC9B,IAAyB,EACzB,MAAsB,EACtB,SAAiB,EACjB,GAAmB;IAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,yBAAyB;YAC9B,MAAM,EAAE,mBAAmB;SAC5B,CAAC,CAAC;QACH,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,4BAA4B;YACjC,MAAM,EAAE,mBAAmB;SAC5B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,0BAA0B,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;IACtC,+EAA+E;IAC/E,gFAAgF;IAChF,wEAAwE;IACxE,sEAAsE;IACtE,MAAM,aAAa,GAA8B,OAAO;QACtD,CAAC,CAAC;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,uBAAuB,CAC5B;gBACE,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,EACD,EAAE,cAAc,EAAE,KAAK,EAAE,CAC1B;SACF;QACH,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IACrC,MAAM,IAAI,GAAoB;QAC5B,IAAI,EAAE,YAAY;QAClB,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;QACzD,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC;QAC/D,OAAO,EAAE;YACP,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B;QACD,UAAU;KACX,CAAC;IACF,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,CAAC,IAAI,CAAC;QACV,GAAG,EAAE,6BAA6B;QAClC,MAAM,EAAE,mBAAmB;KAC5B,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,KAAc,EAAE,GAAmB;IACjF,MAAM,CAAC,KAAK,CAAC;QACX,GAAG,EAAE,aAAa,KAAK,QAAQ;QAC/B,MAAM,EAAE,gBAAgB;QACxB,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAC5D,CAAC,CAAC;IACH,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;QACxC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,qBAAqB;QACrB,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;YAChD,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;YACtC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC5C,CAAC;QACD,oBAAoB;IACtB,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChG,CAAC;AAED,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/cli/graph.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/cli/lookup.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;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"}
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"}
@@ -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
  *
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/cli/lookup.ts"],"names":[],"mappings":"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"}
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;AAE7F;;;;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;CACzC;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"}
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 exited non-zero — attributable, non-fatal. */
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;AAcH,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;AAErD,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;CAC/B;AAED,sEAAsE;AACtE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;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,CAoCzF;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,CA2Bf"}
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"}