@rotifer/playground 0.30.2 → 0.31.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 (59) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +6 -6
  3. package/README.zh.md +1 -1
  4. package/dist/arena/invalidation-criteria.js +8 -8
  5. package/dist/commands/agent-create.js +1 -1
  6. package/dist/commands/agent-create.js.map +1 -1
  7. package/dist/commands/arena-submit.d.ts.map +1 -1
  8. package/dist/commands/arena-submit.js +34 -10
  9. package/dist/commands/arena-submit.js.map +1 -1
  10. package/dist/commands/arena-watch.js +1 -1
  11. package/dist/commands/arena-watch.js.map +1 -1
  12. package/dist/commands/compile.d.ts.map +1 -1
  13. package/dist/commands/compile.js +15 -8
  14. package/dist/commands/compile.js.map +1 -1
  15. package/dist/commands/test.d.ts.map +1 -1
  16. package/dist/commands/test.js +3 -9
  17. package/dist/commands/test.js.map +1 -1
  18. package/dist/commands/vg.d.ts.map +1 -1
  19. package/dist/commands/vg.js +18 -1
  20. package/dist/commands/vg.js.map +1 -1
  21. package/dist/commands/wrap.d.ts +6 -0
  22. package/dist/commands/wrap.d.ts.map +1 -1
  23. package/dist/commands/wrap.js +12 -3
  24. package/dist/commands/wrap.js.map +1 -1
  25. package/dist/publish/pre-publish-check.d.ts.map +1 -1
  26. package/dist/publish/pre-publish-check.js +12 -0
  27. package/dist/publish/pre-publish-check.js.map +1 -1
  28. package/dist/scanner/index.d.ts +1 -1
  29. package/dist/scanner/index.d.ts.map +1 -1
  30. package/dist/scanner/index.js +2 -1
  31. package/dist/scanner/index.js.map +1 -1
  32. package/dist/scanner/rules.d.ts +1 -1
  33. package/dist/scanner/rules.d.ts.map +1 -1
  34. package/dist/scanner/rules.js +14 -1
  35. package/dist/scanner/rules.js.map +1 -1
  36. package/dist/scanner/scanner.d.ts +2 -0
  37. package/dist/scanner/scanner.d.ts.map +1 -1
  38. package/dist/scanner/scanner.js +60 -6
  39. package/dist/scanner/scanner.js.map +1 -1
  40. package/dist/scanner/types.d.ts +3 -0
  41. package/dist/scanner/types.d.ts.map +1 -1
  42. package/dist/testsuite/gate.d.ts +6 -3
  43. package/dist/testsuite/gate.d.ts.map +1 -1
  44. package/dist/testsuite/gate.js +15 -6
  45. package/dist/testsuite/gate.js.map +1 -1
  46. package/dist/utils/fidelity-discount.d.ts +24 -0
  47. package/dist/utils/fidelity-discount.d.ts.map +1 -1
  48. package/dist/utils/fidelity-discount.js +35 -0
  49. package/dist/utils/fidelity-discount.js.map +1 -1
  50. package/dist/utils/javy-compiler.d.ts +25 -0
  51. package/dist/utils/javy-compiler.d.ts.map +1 -1
  52. package/dist/utils/javy-compiler.js +84 -1
  53. package/dist/utils/javy-compiler.js.map +1 -1
  54. package/genes/gene-health-scanner/index.ts +476 -0
  55. package/genes/gene-health-scanner/phenotype.json +47 -0
  56. package/genes/genesis-web-search/index.ts +5 -3
  57. package/genes/genesis-web-search/phenotype.json +2 -2
  58. package/genes/genesis-web-search-lite/phenotype.json +2 -2
  59. package/package.json +5 -5
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unscannedLanguages = unscannedLanguages;
3
4
  exports.scanFile = scanFile;
4
5
  exports.computeGrade = computeGrade;
5
6
  exports.scan = scan;
@@ -8,22 +9,28 @@ const node_path_1 = require("node:path");
8
9
  const rules_js_1 = require("./rules.js");
9
10
  const literals_js_1 = require("./literals.js");
10
11
  const CODE_EXTENSIONS = new Set([".ts", ".js", ".mts", ".mjs", ".cjs", ".tsx", ".jsx", ".sh", ".py"]);
12
+ // Source files V(g) has no rules for. They are not read, but they are named in
13
+ // the result: a gene written only in Rust otherwise looks exactly like a gene
14
+ // with no code at all.
15
+ const UNSUPPORTED_CODE_EXTENSIONS = new Set([
16
+ ".rs", ".go", ".c", ".h", ".cc", ".cpp", ".hpp", ".zig", ".java", ".kt", ".swift", ".rb", ".cs",
17
+ ]);
11
18
  // Files whose literals maskJsLiterals understands. .tsx/.jsx are left out (JSX
12
19
  // text such as `Don't` is not a string literal), as are .sh and .py, whose
13
20
  // quoting rules differ; those keep raw-line matching for every rule.
14
21
  const JS_EXTENSIONS = new Set([".ts", ".js", ".mts", ".mjs", ".cjs"]);
15
- function collectCodeFiles(dir) {
22
+ function collectCodeFiles(dir, extensions = CODE_EXTENSIONS, skip = []) {
16
23
  const files = [];
17
24
  const walk = (d) => {
18
25
  for (const entry of (0, node_fs_1.readdirSync)(d)) {
19
- if (entry === "node_modules" || entry === ".git" || entry === "dist")
26
+ if (entry === "node_modules" || entry === ".git" || entry === "dist" || skip.includes(entry))
20
27
  continue;
21
28
  const full = (0, node_path_1.join)(d, entry);
22
29
  const st = (0, node_fs_1.statSync)(full);
23
30
  if (st.isDirectory()) {
24
31
  walk(full);
25
32
  }
26
- else if (CODE_EXTENSIONS.has((0, node_path_1.extname)(entry))) {
33
+ else if (extensions.has((0, node_path_1.extname)(entry))) {
27
34
  files.push(full);
28
35
  }
29
36
  }
@@ -34,6 +41,47 @@ function collectCodeFiles(dir) {
34
41
  function hasSrcDirectory(dir) {
35
42
  return (0, node_fs_1.existsSync)((0, node_path_1.join)(dir, "src"));
36
43
  }
44
+ /** Code files directly in `dir`, not in its subdirectories. */
45
+ function collectTopLevelCodeFiles(dir, extensions = CODE_EXTENSIONS) {
46
+ return (0, node_fs_1.readdirSync)(dir)
47
+ .map((entry) => (0, node_path_1.join)(dir, entry))
48
+ .filter((full) => (0, node_fs_1.statSync)(full).isFile() && extensions.has((0, node_path_1.extname)(full)));
49
+ }
50
+ /**
51
+ * Which files a scan reads:
52
+ * - `--all`: every code file under `dir`.
53
+ * - otherwise src/ when it exists — a Skill's code lives there;
54
+ * - otherwise the code files at the top level of `dir`, not below it. Genes
55
+ * keep index.ts at the gene root (every Genesis gene does), and reading
56
+ * only src/ left all of them ungraded. Subdirectories stay out so that
57
+ * test fixtures and vendored files are not graded as the gene.
58
+ */
59
+ function selectFiles(dir, shouldScanAll) {
60
+ if (shouldScanAll)
61
+ return collectCodeFiles(dir);
62
+ if (hasSrcDirectory(dir))
63
+ return collectCodeFiles((0, node_path_1.join)(dir, "src"));
64
+ return collectTopLevelCodeFiles(dir);
65
+ }
66
+ /** The files selectFiles would have read had V(g) rules for their language.
67
+ * `target/` is skipped: it is Rust's build output, not the gene's source. */
68
+ function selectUnscanned(dir, shouldScanAll) {
69
+ const files = shouldScanAll
70
+ ? collectCodeFiles(dir, UNSUPPORTED_CODE_EXTENSIONS, ["target"])
71
+ : hasSrcDirectory(dir)
72
+ ? collectCodeFiles((0, node_path_1.join)(dir, "src"), UNSUPPORTED_CODE_EXTENSIONS, ["target"])
73
+ : collectTopLevelCodeFiles(dir, UNSUPPORTED_CODE_EXTENSIONS);
74
+ return files.map((f) => (0, node_path_1.relative)(dir, f)).sort();
75
+ }
76
+ /** ".rs" files → "Rust"; unknown extensions are named by extension. */
77
+ function unscannedLanguages(files) {
78
+ const names = {
79
+ ".rs": "Rust", ".go": "Go", ".c": "C", ".h": "C", ".cc": "C++", ".cpp": "C++", ".hpp": "C++",
80
+ ".zig": "Zig", ".java": "Java", ".kt": "Kotlin", ".swift": "Swift", ".rb": "Ruby", ".cs": "C#",
81
+ };
82
+ const langs = [...new Set(files.map((f) => names[(0, node_path_1.extname)(f)] ?? (0, node_path_1.extname)(f)))];
83
+ return langs.join(", ");
84
+ }
37
85
  function scanFile(filePath, rootDir) {
38
86
  const content = (0, node_fs_1.readFileSync)(filePath, "utf-8");
39
87
  const lines = content.split("\n");
@@ -75,17 +123,22 @@ function computeGrade(findings) {
75
123
  }
76
124
  function scan(dir, skillId, options) {
77
125
  const shouldScanAll = options?.scanAll ?? false;
78
- if (!shouldScanAll && !hasSrcDirectory(dir)) {
126
+ const files = selectFiles(dir, shouldScanAll);
127
+ const unscanned = selectUnscanned(dir, shouldScanAll);
128
+ const unscannedField = unscanned.length > 0 ? { unscanned } : {};
129
+ // No code read, no grade. computeGrade([]) is "A", and `--all` over a
130
+ // directory without code used to report exactly that: a clean result for
131
+ // code that was never looked at.
132
+ if (files.length === 0) {
79
133
  return {
80
134
  skill_id: skillId ?? dir,
81
135
  scanned_at: new Date().toISOString(),
82
136
  grade: "?",
83
137
  findings: [],
84
138
  stats: { files_scanned: 0, lines_of_code: 0 },
139
+ ...unscannedField,
85
140
  };
86
141
  }
87
- const scanDir = shouldScanAll ? dir : (0, node_path_1.join)(dir, "src");
88
- const files = collectCodeFiles(scanDir);
89
142
  const allFindings = [];
90
143
  let totalLines = 0;
91
144
  for (const file of files) {
@@ -102,6 +155,7 @@ function scan(dir, skillId, options) {
102
155
  files_scanned: files.length,
103
156
  lines_of_code: totalLines,
104
157
  },
158
+ ...unscannedField,
105
159
  };
106
160
  }
107
161
  //# sourceMappingURL=scanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/scanner/scanner.ts"],"names":[],"mappings":";;AAmCA,4BA6BC;AAED,oCAQC;AAMD,oBAkCC;AAlHD,qCAA0E;AAC1E,yCAAoD;AACpD,yCAAwC;AACxC,+CAA+C;AAG/C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAEtG,+EAA+E;AAC/E,2EAA2E;AAC3E,qEAAqE;AACrE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtE,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,KAAK,MAAM,KAAK,IAAI,IAAA,qBAAW,EAAC,CAAC,CAAC,EAAE,CAAC;YACnC,IAAI,KAAK,KAAK,cAAc,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM;gBAAE,SAAS;YAC/E,MAAM,IAAI,GAAG,IAAA,gBAAI,EAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC5B,MAAM,EAAE,GAAG,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,CAAC;iBAAM,IAAI,eAAe,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC/C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,SAAgB,QAAQ,CAAC,QAAgB,EAAE,OAAe;IACxD,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,IAAA,oBAAQ,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,4BAAc,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEvF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAEpF,KAAK,MAAM,IAAI,IAAI,qBAAU,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9D,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1B,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,IAAI,CAAC,EAAE;wBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,CAAC,GAAG,CAAC;wBACX,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;qBACnC,CAAC,CAAC;oBACH,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,YAAY,CAAC,QAAmB;IAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IAC3E,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAEnE,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC1B,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC1B,OAAO,GAAG,CAAC;AACb,CAAC;AAMD,SAAgB,IAAI,CAAC,GAAW,EAAE,OAAgB,EAAE,OAAqB;IACvE,MAAM,aAAa,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;IAEhD,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO;YACL,QAAQ,EAAE,OAAO,IAAI,GAAG;YACxB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;SAC9C,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,WAAW,GAAc,EAAE,CAAC;IAClC,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACzC,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,OAAO,IAAI,GAAG;QACxB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,KAAK,EAAE,YAAY,CAAC,WAAW,CAAC;QAChC,QAAQ,EAAE,WAAW;QACrB,KAAK,EAAE;YACL,aAAa,EAAE,KAAK,CAAC,MAAM;YAC3B,aAAa,EAAE,UAAU;SAC1B;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/scanner/scanner.ts"],"names":[],"mappings":"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"}
@@ -30,5 +30,8 @@ export interface ScanResult {
30
30
  files_scanned: number;
31
31
  lines_of_code: number;
32
32
  };
33
+ /** Source files in a language V(g) has no rules for (e.g. Rust), relative to
34
+ * the scanned directory. They were not read: present only when there are any. */
35
+ unscanned?: string[];
33
36
  }
34
37
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scanner/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AACtD,MAAM,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scanner/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AACtD,MAAM,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF;qFACiF;IACjF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB"}
@@ -32,9 +32,12 @@ export interface GateInput {
32
32
  run: GeneRunner | null;
33
33
  }
34
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. */
35
+ /** Adapter from the sandbox's result to a RunOutcome, shared by `rotifer test`
36
+ * and `rotifer publish`. An ADR-334 refusal is a refusal, as on the Node path
37
+ * (readErrorEnvelope): ADR-334 counts explicit INVALID_INPUT as handling, not a
38
+ * crash. Every other failure — a trap, a host error code, an L0 block — is
39
+ * reported as crashed: the caller cannot tell it from a defect. See
40
+ * runNegative. */
38
41
  export declare function outcomeFromSandbox(r: {
39
42
  success: boolean;
40
43
  output?: unknown;
@@ -1 +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"}
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;AAMD;;;;;kBAKkB;AAClB,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,CAMb;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"}
@@ -86,13 +86,22 @@ function evaluatePublishGate(input) {
86
86
  ],
87
87
  };
88
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. */
89
+ /** The prefix the napi binding gives a GeneResult::Error{ INVALID_INPUT }
90
+ * (`"{code}: {message}"`), which only the ADR-334 envelope produces. */
91
+ const SANDBOX_REFUSAL_PREFIX = "INVALID_INPUT: ";
92
+ /** Adapter from the sandbox's result to a RunOutcome, shared by `rotifer test`
93
+ * and `rotifer publish`. An ADR-334 refusal is a refusal, as on the Node path
94
+ * (readErrorEnvelope): ADR-334 counts explicit INVALID_INPUT as handling, not a
95
+ * crash. Every other failure — a trap, a host error code, an L0 block — is
96
+ * reported as crashed: the caller cannot tell it from a defect. See
97
+ * runNegative. */
92
98
  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 };
99
+ if (r.success)
100
+ return { success: true, output: r.output, durationMs: r.durationMs };
101
+ if (r.errorMessage?.startsWith(SANDBOX_REFUSAL_PREFIX)) {
102
+ return { success: false, errorMessage: r.errorMessage, durationMs: r.durationMs };
103
+ }
104
+ return { success: false, crashed: true, errorMessage: r.errorMessage ?? undefined };
96
105
  }
97
106
  /**
98
107
  * Build a GeneRunner for a Wrapped gene, which has no IR and executes in its
@@ -1 +1 @@
1
- {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/testsuite/gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/testsuite/gate.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,30 @@ export interface DiscountedFitness {
33
33
  * source and no artifact.
34
34
  */
35
35
  export declare function fidelityDiscountFor(fidelity: string | null | undefined): number;
36
+ /**
37
+ * The tier a score is entitled to, given what actually ran.
38
+ *
39
+ * §5.1 gives Native 1.00 because "pure WASM execution is fully verifiable".
40
+ * A Gene that declares Native but did not run in the sandbox — no compiled
41
+ * artifact, no sandbox on this platform, or an estimate that runs nothing at
42
+ * all — earned none of that: its logic ran under Node.js or did not run. It
43
+ * takes the Wrapped discount, the tier that makes no claim about execution.
44
+ * Wrapped keeps its tier: it already claims nothing. Hybrid keeps its declared
45
+ * tier too, for now. Since ADR-327 a Hybrid gene comes in two shapes — Node.js
46
+ * behind the network gateway, or its own WASM in the sandbox reaching the
47
+ * network through `rotifer.net` — and §5.1's 0.85 rests on "the WASM portion
48
+ * remains verifiable", which a Hybrid that did not run in the sandbox did not
49
+ * show. Whether that one should drop a tier is not decided yet: `arena submit`
50
+ * does not run any Hybrid in the sandbox today, so lowering it now would leave
51
+ * no Hybrid able to earn 0.85.
52
+ */
53
+ export declare function effectiveFidelity(declared: string | null | undefined, didRunInSandbox: boolean): string;
54
+ /**
55
+ * F(g) for the listings that estimate from the content hash and run nothing
56
+ * (`arena watch`, `agent create`). Nothing ran, so a declared Native is
57
+ * discounted as Wrapped (see effectiveFidelity).
58
+ */
59
+ export declare function estimateUnexecutedFitness(declared: string | null | undefined, geneId: string): DiscountedFitness;
36
60
  /** Apply the discount and return all three numbers the ledger wants. */
37
61
  export declare function applyFidelityDiscount(baseFitness: number, fidelity: string | null | undefined): DiscountedFitness;
38
62
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"fidelity-discount.d.ts","sourceRoot":"","sources":["../../src/utils/fidelity-discount.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,gBAAgB,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAG/E;AAED,wEAAwE;AACxE,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,iBAAiB,CAOnB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAI1D"}
1
+ {"version":3,"file":"fidelity-discount.d.ts","sourceRoot":"","sources":["../../src/utils/fidelity-discount.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,gBAAgB,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAG/E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,CAKvG;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,MAAM,EAAE,MAAM,GACb,iBAAiB,CAEnB;AAED,wEAAwE;AACxE,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,iBAAiB,CAOnB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAI1D"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ESTIMATED_BASE_FITNESS = void 0;
4
4
  exports.fidelityDiscountFor = fidelityDiscountFor;
5
+ exports.effectiveFidelity = effectiveFidelity;
6
+ exports.estimateUnexecutedFitness = estimateUnexecutedFitness;
5
7
  exports.applyFidelityDiscount = applyFidelityDiscount;
6
8
  exports.estimateBaseFitness = estimateBaseFitness;
7
9
  const phenotype_js_1 = require("../types/phenotype.js");
@@ -18,6 +20,39 @@ function fidelityDiscountFor(fidelity) {
18
20
  const key = (fidelity ?? "").trim().toLowerCase();
19
21
  return phenotype_js_1.FIDELITY_DISCOUNT[key] ?? phenotype_js_1.FIDELITY_DISCOUNT.wrapped;
20
22
  }
23
+ /**
24
+ * The tier a score is entitled to, given what actually ran.
25
+ *
26
+ * §5.1 gives Native 1.00 because "pure WASM execution is fully verifiable".
27
+ * A Gene that declares Native but did not run in the sandbox — no compiled
28
+ * artifact, no sandbox on this platform, or an estimate that runs nothing at
29
+ * all — earned none of that: its logic ran under Node.js or did not run. It
30
+ * takes the Wrapped discount, the tier that makes no claim about execution.
31
+ * Wrapped keeps its tier: it already claims nothing. Hybrid keeps its declared
32
+ * tier too, for now. Since ADR-327 a Hybrid gene comes in two shapes — Node.js
33
+ * behind the network gateway, or its own WASM in the sandbox reaching the
34
+ * network through `rotifer.net` — and §5.1's 0.85 rests on "the WASM portion
35
+ * remains verifiable", which a Hybrid that did not run in the sandbox did not
36
+ * show. Whether that one should drop a tier is not decided yet: `arena submit`
37
+ * does not run any Hybrid in the sandbox today, so lowering it now would leave
38
+ * no Hybrid able to earn 0.85.
39
+ */
40
+ function effectiveFidelity(declared, didRunInSandbox) {
41
+ const tier = (declared ?? "").trim();
42
+ if (!tier)
43
+ return "Wrapped";
44
+ if (tier.toLowerCase() === "native" && !didRunInSandbox)
45
+ return "Wrapped";
46
+ return tier;
47
+ }
48
+ /**
49
+ * F(g) for the listings that estimate from the content hash and run nothing
50
+ * (`arena watch`, `agent create`). Nothing ran, so a declared Native is
51
+ * discounted as Wrapped (see effectiveFidelity).
52
+ */
53
+ function estimateUnexecutedFitness(declared, geneId) {
54
+ return applyFidelityDiscount(estimateBaseFitness(geneId), effectiveFidelity(declared, false));
55
+ }
21
56
  /** Apply the discount and return all three numbers the ledger wants. */
22
57
  function applyFidelityDiscount(baseFitness, fidelity) {
23
58
  const fidelityDiscount = fidelityDiscountFor(fidelity);
@@ -1 +1 @@
1
- {"version":3,"file":"fidelity-discount.js","sourceRoot":"","sources":["../../src/utils/fidelity-discount.ts"],"names":[],"mappings":";;;AAsCA,kDAGC;AAGD,sDAUC;AAeD,kDAIC;AAzED,wDAA0D;AA6B1D;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAC,QAAmC;IACrE,MAAM,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,OAAO,gCAAiB,CAAC,GAAG,CAAC,IAAI,gCAAiB,CAAC,OAAO,CAAC;AAC7D,CAAC;AAED,wEAAwE;AACxE,SAAgB,qBAAqB,CACnC,WAAmB,EACnB,QAAmC;IAEnC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACvD,OAAO;QACL,WAAW;QACX,gBAAgB;QAChB,OAAO,EAAE,WAAW,GAAG,gBAAgB;KACxC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACU,QAAA,sBAAsB,GAAG,GAAG,CAAC;AAE1C,SAAgB,mBAAmB,CAAC,MAAc;IAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;IACrC,OAAO,IAAI,CAAC,GAAG,CAAC,8BAAsB,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"fidelity-discount.js","sourceRoot":"","sources":["../../src/utils/fidelity-discount.ts"],"names":[],"mappings":";;;AAsCA,kDAGC;AAmBD,8CAKC;AAOD,8DAKC;AAGD,sDAUC;AAeD,kDAIC;AA7GD,wDAA0D;AA6B1D;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAC,QAAmC;IACrE,MAAM,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,OAAO,gCAAiB,CAAC,GAAG,CAAC,IAAI,gCAAiB,CAAC,OAAO,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,iBAAiB,CAAC,QAAmC,EAAE,eAAwB;IAC7F,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,IAAI,CAAC,eAAe;QAAE,OAAO,SAAS,CAAC;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CACvC,QAAmC,EACnC,MAAc;IAEd,OAAO,qBAAqB,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,wEAAwE;AACxE,SAAgB,qBAAqB,CACnC,WAAmB,EACnB,QAAmC;IAEnC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACvD,OAAO;QACL,WAAW;QACX,gBAAgB;QAChB,OAAO,EAAE,WAAW,GAAG,gBAAgB;KACxC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACU,QAAA,sBAAsB,GAAG,GAAG,CAAC;AAE1C,SAAgB,mBAAmB,CAAC,MAAc;IAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;IACrC,OAAO,IAAI,CAAC,GAAG,CAAC,8BAAsB,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC"}
@@ -28,6 +28,31 @@ export declare function formatToolchainReport(status: ToolchainStatus, npxPath:
28
28
  export declare function buildToolchainErrorMessage(status: ToolchainStatus): string;
29
29
  /** True when the gene source has been edited after the WASM was last compiled (#58). */
30
30
  export declare function isWasmStale(wasmPath: string, sourcePath: string): boolean;
31
+ /** Outcome of normalizeJavyClockSeed(); the module is unchanged unless "normalized". */
32
+ export interface ClockSeedResult {
33
+ wasm: Buffer;
34
+ status: "normalized" | "absent" | "ambiguous";
35
+ }
36
+ /**
37
+ * Replace the compile-time clock javy bakes into a module with a fixed seed.
38
+ *
39
+ * javy 3.0.1 pre-initialises QuickJS and snapshots its heap; QuickJS seeds
40
+ * Math.random from gettimeofday() while doing so, and that 8-byte microsecond
41
+ * value lands in the Data section. It was the only difference between two
42
+ * compiles of the same source, and the v2 gene ID digests every standard
43
+ * section (ADR-340 D1), so every compile announced a new identity.
44
+ *
45
+ * The field is found by value, not by offset: the one little-endian u64 in the
46
+ * Data section that falls inside `windowUs`, the span javy was running. Exactly
47
+ * one match is required. None means this javy build does not do it (or does it
48
+ * differently); two means the guess is not safe. Either way the module is
49
+ * returned untouched and the caller says so — a wrong overwrite would corrupt
50
+ * the heap, an unnormalized module only loses reproducibility.
51
+ *
52
+ * Math.random was already fixed per artifact (the snapshot holds its state);
53
+ * this makes it fixed per source as well.
54
+ */
55
+ export declare function normalizeJavyClockSeed(wasm: Buffer, windowUs: [from: number, to: number], seed: Buffer): ClockSeedResult;
31
56
  export interface JavyCompileResult {
32
57
  wasmPath: string;
33
58
  bundleSize: number;
@@ -1 +1 @@
1
- {"version":3,"file":"javy-compiler.d.ts","sourceRoot":"","sources":["../../src/utils/javy-compiler.ts"],"names":[],"mappings":"AAKA,wGAAwG;AACxG,qBAAa,iBAAkB,SAAQ,KAAK;IACjC,IAAI,SAAuB;CACrC;AAED,gGAAgG;AAChG,qBAAa,cAAe,SAAQ,KAAK;IAC9B,IAAI,SAAoB;CAClC;AAUD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKhE;AAED,KAAK,OAAO,GAAG,MAAM,EAAE,CAAC;AA8BxB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CACtB;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,IAAI,eAAe,CAKpD;AAED,wFAAwF;AACxF,0FAA0F;AAC1F,wBAAgB,oBAAoB,IAAI,MAAM,CAQ7C;AAED,qCAAqC;AACrC,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAE5D;AAED,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAOxF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAS1E;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAOzE;AAcD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,iBAAiB,CA6DnB;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM7D"}
1
+ {"version":3,"file":"javy-compiler.d.ts","sourceRoot":"","sources":["../../src/utils/javy-compiler.ts"],"names":[],"mappings":"AAMA,wGAAwG;AACxG,qBAAa,iBAAkB,SAAQ,KAAK;IACjC,IAAI,SAAuB;CACrC;AAED,gGAAgG;AAChG,qBAAa,cAAe,SAAQ,KAAK;IAC9B,IAAI,SAAoB;CAClC;AAUD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKhE;AAED,KAAK,OAAO,GAAG,MAAM,EAAE,CAAC;AA8BxB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CACtB;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,IAAI,eAAe,CAKpD;AAED,wFAAwF;AACxF,0FAA0F;AAC1F,wBAAgB,oBAAoB,IAAI,MAAM,CAQ7C;AAED,qCAAqC;AACrC,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAE5D;AAED,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAOxF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAS1E;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAOzE;AAED,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;CAC/C;AA4BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,EACpC,IAAI,EAAE,MAAM,GACX,eAAe,CAcjB;AAqBD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,iBAAiB,CA8EnB;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM7D"}
@@ -41,10 +41,12 @@ exports.toolchainOk = toolchainOk;
41
41
  exports.formatToolchainReport = formatToolchainReport;
42
42
  exports.buildToolchainErrorMessage = buildToolchainErrorMessage;
43
43
  exports.isWasmStale = isWasmStale;
44
+ exports.normalizeJavyClockSeed = normalizeJavyClockSeed;
44
45
  exports.compileTypeScriptToWasm = compileTypeScriptToWasm;
45
46
  exports.isJavyAvailable = isJavyAvailable;
46
47
  exports.findGeneSource = findGeneSource;
47
48
  const node_child_process_1 = require("node:child_process");
49
+ const node_crypto_1 = require("node:crypto");
48
50
  const node_fs_1 = require("node:fs");
49
51
  const node_path_1 = require("node:path");
50
52
  const display = __importStar(require("./display.js"));
@@ -156,6 +158,76 @@ function isWasmStale(wasmPath, sourcePath) {
156
158
  return false;
157
159
  }
158
160
  }
161
+ const WASM_SECTION_DATA = 11;
162
+ function readLeb128(buf, offset) {
163
+ let value = 0;
164
+ let shift = 0;
165
+ let at = offset;
166
+ for (;;) {
167
+ const byte = buf[at++];
168
+ value += (byte & 0x7f) * 2 ** shift;
169
+ shift += 7;
170
+ if (!(byte & 0x80))
171
+ return [value, at];
172
+ }
173
+ }
174
+ /** Byte range of the Data section's contents, or null if the module has none. */
175
+ function dataSectionRange(wasm) {
176
+ let at = 8; // magic + version
177
+ while (at < wasm.length) {
178
+ const id = wasm[at];
179
+ const [size, bodyStart] = readLeb128(wasm, at + 1);
180
+ if (id === WASM_SECTION_DATA)
181
+ return [bodyStart, bodyStart + size];
182
+ at = bodyStart + size;
183
+ }
184
+ return null;
185
+ }
186
+ /**
187
+ * Replace the compile-time clock javy bakes into a module with a fixed seed.
188
+ *
189
+ * javy 3.0.1 pre-initialises QuickJS and snapshots its heap; QuickJS seeds
190
+ * Math.random from gettimeofday() while doing so, and that 8-byte microsecond
191
+ * value lands in the Data section. It was the only difference between two
192
+ * compiles of the same source, and the v2 gene ID digests every standard
193
+ * section (ADR-340 D1), so every compile announced a new identity.
194
+ *
195
+ * The field is found by value, not by offset: the one little-endian u64 in the
196
+ * Data section that falls inside `windowUs`, the span javy was running. Exactly
197
+ * one match is required. None means this javy build does not do it (or does it
198
+ * differently); two means the guess is not safe. Either way the module is
199
+ * returned untouched and the caller says so — a wrong overwrite would corrupt
200
+ * the heap, an unnormalized module only loses reproducibility.
201
+ *
202
+ * Math.random was already fixed per artifact (the snapshot holds its state);
203
+ * this makes it fixed per source as well.
204
+ */
205
+ function normalizeJavyClockSeed(wasm, windowUs, seed) {
206
+ const range = dataSectionRange(wasm);
207
+ if (!range)
208
+ return { wasm, status: "absent" };
209
+ const [from, to] = [BigInt(Math.floor(windowUs[0])), BigInt(Math.ceil(windowUs[1]))];
210
+ const hits = [];
211
+ for (let at = range[0]; at + 8 <= range[1]; at++) {
212
+ const value = wasm.readBigUInt64LE(at);
213
+ if (value >= from && value <= to)
214
+ hits.push(at);
215
+ }
216
+ if (hits.length === 0)
217
+ return { wasm, status: "absent" };
218
+ if (hits.length > 1)
219
+ return { wasm, status: "ambiguous" };
220
+ const out = Buffer.from(wasm);
221
+ seed.copy(out, hits[0], 0, 8);
222
+ return { wasm: out, status: "normalized" };
223
+ }
224
+ /** A non-zero 8-byte seed derived from the compiled source (xorshift state must not be 0). */
225
+ function seedFromSource(source) {
226
+ const seed = (0, node_crypto_1.createHash)("sha256").update(source).digest().subarray(0, 8);
227
+ if (seed.every((b) => b === 0))
228
+ seed[0] = 1;
229
+ return seed;
230
+ }
159
231
  const WASI_SHIM_HEADER = `\
160
232
  function __readStdin(){var s=1024,c=[],t=0;while(1){var b=new Uint8Array(s);var r=Javy.IO.readSync(0,b);t+=r;if(r===0)break;c.push(b.subarray(0,r))}var o=new Uint8Array(t);var p=0;for(var i=0;i<c.length;i++){o.set(c[i],p);p+=c[i].length}return JSON.parse(new TextDecoder().decode(o))}
161
233
  function __writeStdout(v){var b=new TextEncoder().encode(JSON.stringify(v));Javy.IO.writeSync(1,b)}
@@ -205,10 +277,21 @@ function compileTypeScriptToWasm(geneSrcPath, outputWasmPath) {
205
277
  const shimCode = WASI_SHIM_HEADER + bundleCode + "\n" + WASI_SHIM_FOOTER;
206
278
  (0, node_fs_1.writeFileSync)(shimPath, shimCode);
207
279
  display.info(" Step 3/3: JavaScript → WASM (Javy / QuickJS)");
280
+ const javyStartedMs = Date.now();
208
281
  (0, node_child_process_1.execFileSync)(toolchain.javy[0], [
209
282
  ...toolchain.javy.slice(1), "compile", shimPath, "-o", outputWasmPath,
210
283
  ], { stdio: "pipe", timeout: 60_000 });
211
- const wasmSize = (0, node_fs_1.readFileSync)(outputWasmPath).length;
284
+ const javyEndedMs = Date.now();
285
+ // Same source, same bytes: take javy's compile-time clock out (T-95).
286
+ const seeded = normalizeJavyClockSeed((0, node_fs_1.readFileSync)(outputWasmPath), [(javyStartedMs - 1_000) * 1_000, (javyEndedMs + 1_000) * 1_000], seedFromSource(shimCode));
287
+ if (seeded.status === "normalized") {
288
+ (0, node_fs_1.writeFileSync)(outputWasmPath, seeded.wasm);
289
+ }
290
+ else {
291
+ display.warn(` This javy build's output is not reproducible (${seeded.status === "ambiguous" ? "more than one" : "no"} ` +
292
+ "compile-time clock value found): compiling this gene again will give different bytes and a different v2 gene ID.");
293
+ }
294
+ const wasmSize = seeded.wasm.length;
212
295
  const durationMs = Date.now() - startTime;
213
296
  display.success(` WASM compiled: ${(wasmSize / 1024).toFixed(0)} KB (${durationMs}ms)`);
214
297
  return { wasmPath: outputWasmPath, bundleSize, wasmSize, durationMs };
@@ -1 +1 @@
1
- {"version":3,"file":"javy-compiler.js","sourceRoot":"","sources":["../../src/utils/javy-compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"javy-compiler.js","sourceRoot":"","sources":["../../src/utils/javy-compiler.ts"],"names":[],"mappings":"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"}