Skip to content

Commit 5bb8645

Browse files
committed
fix(realtime): remove setMirror and mirror functionality
1 parent 36021e0 commit 5bb8645

File tree

6 files changed

+5
-58
lines changed

6 files changed

+5
-58
lines changed

decart/realtime/client.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from aiortc import MediaStreamTrack
55

66
from .webrtc_manager import WebRTCManager, WebRTCConfiguration
7-
from .messages import PromptMessage, SwitchCameraMessage
7+
from .messages import PromptMessage
88
from .types import ConnectionState, RealtimeConnectOptions
99
from ..errors import DecartSDKError, InvalidInputError, WebRTCError
1010

@@ -59,8 +59,6 @@ async def connect(
5959
options.initial_state.prompt.text,
6060
enrich=options.initial_state.prompt.enrich,
6161
)
62-
if options.initial_state.mirror is not None:
63-
await client.set_mirror(options.initial_state.mirror)
6462
except Exception as e:
6563
raise WebRTCError(str(e), cause=e)
6664

@@ -85,12 +83,6 @@ async def set_prompt(self, prompt: str, enrich: bool = True) -> None:
8583
raise InvalidInputError("Prompt cannot be empty")
8684
await self._manager.send_message(PromptMessage(type="prompt", prompt=prompt))
8785

88-
async def set_mirror(self, enabled: bool) -> None:
89-
rotate_y = 2 if enabled else 0
90-
await self._manager.send_message(
91-
SwitchCameraMessage(type="switch_camera", rotateY=rotate_y)
92-
)
93-
9486
def is_connected(self) -> bool:
9587
return self._manager.is_connected()
9688

decart/realtime/messages.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,8 @@ class PromptMessage(BaseModel):
6969
prompt: str
7070

7171

72-
class SwitchCameraMessage(BaseModel):
73-
"""Switch camera/mirror message."""
74-
75-
type: Literal["switch_camera"]
76-
rotateY: int
77-
78-
7972
# Outgoing message union (no discriminator needed - we know what we're sending)
80-
OutgoingMessage = Union[OfferMessage, IceCandidateMessage, PromptMessage, SwitchCameraMessage]
73+
OutgoingMessage = Union[OfferMessage, IceCandidateMessage, PromptMessage]
8174

8275

8376
def parse_incoming_message(data: dict) -> IncomingMessage:

decart/types.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ class Prompt(BaseModel):
2020

2121
class ModelState(BaseModel):
2222
prompt: Optional[Prompt] = None
23-
mirror: bool = Field(default=False)
2423

2524

2625
class MotionTrajectoryInput(BaseModel):

examples/realtime_file.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,7 @@ def on_error(error):
8585
options=RealtimeConnectOptions(
8686
model=model,
8787
on_remote_stream=on_remote_stream,
88-
initial_state=ModelState(
89-
prompt=Prompt(text="Lego World", enrich=True), mirror=False
90-
),
88+
initial_state=ModelState(prompt=Prompt(text="Lego World", enrich=True)),
9189
),
9290
)
9391

examples/realtime_synthetic.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,7 @@ def on_error(error):
111111
options=RealtimeConnectOptions(
112112
model=model,
113113
on_remote_stream=on_remote_stream,
114-
initial_state=ModelState(
115-
prompt=Prompt(text="Anime style", enrich=True), mirror=False
116-
),
114+
initial_state=ModelState(prompt=Prompt(text="Anime style", enrich=True)),
117115
),
118116
)
119117

tests/test_realtime_unit.py

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ async def test_realtime_client_creation_with_mock():
6565
options=RealtimeConnectOptions(
6666
model=models.realtime("mirage"),
6767
on_remote_stream=lambda t: None,
68-
initial_state=ModelState(prompt=Prompt(text="Test", enrich=True), mirror=False),
68+
initial_state=ModelState(prompt=Prompt(text="Test", enrich=True)),
6969
),
7070
)
7171

@@ -107,39 +107,6 @@ async def test_realtime_set_prompt_with_mock():
107107
assert call_args.prompt == "New prompt"
108108

109109

110-
@pytest.mark.asyncio
111-
async def test_realtime_set_mirror_with_mock():
112-
"""Test set_mirror with mocked WebRTC"""
113-
client = DecartClient(api_key="test-key")
114-
115-
with patch("decart.realtime.client.WebRTCManager") as mock_manager_class:
116-
mock_manager = AsyncMock()
117-
mock_manager.connect = AsyncMock(return_value=True)
118-
mock_manager.send_message = AsyncMock()
119-
mock_manager_class.return_value = mock_manager
120-
121-
mock_track = MagicMock()
122-
123-
from decart.realtime.types import RealtimeConnectOptions
124-
125-
realtime_client = await RealtimeClient.connect(
126-
base_url=client.base_url,
127-
api_key=client.api_key,
128-
local_track=mock_track,
129-
options=RealtimeConnectOptions(
130-
model=models.realtime("mirage"),
131-
on_remote_stream=lambda t: None,
132-
),
133-
)
134-
135-
await realtime_client.set_mirror(True)
136-
137-
mock_manager.send_message.assert_called_once()
138-
call_args = mock_manager.send_message.call_args[0][0]
139-
assert call_args.type == "switch_camera"
140-
assert call_args.rotateY == 2
141-
142-
143110
@pytest.mark.asyncio
144111
async def test_realtime_events():
145112
"""Test event handling"""

0 commit comments

Comments
 (0)