diff --git a/.changeset/agent-endpoint-grant.md b/.changeset/agent-endpoint-grant.md deleted file mode 100644 index 95f277e59..000000000 --- a/.changeset/agent-endpoint-grant.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Add `AgentEndpointGrant`, scoping calls to an agent's non-public HTTP endpoints diff --git a/.changeset/agent-threads.md b/.changeset/agent-threads.md deleted file mode 100644 index 9f16bfd2a..000000000 --- a/.changeset/agent-threads.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"github.com/livekit/protocol": minor -"@livekit/protocol": minor ---- - -Agent threads, the durable conversation an agent has with a person across channels (`agent/livekit_agent_thread.proto`): `AgentThread` (the thread, its items as `ChatContext.ChatItem`) and `AgentTask` (background work an agent runs in it); the conversation tables in `livekit/agent/thread_schema_v1.sql`; `auth.AgentThreadGrant` under the `agentThread` claim (list and create by scope, read, write and delete by thread id, or every thread of the project with `all`); the `AT_` (thread) and `AST_` (agent stream) id prefixes in `utils/guid`. - -The agent-db and thread services are internal gRPC in cloud-protocol, so `AgentDBService` and its Twirp code are removed; the public API is public-api-server. A database lives in its project's data region: `AgentDB.CreateRequest.region` is removed, `DumpRequest`/`DumpResponse` are now `ExportRequest`/`ExportResponse`, and AgentDB times are `google.protobuf.Timestamp` / `Duration`. A batch answers one result per statement, tagged with its 0-based `statement` index on `Columns`, `ColumnBatch` and `ExecResult`. diff --git a/.changeset/configutil-observe-current.md b/.changeset/configutil-observe-current.md deleted file mode 100644 index 0a95ab263..000000000 --- a/.changeset/configutil-observe-current.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -`configutil.Observable` gains `ObserveCurrent`, which replays the current config to late subscribers ordered against reloads; `NewAtomic*` use it. Implementations outside this package must add the method diff --git a/.changeset/cpu-load-saturated.md b/.changeset/cpu-load-saturated.md deleted file mode 100644 index c04cfad43..000000000 --- a/.changeset/cpu-load-saturated.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Report full CPU load in hwstats.GetCPULoad when idle is 0 diff --git a/.changeset/data-track-client-extensions.md b/.changeset/data-track-client-extensions.md deleted file mode 100644 index d0fadc2e4..000000000 --- a/.changeset/data-track-client-extensions.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Add data track packet client extensions diff --git a/.changeset/egressobs-media-audio-only.md b/.changeset/egressobs-media-audio-only.md deleted file mode 100644 index d1e49b84f..000000000 --- a/.changeset/egressobs-media-audio-only.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -`egressobs.GetAudioOnly` reports `true` for v2 egress and replay requests with a `MediaSource` that has no video selector diff --git a/.changeset/egressobs-trackcomposite-audio-only.md b/.changeset/egressobs-trackcomposite-audio-only.md deleted file mode 100644 index 6d3628171..000000000 --- a/.changeset/egressobs-trackcomposite-audio-only.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -`egressobs.GetAudioOnly` reports `true` for TrackComposite egress requests without a video track diff --git a/.changeset/forwarder-dd-frame-number.md b/.changeset/forwarder-dd-frame-number.md deleted file mode 100644 index 4cc2dc966..000000000 --- a/.changeset/forwarder-dd-frame-number.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -`RTPForwarderState.dependency_descriptor_forwarder` (`DependencyDescriptorForwarderState`) carries the last dependency descriptor frame number a forwarder sent, so a migrated subscriber's frame numbers continue. diff --git a/.changeset/function-call-extra.md b/.changeset/function-call-extra.md deleted file mode 100644 index c7c713151..000000000 --- a/.changeset/function-call-extra.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -`FunctionCall.extra` (`map`, like `ChatMessage.extra`): a function call's extra metadata, such as a delegation's task id and endpoint, survives the threads service. diff --git a/.changeset/negotiated-data-channel-ids.md b/.changeset/negotiated-data-channel-ids.md deleted file mode 100644 index 41bf9a4bb..000000000 --- a/.changeset/negotiated-data-channel-ids.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Add fixed IDs for negotiated data channels diff --git a/.changeset/override-logger-children.md b/.changeset/override-logger-children.md deleted file mode 100644 index 0df0cf792..000000000 --- a/.changeset/override-logger-children.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Keep loggers derived from medialogutils.OverrideLogger wrapped, so they still demote errors to warnings and report the right caller diff --git a/.changeset/purple-dancers-relax.md b/.changeset/purple-dancers-relax.md deleted file mode 100644 index b5fd0f3c1..000000000 --- a/.changeset/purple-dancers-relax.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Data track extension ID collision: intermediate step. diff --git a/.changeset/ringing-timeout-status.md b/.changeset/ringing-timeout-status.md deleted file mode 100644 index b745bf6cb..000000000 --- a/.changeset/ringing-timeout-status.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Add ringing_timeout_status to SIPInboundTrunkInfo & EvaluateSIPDispatchRulesResponse diff --git a/.changeset/sampling-options-rename.md b/.changeset/sampling-options-rename.md deleted file mode 100644 index d331df6e3..000000000 --- a/.changeset/sampling-options-rename.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -agent_simulation: rename `SimulationRun.Sampling` to `SimulationRun.SamplingOptions`. Wire-compatible; the `sampling` fields keep their names and numbers. diff --git a/.changeset/sip-emergency-number.md b/.changeset/sip-emergency-number.md deleted file mode 100644 index bfe68dee3..000000000 --- a/.changeset/sip-emergency-number.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Add sip.IsEmergencyNumber and provider_info on InternalCreateSIPParticipantRequest diff --git a/.changeset/sip-name-addr-parser.md b/.changeset/sip-name-addr-parser.md deleted file mode 100644 index 349c3c41a..000000000 --- a/.changeset/sip-name-addr-parser.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Add `ParseSIPNameAddr`, which validates a name-addr value and returns its user part, replacing `sip.URIUser` diff --git a/.changeset/thread-items-sort-order.md b/.changeset/thread-items-sort-order.md deleted file mode 100644 index 7a6f50b7a..000000000 --- a/.changeset/thread-items-sort-order.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -`AgentThread.GetItemsRequest.sort_order` (`AgentThread.SortOrder`): `DESC` lists a thread's items from the latest back, so a chat view can load its last page first and page up through older items. Thread listings page like the other lists: `page_token`, `limit` and `next_page_token` (strings: `livekit.agent` cannot use `TokenPagination`) replace `before`/`after`, and `GetTasks` pages too. In `thread_schema_v1.sql`, `items` and `tasks` gain `pos INTEGER PRIMARY KEY AUTOINCREMENT` (insertion order, never reused, so a page token never skips a row), `items` an index on `(lane, pos)`; `id` and `task_id` stay the upsert keys as `TEXT NOT NULL UNIQUE`. diff --git a/.changeset/webhook-unlock-on-error.md b/.changeset/webhook-unlock-on-error.md deleted file mode 100644 index 262ea0854..000000000 --- a/.changeset/webhook-unlock-on-error.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Fix ResourceURLNotifier.QueueNotify keeping its lock after an error diff --git a/CHANGELOG.md b/CHANGELOG.md index 1393f5d10..8678604cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,49 @@ # github.com/livekit/protocol +## 1.53.0 + +### Minor Changes + +- Agent threads, the durable conversation an agent has with a person across channels (`agent/livekit_agent_thread.proto`): `AgentThread` (the thread, its items as `ChatContext.ChatItem`) and `AgentTask` (background work an agent runs in it); the conversation tables in `livekit/agent/thread_schema_v1.sql`; `auth.AgentThreadGrant` under the `agentThread` claim (list and create by scope, read, write and delete by thread id, or every thread of the project with `all`); the `AT_` (thread) and `AST_` (agent stream) id prefixes in `utils/guid`. - [#1841](https://github.com/livekit/protocol/pull/1841) ([@theomonnom](https://github.com/theomonnom)) + + The agent-db and thread services are internal gRPC in cloud-protocol, so `AgentDBService` and its Twirp code are removed; the public API is public-api-server. A database lives in its project's data region: `AgentDB.CreateRequest.region` is removed, `DumpRequest`/`DumpResponse` are now `ExportRequest`/`ExportResponse`, and AgentDB times are `google.protobuf.Timestamp` / `Duration`. A batch answers one result per statement, tagged with its 0-based `statement` index on `Columns`, `ColumnBatch` and `ExecResult`. + +### Patch Changes + +- Add `AgentEndpointGrant`, scoping calls to an agent's non-public HTTP endpoints - [#1728](https://github.com/livekit/protocol/pull/1728) ([@theomonnom](https://github.com/theomonnom)) + +- `configutil.Observable` gains `ObserveCurrent`, which replays the current config to late subscribers ordered against reloads; `NewAtomic*` use it. Implementations outside this package must add the method - [#1869](https://github.com/livekit/protocol/pull/1869) ([@paulwe](https://github.com/paulwe)) + +- Report full CPU load in hwstats.GetCPULoad when idle is 0 - [#1835](https://github.com/livekit/protocol/pull/1835) ([@boks1971](https://github.com/boks1971)) + +- Add data track packet client extensions - [#1834](https://github.com/livekit/protocol/pull/1834) ([@ladvoc](https://github.com/ladvoc)) + +- `egressobs.GetAudioOnly` reports `true` for v2 egress and replay requests with a `MediaSource` that has no video selector - [#1848](https://github.com/livekit/protocol/pull/1848) ([@milos-lk](https://github.com/milos-lk)) + +- `egressobs.GetAudioOnly` reports `true` for TrackComposite egress requests without a video track - [#1859](https://github.com/livekit/protocol/pull/1859) ([@erikhortsch](https://github.com/erikhortsch)) + +- `RTPForwarderState.dependency_descriptor_forwarder` (`DependencyDescriptorForwarderState`) carries the last dependency descriptor frame number a forwarder sent, so a migrated subscriber's frame numbers continue. - [#1855](https://github.com/livekit/protocol/pull/1855) ([@boks1971](https://github.com/boks1971)) + +- `FunctionCall.extra` (`map`, like `ChatMessage.extra`): a function call's extra metadata, such as a delegation's task id and endpoint, survives the threads service. - [#1853](https://github.com/livekit/protocol/pull/1853) ([@theomonnom](https://github.com/theomonnom)) + +- Add fixed IDs for negotiated data channels - [#1871](https://github.com/livekit/protocol/pull/1871) ([@cnderrauber](https://github.com/cnderrauber)) + +- Keep loggers derived from medialogutils.OverrideLogger wrapped, so they still demote errors to warnings and report the right caller - [#1842](https://github.com/livekit/protocol/pull/1842) ([@anunaym14](https://github.com/anunaym14)) + +- Data track extension ID collision: intermediate step. - [#1825](https://github.com/livekit/protocol/pull/1825) ([@boks1971](https://github.com/boks1971)) + +- Add ringing_timeout_status to SIPInboundTrunkInfo & EvaluateSIPDispatchRulesResponse - [#1819](https://github.com/livekit/protocol/pull/1819) ([@alexlivekit](https://github.com/alexlivekit)) + +- agent_simulation: rename `SimulationRun.Sampling` to `SimulationRun.SamplingOptions`. Wire-compatible; the `sampling` fields keep their names and numbers. - [#1832](https://github.com/livekit/protocol/pull/1832) ([@u9g](https://github.com/u9g)) + +- Add sip.IsEmergencyNumber and provider_info on InternalCreateSIPParticipantRequest - [#1850](https://github.com/livekit/protocol/pull/1850) ([@genseric-ghiro](https://github.com/genseric-ghiro)) + +- Add `ParseSIPNameAddr`, which validates a name-addr value and returns its user part, replacing `sip.URIUser` - [#1864](https://github.com/livekit/protocol/pull/1864) ([@genseric-ghiro](https://github.com/genseric-ghiro)) + +- `AgentThread.GetItemsRequest.sort_order` (`AgentThread.SortOrder`): `DESC` lists a thread's items from the latest back, so a chat view can load its last page first and page up through older items. Thread listings page like the other lists: `page_token`, `limit` and `next_page_token` (strings: `livekit.agent` cannot use `TokenPagination`) replace `before`/`after`, and `GetTasks` pages too. In `thread_schema_v1.sql`, `items` and `tasks` gain `pos INTEGER PRIMARY KEY AUTOINCREMENT` (insertion order, never reused, so a page token never skips a row), `items` an index on `(lane, pos)`; `id` and `task_id` stay the upsert keys as `TEXT NOT NULL UNIQUE`. - [#1851](https://github.com/livekit/protocol/pull/1851) ([@theomonnom](https://github.com/theomonnom)) + +- Fix ResourceURLNotifier.QueueNotify keeping its lock after an error - [#1831](https://github.com/livekit/protocol/pull/1831) ([@boks1971](https://github.com/boks1971)) + ## 1.52.1 ### Patch Changes diff --git a/package.json b/package.json index 13a0acc8f..d1da834e3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "github.com/livekit/protocol", "private": true, - "version": "1.52.1", + "version": "1.53.0", "scripts": { "changeset": "changeset", "ci:publish": "pnpm --filter @livekit/protocol run build && changeset publish" diff --git a/packages/javascript/CHANGELOG.md b/packages/javascript/CHANGELOG.md index afed28e18..15cb5e9de 100644 --- a/packages/javascript/CHANGELOG.md +++ b/packages/javascript/CHANGELOG.md @@ -1,5 +1,49 @@ # @livekit/protocol +## 1.53.0 + +### Minor Changes + +- Agent threads, the durable conversation an agent has with a person across channels (`agent/livekit_agent_thread.proto`): `AgentThread` (the thread, its items as `ChatContext.ChatItem`) and `AgentTask` (background work an agent runs in it); the conversation tables in `livekit/agent/thread_schema_v1.sql`; `auth.AgentThreadGrant` under the `agentThread` claim (list and create by scope, read, write and delete by thread id, or every thread of the project with `all`); the `AT_` (thread) and `AST_` (agent stream) id prefixes in `utils/guid`. - [#1841](https://github.com/livekit/protocol/pull/1841) ([@theomonnom](https://github.com/theomonnom)) + + The agent-db and thread services are internal gRPC in cloud-protocol, so `AgentDBService` and its Twirp code are removed; the public API is public-api-server. A database lives in its project's data region: `AgentDB.CreateRequest.region` is removed, `DumpRequest`/`DumpResponse` are now `ExportRequest`/`ExportResponse`, and AgentDB times are `google.protobuf.Timestamp` / `Duration`. A batch answers one result per statement, tagged with its 0-based `statement` index on `Columns`, `ColumnBatch` and `ExecResult`. + +### Patch Changes + +- Add `AgentEndpointGrant`, scoping calls to an agent's non-public HTTP endpoints - [#1728](https://github.com/livekit/protocol/pull/1728) ([@theomonnom](https://github.com/theomonnom)) + +- `configutil.Observable` gains `ObserveCurrent`, which replays the current config to late subscribers ordered against reloads; `NewAtomic*` use it. Implementations outside this package must add the method - [#1869](https://github.com/livekit/protocol/pull/1869) ([@paulwe](https://github.com/paulwe)) + +- Report full CPU load in hwstats.GetCPULoad when idle is 0 - [#1835](https://github.com/livekit/protocol/pull/1835) ([@boks1971](https://github.com/boks1971)) + +- Add data track packet client extensions - [#1834](https://github.com/livekit/protocol/pull/1834) ([@ladvoc](https://github.com/ladvoc)) + +- `egressobs.GetAudioOnly` reports `true` for v2 egress and replay requests with a `MediaSource` that has no video selector - [#1848](https://github.com/livekit/protocol/pull/1848) ([@milos-lk](https://github.com/milos-lk)) + +- `egressobs.GetAudioOnly` reports `true` for TrackComposite egress requests without a video track - [#1859](https://github.com/livekit/protocol/pull/1859) ([@erikhortsch](https://github.com/erikhortsch)) + +- `RTPForwarderState.dependency_descriptor_forwarder` (`DependencyDescriptorForwarderState`) carries the last dependency descriptor frame number a forwarder sent, so a migrated subscriber's frame numbers continue. - [#1855](https://github.com/livekit/protocol/pull/1855) ([@boks1971](https://github.com/boks1971)) + +- `FunctionCall.extra` (`map`, like `ChatMessage.extra`): a function call's extra metadata, such as a delegation's task id and endpoint, survives the threads service. - [#1853](https://github.com/livekit/protocol/pull/1853) ([@theomonnom](https://github.com/theomonnom)) + +- Add fixed IDs for negotiated data channels - [#1871](https://github.com/livekit/protocol/pull/1871) ([@cnderrauber](https://github.com/cnderrauber)) + +- Keep loggers derived from medialogutils.OverrideLogger wrapped, so they still demote errors to warnings and report the right caller - [#1842](https://github.com/livekit/protocol/pull/1842) ([@anunaym14](https://github.com/anunaym14)) + +- Data track extension ID collision: intermediate step. - [#1825](https://github.com/livekit/protocol/pull/1825) ([@boks1971](https://github.com/boks1971)) + +- Add ringing_timeout_status to SIPInboundTrunkInfo & EvaluateSIPDispatchRulesResponse - [#1819](https://github.com/livekit/protocol/pull/1819) ([@alexlivekit](https://github.com/alexlivekit)) + +- agent_simulation: rename `SimulationRun.Sampling` to `SimulationRun.SamplingOptions`. Wire-compatible; the `sampling` fields keep their names and numbers. - [#1832](https://github.com/livekit/protocol/pull/1832) ([@u9g](https://github.com/u9g)) + +- Add sip.IsEmergencyNumber and provider_info on InternalCreateSIPParticipantRequest - [#1850](https://github.com/livekit/protocol/pull/1850) ([@genseric-ghiro](https://github.com/genseric-ghiro)) + +- Add `ParseSIPNameAddr`, which validates a name-addr value and returns its user part, replacing `sip.URIUser` - [#1864](https://github.com/livekit/protocol/pull/1864) ([@genseric-ghiro](https://github.com/genseric-ghiro)) + +- `AgentThread.GetItemsRequest.sort_order` (`AgentThread.SortOrder`): `DESC` lists a thread's items from the latest back, so a chat view can load its last page first and page up through older items. Thread listings page like the other lists: `page_token`, `limit` and `next_page_token` (strings: `livekit.agent` cannot use `TokenPagination`) replace `before`/`after`, and `GetTasks` pages too. In `thread_schema_v1.sql`, `items` and `tasks` gain `pos INTEGER PRIMARY KEY AUTOINCREMENT` (insertion order, never reused, so a page token never skips a row), `items` an index on `(lane, pos)`; `id` and `task_id` stay the upsert keys as `TEXT NOT NULL UNIQUE`. - [#1851](https://github.com/livekit/protocol/pull/1851) ([@theomonnom](https://github.com/theomonnom)) + +- Fix ResourceURLNotifier.QueueNotify keeping its lock after an error - [#1831](https://github.com/livekit/protocol/pull/1831) ([@boks1971](https://github.com/boks1971)) + ## 1.52.1 ### Patch Changes diff --git a/packages/javascript/package.json b/packages/javascript/package.json index 15b680dbc..8d37e740e 100644 --- a/packages/javascript/package.json +++ b/packages/javascript/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/protocol", - "version": "1.52.1", + "version": "1.53.0", "description": "", "type": "module", "require": "dist/index.cjs",