"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from openrouter.types import BaseModel
from typing import Literal, Optional
from typing_extensions import NotRequired, TypedDict


CustomToolCallItemType = Literal["custom_tool_call",]


class CustomToolCallItemTypedDict(TypedDict):
    r"""A call to a custom (freeform-grammar) tool created by the model — distinct from `function_call`. Used for tools like Codex CLI's `apply_patch` whose payload is opaque text rather than JSON arguments."""

    call_id: str
    input: str
    name: str
    type: CustomToolCallItemType
    id: NotRequired[str]
    namespace: NotRequired[str]
    r"""Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server)"""


class CustomToolCallItem(BaseModel):
    r"""A call to a custom (freeform-grammar) tool created by the model — distinct from `function_call`. Used for tools like Codex CLI's `apply_patch` whose payload is opaque text rather than JSON arguments."""

    call_id: str

    input: str

    name: str

    type: CustomToolCallItemType

    id: Optional[str] = None

    namespace: Optional[str] = None
    r"""Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server)"""
