{ "schema": "freecad-web-p6-cam-facade/v1", "task_id": "FW-P6-CAM-E", "status": "pass", "action": "cam.createRecompute", "envelopeSchema": "freecad-web-facade/v1", "typedSchema": "freecad-web-cam/create-recompute/v1", "fixture": { "schema": "freecad-web-cam/create-recompute/v1", "fixture": "CAMKernelDocument", "objectType": "Path::Feature", "gcode": "G0 X0 Y0\nG1 X10 Y0 F100\nG1 X10 Y10 F100\n", "inputSha256": "06128c911d1c5b991a14fda91b035232168a76926c386861cc04dbe7104db636" }, "responses": { "success": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "result", "requestId": "cam-success", "result": { "schema": "freecad-web-cam/create-recompute/v1", "module": "CAM", "action": "create/recompute", "document": { "name": "CAMKernelDocument", "activeAfterClose": 0 }, "object": { "name": "Toolpath", "type": "Path::Feature" }, "path": { "commandCount": 3, "length": 20, "gcode": "G0 X0.000000 Y0.000000\nG1 F100.000000 X10.000000 Y0.000000\nG1 F100.000000 X10.000000 Y10.000000\n" }, "recompute": { "count": 1, "hasError": 0 }, "stateSha256": "ad8497095fc6589bdea7c0a4d2c19b28b9d8c9c17227aa0f9111863e0b355677" } }, "expectedError": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "error", "requestId": "cam-error", "error": { "code": "invalid_gcode", "message": "CAM G-code fixture is invalid", "diagnostic": { "field": "gcode" } } }, "duplicate": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "error", "requestId": "cam-success", "error": { "code": "duplicate_request", "message": "requestId has already been dispatched" } }, "cancelled": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "error", "requestId": "cam-cancel", "error": { "code": "cancelled", "message": "request was cancelled before execution" } }, "afterCancel": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "result", "requestId": "cam-after-cancel", "result": { "schema": "freecad-web-cam/create-recompute/v1", "module": "CAM", "action": "create/recompute", "document": { "name": "CAMKernelDocument", "activeAfterClose": 0 }, "object": { "name": "Toolpath", "type": "Path::Feature" }, "path": { "commandCount": 3, "length": 20, "gcode": "G0 X0.000000 Y0.000000\nG1 F100.000000 X10.000000 Y0.000000\nG1 F100.000000 X10.000000 Y10.000000\n" }, "recompute": { "count": 1, "hasError": 0 }, "stateSha256": "ad8497095fc6589bdea7c0a4d2c19b28b9d8c9c17227aa0f9111863e0b355677" } } }, "trace": [ { "direction": "request", "requestId": "cam-success", "command": "cam.createRecompute", "payload": { "schema": "freecad-web-cam/create-recompute/v1", "fixture": "CAMKernelDocument", "objectType": "Path::Feature", "gcode": "G0 X0 Y0\nG1 X10 Y0 F100\nG1 X10 Y10 F100\n" } }, { "direction": "handler-start", "requestId": "cam-success" }, { "direction": "handler-end", "requestId": "cam-success" }, { "direction": "response", "requestId": "cam-success", "kind": "result", "code": null }, { "direction": "request", "requestId": "cam-error", "command": "cam.createRecompute", "payload": { "schema": "freecad-web-cam/create-recompute/v1", "fixture": "CAMKernelDocument", "objectType": "Path::Feature", "gcode": "G1 X" } }, { "direction": "handler-start", "requestId": "cam-error" }, { "direction": "handler-end", "requestId": "cam-error" }, { "direction": "response", "requestId": "cam-error", "kind": "error", "code": "invalid_gcode" }, { "direction": "request", "requestId": "cam-success", "command": "cam.createRecompute", "payload": { "schema": "freecad-web-cam/create-recompute/v1", "fixture": "CAMKernelDocument", "objectType": "Path::Feature", "gcode": "G0 X0 Y0\nG1 X10 Y0 F100\nG1 X10 Y10 F100\n" } }, { "direction": "response", "requestId": "cam-success", "kind": "error", "code": "duplicate_request" }, { "direction": "request", "requestId": "cam-cancel", "command": "cam.createRecompute", "payload": { "schema": "freecad-web-cam/create-recompute/v1", "fixture": "CAMKernelDocument", "objectType": "Path::Feature", "gcode": "G0 X0 Y0\nG1 X10 Y0 F100\nG1 X10 Y10 F100\n" } }, { "direction": "cancel", "requestId": "cam-cancel-message", "cancelOf": "cam-cancel" }, { "direction": "response", "requestId": "cam-cancel", "kind": "error", "code": "cancelled" }, { "direction": "request", "requestId": "cam-after-cancel", "command": "cam.createRecompute", "payload": { "schema": "freecad-web-cam/create-recompute/v1", "fixture": "CAMKernelDocument", "objectType": "Path::Feature", "gcode": "G0 X0 Y0\nG1 X10 Y0 F100\nG1 X10 Y10 F100\n" } }, { "direction": "handler-start", "requestId": "cam-after-cancel" }, { "direction": "handler-end", "requestId": "cam-after-cancel" }, { "direction": "response", "requestId": "cam-after-cancel", "kind": "result", "code": null } ], "sequencing": { "maxActive": 1, "activeAfter": 0, "requestCount": 5, "responseCount": 5, "cancelAccepted": true }, "state": { "beforeCancel": "ad8497095fc6589bdea7c0a4d2c19b28b9d8c9c17227aa0f9111863e0b355677", "afterCancel": "ad8497095fc6589bdea7c0a4d2c19b28b9d8c9c17227aa0f9111863e0b355677", "unchangedAfterCancel": true }, "schemaChecks": { "request": true, "result": true, "expectedError": true, "duplicate": true, "cancel": true, "noNativePointers": true }, "commands": [ "npx tsc --target ES2022 --module ESNext --moduleResolution Bundler --strict --skipLibCheck --outDir /tmp/freecad-p6-cam-facade --declaration false --noEmit false src/facade-envelope.ts src/cam-facade.ts", "node tools/run_p6_cam_facade_smoke.mjs /tmp/freecad-p6-cam-facade/cam-facade.js" ], "artifacts": { "schema": "docs/p6/cam-facade.schema.json", "workerLog": "docs/freecad-p6-cam-e-facade.log" }, "boundaries": [ "The facade returns a deterministic CAM summary and never exposes a native or WASM pointer.", "Only one create/recompute action is included." ] }