Skip to content

Blaze Livekit plugin integration#1112

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

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

Conversation

@HoangPN711
Copy link
Copy Markdown

No description provided.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Mar 9, 2026

🦋 Changeset detected

Latest commit: 9e42604

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.

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 20 additional findings in Devin Review.

Open in Devin Review

Comment thread plugins/blaze/src/stt.ts

if (!response.ok) {
const errorText = await response.text().catch(() => 'unknown error');
throw new BlazeHttpError(response.status, `Blaze STT error ${response.status}: ${errorText}`);
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.

🟡 STT throws non-framework BlazeHttpError instead of APIStatusError on HTTP failures

The STT _recognize method throws BlazeHttpError (a plain Error subclass defined in plugins/blaze/src/config.ts:86) for HTTP error responses, while the LLM (plugins/blaze/src/llm.ts:208-211) and TTS (plugins/blaze/src/tts.ts:392-395) implementations correctly throw APIStatusError from the framework. BlazeHttpError does not extend APIError, so any caller that checks error instanceof APIError to distinguish API failures from other errors will misclassify STT HTTP errors. The framework's error handling infrastructure (e.g., the retryable property on APIError, error classification in the voice pipeline) expects APIError subtypes. After all internal retries exhaust, this non-framework error type escapes to the caller.

Prompt for agents
In plugins/blaze/src/stt.ts, the _recognize method throws BlazeHttpError (from config.ts, which extends Error directly) on HTTP error responses (line 195). This is inconsistent with the LLM and TTS implementations in the same plugin, which throw APIStatusError (a framework-provided APIError subclass). The fix is to replace the BlazeHttpError throw with an APIStatusError throw, matching the pattern used in llm.ts:208-211 and tts.ts:392-395. The isRetryableError check in the retry loop (line 202) should then check for APIStatusError.retryable or APIStatusError.statusCode instead of BlazeHttpError.status. This may also allow removing BlazeHttpError and isRetryableError from config.ts entirely if they are no longer needed.
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