it0/it0_app/lib/features/agent_call/presentation
hailin 54257ac944 feat(voice): route instance voice calls through OpenClaw bridge
When a user places a voice call from an instance chat page (AgentInstanceChatPage),
the call is now routed through the OpenClaw bridge instead of iAgent's
VoiceSessionManager SDK loop. iAgent voice behavior is completely unchanged.

Changes:
- Flutter: ChatPage accepts agentInstanceId, passes to AgentCallPage
- Flutter: AgentCallPage sends instance_id in livekit/token request body
- Flutter: AgentInstanceChatPage passes instance.id as agentInstanceId
- voice-service: livekit_token.py includes instance_id in dispatch metadata
- voice-agent: agent.py reads instance_id from metadata, passes to LLM
- voice-agent: agent_llm.py stores _instance_id, sends instanceId in voice/start
- agent-service voice/start: stores instanceId in session metadata; skips
  VoiceSessionManager for instance mode (iAgent path unchanged)
- agent-service voice/inject: detects instanceId in session metadata and
  fire-and-forgets to OpenClaw bridge; callback via openclaw-app-callback
  emits text WS events that voice-agent collects for TTS playback

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 10:00:15 -07:00
..
pages feat(voice): route instance voice calls through OpenClaw bridge 2026-03-10 10:00:15 -07:00
providers fix: translate all remaining English UI strings to Chinese and remove dead code 2026-02-23 02:07:57 -08:00