Skip to content
Merged
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
13 changes: 0 additions & 13 deletions .changeset/billed-usage-unit.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-local-process-wait.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/openrouter-combined-tools-and-schema.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/preserve-server-reasoning.md

This file was deleted.

11 changes: 0 additions & 11 deletions .changeset/ssr-thread-identity.md

This file was deleted.

18 changes: 0 additions & 18 deletions .changeset/tidy-searches-coexist.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/vercel-sandbox-user-agent.md

This file was deleted.

47 changes: 0 additions & 47 deletions .changeset/websocket-transport.md

This file was deleted.

9 changes: 9 additions & 0 deletions examples/ag-ui/CHANGELOG.md
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
# ag-ui

## 0.0.7

### Patch Changes

- Updated dependencies [[`f6b9d89`](https://github.com/TanStack/ai/commit/f6b9d89e7365f0cb30a41cf3a46b7dd237fbc73c), [`ecd12a4`](https://github.com/TanStack/ai/commit/ecd12a408987bc75649c21aada6948282a2a66dd)]:
- @tanstack/ai-client@0.24.0
- @tanstack/ai-react@0.20.0
- @tanstack/ai-react-ui@0.8.17

## 0.0.6

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion examples/ag-ui/package.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,7 +2,7 @@
"name": "ag-ui",
"private": true,
"type": "module",
"version": "0.0.6",
"version": "0.0.7",
"scripts": {
"detect-servers": "node scripts/detect-servers.mjs",
"predev": "node scripts/detect-servers.mjs",
Expand Down
8 changes: 8 additions & 0 deletions packages/ai-acp/CHANGELOG.md
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
# @tanstack/ai-acp

## 0.3.1

### Patch Changes

- Updated dependencies [[`41a5d18`](https://github.com/TanStack/ai/commit/41a5d189082331e052e1f2f5e987848501ffd08b), [`4599019`](https://github.com/TanStack/ai/commit/4599019eb02f72562ef155b69b8f61f9d25d187a), [`3eda66c`](https://github.com/TanStack/ai/commit/3eda66cb132def6346829ba113f315ffdd4edf6b), [`ecd12a4`](https://github.com/TanStack/ai/commit/ecd12a408987bc75649c21aada6948282a2a66dd)]:
- @tanstack/ai@0.46.0
- @tanstack/ai-sandbox@0.3.4

## 0.3.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/ai-acp/package.json
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
{
"name": "@tanstack/ai-acp",
"version": "0.3.0",
"version": "0.3.1",
"description": "Shared Agent Client Protocol (ACP) transport, session, and AG-UI translation for TanStack AI harness adapters.",
"author": "",
"license": "MIT",
Expand Down
50 changes: 50 additions & 0 deletions packages/ai-angular/CHANGELOG.md
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,55 @@
# @tanstack/ai-angular

## 0.5.0

### Minor Changes

- [#969](https://github.com/TanStack/ai/pull/969) [`ecd12a4`](https://github.com/TanStack/ai/commit/ecd12a408987bc75649c21aada6948282a2a66dd) - WebSocket transport: a full-duplex, resumable third transport alongside SSE and
NDJSON, reusing the same delivery-durability seam.

On the server, `@tanstack/ai` adds `toWebSocketStream(socket, request, { onRun,
durability, batch, heartbeatMs, idleTimeoutMs, debug })` — a portable core that
pumps a conversation over an already-accepted WHATWG `WebSocketLike` server
socket (Node via `ws`, Bun, etc.), and `toWebSocketResponse(request, { onRun,
… })`, a thin wrapper that upgrades via `WebSocketPair` and returns a 101
`Response` on Cloudflare Workers/Durable Objects (it throws elsewhere, pointing
you at `toWebSocketStream`). Because one socket outlives many `chat()` turns
(client-tool resubmits, follow-up user messages), you pass an `onRun(ctx) =>
AsyncIterable<StreamChunk>` factory instead of a prebuilt stream — the helper
calls it per inbound `RunAgentInput` frame. The socket is conversation-scoped:
it stays open across turns and closes on client close or the idle timeout
(which never fires while a turn is still streaming), with a periodic
`{ type: 'ping' }` heartbeat. An `{ type: 'abort', runId }` control frame
aborts only that turn, leaving the socket open. A turn that fails is surfaced
to the client as a live `RUN_ERROR` frame, mirroring the HTTP transports. Durability is keyed per turn and reuses
the existing `durableStreamSource`, so server→client frames carry the same
`{ id, chunk }` envelope as NDJSON. `resumeWebSocketStream(socket, { adapter })`
and `resumeWebSocketResponse({ adapter })` replay a run read-only from the
durability log (no model call).

On the client, `webSocket(url, options)` (in `@tanstack/ai-client`, re-exported
from `@tanstack/ai-react`, `-solid`, `-vue`, `-svelte`, and `-angular`) is a
full-duplex `subscribe` + `send` connection adapter for `useChat`. `send()`
writes a `RunAgentInput` frame; `subscribe()` yields inbound chunks, ignores
heartbeats, unwraps durable envelopes, and auto-reconnects a dropped durable run
by reopening with `?runId=&offset=` (browsers can't set a `Last-Event-ID`
handshake header, so the offset rides in the URL). The reconnect bookkeeping
(offset de-dupe, no-progress ceiling → `StreamReconnectLimitError`) is shared
with the HTTP adapters via the new `createReconnectTracker`, and a fatal drop
surfaces to the consumer (`StreamReadError` / `StreamReconnectLimitError`)
instead of hanging. Aborting a run (`stop()` in `useChat`) sends the
`{ type: 'abort', runId }` frame so the server cancels the turn instead of
generating to completion, and `joinRun()` opens its own replay socket so a
rejoin never collides with the live conversation socket.

### Patch Changes

- [#1154](https://github.com/TanStack/ai/pull/1154) [`f6b9d89`](https://github.com/TanStack/ai/commit/f6b9d89e7365f0cb30a41cf3a46b7dd237fbc73c) - Mint omitted `threadId` after the view mounts, not during render. DevTools binds the hook row to `threadId`. Persistence that is on (`true` or a storage adapter) requires a `threadId` at compile time, and throws at runtime if it is missing. Chat and generation clients no longer accept a separate `id` option. Use `threadId`.

- Updated dependencies [[`41a5d18`](https://github.com/TanStack/ai/commit/41a5d189082331e052e1f2f5e987848501ffd08b), [`4599019`](https://github.com/TanStack/ai/commit/4599019eb02f72562ef155b69b8f61f9d25d187a), [`f6b9d89`](https://github.com/TanStack/ai/commit/f6b9d89e7365f0cb30a41cf3a46b7dd237fbc73c), [`3eda66c`](https://github.com/TanStack/ai/commit/3eda66cb132def6346829ba113f315ffdd4edf6b), [`ecd12a4`](https://github.com/TanStack/ai/commit/ecd12a408987bc75649c21aada6948282a2a66dd)]:
- @tanstack/ai@0.46.0
- @tanstack/ai-client@0.24.0

## 0.4.3

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/ai-angular/package.json
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
{
"name": "@tanstack/ai-angular",
"version": "0.4.3",
"version": "0.5.0",
"description": "Angular signals integration for TanStack AI streaming chat, structured outputs, and media generation.",
"author": "",
"license": "MIT",
Expand Down
15 changes: 15 additions & 0 deletions packages/ai-anthropic/CHANGELOG.md
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
# @tanstack/ai-anthropic

## 0.16.7

### Patch Changes

- [#932](https://github.com/TanStack/ai/pull/932) [`3eda66c`](https://github.com/TanStack/ai/commit/3eda66cb132def6346829ba113f315ffdd4edf6b) - Classify Anthropic, Gemini, and OpenAI native tools with stable runtime discriminators so ordinary functions can use the same public names without selecting provider-native behavior. Native tools must come from the adapter factory (`webSearchTool()`, `googleSearchTool()`, and the rest). A reserved `name` alone does not select a native converter. `chat()` throws `DuplicateToolNameError` when a factory tool and a custom function share the same public name.

Previously the converters picked provider-native behavior by `tool.name`. Tool names are public application identifiers, so a plain function called `web_search`, `google_search`, or `code_execution` was routed into a native converter: it lost its `inputSchema` and was sent as a provider-only payload (and on Anthropic could also flip on `code_execution` / skills beta headers). Native tools are now identified by adapter-owned metadata, which converters strip before building the wire payload, so provider API versions stay confined to the wire converters.

Also preserves Anthropic `webSearchTool` options (`max_uses`, `allowed_domains`, `blocked_domains`, `user_location`, `cache_control`) on the wire payload.

Also fixes `googleSearchTool({ searchTypes: … })` being silently dropped on the experimental `geminiTextInteractions()` adapter. The Interactions converter read a snake_case `search_types` array, but the public factory takes the Generate Content shape (`GoogleSearch.searchTypes: { webSearch?, imageSearch? }`), so the field never matched and every request fell back to the provider default of web-search-only. The camelCase config is now translated to the Interactions wire list.

- Updated dependencies [[`41a5d18`](https://github.com/TanStack/ai/commit/41a5d189082331e052e1f2f5e987848501ffd08b), [`4599019`](https://github.com/TanStack/ai/commit/4599019eb02f72562ef155b69b8f61f9d25d187a), [`3eda66c`](https://github.com/TanStack/ai/commit/3eda66cb132def6346829ba113f315ffdd4edf6b), [`ecd12a4`](https://github.com/TanStack/ai/commit/ecd12a408987bc75649c21aada6948282a2a66dd)]:
- @tanstack/ai@0.46.0

## 0.16.6

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/ai-anthropic/package.json
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
{
"name": "@tanstack/ai-anthropic",
"version": "0.16.6",
"version": "0.16.7",
"description": "Anthropic Claude adapter for TanStack AI chat, tool calling, thinking, and structured outputs.",
"author": "Tanner Linsley",
"license": "MIT",
Expand Down
8 changes: 8 additions & 0 deletions packages/ai-bedrock/CHANGELOG.md
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
# @tanstack/ai-bedrock

## 0.2.3

### Patch Changes

- Updated dependencies [[`41a5d18`](https://github.com/TanStack/ai/commit/41a5d189082331e052e1f2f5e987848501ffd08b), [`4599019`](https://github.com/TanStack/ai/commit/4599019eb02f72562ef155b69b8f61f9d25d187a), [`3eda66c`](https://github.com/TanStack/ai/commit/3eda66cb132def6346829ba113f315ffdd4edf6b), [`ecd12a4`](https://github.com/TanStack/ai/commit/ecd12a408987bc75649c21aada6948282a2a66dd)]:
- @tanstack/ai@0.46.0
- @tanstack/openai-base@0.9.15

## 0.2.2

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/ai-bedrock/package.json
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
{
"name": "@tanstack/ai-bedrock",
"version": "0.2.2",
"version": "0.2.3",
"type": "module",
"description": "Amazon Bedrock adapter for TanStack AI — OpenAI-compatible chat, responses, tools, and reasoning.",
"author": "",
Expand Down
12 changes: 12 additions & 0 deletions packages/ai-byteplus/CHANGELOG.md
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
# @tanstack/ai-byteplus

## 0.2.0

### Minor Changes

- [#896](https://github.com/TanStack/ai/pull/896) [`41a5d18`](https://github.com/TanStack/ai/commit/41a5d189082331e052e1f2f5e987848501ffd08b) - Add a self-describing `billed` field to `TokenUsage` so billed quantities carry the unit they are counted in ([#816](https://github.com/TanStack/ai/issues/816)). `usage.billed` is `{ quantity, unit }` with a `BillingUnit` union (`'seconds'`, `'units'`, `'images'`, `'tokens'`, ... open-ended). The deprecated `unitsBilled` / `durationSeconds` counts are still populated for backward compatibility. The fal adapters report `{ quantity, unit: 'units' }`, Grok video `{ quantity, unit: 'seconds' }`, the OpenAI/Grok/BytePlus duration-billed transcription paths `{ quantity, unit: 'seconds' }`, BytePlus Seedream images `{ quantity, unit: 'images' }`, BytePlus Seedance video `{ quantity, unit: 'tokens' }`, and Cohere/OpenRouter rerank `{ quantity, unit: 'units' }` (search units). Persistence sums `billed` when both reports use the same unit. `otelMiddleware` emits the pair as `tanstack.ai.usage.billed_quantity` / `tanstack.ai.usage.billed_unit` span attributes.

### Patch Changes

- Updated dependencies [[`41a5d18`](https://github.com/TanStack/ai/commit/41a5d189082331e052e1f2f5e987848501ffd08b), [`4599019`](https://github.com/TanStack/ai/commit/4599019eb02f72562ef155b69b8f61f9d25d187a), [`3eda66c`](https://github.com/TanStack/ai/commit/3eda66cb132def6346829ba113f315ffdd4edf6b), [`ecd12a4`](https://github.com/TanStack/ai/commit/ecd12a408987bc75649c21aada6948282a2a66dd)]:
- @tanstack/ai@0.46.0
- @tanstack/openai-base@0.9.15

## 0.1.3

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/ai-byteplus/package.json
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
{
"name": "@tanstack/ai-byteplus",
"version": "0.1.3",
"version": "0.2.0",
"description": "BytePlus ModelArk adapter for TanStack AI: Seed LLM chat, Seedance video, Seedream image, and Seed Speech TTS/ASR.",
"author": "Tanner Linsley",
"license": "MIT",
Expand Down
8 changes: 8 additions & 0 deletions packages/ai-claude-code/CHANGELOG.md
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
# @tanstack/ai-claude-code

## 0.4.1

### Patch Changes

- Updated dependencies [[`41a5d18`](https://github.com/TanStack/ai/commit/41a5d189082331e052e1f2f5e987848501ffd08b), [`4599019`](https://github.com/TanStack/ai/commit/4599019eb02f72562ef155b69b8f61f9d25d187a), [`3eda66c`](https://github.com/TanStack/ai/commit/3eda66cb132def6346829ba113f315ffdd4edf6b), [`ecd12a4`](https://github.com/TanStack/ai/commit/ecd12a408987bc75649c21aada6948282a2a66dd)]:
- @tanstack/ai@0.46.0
- @tanstack/ai-sandbox@0.3.4

## 0.4.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/ai-claude-code/package.json
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
{
"name": "@tanstack/ai-claude-code",
"version": "0.4.0",
"version": "0.4.1",
"description": "Claude Code harness adapter for TanStack AI — run Claude Code as a chat backend with local tool execution and stateful sessions.",
"author": "",
"license": "MIT",
Expand Down
Loading