Tests / Test apps.device-host-agent.tests.test_mcp_token.test_load_or_create_concurrent_calls_do_not_corrupt failed
34 lines
909 B
Python
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]
|