@rotifer/playground 0.30.3 → 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.
- package/CHANGELOG.md +17 -0
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/dist/arena/invalidation-criteria.js +8 -8
- package/dist/commands/agent-create.js +1 -1
- package/dist/commands/agent-create.js.map +1 -1
- package/dist/commands/arena-submit.d.ts.map +1 -1
- package/dist/commands/arena-submit.js +34 -10
- package/dist/commands/arena-submit.js.map +1 -1
- package/dist/commands/arena-watch.js +1 -1
- package/dist/commands/arena-watch.js.map +1 -1
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +15 -8
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +3 -9
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/vg.d.ts.map +1 -1
- package/dist/commands/vg.js +7 -0
- package/dist/commands/vg.js.map +1 -1
- package/dist/publish/pre-publish-check.d.ts.map +1 -1
- package/dist/publish/pre-publish-check.js +12 -0
- package/dist/publish/pre-publish-check.js.map +1 -1
- package/dist/scanner/index.d.ts +1 -1
- package/dist/scanner/index.d.ts.map +1 -1
- package/dist/scanner/index.js +2 -1
- package/dist/scanner/index.js.map +1 -1
- package/dist/scanner/scanner.d.ts +2 -0
- package/dist/scanner/scanner.d.ts.map +1 -1
- package/dist/scanner/scanner.js +35 -5
- package/dist/scanner/scanner.js.map +1 -1
- package/dist/scanner/types.d.ts +3 -0
- package/dist/scanner/types.d.ts.map +1 -1
- package/dist/testsuite/gate.d.ts +6 -3
- package/dist/testsuite/gate.d.ts.map +1 -1
- package/dist/testsuite/gate.js +15 -6
- package/dist/testsuite/gate.js.map +1 -1
- package/dist/utils/fidelity-discount.d.ts +24 -0
- package/dist/utils/fidelity-discount.d.ts.map +1 -1
- package/dist/utils/fidelity-discount.js +35 -0
- package/dist/utils/fidelity-discount.js.map +1 -1
- package/dist/utils/javy-compiler.d.ts +25 -0
- package/dist/utils/javy-compiler.d.ts.map +1 -1
- package/dist/utils/javy-compiler.js +84 -1
- package/dist/utils/javy-compiler.js.map +1 -1
- package/package.json +5 -5
|
@@ -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":"
|
|
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
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"javy-compiler.js","sourceRoot":"","sources":["../../src/utils/javy-compiler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rotifer/playground",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.0",
|
|
4
4
|
"description": "Rotifer Protocol Playground — local development environment for gene development, Arena competition, and protocol simulation",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Rotifer Protocol Contributors",
|
|
@@ -92,10 +92,10 @@
|
|
|
92
92
|
},
|
|
93
93
|
"optionalDependencies": {
|
|
94
94
|
"@rolldown/binding-linux-x64-gnu": "1.1.1",
|
|
95
|
-
"@rotifer/playground-darwin-arm64": "0.
|
|
96
|
-
"@rotifer/playground-darwin-x64": "0.
|
|
97
|
-
"@rotifer/playground-linux-x64-gnu": "0.
|
|
98
|
-
"@rotifer/playground-win32-x64-msvc": "0.
|
|
95
|
+
"@rotifer/playground-darwin-arm64": "0.31.0",
|
|
96
|
+
"@rotifer/playground-darwin-x64": "0.31.0",
|
|
97
|
+
"@rotifer/playground-linux-x64-gnu": "0.31.0",
|
|
98
|
+
"@rotifer/playground-win32-x64-msvc": "0.31.0"
|
|
99
99
|
},
|
|
100
100
|
"engines": {
|
|
101
101
|
"node": ">=22.18.0"
|