forge-guardrails 0.1.0

Foundation types for an LLM-agent workflow framework
Documentation
from __future__ import annotations

from dataclasses import dataclass, field
from typing import Any


@dataclass
class ProxyToolCall:
    id: str
    name: str
    args: dict[str, Any]
    arguments_json: str
    reasoning: str | None = None


@dataclass
class ProxyTurn:
    kind: str
    content: str = ""
    tool_calls: list[ProxyToolCall] = field(default_factory=list)
    input_tokens: int = 0
    output_tokens: int = 0


@dataclass
class ProxyRunResult:
    scenario_name: str
    completeness: bool
    iterations_used: int
    terminal_args: dict[str, Any] | None = None
    accuracy: bool | None = None
    validate_error: str | None = None
    error_type: str | None = None
    error_message: str | None = None
    elapsed_seconds: float = 0.0
    input_tokens: int = 0
    output_tokens: int = 0
    retry_nudges: int = 0
    step_nudges: int = 0
    tool_errors: int = 0
    reasoning_msgs: int = 0
    tool_sequence: list[str] = field(default_factory=list)
    tool_args: list[dict[str, Any]] = field(default_factory=list)
    final_text: str = ""
    proxy_terminal_source: str | None = None
    proxy_missing_required_steps: list[str] = field(default_factory=list)
    proxy_required_steps_satisfied: bool = True