Skip to content

feat(agents): add beta end call tool#1474

Open
rosetta-livekit-bot[bot] wants to merge 3 commits into
brian/toolsetfrom
hater-breaking-evoked
Open

feat(agents): add beta end call tool#1474
rosetta-livekit-bot[bot] wants to merge 3 commits into
brian/toolsetfrom
hater-breaking-evoked

Conversation

@rosetta-livekit-bot
Copy link
Copy Markdown
Contributor

Summary

  • Add beta EndCallTool ported from Python for ending calls from a tool invocation.
  • Add JobContext.deleteRoom() support and export worker credentials to child job env so room deletion works when options are passed programmatically.
  • Export the new beta tool and add a changeset.

Testing

  • pnpm --filter @livekit/agents build
  • pnpm --filter @livekit/agents lint (passes with existing warnings)
  • pnpm format:check

Notes

  • pnpm --filter @livekit/agents api:check is currently blocked by API Extractor failing on existing export * as ___ syntax in dist/index.d.ts before checking this API surface.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 12, 2026

🦋 Changeset detected

Latest commit: afe2a7c

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

This PR includes changesets to release 31 packages
Name Type
@livekit/agents Major
@livekit/agents-plugin-anam Major
@livekit/agents-plugin-assemblyai Major
@livekit/agents-plugin-baseten Major
@livekit/agents-plugin-bey Major
@livekit/agents-plugin-cartesia Major
@livekit/agents-plugin-cerebras Major
@livekit/agents-plugin-deepgram Major
@livekit/agents-plugin-elevenlabs Major
@livekit/agents-plugin-fishaudio Major
@livekit/agents-plugin-google Major
@livekit/agents-plugin-hedra Major
@livekit/agents-plugin-hume Major
@livekit/agents-plugin-inworld Major
@livekit/agents-plugin-lemonslice Major
@livekit/agents-plugin-liveavatar Major
@livekit/agents-plugin-livekit Major
@livekit/agents-plugin-minimax Major
@livekit/agents-plugin-mistral Major
@livekit/agents-plugin-mistralai Major
@livekit/agents-plugin-neuphonic Major
@livekit/agents-plugin-openai Major
@livekit/agents-plugin-phonic Major
@livekit/agents-plugin-resemble Major
@livekit/agents-plugin-rime Major
@livekit/agents-plugin-runway Major
@livekit/agents-plugin-sarvam Major
@livekit/agents-plugin-silero Major
@livekit/agents-plugins-test Major
@livekit/agents-plugin-trugen Major
@livekit/agents-plugin-xai Major

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

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: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 4 additional findings.

Open in Devin Review

@rosetta-livekit-bot rosetta-livekit-bot Bot force-pushed the hater-breaking-evoked branch from 43f6089 to 5ee8112 Compare May 17, 2026 23:40
@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
2 out of 3 committers have signed the CLA.

✅ toubatbrian
✅ u9g
❌ claude
You have signed the CLA already but the status is still pending? Let us recheck it.

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

Open in Devin Review

Comment on lines +284 to +286
get providerTools(): ProviderDefinedTool[] {
return this._providerTools;
}
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.

🟡 providerTools getter exposes internal mutable array instead of returning a defensive copy

The ToolContext.providerTools getter at agents/src/llm/tool_context.ts:285 returns the internal _providerTools array directly, despite its JSDoc comment promising "A copy of all provider tools". This is inconsistent with the functionTools getter (which creates a new Object.fromEntries(...)) and the toolsets getter (which spreads into a new array [...this._toolsets]). External consumers can mutate the internal array (e.g. .push(), .length = 0), silently corrupting the ToolContext state and breaking invariants like equals(), hasTool(), and flatten().

Suggested change
get providerTools(): ProviderDefinedTool[] {
return this._providerTools;
}
get providerTools(): ProviderDefinedTool[] {
return [...this._providerTools];
}
Open in Devin Review

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

@toubatbrian toubatbrian changed the base branch from main to brian/toolset May 17, 2026 23:51
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.

2 participants