// SaveMyToken local lab. Run with Node.js 22 or newer. import assert from "node:assert/strict"; let calls = 0; const tools = new Map([["lookup_policy", ({ category }) => { calls++; return category === "returns" ? "Unused items: 30 days." : "Delivery: 3 to 5 working days."; }]]); function dispatch(name, args) { if (!tools.has(name)) throw new Error("Unknown tool"); if (!args || typeof args !== "object" || Array.isArray(args) || Object.keys(args).length !== 1 || !["returns", "delivery"].includes(args.category)) throw new Error("Invalid arguments"); return tools.get(name)(args); } assert.throws(() => dispatch("delete_data", {}), /Unknown tool/); assert.throws(() => dispatch("lookup_policy", { category: "returns", admin: true }), /Invalid arguments/); assert.equal(calls, 0); console.log(dispatch("lookup_policy", { category: "returns" })); console.log("Executed tool calls:", calls); assert.equal(calls, 1);