{ "schema": "freecad-web-p6-cam-action-04-kernel/v1", "task_id": "FW-P6-CAM-ACT-04-C", "module": "CAM", "action": "python-api", "status": "pass", "source_revision": "b5a086fda59b0325fe0996147e6e9b344414f9bc", "fixture": { "schema": "freecad-web-cam/python-api/v1", "module": "CAM", "sourceRevision": "b5a086fda59b0325fe0996147e6e9b344414f9bc", "entry": "src/Mod/CAM/Path", "input_sha256": "379fc54fff09c4e5960be1419737893a460f6850d17445621fd5db95a3a3d6ae" }, "result": { "success": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "result", "requestId": "cam-action-04-python", "result": { "schema": "freecad-web-cam/python-api/v1", "module": "CAM", "action": "python-api", "sourceRevision": "b5a086fda59b0325fe0996147e6e9b344414f9bc", "currentSourceRevision": "b5a086fda59b0325fe0996147e6e9b344414f9bc", "sourceEntry": "src/Mod/CAM/Path", "apiCount": 2883, "expectedApiCount": 2883, "kindCounts": { "class": 512, "function": 731, "method": 1640 }, "representatives": [ { "kind": "class", "name": "PathJob", "path": "src/Mod/CAM/Path/Main/Job.py", "line": 42 }, { "kind": "function", "name": "parseSubLines", "path": "src/Mod/CAM/Path/Op/Base.py", "line": 118 }, { "kind": "method", "name": "setFromGCode", "path": "src/Mod/CAM/Path/Op/Base.py", "line": 233 } ], "guiExcluded": [ "FreeCADGui", "PySide", "pivy.coin" ], "readOnly": true, "stateSha256": "c9b5a4ccf98df2fd76a7204f2a2d90237ae902c5f36157c001a68a4a0ccfd783" } }, "repeated": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "result", "requestId": "cam-action-04-python-2", "result": { "schema": "freecad-web-cam/python-api/v1", "module": "CAM", "action": "python-api", "sourceRevision": "b5a086fda59b0325fe0996147e6e9b344414f9bc", "currentSourceRevision": "b5a086fda59b0325fe0996147e6e9b344414f9bc", "sourceEntry": "src/Mod/CAM/Path", "apiCount": 2883, "expectedApiCount": 2883, "kindCounts": { "class": 512, "function": 731, "method": 1640 }, "representatives": [ { "kind": "class", "name": "PathJob", "path": "src/Mod/CAM/Path/Main/Job.py", "line": 42 }, { "kind": "function", "name": "parseSubLines", "path": "src/Mod/CAM/Path/Op/Base.py", "line": 118 }, { "kind": "method", "name": "setFromGCode", "path": "src/Mod/CAM/Path/Op/Base.py", "line": 233 } ], "guiExcluded": [ "FreeCADGui", "PySide", "pivy.coin" ], "readOnly": true, "stateSha256": "c9b5a4ccf98df2fd76a7204f2a2d90237ae902c5f36157c001a68a4a0ccfd783" } }, "result_sha256": "593d7337e95c1e3611a206ad9cd110007c0c868d274bbdb82237f8baede66c31" }, "resources": { "active_handles_after_run": 0, "document_mutation": false }, "commands": [ "npx tsc --target ES2022 --module ESNext --moduleResolution Bundler --strict --skipLibCheck --outDir /tmp/freecad-p6-cam-action-04 --declaration false --noEmit false src/facade-envelope.ts src/cam-python-facade.ts", "node tools/run_p6_cam_action04_kernel_smoke.mjs /tmp/freecad-p6-cam-action-04/cam-python-facade.js" ], "boundaries": [ "Python API result is a deterministic read-only inventory summary, not arbitrary Python execution." ] }