chore(vendor): import pi 1.3.0

Imported as a linear vendor commit so forge rebases do not replay the upstream root tree.

git-subtree-dir: third_party/pi

git-subtree-split: 71023aec1546d6d677a65669c5665c0927ce0dd0
This commit is contained in:
2026-10-15 17:58:48 -04:00
parent 719370c8f7
commit 6081e3e325
1743 changed files with 205460 additions and 131705 deletions

View File

@@ -0,0 +1,8 @@
/**
* Stands in for the real worker in host tests: posts the JSON message (or array of messages) passed
* as the script source, so tests can send the host payloads the real prelude never produces.
*/
import { parentPort, workerData } from "node:worker_threads";
const messages: unknown = JSON.parse((workerData as { code: string }).code);
for (const message of Array.isArray(messages) ? messages : [messages]) parentPort?.postMessage(message);

View File

@@ -0,0 +1,51 @@
import { CodemodeSandbox } from "../../src/runtime/host.ts";
const how = process.argv[2];
if (how !== "abort" && how !== "timeout" && how !== "close") throw new Error(`Unknown stop mode: ${how}`);
const started = performance.now();
process.on("exit", () => {
console.log(JSON.stringify({ type: "exit", elapsedMs: performance.now() - started }));
});
const controller = new AbortController();
let timer: ReturnType<typeof setTimeout> | undefined;
let workerExited = false;
const sandbox = new CodemodeSandbox({
memoryLimitBytes: 256 * 1024 * 1024,
onWorkerStarted: (exited) => {
void exited.then(() => {
workerExited = true;
});
},
tools: [
{
name: "ready",
execute: () => {
if (how !== "timeout") {
timer = setTimeout(() => {
if (how === "abort") controller.abort();
else void sandbox.close();
}, 100);
}
},
},
],
});
try {
const result = await sandbox.execute(
"await tools.ready(); return 'a'.repeat(300000).indexOf('a'.repeat(10000) + 'b')",
{ signal: controller.signal, timeoutMs: how === "timeout" ? 300 : Number.POSITIVE_INFINITY },
);
if (result.ok) throw new Error("The script completed instead of being cancelled");
await sandbox.close();
console.log(
JSON.stringify({
type: "result",
kind: result.error.kind,
elapsedMs: performance.now() - started,
workerExited,
}),
);
} finally {
clearTimeout(timer);
await sandbox.close();
}