257 lines
7.0 KiB
JSON
257 lines
7.0 KiB
JSON
{
|
|
"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."
|
|
]
|
|
}
|