344 lines
12 KiB
JSON
344 lines
12 KiB
JSON
{
|
|
"schema": "freecad-web-p6-plot-tier1-readonly-family-runtime/v1",
|
|
"taskId": "FW-P6-FPA-F1-PLOT",
|
|
"module": "Plot",
|
|
"tier": "tier-1-readonly",
|
|
"status": "pass_with_restricted",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"route": {
|
|
"worker": "web/src/plot-python.worker.ts",
|
|
"facade": "web/src/plot-python-family-facade.ts",
|
|
"command": "plot.pythonFamilyBatch",
|
|
"native": "freecad-source/src/WebAssembly/FreeCADCoreProbe/PlotRuntimeProbe.cpp:fc_web_dispatch_json"
|
|
},
|
|
"input": {
|
|
"cmd": "plot.pythonFamilyBatch",
|
|
"args": {
|
|
"tier": "tier-1-readonly",
|
|
"records": [
|
|
{
|
|
"apiId": "py:Plot:class:Line",
|
|
"name": "Line",
|
|
"family": "generic-object",
|
|
"sourcePath": "src/Mod/Plot/Plot.py",
|
|
"disposition": "planned"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:class:Plot",
|
|
"name": "Plot",
|
|
"family": "generic-object",
|
|
"sourcePath": "src/Mod/Plot/Plot.py",
|
|
"disposition": "planned"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:function:addNavigationToolbar",
|
|
"name": "addNavigationToolbar",
|
|
"family": "view-resource",
|
|
"sourcePath": "src/Mod/Plot/Plot.py",
|
|
"disposition": "planned"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:function:delNavigationToolbar",
|
|
"name": "delNavigationToolbar",
|
|
"family": "view-resource",
|
|
"sourcePath": "src/Mod/Plot/Plot.py",
|
|
"disposition": "planned"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:method:Line.getp",
|
|
"name": "Line.getp",
|
|
"family": "generic-object",
|
|
"sourcePath": "src/Mod/Plot/Plot.py",
|
|
"disposition": "planned"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:method:Plot.isGrid",
|
|
"name": "Plot.isGrid",
|
|
"family": "generic-object",
|
|
"sourcePath": "src/Mod/Plot/Plot.py",
|
|
"disposition": "planned"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:method:Plot.isLegend",
|
|
"name": "Plot.isLegend",
|
|
"family": "generic-object",
|
|
"sourcePath": "src/Mod/Plot/Plot.py",
|
|
"disposition": "planned"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"inputSha256": "28b6430f872ff58311acb8585e916bf14a1f868b6cfdadce53b539a5c4f8f3b2",
|
|
"result": {
|
|
"cmd": "plot.pythonFamilyBatch",
|
|
"count": 7,
|
|
"module": "Plot",
|
|
"ok": true,
|
|
"records": [
|
|
{
|
|
"apiId": "py:Plot:class:Line",
|
|
"code": "native_python_method",
|
|
"family": "generic-object",
|
|
"message": "Plot Python symbol was resolved and replayed by FreeCAD",
|
|
"name": "Line",
|
|
"native": true,
|
|
"parameterSchema": "source-declared",
|
|
"replay": "native-python-reflection",
|
|
"resourcesReleased": true,
|
|
"returnSchema": "class",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"status": "exposed"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:class:Plot",
|
|
"code": "native_python_method",
|
|
"family": "generic-object",
|
|
"message": "Plot Python symbol was resolved and replayed by FreeCAD",
|
|
"name": "Plot",
|
|
"native": true,
|
|
"parameterSchema": "source-declared",
|
|
"replay": "native-python-reflection",
|
|
"resourcesReleased": true,
|
|
"returnSchema": "class",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"status": "exposed"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:function:addNavigationToolbar",
|
|
"code": "gui_dependency_unavailable",
|
|
"family": "view-resource",
|
|
"message": "Plot navigation/view API requires Qt GUI capabilities unavailable in the headless Web runtime",
|
|
"name": "addNavigationToolbar",
|
|
"native": true,
|
|
"parameterSchema": "source-declared",
|
|
"resourcesReleased": true,
|
|
"returnSchema": "gui-resource",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"status": "restricted"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:function:delNavigationToolbar",
|
|
"code": "gui_dependency_unavailable",
|
|
"family": "view-resource",
|
|
"message": "Plot navigation/view API requires Qt GUI capabilities unavailable in the headless Web runtime",
|
|
"name": "delNavigationToolbar",
|
|
"native": true,
|
|
"parameterSchema": "source-declared",
|
|
"resourcesReleased": true,
|
|
"returnSchema": "gui-resource",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"status": "restricted"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:method:Line.getp",
|
|
"code": "native_python_method",
|
|
"family": "generic-object",
|
|
"message": "Plot Python symbol was resolved and replayed by FreeCAD",
|
|
"name": "Line.getp",
|
|
"native": true,
|
|
"parameterSchema": "{prop:string}",
|
|
"replay": "native-python-reflection",
|
|
"resourcesReleased": true,
|
|
"returnSchema": "value|null",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"status": "exposed"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:method:Plot.isGrid",
|
|
"code": "native_python_method",
|
|
"family": "generic-object",
|
|
"message": "Plot Python symbol was resolved and replayed by FreeCAD",
|
|
"name": "Plot.isGrid",
|
|
"native": true,
|
|
"parameterSchema": "{}",
|
|
"replay": "native-python-reflection",
|
|
"resourcesReleased": true,
|
|
"returnSchema": "bool",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"status": "exposed"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:method:Plot.isLegend",
|
|
"code": "native_python_method",
|
|
"family": "generic-object",
|
|
"message": "Plot Python symbol was resolved and replayed by FreeCAD",
|
|
"name": "Plot.isLegend",
|
|
"native": true,
|
|
"parameterSchema": "{}",
|
|
"replay": "native-python-reflection",
|
|
"resourcesReleased": true,
|
|
"returnSchema": "bool",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"status": "exposed"
|
|
}
|
|
],
|
|
"resourcesReleased": true,
|
|
"schema": "freecad-web-plot/python-family-batch/v1",
|
|
"source": "freecad-source",
|
|
"tier": "tier-1-readonly"
|
|
},
|
|
"resultSha256": "84acca22980caa3750fc8214087b9de09b9d6e2d63289548b35e289060a48d60",
|
|
"replay": {
|
|
"equal": true,
|
|
"resultSha256": "84acca22980caa3750fc8214087b9de09b9d6e2d63289548b35e289060a48d60"
|
|
},
|
|
"crossModuleBoundary": {
|
|
"result": {
|
|
"cmd": "plot.pythonFamilyBatch",
|
|
"count": 1,
|
|
"module": "Plot",
|
|
"ok": true,
|
|
"records": [
|
|
{
|
|
"apiId": "py:BIM:class:Binding",
|
|
"code": "unmatched_source_record",
|
|
"family": "generic-object",
|
|
"message": "Plot API record is not part of this module-scoped adapter",
|
|
"name": "Line",
|
|
"native": true,
|
|
"resourcesReleased": true,
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"status": "not_implemented"
|
|
}
|
|
],
|
|
"resourcesReleased": true,
|
|
"schema": "freecad-web-plot/python-family-batch/v1",
|
|
"source": "freecad-source",
|
|
"tier": "tier-1-readonly"
|
|
},
|
|
"resultSha256": "df2b7a37449188fbae5120e5f858491e3df403a44fa6e0fa667b218cf7313e58"
|
|
},
|
|
"malformedRequest": {
|
|
"result": {
|
|
"ok": false,
|
|
"code": "invalid_request",
|
|
"error": "plot.pythonFamilyBatch requires tier=tier-1-readonly and non-empty args.records"
|
|
},
|
|
"resultSha256": "6750852baa4d8370063b8792f5ca98a283ed5aecf95197c52276a6bb1241b3e5"
|
|
},
|
|
"dispositionCounts": {
|
|
"exposed": 5,
|
|
"restricted": 2,
|
|
"nonportable": 0,
|
|
"not_implemented": 0
|
|
},
|
|
"records": [
|
|
{
|
|
"apiId": "py:Plot:class:Line",
|
|
"name": "Line",
|
|
"family": "generic-object",
|
|
"status": "exposed",
|
|
"code": "native_python_method",
|
|
"parameterSchema": "source-declared",
|
|
"returnSchema": "class",
|
|
"replay": "native-python-reflection",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"evidenceSha256": "00b2e7df0d20cdf60f4bb79e1f0ac6ab8f885fbb87770c95ba209f6430dc072c"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:class:Plot",
|
|
"name": "Plot",
|
|
"family": "generic-object",
|
|
"status": "exposed",
|
|
"code": "native_python_method",
|
|
"parameterSchema": "source-declared",
|
|
"returnSchema": "class",
|
|
"replay": "native-python-reflection",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"evidenceSha256": "59575acf5cfcc5d7143f3e23c41c6da280025e393389856599c819940d8177d5"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:function:addNavigationToolbar",
|
|
"name": "addNavigationToolbar",
|
|
"family": "view-resource",
|
|
"status": "restricted",
|
|
"code": "gui_dependency_unavailable",
|
|
"parameterSchema": "source-declared",
|
|
"returnSchema": "gui-resource",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"evidenceSha256": "b71445307ca404b3ce104b060889f835e7241284b96f6e34cc3893fc3edbe457"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:function:delNavigationToolbar",
|
|
"name": "delNavigationToolbar",
|
|
"family": "view-resource",
|
|
"status": "restricted",
|
|
"code": "gui_dependency_unavailable",
|
|
"parameterSchema": "source-declared",
|
|
"returnSchema": "gui-resource",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"evidenceSha256": "24b877ef5479d2852642f2a9796644eb3fa2c65e583602d9d1aa06fae857fcc6"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:method:Line.getp",
|
|
"name": "Line.getp",
|
|
"family": "generic-object",
|
|
"status": "exposed",
|
|
"code": "native_python_method",
|
|
"parameterSchema": "{prop:string}",
|
|
"returnSchema": "value|null",
|
|
"replay": "native-python-reflection",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"evidenceSha256": "991ac8b3c1403ad1142e51b0289993e1262136a78525f8c9c5a01585291d7a5c"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:method:Plot.isGrid",
|
|
"name": "Plot.isGrid",
|
|
"family": "generic-object",
|
|
"status": "exposed",
|
|
"code": "native_python_method",
|
|
"parameterSchema": "{}",
|
|
"returnSchema": "bool",
|
|
"replay": "native-python-reflection",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"evidenceSha256": "2b57fbdf783ae82ca6ab3d872bdc2db035e84b8ccc37174d9c5ecd18081e504f"
|
|
},
|
|
{
|
|
"apiId": "py:Plot:method:Plot.isLegend",
|
|
"name": "Plot.isLegend",
|
|
"family": "generic-object",
|
|
"status": "exposed",
|
|
"code": "native_python_method",
|
|
"parameterSchema": "{}",
|
|
"returnSchema": "bool",
|
|
"replay": "native-python-reflection",
|
|
"sourceEntry": "src/Mod/Plot/Plot.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"evidenceSha256": "7604e72cf0849b7ef7314120fe0731b5012903354bed4fa08817c2c6ba31a9bb"
|
|
}
|
|
],
|
|
"resources": {
|
|
"resourcesReleased": true,
|
|
"documentMutation": false
|
|
},
|
|
"artifacts": {
|
|
"wasm": {
|
|
"path": "web/public/kernel/FreeCADWebPlotRuntimeProbe.wasm",
|
|
"sha256": "325ebf698dbcc5d2af44615cb987f5715148940b2de1af0ac7393f9fe71bfeee"
|
|
},
|
|
"loader": {
|
|
"path": "web/public/kernel/FreeCADWebPlotRuntimeProbe.js",
|
|
"sha256": "c13588127a6b60801c40c79ba927b9f8c844cf7ee846a37e0d06c10da9a4926f"
|
|
}
|
|
},
|
|
"boundaries": [
|
|
"Plot navigation toolbar records remain restricted because they require Qt GUI resources.",
|
|
"All other selected records were resolved/replayed against the embedded official Plot.py Web backend.",
|
|
"All statuses and hashes come from compiled FreeCAD source through fc_web_dispatch_json; no JavaScript API result is substituted."
|
|
]
|
|
}
|