diff --git a/lib/livekit_components.dart b/lib/livekit_components.dart index 0914b11..12f7918 100644 --- a/lib/livekit_components.dart +++ b/lib/livekit_components.dart @@ -20,7 +20,6 @@ export 'src/context/participant_context.dart'; export 'src/context/room_context.dart'; export 'src/context/track_reference_context.dart'; export 'src/debug/logger.dart'; -export 'src/types/agent_state.dart'; export 'src/types/transcription.dart'; export 'src/ui/builder/camera_preview.dart'; export 'src/ui/builder/participant/participant_attributes.dart'; diff --git a/lib/src/types/agent_state.dart b/lib/src/types/agent_state.dart deleted file mode 100644 index ed3f857..0000000 --- a/lib/src/types/agent_state.dart +++ /dev/null @@ -1,15 +0,0 @@ -/// Possible states for the agent participant -/// These states are set by the agent and sent via LiveKit metadata -enum AgentState { - initializing, // Agent is starting up - speaking, // Agent is speaking to the user - thinking, // Agent is processing user input - listening; // Agent is listening to user audio - - static AgentState fromString(String value) { - return AgentState.values.firstWhere( - (state) => state.name == value, - orElse: () => AgentState.initializing, - ); - } -} diff --git a/lib/src/ui/widgets/track/audio_visualizer_widget.dart b/lib/src/ui/widgets/track/audio_visualizer_widget.dart index 5cfdc1b..fb1234c 100644 --- a/lib/src/ui/widgets/track/audio_visualizer_widget.dart +++ b/lib/src/ui/widgets/track/audio_visualizer_widget.dart @@ -6,7 +6,6 @@ import 'package:livekit_client/livekit_client.dart' as sdk; import 'package:provider/provider.dart'; import '../../../context/track_reference_context.dart'; -import '../../../types/agent_state.dart'; enum VisualizerState { thinking, listening, active } @@ -123,7 +122,7 @@ class _SoundWaveformWidgetState extends State with SingleTi sdk.EventsListener? _participantListener; // Agent support - AgentState _agentState = AgentState.initializing; + sdk.AgentState _agentState = sdk.AgentState.INITIALIZING; @override void didUpdateWidget(SoundWaveformWidget oldWidget) { @@ -153,9 +152,9 @@ class _SoundWaveformWidgetState extends State with SingleTi if (widget.participant?.kind == sdk.ParticipantKind.AGENT) { _participantListener?.on((e) { if (!mounted) return; - final agentStateString = e.attributes[agentStateAttributeKey]; + final agentAttributes = sdk.AgentAttributes.fromJson(e.attributes); setState(() { - _agentState = agentStateString != null ? AgentState.fromString(agentStateString) : AgentState.initializing; + _agentState = agentAttributes.lkAgentState ?? sdk.AgentState.INITIALIZING; }); }); } @@ -259,13 +258,13 @@ class _SoundWaveformWidgetState extends State with SingleTi } VisualizerState _determineState() { - if (widget.participant?.kind == sdk.ParticipantKind.AGENT && _agentState == AgentState.thinking) { + if (widget.participant?.kind == sdk.ParticipantKind.AGENT && _agentState == sdk.AgentState.THINKING) { return VisualizerState.thinking; } if (widget.participant == null || widget.participant?.kind == sdk.ParticipantKind.AGENT && - (_agentState == AgentState.initializing || _agentState == AgentState.listening)) { + (_agentState == sdk.AgentState.INITIALIZING || _agentState == sdk.AgentState.LISTENING)) { return VisualizerState.listening; }