Acquire installed portable operations with explicit authority and input coverage

This commit is contained in:
Timothy J. Aveni
2026-09-20 02:19:00 -07:00
parent 8fd800e69a
commit d9bd5b2800
18 changed files with 477 additions and 2 deletions
+16
View File
@@ -4,6 +4,8 @@ import { loadReaderWorkspace } from "./reader-fixture.js";
import { compileKernelProgram } from "../src/execution-world/kernel.js";
import { compileExecutionPlan } from "../src/execution-world/plan.js";
import { generatePortableTypeScriptBindings } from "../src/bindings/portable.js";
import { generatePortableClientBindings } from "../src/bindings/portable-client.js";
import { loadCompositeWorkspace } from "./composite-fixture.js";
const plan = compileExecutionPlan(await loadReaderWorkspace());
await mkdir("dist/portable-reader", { recursive: true });
for (const target of ["browser", "server"])
@@ -13,6 +15,7 @@ for (const target of ["browser", "server"])
);
await writeFile("dist/portable-reader/plan.json", JSON.stringify(plan));
await writeFile("dist/portable-reader/kernel.json", JSON.stringify(compileKernelProgram(plan)));
await writeFile("dist/portable-reader/client.ts", generatePortableClientBindings(plan, { target: "browser" }));
const serviceWorkspace = structuredClone(plan.definition.workspace);
serviceWorkspace.atoms = [];
serviceWorkspace.conformances = [];
@@ -33,3 +36,16 @@ serviceWorkspace.packageImports[0]!.exports = [
},
];
await writeFile("dist/portable-reader/service-plan.json", JSON.stringify(compileExecutionPlan(serviceWorkspace)));
const composite = compileExecutionPlan(await loadCompositeWorkspace());
await mkdir("dist/portable-reader/composite", { recursive: true });
await writeFile("dist/portable-reader/composite/plan.json", JSON.stringify(composite));
await writeFile("dist/portable-reader/composite/kernel.json", JSON.stringify(compileKernelProgram(composite)));
for (const target of ["browser", "server"])
for (const [name, revision] of [
["reader", "package:reader-runtime@1"],
["comment", "package:comment-runtime@1"],
] as const)
await writeFile(
`dist/portable-reader/composite/${name}-${target}.ts`,
generatePortableTypeScriptBindings(composite.definition.bindingSchema, revision, { target }),
);