# Code generated by Lark OpenAPI. from typing import Any, Optional, Union, Dict, List, Set, IO, Callable, Type from lark_oapi.core.construct import init from .scenario_context_extra import ScenarioContextExtra from .system_info import SystemInfo from .memory_message import MemoryMessage class ScenarioContext(object): _types = { "extra": ScenarioContextExtra, "system_info": SystemInfo, "memory": List[MemoryMessage], "scenario": str, "work_mode": int, "tool_raw_instruction": str, } def __init__(self, d=None): self.extra: Optional[ScenarioContextExtra] = None self.system_info: Optional[SystemInfo] = None self.memory: Optional[List[MemoryMessage]] = None self.scenario: Optional[str] = None self.work_mode: Optional[int] = None self.tool_raw_instruction: Optional[str] = None init(self, d, self._types) @staticmethod def builder() -> "ScenarioContextBuilder": return ScenarioContextBuilder() class ScenarioContextBuilder(object): def __init__(self) -> None: self._scenario_context = ScenarioContext() def extra(self, extra: ScenarioContextExtra) -> "ScenarioContextBuilder": self._scenario_context.extra = extra return self def system_info(self, system_info: SystemInfo) -> "ScenarioContextBuilder": self._scenario_context.system_info = system_info return self def memory(self, memory: List[MemoryMessage]) -> "ScenarioContextBuilder": self._scenario_context.memory = memory return self def scenario(self, scenario: str) -> "ScenarioContextBuilder": self._scenario_context.scenario = scenario return self def work_mode(self, work_mode: int) -> "ScenarioContextBuilder": self._scenario_context.work_mode = work_mode return self def tool_raw_instruction(self, tool_raw_instruction: str) -> "ScenarioContextBuilder": self._scenario_context.tool_raw_instruction = tool_raw_instruction return self def build(self) -> "ScenarioContext": return self._scenario_context