From e4df3955011755b97d3334d62b93685ca1194e35 Mon Sep 17 00:00:00 2001 From: "rosetta-livekit-bot[bot]" <282703043+rosetta-livekit-bot[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 18:56:20 +0000 Subject: [PATCH 1/2] feat(job): expose singlePeerConnection --- .changeset/single-peer-connection.md | 5 +++++ agents/src/job.ts | 3 +++ 2 files changed, 8 insertions(+) create mode 100644 .changeset/single-peer-connection.md diff --git a/.changeset/single-peer-connection.md b/.changeset/single-peer-connection.md new file mode 100644 index 000000000..feb1bd5c2 --- /dev/null +++ b/.changeset/single-peer-connection.md @@ -0,0 +1,5 @@ +--- +'@livekit/agents': patch +--- + +Expose `singlePeerConnection` in `JobContext.connect` and pass it through to the underlying LiveKit room connection options. diff --git a/agents/src/job.ts b/agents/src/job.ts index efbd02fb6..0ca504767 100644 --- a/agents/src/job.ts +++ b/agents/src/job.ts @@ -239,11 +239,13 @@ export class JobContext> { * * @see {@link https://github.com/livekit/node-sdks/tree/main/packages/livekit-rtc#readme | * @livekit/rtc-node} for more information about the parameters. + * @param singlePeerConnection - Use a single peer connection for publishing and subscribing. */ async connect( e2ee?: E2EEOptions, autoSubscribe: AutoSubscribe = AutoSubscribe.SUBSCRIBE_ALL, rtcConfig?: RtcConfiguration, + singlePeerConnection?: boolean, ) { if (this.connected) { return; @@ -254,6 +256,7 @@ export class JobContext> { autoSubscribe: autoSubscribe == AutoSubscribe.SUBSCRIBE_ALL, rtcConfig, dynacast: false, + singlePeerConnection, }; await this.#room.connect(this.#info.url, this.#info.token, opts); From 055e38addd2582ecb973c8c87f8198ebf354c071 Mon Sep 17 00:00:00 2001 From: "rosetta-livekit-bot[bot]" <282703043+rosetta-livekit-bot[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 19:09:26 +0000 Subject: [PATCH 2/2] chore(job): type single peer room option bridge --- agents/src/job.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/agents/src/job.ts b/agents/src/job.ts index 0ca504767..58bd9850a 100644 --- a/agents/src/job.ts +++ b/agents/src/job.ts @@ -73,6 +73,10 @@ export enum AutoSubscribe { AUDIO_ONLY, } +type RoomConnectOptions = NonNullable[2]> & { + singlePeerConnection?: boolean; +}; + export type JobAcceptArguments = { name: string; identity: string; @@ -251,7 +255,7 @@ export class JobContext> { return; } - const opts = { + const opts: RoomConnectOptions = { e2ee, autoSubscribe: autoSubscribe == AutoSubscribe.SUBSCRIBE_ALL, rtcConfig,