Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-relay/src/lexigram/ai/relay/mappers/claude/stream.py: 82%

11 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-25 07:19 +0800

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 )