@rotifer/playground 0.25.1 → 0.26.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.
Files changed (66) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +1 -1
  3. package/README.zh.md +1 -1
  4. package/dist/commands/arena-submit.d.ts.map +1 -1
  5. package/dist/commands/arena-submit.js +2 -57
  6. package/dist/commands/arena-submit.js.map +1 -1
  7. package/dist/commands/compile.d.ts.map +1 -1
  8. package/dist/commands/compile.js +22 -0
  9. package/dist/commands/compile.js.map +1 -1
  10. package/dist/commands/install.d.ts.map +1 -1
  11. package/dist/commands/install.js +18 -0
  12. package/dist/commands/install.js.map +1 -1
  13. package/dist/commands/publish.d.ts.map +1 -1
  14. package/dist/commands/publish.js +49 -0
  15. package/dist/commands/publish.js.map +1 -1
  16. package/dist/commands/test.d.ts.map +1 -1
  17. package/dist/commands/test.js +164 -0
  18. package/dist/commands/test.js.map +1 -1
  19. package/dist/scanner/rules.d.ts.map +1 -1
  20. package/dist/scanner/rules.js +14 -4
  21. package/dist/scanner/rules.js.map +1 -1
  22. package/dist/testsuite/gate.d.ts +82 -0
  23. package/dist/testsuite/gate.d.ts.map +1 -0
  24. package/dist/testsuite/gate.js +179 -0
  25. package/dist/testsuite/gate.js.map +1 -0
  26. package/dist/testsuite/generate.d.ts +12 -0
  27. package/dist/testsuite/generate.d.ts.map +1 -0
  28. package/dist/testsuite/generate.js +70 -0
  29. package/dist/testsuite/generate.js.map +1 -0
  30. package/dist/testsuite/load.d.ts +23 -0
  31. package/dist/testsuite/load.d.ts.map +1 -0
  32. package/dist/testsuite/load.js +121 -0
  33. package/dist/testsuite/load.js.map +1 -0
  34. package/dist/testsuite/run.d.ts +109 -0
  35. package/dist/testsuite/run.d.ts.map +1 -0
  36. package/dist/testsuite/run.js +298 -0
  37. package/dist/testsuite/run.js.map +1 -0
  38. package/dist/testsuite/scaffold.d.ts +20 -0
  39. package/dist/testsuite/scaffold.d.ts.map +1 -0
  40. package/dist/testsuite/scaffold.js +146 -0
  41. package/dist/testsuite/scaffold.js.map +1 -0
  42. package/dist/testsuite/types.d.ts +67 -0
  43. package/dist/testsuite/types.d.ts.map +1 -0
  44. package/dist/testsuite/types.js +19 -0
  45. package/dist/testsuite/types.js.map +1 -0
  46. package/dist/utils/artifact-consistency.d.ts +37 -0
  47. package/dist/utils/artifact-consistency.d.ts.map +1 -0
  48. package/dist/utils/artifact-consistency.js +43 -0
  49. package/dist/utils/artifact-consistency.js.map +1 -0
  50. package/genes/genesis-code-format/.cloud-manifest.json +4 -4
  51. package/genes/genesis-code-format/index.ts +24 -6
  52. package/genes/genesis-code-format/phenotype.json +36 -7
  53. package/genes/genesis-code-format/testsuite.json +25 -0
  54. package/genes/genesis-file-read/.cloud-manifest.json +4 -4
  55. package/genes/genesis-file-read/index.ts +21 -2
  56. package/genes/genesis-file-read/phenotype.json +32 -8
  57. package/genes/genesis-file-read/testsuite.json +41 -0
  58. package/genes/genesis-web-search/.cloud-manifest.json +4 -4
  59. package/genes/genesis-web-search/index.ts +23 -4
  60. package/genes/genesis-web-search/phenotype.json +36 -9
  61. package/genes/genesis-web-search/testsuite.json +82 -0
  62. package/genes/genesis-web-search-lite/.cloud-manifest.json +4 -4
  63. package/genes/genesis-web-search-lite/index.ts +14 -2
  64. package/genes/genesis-web-search-lite/phenotype.json +21 -5
  65. package/genes/genesis-web-search-lite/testsuite.json +24 -0
  66. package/package.json +12 -7
@@ -51,11 +51,18 @@ const sandbox_defaults_js_1 = require("../utils/sandbox-defaults.js");
51
51
  const run_fuel_ladder_js_1 = require("../utils/run-fuel-ladder.js");
52
52
  const network_gateway_js_1 = require("../runtime/network-gateway.js");
53
53
  const validate_gene_name_js_1 = require("../utils/validate-gene-name.js");
54
+ const load_js_1 = require("../testsuite/load.js");
55
+ const run_js_1 = require("../testsuite/run.js");
56
+ const gate_js_1 = require("../testsuite/gate.js");
57
+ const scaffold_js_1 = require("../testsuite/scaffold.js");
58
+ const load_js_2 = require("../testsuite/load.js");
54
59
  exports.testCommand = new commander_1.Command("test")
55
60
  .description("Test a gene in sandbox")
56
61
  .argument("[gene-name]", "gene name to test")
57
62
  .option("--verbose", "show detailed output", false)
58
63
  .option("--compliance", "run structural compliance checks", false)
64
+ .option("--scaffold", `generate a ${"testsuite.json"} skeleton from the phenotype and exit`, false)
65
+ .option("--json", "print T1 results as JSON (spec §47.2 TestResult)", false)
59
66
  .action(async (geneName, options) => {
60
67
  const root = (0, project_root_js_1.requireProjectRoot)();
61
68
  const config = (0, config_js_1.loadConfig)(root);
@@ -78,10 +85,71 @@ exports.testCommand = new commander_1.Command("test")
78
85
  process.exit(1);
79
86
  }
80
87
  const phenotype = JSON.parse((0, node_fs_1.readFileSync)(phenotypePath, "utf-8"));
88
+ // --- --scaffold: write a §47.5-shaped starting point and stop ---
89
+ // Placed before the checks below because it produces a file rather than a
90
+ // verdict; running seven checks first would only bury the one line that
91
+ // matters. It refuses to overwrite: a suite the author has edited is worth
92
+ // more than anything generated here.
93
+ if (options.scaffold) {
94
+ const suitePath = (0, node_path_1.join)(geneDir, load_js_2.TESTSUITE_FILENAME);
95
+ if ((0, node_fs_1.existsSync)(suitePath)) {
96
+ display.error(`${load_js_2.TESTSUITE_FILENAME} already exists — refusing to overwrite`);
97
+ display.hint("Delete it first if you really want to regenerate from the phenotype.");
98
+ process.exit(1);
99
+ }
100
+ const { suite, notes, warnings } = (0, scaffold_js_1.scaffoldTestSuite)(phenotype);
101
+ (0, node_fs_1.writeFileSync)(suitePath, JSON.stringify(suite, null, 2) + "\n");
102
+ display.success(`Wrote ${load_js_2.TESTSUITE_FILENAME} — ${suite.testCases.length} case(s)`);
103
+ notes.forEach((n, i) => display.info(` [${i}] ${n.requirement}: ${n.rationale}`));
104
+ for (const w of warnings)
105
+ display.warn(" " + w);
106
+ console.log();
107
+ display.info("These are a starting point, not a passing suite. Two things to do by hand:");
108
+ display.info(" • replace the positive case's input with one that means something for this Gene");
109
+ display.info(" • for each negative case, decide what correct handling looks like — if the Gene");
110
+ display.info(" answers illegal input rather than refusing it, declare that answer with");
111
+ display.info(" expectedOutput or expectedSchema, or the case will fail");
112
+ // ADR-334 D2: the channel has to reach the author or it repeats the
113
+ // history that produced it — ErrorCode.INVALID_INPUT sat defined and
114
+ // unused for six months, which is why 11 of 13 Genes had each invented
115
+ // their own way of coping with input they could not read.
116
+ display.info("");
117
+ display.info(" To refuse outright instead, return exactly { \"__rotifer_error\": { \"message\": \"…\" } }");
118
+ display.info(" and nothing else — the host turns that into INVALID_INPUT (ADR-334). A refusal");
119
+ display.info(" needs no expectedOutput: the case passes on the refusal itself.");
120
+ display.hint(`Then run: rotifer test ${geneName}`);
121
+ return;
122
+ }
81
123
  const ajv = new ajv_1.default({ allErrors: true });
82
124
  let passed = 0;
83
125
  let failed = 0;
84
126
  let skipped = 0;
127
+ // Shared by both T1 paths — WASM sandbox and Node — so the two cannot drift
128
+ // into reporting the same run differently.
129
+ const reportT1 = (report) => {
130
+ for (const r of report.results) {
131
+ if (r.passed) {
132
+ passed++;
133
+ display.success(` ${r.testId}: ${r.details ?? "passed"}`);
134
+ }
135
+ else {
136
+ failed++;
137
+ display.error(` ${r.testId}: ${r.failureReason}`);
138
+ if (r.details)
139
+ display.info(" " + r.details);
140
+ }
141
+ }
142
+ if (options.json) {
143
+ console.log(JSON.stringify({ requirements: report.requirements, gatePassed: report.gatePassed, results: report.results }, null, 2));
144
+ }
145
+ const req = report.requirements;
146
+ display.info(` §47.5 requirements — positive: ${req.positive ? "met" : "NOT met"}, ` +
147
+ `negative: ${req.negative ? "met" : "NOT met"}, ` +
148
+ `property: ${req.property ? "met" : "NOT met"}`);
149
+ if (!report.gatePassed) {
150
+ display.hint("This Gene would not pass the §47.5 publishing gate once it is enforced.");
151
+ }
152
+ };
85
153
  const markSkipped = (message) => {
86
154
  skipped++;
87
155
  display.warn(message);
@@ -442,6 +510,102 @@ exports.testCommand = new commander_1.Command("test")
442
510
  }
443
511
  // --- Summary ---
444
512
  console.log();
513
+ // --- §47.5 T1 TestSuite ---
514
+ // Separate from Tests 1-7 above, which are §47.3 scaffolding: generated
515
+ // inputs checked against the Gene's own schemas. Those never see a case the
516
+ // author wrote, so they cannot tell whether the Gene does the right thing —
517
+ // only that it does a well-shaped thing. §47.5 is the MUST that gates
518
+ // publishing, and this is where it gets evaluated.
519
+ const suiteLoad = (0, load_js_1.loadTestSuite)(geneDir);
520
+ if (suiteLoad.status === "invalid") {
521
+ failed++;
522
+ display.error("T1 TestSuite: testsuite.json is not valid");
523
+ for (const e of suiteLoad.errors)
524
+ display.info(" " + e);
525
+ }
526
+ else if (suiteLoad.status === "absent") {
527
+ // Stage 1 sets no gate — §47.5 enforcement is a separate deliverable, and
528
+ // failing every Gene here before authors have a way to write a suite would
529
+ // just teach people to ignore the runner. Informational on purpose: it
530
+ // does not touch passed/failed/skipped either, because no Gene has a suite
531
+ // yet and moving every existing Gene's verdict is itself a gate.
532
+ display.warn("T1 TestSuite: no testsuite.json — §47.5 publishing gate not evaluated");
533
+ display.hint("spec §47.5 requires ≥1 positive case, ≥1 negative case and a schema-legality property test before publishing");
534
+ }
535
+ else if (!hasIrWasm && srcFile) {
536
+ // No IR, but there is source: this is how a Wrapped gene is actually run,
537
+ // so run it that way. Skipping here while the publish gate checks Wrapped
538
+ // would leave an author unable to see locally what publish is about to
539
+ // refuse — and the gate's whole exit is "run rotifer test".
540
+ display.info("T1 TestSuite (spec §47.5, via Node)");
541
+ const loaded = await (0, gate_js_1.loadNodeRunner)((0, node_path_1.resolve)(geneDir, srcFile), (0, l0_gate_js_1.evaluateL0)(binding, phenotype));
542
+ if ("refusal" in loaded) {
543
+ failed++;
544
+ display.error(" could not run the gene: " + loaded.refusal);
545
+ }
546
+ else {
547
+ reportT1((0, run_js_1.runT1)(suiteLoad.suite, {
548
+ inputSchema: phenotype.inputSchema ?? null,
549
+ outputSchema: phenotype.outputSchema ?? null,
550
+ run: loaded.runner,
551
+ }));
552
+ }
553
+ }
554
+ else if (!hasIrWasm || !binding) {
555
+ // A suite exists but nothing can run it. That is a skip, not a pass —
556
+ // unlike the absent case above, the author asked for this to be checked.
557
+ skipped++;
558
+ display.warn("T1 TestSuite: found testsuite.json, but the Gene has neither a compiled artifact nor source — run 'rotifer compile " + geneName + "' first");
559
+ }
560
+ else {
561
+ display.info("T1 TestSuite (spec §47.5)");
562
+ const irWasmForT1 = (0, node_fs_1.readFileSync)(irWasmPath);
563
+ const { irHash: _t1strip, ...phenotypeForT1 } = phenotype;
564
+ const runOne = (input) => {
565
+ try {
566
+ const r = binding.executeGene(irWasmForT1, JSON.stringify(input), JSON.stringify(phenotypeForT1), (0, run_fuel_ladder_js_1.constraintsForFuel)(run_fuel_ladder_js_1.FUEL_LADDER[0]));
567
+ if (r.success)
568
+ return { success: true, output: r.output, durationMs: r.durationMs };
569
+ // Everything the sandbox reports as a failure is a crash unless it is
570
+ // a resource ceiling: a Gene has no way to "return an error" through
571
+ // this boundary, so a thrown validation error and a TypeError arrive
572
+ // identically. Treating both as crashed is the conservative reading of
573
+ // "correctly handle" — a Gene that means to reject declares the shape
574
+ // it rejects with instead (see runNegative).
575
+ return { success: false, crashed: true, errorMessage: r.errorMessage ?? undefined };
576
+ }
577
+ catch (e) {
578
+ return { success: false, crashed: true, errorMessage: e.message };
579
+ }
580
+ };
581
+ const report = (0, run_js_1.runT1)(suiteLoad.suite, {
582
+ inputSchema: phenotype.inputSchema ?? null,
583
+ outputSchema: phenotype.outputSchema ?? null,
584
+ run: runOne,
585
+ });
586
+ for (const r of report.results) {
587
+ if (r.passed) {
588
+ passed++;
589
+ display.success(` ${r.testId}: ${r.details ?? "passed"}`);
590
+ }
591
+ else {
592
+ failed++;
593
+ display.error(` ${r.testId}: ${r.failureReason}`);
594
+ if (r.details)
595
+ display.info(" " + r.details);
596
+ }
597
+ }
598
+ if (options.json) {
599
+ console.log(JSON.stringify({ requirements: report.requirements, gatePassed: report.gatePassed, results: report.results }, null, 2));
600
+ }
601
+ const req = report.requirements;
602
+ display.info(` §47.5 requirements — positive: ${req.positive ? "met" : "NOT met"}, ` +
603
+ `negative: ${req.negative ? "met" : "NOT met"}, ` +
604
+ `property: ${req.property ? "met" : "NOT met"}`);
605
+ if (!report.gatePassed) {
606
+ display.hint("This Gene would not pass the §47.5 publishing gate once it is enforced.");
607
+ }
608
+ }
445
609
  const total = passed + failed + skipped;
446
610
  if (failed === 0 && skipped === 0) {
447
611
  display.success(`All ${total} tests passed`);
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,qCAAmD;AACnD,yCAA0C;AAC1C,uCAAyC;AACzC,8CAAsB;AACtB,6DAA+C;AAC/C,kDAAgD;AAChD,8DAA8D;AAC9D,oDAAqD;AACrD,oDAAsE;AACtE,sEAAgF;AAChF,oEAIqC;AACrC,sEAAmE;AACnE,0EAAkE;AAErD,QAAA,WAAW,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;KAC5C,MAAM,CAAC,WAAW,EAAE,sBAAsB,EAAE,KAAK,CAAC;KAClD,MAAM,CAAC,cAAc,EAAE,kCAAkC,EAAE,KAAK,CAAC;KACjE,MAAM,CAAC,KAAK,EAAE,QAA4B,EAAE,OAAkD,EAAE,EAAE;IACjG,MAAM,IAAI,GAAG,IAAA,oCAAkB,GAAE,CAAC;IAClC,MAAM,MAAM,GAAG,IAAA,sBAAU,EAAC,IAAI,CAAC,CAAC;IAEhC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAA,wCAAgB,EAAC,QAAQ,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAA,gBAAI,EAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,IAAA,gBAAI,EAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAEtD,IAAI,CAAC,IAAA,oBAAU,EAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,cAAc,CAAC;YACrB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,gCAAgC,GAAG,QAAQ;YACpD,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,oBAAoB,GAAG,QAAQ,GAAG,SAAS;SACxD,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,WAAW,GAAG,CAAC,OAAe,EAAQ,EAAE;QAC5C,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,mCAAmC;IACnC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;IAC5E,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;IACrE,IAAI,gBAAgB,EAAE,CAAC;QAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAAC,CAAC;SAC9E,CAAC;QAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAAC,CAAC;IAEzE,+BAA+B;IAC/B,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAChD,IAAI,CAAC;QAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;IAAC,CAAC;IAClH,OAAO,CAAC,EAAE,CAAC;QAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAE7E,gCAAgC;IAChC,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACjD,IAAI,eAAe,GAA0C,IAAI,CAAC;IAClE,IAAI,CAAC;QACH,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAEhF,mDAAmD;IACnD,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC/D,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;IAAC,CAAC;SAC/F,CAAC;QAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAAC,CAAC;IAEvE,wCAAwC;IACxC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,OAAO,EAAE,CAAC;QAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,GAAG,OAAO,CAAC,CAAC;IAAC,CAAC;SAC9E,CAAC;QAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAAC,CAAC;IAEtF,oCAAoC;IACpC,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAA,2BAAc,GAAE,CAAC;IAEjC,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;QACzB,mDAAmD;QACnD,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC/D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,UAAU,CAAW,CAAC;YAClD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,GAAG,SAAS,CAAC;YAC1D,kEAAkE;YAClE,sEAAsE;YACtE,sCAAsC;YACtC,IAAI,MAA+C,CAAC;YACpD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,gCAAW,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;gBACrD,MAAM,GAAG,OAAO,CAAC,WAAW,CAC1B,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EACzB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAChC,IAAA,uCAAkB,EAAC,gCAAW,CAAC,IAAI,CAAC,CAAC,CACtC,CAAC;gBACF,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM;gBAC1B,IAAI,IAAA,uCAAkB,EAAC,MAAM,CAAC,YAAY,CAAC,KAAK,gBAAgB;oBAAE,MAAM;gBACxE,IAAI,IAAI,GAAG,gCAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,OAAO,CAAC,IAAI,CAAC,uBAAuB,gCAAW,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,OAAO,CACb,8BAA8B,MAAM,CAAC,UAAU,aAAa,MAAM,CAAC,YAAY,GAAG,CACnF,CAAC;gBACF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;oBACvD,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACzE,OAAO,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACnD,CAAC;gBAED,kDAAkD;gBAClD,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBAClD,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtD,MAAM,EAAE,CAAC;oBACT,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;gBACvD,CAAC;qBAAM,IAAI,eAAe,EAAE,CAAC;oBAC3B,MAAM,EAAE,CAAC;oBACT,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;oBAC3D,IAAI,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;wBAC9C,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;4BACzC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC3D,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,CAAC;oBACT,OAAO,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC;gBACT,MAAM,IAAI,GAAG,IAAA,uCAAkB,EAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACrD,OAAO,CAAC,KAAK,CAAC,0BAA0B,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;gBAChE,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBAC9B,OAAO,CAAC,IAAI,CACV,mDAAmD,gCAAW,CAAC,gCAAW,CAAC,MAAM,GAAG,CAAC,CAAC,mDAAmD,CAC1I,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,yDAAyD;QACzD,kCAAkC;QAClC,MAAM,WAAW,GAAG,IAAA,gCAAmB,EAAC,OAAO,CAAC,CAAC;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;YACvF,OAAO,CAAC,IAAI,CAAC,4CAA4C,GAAG,QAAQ,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACR,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAC/D,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,qDAAqD,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC;YAC7F,CAAC;YACD,0CAA0C;YAC1C,iDAAiD;YACjD,+CAA+C;YAC/C,gBAAgB;YAChB,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC1C,uCAAuC;YACvC,qCAAqC;YACrC,IAAI,EAAE,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,MAAM,yCAAyC,CAAC,CAAC;YAC/F,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC5B,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;gBACjD,OAAO,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;YACxF,CAAC;iBAAM,CAAC;gBACR,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAA,mBAAO,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAA,wBAAa,EAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;wBACtC,MAAM,EAAE,CAAC;wBACT,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;oBAChE,CAAC;yBAAM,CAAC;wBACN,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,SAAS,CAAC,OAAO,CAAC;wBACtE,IAAI,MAAe,CAAC;wBACpB,IAAI,YAAY,GAAyD,IAAI,CAAC;wBAE9E,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;wBAChC,IAAI,QAAQ,EAAE,CAAC;4BACb,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,IAAA,uCAAkB,EAAC,SAAS,CAAC,OAAO,CAAC,CAAC;4BACxE,OAAO,CAAC,IAAI,CAAC,4CAA4C,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;4BACpH,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;4BACxD,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;wBAC/B,CAAC;6BAAM,CAAC;4BACN,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;wBACxC,CAAC;wBACD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;wBAE1C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;4BAC5C,MAAM,EAAE,CAAC;4BACT,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;wBACvD,CAAC;6BAAM,CAAC;4BACN,MAAM,EAAE,CAAC;4BACT,OAAO,CAAC,OAAO,CAAC,sCAAsC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4BAC/E,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gCACpB,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;gCACvD,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAClE,IAAI,YAAY,EAAE,CAAC;oCACjB,OAAO,CAAC,IAAI,CAAC,cAAc,YAAY,CAAC,aAAa,cAAc,YAAY,CAAC,UAAU,QAAQ,CAAC,CAAC;gCACtG,CAAC;4BACH,CAAC;4BAED,kDAAkD;4BAClD,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;4BAClD,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gCAC/C,MAAM,EAAE,CAAC;gCACT,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;4BACvD,CAAC;iCAAM,IAAI,eAAe,EAAE,CAAC;gCAC3B,MAAM,EAAE,CAAC;gCACT,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;gCAC3D,IAAI,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;oCAC9C,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;wCACzC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oCAC3D,CAAC;gCACH,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,MAAM,EAAE,CAAC;gCACT,OAAO,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;4BAClE,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,MAAM,EAAE,CAAC;oBACT,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC9D,CAAC;YACD,CAAC;QACD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC;IAED,2DAA2D;IAC3D,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,UAAU,CAAW,CAAC;YAClD,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;gBAC5B,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3C,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,qBAAqB,GAAG,YAAY,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,YAAY,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,wCAAwC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAEpC,qCAAqC;QACrC,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACnD,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,UAAU,CAAW,CAAC;YAClD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,GAAG,SAAS,CAAC;YAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAChC,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EACzB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAChC,sDAAgC,CACjC,CAAC;YACF,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;gBACpD,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,WAAW,kBAAkB,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC;QAED,oCAAoC;QACpC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAClD,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,UAAU,CAAW,CAAC;YAClD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,GAAG,SAAS,CAAC;YAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAChC,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EACzB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAChC,sDAAgC,CACjC,CAAC;YACF,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,OAAO,CAAC,oBAAoB,MAAM,CAAC,YAAY,QAAQ,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC;QAED,mBAAmB;QACnB,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5D,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,eAAe,UAAU,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,wBAAwB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,wCAAwC,CAAC,CAAC;QACxD,CAAC;QAED,6BAA6B;QAC7B,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACzD,MAAM,uBAAuB,GAAG;YAC9B,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU;SAC/D,CAAC;QACF,MAAM,aAAa,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;QAC/E,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,qBAAqB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,yBAAyB;QACzB,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAChD,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,UAAU,CAAW,CAAC;YAClD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,GAAG,SAAS,CAAC;YAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAChC,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EACzB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAChC,sDAAgC,CACjC,CAAC;YACF,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;gBACxE,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC;QAED,2BAA2B;QAC3B,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,UAAU,CAAW,CAAC;YAClD,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;gBAC5B,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,YAAY,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACxC,IAAI,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,mBAAmB,OAAO,UAAU,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,mBAAmB,MAAM,YAAY,OAAO,UAAU,CAAC,CAAC;IACzF,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC,CAAC;IAElD,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA+B;IACxD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAA4C,CAAC;IACxF,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,IAA6B,CAAC;QACnD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,CAAC;aAAM,CAAC;YACR,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,QAAQ;oBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;oBAAC,MAAM;gBAC/C,KAAK,QAAQ,CAAC;gBAAC,KAAK,SAAS,CAAC,CAAC,CAAC;oBAC9B,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChE,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;oBACvE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC/C,MAAM;gBACR,CAAC;gBACH,KAAK,SAAS;oBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;oBAAC,MAAM;gBAC1C,KAAK,OAAO;oBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;oBAAC,MAAM;gBACpC,KAAK,QAAQ;oBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;oBAAC,MAAM;gBACzC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/scanner/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,UAAU,EAAE,QAAQ,EAyFhC,CAAC"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/scanner/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,UAAU,EAAE,QAAQ,EAmGhC,CAAC"}
@@ -17,12 +17,22 @@ exports.SCAN_RULES = [
17
17
  description: "System command execution",
18
18
  severity: "CRITICAL",
19
19
  patterns: [
20
+ // Capability acquisition. These two are the load-bearing half: system
21
+ // commands are unreachable in JS without child_process, so anything that
22
+ // obtains it is caught here however it later calls out.
20
23
  /require\s*\(\s*['"]child_process['"]\s*\)/,
21
24
  /from\s+['"]child_process['"]/,
22
- /\bexec\s*\(/,
23
- /\bexecSync\s*\(/,
24
- /\bspawn\s*\(/,
25
- /\bspawnSync\s*\(/,
25
+ // Call sites — defence in depth for the destructured-import form
26
+ // (`const { exec } = ...` followed by a bare `exec(...)`). The lookbehind
27
+ // excludes member calls: `\bexec\s*\(` also matched `regex.exec(`, and
28
+ // `.exec()` is how you iterate a global regex in JavaScript. On this repo's
29
+ // own gene corpus that misfired on 6 of the 7 genes it flagged — CRITICAL,
30
+ // blocking publish, for calling a regex. A member call can only reach
31
+ // child_process through a binding the two patterns above already catch.
32
+ /(?<![.\w$])exec\s*\(/,
33
+ /(?<![.\w$])execSync\s*\(/,
34
+ /(?<![.\w$])spawn\s*\(/,
35
+ /(?<![.\w$])spawnSync\s*\(/,
26
36
  ],
27
37
  },
28
38
  {
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/scanner/rules.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAe;IACpC;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,wBAAwB;QACrC,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE;YACR,aAAa;YACb,iBAAiB;YACjB,qBAAqB;SACtB;KACF;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,0BAA0B;QACvC,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE;YACR,2CAA2C;YAC3C,8BAA8B;YAC9B,aAAa;YACb,iBAAiB;YACjB,cAAc;YACd,kBAAkB;SACnB;KACF;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,4CAA4C;QACzD,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE;YACR,iCAAiC;YACjC,sBAAsB;YACtB,yDAAyD;YACzD,kDAAkD;SACnD;KACF;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,mCAAmC;QAChD,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,cAAc;YACd,sBAAsB;YACtB,uBAAuB;YACvB,2BAA2B;YAC3B,gBAAgB;SACjB;KACF;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,kBAAkB;YAClB,eAAe;YACf,iBAAiB;YACjB,uBAAuB;SACxB;KACF;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,gCAAgC;QAC7C,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,sBAAsB;YACtB,oBAAoB;YACpB,wBAAwB;YACxB,8BAA8B;YAC9B,qBAAqB;SACtB;KACF;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,wBAAwB;QACrC,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE;YACR,kBAAkB;YAClB,sBAAsB;YACtB,mBAAmB;YACnB,uBAAuB;YACvB,gBAAgB;YAChB,oBAAoB;YACpB,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,mBAAmB;YACnB,qBAAqB;YACrB,sBAAsB;SACvB;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/scanner/rules.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAe;IACpC;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,wBAAwB;QACrC,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE;YACR,aAAa;YACb,iBAAiB;YACjB,qBAAqB;SACtB;KACF;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,0BAA0B;QACvC,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE;YACR,sEAAsE;YACtE,yEAAyE;YACzE,wDAAwD;YACxD,2CAA2C;YAC3C,8BAA8B;YAC9B,iEAAiE;YACjE,0EAA0E;YAC1E,uEAAuE;YACvE,4EAA4E;YAC5E,2EAA2E;YAC3E,sEAAsE;YACtE,wEAAwE;YACxE,sBAAsB;YACtB,0BAA0B;YAC1B,uBAAuB;YACvB,2BAA2B;SAC5B;KACF;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,4CAA4C;QACzD,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE;YACR,iCAAiC;YACjC,sBAAsB;YACtB,yDAAyD;YACzD,kDAAkD;SACnD;KACF;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,mCAAmC;QAChD,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,cAAc;YACd,sBAAsB;YACtB,uBAAuB;YACvB,2BAA2B;YAC3B,gBAAgB;SACjB;KACF;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,kBAAkB;YAClB,eAAe;YACf,iBAAiB;YACjB,uBAAuB;SACxB;KACF;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,gCAAgC;QAC7C,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,sBAAsB;YACtB,oBAAoB;YACpB,wBAAwB;YACxB,8BAA8B;YAC9B,qBAAqB;SACtB;KACF;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,wBAAwB;QACrC,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE;YACR,kBAAkB;YAClB,sBAAsB;YACtB,mBAAmB;YACnB,uBAAuB;YACvB,gBAAgB;YAChB,oBAAoB;YACpB,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,mBAAmB;YACnB,qBAAqB;YACrB,sBAAsB;SACvB;KACF;CACF,CAAC"}
@@ -0,0 +1,82 @@
1
+ import type { GeneRunner, RunOutcome } from "./run.js";
2
+ /**
3
+ * spec §47.5 publishing gate, as decided in ADR-333.
4
+ *
5
+ * §47.5 makes T1 a MUST for DRAFT→PUBLISHED. Until this existed the MUST was
6
+ * unenforced, which is how 62 Native genes reached the registry — and how two
7
+ * of them were republished on 2026-09-07 without satisfying it.
8
+ *
9
+ * Kept out of publish.ts so the decision "may this be published" is testable
10
+ * without a publish: the same three requirements, the same verdict, no network.
11
+ */
12
+ export type GateVerdict = {
13
+ status: "passed";
14
+ details: string;
15
+ } | {
16
+ status: "blocked";
17
+ reason: string;
18
+ guidance: string[];
19
+ } | {
20
+ status: "not-applicable";
21
+ reason: string;
22
+ };
23
+ export interface GateInput {
24
+ geneDir: string;
25
+ fidelity: string;
26
+ phenotype: {
27
+ inputSchema?: unknown;
28
+ outputSchema?: unknown;
29
+ };
30
+ /** Runs one input against the compiled Gene. Null when no runtime is
31
+ * available — see the not-applicable branch. */
32
+ run: GeneRunner | null;
33
+ }
34
+ export declare function evaluatePublishGate(input: GateInput): GateVerdict;
35
+ /** Adapter: the sandbox reports every failure alike, so anything that is not a
36
+ * clean return is reported as crashed. See runNegative for why that is the
37
+ * conservative reading rather than a limitation. */
38
+ export declare function outcomeFromSandbox(r: {
39
+ success: boolean;
40
+ output?: unknown;
41
+ errorMessage?: string | null;
42
+ durationMs?: number;
43
+ }): RunOutcome;
44
+ /**
45
+ * Build a GeneRunner for a Wrapped gene, which has no IR and executes in its
46
+ * native language under Node.
47
+ *
48
+ * This exists because the gate skipping Wrapped was a hole, not a design. §47.5
49
+ * makes T1 a MUST for every DRAFT->PUBLISHED transition, not only Native ones,
50
+ * and 35 published Wrapped records went out under that exemption.
51
+ *
52
+ * It surfaced while deciding genesis-file-read's fidelity: it imports node:fs,
53
+ * so it can never compile to Native, and Wrapped is the honest label. Making
54
+ * that change while Wrapped was exempt would have relabelled a gene straight
55
+ * through the gap — the shape of thing this plan exists to stop. So the hole is
56
+ * closed first, and the relabel then costs what it should.
57
+ *
58
+ * Async because a dynamic import is: the module is loaded once here, and the
59
+ * returned runner is synchronous over the resolved export.
60
+ *
61
+ * The L0 gate is consulted BEFORE the import, not before express(): importing
62
+ * executes module top-level code, so a check afterwards checks nothing.
63
+ */
64
+ /**
65
+ * The ADR-334 refusal envelope, as recognised on the Node path.
66
+ *
67
+ * Kept identical to `parse_error_envelope` in the Rust core, including the
68
+ * single-key rule: an object that merely *contains* the key alongside data is
69
+ * ordinary output. The two implementations exist because the two execution
70
+ * paths do not share code — `node-envelope-parity.test.ts` pins them to the
71
+ * same answers so they cannot drift apart silently.
72
+ */
73
+ export declare function readErrorEnvelope(output: unknown): string | null;
74
+ export declare function loadNodeRunner(absSourcePath: string, l0: {
75
+ kind: string;
76
+ detail?: string;
77
+ }): Promise<{
78
+ runner: GeneRunner;
79
+ } | {
80
+ refusal: string;
81
+ }>;
82
+ //# sourceMappingURL=gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/testsuite/gate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEvD;;;;;;;;;GASG;AAEH,MAAM,MAAM,WAAW,GACnB;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GACzD;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAoBjD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7D;oDACgD;IAChD,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,CAoEjE;AAED;;oDAEoD;AACpD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,UAAU,CAIb;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAUhE;AAED,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA2CvD"}
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.evaluatePublishGate = evaluatePublishGate;
4
+ exports.outcomeFromSandbox = outcomeFromSandbox;
5
+ exports.readErrorEnvelope = readErrorEnvelope;
6
+ exports.loadNodeRunner = loadNodeRunner;
7
+ const node_url_1 = require("node:url");
8
+ const load_js_1 = require("./load.js");
9
+ const run_js_1 = require("./run.js");
10
+ /**
11
+ * The guidance lines are load-bearing, not decoration.
12
+ *
13
+ * ADR-333 records the ecosystem seat's vote as conditional on exactly this:
14
+ * a gate that answers "negative case failed" and stops has told the author
15
+ * nothing they can act on, and an unactionable gate gets routed around rather
16
+ * than satisfied. `publish-gate.test.ts` asserts these lines survive, so the
17
+ * condition is mechanical rather than a promise.
18
+ */
19
+ const MISSING_SUITE_GUIDANCE = [
20
+ "spec §47.5 requires, before DRAFT -> PUBLISHED:",
21
+ " • at least 1 positive case (input your inputSchema accepts)",
22
+ " • at least 1 negative case (input it forbids, handled correctly)",
23
+ " • a schema-legality property test over 10 generated inputs",
24
+ "Generate a starting point: rotifer test --scaffold <gene>",
25
+ "Then run it: rotifer test <gene>",
26
+ ];
27
+ function evaluatePublishGate(input) {
28
+ const load = (0, load_js_1.loadTestSuite)(input.geneDir);
29
+ if (load.status === "absent") {
30
+ return {
31
+ status: "blocked",
32
+ reason: "no testsuite.json — spec §47.5 T1 is a MUST before publishing",
33
+ guidance: MISSING_SUITE_GUIDANCE,
34
+ };
35
+ }
36
+ if (load.status === "invalid") {
37
+ return {
38
+ status: "blocked",
39
+ reason: "testsuite.json is not valid",
40
+ guidance: [...load.errors, "", "Fix the fields above, then: rotifer test <gene>"],
41
+ };
42
+ }
43
+ if (!input.run) {
44
+ // No runtime, so the suite cannot be executed. Blocking rather than waving
45
+ // it through: "we could not check" is not "it passed", and the alternative
46
+ // publishes on the strength of a file nobody ran.
47
+ return {
48
+ status: "blocked",
49
+ reason: "testsuite.json exists but the Gene could not be executed to run it",
50
+ guidance: [
51
+ "Compile first so the suite can run: rotifer compile <gene>",
52
+ "A suite that has not been run is not evidence.",
53
+ ],
54
+ };
55
+ }
56
+ const report = (0, run_js_1.runT1)(load.suite, {
57
+ inputSchema: input.phenotype.inputSchema ?? null,
58
+ outputSchema: input.phenotype.outputSchema ?? null,
59
+ run: input.run,
60
+ });
61
+ if (report.gatePassed) {
62
+ return {
63
+ status: "passed",
64
+ details: `T1 satisfied — ${report.results.filter((r) => r.passed).length}/${report.results.length} checks`,
65
+ };
66
+ }
67
+ const req = report.requirements;
68
+ const unmet = [
69
+ ...(req.positive ? [] : ["positive"]),
70
+ ...(req.negative ? [] : ["negative"]),
71
+ ...(req.property ? [] : ["property"]),
72
+ ];
73
+ const failures = report.results
74
+ .filter((r) => !r.passed)
75
+ .map((r) => ` ${r.testId}: ${r.failureReason}${r.details ? `\n ${r.details}` : ""}`);
76
+ return {
77
+ status: "blocked",
78
+ reason: `spec §47.5 T1 not satisfied — unmet: ${unmet.join(", ")}`,
79
+ guidance: [
80
+ ...failures,
81
+ "",
82
+ "Each failure above names what to change. A negative case that returns output",
83
+ "rather than refusing is not automatically wrong — declare the answer you mean",
84
+ "with expectedOutput or expectedSchema (ADR-333).",
85
+ "Re-run locally with: rotifer test <gene>",
86
+ ],
87
+ };
88
+ }
89
+ /** Adapter: the sandbox reports every failure alike, so anything that is not a
90
+ * clean return is reported as crashed. See runNegative for why that is the
91
+ * conservative reading rather than a limitation. */
92
+ function outcomeFromSandbox(r) {
93
+ return r.success
94
+ ? { success: true, output: r.output, durationMs: r.durationMs }
95
+ : { success: false, crashed: true, errorMessage: r.errorMessage ?? undefined };
96
+ }
97
+ /**
98
+ * Build a GeneRunner for a Wrapped gene, which has no IR and executes in its
99
+ * native language under Node.
100
+ *
101
+ * This exists because the gate skipping Wrapped was a hole, not a design. §47.5
102
+ * makes T1 a MUST for every DRAFT->PUBLISHED transition, not only Native ones,
103
+ * and 35 published Wrapped records went out under that exemption.
104
+ *
105
+ * It surfaced while deciding genesis-file-read's fidelity: it imports node:fs,
106
+ * so it can never compile to Native, and Wrapped is the honest label. Making
107
+ * that change while Wrapped was exempt would have relabelled a gene straight
108
+ * through the gap — the shape of thing this plan exists to stop. So the hole is
109
+ * closed first, and the relabel then costs what it should.
110
+ *
111
+ * Async because a dynamic import is: the module is loaded once here, and the
112
+ * returned runner is synchronous over the resolved export.
113
+ *
114
+ * The L0 gate is consulted BEFORE the import, not before express(): importing
115
+ * executes module top-level code, so a check afterwards checks nothing.
116
+ */
117
+ /**
118
+ * The ADR-334 refusal envelope, as recognised on the Node path.
119
+ *
120
+ * Kept identical to `parse_error_envelope` in the Rust core, including the
121
+ * single-key rule: an object that merely *contains* the key alongside data is
122
+ * ordinary output. The two implementations exist because the two execution
123
+ * paths do not share code — `node-envelope-parity.test.ts` pins them to the
124
+ * same answers so they cannot drift apart silently.
125
+ */
126
+ function readErrorEnvelope(output) {
127
+ if (typeof output !== "object" || output === null || Array.isArray(output))
128
+ return null;
129
+ const keys = Object.keys(output);
130
+ if (keys.length !== 1 || keys[0] !== "__rotifer_error")
131
+ return null;
132
+ const body = output.__rotifer_error;
133
+ const message = typeof body === "object" && body !== null && typeof body.message === "string"
134
+ ? body.message
135
+ : "gene refused the input";
136
+ return `INVALID_INPUT: ${message}`;
137
+ }
138
+ async function loadNodeRunner(absSourcePath, l0) {
139
+ if (l0.kind === "violation") {
140
+ return { refusal: `L0 gate blocked this gene: ${l0.detail ?? "no detail"}` };
141
+ }
142
+ let expressFn;
143
+ try {
144
+ const mod = await import((0, node_url_1.pathToFileURL)(absSourcePath).href);
145
+ if (typeof mod.express !== "function") {
146
+ return { refusal: "gene does not export an express() function" };
147
+ }
148
+ expressFn = mod.express;
149
+ }
150
+ catch (e) {
151
+ return { refusal: `could not load the gene module: ${e.message}` };
152
+ }
153
+ const runner = (input) => {
154
+ const started = Date.now();
155
+ try {
156
+ const output = expressFn(input);
157
+ // ADR-334: the WASM sandbox turns a lone `__rotifer_error` key into
158
+ // GeneResult::Error, and this path has to agree with it. It does not go
159
+ // through the Rust core at all, so without this the same Gene would be
160
+ // read as refusing when compiled and as answering when run under Node —
161
+ // and which one a Gene gets depends on its fidelity, not on its code.
162
+ const refusal = readErrorEnvelope(output);
163
+ if (refusal) {
164
+ return { success: false, errorMessage: refusal, durationMs: Date.now() - started };
165
+ }
166
+ if (output === null || output === undefined) {
167
+ // Distinct from throwing, and worth its own message: a Gene that
168
+ // returns nothing has not refused, it has silently produced no answer.
169
+ return { success: false, crashed: true, errorMessage: "express() returned null/undefined" };
170
+ }
171
+ return { success: true, output, durationMs: Date.now() - started };
172
+ }
173
+ catch (e) {
174
+ return { success: false, crashed: true, errorMessage: e.message };
175
+ }
176
+ };
177
+ return { runner };
178
+ }
179
+ //# sourceMappingURL=gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/testsuite/gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Seeded input generation, shared by `arena submit` and the §47.5 T1 property
3
+ * test.
4
+ *
5
+ * Moved verbatim out of arena-submit.ts rather than reimplemented: S_r has to
6
+ * stay reproducible across releases, and a second generator that drifted from
7
+ * this one would make `rotifer test` and Arena admission disagree about what a
8
+ * Gene was fed. Same seed, same input, both callers.
9
+ */
10
+ export declare function mulberry32(seed: number): () => number;
11
+ export declare function generateTestInput(schema: any, seed: number): Record<string, any>;
12
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/testsuite/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,MAAM,CAQrD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAsChF"}