Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions .changeset/brave-mangos-search.md

This file was deleted.

22 changes: 0 additions & 22 deletions .changeset/mcp-client-elicitation-options.md

This file was deleted.

9 changes: 0 additions & 9 deletions .changeset/mcp-defer-capability-seed-clear.md

This file was deleted.

23 changes: 0 additions & 23 deletions .changeset/no-elicitation-capability-without-handler.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/spotty-pandas-refuse.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/spotty-taxis-report.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/voice-pcm16-sample-rate.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/voice-transcriber-readiness.md

This file was deleted.

9 changes: 9 additions & 0 deletions agent-think/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# @cloudflare/agent-think

## 0.0.1

### Patch Changes

- Updated dependencies [[`a9d78c0`](https://github.com/cloudflare/agents/commit/a9d78c01379e7715f7fe33046e71bd9eaf3611ef), [`3ba6a78`](https://github.com/cloudflare/agents/commit/3ba6a78c1d585948453803524093d686394ce4d4), [`762998d`](https://github.com/cloudflare/agents/commit/762998da1c873701305a44c598e9c029617047b4), [`9e1b733`](https://github.com/cloudflare/agents/commit/9e1b733426620642ae67b70a6fea63459e8a1e8c), [`f274903`](https://github.com/cloudflare/agents/commit/f274903ee06123bc12cd5834d5187b7ffec4722e)]:
- agents@0.17.4
- @cloudflare/think@0.12.1
2 changes: 1 addition & 1 deletion agent-think/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflare/agent-think",
"version": "0.0.0",
"version": "0.0.1",
"private": true,
"type": "module",
"description": "Think agent that reproduces and fixes cloudflare/agents GitHub issues in a container-backed Workspace. Invoked as `@agent-think repro|pr` via the gh-app webhook service; streams a live thread UI and reports back on the issue.",
Expand Down
59 changes: 59 additions & 0 deletions packages/agents/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,64 @@
# @cloudflare/agents

## 0.17.4

### Patch Changes

- [#1902](https://github.com/cloudflare/agents/pull/1902) [`a9d78c0`](https://github.com/cloudflare/agents/commit/a9d78c01379e7715f7fe33046e71bd9eaf3611ef) Thanks [@mattzcarey](https://github.com/mattzcarey)! - Always apply the Worker-safe `CfWorkerJsonSchemaValidator` to MCP client connections by default.

`MCPClientConnection` now owns the default (merged in its constructor), so every construction path uses the Worker-safe validator unless the caller supplies their own — including the RPC `addMcpServer(name, namespace)` path via `MCPClientManager.connect()`, which previously skipped it. Without the default, the MCP SDK fell back to its AJV validator when a server exposed tools with `outputSchema`; AJV compiles schemas with `new Function`, which Workers disallows, failing discovery with "Code generation from strings disallowed for this context".

`connect()` now builds connections through `createConnection()` instead of duplicating construction, so the two paths can no longer drift. Caller-supplied `client.jsonSchemaValidator` overrides are respected on the live connection; because validator instances cannot survive JSON serialization, they are no longer persisted, and a previously persisted, serialization-degraded validator is ignored on restore — after hibernation the connection falls back to the Worker-safe default instead of failing discovery.

- [#1903](https://github.com/cloudflare/agents/pull/1903) [`3ba6a78`](https://github.com/cloudflare/agents/commit/3ba6a78c1d585948453803524093d686394ce4d4) Thanks [@mattzcarey](https://github.com/mattzcarey)! - MCP client: url-mode elicitation support with a real elicitation handler

- Agents can now respond to server-initiated `elicitation/create` requests by
calling `this.mcp.configureElicitationHandlers({ form, url })`, typically in
`onStart()`. The advertised modes are persisted with each MCP server, so
connections restored after Durable Object hibernation re-advertise them at
the handshake and the handlers re-attach when onStart runs.
`MCPClientConnection` also accepts `elicitationHandlers` callbacks for
lower-level non-Agent usage.
- Connections advertise elicitation modes based on what can actually be
handled: they advertise exactly the modes with configured handlers at the
initialize handshake; without handlers they advertise no elicitation
capability. An explicit
`client.capabilities.elicitation` (e.g. via `addMcpServer`) always wins,
is persisted with the server options, and survives hibernation — it is no
longer clobbered by a hardcoded value.
- Overriding/instance-patching `MCPClientConnection.handleElicitationRequest`
directly is deprecated in favor of the `elicitationHandlers` option.

- [#1925](https://github.com/cloudflare/agents/pull/1925) [`762998d`](https://github.com/cloudflare/agents/commit/762998da1c873701305a44c598e9c029617047b4) Thanks [@mattzcarey](https://github.com/mattzcarey)! - MCP client: consume the persisted capability seed at first use instead of at restore-time read

The capability stamp persisted on each MCP server row (used to re-advertise elicitation modes at the handshake after Durable Object hibernation) was read-and-cleared when the connection object was created, before any connection attempt. Wakes that never reached a handshake burned it: a restore that parked on a pending OAuth flow, or a wake interrupted between restore and `onStart` re-stamping the rows, left the next wake's connections negotiating without the elicitation capability until some later reconnect.

The stamp is now read without clearing and only cleared once a seeded handshake actually completes in a session that has not configured handlers, preserving the one-successful-restore semantics: after the seed is used in a completed handshake it no longer re-advertises stale modes, and any `configureElicitationHandlers` call still re-stamps every row. Sessions with handlers configured own their row stamps, so a handshake there (e.g. re-adding a server under a stable id) keeps the fresh stamp in place for the next wake.

- [#1910](https://github.com/cloudflare/agents/pull/1910) [`9e1b733`](https://github.com/cloudflare/agents/commit/9e1b733426620642ae67b70a6fea63459e8a1e8c) Thanks [@mattzcarey](https://github.com/mattzcarey)! - MCP client: advertise no elicitation capability when no handler is configured

Connections without an elicitation handler previously advertised form-mode
elicitation while rejecting every elicitation request that arrived, so
spec-compliant servers chose elicitation over their fallback flows and the
tool call failed mid-flight. Connections now advertise the elicitation
capability only when it can be handled: both form and url mode with a
handlers configured via `this.mcp.configureElicitationHandlers({ form, url })`
or the connection `elicitationHandlers` option, and no elicitation capability
without handlers, letting servers fall back gracefully. Only modes with
configured handlers are advertised.

Behavior change: code relying on the deprecated pattern of instance-patching
`handleElicitationRequest` on a connection stops receiving elicitation
requests, because the capability is no longer advertised. Migrate to
`this.mcp.configureElicitationHandlers({ form, url })` / the connection
`elicitationHandlers` option, or declare
`client.capabilities.elicitation` explicitly — an explicit declaration is
always honored.

- [#1869](https://github.com/cloudflare/agents/pull/1869) [`f274903`](https://github.com/cloudflare/agents/commit/f274903ee06123bc12cd5834d5187b7ffec4722e) Thanks [@mattzcarey](https://github.com/mattzcarey)! - Fix `addMcpServer()` reporting `ready` for an HTTP MCP connection that was restored while OAuth is still in progress.

For an existing `AUTHENTICATING` connection, `addMcpServer()` now prefers the live authorization URL, otherwise returns a persisted absolute HTTP(S) authorization URL. If neither is available, it reconnects the existing connection without re-registering it: a new authorization URL is returned and persisted, a connected result is discovered before returning `ready`, and failed or incomplete OAuth results throw instead of falling through to `ready`.

## 0.17.3

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/agents/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"durable objects"
],
"type": "module",
"version": "0.17.3",
"version": "0.17.4",
"license": "MIT",
"repository": {
"directory": "packages/agents",
Expand Down
6 changes: 6 additions & 0 deletions packages/codemode/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# @cloudflare/codemode

## 0.4.3

### Patch Changes

- [#1904](https://github.com/cloudflare/agents/pull/1904) [`88f7f69`](https://github.com/cloudflare/agents/commit/88f7f69df92de9b36987980be1091056d1557b29) Thanks [@mattzcarey](https://github.com/mattzcarey)! - Echo the durable tool-call log on the proxy tool output. `ProxyToolOutput` now carries an optional `calls` field (the execution's `ToolLogEntry[]`) on completed, paused and error outcomes, so UIs can render an audit trail of every connector call and step — name, args, result, approval requirement and state — without a separate `executions()` round trip.

## 0.4.2

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/codemode/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflare/codemode",
"version": "0.4.2",
"version": "0.4.3",
"description": "Code Mode: use LLMs to generate executable code that performs tool calls",
"repository": {
"directory": "packages/codemode",
Expand Down
10 changes: 10 additions & 0 deletions packages/voice/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# @cloudflare/voice

## 0.3.4

### Patch Changes

- [#1909](https://github.com/cloudflare/agents/pull/1909) [`63491bd`](https://github.com/cloudflare/agents/commit/63491bdff0457118ea13139142d2578e5474fd99) Thanks [@cjol](https://github.com/cjol)! - Honor the configured sample rate for raw `pcm16` audio payloads.

Adds a `sampleRate` option to `VoiceAgentOptions` (default `16000`) that is declared in the server `audio_config` message. `VoiceClient` reads it (exposed via a new `sampleRate` getter) and constructs `AudioBuffer` instances at that rate for raw `pcm16` playback, so providers with a native rate other than 16 kHz (e.g. 24 kHz Gemini TTS) play at the correct speed. Falls back to 16 kHz when the server omits the field.

- [#1891](https://github.com/cloudflare/agents/pull/1891) [`d1cc317`](https://github.com/cloudflare/agents/commit/d1cc317516878c640438de00b854786381a2b08e) Thanks [@korinne](https://github.com/korinne)! - Add transcriber readiness so voice agents wait for streaming STT startup before entering listening state or running call-start hooks.

## 0.3.3

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/voice/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflare/voice",
"version": "0.3.3",
"version": "0.3.4",
"description": "Voice pipeline for Cloudflare Agents — STT, TTS, VAD, streaming, and SFU utilities",
"repository": {
"directory": "packages/voice",
Expand Down