diff --git a/.changeset/anthropic-drop-model-options-system.md b/.changeset/anthropic-drop-model-options-system.md deleted file mode 100644 index 588124354e..0000000000 --- a/.changeset/anthropic-drop-model-options-system.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@tanstack/ai-anthropic': minor ---- - -Drop `modelOptions.system` from the accepted Anthropic provider options. System prompts must now flow through the top-level `systemPrompts` option on `chat()`/`structuredOutput()`. - -This was an undocumented escape hatch only reachable via casts, but it was the only way to attach `cache_control` to system blocks for prompt caching. Until `systemPrompts` is widened to carry per-prompt metadata (planned follow-up), callers who need Anthropic `cache_control` on system text should keep using `modelOptions.system` on the prior version, or supply a custom adapter override. - -To make the removal loud instead of silent, the adapter now logs an `errors`-category log line via the provided `Logger` whenever unknown `modelOptions` keys are passed (including `system`). Callers casting around the public type will see the dropped keys named in the log, rather than the request going out without them. diff --git a/.changeset/openrouter-restore-tool-capabilities.md b/.changeset/openrouter-restore-tool-capabilities.md deleted file mode 100644 index fe43ac2250..0000000000 --- a/.changeset/openrouter-restore-tool-capabilities.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-openrouter': patch ---- - -Restore `OpenRouterChatModelToolCapabilitiesByName` export in `model-meta.ts` and emit it from the OpenRouter model generator so future syncs don't drop it. diff --git a/.changeset/sync-models.md b/.changeset/sync-models.md deleted file mode 100644 index 84e913b41f..0000000000 --- a/.changeset/sync-models.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@tanstack/ai-anthropic': patch -'@tanstack/ai-grok': patch -'@tanstack/ai-openai': patch -'@tanstack/ai-openrouter': patch ---- - -Update model metadata from OpenRouter API diff --git a/.changeset/vue-messages-discrimination.md b/.changeset/vue-messages-discrimination.md deleted file mode 100644 index 692497af60..0000000000 --- a/.changeset/vue-messages-discrimination.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-vue': patch ---- - -Fix `useChat` in Vue: `messages`, `partial`, and `final` now use `Readonly>` instead of `DeepReadonly>`. The deep-readonly wrapper was contradictory over a shallow ref and silently collapsed the `MessagePart` discriminated union, breaking `parts.find(p => p.type === 'structured-output')?.data` narrowing in consumer code. The runtime behavior is unchanged. diff --git a/packages/typescript/ai-anthropic/CHANGELOG.md b/packages/typescript/ai-anthropic/CHANGELOG.md index 8cd386bafe..39818cc496 100644 --- a/packages/typescript/ai-anthropic/CHANGELOG.md +++ b/packages/typescript/ai-anthropic/CHANGELOG.md @@ -1,5 +1,19 @@ # @tanstack/ai-anthropic +## 0.9.0 + +### Minor Changes + +- Drop `modelOptions.system` from the accepted Anthropic provider options. System prompts must now flow through the top-level `systemPrompts` option on `chat()`/`structuredOutput()`. ([#572](https://github.com/TanStack/ai/pull/572)) + + This was an undocumented escape hatch only reachable via casts, but it was the only way to attach `cache_control` to system blocks for prompt caching. Until `systemPrompts` is widened to carry per-prompt metadata (planned follow-up), callers who need Anthropic `cache_control` on system text should keep using `modelOptions.system` on the prior version, or supply a custom adapter override. + + To make the removal loud instead of silent, the adapter now logs an `errors`-category log line via the provided `Logger` whenever unknown `modelOptions` keys are passed (including `system`). Callers casting around the public type will see the dropped keys named in the log, rather than the request going out without them. + +### Patch Changes + +- Update model metadata from OpenRouter API ([#581](https://github.com/TanStack/ai/pull/581)) + ## 0.8.9 ### Patch Changes diff --git a/packages/typescript/ai-anthropic/package.json b/packages/typescript/ai-anthropic/package.json index 35432300cd..25ffd8e35f 100644 --- a/packages/typescript/ai-anthropic/package.json +++ b/packages/typescript/ai-anthropic/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-anthropic", - "version": "0.8.9", + "version": "0.9.0", "description": "Anthropic Claude adapter for TanStack AI", "author": "", "license": "MIT", diff --git a/packages/typescript/ai-grok/CHANGELOG.md b/packages/typescript/ai-grok/CHANGELOG.md index 51c38fc41e..b0f5d3dd2e 100644 --- a/packages/typescript/ai-grok/CHANGELOG.md +++ b/packages/typescript/ai-grok/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/ai-grok +## 0.8.3 + +### Patch Changes + +- Update model metadata from OpenRouter API ([#581](https://github.com/TanStack/ai/pull/581)) + ## 0.8.2 ### Patch Changes diff --git a/packages/typescript/ai-grok/package.json b/packages/typescript/ai-grok/package.json index 66e402cc84..e0faa7f9d0 100644 --- a/packages/typescript/ai-grok/package.json +++ b/packages/typescript/ai-grok/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-grok", - "version": "0.8.2", + "version": "0.8.3", "description": "Grok (xAI) adapter for TanStack AI", "author": "", "license": "MIT", diff --git a/packages/typescript/ai-openai/CHANGELOG.md b/packages/typescript/ai-openai/CHANGELOG.md index 1e20f75f4b..0e7a4a74d0 100644 --- a/packages/typescript/ai-openai/CHANGELOG.md +++ b/packages/typescript/ai-openai/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/ai-openai +## 0.9.3 + +### Patch Changes + +- Update model metadata from OpenRouter API ([#581](https://github.com/TanStack/ai/pull/581)) + ## 0.9.2 ### Patch Changes diff --git a/packages/typescript/ai-openai/package.json b/packages/typescript/ai-openai/package.json index d23eb4066b..afc04e21d5 100644 --- a/packages/typescript/ai-openai/package.json +++ b/packages/typescript/ai-openai/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-openai", - "version": "0.9.2", + "version": "0.9.3", "description": "OpenAI adapter for TanStack AI", "author": "", "license": "MIT", diff --git a/packages/typescript/ai-openrouter/CHANGELOG.md b/packages/typescript/ai-openrouter/CHANGELOG.md index 9456790b47..48bff83a25 100644 --- a/packages/typescript/ai-openrouter/CHANGELOG.md +++ b/packages/typescript/ai-openrouter/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/ai-openrouter +## 0.9.3 + +### Patch Changes + +- Restore `OpenRouterChatModelToolCapabilitiesByName` export in `model-meta.ts` and emit it from the OpenRouter model generator so future syncs don't drop it. ([#582](https://github.com/TanStack/ai/pull/582)) + +- Update model metadata from OpenRouter API ([#581](https://github.com/TanStack/ai/pull/581)) + ## 0.9.2 ### Patch Changes diff --git a/packages/typescript/ai-openrouter/package.json b/packages/typescript/ai-openrouter/package.json index 4925af01e1..16c1d50ba1 100644 --- a/packages/typescript/ai-openrouter/package.json +++ b/packages/typescript/ai-openrouter/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-openrouter", - "version": "0.9.2", + "version": "0.9.3", "description": "OpenRouter adapter for TanStack AI", "author": "", "license": "MIT", diff --git a/packages/typescript/ai-vue-ui/CHANGELOG.md b/packages/typescript/ai-vue-ui/CHANGELOG.md index 675b2ccb38..11e5d34bfa 100644 --- a/packages/typescript/ai-vue-ui/CHANGELOG.md +++ b/packages/typescript/ai-vue-ui/CHANGELOG.md @@ -1,5 +1,12 @@ # @tanstack/ai-vue-ui +## 0.1.37 + +### Patch Changes + +- Updated dependencies [[`88fe80c`](https://github.com/TanStack/ai/commit/88fe80c404a218bf3e3a1ed5853a14f61248ed14)]: + - @tanstack/ai-vue@0.10.1 + ## 0.1.36 ### Patch Changes diff --git a/packages/typescript/ai-vue-ui/package.json b/packages/typescript/ai-vue-ui/package.json index 112194cc22..7197f55d1a 100644 --- a/packages/typescript/ai-vue-ui/package.json +++ b/packages/typescript/ai-vue-ui/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-vue-ui", - "version": "0.1.36", + "version": "0.1.37", "description": "Headless Vue components for building AI chat interfaces", "module": "./src/index.ts", "types": "./src/index.ts", diff --git a/packages/typescript/ai-vue/CHANGELOG.md b/packages/typescript/ai-vue/CHANGELOG.md index 4f255f1809..2c05a6b732 100644 --- a/packages/typescript/ai-vue/CHANGELOG.md +++ b/packages/typescript/ai-vue/CHANGELOG.md @@ -1,5 +1,11 @@ # @tanstack/ai-vue +## 0.10.1 + +### Patch Changes + +- Fix `useChat` in Vue: `messages`, `partial`, and `final` now use `Readonly>` instead of `DeepReadonly>`. The deep-readonly wrapper was contradictory over a shallow ref and silently collapsed the `MessagePart` discriminated union, breaking `parts.find(p => p.type === 'structured-output')?.data` narrowing in consumer code. The runtime behavior is unchanged. ([#583](https://github.com/TanStack/ai/pull/583)) + ## 0.10.0 ### Minor Changes diff --git a/packages/typescript/ai-vue/package.json b/packages/typescript/ai-vue/package.json index 2df0b313af..4efaca9286 100644 --- a/packages/typescript/ai-vue/package.json +++ b/packages/typescript/ai-vue/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-vue", - "version": "0.10.0", + "version": "0.10.1", "description": "Vue hooks for TanStack AI", "author": "", "license": "MIT",