Skip to content

Blaze Livekit plugin integration#1112

Open
HoangPN711 wants to merge 19 commits into
livekit:mainfrom
Actable-AI:feat/blaze-voicebot-livekit-plugin
Open

Blaze Livekit plugin integration#1112
HoangPN711 wants to merge 19 commits into
livekit:mainfrom
Actable-AI:feat/blaze-voicebot-livekit-plugin

Conversation

@HoangPN711
Copy link
Copy Markdown

@HoangPN711 HoangPN711 commented Mar 9, 2026

Summary

Add @livekit/agents-plugin-blaze, a new Blaze provider plugin for agents-js with support for:

  • STT
  • TTS
  • LLM

The implementation is scoped under plugins/blaze and follows the existing provider/plugin structure used by other integrations in this repo.

What changed

  • added a new plugins/blaze package with build/package wiring
  • implemented Blaze STT integration
  • implemented Blaze TTS integration
  • implemented Blaze LLM integration
  • added Blaze config/model helpers and public exports
  • added package README
  • added unit tests for config, STT, TTS, and LLM
  • added changeset + workspace plumbing updates required for package release/build

Notes

  • the change is isolated to the Blaze plugin package, aside from workspace/release wiring
  • Blaze STT is batch-only in this plugin; streaming STT is intentionally unsupported
  • follow-up commits addressed review feedback around retry/error handling, TTS/WebSocket lifecycle handling, batching behavior, and stream edge cases

Changeset

  • patch bump for @livekit/agents-plugin-blaze

Test plan

  • pnpm vitest run plugins/blaze/src/*.test.ts
  • pnpm --filter @livekit/agents-plugin-blaze build
  • pnpm --filter @livekit/agents-plugin-blaze lint

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Mar 9, 2026

🦋 Changeset detected

Latest commit: 4c70551

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 22 packages
Name Type
@livekit/agents-plugin-blaze Patch
@livekit/agents Patch
@livekit/agents-plugin-anam Patch
@livekit/agents-plugin-baseten Patch
@livekit/agents-plugin-bey Patch
@livekit/agents-plugin-cartesia Patch
@livekit/agents-plugin-deepgram Patch
@livekit/agents-plugin-elevenlabs Patch
@livekit/agents-plugin-google Patch
@livekit/agents-plugin-hedra Patch
@livekit/agents-plugin-inworld Patch
@livekit/agents-plugin-lemonslice Patch
@livekit/agents-plugin-livekit Patch
@livekit/agents-plugin-neuphonic Patch
@livekit/agents-plugin-openai Patch
@livekit/agents-plugin-phonic Patch
@livekit/agents-plugin-resemble Patch
@livekit/agents-plugin-rime Patch
@livekit/agents-plugin-sarvam Patch
@livekit/agents-plugin-silero Patch
@livekit/agents-plugin-xai Patch
@livekit/agents-plugins-test Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Mar 9, 2026

CLA assistant check
All committers have signed the CLA.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@toubatbrian
Copy link
Copy Markdown
Contributor

Have you ran the tests on those plugins?

devin-ai-integration[bot]

This comment was marked as resolved.

@HoangPN711
Copy link
Copy Markdown
Author

Have you ran the tests on those plugins?

Yes — I re-ran the plugin tests and checks after the latest fixes.

What I validated:

  • Unit tests for the Blaze plugin (LLM/STT/TTS)
  • Type checking
  • Lint/format checks

I also added a regression test for the stream options race-condition and fixed the STT/TTS typed-array buffer window handling from review feedback.

@HoangPN711 HoangPN711 changed the title add blaze voicebot plugin Blaze Livekit plugin integration Apr 4, 2026
devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@HoangPN711
Copy link
Copy Markdown
Author

@toubatbrian
I addressed the Devin Review findings and re-ran the Blaze plugin tests after the latest fixes.

Validation:

  • pnpm vitest run plugins/blaze/src/*.test.ts → 56/56 passing

Devin Review is clean now. Please take another look when you have a chance.

devin-ai-integration[bot]

This comment was marked as resolved.

@HoangPN711 HoangPN711 force-pushed the feat/blaze-voicebot-livekit-plugin branch from f39cb7d to 14cb5a2 Compare May 19, 2026 23:34
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

View 35 additional findings in Devin Review.

Open in Devin Review

Comment thread plugins/blaze/src/tts.ts
/**
* Update TTS options at runtime.
*/
updateOptions(opts: Partial<Omit<TTSOptions, 'config'>>): void {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 TTS updateOptions type accepts sampleRate but silently ignores it

The updateOptions method's type signature is Partial<Omit<TTSOptions, 'config'>>, which includes sampleRate. However, the implementation handles every other field from TTSOptions (language, speakerId, authToken, model, audioFormat, audioSpeed, audioQuality, timeout, normalizationRules, batchMinChars, batchTargetChars, batchMaxChars, batchMaxWaitMs, interSentenceSilenceMs, apiUrl) except sampleRate. A caller invoking tts.updateOptions({ sampleRate: 48000 }) would have the change silently dropped — this.#opts.sampleRate remains at the old value, and the base class TTS.sampleRate getter (backed by a private field set in the constructor at plugins/blaze/src/tts.ts:925) also remains unchanged. The type should exclude sampleRate to prevent the misleading contract.

Suggested change
updateOptions(opts: Partial<Omit<TTSOptions, 'config'>>): void {
updateOptions(opts: Partial<Omit<TTSOptions, 'config' | 'sampleRate'>>): void {
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants