async def test_idle_starts_with_bot_speech(self):
        """Test that monitoring starts with bot speaking frames, not just user speech."""
        callback_called = asyncio.Event()

        async def idle_callback(processor: UserIdleProcessor) -> None:
            callback_called.set()

        processor = UserIdleProcessor(callback=idle_callback, timeout=0.1)

        frames_to_send = [
            BotStartedSpeakingFrame(),
            BotSpeakingFrame(),
            BotStoppedSpeakingFrame(),
            SleepFrame(sleep=0.2),
        ]

        expected_down_frames = [
            BotStartedSpeakingFrame,
            BotSpeakingFrame,
            BotStoppedSpeakingFrame,
        ]

        await run_test(
            processor,
            frames_to_send=frames_to_send,
            expected_down_frames=expected_down_frames,
        )

        assert callback_called.is_set(), "Idle callback not called after bot speech"
Test that monitoring starts with bot speaking frames, not just user speech.
tests/test_user_idle_processor.py