# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
"""Semantic event types emitted by the streaming parser engine."""

from __future__ import annotations

from dataclasses import dataclass
from enum import Enum, auto


class EventType(Enum):
    TEXT_CHUNK = auto()
    REASONING_START = auto()
    REASONING_CHUNK = auto()
    REASONING_END = auto()
    TOOL_CALL_START = auto()
    TOOL_NAME = auto()
    ARG_VALUE_CHUNK = auto()
    TOOL_CALL_END = auto()


@dataclass(slots=True)
class SemanticEvent:
    type: EventType
    value: str = ""
    tool_index: int = -1
