Source code for ralph.agents.invoke._invoke_options
from __future__ import annotations
from dataclasses import dataclass
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from collections.abc import Callable
from pathlib import Path
from ralph.agents.idle_watchdog import WaitingStatusListener
from ralph.phases.required_artifacts import RequiredArtifact
[docs]
@dataclass(frozen=True)
class InvokeOptions:
"""Options for agent invocation."""
model_flag: str | None = None
session_id: str | None = None
verbose: bool = False
show_progress: bool = True
workspace_path: Path | None = None
extra_env: dict[str, str] | None = None
idle_timeout_seconds: float | None = None
drain_window_seconds: float | None = None
max_waiting_on_child_seconds: float | None = None
idle_poll_interval_seconds: float | None = None
parent_exit_grace_seconds: float | None = None
descendant_wait_timeout_seconds: float | None = None
descendant_wait_poll_seconds: float | None = None
process_exit_wait_seconds: float | None = None
max_session_seconds: float | None = None
waiting_status_interval_seconds: float | None = None
suspect_waiting_on_child_seconds: float | None = None
child_progress_ttl_seconds: float | None = None
child_heartbeat_ttl_seconds: float | None = None
child_stale_label_ttl_seconds: float | None = None
child_exit_reconcile_seconds: float | None = None
max_waiting_on_child_no_progress_seconds: float | None = None
pure: bool = False
system_prompt_file: str | None = None
waiting_listener: WaitingStatusListener | None = None
permission_prompt_listener: Callable[[str], None] | None = None
required_artifact: RequiredArtifact | None = None
explicit_completion_seen: bool = False
captured_session_id: str | None = None
initial_session_id: str | None = None
settings_json: str | None = None
stop_sentinel_path: Path | None = None