Source code for kani.ext.realtime.events.client

from typing import Literal

from pydantic import Field

from .base import ClientEvent as BaseEvent
from ..models import ConversationItem, ResponseConfig, SessionConfig


# ===== events =====
[docs] class SessionUpdate(BaseEvent): type: Literal["session.update"] = "session.update" session: SessionConfig
[docs] class InputAudioBufferAppend(BaseEvent): type: Literal["input_audio_buffer.append"] = "input_audio_buffer.append" audio: str = Field(repr=False)
[docs] class InputAudioBufferCommit(BaseEvent): type: Literal["input_audio_buffer.commit"] = "input_audio_buffer.commit"
[docs] class InputAudioBufferClear(BaseEvent): type: Literal["input_audio_buffer.clear"] = "input_audio_buffer.clear"
[docs] class ConversationItemCreate(BaseEvent): type: Literal["conversation.item.create"] = "conversation.item.create" previous_item_id: str | None = None item: ConversationItem
[docs] class ConversationItemTruncate(BaseEvent): type: Literal["conversation.item.truncate"] = "conversation.item.truncate" item_id: str content_index: int audio_end_ms: int
[docs] class ConversationItemDelete(BaseEvent): type: Literal["conversation.item.delete"] = "conversation.item.delete" item_id: str
[docs] class ResponseCreate(BaseEvent): type: Literal["response.create"] = "response.create" response: ResponseConfig | None = None
[docs] class ResponseCancel(BaseEvent): type: Literal["response.cancel"] = "response.cancel"