# Public API surface of simvx.ai.
# Generated by tools/api_surface.py; a change here is a change to what games can call.

[exports]
AgentRunResult class(final_text: 'str', turns: 'int', tool_calls: 'int', terminated: 'bool' = ..., reason: 'str' = ..., transcript: 'list[dict[str, Any]]' = ...) -> 'None'
AgentSession class(root_node: 'Node', *, screen_size: 'tuple[float, float]' = ..., dt: 'float' = ..., terminal_fn: 'Callable[[Node | None], str | None] | None' = ..., capture_fn: 'Callable[..., dict[str, Any]] | None' = ..., allow_code_exec: 'bool' = ..., render: 'bool' = ..., record: 'bool' = ...) -> 'None'
AttachClient class(sock: 'socket.socket') -> 'None'
AttachError class
BARK_KEY str
CachingClient class(inner: 'LLMClient', cache_dir: 'str | Path', *, mode: 'str' = ...) -> 'None'
DEFAULT_MAX_ATTEMPTS int
DEFAULT_PLAN dict
GenerationResult class(status: 'str', source: 'str', node_name: 'str', attempts: 'int', snapshot: 'dict[str, Any] | None' = ..., errors: 'tuple[str, ...]' = ...) -> 'None'
LLMBrain class(client: 'LLMClient', *, persona: 'str' = ..., facts: 'FactsSpec | None' = ..., period: 'float' = ..., max_tokens: 'int' = ..., temperature: 'float' = ..., model: 'str | None' = ..., fallback: 'str' = ..., bark_key: 'str' = ...) -> 'None'
LLMCacheMiss class
LLMClient class()
LLMResponse class(text: 'str' = ..., tool_calls: 'list[ToolCall]' = ..., finish_reason: 'str' = ..., model: 'str' = ..., usage: 'dict[str, int]' = ..., raw: 'dict[str, Any]' = ...) -> 'None'
LiveInputRecorder class(live_input: '_Input', frame: 'Callable[[], int]') -> 'None'
Message GenericAlias
NodeGenerator class(client: 'LLMClient', *, max_attempts: 'int' = ..., smoke_frames: 'int' = ..., subprocess_timeout: 'float' = ..., max_tokens: 'int' = ..., temperature: 'float' = ..., model: 'str | None' = ...) -> 'None'
OpenAICompatibleClient class(base_url: 'str | None' = ..., *, api_key: 'str | None' = ..., model: 'str | None' = ..., temperature: 'float' = ..., max_tokens: 'int | None' = ..., timeout: 'float' = ..., http_client: 'httpx.AsyncClient | None' = ...) -> 'None'
PLAN_KEY str
PLAN_SCHEMA dict
SessionBridge class(session: 'AgentSession', *, token: 'str', port: 'int' = ..., backlog: 'int' = ..., max_pending: 'int' = ..., max_per_frame: 'int' = ..., max_connections: 'int' = ...) -> 'None'
SessionTape class() -> 'None'
SquadCommanderBrain class(client: 'LLMClient', squad: 'Blackboard', *, facts: 'FactsSpec | None' = ..., period: 'float' = ..., max_tokens: 'int' = ..., temperature: 'float' = ..., model: 'str | None' = ..., plan_key: 'str' = ...) -> 'None'
StaticValidationError class
StepResult class(frame: 'int', elapsed: 'float', terminated: 'bool' = ..., truncated: 'bool' = ..., reason: 'str' = ..., checkpoints: 'dict[str, dict]' = ...) -> 'None'
TapeEntry class(frame: 'int', kind: 'str', verb: 'str' = ..., args: 'tuple[Any, ...]' = ..., path: 'str' = ..., name: 'str' = ..., value: 'Any' = ..., frames: 'int' = ..., label: 'str' = ..., snapshot: 'dict[str, Any] | None' = ..., reason: 'str' = ..., method: 'str' = ...) -> 'None'
ToolCall class(id: 'str', name: 'str', arguments: 'dict[str, Any]') -> 'None'
attach function(pid: 'int', *, port: 'int', token: 'str | None' = ..., allow_code_exec: 'bool' = ..., connect_timeout: 'float' = ...) -> 'AttachClient'
build_tools function(session: 'AgentSession') -> 'list[dict[str, Any]]'
dispatch function(session: 'AgentSession', name: 'str', arguments: 'dict[str, Any]', *, transport: 'bool' = ...) -> 'dict[str, Any]'
emit_replay_test function(tape: 'SessionTape', *, name: 'str', scene_factory: 'str', screen_size: 'tuple[float, float]' = ..., dt: 'float' = ..., seed: 'int | None' = ..., tol: 'bool' = ...) -> 'str'
generate_sync function(client: 'LLMClient', description: 'str', *, allow_execution: 'bool' = ..., **kwargs: 'Any') -> 'GenerationResult'
parse_chat_completion function(data: 'dict[str, Any]') -> 'LLMResponse'
run_agent function(session: 'AgentSession', client: 'LLMClient', goal: 'str', *, model: 'str | None' = ..., max_turns: 'int' = ..., system: 'str | None' = ...) -> 'AgentRunResult'
validate_plan function(plan: 'Any') -> 'dict[str, Any] | None'
validate_source function(source: 'str') -> 'str'

[methods]
AgentSession.attach method(loop: 'Any', *, dt: 'float' = ..., terminal_fn: 'Callable[[Node | None], str | None] | None' = ..., allow_code_exec: 'bool' = ..., record: 'bool' = ...) -> 'AgentSession'
AgentSession.call_method method(self, path: 'str', name: 'str', args: 'list | None' = ..., kwargs: 'dict | None' = ...) -> 'dict[str, Any]'
AgentSession.capture method(self, *, scale: 'float' = ..., region: 'tuple[int, int, int, int] | None' = ...) -> 'dict[str, Any]'
AgentSession.capture_array method(self, *, scale: 'float' = ..., region: 'tuple[int, int, int, int] | None' = ...) -> 'Any'
AgentSession.checkpoint method(self, label: 'str') -> 'str'
AgentSession.click method(self, x: 'float', y: 'float', *, button: 'str' = ...) -> 'dict[str, Any]'
AgentSession.close method(self) -> 'None'
AgentSession.crystallise method(self, name: 'str', *, scene_factory: 'str', path: 'str | Path | None' = ..., screen_size: 'tuple[float, float] | None' = ..., seed: 'int | None' = ..., tol: 'bool' = ...) -> 'Path'
AgentSession.describe method(self, *, ui: 'bool' = ..., max_nodes: 'int' = ...) -> 'str'
AgentSession.diff method(self, before: 'str', after: 'str | None' = ...) -> 'list[str]'
AgentSession.elapsed property
AgentSession.find method(self, query: 'str') -> 'list[dict[str, str]]'
AgentSession.force_step method(self, frames: 'int' = ...) -> 'dict[str, Any]'
AgentSession.frame property
AgentSession.gamepad_axis method(self, axis: 'str', value: 'float') -> 'dict[str, Any]'
AgentSession.gamepad_button method(self, name: 'str', *, mode: 'str' = ...) -> 'dict[str, Any]'
AgentSession.get_recording method(self) -> 'dict[str, Any]'
AgentSession.key method(self, name: 'str', *, mode: 'str' = ...) -> 'dict[str, Any]'
AgentSession.mouse_move method(self, x: 'float', y: 'float') -> 'dict[str, Any]'
AgentSession.node_at method(self, path: 'str') -> 'dict[str, Any]'
AgentSession.pause method(self) -> 'dict[str, Any]'
AgentSession.paused property
AgentSession.recorder property
AgentSession.resume method(self) -> 'dict[str, Any]'
AgentSession.root property
AgentSession.scroll method(self, dy: 'float' = ..., dx: 'float' = ...) -> 'dict[str, Any]'
AgentSession.set_of_marks method(self) -> 'list[dict[str, Any]]'
AgentSession.set_prop method(self, path: 'str', name: 'str', value: 'Any') -> 'dict[str, Any]'
AgentSession.snapshot method(self) -> 'dict[str, Any]'
AgentSession.start_recording method(self) -> 'dict[str, Any]'
AgentSession.step method(self, frames: 'int' = ..., *, checkpoint: 'str | None' = ...) -> 'StepResult'
AgentSession.stop_recording method(self) -> 'dict[str, Any]'
AgentSession.touch method(self, phase: 'str', x: 'float', y: 'float', *, finger: 'int' = ...) -> 'dict[str, Any]'
AgentSession.type_text method(self, text: 'str') -> 'dict[str, Any]'
AgentSession.wait_frames method(self, frames: 'int' = ...) -> 'dict[str, Any]'
AttachClient.call method(self, tool: 'str', **arguments: 'Any') -> 'dict[str, Any]'
AttachClient.close method(self) -> 'None'
CachingClient.aclose method(self) -> 'None'
CachingClient.complete method(self, messages: 'list[Message]', **kwargs: 'Any') -> 'LLMResponse'
GenerationResult.ok property
LLMBrain.text property
LLMClient.aclose method(self) -> 'None'
LLMClient.complete method(self, messages: 'list[Message]', *, tools: 'list[dict[str, Any]] | None' = ..., response_format: 'dict[str, Any] | None' = ..., temperature: 'float | None' = ..., max_tokens: 'int | None' = ..., model: 'str | None' = ..., **kwargs: 'Any') -> 'LLMResponse'
LLMClient.structured method(self, messages: 'list[Message]', schema: 'dict[str, Any]', *, name: 'str' = ..., **kwargs: 'Any') -> 'dict[str, Any]'
LiveInputRecorder.on_frame_service method(self, loop: 'FrameLoop') -> 'None'
LiveInputRecorder.on_loop_end method(self, loop: 'FrameLoop') -> 'None'
NodeGenerator.generate method(self, description: 'str', *, allow_execution: 'bool' = ...) -> 'GenerationResult'
OpenAICompatibleClient.aclose method(self) -> 'None'
OpenAICompatibleClient.complete method(self, messages: 'list[Message]', *, tools: 'list[dict[str, Any]] | None' = ..., response_format: 'dict[str, Any] | None' = ..., temperature: 'float | None' = ..., max_tokens: 'int | None' = ..., model: 'str | None' = ..., **kwargs: 'Any') -> 'LLMResponse'
OpenAICompatibleClient.from_env method(**overrides: 'Any') -> 'OpenAICompatibleClient'
SessionBridge.on_frame_service method(self, loop: 'FrameLoop') -> 'None'
SessionBridge.on_loop_end method(self, loop: 'FrameLoop') -> 'None'
SessionBridge.start method(self) -> 'int'
SessionBridge.stop method(self) -> 'None'
SessionTape.checkpoint method(self, frame: 'int', label: 'str', snapshot: 'dict[str, Any]') -> 'None'
SessionTape.input method(self, frame: 'int', verb: 'str', *args: 'Any') -> 'None'
SessionTape.noreplay method(self, frame: 'int', method: 'str') -> 'None'
SessionTape.set_prop method(self, frame: 'int', path: 'str', name: 'str', value: 'Any') -> 'None'
SessionTape.step method(self, frame: 'int', frames: 'int') -> 'None'
SessionTape.terminal method(self, frame: 'int', reason: 'str') -> 'None'
SessionTape.terminal_snapshot property
SquadCommanderBrain.plan property
StepResult.as_dict method(self) -> 'dict[str, Any]'
_LowFreqLLMBrain.close method(self) -> 'None'
_LowFreqLLMBrain.decide method(self, ctx: 'AIContext') -> 'Action | None'
_LowFreqLLMBrain.last property

[properties]
