import { describe, expect, it } from "vitest"; import { decideToolPolicy } from "../src/tools/tool-policy.js"; describe("editor content approval", () => { it("requires approval before exposing licensed CMS content to the model", () => { expect(decideToolPolicy("cms_connection_status")).toBe("allow"); expect(decideToolPolicy("editor_job_status")).toBe("allow"); expect(decideToolPolicy("submit_drama_analysis")).toBe("allow"); expect(decideToolPolicy("propose_drama_selection")).toBe("allow"); expect(decideToolPolicy("submit_editor_plan")).toBe("allow"); expect(decideToolPolicy("render_editor_preview")).toBe("ask"); expect(decideToolPolicy("approve_editor_review")).toBe("deny"); expect(decideToolPolicy("prepare_drama_sources")).toBe("ask"); expect(decideToolPolicy("read_drama_frames")).toBe("ask"); for (const name of ["cms_list_dramas", "cms_drama_inventory", "cms_read_subtitle"]) expect(decideToolPolicy(name)).toBe("ask"); expect(decideToolPolicy("cms_login")).toBe("deny"); expect(decideToolPolicy("render_exact")).toBe("deny"); }); });