1"""Stream conversion for the Claude mapper."""
2
3from __future__ import annotations
4
5from typing import TYPE_CHECKING, Any
6
7from lexigram.ai.relay.errors import unsupported_feature
8from lexigram.contracts.ai.exceptions import RelayError
9from lexigram.contracts.ai.relay.ir import StreamDelta, StreamState
10from lexigram.contracts.core.result import Err, Result
11
12if TYPE_CHECKING:
13 from lexigram.ai.relay.mappers.claude import ClaudeMapper
14
15
16class StreamMixin:
17 """Stream conversion is deferred to the shared stream lifecycle task."""
18
19 def stream_to_delta(
20 self: ClaudeMapper, event: Any, *, state: StreamState
21 ) -> Result[tuple[StreamDelta, ...], RelayError]:
22 """Stream conversion is deferred to the shared stream lifecycle task."""
23 return Err(
24 unsupported_feature("claude stream conversion is not implemented yet")
25 )
26
27 def delta_to_stream(
28 self: ClaudeMapper, delta: StreamDelta, *, state: StreamState
29 ) -> Result[tuple[Any, ...], RelayError]:
30 """Stream conversion is deferred to the shared stream lifecycle task."""
31 return Err(
32 unsupported_feature("claude stream conversion is not implemented yet")
33 )