Files
showtan001 60ee157e97
Tests / Test apps.device-host-agent.tests.test_mcp_token.test_load_or_create_concurrent_calls_do_not_corrupt failed
feat: preserve planner context across task steps
2026-08-30 22:59:19 +08:00

34 lines
909 B
Python

from __future__ import annotations
from dataclasses import dataclass, field
from typing import TYPE_CHECKING, Any
from core.models import Scene
if TYPE_CHECKING:
from runtime.executor import StepResult
from world.models import WorldState
@dataclass
class TaskContext:
task_id: str
goal: str
device_platform: str | None = None
scenes: list[Scene] = field(default_factory=list)
step_results: list["StepResult"] = field(default_factory=list)
world: "WorldState | None" = None
planner_history: list[dict[str, Any]] = field(default_factory=list)
def add_scene(self, scene: Scene) -> None:
self.scenes.append(scene)
def add_step_result(self, result: "StepResult") -> None:
self.step_results.append(result)
@property
def latest_scene(self) -> Scene | None:
if not self.scenes:
return None
return self.scenes[-1]