diff --git a/extensions/canvas/src/tool-schema.ts b/extensions/canvas/src/tool-schema.ts index caacc7ab3675..c0317f571d7c 100644 --- a/extensions/canvas/src/tool-schema.ts +++ b/extensions/canvas/src/tool-schema.ts @@ -3,7 +3,6 @@ */ import { optionalFiniteNumberSchema, - optionalNonNegativeIntegerSchema, optionalPositiveIntegerSchema, stringEnum, } from "openclaw/plugin-sdk/channel-actions"; @@ -40,7 +39,6 @@ export const CanvasToolSchema = Type.Object({ outputFormat: Type.Optional(stringEnum(CANVAS_SNAPSHOT_FORMATS)), maxWidth: optionalPositiveIntegerSchema(), quality: optionalFiniteNumberSchema({ minimum: 0, maximum: 1 }), - delayMs: optionalNonNegativeIntegerSchema(), jsonl: Type.Optional(Type.String()), jsonlPath: Type.Optional(Type.String()), }); diff --git a/extensions/canvas/src/tool.test.ts b/extensions/canvas/src/tool.test.ts index 841f1f46fc40..90d653f7d6b6 100644 --- a/extensions/canvas/src/tool.test.ts +++ b/extensions/canvas/src/tool.test.ts @@ -377,4 +377,18 @@ describe("Canvas tool", () => { ); expect(mocks.imageResultFromFile).not.toHaveBeenCalled(); }); + + it("advertises only snapshot controls supported by Canvas nodes", () => { + const schema = createCanvasTool().parameters as { + properties?: Record; + }; + + expect(schema.properties?.outputFormat).toMatchObject({ + type: "string", + enum: ["png", "jpg", "jpeg"], + }); + expect(schema.properties?.maxWidth).toMatchObject({ type: "integer", minimum: 1 }); + expect(schema.properties?.quality).toMatchObject({ type: "number", minimum: 0, maximum: 1 }); + expect(schema.properties).not.toHaveProperty("delayMs"); + }); });