[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-tanstack-tanstack-ai-memory-hindsight":3,"mdc--swni4m-key":50,"related-org-tanstack-tanstack-ai-memory-hindsight":570,"related-repo-tanstack-tanstack-ai-memory-hindsight":714},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":45,"sourceUrl":48,"mdContent":49},"tanstack-ai-memory-hindsight","wire TanStack AI hindsight memory adapter","Use when wiring hindsight() from @tanstack\u002Fai-memory\u002Fhindsight — a hosted memory adapter that buckets memory per conversation and exposes retain\u002Frecall\u002Freflect tools to the model. Requires the optional @vectorize-io\u002Fhindsight-client peer.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"tanstack","TanStack","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftanstack.png",[12,16,19],{"name":13,"slug":14,"type":15},"Memory","memory","tag",{"name":17,"slug":18,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},2884,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Fai","2026-07-26T06:08:54.629827",null,269,[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,8,41,42,43,44],"ai","ai-agents","ai-sdk","anthropic","chatbot","function-calling","gemini","generative-ai","llm","multimodal","openai","react","solidjs","streaming","svelte","tool-calling","typescript","typescript-sdk","vue",{"repoUrl":21,"stars":20,"forks":24,"topics":46,"description":47},[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,8,41,42,43,44],"🤖 Type-safe, provider-agnostic TypeScript AI SDK for streaming chat, tool calling, agents, and multimodal apps across OpenAI, Anthropic, Gemini, React, Vue, Svelte, and Solid.","https:\u002F\u002Fgithub.com\u002FTanStack\u002Fai\u002Ftree\u002FHEAD\u002Fpackages\u002Fai-memory\u002Fskills\u002Ftanstack-ai-memory-hindsight","---\nname: tanstack-ai-memory-hindsight\ndescription: Use when wiring hindsight() from @tanstack\u002Fai-memory\u002Fhindsight — a hosted memory adapter that buckets memory per conversation and exposes retain\u002Frecall\u002Freflect tools to the model. Requires the optional @vectorize-io\u002Fhindsight-client peer.\n---\n\n# Hindsight Memory Adapter\n\nHosted `recall`\u002F`save` adapter backed by Hindsight. Hindsight owns extraction and\nranking server-side, buckets memory into per-conversation \"banks\"\n(`{tenantId|_}__{user}__{threadId}`), and — uniquely — exposes LLM **tools** through `recall` so the\nmodel can retain\u002Frecall\u002Freflect directly.\n\n## Setup\n\n```ts\nimport { memoryMiddleware } from '@tanstack\u002Fai-memory'\nimport { hindsight } from '@tanstack\u002Fai-memory\u002Fhindsight'\n\nconst memory = hindsight({ user: currentUserId }) \u002F\u002F baseUrl defaults to HINDSIGHT_URL\n\nmemoryMiddleware({ adapter: memory, scope })\n```\n\n`@vectorize-io\u002Fhindsight-client` is an **optional peer dependency**, loaded lazily on\nfirst use — install it where you use `hindsight()`.\n\n## Options\n\n- `user` — durable user id for the bank key (falls back to `scope.userId`).\n- `baseUrl` — Hindsight server URL (default `HINDSIGHT_URL` or `http:\u002F\u002Flocalhost:8888`).\n- `budget` — recall budget: `'low' | 'mid' | 'high'` (default `'mid'`).\n- `onToolRetain` \u002F `onToolRecall` — callbacks fired when the model uses the memory tools.\n\n**Scope fields:** bank id is `{tenantId|_}__{user}__{threadId}`. `namespace` is ignored.\n\n## Tools\n\n`recall` returns `hindsight_retain`, `hindsight_recall`, and `hindsight_reflect` in its\n`tools` plus a `toolGuidance` block. `memoryMiddleware` merges them into the run so the\nmodel can manage long-term memory itself.\n",{"data":51,"body":52},{"name":4,"description":6},{"type":53,"children":54},"root",[55,64,110,117,351,377,383,478,503,508,564],{"type":56,"tag":57,"props":58,"children":60},"element","h1",{"id":59},"hindsight-memory-adapter",[61],{"type":62,"value":63},"text","Hindsight Memory Adapter",{"type":56,"tag":65,"props":66,"children":67},"p",{},[68,70,77,79,85,87,93,95,101,103,108],{"type":62,"value":69},"Hosted ",{"type":56,"tag":71,"props":72,"children":74},"code",{"className":73},[],[75],{"type":62,"value":76},"recall",{"type":62,"value":78},"\u002F",{"type":56,"tag":71,"props":80,"children":82},{"className":81},[],[83],{"type":62,"value":84},"save",{"type":62,"value":86}," adapter backed by Hindsight. Hindsight owns extraction and\nranking server-side, buckets memory into per-conversation \"banks\"\n(",{"type":56,"tag":71,"props":88,"children":90},{"className":89},[],[91],{"type":62,"value":92},"{tenantId|_}__{user}__{threadId}",{"type":62,"value":94},"), and — uniquely — exposes LLM ",{"type":56,"tag":96,"props":97,"children":98},"strong",{},[99],{"type":62,"value":100},"tools",{"type":62,"value":102}," through ",{"type":56,"tag":71,"props":104,"children":106},{"className":105},[],[107],{"type":62,"value":76},{"type":62,"value":109}," so the\nmodel can retain\u002Frecall\u002Freflect directly.",{"type":56,"tag":111,"props":112,"children":114},"h2",{"id":113},"setup",[115],{"type":62,"value":116},"Setup",{"type":56,"tag":118,"props":119,"children":124},"pre",{"className":120,"code":121,"language":122,"meta":123,"style":123},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { memoryMiddleware } from '@tanstack\u002Fai-memory'\nimport { hindsight } from '@tanstack\u002Fai-memory\u002Fhindsight'\n\nconst memory = hindsight({ user: currentUserId }) \u002F\u002F baseUrl defaults to HINDSIGHT_URL\n\nmemoryMiddleware({ adapter: memory, scope })\n","ts","",[125],{"type":56,"tag":71,"props":126,"children":127},{"__ignoreMap":123},[128,178,216,226,293,301],{"type":56,"tag":129,"props":130,"children":133},"span",{"class":131,"line":132},"line",1,[134,140,146,152,157,162,167,173],{"type":56,"tag":129,"props":135,"children":137},{"style":136},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[138],{"type":62,"value":139},"import",{"type":56,"tag":129,"props":141,"children":143},{"style":142},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[144],{"type":62,"value":145}," {",{"type":56,"tag":129,"props":147,"children":149},{"style":148},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[150],{"type":62,"value":151}," memoryMiddleware",{"type":56,"tag":129,"props":153,"children":154},{"style":142},[155],{"type":62,"value":156}," }",{"type":56,"tag":129,"props":158,"children":159},{"style":136},[160],{"type":62,"value":161}," from",{"type":56,"tag":129,"props":163,"children":164},{"style":142},[165],{"type":62,"value":166}," '",{"type":56,"tag":129,"props":168,"children":170},{"style":169},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[171],{"type":62,"value":172},"@tanstack\u002Fai-memory",{"type":56,"tag":129,"props":174,"children":175},{"style":142},[176],{"type":62,"value":177},"'\n",{"type":56,"tag":129,"props":179,"children":181},{"class":131,"line":180},2,[182,186,190,195,199,203,207,212],{"type":56,"tag":129,"props":183,"children":184},{"style":136},[185],{"type":62,"value":139},{"type":56,"tag":129,"props":187,"children":188},{"style":142},[189],{"type":62,"value":145},{"type":56,"tag":129,"props":191,"children":192},{"style":148},[193],{"type":62,"value":194}," hindsight",{"type":56,"tag":129,"props":196,"children":197},{"style":142},[198],{"type":62,"value":156},{"type":56,"tag":129,"props":200,"children":201},{"style":136},[202],{"type":62,"value":161},{"type":56,"tag":129,"props":204,"children":205},{"style":142},[206],{"type":62,"value":166},{"type":56,"tag":129,"props":208,"children":209},{"style":169},[210],{"type":62,"value":211},"@tanstack\u002Fai-memory\u002Fhindsight",{"type":56,"tag":129,"props":213,"children":214},{"style":142},[215],{"type":62,"value":177},{"type":56,"tag":129,"props":217,"children":219},{"class":131,"line":218},3,[220],{"type":56,"tag":129,"props":221,"children":223},{"emptyLinePlaceholder":222},true,[224],{"type":62,"value":225},"\n",{"type":56,"tag":129,"props":227,"children":229},{"class":131,"line":228},4,[230,236,241,246,251,256,261,267,272,277,282,287],{"type":56,"tag":129,"props":231,"children":233},{"style":232},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[234],{"type":62,"value":235},"const",{"type":56,"tag":129,"props":237,"children":238},{"style":148},[239],{"type":62,"value":240}," memory ",{"type":56,"tag":129,"props":242,"children":243},{"style":142},[244],{"type":62,"value":245},"=",{"type":56,"tag":129,"props":247,"children":249},{"style":248},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[250],{"type":62,"value":194},{"type":56,"tag":129,"props":252,"children":253},{"style":148},[254],{"type":62,"value":255},"(",{"type":56,"tag":129,"props":257,"children":258},{"style":142},[259],{"type":62,"value":260},"{",{"type":56,"tag":129,"props":262,"children":264},{"style":263},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[265],{"type":62,"value":266}," user",{"type":56,"tag":129,"props":268,"children":269},{"style":142},[270],{"type":62,"value":271},":",{"type":56,"tag":129,"props":273,"children":274},{"style":148},[275],{"type":62,"value":276}," currentUserId ",{"type":56,"tag":129,"props":278,"children":279},{"style":142},[280],{"type":62,"value":281},"}",{"type":56,"tag":129,"props":283,"children":284},{"style":148},[285],{"type":62,"value":286},") ",{"type":56,"tag":129,"props":288,"children":290},{"style":289},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[291],{"type":62,"value":292},"\u002F\u002F baseUrl defaults to HINDSIGHT_URL\n",{"type":56,"tag":129,"props":294,"children":296},{"class":131,"line":295},5,[297],{"type":56,"tag":129,"props":298,"children":299},{"emptyLinePlaceholder":222},[300],{"type":62,"value":225},{"type":56,"tag":129,"props":302,"children":304},{"class":131,"line":303},6,[305,310,314,318,323,327,332,337,342,346],{"type":56,"tag":129,"props":306,"children":307},{"style":248},[308],{"type":62,"value":309},"memoryMiddleware",{"type":56,"tag":129,"props":311,"children":312},{"style":148},[313],{"type":62,"value":255},{"type":56,"tag":129,"props":315,"children":316},{"style":142},[317],{"type":62,"value":260},{"type":56,"tag":129,"props":319,"children":320},{"style":263},[321],{"type":62,"value":322}," adapter",{"type":56,"tag":129,"props":324,"children":325},{"style":142},[326],{"type":62,"value":271},{"type":56,"tag":129,"props":328,"children":329},{"style":148},[330],{"type":62,"value":331}," memory",{"type":56,"tag":129,"props":333,"children":334},{"style":142},[335],{"type":62,"value":336},",",{"type":56,"tag":129,"props":338,"children":339},{"style":148},[340],{"type":62,"value":341}," scope ",{"type":56,"tag":129,"props":343,"children":344},{"style":142},[345],{"type":62,"value":281},{"type":56,"tag":129,"props":347,"children":348},{"style":148},[349],{"type":62,"value":350},")\n",{"type":56,"tag":65,"props":352,"children":353},{},[354,360,362,367,369,375],{"type":56,"tag":71,"props":355,"children":357},{"className":356},[],[358],{"type":62,"value":359},"@vectorize-io\u002Fhindsight-client",{"type":62,"value":361}," is an ",{"type":56,"tag":96,"props":363,"children":364},{},[365],{"type":62,"value":366},"optional peer dependency",{"type":62,"value":368},", loaded lazily on\nfirst use — install it where you use ",{"type":56,"tag":71,"props":370,"children":372},{"className":371},[],[373],{"type":62,"value":374},"hindsight()",{"type":62,"value":376},".",{"type":56,"tag":111,"props":378,"children":380},{"id":379},"options",[381],{"type":62,"value":382},"Options",{"type":56,"tag":384,"props":385,"children":386},"ul",{},[387,407,433,459],{"type":56,"tag":388,"props":389,"children":390},"li",{},[391,397,399,405],{"type":56,"tag":71,"props":392,"children":394},{"className":393},[],[395],{"type":62,"value":396},"user",{"type":62,"value":398}," — durable user id for the bank key (falls back to ",{"type":56,"tag":71,"props":400,"children":402},{"className":401},[],[403],{"type":62,"value":404},"scope.userId",{"type":62,"value":406},").",{"type":56,"tag":388,"props":408,"children":409},{},[410,416,418,424,426,432],{"type":56,"tag":71,"props":411,"children":413},{"className":412},[],[414],{"type":62,"value":415},"baseUrl",{"type":62,"value":417}," — Hindsight server URL (default ",{"type":56,"tag":71,"props":419,"children":421},{"className":420},[],[422],{"type":62,"value":423},"HINDSIGHT_URL",{"type":62,"value":425}," or ",{"type":56,"tag":71,"props":427,"children":429},{"className":428},[],[430],{"type":62,"value":431},"http:\u002F\u002Flocalhost:8888",{"type":62,"value":406},{"type":56,"tag":388,"props":434,"children":435},{},[436,442,444,450,452,458],{"type":56,"tag":71,"props":437,"children":439},{"className":438},[],[440],{"type":62,"value":441},"budget",{"type":62,"value":443}," — recall budget: ",{"type":56,"tag":71,"props":445,"children":447},{"className":446},[],[448],{"type":62,"value":449},"'low' | 'mid' | 'high'",{"type":62,"value":451}," (default ",{"type":56,"tag":71,"props":453,"children":455},{"className":454},[],[456],{"type":62,"value":457},"'mid'",{"type":62,"value":406},{"type":56,"tag":388,"props":460,"children":461},{},[462,468,470,476],{"type":56,"tag":71,"props":463,"children":465},{"className":464},[],[466],{"type":62,"value":467},"onToolRetain",{"type":62,"value":469}," \u002F ",{"type":56,"tag":71,"props":471,"children":473},{"className":472},[],[474],{"type":62,"value":475},"onToolRecall",{"type":62,"value":477}," — callbacks fired when the model uses the memory tools.",{"type":56,"tag":65,"props":479,"children":480},{},[481,486,488,493,495,501],{"type":56,"tag":96,"props":482,"children":483},{},[484],{"type":62,"value":485},"Scope fields:",{"type":62,"value":487}," bank id is ",{"type":56,"tag":71,"props":489,"children":491},{"className":490},[],[492],{"type":62,"value":92},{"type":62,"value":494},". ",{"type":56,"tag":71,"props":496,"children":498},{"className":497},[],[499],{"type":62,"value":500},"namespace",{"type":62,"value":502}," is ignored.",{"type":56,"tag":111,"props":504,"children":505},{"id":100},[506],{"type":62,"value":507},"Tools",{"type":56,"tag":65,"props":509,"children":510},{},[511,516,518,524,526,532,534,540,542,547,549,555,557,562],{"type":56,"tag":71,"props":512,"children":514},{"className":513},[],[515],{"type":62,"value":76},{"type":62,"value":517}," returns ",{"type":56,"tag":71,"props":519,"children":521},{"className":520},[],[522],{"type":62,"value":523},"hindsight_retain",{"type":62,"value":525},", ",{"type":56,"tag":71,"props":527,"children":529},{"className":528},[],[530],{"type":62,"value":531},"hindsight_recall",{"type":62,"value":533},", and ",{"type":56,"tag":71,"props":535,"children":537},{"className":536},[],[538],{"type":62,"value":539},"hindsight_reflect",{"type":62,"value":541}," in its\n",{"type":56,"tag":71,"props":543,"children":545},{"className":544},[],[546],{"type":62,"value":100},{"type":62,"value":548}," plus a ",{"type":56,"tag":71,"props":550,"children":552},{"className":551},[],[553],{"type":62,"value":554},"toolGuidance",{"type":62,"value":556}," block. ",{"type":56,"tag":71,"props":558,"children":560},{"className":559},[],[561],{"type":62,"value":309},{"type":62,"value":563}," merges them into the run so the\nmodel can manage long-term memory itself.",{"type":56,"tag":565,"props":566,"children":567},"style",{},[568],{"type":62,"value":569},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":571,"total":713},[572,588,600,612,627,639,649,659,672,682,693,703],{"slug":573,"name":573,"fn":574,"description":575,"org":576,"tags":577,"stars":585,"repoUrl":586,"updatedAt":587},"aggregation","perform data aggregation in TanStack Table","Aggregate TanStack Table columns independently of grouping, including grand totals, caller-selected row totals, multiple keyed aggregations, custom context-based definitions, grouped merges, manual values, and worker constraints.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[578,581,584],{"name":579,"slug":580,"type":15},"Data Analysis","data-analysis",{"name":582,"slug":583,"type":15},"Frontend","frontend",{"name":9,"slug":8,"type":15},28175,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Ftable","2026-07-30T05:25:59.429787",{"slug":589,"name":589,"fn":590,"description":591,"org":592,"tags":593,"stars":585,"repoUrl":586,"updatedAt":599},"api-not-found","diagnose TanStack Table API errors","Diagnose missing TanStack Table v9 exports, options, state slices, and instance methods. Load before inventing an API when code sees a type error, undefined feature method, absent object key, adapter mismatch, or v8-shaped example.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[594,597,598],{"name":595,"slug":596,"type":15},"Debugging","debugging",{"name":582,"slug":583,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:26:05.418735",{"slug":601,"name":601,"fn":602,"description":603,"org":604,"tags":605,"stars":585,"repoUrl":586,"updatedAt":611},"cell-selection","select rectangular cell ranges in tables","Select rectangular cell ranges with cellSelectionFeature: two-corner range state keyed by row and column id, mousedown\u002Fmouseenter handlers, selection edges, render-order resolution under pinning, and autoResetCellSelection. Load when ranges widen unexpectedly after sorting or column reordering, when a drag re-renders the whole table, or when building copy-to-clipboard from a selection.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[606,607,608],{"name":579,"slug":580,"type":15},{"name":9,"slug":8,"type":15},{"name":609,"slug":610,"type":15},"UI Components","ui-components","2026-07-30T05:25:38.403427",{"slug":613,"name":613,"fn":614,"description":615,"org":616,"tags":617,"stars":585,"repoUrl":586,"updatedAt":626},"client-vs-server","manage TanStack Table data pipelines","Choose client or server ownership for filtering, grouping, sorting, expanding, and pagination in TanStack Table v9. Load for manual* flags, mixed pipelines, server counts, or deciding which dataset each row-model stage receives.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[618,621,622,625],{"name":619,"slug":620,"type":15},"Data Pipeline","data-pipeline",{"name":582,"slug":583,"type":15},{"name":623,"slug":624,"type":15},"Performance","performance",{"name":9,"slug":8,"type":15},"2026-07-30T05:25:45.400104",{"slug":628,"name":628,"fn":629,"description":630,"org":631,"tags":632,"stars":585,"repoUrl":586,"updatedAt":638},"column-faceting","build faceted filter UIs","Build faceted filter UIs with columnFacetingFeature, facetedRowModel, facetedUniqueValues, and facetedMinMaxValues. Load for facet counts, numeric ranges, own-filter exclusion, or server-page facet completeness.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[633,636,637],{"name":634,"slug":635,"type":15},"Data Visualization","data-visualization",{"name":582,"slug":583,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:41.397257",{"slug":640,"name":640,"fn":641,"description":642,"org":643,"tags":644,"stars":585,"repoUrl":586,"updatedAt":648},"column-filtering","implement column filtering in TanStack Table","Filter columns with columnFilteringFeature, filteredRowModel, filterFns, filterMeta, nested-row direction, and manualFiltering. Load for accessor compatibility, controlled filter updaters, fuzzy metadata, or client\u002Fserver ownership.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[645,646,647],{"name":579,"slug":580,"type":15},{"name":582,"slug":583,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:53.391632",{"slug":650,"name":650,"fn":651,"description":652,"org":653,"tags":654,"stars":585,"repoUrl":586,"updatedAt":658},"column-ordering","manage TanStack Table column ordering","Control TanStack Table v9 leaf columnOrder with stable IDs while accounting for pinning regions, visibility, and groupedColumnMode precedence. Load for drag-and-drop columns or rendered order that differs from state.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[655,656,657],{"name":582,"slug":583,"type":15},{"name":9,"slug":8,"type":15},{"name":609,"slug":610,"type":15},"2026-07-30T05:26:03.37801",{"slug":660,"name":660,"fn":661,"description":662,"org":663,"tags":664,"stars":585,"repoUrl":586,"updatedAt":671},"column-pinning","configure column pinning in TanStack Table","Pin columns into logical start, center, and end regions with columnPinningFeature and renderer-owned sticky CSS. Load for RTL offsets, z-index, backgrounds, overflow, widths, gaps, or overlaps.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[665,668,669,670],{"name":666,"slug":667,"type":15},"CSS","css",{"name":582,"slug":583,"type":15},{"name":9,"slug":8,"type":15},{"name":609,"slug":610,"type":15},"2026-07-30T05:25:55.377366",{"slug":673,"name":673,"fn":674,"description":675,"org":676,"tags":677,"stars":585,"repoUrl":586,"updatedAt":681},"column-resizing","implement column resizing in TanStack Table","Wire columnResizingFeature, header.getResizeHandler, resize mode and direction, pointer or touch events, and performant CSS-variable updates. Load when resize state changes but widths do not, or large tables resize slowly.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[678,679,680],{"name":582,"slug":583,"type":15},{"name":9,"slug":8,"type":15},{"name":609,"slug":610,"type":15},"2026-07-30T05:25:51.400011",{"slug":683,"name":683,"fn":684,"description":685,"org":686,"tags":687,"stars":585,"repoUrl":586,"updatedAt":692},"column-sizing","configure column sizing in TanStack Table","Use columnSizingFeature numeric size, minSize, maxSize, getSize, getStart, getAfter, and total-size APIs in table, grid, or flex CSS. Load for auto or percentage misconceptions and sizing\u002Fpinning layout mismatch.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[688,689,690,691],{"name":666,"slug":667,"type":15},{"name":582,"slug":583,"type":15},{"name":9,"slug":8,"type":15},{"name":609,"slug":610,"type":15},"2026-07-30T05:25:48.703799",{"slug":694,"name":694,"fn":695,"description":696,"org":697,"tags":698,"stars":585,"repoUrl":586,"updatedAt":702},"column-visibility","manage column visibility in TanStack Table","Hide columns with columnVisibilityFeature while rendering visibility-aware header, column, and cell collections. Load when hidden columns remain in the DOM, false-versus-absent state is confused, or enableHiding is misunderstood.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[699,700,701],{"name":582,"slug":583,"type":15},{"name":9,"slug":8,"type":15},{"name":609,"slug":610,"type":15},"2026-07-30T05:25:47.367943",{"slug":704,"name":704,"fn":705,"description":706,"org":707,"tags":708,"stars":585,"repoUrl":586,"updatedAt":712},"core","build data grids with TanStack Table","Use TanStack Table v9 as a headless data-grid state and row-processing engine. Load for first-table architecture, stable data and columns, row numbering with getDisplayIndex, semantic rendering, framework adapter choice, or deciding what Table owns versus the renderer.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[709,710,711],{"name":579,"slug":580,"type":15},{"name":582,"slug":583,"type":15},{"name":609,"slug":610,"type":15},"2026-07-30T05:25:52.366295",125,{"items":715,"total":815},[716,734,747,762,775,787,801],{"slug":717,"name":717,"fn":718,"description":719,"org":720,"tags":721,"stars":20,"repoUrl":21,"updatedAt":733},"ai-code-mode","execute sandboxed TypeScript code with LLMs","LLM-generated TypeScript execution in sandboxed environments: createCodeModeTool() with isolate drivers (createNodeIsolateDriver, createQuickJSIsolateDriver, createCloudflareIsolateDriver), codeModeWithSkills() for persistent skill libraries, trust strategies, skill storage (FileSystem, LocalStorage, InMemory, Mongo), client-side execution progress via code_mode:* custom events in useChat.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[722,724,727,730,731],{"name":723,"slug":28,"type":15},"AI SDK",{"name":725,"slug":726,"type":15},"Code Execution","code-execution",{"name":728,"slug":729,"type":15},"Sandboxing","sandboxing",{"name":9,"slug":8,"type":15},{"name":732,"slug":42,"type":15},"TypeScript","2026-07-16T06:04:13.597905",{"slug":735,"name":735,"fn":736,"description":737,"org":738,"tags":739,"stars":20,"repoUrl":21,"updatedAt":746},"ai-core","configure TanStack AI agent features","Entry point for TanStack AI skills. Routes to chat-experience, tool-calling, media-generation, structured-outputs, adapter-configuration, ag-ui-protocol, middleware, locks, custom-backend-integration, and debug-logging, plus the skills shipped by companion packages (@tanstack\u002Fai-persistence, @tanstack\u002Fai-code-mode). Use chat() not streamText(), openaiText() not createOpenAI(), toServerSentEventsResponse() not manual SSE, middleware hooks not onEnd callbacks.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[740,741,743],{"name":17,"slug":18,"type":15},{"name":742,"slug":26,"type":15},"AI",{"name":744,"slug":745,"type":15},"Middleware","middleware","2026-07-30T05:26:10.404565",{"slug":748,"name":749,"fn":750,"description":751,"org":752,"tags":753,"stars":20,"repoUrl":21,"updatedAt":761},"ai-coreadapter-configuration","ai-core\u002Fadapter-configuration","configure AI provider adapters","Provider adapter selection and configuration: openaiText, anthropicText, geminiText, ollamaText, grokText, groqText, openRouterText, bedrockText, openaiCompatible. Per-model type safety with modelOptions, reasoning\u002Fthinking configuration, runtime adapter switching, extendAdapter() for custom models, createModel(). Generic OpenAI-compatible providers (DeepSeek, Together, Fireworks, etc.) via openaiCompatible({ baseURL, apiKey, models }) from @tanstack\u002Fai-openai\u002Fcompatible. API key env vars: OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY\u002FGEMINI_API_KEY, XAI_API_KEY, GROQ_API_KEY, OPENROUTER_API_KEY, OLLAMA_HOST, BEDROCK_API_KEY (or AWS_BEARER_TOKEN_BEDROCK).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[754,755,758,760],{"name":723,"slug":28,"type":15},{"name":756,"slug":757,"type":15},"Configuration","configuration",{"name":759,"slug":34,"type":15},"LLM",{"name":9,"slug":8,"type":15},"2026-07-16T06:04:17.82075",{"slug":763,"name":764,"fn":765,"description":766,"org":767,"tags":768,"stars":20,"repoUrl":21,"updatedAt":774},"ai-coreag-ui-protocol","ai-core\u002Fag-ui-protocol","implement TanStack AI streaming protocol","Server-side AG-UI streaming protocol implementation: StreamChunk event types (RUN_STARTED, TEXT_MESSAGE_START\u002FCONTENT\u002FEND, TOOL_CALL_START\u002FARGS\u002FEND, RUN_FINISHED, RUN_ERROR, STEP_STARTED\u002FSTEP_FINISHED, STATE_SNAPSHOT\u002FDELTA, CUSTOM), toServerSentEventsStream() for SSE format, toHttpStream() for NDJSON format. For backends serving AG-UI events without client packages.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[769,772,773],{"name":770,"slug":771,"type":15},"API Development","api-development",{"name":759,"slug":34,"type":15},{"name":9,"slug":8,"type":15},"2026-07-16T06:04:10.093367",{"slug":776,"name":777,"fn":778,"description":779,"org":780,"tags":781,"stars":20,"repoUrl":21,"updatedAt":786},"ai-corechat-experience","ai-core\u002Fchat-experience","implement chat experiences with TanStack AI","End-to-end chat implementation: server endpoint with chat() and toServerSentEventsResponse(), client-side useChat hook with fetchServerSentEvents(), message rendering with UIMessage parts, multimodal content, thinking\u002Freasoning display. Covers streaming states, connection adapters, and message format conversions. NOT Vercel AI SDK — uses chat() not streamText().\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[782,783,784,785],{"name":770,"slug":771,"type":15},{"name":582,"slug":583,"type":15},{"name":759,"slug":34,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:26:11.505241",{"slug":788,"name":789,"fn":790,"description":791,"org":792,"tags":793,"stars":20,"repoUrl":21,"updatedAt":800},"ai-coreclient-persistence","ai-core\u002Fclient-persistence","implement browser chat persistence for TanStack AI","Browser chat persistence on useChat \u002F ChatClient: localStoragePersistence, sessionStoragePersistence, indexedDBPersistence. Client-authoritative (adapter, full transcript) vs server-authoritative (persistence: true, no client cache). Reload restore, pending interrupts, mid-stream rejoin with delivery durability. Use for SPA reload durability — NOT server history alone. No extra package: the adapters ship in the framework packages.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[794,795,796,799],{"name":742,"slug":26,"type":15},{"name":582,"slug":583,"type":15},{"name":797,"slug":798,"type":15},"Persistence","persistence",{"name":9,"slug":8,"type":15},"2026-07-30T05:53:35.503176",{"slug":802,"name":803,"fn":804,"description":805,"org":806,"tags":807,"stars":20,"repoUrl":21,"updatedAt":814},"ai-corecustom-backend-integration","ai-core\u002Fcustom-backend-integration","integrate custom backends with TanStack AI","Connect useChat to a non-TanStack-AI backend through custom connection adapters. ConnectConnectionAdapter (single async iterable) vs SubscribeConnectionAdapter (separate subscribe\u002Fsend). Customize fetchServerSentEvents() and fetchHttpStream() with auth headers, custom URLs, and request options. Import from framework package, not @tanstack\u002Fai-client.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[808,809,810,813],{"name":742,"slug":26,"type":15},{"name":770,"slug":771,"type":15},{"name":811,"slug":812,"type":15},"Backend","backend",{"name":9,"slug":8,"type":15},"2026-07-17T06:06:39.855351",27]