-
#844
a6cceba- Republish all packages with their compileddist/output.Releases
0.33.0–0.36.0were published without adist/directory: the release workflow relied on an Nx-cachedbuildwhose outputs were not materialized to disk beforechangeset publishpacked the tarballs, andfiles: ["dist"]silently includes nothing whendist/is absent. The published packages therefore contained onlysrc/, so every export (./dist/esm/*.js) resolved to a missing file and the packages were uninstallable.The publish step now runs a fresh, cache-bypassing build of all packages immediately before publishing, guaranteeing compiled artifacts are present in every tarball.
-
Updated dependencies [
a6cceba]:- @tanstack/ai@0.37.0
- @tanstack/ai-code-mode@0.3.1
- Updated dependencies [
fbd3762]:- @tanstack/ai@0.36.0
- @tanstack/ai-code-mode@0.3.0
- Updated dependencies [
c04abd3]:- @tanstack/ai@0.35.0
- @tanstack/ai-code-mode@0.2.13
- Updated dependencies [
4188693]:- @tanstack/ai@0.34.1
- @tanstack/ai-code-mode@0.2.12
-
#736
6caac6b- Make the@tanstack/ai-code-mode-skillsroot export Worker/browser-safe.The root entry previously re-exported
createFileSkillStorage(viaexport * from './storage'), which eagerly pulled innode:fs/node:path. This broke Cloudflare Workers and browser bundlers even for consumers that only used non-storage helpers likecreateSkillManagementToolsorcreateSkillsSystemPrompt.The Node-only file storage now lives only behind the
@tanstack/ai-code-mode-skills/storagesubpath. The root entry still re-exports the browser-safecreateMemorySkillStorage.Breaking: import
createFileSkillStoragefrom@tanstack/ai-code-mode-skills/storageinstead of the package root.
- Updated dependencies [
31de22b]:- @tanstack/ai@0.34.0
- @tanstack/ai-code-mode@0.2.11
- Updated dependencies [
2cb0313,81e3aee,3bf0dbf,18e5f4d,21720dd,243b8fa]:- @tanstack/ai@0.33.0
- @tanstack/ai-code-mode@0.2.10
- Updated dependencies [
07aaf8b]:- @tanstack/ai@0.31.0
- @tanstack/ai-code-mode@0.2.8
-
#769
1d1bb52- Add repository metadata (homepage,bugs,funding), fixrepository.directoryto point at each package, and include an MITLICENSEfile in every published package. -
Updated dependencies [
7103348,1d1bb52]:- @tanstack/ai@0.30.0
- @tanstack/ai-code-mode@0.2.7
- Updated dependencies [
ff267a5,570c08a,22c9b42,215b6b4,7d44569]:- @tanstack/ai@0.29.0
- @tanstack/ai-code-mode@0.2.6
- Updated dependencies [
496e814,c0af426,00e0c93,496e814]:- @tanstack/ai@0.28.0
- @tanstack/ai-code-mode@0.2.5
- Updated dependencies [
6df32b5]:- @tanstack/ai@0.27.0
- @tanstack/ai-code-mode@0.2.4
- Updated dependencies []:
- @tanstack/ai@0.26.1
- @tanstack/ai-code-mode@0.2.3
- Updated dependencies [
5d6cd28]:- @tanstack/ai@0.26.0
- @tanstack/ai-code-mode@0.2.2
- Updated dependencies [
c251038]:- @tanstack/ai@0.25.0
- @tanstack/ai-code-mode@0.2.1
-
#628
8036b50- Add typed runtime context for tools and middleware.Tools and middleware can now declare the runtime context shape they require, and
chat(),ChatClient, and the frameworkuseChat/createChathooks infer the merged requirement and type-check thecontextoption you pass against it.type AppContext = { userId: string; db: Db } const listNotes = toolDefinition({ name: 'list_notes' /* ... */, }).server<AppContext>((_input, ctx) => ctx.context.db.notes.findMany({ userId: ctx.context.userId }), ) chat({ adapter, messages, tools: [listNotes], context: { userId, db }, // required and type-checked because listNotes declares AppContext })
Runtime context is request-local application state for tool and middleware implementations (authenticated users, database clients, tenancy, feature flags, loggers, browser services). It is never sent to the model and is distinct from the AG-UI
RunAgentInput.contextprotocol field.Untyped tools and middleware continue to receive
unknowncontext and do not force acontextoption. Client tools receive client-local context viaChatClient/useChat; useforwardedPropsto hand serializable client data to the server and map it into server context explicitly. See the new Runtime Context guide for details.Behavior change: tool output validation now also runs when a tool returns
undefinedornull. Previously these values bypassedoutputSchemavalidation entirely; now the schema decides whether they are valid, so a tool whose schema forbidsundefined/nullsurfaces a validation error (output-error) instead of silently passing. Tools whose schema permitsnull/undefined(e.g. nullable or void outputs) are unaffected.
- Updated dependencies [
94bb9c0]:- @tanstack/ai@0.23.1
- @tanstack/ai-code-mode@0.1.24
- Updated dependencies []:
- @tanstack/ai@0.22.1
- @tanstack/ai-code-mode@0.1.22
- Updated dependencies [
02f7d04]:- @tanstack/ai@0.22.0
- @tanstack/ai-code-mode@0.1.21
- Updated dependencies [
e144a53]:- @tanstack/ai@0.21.3
- @tanstack/ai-code-mode@0.1.20
-
Refresh package README content and npm metadata for better discoverability. (#626)
-
Updated dependencies [
ebeb22e]:- @tanstack/ai@0.21.2
- @tanstack/ai-code-mode@0.1.19
- Updated dependencies [
573f12e]:- @tanstack/ai@0.21.1
- @tanstack/ai-code-mode@0.1.18
-
Adopt
@tanstack/eslint-config@0.4.0and clean up the local override layer. (#607)- Bump
@tanstack/eslint-configfrom0.3.3to0.4.0. - Drop dead
pnpm/enforce-catalogandpnpm/json-enforce-catalogdisables (upstream removedeslint-plugin-pnpmin0.3.1). - Drop the
no-case-declarations: offoverride — no current source actually violates it. - Drop the
no-shadow: offoverride — upstream sets it towarn, so it surfaces in editors without blocking CI. - Remove ~25 unnecessary type assertions across the publishable packages that the upgraded
typescript-eslintnow catches viano-unnecessary-type-assertion. One deliberately defensive cast inag-ui-wire.tsis preserved with an inline opt-out and a reason comment.
No public-API or runtime-behavior changes.
- Bump
-
Updated dependencies [
ec1393d,188fe11]:- @tanstack/ai@0.21.0
- @tanstack/ai-code-mode@0.1.17
-
Tighten TypeScript safety: enable
noImplicitOverride, (#579)noFallthroughCasesInSwitch, anduseDefineForClassFieldsin the roottsconfig.json; add a typed-ESLint block scoped topackages/*/src/**that turns onno-floating-promises,no-misused-promises,await-thenable,switch-exhaustiveness-check,consistent-type-exports,prefer-readonly, andno-non-null-assertion(errors), plusno-explicit-any(warning).@ts-ignoreand@ts-nocheckare disallowed in library source via@typescript-eslint/ban-ts-comment, andas unknown as <T>double-casts are blocked by ano-restricted-syntaxrule (escape hatches available with an inline reason). Two flags from the original five-flag set —noPropertyAccessFromIndexSignatureandexactOptionalPropertyTypes— were tried and rolled back: they produced ~500 lines of bracket- access and conditional-spread churn without catching any real bugs, andexactOptionalPropertyTypeswould have forced consumers using it themselves to deal with our internals' style preferences.User-visible API surface is unchanged; this is a hardening pass to keep streaming/agent-loop correctness and discriminated-union exhaustiveness honest going forward. See issue #564.
-
Updated dependencies [
2ad137b]:- @tanstack/ai@0.20.1
- @tanstack/ai-code-mode@0.1.16
- Updated dependencies [
496db9c]:- @tanstack/ai@0.20.0
- @tanstack/ai-code-mode@0.1.15
- Updated dependencies [
617b5b5]:- @tanstack/ai@0.19.1
- @tanstack/ai-code-mode@0.1.14
- Updated dependencies [
2e0e2eb]:- @tanstack/ai@0.19.0
- @tanstack/ai-code-mode@0.1.13
- Updated dependencies [
87f305c]:- @tanstack/ai@0.16.0
- @tanstack/ai-code-mode@0.1.10
- Updated dependencies [
54523f5,54523f5,af9eb7b,54523f5]:- @tanstack/ai@0.14.0
- @tanstack/ai-code-mode@0.1.8
- Updated dependencies [
c1fd96f]:- @tanstack/ai@0.13.0
- @tanstack/ai-code-mode@0.1.7
- Updated dependencies [
e32583e]:- @tanstack/ai@0.12.0
- @tanstack/ai-code-mode@0.1.6
- Updated dependencies [
633a3d9]:- @tanstack/ai@0.11.1
- @tanstack/ai-code-mode@0.1.5
- Updated dependencies [
12d43e5]:- @tanstack/ai@0.11.0
- @tanstack/ai-code-mode@0.1.4
- Updated dependencies [
c780bc1]:- @tanstack/ai@0.10.3
- @tanstack/ai-code-mode@0.1.3
- Updated dependencies [
4445410]:- @tanstack/ai@0.10.2
- @tanstack/ai-code-mode@0.1.2
- Updated dependencies [
1d1c58f]:- @tanstack/ai@0.10.1
- @tanstack/ai-code-mode@0.1.1
-
Add code mode and isolate packages for secure AI code execution (#362)
Also includes fixes for Ollama tool call argument streaming and usage reporting, OpenAI realtime adapter handling of missing call_id/item_id, realtime client guards for missing toolCallId, and new DevtoolsChatMiddleware type export from ai-event-client.
- Updated dependencies [
54abae0]:- @tanstack/ai@0.10.0
- @tanstack/ai-code-mode@0.1.0