@@ -106,13 +106,13 @@ const nextConfig: NextConfig = {
106106 permanent : true ,
107107 } ,
108108
109- // /unselected/* tree retired. Most files were either canonical at
110- // root or duplicated content from `integrations/built-in-agent/` .
111- // Per-path redirects below handle the BIA-canonical mappings; the
112- // catch-all at the bottom funnels everything else to root (where
113- // either the canonical version now lives or the soft-default
114- // serves the right framework view) .
115- { source : "/unselected" , destination : "/" , permanent : true } ,
109+ // /unselected/* tree retired. Files moved to integrations/built-in-agent/
110+ // (BIA replaced the old "unselected" slot as the default integration) .
111+ // Per-path entries below cover BIA-canonical mappings (direct moves +
112+ // slug renames from SUBPATH_RENAMES in seo-redirects.ts); the catch-all
113+ // at the bottom routes everything else into /built-in-agent/ to preserve
114+ // SEO equity, since these legacy URLs historically served BIA content .
115+ { source : "/unselected" , destination : "/built-in-agent " , permanent : true } ,
116116 {
117117 source : "/unselected/quickstart" ,
118118 destination : "/built-in-agent/quickstart" ,
@@ -219,12 +219,88 @@ const nextConfig: NextConfig = {
219219 destination : "/" ,
220220 permanent : true ,
221221 } ,
222- // Catch-all: any remaining /unselected/* path lands on its
223- // canonical root equivalent (Cat A files: coding-agents,
224- // custom-look-and-feel/*, frontend-tools, etc.).
222+ // Slug-rename entries (mirror SUBPATH_RENAMES in seo-redirects.ts).
223+ // These MUST come before the catch-all so the rename wins. Each
224+ // historical slug under /unselected/ has been renamed under
225+ // /built-in-agent/; e.g. agentic-chat-ui → prebuilt-components.
226+ {
227+ source : "/unselected/agentic-chat-ui" ,
228+ destination : "/built-in-agent/prebuilt-components" ,
229+ permanent : true ,
230+ } ,
231+ {
232+ source : "/unselected/use-agent-hook" ,
233+ destination : "/built-in-agent/programmatic-control" ,
234+ permanent : true ,
235+ } ,
236+ {
237+ source : "/unselected/frontend-actions" ,
238+ destination : "/built-in-agent/frontend-tools" ,
239+ permanent : true ,
240+ } ,
241+ {
242+ source : "/unselected/vibe-coding-mcp" ,
243+ destination : "/built-in-agent/coding-agents" ,
244+ permanent : true ,
245+ } ,
246+ {
247+ source : "/unselected/generative-ui/agentic" ,
248+ destination :
249+ "/built-in-agent/generative-ui/your-components/display-only" ,
250+ permanent : true ,
251+ } ,
252+ {
253+ source : "/unselected/generative-ui/backend-tools" ,
254+ destination : "/built-in-agent/generative-ui/tool-rendering" ,
255+ permanent : true ,
256+ } ,
257+ {
258+ source : "/unselected/generative-ui/frontend-tools" ,
259+ destination : "/built-in-agent/frontend-tools" ,
260+ permanent : true ,
261+ } ,
262+ {
263+ source : "/unselected/generative-ui/render-only" ,
264+ destination :
265+ "/built-in-agent/generative-ui/your-components/display-only" ,
266+ permanent : true ,
267+ } ,
268+ {
269+ source : "/unselected/generative-ui/tool-based" ,
270+ destination : "/built-in-agent/generative-ui/tool-rendering" ,
271+ permanent : true ,
272+ } ,
273+ {
274+ source : "/unselected/custom-look-and-feel/bring-your-own-components" ,
275+ destination : "/built-in-agent/custom-look-and-feel/slots" ,
276+ permanent : true ,
277+ } ,
278+ {
279+ source : "/unselected/custom-look-and-feel/customize-built-in-ui-components" ,
280+ destination : "/built-in-agent/custom-look-and-feel/slots" ,
281+ permanent : true ,
282+ } ,
283+ {
284+ source : "/unselected/custom-look-and-feel/markdown-rendering" ,
285+ destination : "/built-in-agent/custom-look-and-feel/slots" ,
286+ permanent : true ,
287+ } ,
288+ {
289+ source : "/unselected/guide" ,
290+ destination : "/built-in-agent/guides" ,
291+ permanent : true ,
292+ } ,
293+ {
294+ source : "/unselected/mcp" ,
295+ destination : "/built-in-agent/coding-agents" ,
296+ permanent : true ,
297+ } ,
298+ // Catch-all: route remaining /unselected/* paths into /built-in-agent/.
299+ // BIA is the canonical owner of the legacy unselected/ content tree;
300+ // matches P1×unselected in seo-redirects.ts.
225301 {
226302 source : "/unselected/:path*" ,
227- destination : "/:path*" ,
303+ destination : "/built-in-agent/ :path*" ,
228304 permanent : true ,
229305 } ,
230306
0 commit comments