mugib_voice 0.4.0 copy "mugib_voice: ^0.4.0" to clipboard
mugib_voice: ^0.4.0 copied to clipboard

Official Flutter SDK for Mugib voice agents. One client for VAPI and Google Gemini Live — pass apiKey and agentId only.

0.4.0 #

  • Feat: session resumption — Gemini Live calls now preserve conversation context across network drops. The SDK stores the resumption handle sent by Google (via the Mugib server) and reattaches automatically on reconnect. No new API surface; existing maxReconnectAttempts controls retry count.
  • Feat: proactive reconnect on goAway — when Google signals an imminent disconnect, the SDK reconnects immediately using the latest handle.
  • Backend: sessionResumption is now enabled in the Gemini setup message; the server relays resume and goaway frames and skips the greeting on resumed connections.

0.3.1 #

  • Fix: the start() fallback path now carries MugibVoiceErrorCode.unknown and emits on errorEvents (previously only thrown without a code).
  • Docs: full README reference for all MugibVoiceErrorCode values, MugibCallMetrics fields, and the Gemini Live auto-reconnect behavior.

0.3.0 #

  • Feat: structured errors — new MugibVoiceErrorCode enum and errorEvents stream (Stream<MugibVoiceError>) alongside the existing errors string stream. MugibVoiceException now carries a code.
  • Feat: latency metrics — new metrics stream and currentMetrics (MugibCallMetrics) reporting time-to-first-audio and per-response latency (Gemini Live) / connection latency (VAPI).
  • Feat: call timer — callDuration getter and durationTicks stream.
  • Feat: automatic reconnect for Gemini Live after an unexpected WebSocket drop (configurable via maxReconnectAttempts / reconnectBackoff).
  • Feat: tunable playback latency for Gemini Live via feedThresholdFrames (default lowered from ~333ms to ~166ms).

0.2.5 #

  • Polish: avoid duplicate error events during Gemini session setup failure.

0.2.4 #

  • Fix: start() resets to idle when token fetch or session setup fails (retry without end()).
  • Fix: Gemini start() now awaits server ready (parity with VAPI call-start wait).

0.2.3 #

  • README/docs: Mugib-centric integration guide; provider is display-only.

0.2.2 #

  • Same reliability fixes as 0.2.1 (republish with audit-complete code).

0.2.1 #

  • Fix: reuse same MugibVoiceClient after end() (session cleanup).
  • Fix: rollback failed start() so retry works.
  • Fix: VAPI awaits call-start / surfaces call-error; mic permission pre-check.
  • Fix: Gemini ready setup timeout (25s).
  • Fix: HTTP client request timeout (30s).

0.2.0 #

  • Unified SDK: VAPI + Gemini Live in one MugibVoiceClient (fetches /token automatically).
  • Bundled vapi package for VAPI agents — app only needs apiKey + agentId.
  • MugibVoice.listAgents() — lists active agents with provider for picker UI.
  • MugibAgentSummary / MugibVoiceToken models.
  • Verified: flutter analyze (0 issues), flutter test (10 passing).

0.1.0 #

  • Initial release.
  • MugibVoiceClient with real-time mic capture (PCM 16 kHz), playback (PCM 24 kHz), live transcripts, call-state stream, mute, and barge-in interruption handling.
  • Gemini Live WebSocket stream via Mugib backend.
  • Verified: flutter analyze (0 issues), flutter test (5 passing).
  • Fixes: iOS playAndRecord session, mic gated until ready, cleanup race guard, AudioRecorder.dispose(), ambiguous IosAudioCategory import, async PCM feed.
0
likes
150
points
--
downloads

Documentation

API reference

Publisher

unverified uploader

Official Flutter SDK for Mugib voice agents. One client for VAPI and Google Gemini Live — pass apiKey and agentId only.

Homepage
Repository (GitHub)
View/report issues

Topics

#voice #ai #vapi #websocket #sdk

License

MIT (license)

Dependencies

flutter, flutter_pcm_sound, http, permission_handler, record, vapi, web_socket_channel

More

Packages that depend on mugib_voice