"""system_tools.py - read-only systemove info."""
from __future__ import annotations

import subprocess
from typing import Any


def _run(cmd: list[str], timeout: int = 10) -> str:
    try:
        r = subprocess.run(cmd, capture_output=True, text=True, timeout=timeout)
        return (r.stdout or "") + (r.stderr or "")
    except Exception as e:
        return f"[{type(e).__name__}: {e}]"


def system_status() -> dict[str, Any]:
    return {
        "status": "success",
        "uptime": _run(["uptime"]).strip(),
        "disk": _run(["df", "-h", "/"]).strip(),
        "memory": _run(["free", "-h"]).strip(),
        "load": _run(["cat", "/proc/loadavg"]).strip(),
        "top_processes": _run([
            "bash", "-c",
            "ps aux --sort=-%mem | head -6"
        ]).strip(),
    }


SYSTEM_STATUS_TOOL = {"type": "function", "function": {
    "name": "system_status",
    "description": "Vrati stav systemu: uptime, disk, pamet, load, top procesy.",
    "parameters": {"type": "object", "properties": {},
        "required": [], "additionalProperties": False}}}

__all__ = ["SYSTEM_STATUS_TOOL", "system_status"]
