From 7fc355b93554b3d31c900b4582a6cb85b581b624 Mon Sep 17 00:00:00 2001 From: Tom Beckenham <34339192+tombeckenham@users.noreply.github.com> Date: Tue, 8 Sep 2026 09:30:14 +1000 Subject: [PATCH] Add Octane to TanStack AI framework support Advertise Octane on the AI library, map it to @tanstack/ai-octane, and point every AI framework card at getting-started/quick-start. --- src/libraries/libraries.ts | 15 +++++++++------ tests/ai-framework-doc-links.test.ts | 15 +++++++++------ tests/octane-framework-support.test.ts | 11 ++++++++--- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/libraries/libraries.ts b/src/libraries/libraries.ts index 7a0771a55..101330d43 100644 --- a/src/libraries/libraries.ts +++ b/src/libraries/libraries.ts @@ -702,6 +702,7 @@ export const ai: LibrarySlim = { 'svelte', 'preact', 'angular', + 'octane', 'vanilla', ], corePackageName: '@tanstack/ai-client', @@ -717,16 +718,18 @@ export const ai: LibrarySlim = { svelte: '@tanstack/ai-svelte', preact: '@tanstack/ai-preact', angular: '@tanstack/ai-angular', + octane: '@tanstack/ai-octane', vanilla: '@tanstack/ai-client', }, frameworkDocs: { react: 'getting-started/quick-start', - vue: 'getting-started/quick-start-vue', - solid: 'api/ai-solid', - svelte: 'getting-started/quick-start-svelte', - preact: 'api/ai-preact', - angular: 'getting-started/quick-start-angular', - vanilla: 'api/ai-client', + vue: 'getting-started/quick-start', + solid: 'getting-started/quick-start', + svelte: 'getting-started/quick-start', + preact: 'getting-started/quick-start', + angular: 'getting-started/quick-start', + octane: 'getting-started/quick-start', + vanilla: 'getting-started/quick-start', }, sitemap: { includeLandingPage: true, diff --git a/tests/ai-framework-doc-links.test.ts b/tests/ai-framework-doc-links.test.ts index bab7cc194..9d7d28e9e 100644 --- a/tests/ai-framework-doc-links.test.ts +++ b/tests/ai-framework-doc-links.test.ts @@ -13,6 +13,7 @@ const expectedFrameworks: Framework[] = [ 'svelte', 'preact', 'angular', + 'octane', 'vanilla', ] @@ -23,17 +24,19 @@ const expectedPackages: Partial> = { svelte: '@tanstack/ai-svelte', preact: '@tanstack/ai-preact', angular: '@tanstack/ai-angular', + octane: '@tanstack/ai-octane', vanilla: '@tanstack/ai-client', } const expectedDocsPaths: Partial> = { react: 'getting-started/quick-start', - vue: 'getting-started/quick-start-vue', - solid: 'api/ai-solid', - svelte: 'getting-started/quick-start-svelte', - preact: 'api/ai-preact', - angular: 'getting-started/quick-start-angular', - vanilla: 'api/ai-client', + vue: 'getting-started/quick-start', + solid: 'getting-started/quick-start', + svelte: 'getting-started/quick-start', + preact: 'getting-started/quick-start', + angular: 'getting-started/quick-start', + octane: 'getting-started/quick-start', + vanilla: 'getting-started/quick-start', } assert.deepEqual( diff --git a/tests/octane-framework-support.test.ts b/tests/octane-framework-support.test.ts index ea4bc972c..762e269bc 100644 --- a/tests/octane-framework-support.test.ts +++ b/tests/octane-framework-support.test.ts @@ -1,13 +1,13 @@ import assert from 'node:assert/strict' -import { charts, libraries, store, table } from '../src/libraries/libraries' +import { ai, charts, libraries, store, table } from '../src/libraries/libraries' import { getFrameworkPackageName } from '../src/libraries/frameworkSupport' assert.deepEqual( libraries .filter((library) => library.frameworks.includes('octane')) .map((library) => library.id), - ['table', 'charts', 'store'], - 'Table, Charts, and Store advertise Octane support', + ['table', 'charts', 'ai', 'store'], + 'Table, Charts, AI, and Store advertise Octane support', ) assert.equal( @@ -20,6 +20,11 @@ assert.equal( '@tanstack/charts', ) +assert.equal( + getFrameworkPackageName('octane', ai.id, ai), + '@tanstack/ai-octane', +) + assert.equal( getFrameworkPackageName('octane', store.id, store), '@tanstack/octane-store',