* docs: rename to lowercase + drop leftover plans Rename docs in docs/ to lowercase kebab-case for consistency and update all references in CLAUDE.md, CONTRIBUTING.md, CHANGELOG.md, packages/server/CLAUDE.md, and inter-doc links. Drop two leftover design plan docs: - docs/ATTACHMENT_BASED_REVIEW_CONTEXT_PLAN.md - docs/plan-approval-normalization.md * docs: drop stale uppercase entries from case-insensitive rename * feat(website): power /docs from public-docs/ markdown tree Move website docs out of TSX route components and into a root-level public-docs/ directory of plain markdown files with frontmatter (title, description, nav, order). - Add packages/website/src/docs.ts loader using import.meta.glob with ?raw to compile the markdown into the bundle at build time. - Replace the 9 hand-written docs/*.tsx routes with a single $.tsx catch-all that renders any slug via react-markdown. - Drive the docs sidebar nav from frontmatter order/nav. - Auto-discover docs routes in vite.config.ts so the sitemap stays in sync without manual edits. * fix(website): bind dev server to 0.0.0.0 so port collisions trigger fallback `host: "127.0.0.1"` (or unset) lets macOS coexist with another process holding an IPv6 dual-stack `*:8082` socket, so Vite never sees EADDRINUSE and silently binds alongside it. Forcing IPv4 wildcard makes the conflict real, and Vite's default `strictPort: false` falls through to the next free port. * fix(website): restore docs page styling after markdown migration Add a .docs-prose class that mirrors the styling the original docs/*.tsx components hand-rolled (h1/h2/h3 sizes, paragraph/list spacing, link colors, code blocks, callout-style blockquotes). ReactMarkdown was emitting unstyled HTML because the previous wrapper class only had inline-code rules — headings and code blocks fell back to user-agent defaults.
337 lines
9.2 KiB
TypeScript
337 lines
9.2 KiB
TypeScript
/* eslint-disable */
|
|
|
|
// @ts-nocheck
|
|
|
|
// noinspection JSUnusedGlobalSymbols
|
|
|
|
// This file was automatically generated by TanStack Router.
|
|
// You should NOT make any changes in this file as it will be overwritten.
|
|
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
|
|
|
|
import { Route as rootRouteImport } from "./routes/__root";
|
|
import { Route as PrivacyRouteImport } from "./routes/privacy";
|
|
import { Route as OpencodeRouteImport } from "./routes/opencode";
|
|
import { Route as DownloadRouteImport } from "./routes/download";
|
|
import { Route as DocsRouteImport } from "./routes/docs";
|
|
import { Route as CodexRouteImport } from "./routes/codex";
|
|
import { Route as ClaudeCodeRouteImport } from "./routes/claude-code";
|
|
import { Route as ChangelogRouteImport } from "./routes/changelog";
|
|
import { Route as BlogRouteImport } from "./routes/blog";
|
|
import { Route as IndexRouteImport } from "./routes/index";
|
|
import { Route as DocsIndexRouteImport } from "./routes/docs/index";
|
|
import { Route as BlogIndexRouteImport } from "./routes/blog/index";
|
|
import { Route as DocsSplatRouteImport } from "./routes/docs/$";
|
|
import { Route as BlogSplatRouteImport } from "./routes/blog/$";
|
|
|
|
const PrivacyRoute = PrivacyRouteImport.update({
|
|
id: "/privacy",
|
|
path: "/privacy",
|
|
getParentRoute: () => rootRouteImport,
|
|
} as any);
|
|
const OpencodeRoute = OpencodeRouteImport.update({
|
|
id: "/opencode",
|
|
path: "/opencode",
|
|
getParentRoute: () => rootRouteImport,
|
|
} as any);
|
|
const DownloadRoute = DownloadRouteImport.update({
|
|
id: "/download",
|
|
path: "/download",
|
|
getParentRoute: () => rootRouteImport,
|
|
} as any);
|
|
const DocsRoute = DocsRouteImport.update({
|
|
id: "/docs",
|
|
path: "/docs",
|
|
getParentRoute: () => rootRouteImport,
|
|
} as any);
|
|
const CodexRoute = CodexRouteImport.update({
|
|
id: "/codex",
|
|
path: "/codex",
|
|
getParentRoute: () => rootRouteImport,
|
|
} as any);
|
|
const ClaudeCodeRoute = ClaudeCodeRouteImport.update({
|
|
id: "/claude-code",
|
|
path: "/claude-code",
|
|
getParentRoute: () => rootRouteImport,
|
|
} as any);
|
|
const ChangelogRoute = ChangelogRouteImport.update({
|
|
id: "/changelog",
|
|
path: "/changelog",
|
|
getParentRoute: () => rootRouteImport,
|
|
} as any);
|
|
const BlogRoute = BlogRouteImport.update({
|
|
id: "/blog",
|
|
path: "/blog",
|
|
getParentRoute: () => rootRouteImport,
|
|
} as any);
|
|
const IndexRoute = IndexRouteImport.update({
|
|
id: "/",
|
|
path: "/",
|
|
getParentRoute: () => rootRouteImport,
|
|
} as any);
|
|
const DocsIndexRoute = DocsIndexRouteImport.update({
|
|
id: "/",
|
|
path: "/",
|
|
getParentRoute: () => DocsRoute,
|
|
} as any);
|
|
const BlogIndexRoute = BlogIndexRouteImport.update({
|
|
id: "/",
|
|
path: "/",
|
|
getParentRoute: () => BlogRoute,
|
|
} as any);
|
|
const DocsSplatRoute = DocsSplatRouteImport.update({
|
|
id: "/$",
|
|
path: "/$",
|
|
getParentRoute: () => DocsRoute,
|
|
} as any);
|
|
const BlogSplatRoute = BlogSplatRouteImport.update({
|
|
id: "/$",
|
|
path: "/$",
|
|
getParentRoute: () => BlogRoute,
|
|
} as any);
|
|
|
|
export interface FileRoutesByFullPath {
|
|
"/": typeof IndexRoute;
|
|
"/blog": typeof BlogRouteWithChildren;
|
|
"/changelog": typeof ChangelogRoute;
|
|
"/claude-code": typeof ClaudeCodeRoute;
|
|
"/codex": typeof CodexRoute;
|
|
"/docs": typeof DocsRouteWithChildren;
|
|
"/download": typeof DownloadRoute;
|
|
"/opencode": typeof OpencodeRoute;
|
|
"/privacy": typeof PrivacyRoute;
|
|
"/blog/$": typeof BlogSplatRoute;
|
|
"/docs/$": typeof DocsSplatRoute;
|
|
"/blog/": typeof BlogIndexRoute;
|
|
"/docs/": typeof DocsIndexRoute;
|
|
}
|
|
export interface FileRoutesByTo {
|
|
"/": typeof IndexRoute;
|
|
"/changelog": typeof ChangelogRoute;
|
|
"/claude-code": typeof ClaudeCodeRoute;
|
|
"/codex": typeof CodexRoute;
|
|
"/download": typeof DownloadRoute;
|
|
"/opencode": typeof OpencodeRoute;
|
|
"/privacy": typeof PrivacyRoute;
|
|
"/blog/$": typeof BlogSplatRoute;
|
|
"/docs/$": typeof DocsSplatRoute;
|
|
"/blog": typeof BlogIndexRoute;
|
|
"/docs": typeof DocsIndexRoute;
|
|
}
|
|
export interface FileRoutesById {
|
|
__root__: typeof rootRouteImport;
|
|
"/": typeof IndexRoute;
|
|
"/blog": typeof BlogRouteWithChildren;
|
|
"/changelog": typeof ChangelogRoute;
|
|
"/claude-code": typeof ClaudeCodeRoute;
|
|
"/codex": typeof CodexRoute;
|
|
"/docs": typeof DocsRouteWithChildren;
|
|
"/download": typeof DownloadRoute;
|
|
"/opencode": typeof OpencodeRoute;
|
|
"/privacy": typeof PrivacyRoute;
|
|
"/blog/$": typeof BlogSplatRoute;
|
|
"/docs/$": typeof DocsSplatRoute;
|
|
"/blog/": typeof BlogIndexRoute;
|
|
"/docs/": typeof DocsIndexRoute;
|
|
}
|
|
export interface FileRouteTypes {
|
|
fileRoutesByFullPath: FileRoutesByFullPath;
|
|
fullPaths:
|
|
| "/"
|
|
| "/blog"
|
|
| "/changelog"
|
|
| "/claude-code"
|
|
| "/codex"
|
|
| "/docs"
|
|
| "/download"
|
|
| "/opencode"
|
|
| "/privacy"
|
|
| "/blog/$"
|
|
| "/docs/$"
|
|
| "/blog/"
|
|
| "/docs/";
|
|
fileRoutesByTo: FileRoutesByTo;
|
|
to:
|
|
| "/"
|
|
| "/changelog"
|
|
| "/claude-code"
|
|
| "/codex"
|
|
| "/download"
|
|
| "/opencode"
|
|
| "/privacy"
|
|
| "/blog/$"
|
|
| "/docs/$"
|
|
| "/blog"
|
|
| "/docs";
|
|
id:
|
|
| "__root__"
|
|
| "/"
|
|
| "/blog"
|
|
| "/changelog"
|
|
| "/claude-code"
|
|
| "/codex"
|
|
| "/docs"
|
|
| "/download"
|
|
| "/opencode"
|
|
| "/privacy"
|
|
| "/blog/$"
|
|
| "/docs/$"
|
|
| "/blog/"
|
|
| "/docs/";
|
|
fileRoutesById: FileRoutesById;
|
|
}
|
|
export interface RootRouteChildren {
|
|
IndexRoute: typeof IndexRoute;
|
|
BlogRoute: typeof BlogRouteWithChildren;
|
|
ChangelogRoute: typeof ChangelogRoute;
|
|
ClaudeCodeRoute: typeof ClaudeCodeRoute;
|
|
CodexRoute: typeof CodexRoute;
|
|
DocsRoute: typeof DocsRouteWithChildren;
|
|
DownloadRoute: typeof DownloadRoute;
|
|
OpencodeRoute: typeof OpencodeRoute;
|
|
PrivacyRoute: typeof PrivacyRoute;
|
|
}
|
|
|
|
declare module "@tanstack/react-router" {
|
|
interface FileRoutesByPath {
|
|
"/privacy": {
|
|
id: "/privacy";
|
|
path: "/privacy";
|
|
fullPath: "/privacy";
|
|
preLoaderRoute: typeof PrivacyRouteImport;
|
|
parentRoute: typeof rootRouteImport;
|
|
};
|
|
"/opencode": {
|
|
id: "/opencode";
|
|
path: "/opencode";
|
|
fullPath: "/opencode";
|
|
preLoaderRoute: typeof OpencodeRouteImport;
|
|
parentRoute: typeof rootRouteImport;
|
|
};
|
|
"/download": {
|
|
id: "/download";
|
|
path: "/download";
|
|
fullPath: "/download";
|
|
preLoaderRoute: typeof DownloadRouteImport;
|
|
parentRoute: typeof rootRouteImport;
|
|
};
|
|
"/docs": {
|
|
id: "/docs";
|
|
path: "/docs";
|
|
fullPath: "/docs";
|
|
preLoaderRoute: typeof DocsRouteImport;
|
|
parentRoute: typeof rootRouteImport;
|
|
};
|
|
"/codex": {
|
|
id: "/codex";
|
|
path: "/codex";
|
|
fullPath: "/codex";
|
|
preLoaderRoute: typeof CodexRouteImport;
|
|
parentRoute: typeof rootRouteImport;
|
|
};
|
|
"/claude-code": {
|
|
id: "/claude-code";
|
|
path: "/claude-code";
|
|
fullPath: "/claude-code";
|
|
preLoaderRoute: typeof ClaudeCodeRouteImport;
|
|
parentRoute: typeof rootRouteImport;
|
|
};
|
|
"/changelog": {
|
|
id: "/changelog";
|
|
path: "/changelog";
|
|
fullPath: "/changelog";
|
|
preLoaderRoute: typeof ChangelogRouteImport;
|
|
parentRoute: typeof rootRouteImport;
|
|
};
|
|
"/blog": {
|
|
id: "/blog";
|
|
path: "/blog";
|
|
fullPath: "/blog";
|
|
preLoaderRoute: typeof BlogRouteImport;
|
|
parentRoute: typeof rootRouteImport;
|
|
};
|
|
"/": {
|
|
id: "/";
|
|
path: "/";
|
|
fullPath: "/";
|
|
preLoaderRoute: typeof IndexRouteImport;
|
|
parentRoute: typeof rootRouteImport;
|
|
};
|
|
"/docs/": {
|
|
id: "/docs/";
|
|
path: "/";
|
|
fullPath: "/docs/";
|
|
preLoaderRoute: typeof DocsIndexRouteImport;
|
|
parentRoute: typeof DocsRoute;
|
|
};
|
|
"/blog/": {
|
|
id: "/blog/";
|
|
path: "/";
|
|
fullPath: "/blog/";
|
|
preLoaderRoute: typeof BlogIndexRouteImport;
|
|
parentRoute: typeof BlogRoute;
|
|
};
|
|
"/docs/$": {
|
|
id: "/docs/$";
|
|
path: "/$";
|
|
fullPath: "/docs/$";
|
|
preLoaderRoute: typeof DocsSplatRouteImport;
|
|
parentRoute: typeof DocsRoute;
|
|
};
|
|
"/blog/$": {
|
|
id: "/blog/$";
|
|
path: "/$";
|
|
fullPath: "/blog/$";
|
|
preLoaderRoute: typeof BlogSplatRouteImport;
|
|
parentRoute: typeof BlogRoute;
|
|
};
|
|
}
|
|
}
|
|
|
|
interface BlogRouteChildren {
|
|
BlogSplatRoute: typeof BlogSplatRoute;
|
|
BlogIndexRoute: typeof BlogIndexRoute;
|
|
}
|
|
|
|
const BlogRouteChildren: BlogRouteChildren = {
|
|
BlogSplatRoute: BlogSplatRoute,
|
|
BlogIndexRoute: BlogIndexRoute,
|
|
};
|
|
|
|
const BlogRouteWithChildren = BlogRoute._addFileChildren(BlogRouteChildren);
|
|
|
|
interface DocsRouteChildren {
|
|
DocsSplatRoute: typeof DocsSplatRoute;
|
|
DocsIndexRoute: typeof DocsIndexRoute;
|
|
}
|
|
|
|
const DocsRouteChildren: DocsRouteChildren = {
|
|
DocsSplatRoute: DocsSplatRoute,
|
|
DocsIndexRoute: DocsIndexRoute,
|
|
};
|
|
|
|
const DocsRouteWithChildren = DocsRoute._addFileChildren(DocsRouteChildren);
|
|
|
|
const rootRouteChildren: RootRouteChildren = {
|
|
IndexRoute: IndexRoute,
|
|
BlogRoute: BlogRouteWithChildren,
|
|
ChangelogRoute: ChangelogRoute,
|
|
ClaudeCodeRoute: ClaudeCodeRoute,
|
|
CodexRoute: CodexRoute,
|
|
DocsRoute: DocsRouteWithChildren,
|
|
DownloadRoute: DownloadRoute,
|
|
OpencodeRoute: OpencodeRoute,
|
|
PrivacyRoute: PrivacyRoute,
|
|
};
|
|
export const routeTree = rootRouteImport
|
|
._addFileChildren(rootRouteChildren)
|
|
._addFileTypes<FileRouteTypes>();
|
|
|
|
import type { getRouter } from "./router.tsx";
|
|
import type { createStart } from "@tanstack/react-start";
|
|
declare module "@tanstack/react-start" {
|
|
interface Register {
|
|
ssr: true;
|
|
router: Awaited<ReturnType<typeof getRouter>>;
|
|
}
|
|
}
|