diff --git a/CLAUDE.md b/CLAUDE.md index 496cf03..b9cc284 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1709,6 +1709,7 @@ find node_modules -path "*/zod/package.json" | while read f; do echo "$f $(node need_tools/replay loop), Redis `SandboxInstanceStore`/`SandboxCheckpointStore` (+ Upstash Blob `BlobStore`), QStash-backed background runs writing to `upstashStream`, and a QStash schedule for `reapDetachedRuns`. +- **ai 7.0.169 + @tanstack/ai 1.4.0 + @tanstack/ai-openai 1.1.1 (2026-11-11):** devDependency/example pins only (no published-content change, no changeset); `@ai-sdk/*` ranges moved with `pnpm -r update "@ai-sdk/*"` (one `ai@7.0.169` in the lockfile) and `pnpm dedupe` dropped a stale second `@tanstack/ai@1.1.0` that `@tanstack/ai-client@1.1.0` (`^1.1.0`) kept in the lockfile. eve stays on 0.91.0: no stable release since, npm `latest` is `1.0.0-rc.9` (not adopted); published `@upstash/agentkit-eve-extension@0.19.0` + `@upstash/agentkit-eve@0.19.0` install on it, `eve build` clean and the mocked `eve eval` passes 4/4. A `skipLibCheck: false` consumer of `ai` errors inside `@ai-sdk/provider` (`TS7016 … module 'json-schema'`, no `@types/json-schema` dependency) on 7.0.163 and 7.0.169 alike: upstream, fixed by `npm i -D @types/json-schema`. The free throwaway Redis caps search indexes at 1: run index-using test files one at a time with `FLUSHDB` in between (`FLUSHDB` drops the indexes too; `SEARCH.DROPINDEX` is not available). - **ai 7.0.163 (2026-11-05):** pins bumped from 7.0.159 (no code change); `examples/ai-sdk-demo`'s `@ai-sdk/react` raised to `^4.0.167` because 4.0.160 depends on an *exact* `ai@7.0.156`, which split the `UIMessage` type from the demo's `ai@7.0.163` and failed `next build` (`SteeringMessageUIPart`). Re-checked 2026-11-05: published `@upstash/agentkit-eve-extension@0.19.0` / `@upstash/agentkit-eve@0.19.0` build clean on `eve@1.0.0-rc.5` (the 0.91.0 build stays); TanStack AI 1.x (ai 1.1.0, ai-persistence 1.0.1, ai-memory 1.1.0) still not adopted (same `threadId`/`blobKey` test-file errors). - **TanStack AI 1.x applied (2026-11-05):** `@tanstack/ai` 1.1.0, `ai-persistence` 1.0.1, `ai-memory` 1.1.0 (devDeps, exact) and the tanstack-ai-demo's `ai-client` 1.1.0 / `ai-react` 1.0.2 / `ai-openai` 1.1.0. `src` needed no change; only tests did: `chat()` calls pass `threadId` (`middleware.test.ts`, `search-tools.test.ts`) and `ArtifactRecord` fixtures carry `blobKey` (`persistence.test.ts`). The peer floors (`>=0.65.0` / `>=0.8.0` / `>=0.2.8`) are untouched: the source is unchanged and still works on 0.x, and published `@upstash/agentkit-tanstack-ai@0.2.0` imports on 1.x, so no changeset. Upstream `@tanstack/ai@1.1.0`'s `spawn.d.ts` still has the broken `import('../../..')` (TS2307 with `skipLibCheck: false`). The 1.0 contracts `SessionIndexStore` and `CredentialStore` are implemented in the follow-up below. - **TanStack AI 1.0 contracts implemented (2026-11-05, `@upstash/agentkit-tanstack-ai` minor):** `stores.log` (`persistence/log-store.ts`, see below), `stores.sessions` (`SessionIndexStore`, `persistence/sessions.ts`) and `./byok` (`upstashCredentials`, `byok/credentials.ts`, `CredentialStore`). **Peer floors raised to `@tanstack/ai >=1.0.0` and `@tanstack/ai-persistence >=1.0.0`** (verified by packing 0.71.0/0.10.1: neither has `SessionIndexStore` / `@tanstack/ai/byok`; `ai-memory` floor untouched). Sessions: doc `{r,e}` per `(tenant, thread)` + one ZSET per tenant (score `updatedAt`, member `~` so the client never JSON-parses a numeric-looking id); `list` walks the ZSET in batches of whole score groups and re-reads a tie group in full so the `threadId` UTF-8 order is exact, filtering after loading; `ZRANGE BYSCORE REV` takes `(max, min)` (cast through `number`, the SDK types forbid `(`-exclusive strings). Revisions come from an `INCR` counter, never reused (the credential contract requires that; sessions may reuse). Passes the 19 `sessions` cases of `runPersistenceConformance` (they run only when the store is present). Credentials: one hash per owner (`%none` segment = undefined tenant/user, distinct from `""`), value `{r,t,x?,c | iv,ct}` with type/expiry in the clear so `list` never decrypts; optional AES-256-GCM `encryptionKey`, AAD = owner key + id (a copied ciphertext does not decrypt). `storedProviderKeys` lives in `@tanstack/ai/byok/server`, not `/byok`. **`stores.log` (`LogStore`):** per log a meta hash (head, first, epoch, owner, harness, exp, rel, wake, aff, del, laneH, oseq), a records ZSET (score seq, member `:`), snapshot string (`seq` must stay the first JSON key: `truncate` reads it with a Lua pattern), offers hash + info hash + pending ZSET, and a tick counter; shared `logDue` ZSET (when each log needs an owner) and `logHosts` hash. Every op is one Lua script over the same nine declared keys; the store clock is Redis `TIME` inside the script; numbers written from Lua go through `%.0f` (plain `tostring` prints epoch ms in scientific notation); ids returned from Lua are `~`-prefixed because the client JSON-parses numeric-looking strings (`"007"` -> 7). `subscribe` = immediate local callback + a `reported` and an `observed` tick per log so each counter value is reported once (a baseline read that already contains a local write must not mark it reported: that swallowed the notification), plus a 250 ms tick poll for other machines (non-overlapping; the first successful read is the baseline, so a failed first read is retried instead of silencing the subscription). `changed()` skips a counter the poll already reported (deterministic repro in tests: delay the append reply with a Proxy), which fixed a double notification (a poll can see the tick before the write reply arrives; it failed the `calls a listener after each append` conformance case in CI). The baseline read is still async, so a write by another machine landing in the first round trip after `subscribe` can go unreported (listeners are wake-ups, hosts reconcile with `read`). `append` rejects more than 10,000 records (a 50,000-record batch outran the Lua time limit and left part of the writes). Known follow-ups: `listLogsWithoutOwner` re-checks entries skipped by `harnesses` / a live pin on every call; consumed offers, old hosts and `deleteLog` tombstones are never cleaned up; `read` / `listOfferedInputs` without a limit return everything. Conformance needs the `twin` option (a second store set on the same keyspace) for the 4 `log across instances` cases; all 56 log cases and 19 sessions cases pass. Not implemented: `ownership` TTL-based cleanup of finished logs (logs and their keys live until `deleteLog`). diff --git a/examples/ai-sdk-demo/package.json b/examples/ai-sdk-demo/package.json index f39d2b4..85d1e33 100644 --- a/examples/ai-sdk-demo/package.json +++ b/examples/ai-sdk-demo/package.json @@ -8,12 +8,12 @@ "start": "next start" }, "dependencies": { - "@ai-sdk/openai": "^4.0.71", - "@ai-sdk/react": "^4.0.167", + "@ai-sdk/openai": "^4.0.114", + "@ai-sdk/react": "^4.0.173", "@upstash/agentkit-ai-sdk": "workspace:*", "@upstash/agentkit-sdk": "workspace:*", "@upstash/redis": "^1.38.4", - "ai": "7.0.163", + "ai": "7.0.169", "dotenv": "^16.4.5", "next": "16.2.9", "react": "19.2.6", diff --git a/examples/eve-demo/package.json b/examples/eve-demo/package.json index fa26bdf..156cbb6 100644 --- a/examples/eve-demo/package.json +++ b/examples/eve-demo/package.json @@ -14,7 +14,7 @@ "typecheck": "tsgo --noEmit -p tsconfig.json" }, "dependencies": { - "@ai-sdk/openai": "^4.0.71", + "@ai-sdk/openai": "^4.0.114", "@radix-ui/react-use-controllable-state": "1.2.2", "@shikijs/core": "4.1.0", "@shikijs/engine-javascript": "4.1.0", @@ -28,7 +28,7 @@ "@upstash/box": "^0.7.5", "@upstash/redis": "^1.38.4", "@vercel/connect": "2.5.6", - "ai": "7.0.163", + "ai": "7.0.169", "class-variance-authority": "0.7.1", "clsx": "2.1.1", "cmdk": "1.1.1", diff --git a/examples/eve-extension-demo/package.json b/examples/eve-extension-demo/package.json index 4d19ad3..2c558d7 100644 --- a/examples/eve-extension-demo/package.json +++ b/examples/eve-extension-demo/package.json @@ -14,11 +14,11 @@ "typecheck": "tsc" }, "dependencies": { - "@ai-sdk/openai": "^4.0.71", + "@ai-sdk/openai": "^4.0.114", "@upstash/agentkit-eve-extension": "workspace:*", "@upstash/redis": "^1.38.4", "@vercel/connect": "2.5.6", - "ai": "7.0.163", + "ai": "7.0.169", "eve": "^0.91.0", "zod": "4.4.3" }, diff --git a/examples/tanstack-ai-demo/package.json b/examples/tanstack-ai-demo/package.json index 98bd177..8c89578 100644 --- a/examples/tanstack-ai-demo/package.json +++ b/examples/tanstack-ai-demo/package.json @@ -10,10 +10,10 @@ "e2e": "vitest run --config e2e/vitest.config.ts" }, "dependencies": { - "@tanstack/ai": "1.1.0", + "@tanstack/ai": "1.4.0", "@tanstack/ai-client": "1.1.0", "@tanstack/ai-memory": "1.1.0", - "@tanstack/ai-openai": "1.1.0", + "@tanstack/ai-openai": "1.1.1", "@tanstack/ai-persistence": "1.0.1", "@tanstack/ai-react": "1.0.2", "@upstash/agentkit-tanstack-ai": "workspace:*", diff --git a/packages/ai-sdk/package.json b/packages/ai-sdk/package.json index 3340b26..4d6a354 100644 --- a/packages/ai-sdk/package.json +++ b/packages/ai-sdk/package.json @@ -50,10 +50,10 @@ "zod": "^3.23.8 || ^4" }, "devDependencies": { - "@ai-sdk/openai": "^4.0.71", - "@ai-sdk/provider": "^4.0.17", + "@ai-sdk/openai": "^4.0.114", + "@ai-sdk/provider": "^4.0.37", "@upstash/redis": "^1.38.4", - "ai": "7.0.163", + "ai": "7.0.169", "dotenv": "^16.4.5" }, "peerDependencies": { diff --git a/packages/eve/package.json b/packages/eve/package.json index de895ee..aa1cb1c 100644 --- a/packages/eve/package.json +++ b/packages/eve/package.json @@ -60,7 +60,7 @@ "devDependencies": { "@upstash/box": "^0.7.5", "@upstash/redis": "^1.38.4", - "ai": "7.0.163", + "ai": "7.0.169", "dotenv": "^16.4.5", "eve": "^0.91.0" }, diff --git a/packages/tanstack-ai/package.json b/packages/tanstack-ai/package.json index 72e1718..362859d 100644 --- a/packages/tanstack-ai/package.json +++ b/packages/tanstack-ai/package.json @@ -62,7 +62,7 @@ "zod": "^3.23.8 || ^4" }, "devDependencies": { - "@tanstack/ai": "1.1.0", + "@tanstack/ai": "1.4.0", "@tanstack/ai-memory": "1.1.0", "@tanstack/ai-persistence": "1.0.1", "dotenv": "^16.4.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e719ce9..761d111 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,11 +45,11 @@ importers: examples/ai-sdk-demo: dependencies: '@ai-sdk/openai': - specifier: ^4.0.71 - version: 4.0.71(zod@4.4.3) + specifier: ^4.0.114 + version: 4.0.114(zod@4.4.3) '@ai-sdk/react': - specifier: ^4.0.167 - version: 4.0.167(react@19.2.6)(zod@4.4.3) + specifier: ^4.0.173 + version: 4.0.173(react@19.2.6)(zod@4.4.3) '@upstash/agentkit-ai-sdk': specifier: workspace:* version: link:../../packages/ai-sdk @@ -60,8 +60,8 @@ importers: specifier: ^1.38.4 version: 1.38.4 ai: - specifier: 7.0.163 - version: 7.0.163(zod@4.4.3) + specifier: 7.0.169 + version: 7.0.169(zod@4.4.3) dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -94,8 +94,8 @@ importers: examples/eve-demo: dependencies: '@ai-sdk/openai': - specifier: ^4.0.71 - version: 4.0.71(zod@4.4.3) + specifier: ^4.0.114 + version: 4.0.114(zod@4.4.3) '@radix-ui/react-use-controllable-state': specifier: 1.2.2 version: 1.2.2(@types/react@19.2.15)(react@19.2.6) @@ -134,10 +134,10 @@ importers: version: 1.38.4 '@vercel/connect': specifier: 2.5.6 - version: 2.5.6(@ai-sdk/mcp@2.0.91(zod@4.4.3))(ai@7.0.163(zod@4.4.3))(eve@0.91.0) + version: 2.5.6(@ai-sdk/mcp@2.0.96(zod@4.4.3))(ai@7.0.169(zod@4.4.3))(eve@0.91.0) ai: - specifier: 7.0.163 - version: 7.0.163(zod@4.4.3) + specifier: 7.0.169 + version: 7.0.169(zod@4.4.3) class-variance-authority: specifier: 0.7.1 version: 0.7.1 @@ -149,7 +149,7 @@ importers: version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) eve: specifier: ^0.91.0 - version: 0.91.0(@opentelemetry/api@1.9.1)(@vercel/connect@2.5.6)(ai@7.0.163(zod@4.4.3))(next@16.2.9(@opentelemetry/api@1.9.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) + version: 0.91.0(@opentelemetry/api@1.9.1)(@vercel/connect@2.5.6)(ai@7.0.169(zod@4.4.3))(next@16.2.9(@opentelemetry/api@1.9.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) lucide-react: specifier: 1.16.0 version: 1.16.0(react@19.2.6) @@ -206,8 +206,8 @@ importers: examples/eve-extension-demo: dependencies: '@ai-sdk/openai': - specifier: ^4.0.71 - version: 4.0.71(zod@4.4.3) + specifier: ^4.0.114 + version: 4.0.114(zod@4.4.3) '@upstash/agentkit-eve-extension': specifier: workspace:* version: link:../../packages/eve-extension @@ -216,13 +216,13 @@ importers: version: 1.38.4 '@vercel/connect': specifier: 2.5.6 - version: 2.5.6(@ai-sdk/mcp@2.0.91(zod@4.4.3))(ai@7.0.163(zod@4.4.3))(eve@0.91.0) + version: 2.5.6(@ai-sdk/mcp@2.0.96(zod@4.4.3))(ai@7.0.169(zod@4.4.3))(eve@0.91.0) ai: - specifier: 7.0.163 - version: 7.0.163(zod@4.4.3) + specifier: 7.0.169 + version: 7.0.169(zod@4.4.3) eve: specifier: ^0.91.0 - version: 0.91.0(@opentelemetry/api@1.9.1)(@vercel/connect@2.5.6)(ai@7.0.163(zod@4.4.3))(next@16.2.9(@opentelemetry/api@1.9.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) + version: 0.91.0(@opentelemetry/api@1.9.1)(@vercel/connect@2.5.6)(ai@7.0.169(zod@4.4.3))(next@16.2.9(@opentelemetry/api@1.9.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) zod: specifier: 4.4.3 version: 4.4.3 @@ -280,23 +280,23 @@ importers: examples/tanstack-ai-demo: dependencies: '@tanstack/ai': - specifier: 1.1.0 - version: 1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3) + specifier: 1.4.0 + version: 1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3) '@tanstack/ai-client': specifier: 1.1.0 version: 1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3) '@tanstack/ai-memory': specifier: 1.1.0 - version: 1.1.0(@tanstack/ai@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(vitest@2.1.9(@types/node@20.19.43)(lightningcss@1.32.0)) + version: 1.1.0(@tanstack/ai@1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(vitest@2.1.9(@types/node@20.19.43)(lightningcss@1.32.0)) '@tanstack/ai-openai': - specifier: 1.1.0 - version: 1.1.0(@tanstack/ai@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(undici@8.12.3)(ws@8.21.3)(zod@4.4.3) + specifier: 1.1.1 + version: 1.1.1(@tanstack/ai@1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(undici@8.12.3)(ws@8.21.3)(zod@4.4.3) '@tanstack/ai-persistence': specifier: 1.0.1 - version: 1.0.1(@tanstack/ai@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(vitest@2.1.9(@types/node@20.19.43)(lightningcss@1.32.0)) + version: 1.0.1(@tanstack/ai@1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(vitest@2.1.9(@types/node@20.19.43)(lightningcss@1.32.0)) '@tanstack/ai-react': specifier: 1.0.2 - version: 1.0.2(@opentelemetry/api@1.9.1)(@tanstack/ai@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3) + version: 1.0.2(@opentelemetry/api@1.9.1)(@tanstack/ai@1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3) '@upstash/agentkit-tanstack-ai': specifier: workspace:* version: link:../../packages/tanstack-ai @@ -348,14 +348,14 @@ importers: version: 4.4.3 devDependencies: '@ai-sdk/openai': - specifier: ^4.0.71 - version: 4.0.71(zod@4.4.3) + specifier: ^4.0.114 + version: 4.0.114(zod@4.4.3) '@ai-sdk/provider': - specifier: ^4.0.17 - version: 4.0.17 + specifier: ^4.0.37 + version: 4.0.37 ai: - specifier: 7.0.163 - version: 7.0.163(zod@4.4.3) + specifier: 7.0.169 + version: 7.0.169(zod@4.4.3) dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -379,14 +379,14 @@ importers: specifier: ^1.38.4 version: 1.38.4 ai: - specifier: 7.0.163 - version: 7.0.163(zod@4.4.3) + specifier: 7.0.169 + version: 7.0.169(zod@4.4.3) dotenv: specifier: ^16.4.5 version: 16.6.1 eve: specifier: ^0.91.0 - version: 0.91.0(@opentelemetry/api@1.9.1)(@vercel/connect@2.5.6)(ai@7.0.163(zod@4.4.3))(next@16.2.9(@opentelemetry/api@1.9.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) + version: 0.91.0(@opentelemetry/api@1.9.1)(@vercel/connect@2.5.6)(ai@7.0.169(zod@4.4.3))(next@16.2.9(@opentelemetry/api@1.9.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) packages/eve-extension: dependencies: @@ -405,7 +405,7 @@ importers: version: 24.13.2 eve: specifier: ^0.91.0 - version: 0.91.0(@opentelemetry/api@1.9.1)(@vercel/connect@2.5.6)(ai@7.0.163(zod@4.4.3))(next@16.2.9(@opentelemetry/api@1.9.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) + version: 0.91.0(@opentelemetry/api@1.9.1)(@vercel/connect@2.5.6)(ai@7.0.169(zod@4.4.3))(next@16.2.9(@opentelemetry/api@1.9.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) typescript: specifier: 7.0.2 version: 7.0.2 @@ -464,14 +464,14 @@ importers: version: 4.4.3 devDependencies: '@tanstack/ai': - specifier: 1.1.0 - version: 1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3) + specifier: 1.4.0 + version: 1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3) '@tanstack/ai-memory': specifier: 1.1.0 - version: 1.1.0(@tanstack/ai@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(vitest@2.1.9(@types/node@20.19.43)(lightningcss@1.32.0)) + version: 1.1.0(@tanstack/ai@1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(vitest@2.1.9(@types/node@20.19.43)(lightningcss@1.32.0)) '@tanstack/ai-persistence': specifier: 1.0.1 - version: 1.0.1(@tanstack/ai@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(vitest@2.1.9(@types/node@20.19.43)(lightningcss@1.32.0)) + version: 1.0.1(@tanstack/ai@1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(vitest@2.1.9(@types/node@20.19.43)(lightningcss@1.32.0)) '@upstash/blob': specifier: 0.0.7 version: 0.0.7(react@19.2.6) @@ -489,46 +489,36 @@ packages: zod: optional: true - '@ai-sdk/gateway@4.0.136': - resolution: {integrity: sha512-P851NL80P85Ee6MhblRuuCzNlQdOYU5rKmdt/Wuo5dMtkzvIHhyVZY9wtfKG3wBJUUoxHxWKsI2aR6O75o8diA==} + '@ai-sdk/gateway@4.0.142': + resolution: {integrity: sha512-X5UpG2dMLT29OkHLOEknZ0/4/iEyPTuVEiNypiUc3ltuNz2k9ixssgBc/XcV4PylpBpz3RAdGQB4qDmVbUMX8A==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/mcp@2.0.91': - resolution: {integrity: sha512-N6+vu+RoKklEjuGiExe3ePpgGSsErzylScFEVcL6PblzALuVlzlGTNU7VFhZrn2UJ173+rL6Zm2bJ0zSmvjO9Q==} + '@ai-sdk/mcp@2.0.96': + resolution: {integrity: sha512-l1QW0wYxWkvw2yQAf4J4ZA3sPQzxq0xDrc0SoTc4hB4AqcQb3rAVVe3LdvHThkqlgjuM3qtS9g5UlAe+2+cTmA==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/openai@4.0.71': - resolution: {integrity: sha512-w8FuHr1bD/bP/8SIgcaJKUyePE4ke9s7+Ew2ed/9i5mDoFXEfyVUyFX8R0wQ3YfcdMKmTs8ct/f6XJsXsnPVsQ==} + '@ai-sdk/openai@4.0.114': + resolution: {integrity: sha512-HceWOUPej4zSYvjZhICQVoQWzwXP3SyJY8GN/P0a+dqJaUMdn3NQMEW6KyhbS+/ltAgR6MauW9KgDx8NDbFe3g==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider-utils@5.0.45': - resolution: {integrity: sha512-gLuaCups8OCIRz3eO6WWz5op7VLYNNtFzyH0sWUr0FE9v7cTxR0qxDpQdrKnGcql+9WWttobjnZsJVsuEbsPQQ==} + '@ai-sdk/provider-utils@5.0.79': + resolution: {integrity: sha512-IYu6MT0NDE3JFWBWEJWAXjhskHTSj6NfRp9FuEAOcyS2Jrj3qBePu7OEoXVmoCWT3pYPgrF4DBKzjjjOMRyw9Q==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider-utils@5.0.75': - resolution: {integrity: sha512-k4yAsFliGZwoTpyTpm3ptxwIeaPvRh5vGh/UWoqDiLLXKoyz4zuBGS7p3ygf8to5Bh4fAOHynotLBsWLIYdu2A==} - engines: {node: '>=22'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/provider@4.0.17': - resolution: {integrity: sha512-VYMBxIQdcHqbIf1j+YZlI9Ati6LZ4wJe0GGd4z4a5H/KxTggjeOiyaVYTnfF7LHZK5jMQ+rofmzz4QPqf++NUw==} - engines: {node: '>=22'} - - '@ai-sdk/provider@4.0.36': - resolution: {integrity: sha512-GqvWZSZdBelCGughlBdOoupT258rgM3YMbaLAS9WSZJ0vlt8c9vm3My+ZT31mYhiReMCMCF2qF2axnGbILpk1A==} + '@ai-sdk/provider@4.0.37': + resolution: {integrity: sha512-4uPgZ3qiX/JaQFr0dQoibUzHImZit9u05ro2BxGUnJwU4fV28BOAbKUa2OjQvqtM1tMac3bTKkaXdyzGovQXqg==} engines: {node: '>=22'} - '@ai-sdk/react@4.0.167': - resolution: {integrity: sha512-MHS+hPVR4HOKBgO9aKZ3znQW7WpOvoCJ4vK7QCFkL8prJQgHzwWPkOMGd0MLawcDvqC0r6eMMuZfVoLWh/sMFA==} + '@ai-sdk/react@4.0.173': + resolution: {integrity: sha512-XO2mepKySyYG9D2sUxck0l1ET4hm86kV33Rk8lvzp0ZURwJhiuqO2DMEbi1+0topTZU/WTmZL17WKFC3QkbJJA==} engines: {node: '>=22'} peerDependencies: react: ^18 || ~19.0.1 || ~19.1.2 || ^19.2.1 @@ -2522,10 +2512,10 @@ packages: vitest: optional: true - '@tanstack/ai-openai@1.1.0': - resolution: {integrity: sha512-/tw8NknWaVq6q90RhfQKXYA7BRKo1PL3n63gbxvjcFf8MteY1bKfz5XxzrjFrUcSAQv9dIZwVM3Pu7tsjcHprw==} + '@tanstack/ai-openai@1.1.1': + resolution: {integrity: sha512-IzieUf8FmAaZOVV4ADM3PrL0W7GQ+SPB1BOLHU/EG+cVGcg+KuunlflNrjJJB7pcvJTZUoOhgBn2ljn8NH4mdw==} peerDependencies: - '@tanstack/ai': ^1.1.0 + '@tanstack/ai': ^1.2.0 '@tanstack/ai-persistence@1.0.1': resolution: {integrity: sha512-nsQ6kHRyN/tN41Ccxxk6LRsmru9YnoE9aM3G9X888iBtYK0znh7bBGCMHGDc+dt5GAeHVKq7GLqW7wt92c0U4A==} @@ -2550,11 +2540,11 @@ packages: react-dom: optional: true - '@tanstack/ai-utils@1.0.1': - resolution: {integrity: sha512-NIoMOCB+fVIYbaSOhZWkEgwM8yhZFDtFSzicIxsE3SiDKFVPgPR+kLAqTr0uU/KnXQcsZuHn5GVNxDj9bHAdWg==} + '@tanstack/ai-utils@1.1.0': + resolution: {integrity: sha512-li47v/794azVLourgteS/+jjH/ZF+cIp/3RMVA1VybtKAFiMy3ZGxREU10OzfUghMzYLdfpK2l6ahvlWxNVHug==} - '@tanstack/ai@1.1.0': - resolution: {integrity: sha512-mtG1tEiXUpFXwN4nDszjw2vSHR+UgdsKCtd0XSloZcqdnZcxwAPMiVgzZ3HsaqG1PotvRBn+awVS8HvhrWhglg==} + '@tanstack/ai@1.4.0': + resolution: {integrity: sha512-3f0D9gFCk8LUe9qAPCsRkjlXU2bqbIKKMGGo9P6Q6O0vR+5/0N/J3x1J2QWYY8L3LNvJliZBDnutudEIRzNU8w==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': '>=1.9.0' @@ -2578,10 +2568,10 @@ packages: react: optional: true - '@tanstack/openai-base@1.0.1': - resolution: {integrity: sha512-Qej1b/9VG3B/vrXkSEgRrxSFnaPYwQHuW8wxvfaLKwSme7KuIkHadtn4YrX5Jt5uaZYT1icnJqEe0rfsFIv7pQ==} + '@tanstack/openai-base@1.0.3': + resolution: {integrity: sha512-H466huQrxtGUb7lXN809zfTiQiTjHrhWbujXhP1eM7rVLVdEebXP7ckhJgrXWVXw9c8vBpYOcd/F5Z/7XdKEPw==} peerDependencies: - '@tanstack/ai': ^1.1.0 + '@tanstack/ai': ^1.3.0 '@tanstack/store@0.11.2': resolution: {integrity: sha512-sJ4mjol8uQsHV0gOJzzjwXfh2Fwm+Sz0+8deqiTm4jGbMdjzNSW+xZCFm0kUa870uhd8yi+DpKnZb5Kc4apa0Q==} @@ -3078,8 +3068,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - ai@7.0.163: - resolution: {integrity: sha512-nm8+qn36NQXO4Hjfj7SlbcNRhUyNXKtdoS9xhXr/z92lvdGFuPkzHmA2tFzhaUQy13IitNYrcw2QSNpEJC/iSA==} + ai@7.0.169: + resolution: {integrity: sha512-p2GHNRXnIP7EE5/pV8pq2RrFDtXrSMSAZB6/CQHYXCaFXrKqspzDyXn89wSg5bv61V3KukjQQtguSOVkN5KI9w==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -5061,8 +5051,8 @@ packages: undici-types@7.18.2: resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - undici@7.29.1: - resolution: {integrity: sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==} + undici@7.30.2: + resolution: {integrity: sha512-mLyPQnHwUxaM/rideoK/+KL8DaAJLRl4aBCfmX444aCSLnIaomqPLtNRe2jdCYcsk5wZzXrDIQC8ZeYNRAYyIA==} engines: {node: '>=20.18.1'} undici@8.12.3: @@ -5274,59 +5264,46 @@ snapshots: optionalDependencies: zod: 4.4.3 - '@ai-sdk/gateway@4.0.136(zod@4.4.3)': + '@ai-sdk/gateway@4.0.142(zod@4.4.3)': dependencies: - '@ai-sdk/provider': 4.0.36 - '@ai-sdk/provider-utils': 5.0.75(zod@4.4.3) + '@ai-sdk/provider': 4.0.37 + '@ai-sdk/provider-utils': 5.0.79(zod@4.4.3) '@vercel/oidc': 3.2.0 zod: 4.4.3 - '@ai-sdk/mcp@2.0.91(zod@4.4.3)': + '@ai-sdk/mcp@2.0.96(zod@4.4.3)': dependencies: - '@ai-sdk/provider': 4.0.36 - '@ai-sdk/provider-utils': 5.0.75(zod@4.4.3) + '@ai-sdk/provider': 4.0.37 + '@ai-sdk/provider-utils': 5.0.79(zod@4.4.3) cross-spawn: 7.0.6 pkce-challenge: 5.0.1 zod: 4.4.3 - '@ai-sdk/openai@4.0.71(zod@4.4.3)': + '@ai-sdk/openai@4.0.114(zod@4.4.3)': dependencies: - '@ai-sdk/provider': 4.0.17 - '@ai-sdk/provider-utils': 5.0.45(zod@4.4.3) + '@ai-sdk/provider': 4.0.37 + '@ai-sdk/provider-utils': 5.0.79(zod@4.4.3) zod: 4.4.3 - '@ai-sdk/provider-utils@5.0.45(zod@4.4.3)': + '@ai-sdk/provider-utils@5.0.79(zod@4.4.3)': dependencies: - '@ai-sdk/provider': 4.0.17 + '@ai-sdk/provider': 4.0.37 '@standard-schema/spec': 1.1.0 '@workflow/serde': 4.1.0 eventsource-parser: 3.1.1 - undici: 7.29.1 + undici: 7.30.2 zod: 4.4.3 - '@ai-sdk/provider-utils@5.0.75(zod@4.4.3)': - dependencies: - '@ai-sdk/provider': 4.0.36 - '@standard-schema/spec': 1.1.0 - '@workflow/serde': 4.1.0 - eventsource-parser: 3.1.1 - undici: 7.29.1 - zod: 4.4.3 - - '@ai-sdk/provider@4.0.17': - dependencies: - json-schema: 0.4.0 - - '@ai-sdk/provider@4.0.36': + '@ai-sdk/provider@4.0.37': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@4.0.167(react@19.2.6)(zod@4.4.3)': + '@ai-sdk/react@4.0.173(react@19.2.6)(zod@4.4.3)': dependencies: - '@ai-sdk/mcp': 2.0.91(zod@4.4.3) - '@ai-sdk/provider': 4.0.36 - '@ai-sdk/provider-utils': 5.0.75(zod@4.4.3) - ai: 7.0.163(zod@4.4.3) + '@ai-sdk/mcp': 2.0.96(zod@4.4.3) + '@ai-sdk/provider': 4.0.37 + '@ai-sdk/provider-utils': 5.0.79(zod@4.4.3) + ai: 7.0.169(zod@4.4.3) react: 19.2.6 swr: 2.4.1(react@19.2.6) throttleit: 2.1.0 @@ -7099,9 +7076,9 @@ snapshots: '@tanstack/ai-client@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3)': dependencies: - '@tanstack/ai': 1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3) + '@tanstack/ai': 1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3) '@tanstack/ai-event-client': 1.0.1 - '@tanstack/ai-utils': 1.0.1 + '@tanstack/ai-utils': 1.1.0 '@tanstack/store': 0.11.2 transitivePeerDependencies: - '@opentelemetry/api' @@ -7111,18 +7088,18 @@ snapshots: dependencies: '@tanstack/devtools-event-client': 0.4.4 - '@tanstack/ai-memory@1.1.0(@tanstack/ai@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(vitest@2.1.9(@types/node@20.19.43)(lightningcss@1.32.0))': + '@tanstack/ai-memory@1.1.0(@tanstack/ai@1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(vitest@2.1.9(@types/node@20.19.43)(lightningcss@1.32.0))': dependencies: - '@tanstack/ai': 1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3) + '@tanstack/ai': 1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3) '@tanstack/ai-event-client': 1.0.1 optionalDependencies: vitest: 2.1.9(@types/node@20.19.43)(lightningcss@1.32.0) - '@tanstack/ai-openai@1.1.0(@tanstack/ai@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(undici@8.12.3)(ws@8.21.3)(zod@4.4.3)': + '@tanstack/ai-openai@1.1.1(@tanstack/ai@1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(undici@8.12.3)(ws@8.21.3)(zod@4.4.3)': dependencies: - '@tanstack/ai': 1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3) - '@tanstack/ai-utils': 1.0.1 - '@tanstack/openai-base': 1.0.1(@tanstack/ai@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(undici@8.12.3)(ws@8.21.3)(zod@4.4.3) + '@tanstack/ai': 1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3) + '@tanstack/ai-utils': 1.1.0 + '@tanstack/openai-base': 1.0.3(@tanstack/ai@1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(undici@8.12.3)(ws@8.21.3)(zod@4.4.3) openai: 7.42.0(undici@8.12.3)(ws@8.21.3)(zod@4.4.3) transitivePeerDependencies: - '@aws-sdk/credential-provider-node' @@ -7133,16 +7110,16 @@ snapshots: - ws - zod - '@tanstack/ai-persistence@1.0.1(@tanstack/ai@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(vitest@2.1.9(@types/node@20.19.43)(lightningcss@1.32.0))': + '@tanstack/ai-persistence@1.0.1(@tanstack/ai@1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(vitest@2.1.9(@types/node@20.19.43)(lightningcss@1.32.0))': dependencies: - '@tanstack/ai': 1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3) - '@tanstack/ai-utils': 1.0.1 + '@tanstack/ai': 1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3) + '@tanstack/ai-utils': 1.1.0 optionalDependencies: vitest: 2.1.9(@types/node@20.19.43)(lightningcss@1.32.0) - '@tanstack/ai-react@1.0.2(@opentelemetry/api@1.9.1)(@tanstack/ai@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3)': + '@tanstack/ai-react@1.0.2(@opentelemetry/api@1.9.1)(@tanstack/ai@1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3)': dependencies: - '@tanstack/ai': 1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3) + '@tanstack/ai': 1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3) '@tanstack/ai-client': 1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3) '@tanstack/markdown': 0.0.13(react@19.2.6) '@types/react': 19.2.15 @@ -7154,15 +7131,15 @@ snapshots: - octane - zod - '@tanstack/ai-utils@1.0.1': {} + '@tanstack/ai-utils@1.1.0': {} - '@tanstack/ai@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3)': + '@tanstack/ai@1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3)': dependencies: '@ag-ui/core': 1.0.0(zod@4.4.3) '@cfworker/json-schema': 4.1.1 '@standard-schema/spec': 1.1.0 '@tanstack/ai-event-client': 1.0.1 - '@tanstack/ai-utils': 1.0.1 + '@tanstack/ai-utils': 1.1.0 fast-json-patch: 3.1.1 partial-json: 0.1.7 optionalDependencies: @@ -7176,10 +7153,10 @@ snapshots: optionalDependencies: react: 19.2.6 - '@tanstack/openai-base@1.0.1(@tanstack/ai@1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(undici@8.12.3)(ws@8.21.3)(zod@4.4.3)': + '@tanstack/openai-base@1.0.3(@tanstack/ai@1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3))(undici@8.12.3)(ws@8.21.3)(zod@4.4.3)': dependencies: - '@tanstack/ai': 1.1.0(@opentelemetry/api@1.9.1)(zod@4.4.3) - '@tanstack/ai-utils': 1.0.1 + '@tanstack/ai': 1.4.0(@opentelemetry/api@1.9.1)(zod@4.4.3) + '@tanstack/ai-utils': 1.1.0 openai: 7.42.0(undici@8.12.3)(ws@8.21.3)(zod@4.4.3) transitivePeerDependencies: - '@aws-sdk/credential-provider-node' @@ -7583,13 +7560,13 @@ snapshots: dependencies: execa: 5.1.1 - '@vercel/connect@2.5.6(@ai-sdk/mcp@2.0.91(zod@4.4.3))(ai@7.0.163(zod@4.4.3))(eve@0.91.0)': + '@vercel/connect@2.5.6(@ai-sdk/mcp@2.0.96(zod@4.4.3))(ai@7.0.169(zod@4.4.3))(eve@0.91.0)': dependencies: '@vercel/oidc': 4.0.4 optionalDependencies: - '@ai-sdk/mcp': 2.0.91(zod@4.4.3) - ai: 7.0.163(zod@4.4.3) - eve: 0.91.0(@opentelemetry/api@1.9.1)(@vercel/connect@2.5.6)(ai@7.0.163(zod@4.4.3))(next@16.2.9(@opentelemetry/api@1.9.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) + '@ai-sdk/mcp': 2.0.96(zod@4.4.3) + ai: 7.0.169(zod@4.4.3) + eve: 0.91.0(@opentelemetry/api@1.9.1)(@vercel/connect@2.5.6)(ai@7.0.169(zod@4.4.3))(next@16.2.9(@opentelemetry/api@1.9.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) '@vercel/oidc@3.2.0': {} @@ -7647,11 +7624,11 @@ snapshots: acorn@8.17.0: {} - ai@7.0.163(zod@4.4.3): + ai@7.0.169(zod@4.4.3): dependencies: - '@ai-sdk/gateway': 4.0.136(zod@4.4.3) - '@ai-sdk/provider': 4.0.36 - '@ai-sdk/provider-utils': 5.0.75(zod@4.4.3) + '@ai-sdk/gateway': 4.0.142(zod@4.4.3) + '@ai-sdk/provider': 4.0.37 + '@ai-sdk/provider-utils': 5.0.79(zod@4.4.3) zod: 4.4.3 ajv@6.15.0: @@ -8202,14 +8179,14 @@ snapshots: esutils@2.0.3: {} - eve@0.91.0(@opentelemetry/api@1.9.1)(@vercel/connect@2.5.6)(ai@7.0.163(zod@4.4.3))(next@16.2.9(@opentelemetry/api@1.9.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)): + eve@0.91.0(@opentelemetry/api@1.9.1)(@vercel/connect@2.5.6)(ai@7.0.169(zod@4.4.3))(next@16.2.9(@opentelemetry/api@1.9.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)): dependencies: - ai: 7.0.163(zod@4.4.3) + ai: 7.0.169(zod@4.4.3) nitro: 3.0.260903-beta undici: 8.12.3 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@vercel/connect': 2.5.6(@ai-sdk/mcp@2.0.91(zod@4.4.3))(ai@7.0.163(zod@4.4.3))(eve@0.91.0) + '@vercel/connect': 2.5.6(@ai-sdk/mcp@2.0.96(zod@4.4.3))(ai@7.0.169(zod@4.4.3))(eve@0.91.0) next: 16.2.9(@opentelemetry/api@1.9.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 vite: 5.4.21(@types/node@20.19.43)(lightningcss@1.32.0) @@ -10002,7 +9979,7 @@ snapshots: undici-types@7.18.2: {} - undici@7.29.1: {} + undici@7.30.2: {} undici@8.12.3: {}