feat(runtime): capture step evidence in console
Tests / Test passed: 862

This commit is contained in:
2026-07-15 10:12:09 +08:00
parent 8d5b02e37f
commit ccde30e378
20 changed files with 594 additions and 53 deletions
+10 -2
View File
@@ -113,6 +113,9 @@ class Scene:
width: int
height: int
elements: list[SceneElement] = field(default_factory=list)
# Keep raw OCR observations for local execution evidence without duplicating
# them in the normalized, LLM-facing scene payload.
ocr_elements: list[SceneElement] = field(default_factory=list)
def to_dict(self) -> dict[str, Any]:
return {
@@ -120,6 +123,9 @@ class Scene:
"elements": [element.to_dict() for element in self.elements],
}
def ocr_results_to_dict(self) -> list[dict[str, Any]]:
return [element.to_dict() for element in self.ocr_elements]
@classmethod
def from_dict(cls, data: dict[str, Any]) -> "Scene":
screen = data.get("screen") or {}
@@ -127,8 +133,11 @@ class Scene:
width=int(screen.get("width") or data.get("width") or 0),
height=int(screen.get("height") or data.get("height") or 0),
elements=[
SceneElement.from_dict(element) for element in data.get("elements", [])
],
ocr_elements=[
SceneElement.from_dict(element)
for element in data.get("elements", [])
for element in data.get("ocr_elements", [])
],
)
@@ -179,4 +188,3 @@ class Step:
"result": self.result,
"error": self.error,
}