// node compose.ts > composition.json import { composition, policy } from "../../../javascript/src/compose/build.js"; import { compose } from "./atlibs.modules.js"; const c = composition({ name: "Compose toys", description: "ui asks lookup to double n (only even n, per the even policy), passing a progress callback; lookup may ask the page to confirm.", limits: { depth: 4, calls: 20 }, }); const ui = c.instance("ui", compose); const lookup = c.instance("lookup", compose, { input: { n: 0 } }); const even = c.instance("even", compose); const confirm = c.handler("confirm", "The page asks the user."); c.route(ui, "com.example.compose.lookup", lookup, "ui needs n doubled", { policies: [policy(even, "even")] }); c.route(ui, "com.example.compose.confirm", confirm, "ui asks the user before acting"); process.stdout.write(await c.json());