# plugins/host_agent/__init__.py from __future__ import annotations from typing import TYPE_CHECKING if TYPE_CHECKING: from quart import Quart _app: "Quart | None" = None def setup(app: "Quart") -> None: global _app _app = app def get_scheduled_tasks() -> list: from .scheduler import make_task return [make_task(_app)] def get_blueprint(): from .routes import host_agent_bp return host_agent_bp def register_mcp_tools(register) -> None: from .mcp_tools import register_tools register_tools(register) async def mcp_overview(db) -> list[dict]: from .mcp_tools import mcp_overview as findings return await findings(db) def get_alert_metrics() -> dict[str, list[str]]: """Host metrics ingest records for alert rules (resource = the host name; disk_used_pct per mount, resource ":"). seconds_since_seen comes from the scheduler, not the agent: "agent offline" is > 180.""" return {"host_agent": [ "cpu_pct", "mem_used_pct", "mem_available_bytes", "swap_used_bytes", "disk_used_pct_worst", "disk_used_pct", "load_1m", "load_5m", "load_15m", "uptime_secs", "seconds_since_seen", ]}