Files
screenjob/src/models.py
Space-Banane 4123765aba
Some checks failed
CI / test (push) Failing after 8s
Commit remaining workspace updates
2026-05-31 20:43:36 +02:00

72 lines
1.8 KiB
Python

from __future__ import annotations
from dataclasses import dataclass
from pathlib import Path
from typing import Any
@dataclass
class RunArtifacts:
run_id: str
root_dir: Path
logs_dir: Path
shots_dir: Path
enhance_dir: Path
log_file: Path
@dataclass
class AgentResult:
completed: bool
result: str
return_message: str
data: Any | None
steps: int
started_at: float
ended_at: float
usage: "UsageSummary"
error: str | None = None
cancelled: bool = False
@dataclass
class UsageSummary:
input_tokens: int = 0
cached_input_tokens: int = 0
output_tokens: int = 0
reasoning_tokens: int = 0
total_tokens: int = 0
estimated_cost_usd: float | None = None
model_for_pricing: str | None = None
def to_dict(self) -> dict[str, Any]:
return {
"input_tokens": self.input_tokens,
"cached_input_tokens": self.cached_input_tokens,
"output_tokens": self.output_tokens,
"reasoning_tokens": self.reasoning_tokens,
"total_tokens": self.total_tokens,
"estimated_cost_usd": self.estimated_cost_usd,
"model_for_pricing": self.model_for_pricing,
}
@dataclass
class RuntimeOptions:
model: str
max_steps: int = 60
command_timeout: int = 45
type_interval: float = 0.02
click_pause: float = 0.10
reasoning_effort: str = "medium"
screen_context_decay_steps: int = 4
max_visual_context_images: int = 3
native_automation_mode: str = "prefer"
dialog_timeout_seconds: float = 12.0
focus_timeout_seconds: float = 8.0
ui_element_timeout_seconds: float = 8.0
max_retries_per_surface: int = 3
pretty_logs: bool = False
disable_tools: set[str] | None = None
prohibited_key_combos: set[str] | None = None