Skip to content

ci: Version Packages#637

Merged
AlemTuzlak merged 1 commit into
mainfrom
changeset-release/main
May 25, 2026
Merged

ci: Version Packages#637
AlemTuzlak merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@tanstack/ai@0.22.0

Minor Changes

  • Route chat({ outputSchema, tools }) through the provider's native single-pass call where supported (modern OpenAI Chat Completions + Responses, Claude 4.5+, Gemini 3.x, Grok 4.x family). Closes Route structured-output through native combined-mode where supported (skip finalization round-trip) #605. (#609)

    Historically, chat({ outputSchema, tools }) ran the agent loop with tools and then issued a separate finalization call against the structured-output adapter for the typed answer — because most providers couldn't combine tools with a schema-constrained response in one call. That has changed for most modern providers, making the second round-trip pure overhead.

    New per-adapter capability: TextAdapter.supportsCombinedToolsAndSchema?(modelOptions?). Adapters that opt in receive a JSON Schema on TextOptions.outputSchema in chatStream and wire it into the upstream request alongside tools. The engine harvests the final-turn JSON from the agent loop's accumulated text — no separate finalization call, no 'structuredOutput' middleware phase.

    Per-adapter status:

    • OpenAI (Chat Completions + Responses): opted in for all models. response_format: json_schema / text.format: json_schema attached when outputSchema is set.
    • Anthropic: opted in for Claude 4.5+ (Opus / Sonnet / Haiku 4.5, 4.6, 4.7). Wires output_config.format on the beta Messages request. Pre-4.5 Claude models keep the forced-tool finalization workaround. Gated by exported ANTHROPIC_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Gemini: opted in for Gemini 3.x (3-pro, 3-flash, 3.1-pro-preview, 3.1-flash-lite). Wires responseSchema + responseMimeType: 'application/json' into the regular generateContentStream call. Gemini 2.x keeps the legacy path. Gated by exported GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Grok (xAI): opted in for the Grok 4 family (grok-4, grok-4-1-fast-*, grok-4-fast-*, grok-4-20*, grok-4-3, grok-code-fast-1). Inherits the OpenAI Chat Completions wiring from openai-base; the override gates the capability claim by model. Grok 2 / 3 keep the legacy path. Gated by exported GROK_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Groq: explicitly opts out — the Groq API rejects response_format + tools + stream with HTTP 400 ("Streaming and tool use are not currently supported with Structured Outputs").
    • OpenRouter, Ollama: unchanged; still take the legacy finalization path. OpenRouter's per-request capability lookup (depends on resolved upstream model) is tracked as a follow-up.

    Backward compatibility:

    • 'structuredOutput' middleware phase still fires for fallback-path adapters. It does NOT fire for adapters that handle the combination natively — middleware sees the run through 'beforeModel' / 'modelStream' as usual.
    • onStructuredOutputConfig keeps its existing surface but only fires on the fallback path.
    • No call-site changes required.

Patch Changes

  • Updated dependencies []:
    • @tanstack/ai-event-client@0.3.11

@tanstack/ai-anthropic@0.11.0

Minor Changes

  • Route chat({ outputSchema, tools }) through the provider's native single-pass call where supported (modern OpenAI Chat Completions + Responses, Claude 4.5+, Gemini 3.x, Grok 4.x family). Closes Route structured-output through native combined-mode where supported (skip finalization round-trip) #605. (#609)

    Historically, chat({ outputSchema, tools }) ran the agent loop with tools and then issued a separate finalization call against the structured-output adapter for the typed answer — because most providers couldn't combine tools with a schema-constrained response in one call. That has changed for most modern providers, making the second round-trip pure overhead.

    New per-adapter capability: TextAdapter.supportsCombinedToolsAndSchema?(modelOptions?). Adapters that opt in receive a JSON Schema on TextOptions.outputSchema in chatStream and wire it into the upstream request alongside tools. The engine harvests the final-turn JSON from the agent loop's accumulated text — no separate finalization call, no 'structuredOutput' middleware phase.

    Per-adapter status:

    • OpenAI (Chat Completions + Responses): opted in for all models. response_format: json_schema / text.format: json_schema attached when outputSchema is set.
    • Anthropic: opted in for Claude 4.5+ (Opus / Sonnet / Haiku 4.5, 4.6, 4.7). Wires output_config.format on the beta Messages request. Pre-4.5 Claude models keep the forced-tool finalization workaround. Gated by exported ANTHROPIC_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Gemini: opted in for Gemini 3.x (3-pro, 3-flash, 3.1-pro-preview, 3.1-flash-lite). Wires responseSchema + responseMimeType: 'application/json' into the regular generateContentStream call. Gemini 2.x keeps the legacy path. Gated by exported GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Grok (xAI): opted in for the Grok 4 family (grok-4, grok-4-1-fast-*, grok-4-fast-*, grok-4-20*, grok-4-3, grok-code-fast-1). Inherits the OpenAI Chat Completions wiring from openai-base; the override gates the capability claim by model. Grok 2 / 3 keep the legacy path. Gated by exported GROK_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Groq: explicitly opts out — the Groq API rejects response_format + tools + stream with HTTP 400 ("Streaming and tool use are not currently supported with Structured Outputs").
    • OpenRouter, Ollama: unchanged; still take the legacy finalization path. OpenRouter's per-request capability lookup (depends on resolved upstream model) is tracked as a follow-up.

    Backward compatibility:

    • 'structuredOutput' middleware phase still fires for fallback-path adapters. It does NOT fire for adapters that handle the combination natively — middleware sees the run through 'beforeModel' / 'modelStream' as usual.
    • onStructuredOutputConfig keeps its existing surface but only fires on the fallback path.
    • No call-site changes required.

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0

@tanstack/ai-gemini@0.11.0

Minor Changes

  • Route chat({ outputSchema, tools }) through the provider's native single-pass call where supported (modern OpenAI Chat Completions + Responses, Claude 4.5+, Gemini 3.x, Grok 4.x family). Closes Route structured-output through native combined-mode where supported (skip finalization round-trip) #605. (#609)

    Historically, chat({ outputSchema, tools }) ran the agent loop with tools and then issued a separate finalization call against the structured-output adapter for the typed answer — because most providers couldn't combine tools with a schema-constrained response in one call. That has changed for most modern providers, making the second round-trip pure overhead.

    New per-adapter capability: TextAdapter.supportsCombinedToolsAndSchema?(modelOptions?). Adapters that opt in receive a JSON Schema on TextOptions.outputSchema in chatStream and wire it into the upstream request alongside tools. The engine harvests the final-turn JSON from the agent loop's accumulated text — no separate finalization call, no 'structuredOutput' middleware phase.

    Per-adapter status:

    • OpenAI (Chat Completions + Responses): opted in for all models. response_format: json_schema / text.format: json_schema attached when outputSchema is set.
    • Anthropic: opted in for Claude 4.5+ (Opus / Sonnet / Haiku 4.5, 4.6, 4.7). Wires output_config.format on the beta Messages request. Pre-4.5 Claude models keep the forced-tool finalization workaround. Gated by exported ANTHROPIC_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Gemini: opted in for Gemini 3.x (3-pro, 3-flash, 3.1-pro-preview, 3.1-flash-lite). Wires responseSchema + responseMimeType: 'application/json' into the regular generateContentStream call. Gemini 2.x keeps the legacy path. Gated by exported GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Grok (xAI): opted in for the Grok 4 family (grok-4, grok-4-1-fast-*, grok-4-fast-*, grok-4-20*, grok-4-3, grok-code-fast-1). Inherits the OpenAI Chat Completions wiring from openai-base; the override gates the capability claim by model. Grok 2 / 3 keep the legacy path. Gated by exported GROK_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Groq: explicitly opts out — the Groq API rejects response_format + tools + stream with HTTP 400 ("Streaming and tool use are not currently supported with Structured Outputs").
    • OpenRouter, Ollama: unchanged; still take the legacy finalization path. OpenRouter's per-request capability lookup (depends on resolved upstream model) is tracked as a follow-up.

    Backward compatibility:

    • 'structuredOutput' middleware phase still fires for fallback-path adapters. It does NOT fire for adapters that handle the combination natively — middleware sees the run through 'beforeModel' / 'modelStream' as usual.
    • onStructuredOutputConfig keeps its existing surface but only fires on the fallback path.
    • No call-site changes required.

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0

@tanstack/ai-grok@0.9.0

Minor Changes

  • Route chat({ outputSchema, tools }) through the provider's native single-pass call where supported (modern OpenAI Chat Completions + Responses, Claude 4.5+, Gemini 3.x, Grok 4.x family). Closes Route structured-output through native combined-mode where supported (skip finalization round-trip) #605. (#609)

    Historically, chat({ outputSchema, tools }) ran the agent loop with tools and then issued a separate finalization call against the structured-output adapter for the typed answer — because most providers couldn't combine tools with a schema-constrained response in one call. That has changed for most modern providers, making the second round-trip pure overhead.

    New per-adapter capability: TextAdapter.supportsCombinedToolsAndSchema?(modelOptions?). Adapters that opt in receive a JSON Schema on TextOptions.outputSchema in chatStream and wire it into the upstream request alongside tools. The engine harvests the final-turn JSON from the agent loop's accumulated text — no separate finalization call, no 'structuredOutput' middleware phase.

    Per-adapter status:

    • OpenAI (Chat Completions + Responses): opted in for all models. response_format: json_schema / text.format: json_schema attached when outputSchema is set.
    • Anthropic: opted in for Claude 4.5+ (Opus / Sonnet / Haiku 4.5, 4.6, 4.7). Wires output_config.format on the beta Messages request. Pre-4.5 Claude models keep the forced-tool finalization workaround. Gated by exported ANTHROPIC_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Gemini: opted in for Gemini 3.x (3-pro, 3-flash, 3.1-pro-preview, 3.1-flash-lite). Wires responseSchema + responseMimeType: 'application/json' into the regular generateContentStream call. Gemini 2.x keeps the legacy path. Gated by exported GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Grok (xAI): opted in for the Grok 4 family (grok-4, grok-4-1-fast-*, grok-4-fast-*, grok-4-20*, grok-4-3, grok-code-fast-1). Inherits the OpenAI Chat Completions wiring from openai-base; the override gates the capability claim by model. Grok 2 / 3 keep the legacy path. Gated by exported GROK_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Groq: explicitly opts out — the Groq API rejects response_format + tools + stream with HTTP 400 ("Streaming and tool use are not currently supported with Structured Outputs").
    • OpenRouter, Ollama: unchanged; still take the legacy finalization path. OpenRouter's per-request capability lookup (depends on resolved upstream model) is tracked as a follow-up.

    Backward compatibility:

    • 'structuredOutput' middleware phase still fires for fallback-path adapters. It does NOT fire for adapters that handle the combination natively — middleware sees the run through 'beforeModel' / 'modelStream' as usual.
    • onStructuredOutputConfig keeps its existing surface but only fires on the fallback path.
    • No call-site changes required.

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0
    • @tanstack/openai-base@0.4.0

@tanstack/openai-base@0.4.0

Minor Changes

  • Route chat({ outputSchema, tools }) through the provider's native single-pass call where supported (modern OpenAI Chat Completions + Responses, Claude 4.5+, Gemini 3.x, Grok 4.x family). Closes Route structured-output through native combined-mode where supported (skip finalization round-trip) #605. (#609)

    Historically, chat({ outputSchema, tools }) ran the agent loop with tools and then issued a separate finalization call against the structured-output adapter for the typed answer — because most providers couldn't combine tools with a schema-constrained response in one call. That has changed for most modern providers, making the second round-trip pure overhead.

    New per-adapter capability: TextAdapter.supportsCombinedToolsAndSchema?(modelOptions?). Adapters that opt in receive a JSON Schema on TextOptions.outputSchema in chatStream and wire it into the upstream request alongside tools. The engine harvests the final-turn JSON from the agent loop's accumulated text — no separate finalization call, no 'structuredOutput' middleware phase.

    Per-adapter status:

    • OpenAI (Chat Completions + Responses): opted in for all models. response_format: json_schema / text.format: json_schema attached when outputSchema is set.
    • Anthropic: opted in for Claude 4.5+ (Opus / Sonnet / Haiku 4.5, 4.6, 4.7). Wires output_config.format on the beta Messages request. Pre-4.5 Claude models keep the forced-tool finalization workaround. Gated by exported ANTHROPIC_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Gemini: opted in for Gemini 3.x (3-pro, 3-flash, 3.1-pro-preview, 3.1-flash-lite). Wires responseSchema + responseMimeType: 'application/json' into the regular generateContentStream call. Gemini 2.x keeps the legacy path. Gated by exported GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Grok (xAI): opted in for the Grok 4 family (grok-4, grok-4-1-fast-*, grok-4-fast-*, grok-4-20*, grok-4-3, grok-code-fast-1). Inherits the OpenAI Chat Completions wiring from openai-base; the override gates the capability claim by model. Grok 2 / 3 keep the legacy path. Gated by exported GROK_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Groq: explicitly opts out — the Groq API rejects response_format + tools + stream with HTTP 400 ("Streaming and tool use are not currently supported with Structured Outputs").
    • OpenRouter, Ollama: unchanged; still take the legacy finalization path. OpenRouter's per-request capability lookup (depends on resolved upstream model) is tracked as a follow-up.

    Backward compatibility:

    • 'structuredOutput' middleware phase still fires for fallback-path adapters. It does NOT fire for adapters that handle the combination natively — middleware sees the run through 'beforeModel' / 'modelStream' as usual.
    • onStructuredOutputConfig keeps its existing surface but only fires on the fallback path.
    • No call-site changes required.

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0

@tanstack/ai-client@0.11.8

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0
    • @tanstack/ai-event-client@0.3.11

@tanstack/ai-code-mode@0.1.21

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0

@tanstack/ai-code-mode-skills@0.1.21

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0
    • @tanstack/ai-code-mode@0.1.21

@tanstack/ai-devtools-core@0.3.38

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0
    • @tanstack/ai-event-client@0.3.11

@tanstack/ai-elevenlabs@0.2.11

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0
    • @tanstack/ai-client@0.11.8

@tanstack/ai-event-client@0.3.11

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0

@tanstack/ai-fal@0.7.14

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0

@tanstack/ai-groq@0.2.7

Patch Changes

  • Route chat({ outputSchema, tools }) through the provider's native single-pass call where supported (modern OpenAI Chat Completions + Responses, Claude 4.5+, Gemini 3.x, Grok 4.x family). Closes Route structured-output through native combined-mode where supported (skip finalization round-trip) #605. (#609)

    Historically, chat({ outputSchema, tools }) ran the agent loop with tools and then issued a separate finalization call against the structured-output adapter for the typed answer — because most providers couldn't combine tools with a schema-constrained response in one call. That has changed for most modern providers, making the second round-trip pure overhead.

    New per-adapter capability: TextAdapter.supportsCombinedToolsAndSchema?(modelOptions?). Adapters that opt in receive a JSON Schema on TextOptions.outputSchema in chatStream and wire it into the upstream request alongside tools. The engine harvests the final-turn JSON from the agent loop's accumulated text — no separate finalization call, no 'structuredOutput' middleware phase.

    Per-adapter status:

    • OpenAI (Chat Completions + Responses): opted in for all models. response_format: json_schema / text.format: json_schema attached when outputSchema is set.
    • Anthropic: opted in for Claude 4.5+ (Opus / Sonnet / Haiku 4.5, 4.6, 4.7). Wires output_config.format on the beta Messages request. Pre-4.5 Claude models keep the forced-tool finalization workaround. Gated by exported ANTHROPIC_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Gemini: opted in for Gemini 3.x (3-pro, 3-flash, 3.1-pro-preview, 3.1-flash-lite). Wires responseSchema + responseMimeType: 'application/json' into the regular generateContentStream call. Gemini 2.x keeps the legacy path. Gated by exported GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Grok (xAI): opted in for the Grok 4 family (grok-4, grok-4-1-fast-*, grok-4-fast-*, grok-4-20*, grok-4-3, grok-code-fast-1). Inherits the OpenAI Chat Completions wiring from openai-base; the override gates the capability claim by model. Grok 2 / 3 keep the legacy path. Gated by exported GROK_COMBINED_TOOLS_AND_SCHEMA_MODELS.
    • Groq: explicitly opts out — the Groq API rejects response_format + tools + stream with HTTP 400 ("Streaming and tool use are not currently supported with Structured Outputs").
    • OpenRouter, Ollama: unchanged; still take the legacy finalization path. OpenRouter's per-request capability lookup (depends on resolved upstream model) is tracked as a follow-up.

    Backward compatibility:

    • 'structuredOutput' middleware phase still fires for fallback-path adapters. It does NOT fire for adapters that handle the combination natively — middleware sees the run through 'beforeModel' / 'modelStream' as usual.
    • onStructuredOutputConfig keeps its existing surface but only fires on the fallback path.
    • No call-site changes required.
  • Updated dependencies [02f7d04]:

    • @tanstack/ai@0.22.0
    • @tanstack/openai-base@0.4.0

@tanstack/ai-isolate-cloudflare@0.2.12

Patch Changes

  • Updated dependencies []:
    • @tanstack/ai-code-mode@0.1.21

@tanstack/ai-isolate-node@0.1.21

Patch Changes

  • Updated dependencies []:
    • @tanstack/ai-code-mode@0.1.21

@tanstack/ai-isolate-quickjs@0.1.21

Patch Changes

  • Updated dependencies []:
    • @tanstack/ai-code-mode@0.1.21

@tanstack/ai-ollama@0.6.22

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0

@tanstack/ai-openai@0.10.1

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0
    • @tanstack/openai-base@0.4.0
    • @tanstack/ai-client@0.11.8

@tanstack/ai-openrouter@0.9.8

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0

@tanstack/ai-preact@0.6.33

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0
    • @tanstack/ai-client@0.11.8

@tanstack/ai-react@0.11.8

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0
    • @tanstack/ai-client@0.11.8

@tanstack/ai-solid@0.10.8

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0
    • @tanstack/ai-client@0.11.8

@tanstack/ai-svelte@0.10.8

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0
    • @tanstack/ai-client@0.11.8

@tanstack/ai-vue@0.10.9

Patch Changes

  • Updated dependencies [02f7d04]:
    • @tanstack/ai@0.22.0
    • @tanstack/ai-client@0.11.8

@tanstack/ai-vue-ui@0.2.4

Patch Changes

  • Updated dependencies []:
    • @tanstack/ai-vue@0.10.9

@tanstack/preact-ai-devtools@0.1.42

Patch Changes

  • Updated dependencies []:
    • @tanstack/ai-devtools-core@0.3.38

@tanstack/react-ai-devtools@0.2.42

Patch Changes

  • Updated dependencies []:
    • @tanstack/ai-devtools-core@0.3.38

@tanstack/solid-ai-devtools@0.2.42

Patch Changes

  • Updated dependencies []:
    • @tanstack/ai-devtools-core@0.3.38

@AlemTuzlak AlemTuzlak merged commit bdca880 into main May 25, 2026
2 checks passed
@AlemTuzlak AlemTuzlak deleted the changeset-release/main branch May 25, 2026 15:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Route structured-output through native combined-mode where supported (skip finalization round-trip)

1 participant