Skip to content

chore(deps-dev): bump @tanstack/ai and @tanstack/ai-ollama - #155

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/multi-10e24548dd
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/multi-10e24548dd

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 12, 2026

Copy link
Copy Markdown
Contributor

Bumps @tanstack/ai and @tanstack/ai-ollama. These dependencies needed to be updated together.
Updates @tanstack/ai from 0.65.1 to 0.68.0

Release notes

Sourced from @​tanstack/ai's releases.

@​tanstack/ai@​0.67.0

Minor Changes

  • #1685 7dbfaf6 - Text adapters can now give inputModalities at run time: the input kinds that the model reads, for example ['text', 'image', 'document']. undefined means that the adapter does not know.

    • TextAdapter has the new optional inputModalities property. A BaseTextAdapter subclass sets it from its model metadata.
    • The text adapters of OpenAI, Anthropic, Gemini, Mistral, Groq, BytePlus, Grok, OpenRouter, and LLM Gateway set it. A known model gives its input kinds. An unknown model gives undefined.
  • #1683 88fd67c - A middleware onAfterToolCall hook can now replace the result of a tool call. Return { type: 'replaceResult', result } from the hook.

    • The model and the stream (TOOL_CALL_RESULT) get the new result.
    • Middleware run in order. Each hook gets the result of the hook before it as info.result.
    • An error result stays an error.
    • A hook that returns undefined, or any value that is not a replaceResult decision, keeps the result.
    • onAfterToolCall after an onBeforeToolCall skip now gets the parsed skip result, the same value that goes to the model.
    • The new AfterToolCallDecision type is exported from @tanstack/ai.
  • #1682 3aa2e3d - Add fakeText() at the new @tanstack/ai/testing subpath. It is a text adapter that answers from a script. Use it to test chat(), tools, and middleware with no network and no API key.

    • Queue answers with setResponses and appendResponses. An answer is { text?, thinking?, toolCalls?, finishReason?, error? }, or a function that gets { request, state }. An empty queue fails with "No more fake responses queued".
    • Token usage is an estimate: ceil(characters / 4). With cache: true, the part of a request that matches the previous request of the same thread counts as cached tokens.
    • Options: model, contextWindow, and tokensPerSecond for stream pacing. The stream stops when the request aborts.
    • RUN_STARTED carries parentRunId when the call has one.
    • The default tool call id is fake-call-<fake>-<call>-<index>. It is unique across fakeText() instances.
  • #1684 c5ae415 - Add keyedAdapter(provider, create) and isKeyedAdapter(value). Import them from @tanstack/ai or @tanstack/ai/byok.

    • keyedAdapter wraps an adapter factory that needs a provider key. provider is a BYOK descriptor (for example openaiByok) or a provider id. It throws when the provider id is not valid.
    • A host finds the key, for example with getByokKey(request, keyed.provider), and calls keyed.create(key) just before the call. The key is not in your code.
    • isKeyedAdapter tells a keyed adapter apart from a plain adapter.
    • It works for every adapter kind: text, image, speech, audio, video, and the rest.

    For several providers, use keyedAdapters({ openai: (key) => ..., anthropic: keyedAdapter(anthropicByok, ...) }). The map key is the provider id, so a key goes only to its own provider. An entry that is a keyed adapter for another provider throws at startup. In a route, keyedAdapterFromRequest(request, models) from @tanstack/ai/byok/server builds the adapter of the provider that has a key. The user's x-byok-<id> header wins, then the env names of descriptor entries, in map order. It gives null when no provider has a key.

  • #1678 13ba1b0 - A RUN_ERROR now tells you how long the provider asks you to wait before a retry.

    • @tanstack/ai: RunErrorEvent has a new retryAfterMs field, in milliseconds. chat() moves it to metadata.tanstack.retryAfterMs. The new toRetryAfterMs(error) helper on @tanstack/ai/adapter-internals reads the retry-after-ms header first, then the retry-after header in seconds or as an HTTP date.
    • @tanstack/openai-base and @tanstack/ai-anthropic: the text adapters set retryAfterMs on a RUN_ERROR when the error response has one of these headers. This includes every adapter that uses @tanstack/openai-base.
  • #1680 377262c - Add wrapFetch to chat(), to the middleware onConfig config, and to TextOptions. A wrapper gets the next fetch and gives back a new fetch. Use it to change the URL, the headers, the request, or the response of a model call. The new FetchWrapper type names the wrapper.

    The engine chains the chat() wrapper and the middleware wrappers into one function. A middleware wrapper runs inside the chat() wrapper and applies to one model call only.

    These text adapters send their requests through the wrapper: every adapter on @tanstack/openai-base (OpenAI, the OpenAI-compatible adapters, Grok, Groq, BytePlus, LLM Gateway, Lovable, Vercel AI Gateway, Cloudflare, and the Bedrock Chat Completions and Responses APIs), Anthropic, Mistral, Ollama, and OpenRouter. The wrapper wraps the fetch of the adapter config, not the global fetch. An Anthropic or Ollama adapter with an injected client ignores wrapFetch. In Cloudflare binding mode, the wrapper runs, but the binding does not send the URL or the headers. Without wrapFetch, the requests do not change.

@​tanstack/ai-isolate-e2b@​0.1.1

Patch Changes

  • Updated dependencies [80ae825]:
    • @​tanstack/ai-code-mode@​0.5.0

@​tanstack/ai@​0.66.0

Minor Changes

... (truncated)

Changelog

Sourced from @​tanstack/ai's changelog.

0.68.0

Minor Changes

  • #1695 723b4a4 - fakeText() takes an input option, for example fakeText({ input: ['text', 'image'] }). It sets the fake's inputModalities, so you can test code that checks what a model accepts. It also sets the adapter's input modality type.

Patch Changes

  • #1605 d84a49e - Fix a server tool call that the next turn sent twice when you use withPersistence. When a model call starts with a tool call and no text (often after thinking), StreamProcessor gave that message the id of the next model call. The next turn then replaced the stored answer with a copy that also held the tool call, so the provider got the same tool_use twice. The client now keeps the id of the message the tool call belongs to.

0.67.0

Minor Changes

  • #1685 7dbfaf6 - Text adapters can now give inputModalities at run time: the input kinds that the model reads, for example ['text', 'image', 'document']. undefined means that the adapter does not know.

    • TextAdapter has the new optional inputModalities property. A BaseTextAdapter subclass sets it from its model metadata.
    • The text adapters of OpenAI, Anthropic, Gemini, Mistral, Groq, BytePlus, Grok, OpenRouter, and LLM Gateway set it. A known model gives its input kinds. An unknown model gives undefined.
  • #1683 88fd67c - A middleware onAfterToolCall hook can now replace the result of a tool call. Return { type: 'replaceResult', result } from the hook.

    • The model and the stream (TOOL_CALL_RESULT) get the new result.
    • Middleware run in order. Each hook gets the result of the hook before it as info.result.
    • An error result stays an error.
    • A hook that returns undefined, or any value that is not a replaceResult decision, keeps the result.
    • onAfterToolCall after an onBeforeToolCall skip now gets the parsed skip result, the same value that goes to the model.
    • The new AfterToolCallDecision type is exported from @tanstack/ai.
  • #1682 3aa2e3d - Add fakeText() at the new @tanstack/ai/testing subpath. It is a text adapter that answers from a script. Use it to test chat(), tools, and middleware with no network and no API key.

    • Queue answers with setResponses and appendResponses. An answer is { text?, thinking?, toolCalls?, finishReason?, error? }, or a function that gets { request, state }. An empty queue fails with "No more fake responses queued".
    • Token usage is an estimate: ceil(characters / 4). With cache: true, the part of a request that matches the previous request of the same thread counts as cached tokens.
    • Options: model, contextWindow, and tokensPerSecond for stream pacing. The stream stops when the request aborts.
    • RUN_STARTED carries parentRunId when the call has one.
    • The default tool call id is fake-call-<fake>-<call>-<index>. It is unique across fakeText() instances.
  • #1684 c5ae415 - Add keyedAdapter(provider, create) and isKeyedAdapter(value). Import them from @tanstack/ai or @tanstack/ai/byok.

    • keyedAdapter wraps an adapter factory that needs a provider key. provider is a BYOK descriptor (for example openaiByok) or a provider id. It throws when the provider id is not valid.
    • A host finds the key, for example with getByokKey(request, keyed.provider), and calls keyed.create(key) just before the call. The key is not in your code.
    • isKeyedAdapter tells a keyed adapter apart from a plain adapter.
    • It works for every adapter kind: text, image, speech, audio, video, and the rest.

    For several providers, use keyedAdapters({ openai: (key) => ..., anthropic: keyedAdapter(anthropicByok, ...) }). The map key is the provider id, so a key goes only to its own provider. An entry that is a keyed adapter for another provider throws at startup. In a route, keyedAdapterFromRequest(request, models) from @tanstack/ai/byok/server builds the adapter of the provider that has a key. The user's x-byok-<id> header wins, then the env names of descriptor entries, in map order. It gives null when no provider has a key.

  • #1678 13ba1b0 - A RUN_ERROR now tells you how long the provider asks you to wait before a retry.

    • @tanstack/ai: RunErrorEvent has a new retryAfterMs field, in milliseconds. chat() moves it to metadata.tanstack.retryAfterMs. The new toRetryAfterMs(error) helper on @tanstack/ai/adapter-internals reads the retry-after-ms header first, then the retry-after header in seconds or as an HTTP date.
    • @tanstack/openai-base and @tanstack/ai-anthropic: the text adapters set retryAfterMs on a RUN_ERROR when the error response has one of these headers. This includes every adapter that uses @tanstack/openai-base.
  • #1680 377262c - Add wrapFetch to chat(), to the middleware onConfig config, and to TextOptions. A wrapper gets the next fetch and gives back a new fetch. Use it to change the URL, the headers, the request, or the response of a model call. The new FetchWrapper type names the wrapper.

    The engine chains the chat() wrapper and the middleware wrappers into one function. A middleware wrapper runs inside the chat() wrapper and applies to one model call only.

    These text adapters send their requests through the wrapper: every adapter on @tanstack/openai-base (OpenAI, the OpenAI-compatible adapters, Grok, Groq, BytePlus, LLM Gateway, Lovable, Vercel AI Gateway, Cloudflare, and the Bedrock Chat Completions and Responses APIs), Anthropic, Mistral, Ollama, and OpenRouter. The wrapper wraps the fetch of the adapter config, not the global fetch. An Anthropic or Ollama adapter with an injected client ignores wrapFetch. In Cloudflare binding mode, the wrapper runs, but the binding does not send the URL or the headers. Without wrapFetch, the requests do not change.

... (truncated)

Commits

Updates @tanstack/ai-ollama from 0.11.13 to 0.11.16

Release notes

Sourced from @​tanstack/ai-ollama's releases.

@​tanstack/ai-ollama@​0.11.15

Patch Changes

  • #1680 377262c - Add wrapFetch to chat(), to the middleware onConfig config, and to TextOptions. A wrapper gets the next fetch and gives back a new fetch. Use it to change the URL, the headers, the request, or the response of a model call. The new FetchWrapper type names the wrapper.

    The engine chains the chat() wrapper and the middleware wrappers into one function. A middleware wrapper runs inside the chat() wrapper and applies to one model call only.

    These text adapters send their requests through the wrapper: every adapter on @tanstack/openai-base (OpenAI, the OpenAI-compatible adapters, Grok, Groq, BytePlus, LLM Gateway, Lovable, Vercel AI Gateway, Cloudflare, and the Bedrock Chat Completions and Responses APIs), Anthropic, Mistral, Ollama, and OpenRouter. The wrapper wraps the fetch of the adapter config, not the global fetch. An Anthropic or Ollama adapter with an injected client ignores wrapFetch. In Cloudflare binding mode, the wrapper runs, but the binding does not send the URL or the headers. Without wrapFetch, the requests do not change.

  • Updated dependencies [7dbfaf6, 88fd67c, 3aa2e3d, c5ae415, 13ba1b0, 377262c]:

    • @​tanstack/ai@​0.67.0

@​tanstack/ai-ollama@​0.11.14

Patch Changes

  • #1548 68aeada - Structured output now reports a truncation error when the response stops at the output token limit. Before, you got a JSON parse error, or the partial result came back as valid data. openai-base and ai-openrouter already do this (#1426).

  • Updated dependencies [f687c54, fb55bcb, 630ec86]:

    • @​tanstack/ai@​0.66.0
Changelog

Sourced from @​tanstack/ai-ollama's changelog.

0.11.16

Patch Changes

0.11.15

Patch Changes

  • #1680 377262c - Add wrapFetch to chat(), to the middleware onConfig config, and to TextOptions. A wrapper gets the next fetch and gives back a new fetch. Use it to change the URL, the headers, the request, or the response of a model call. The new FetchWrapper type names the wrapper.

    The engine chains the chat() wrapper and the middleware wrappers into one function. A middleware wrapper runs inside the chat() wrapper and applies to one model call only.

    These text adapters send their requests through the wrapper: every adapter on @tanstack/openai-base (OpenAI, the OpenAI-compatible adapters, Grok, Groq, BytePlus, LLM Gateway, Lovable, Vercel AI Gateway, Cloudflare, and the Bedrock Chat Completions and Responses APIs), Anthropic, Mistral, Ollama, and OpenRouter. The wrapper wraps the fetch of the adapter config, not the global fetch. An Anthropic or Ollama adapter with an injected client ignores wrapFetch. In Cloudflare binding mode, the wrapper runs, but the binding does not send the URL or the headers. Without wrapFetch, the requests do not change.

  • Updated dependencies [7dbfaf6, 88fd67c, 3aa2e3d, c5ae415, 13ba1b0, 377262c]:

    • @​tanstack/ai@​0.67.0

0.11.14

Patch Changes

  • #1548 68aeada - Structured output now reports a truncation error when the response stops at the output token limit. Before, you got a JSON parse error, or the partial result came back as valid data. openai-base and ai-openrouter already do this (#1426).

  • Updated dependencies [f687c54, fb55bcb, 630ec86]:

    • @​tanstack/ai@​0.66.0
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [@tanstack/ai](https://github.com/TanStack/ai/tree/HEAD/packages/ai) and [@tanstack/ai-ollama](https://github.com/TanStack/ai/tree/HEAD/packages/ai-ollama). These dependencies needed to be updated together.

Updates `@tanstack/ai` from 0.65.1 to 0.68.0
- [Release notes](https://github.com/TanStack/ai/releases)
- [Changelog](https://github.com/TanStack/ai/blob/main/packages/ai/CHANGELOG.md)
- [Commits](https://github.com/TanStack/ai/commits/HEAD/packages/ai)

Updates `@tanstack/ai-ollama` from 0.11.13 to 0.11.16
- [Release notes](https://github.com/TanStack/ai/releases)
- [Changelog](https://github.com/TanStack/ai/blob/main/packages/ai-ollama/CHANGELOG.md)
- [Commits](https://github.com/TanStack/ai/commits/HEAD/packages/ai-ollama)

---
updated-dependencies:
- dependency-name: "@tanstack/ai"
  dependency-version: 0.68.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
- dependency-name: "@tanstack/ai-ollama"
  dependency-version: 0.11.16
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Oct 12, 2026
@dependabot @github

dependabot Bot commented on behalf of github Oct 19, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #158.

@dependabot dependabot Bot closed this Oct 19, 2026
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/multi-10e24548dd branch October 19, 2026 06:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants