diff --git a/.changeset/ai-cloudflare-embed-batch.md b/.changeset/ai-cloudflare-embed-batch.md deleted file mode 100644 index 39ff066744..0000000000 --- a/.changeset/ai-cloudflare-embed-batch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-cloudflare': patch ---- - -`embed()` with more than 100 inputs no longer fails on Workers AI embedding models that accept 100 texts per request, such as the BGE models. The adapter now sends the inputs in sequential requests of at most 100 texts and returns the vectors in input order. An aborted signal stops the remaining requests. Models with a lower limit, such as `@cf/qwen/qwen3-embedding-0.6b`, can still reject large inputs. diff --git a/.changeset/ai-openai-embed-batch.md b/.changeset/ai-openai-embed-batch.md deleted file mode 100644 index 1ca9efa142..0000000000 --- a/.changeset/ai-openai-embed-batch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-openai': patch ---- - -`embed()` with the OpenAI adapter now sends inputs in sequential requests of at most 2048 inputs each, the endpoint's limit, and sums the token usage. Before, more than 2048 texts failed with a 400 error. OpenAI also limits one request to 300,000 tokens across all inputs, so a large array of long texts can still fail. Split those calls yourself. diff --git a/.changeset/anthropic-incomplete-stream.md b/.changeset/anthropic-incomplete-stream.md deleted file mode 100644 index 2fad24e047..0000000000 --- a/.changeset/anthropic-incomplete-stream.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-anthropic': patch ---- - -Report `incomplete-stream` when an Anthropic stream ends before a stop reason (no `message_delta` with `stop_reason` and no `message_stop`). Before, the run had no terminal event and `onFinish` got the partial text as a success. An abort is not reported. diff --git a/.changeset/gemini-embed-batch-limit.md b/.changeset/gemini-embed-batch-limit.md deleted file mode 100644 index 59dbb18e88..0000000000 --- a/.changeset/gemini-embed-batch-limit.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-gemini': patch ---- - -`embed()` with the Gemini adapter now sends inputs in requests of at most 100 texts, one after the other, instead of one request for the whole array. Vectors keep input order and indexes, and Vertex billable characters are summed across requests. Calls with 100 or fewer inputs are unchanged. diff --git a/.changeset/sandbox-lifecycle-events.md b/.changeset/sandbox-lifecycle-events.md deleted file mode 100644 index f161d1895d..0000000000 --- a/.changeset/sandbox-lifecycle-events.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@tanstack/ai': minor -'@tanstack/ai-sandbox': minor ---- - -`withSandbox` now sends a `sandbox.starting` CUSTOM event before it creates or resumes the sandbox. Then it sends `sandbox.created` or `sandbox.resumed`. Use these events to show a pending state in the client while the sandbox starts. - -New in `@tanstack/ai`: `CUSTOM_EVENT.SANDBOX_STARTING`, the `SandboxStartingPayload` type, and the typed `SandboxStartingEvent`, `SandboxCreatedEvent`, and `SandboxResumedEvent` members of `KnownCustomEvent`. diff --git a/.changeset/sandbox-no-workspace-provides.md b/.changeset/sandbox-no-workspace-provides.md deleted file mode 100644 index eb2cc8b7da..0000000000 --- a/.changeset/sandbox-no-workspace-provides.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-sandbox': patch ---- - -`withSandbox` no longer fails the first `chat()` call with `declares it provides "sandbox-projection" but never called provide() in setup()` when the sandbox definition has no `workspace`. `sandbox-projection` is listed in `provides` only when a workspace is declared, which is when `setup` calls `provide()`. A sandbox with a workspace still satisfies `requires: [ProjectionCapability]`. diff --git a/.changeset/sdk-free-ai-anthropic.md b/.changeset/sdk-free-ai-anthropic.md deleted file mode 100644 index bc2d6535bb..0000000000 --- a/.changeset/sdk-free-ai-anthropic.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@tanstack/ai-anthropic': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not create the `@anthropic-ai/sdk` client. At runtime they load only small SDK modules, for example the error classes from `@anthropic-ai/sdk/core/error`. With a bundler that splits chunks, the startup bundle is smaller. Errors keep the same classes and fields. - -These options still load `@anthropic-ai/sdk` on first use: `middleware`, OpenTelemetry tracing, `logLevel: 'info'` or `'debug'` (or `ANTHROPIC_LOG`), and no `apiKey` and no `authToken`. diff --git a/.changeset/sdk-free-ai-bedrock.md b/.changeset/sdk-free-ai-bedrock.md deleted file mode 100644 index a9d7b46a92..0000000000 --- a/.changeset/sdk-free-ai-bedrock.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@tanstack/ai-bedrock': minor ---- - -`@aws-sdk/client-bedrock-runtime` and `@aws-sdk/credential-providers` are now optional peer dependencies. Bundles that do not use them are smaller. - -- If you use the Converse API (the default `api: 'converse'`) or embeddings, install `@aws-sdk/client-bedrock-runtime`. -- If you use SigV4 auth from the AWS credential chain (no API key), install `@aws-sdk/credential-providers`. -- If a package is missing, the first request throws an error that names the package to install. - -The Chat Completions and Responses APIs sign SigV4 requests in the adapter and call Bedrock with `fetch`. They do not load the `openai` SDK at runtime. diff --git a/.changeset/sdk-free-ai-byteplus.md b/.changeset/sdk-free-ai-byteplus.md deleted file mode 100644 index 3ce7a96245..0000000000 --- a/.changeset/sdk-free-ai-byteplus.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-byteplus': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. diff --git a/.changeset/sdk-free-ai-cloudflare.md b/.changeset/sdk-free-ai-cloudflare.md deleted file mode 100644 index bcab689196..0000000000 --- a/.changeset/sdk-free-ai-cloudflare.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-cloudflare': minor ---- - -`@cloudflare/workers-types` is now an optional peer dependency. If you use TypeScript, install it as a dev dependency, because the adapter types use its `Ai` binding and AI Gateway types. The adapter needs no extra package at runtime. diff --git a/.changeset/sdk-free-ai-elevenlabs.md b/.changeset/sdk-free-ai-elevenlabs.md deleted file mode 100644 index 907f27361a..0000000000 --- a/.changeset/sdk-free-ai-elevenlabs.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-elevenlabs': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not create the `@elevenlabs/elevenlabs-js` client. At runtime they load only the SDK error classes. Bundles are smaller. Errors keep the same classes and fields. diff --git a/.changeset/sdk-free-ai-fal.md b/.changeset/sdk-free-ai-fal.md deleted file mode 100644 index d5fdb95e14..0000000000 --- a/.changeset/sdk-free-ai-fal.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@tanstack/ai-fal': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not load the provider SDK at runtime, except for the options below. With a bundler that splits chunks, the startup bundle is smaller. The SDK stays a dependency for its TypeScript types and for those options. Errors keep the same `name`, `status`, `message`, and body fields. If your code checks an error with `instanceof` against an error class of `@fal-ai/client`, check `error.name` instead. - -- Each fal adapter now keeps its own config. Two fal adapters with different API keys do not overwrite each other. -- Uploads larger than 90 MB still load `@fal-ai/client` on first use. -- `configureFalClient` configures the global `fal` client of `@fal-ai/client` for apps that call `fal` themselves. diff --git a/.changeset/sdk-free-ai-gemini.md b/.changeset/sdk-free-ai-gemini.md deleted file mode 100644 index 3049eda8f3..0000000000 --- a/.changeset/sdk-free-ai-gemini.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@tanstack/ai-gemini': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not load the provider SDK at runtime, except for the options below. With a bundler that splits chunks, the startup bundle is smaller. The SDK stays a dependency for its TypeScript types and for those options. Errors keep the same `name`, `status`, `message`, and body fields. If your code checks an error with `instanceof` against an error class of `@google/genai`, check `error.name` instead. - -These options still load `@google/genai` on first use: `vertexai: true`, `enterprise: true`, no `apiKey`, and a file path string as the upload. diff --git a/.changeset/sdk-free-ai-grok.md b/.changeset/sdk-free-ai-grok.md deleted file mode 100644 index 617d2856cf..0000000000 --- a/.changeset/sdk-free-ai-grok.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-grok': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. diff --git a/.changeset/sdk-free-ai-groq.md b/.changeset/sdk-free-ai-groq.md deleted file mode 100644 index 8a1c44d014..0000000000 --- a/.changeset/sdk-free-ai-groq.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-groq': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. diff --git a/.changeset/sdk-free-ai-llmgateway.md b/.changeset/sdk-free-ai-llmgateway.md deleted file mode 100644 index b9351f02fe..0000000000 --- a/.changeset/sdk-free-ai-llmgateway.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-llmgateway': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. diff --git a/.changeset/sdk-free-ai-lovable.md b/.changeset/sdk-free-ai-lovable.md deleted file mode 100644 index 538f6c4d44..0000000000 --- a/.changeset/sdk-free-ai-lovable.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-lovable': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. diff --git a/.changeset/sdk-free-ai-mistral.md b/.changeset/sdk-free-ai-mistral.md deleted file mode 100644 index 4c5e1d8b88..0000000000 --- a/.changeset/sdk-free-ai-mistral.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-mistral': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not create the `@mistralai/mistralai` client. At runtime they load only the SDK error classes. Bundles are smaller. A 422 response now throws the adapter's own `HTTPValidationError`, not the SDK class. It has the same `name`, `message`, and `detail` fields, and it is still an `instanceof MistralError`. If your code checks a 422 error with `instanceof` against the SDK `HTTPValidationError`, check `error.name` instead. diff --git a/.changeset/sdk-free-ai-neon.md b/.changeset/sdk-free-ai-neon.md deleted file mode 100644 index cec54009a0..0000000000 --- a/.changeset/sdk-free-ai-neon.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-neon': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. diff --git a/.changeset/sdk-free-ai-openai.md b/.changeset/sdk-free-ai-openai.md deleted file mode 100644 index 1fe770323f..0000000000 --- a/.changeset/sdk-free-ai-openai.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-openai': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. diff --git a/.changeset/sdk-free-ai-openrouter.md b/.changeset/sdk-free-ai-openrouter.md deleted file mode 100644 index f30c060881..0000000000 --- a/.changeset/sdk-free-ai-openrouter.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-openrouter': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not create the `@openrouter/sdk` client. At runtime they load only the SDK error classes. Bundles are smaller. Errors keep the same `name` and fields, and they are still an `instanceof OpenRouterError`. An `instanceof` check against a typed SDK error class (for example `BadRequestResponseError` or `TooManyRequestsResponseError`) no longer matches. Check `error.name` instead. diff --git a/.changeset/sdk-free-ai-sandbox.md b/.changeset/sdk-free-ai-sandbox.md deleted file mode 100644 index 089d743b26..0000000000 --- a/.changeset/sdk-free-ai-sandbox.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-sandbox': patch ---- - -The host tool bridge now uses the MCP v2 server package `@modelcontextprotocol/server`. The bridge works the same way. The package is marked `"sideEffects": false`, so bundlers can drop the modules that you do not import. diff --git a/.changeset/sdk-free-ai-utils.md b/.changeset/sdk-free-ai-utils.md deleted file mode 100644 index d5abe99a29..0000000000 --- a/.changeset/sdk-free-ai-utils.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-utils': minor ---- - -Add the `@tanstack/ai-utils/http` subpath. It has the small `fetch` client that the provider adapters use: `createHttpClient` with retries and timeouts, `parseSSE`, `mergeHeaders`, `toHeaderRecord`, and `toFormData`. diff --git a/.changeset/sdk-free-ai-vercel-gateway.md b/.changeset/sdk-free-ai-vercel-gateway.md deleted file mode 100644 index 30279c5462..0000000000 --- a/.changeset/sdk-free-ai-vercel-gateway.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-vercel-gateway': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. diff --git a/.changeset/sdk-free-ai-vertex.md b/.changeset/sdk-free-ai-vertex.md deleted file mode 100644 index ca479e13aa..0000000000 --- a/.changeset/sdk-free-ai-vertex.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-vertex': patch ---- - -Mark the package as `"sideEffects": false`, so bundlers can drop the modules that you do not import. diff --git a/.changeset/sdk-free-openai-base.md b/.changeset/sdk-free-openai-base.md deleted file mode 100644 index a8581817e7..0000000000 --- a/.changeset/sdk-free-openai-base.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@tanstack/openai-base': patch ---- - -The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. - -New exports: `createOpenAIClient`, `createAzureOpenAIClient`, and the `OpenAIClientLike` type. Some options still load the `openai` SDK on first use: `workloadIdentity`, `provider`, `dataResidency`, `credential`, `x509Transport`, an admin key with no `apiKey`, and `azureADTokenProvider` on Azure. diff --git a/.changeset/sync-models.md b/.changeset/sync-models.md deleted file mode 100644 index c6e2fa732e..0000000000 --- a/.changeset/sync-models.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@tanstack/ai-llmgateway': patch -'@tanstack/ai-neon': patch -'@tanstack/ai-openai': patch -'@tanstack/ai-openrouter': patch -'@tanstack/ai-vercel-gateway': patch ---- - -Update model metadata from OpenRouter API diff --git a/packages/ai-anthropic/CHANGELOG.md b/packages/ai-anthropic/CHANGELOG.md index 8886c8c4f3..56a7ca7e6d 100644 --- a/packages/ai-anthropic/CHANGELOG.md +++ b/packages/ai-anthropic/CHANGELOG.md @@ -1,5 +1,19 @@ # @tanstack/ai-anthropic +## 1.1.1 + +### Patch Changes + +- [#2042](https://github.com/TanStack/ai/pull/2042) [`1f777da`](https://github.com/TanStack/ai/commit/1f777da51534bde12c9af3efd6c73855836ee7d7) - Report `incomplete-stream` when an Anthropic stream ends before a stop reason (no `message_delta` with `stop_reason` and no `message_stop`). Before, the run had no terminal event and `onFinish` got the partial text as a success. An abort is not reported. + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not create the `@anthropic-ai/sdk` client. At runtime they load only small SDK modules, for example the error classes from `@anthropic-ai/sdk/core/error`. With a bundler that splits chunks, the startup bundle is smaller. Errors keep the same classes and fields. + + These options still load `@anthropic-ai/sdk` on first use: `middleware`, OpenTelemetry tracing, `logLevel: 'info'` or `'debug'` (or `ANTHROPIC_LOG`), and no `apiKey` and no `authToken`. + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-anthropic/package.json b/packages/ai-anthropic/package.json index ba21a45354..dd8ded5f0a 100644 --- a/packages/ai-anthropic/package.json +++ b/packages/ai-anthropic/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-anthropic", - "version": "1.1.0", + "version": "1.1.1", "description": "Anthropic Claude adapter for TanStack AI chat, tool calling, thinking, and structured outputs.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-bedrock/CHANGELOG.md b/packages/ai-bedrock/CHANGELOG.md index 0f6a8541dd..d17e40bf2a 100644 --- a/packages/ai-bedrock/CHANGELOG.md +++ b/packages/ai-bedrock/CHANGELOG.md @@ -1,5 +1,22 @@ # @tanstack/ai-bedrock +## 1.2.0 + +### Minor Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - `@aws-sdk/client-bedrock-runtime` and `@aws-sdk/credential-providers` are now optional peer dependencies. Bundles that do not use them are smaller. + - If you use the Converse API (the default `api: 'converse'`) or embeddings, install `@aws-sdk/client-bedrock-runtime`. + - If you use SigV4 auth from the AWS credential chain (no API key), install `@aws-sdk/credential-providers`. + - If a package is missing, the first request throws an error that names the package to install. + + The Chat Completions and Responses APIs sign SigV4 requests in the adapter and call Bedrock with `fetch`. They do not load the `openai` SDK at runtime. + +### Patch Changes + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/openai-base@1.0.2 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-bedrock/package.json b/packages/ai-bedrock/package.json index 6740a2804a..d9e1d60ab3 100644 --- a/packages/ai-bedrock/package.json +++ b/packages/ai-bedrock/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-bedrock", - "version": "1.1.0", + "version": "1.2.0", "type": "module", "description": "Amazon Bedrock adapter for TanStack AI — OpenAI-compatible chat, responses, tools, and reasoning.", "author": "", diff --git a/packages/ai-byteplus/CHANGELOG.md b/packages/ai-byteplus/CHANGELOG.md index 5f40eb90ec..9a6e3e64df 100644 --- a/packages/ai-byteplus/CHANGELOG.md +++ b/packages/ai-byteplus/CHANGELOG.md @@ -1,5 +1,16 @@ # @tanstack/ai-byteplus +## 1.1.1 + +### Patch Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + - @tanstack/openai-base@1.0.2 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-byteplus/package.json b/packages/ai-byteplus/package.json index 6ed07d33fd..73154a6e51 100644 --- a/packages/ai-byteplus/package.json +++ b/packages/ai-byteplus/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-byteplus", - "version": "1.1.0", + "version": "1.1.1", "description": "BytePlus ModelArk adapter for TanStack AI: Seed LLM chat, Seedance video, Seedream image, and Seed Speech TTS/ASR.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-cloudflare/CHANGELOG.md b/packages/ai-cloudflare/CHANGELOG.md index 7cb2bebcb0..28d2b29bae 100644 --- a/packages/ai-cloudflare/CHANGELOG.md +++ b/packages/ai-cloudflare/CHANGELOG.md @@ -1,5 +1,20 @@ # @tanstack/ai-cloudflare +## 1.2.0 + +### Minor Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - `@cloudflare/workers-types` is now an optional peer dependency. If you use TypeScript, install it as a dev dependency, because the adapter types use its `Ai` binding and AI Gateway types. The adapter needs no extra package at runtime. + +### Patch Changes + +- [#2036](https://github.com/TanStack/ai/pull/2036) [`382cb80`](https://github.com/TanStack/ai/commit/382cb808f3bc51fe6dd44c84cb327549569b67ac) - `embed()` with more than 100 inputs no longer fails on Workers AI embedding models that accept 100 texts per request, such as the BGE models. The adapter now sends the inputs in sequential requests of at most 100 texts and returns the vectors in input order. An aborted signal stops the remaining requests. Models with a lower limit, such as `@cf/qwen/qwen3-embedding-0.6b`, can still reject large inputs. + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + - @tanstack/openai-base@1.0.2 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-cloudflare/package.json b/packages/ai-cloudflare/package.json index 4390cdac2f..1067d09531 100644 --- a/packages/ai-cloudflare/package.json +++ b/packages/ai-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-cloudflare", - "version": "1.1.0", + "version": "1.2.0", "description": "Cloudflare adapter for TanStack AI — Workers AI chat, embeddings, images, speech, transcription, and summarization over the AI binding or REST, with AI Gateway routing for any provider.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-elevenlabs/CHANGELOG.md b/packages/ai-elevenlabs/CHANGELOG.md index d3da80da37..c32ee422fb 100644 --- a/packages/ai-elevenlabs/CHANGELOG.md +++ b/packages/ai-elevenlabs/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/ai-elevenlabs +## 1.1.1 + +### Patch Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not create the `@elevenlabs/elevenlabs-js` client. At runtime they load only the SDK error classes. Bundles are smaller. Errors keep the same classes and fields. + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-elevenlabs/package.json b/packages/ai-elevenlabs/package.json index 3882b99406..8c3d06e087 100644 --- a/packages/ai-elevenlabs/package.json +++ b/packages/ai-elevenlabs/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-elevenlabs", - "version": "1.1.0", + "version": "1.1.1", "description": "ElevenLabs adapter for TanStack AI realtime voice, text-to-speech, transcription, music, and sound effects.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-fal/CHANGELOG.md b/packages/ai-fal/CHANGELOG.md index d05dc9687a..a76876d45f 100644 --- a/packages/ai-fal/CHANGELOG.md +++ b/packages/ai-fal/CHANGELOG.md @@ -1,5 +1,18 @@ # @tanstack/ai-fal +## 1.1.1 + +### Patch Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not load the provider SDK at runtime, except for the options below. With a bundler that splits chunks, the startup bundle is smaller. The SDK stays a dependency for its TypeScript types and for those options. Errors keep the same `name`, `status`, `message`, and body fields. If your code checks an error with `instanceof` against an error class of `@fal-ai/client`, check `error.name` instead. + - Each fal adapter now keeps its own config. Two fal adapters with different API keys do not overwrite each other. + - Uploads larger than 90 MB still load `@fal-ai/client` on first use. + - `configureFalClient` configures the global `fal` client of `@fal-ai/client` for apps that call `fal` themselves. + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-fal/package.json b/packages/ai-fal/package.json index 5a0e93ca39..cd159c7d3d 100644 --- a/packages/ai-fal/package.json +++ b/packages/ai-fal/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-fal", - "version": "1.1.0", + "version": "1.1.1", "description": "fal.ai adapter for TanStack AI image, video, live, audio, speech, and transcription generation.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-gemini/CHANGELOG.md b/packages/ai-gemini/CHANGELOG.md index 9c948e93b2..c4d3954011 100644 --- a/packages/ai-gemini/CHANGELOG.md +++ b/packages/ai-gemini/CHANGELOG.md @@ -1,5 +1,19 @@ # @tanstack/ai-gemini +## 1.1.1 + +### Patch Changes + +- [#2037](https://github.com/TanStack/ai/pull/2037) [`ac406f1`](https://github.com/TanStack/ai/commit/ac406f1d73126f977d193215b79bda140a1a2fca) - `embed()` with the Gemini adapter now sends inputs in requests of at most 100 texts, one after the other, instead of one request for the whole array. Vectors keep input order and indexes, and Vertex billable characters are summed across requests. Calls with 100 or fewer inputs are unchanged. + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not load the provider SDK at runtime, except for the options below. With a bundler that splits chunks, the startup bundle is smaller. The SDK stays a dependency for its TypeScript types and for those options. Errors keep the same `name`, `status`, `message`, and body fields. If your code checks an error with `instanceof` against an error class of `@google/genai`, check `error.name` instead. + + These options still load `@google/genai` on first use: `vertexai: true`, `enterprise: true`, no `apiKey`, and a file path string as the upload. + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-gemini/package.json b/packages/ai-gemini/package.json index 6fe8f689ca..9254ab7e84 100644 --- a/packages/ai-gemini/package.json +++ b/packages/ai-gemini/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-gemini", - "version": "1.1.0", + "version": "1.1.1", "description": "Google Gemini adapter for TanStack AI chat, images, speech, audio generation, and structured outputs.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-grok/CHANGELOG.md b/packages/ai-grok/CHANGELOG.md index 73a2c2ecd2..5919461644 100644 --- a/packages/ai-grok/CHANGELOG.md +++ b/packages/ai-grok/CHANGELOG.md @@ -1,5 +1,16 @@ # @tanstack/ai-grok +## 1.1.1 + +### Patch Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + - @tanstack/openai-base@1.0.2 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-grok/package.json b/packages/ai-grok/package.json index 944cb42b0b..0d7a30b893 100644 --- a/packages/ai-grok/package.json +++ b/packages/ai-grok/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-grok", - "version": "1.1.0", + "version": "1.1.1", "description": "xAI Grok adapter for TanStack AI chat, image generation, realtime, and structured outputs.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-groq/CHANGELOG.md b/packages/ai-groq/CHANGELOG.md index c8813efe7b..c36dc063e4 100644 --- a/packages/ai-groq/CHANGELOG.md +++ b/packages/ai-groq/CHANGELOG.md @@ -1,5 +1,16 @@ # @tanstack/ai-groq +## 1.0.2 + +### Patch Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + - @tanstack/openai-base@1.0.2 + ## 1.0.1 ### Patch Changes diff --git a/packages/ai-groq/package.json b/packages/ai-groq/package.json index 37b7826534..84934fe368 100644 --- a/packages/ai-groq/package.json +++ b/packages/ai-groq/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-groq", - "version": "1.0.1", + "version": "1.0.2", "description": "Groq adapter for TanStack AI low-latency chat, tool calling, and structured outputs.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-llmgateway/CHANGELOG.md b/packages/ai-llmgateway/CHANGELOG.md index 9b3c3ed460..eba8786ef0 100644 --- a/packages/ai-llmgateway/CHANGELOG.md +++ b/packages/ai-llmgateway/CHANGELOG.md @@ -1,5 +1,18 @@ # @tanstack/ai-llmgateway +## 1.0.1 + +### Patch Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. + +- [#1895](https://github.com/TanStack/ai/pull/1895) [`e024981`](https://github.com/TanStack/ai/commit/e024981ed2c0481c506595dae1280a94a7fba2e4) - Update model metadata from OpenRouter API + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + - @tanstack/openai-base@1.0.2 + ## 1.0.0 ### Major Changes diff --git a/packages/ai-llmgateway/package.json b/packages/ai-llmgateway/package.json index f3db30fa33..34cd1c7059 100644 --- a/packages/ai-llmgateway/package.json +++ b/packages/ai-llmgateway/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-llmgateway", - "version": "1.0.0", + "version": "1.0.1", "description": "LLM Gateway adapter for TanStack AI — one OpenAI-compatible endpoint for chat, tool calling, and structured outputs across many providers and models.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-lovable/CHANGELOG.md b/packages/ai-lovable/CHANGELOG.md index 4742f12428..47d2357eb9 100644 --- a/packages/ai-lovable/CHANGELOG.md +++ b/packages/ai-lovable/CHANGELOG.md @@ -1,5 +1,16 @@ # @tanstack/ai-lovable +## 1.1.1 + +### Patch Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + - @tanstack/openai-base@1.0.2 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-lovable/package.json b/packages/ai-lovable/package.json index 6b5655d712..c817cfa888 100644 --- a/packages/ai-lovable/package.json +++ b/packages/ai-lovable/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-lovable", - "version": "1.1.0", + "version": "1.1.1", "description": "Lovable AI Gateway adapter for TanStack AI chat, embeddings, image, video, speech, and transcription.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-mistral/CHANGELOG.md b/packages/ai-mistral/CHANGELOG.md index 69b97519fa..1811f0efe8 100644 --- a/packages/ai-mistral/CHANGELOG.md +++ b/packages/ai-mistral/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/ai-mistral +## 1.1.1 + +### Patch Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not create the `@mistralai/mistralai` client. At runtime they load only the SDK error classes. Bundles are smaller. A 422 response now throws the adapter's own `HTTPValidationError`, not the SDK class. It has the same `name`, `message`, and `detail` fields, and it is still an `instanceof MistralError`. If your code checks a 422 error with `instanceof` against the SDK `HTTPValidationError`, check `error.name` instead. + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-mistral/package.json b/packages/ai-mistral/package.json index 52ce61ffc3..f962af1e35 100644 --- a/packages/ai-mistral/package.json +++ b/packages/ai-mistral/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-mistral", - "version": "1.1.0", + "version": "1.1.1", "type": "module", "description": "Mistral adapter for TanStack AI", "author": "", diff --git a/packages/ai-neon/CHANGELOG.md b/packages/ai-neon/CHANGELOG.md index ef5c68ddde..75fd2c07f8 100644 --- a/packages/ai-neon/CHANGELOG.md +++ b/packages/ai-neon/CHANGELOG.md @@ -1,5 +1,19 @@ # @tanstack/ai-neon +## 0.2.1 + +### Patch Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. + +- [#1895](https://github.com/TanStack/ai/pull/1895) [`e024981`](https://github.com/TanStack/ai/commit/e024981ed2c0481c506595dae1280a94a7fba2e4) - Update model metadata from OpenRouter API + +- Updated dependencies [[`1f777da`](https://github.com/TanStack/ai/commit/1f777da51534bde12c9af3efd6c73855836ee7d7), [`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai-anthropic@1.1.1 + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + - @tanstack/openai-base@1.0.2 + ## 0.2.0 ### Minor Changes diff --git a/packages/ai-neon/package.json b/packages/ai-neon/package.json index 5ccc4c6ab6..23ec95394e 100644 --- a/packages/ai-neon/package.json +++ b/packages/ai-neon/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-neon", - "version": "0.2.0", + "version": "0.2.1", "description": "Neon AI Gateway adapter for TanStack AI chat, embeddings, and summarization.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-openai/CHANGELOG.md b/packages/ai-openai/CHANGELOG.md index fde4fd7bb6..a72e2b37a9 100644 --- a/packages/ai-openai/CHANGELOG.md +++ b/packages/ai-openai/CHANGELOG.md @@ -1,5 +1,20 @@ # @tanstack/ai-openai +## 1.1.1 + +### Patch Changes + +- [#1986](https://github.com/TanStack/ai/pull/1986) [`b23df66`](https://github.com/TanStack/ai/commit/b23df66975997e35860df382ba57c699fd8c1b3e) - `embed()` with the OpenAI adapter now sends inputs in sequential requests of at most 2048 inputs each, the endpoint's limit, and sums the token usage. Before, more than 2048 texts failed with a 400 error. OpenAI also limits one request to 300,000 tokens across all inputs, so a large array of long texts can still fail. Split those calls yourself. + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. + +- [#1895](https://github.com/TanStack/ai/pull/1895) [`e024981`](https://github.com/TanStack/ai/commit/e024981ed2c0481c506595dae1280a94a7fba2e4) - Update model metadata from OpenRouter API + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + - @tanstack/openai-base@1.0.2 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-openai/package.json b/packages/ai-openai/package.json index 7b1e10f8fe..ae2cd2a4dd 100644 --- a/packages/ai-openai/package.json +++ b/packages/ai-openai/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-openai", - "version": "1.1.0", + "version": "1.1.1", "description": "OpenAI adapter for TanStack AI chat, tools, images, video, speech, transcription, realtime, and structured outputs.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-openrouter/CHANGELOG.md b/packages/ai-openrouter/CHANGELOG.md index 89b3c283f1..b9ea6cc870 100644 --- a/packages/ai-openrouter/CHANGELOG.md +++ b/packages/ai-openrouter/CHANGELOG.md @@ -1,5 +1,17 @@ # @tanstack/ai-openrouter +## 1.1.1 + +### Patch Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not create the `@openrouter/sdk` client. At runtime they load only the SDK error classes. Bundles are smaller. Errors keep the same `name` and fields, and they are still an `instanceof OpenRouterError`. An `instanceof` check against a typed SDK error class (for example `BadRequestResponseError` or `TooManyRequestsResponseError`) no longer matches. Check `error.name` instead. + +- [#1895](https://github.com/TanStack/ai/pull/1895) [`e024981`](https://github.com/TanStack/ai/commit/e024981ed2c0481c506595dae1280a94a7fba2e4) - Update model metadata from OpenRouter API + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-openrouter/package.json b/packages/ai-openrouter/package.json index b467fd3fa1..5fcf55e649 100644 --- a/packages/ai-openrouter/package.json +++ b/packages/ai-openrouter/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-openrouter", - "version": "1.1.0", + "version": "1.1.1", "description": "TanStack AI adapter for OpenRouter chat, provider tools, structured outputs, and access to hundreds of LLMs.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-sandbox/CHANGELOG.md b/packages/ai-sandbox/CHANGELOG.md index 91e5f0d6e9..13b3e3ef91 100644 --- a/packages/ai-sandbox/CHANGELOG.md +++ b/packages/ai-sandbox/CHANGELOG.md @@ -1,5 +1,25 @@ # @tanstack/ai-sandbox +## 1.2.0 + +### Minor Changes + +- [#2033](https://github.com/TanStack/ai/pull/2033) [`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9) - `withSandbox` now sends a `sandbox.starting` CUSTOM event before it creates or resumes the sandbox. Then it sends `sandbox.created` or `sandbox.resumed`. Use these events to show a pending state in the client while the sandbox starts. + + New in `@tanstack/ai`: `CUSTOM_EVENT.SANDBOX_STARTING`, the `SandboxStartingPayload` type, and the typed `SandboxStartingEvent`, `SandboxCreatedEvent`, and `SandboxResumedEvent` members of `KnownCustomEvent`. + +### Patch Changes + +- [#2039](https://github.com/TanStack/ai/pull/2039) [`c86063a`](https://github.com/TanStack/ai/commit/c86063a09fd81dc069e9eb597086f0b4f42c142c) - `withSandbox` no longer fails the first `chat()` call with `declares it provides "sandbox-projection" but never called provide() in setup()` when the sandbox definition has no `workspace`. `sandbox-projection` is listed in `provides` only when a workspace is declared, which is when `setup` calls `provide()`. A sandbox with a workspace still satisfies `requires: [ProjectionCapability]`. + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The host tool bridge now uses the MCP v2 server package `@modelcontextprotocol/server`. The bridge works the same way. The package is marked `"sideEffects": false`, so bundlers can drop the modules that you do not import. + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + - @tanstack/ai-harness@0.2.0 + - @tanstack/ai-persistence@1.0.1 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-sandbox/package.json b/packages/ai-sandbox/package.json index 113dba4209..f7f521a389 100644 --- a/packages/ai-sandbox/package.json +++ b/packages/ai-sandbox/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-sandbox", - "version": "1.1.0", + "version": "1.2.0", "description": "Provider-agnostic sandbox layer for TanStack AI — run harness adapters inside isolated sandboxes (defineSandbox, defineWorkspace, withSandbox) with a uniform SandboxHandle, workspace bootstrap, policy, and resumable lifecycle.", "author": "", "license": "MIT", diff --git a/packages/ai-utils/CHANGELOG.md b/packages/ai-utils/CHANGELOG.md index bd040605ee..b389ecda02 100644 --- a/packages/ai-utils/CHANGELOG.md +++ b/packages/ai-utils/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/ai-utils +## 1.1.0 + +### Minor Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - Add the `@tanstack/ai-utils/http` subpath. It has the small `fetch` client that the provider adapters use: `createHttpClient` with retries and timeouts, `parseSSE`, `mergeHeaders`, `toHeaderRecord`, and `toFormData`. + ## 1.0.1 ### Patch Changes diff --git a/packages/ai-utils/package.json b/packages/ai-utils/package.json index f8f6cc1430..54d441e30c 100644 --- a/packages/ai-utils/package.json +++ b/packages/ai-utils/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-utils", - "version": "1.0.1", + "version": "1.1.0", "description": "Shared TypeScript utilities for TanStack AI provider adapters and runtime packages.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-vercel-gateway/CHANGELOG.md b/packages/ai-vercel-gateway/CHANGELOG.md index 411f569fbf..944d139a1b 100644 --- a/packages/ai-vercel-gateway/CHANGELOG.md +++ b/packages/ai-vercel-gateway/CHANGELOG.md @@ -1,5 +1,18 @@ # @tanstack/ai-vercel-gateway +## 1.1.1 + +### Patch Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. + +- [#1895](https://github.com/TanStack/ai/pull/1895) [`e024981`](https://github.com/TanStack/ai/commit/e024981ed2c0481c506595dae1280a94a7fba2e4) - Update model metadata from OpenRouter API + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + - @tanstack/openai-base@1.0.2 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai-vercel-gateway/package.json b/packages/ai-vercel-gateway/package.json index 6f7953f1d6..2901ebac0e 100644 --- a/packages/ai-vercel-gateway/package.json +++ b/packages/ai-vercel-gateway/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-vercel-gateway", - "version": "1.1.0", + "version": "1.1.1", "description": "Vercel AI Gateway adapter for TanStack AI chat, embeddings, and image generation.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-vertex/CHANGELOG.md b/packages/ai-vertex/CHANGELOG.md index 2e68614b98..324ed6c417 100644 --- a/packages/ai-vertex/CHANGELOG.md +++ b/packages/ai-vertex/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/ai-vertex +## 1.0.1 + +### Patch Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - Mark the package as `"sideEffects": false`, so bundlers can drop the modules that you do not import. + +- Updated dependencies [[`ac406f1`](https://github.com/TanStack/ai/commit/ac406f1d73126f977d193215b79bda140a1a2fca), [`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai-gemini@1.1.1 + - @tanstack/ai@1.2.0 + ## 1.0.0 ### Major Changes diff --git a/packages/ai-vertex/package.json b/packages/ai-vertex/package.json index 775174aeee..77c92ad8a5 100644 --- a/packages/ai-vertex/package.json +++ b/packages/ai-vertex/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-vertex", - "version": "1.0.0", + "version": "1.0.1", "description": "Google Vertex AI adapter for TanStack AI. Runs Gemini models on Vertex with regional endpoints and Google Cloud credentials.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai/CHANGELOG.md b/packages/ai/CHANGELOG.md index 2b835c93dd..928b45d934 100644 --- a/packages/ai/CHANGELOG.md +++ b/packages/ai/CHANGELOG.md @@ -1,5 +1,18 @@ # @tanstack/ai +## 1.2.0 + +### Minor Changes + +- [#2033](https://github.com/TanStack/ai/pull/2033) [`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9) - `withSandbox` now sends a `sandbox.starting` CUSTOM event before it creates or resumes the sandbox. Then it sends `sandbox.created` or `sandbox.resumed`. Use these events to show a pending state in the client while the sandbox starts. + + New in `@tanstack/ai`: `CUSTOM_EVENT.SANDBOX_STARTING`, the `SandboxStartingPayload` type, and the typed `SandboxStartingEvent`, `SandboxCreatedEvent`, and `SandboxResumedEvent` members of `KnownCustomEvent`. + +### Patch Changes + +- Updated dependencies [[`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai-utils@1.1.0 + ## 1.1.0 ### Minor Changes diff --git a/packages/ai/package.json b/packages/ai/package.json index 64ed2449bf..c3ff1a9d04 100644 --- a/packages/ai/package.json +++ b/packages/ai/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai", - "version": "1.1.0", + "version": "1.2.0", "description": "Type-safe TypeScript AI SDK for streaming chat, tool calling, agents, structured outputs, and multimodal generation.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/openai-base/CHANGELOG.md b/packages/openai-base/CHANGELOG.md index f6c332210f..e54d8564ce 100644 --- a/packages/openai-base/CHANGELOG.md +++ b/packages/openai-base/CHANGELOG.md @@ -1,5 +1,17 @@ # @tanstack/openai-base +## 1.0.2 + +### Patch Changes + +- [#1973](https://github.com/TanStack/ai/pull/1973) [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce) - The adapters now call the provider HTTP API with `fetch` and do not create the `openai` SDK client. At runtime they load only small SDK modules, for example the error classes from `openai/core/error`. With a bundler that splits chunks, the startup bundle is smaller. A single-file bundle can be a little larger, because a few rare options still load the full SDK on first use. Errors keep the same classes and fields. + + New exports: `createOpenAIClient`, `createAzureOpenAIClient`, and the `OpenAIClientLike` type. Some options still load the `openai` SDK on first use: `workloadIdentity`, `provider`, `dataResidency`, `credential`, `x509Transport`, an admin key with no `apiKey`, and `azureADTokenProvider` on Azure. + +- Updated dependencies [[`48cbc66`](https://github.com/TanStack/ai/commit/48cbc66d677896e75d242e9c52be67f7da259fd9), [`374fb69`](https://github.com/TanStack/ai/commit/374fb69a534de7e200421056acf3a677fd833bce)]: + - @tanstack/ai@1.2.0 + - @tanstack/ai-utils@1.1.0 + ## 1.0.1 ### Patch Changes diff --git a/packages/openai-base/package.json b/packages/openai-base/package.json index 3702c79b4c..37bddb0872 100644 --- a/packages/openai-base/package.json +++ b/packages/openai-base/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/openai-base", - "version": "1.0.1", + "version": "1.0.2", "description": "Shared OpenAI SDK base adapters for TanStack AI providers using Chat Completions and Responses APIs.", "author": "Tanner Linsley", "license": "MIT",