"""Shared kernel value types (docs/kernel_spec.md §2).

Lives in its own module so both ``core.model`` and ``core._salvage`` can use
``ToolCall`` without an import cycle (``_types`` <- ``_salvage`` <- ``model``).

Boundary: stdlib only.
"""
from __future__ import annotations

from dataclasses import dataclass


@dataclass
class ToolCall:
    """One native-shaped tool call. ``arguments`` stays a raw JSON string;
    the kernel tool runner validates it (error feedback, not repair)."""

    id: str
    name: str
    arguments: str
