Skip to content

Models

Data models and schemas used throughout the CLI.

Pydantic models for the CLI.

Agent

Bases: BaseModel

Represents an agent that can be run.

Source code in src/opensymbolicai_cli/models.py
class Agent(BaseModel):
    """Represents an agent that can be run."""

    id: str
    name: str
    description: str = ""
    status: str = "idle"

AgentRun

Bases: BaseModel

Represents a single run of an agent.

Source code in src/opensymbolicai_cli/models.py
class AgentRun(BaseModel):
    """Represents a single run of an agent."""

    agent_id: str
    run_id: str
    status: str = "pending"
    output: str = ""

ModelInfo

Bases: BaseModel

Information about an available model.

Source code in src/opensymbolicai_cli/models.py
class ModelInfo(BaseModel):
    """Information about an available model."""

    name: str
    provider: str
    description: str = ""

Settings

Bases: BaseModel

Application settings.

Source code in src/opensymbolicai_cli/models.py
class Settings(BaseModel):
    """Application settings."""

    agents_folder: Path | None = None
    default_provider: str = "ollama"
    default_model: str = ""
    debug_mode: bool = False

    @classmethod
    def load(cls) -> "Settings":
        """Load settings from file, or return defaults."""
        settings_file = _get_settings_file()
        if settings_file.exists():
            try:
                data = json.loads(settings_file.read_text())
                return cls.model_validate(data)
            except Exception:
                return cls()
        return cls()

    def save(self) -> None:
        """Save settings to file."""
        settings_file = _get_settings_file()
        settings_file.write_text(self.model_dump_json(indent=2))

load() classmethod

Load settings from file, or return defaults.

Source code in src/opensymbolicai_cli/models.py
@classmethod
def load(cls) -> "Settings":
    """Load settings from file, or return defaults."""
    settings_file = _get_settings_file()
    if settings_file.exists():
        try:
            data = json.loads(settings_file.read_text())
            return cls.model_validate(data)
        except Exception:
            return cls()
    return cls()

save()

Save settings to file.

Source code in src/opensymbolicai_cli/models.py
def save(self) -> None:
    """Save settings to file."""
    settings_file = _get_settings_file()
    settings_file.write_text(self.model_dump_json(indent=2))