"""Background runtime supervision."""

from __future__ import annotations

import asyncio
import logging

from bot.core.metrics import incr


logger = logging.getLogger("bobi.supervisor")


def inspect_asyncio_tasks() -> dict:
    tasks = asyncio.all_tasks()

    pending = [task for task in tasks if not task.done()]

    long_named = []

    for task in pending:
        name = getattr(task, "get_name", lambda: "unknown")()

        if name:
            long_named.append(name)

    incr("supervisor.task_scans")

    return {
        "total": len(tasks),
        "pending": len(pending),
        "sample": long_named[:10],
    }
