Files
tkmind_go/documentation/docusaurus.config.ts
T

575 lines
16 KiB
TypeScript
Raw Normal View History

2025-01-24 13:04:43 -08:00
import { themes as prismThemes } from "prism-react-renderer";
import type { Config } from "@docusaurus/types";
import type * as Preset from "@docusaurus/preset-classic";
2025-03-24 14:56:40 +01:00
import tailwindPlugin from "./plugins/tailwind-config.cjs";
2025-01-24 13:04:43 -08:00
// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
2025-01-26 12:38:46 -05:00
require("dotenv").config();
2025-01-24 23:05:43 +01:00
const inkeepApiKey = process.env.INKEEP_API_KEY;
const inkeepIntegrationId = process.env.INKEEP_INTEGRATION_ID;
const inkeepOrgId = process.env.INKEEP_ORG_ID;
2026-05-18 13:38:14 -05:00
type SidebarItem = {
type?: string;
label?: string;
items?: SidebarItem[];
[key: string]: unknown;
};
2025-01-24 13:04:43 -08:00
const config: Config = {
title: "goose | Your open source AI agent",
2026-04-06 15:27:14 -04:00
tagline: "your local AI agent, automating engineering tasks seamlessly",
2025-01-24 13:04:43 -08:00
favicon: "img/favicon.ico",
// Set the production url of your site here
2026-04-06 15:27:14 -04:00
url: "https://goose-docs.ai/",
2025-01-24 13:04:43 -08:00
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
2026-04-06 15:27:14 -04:00
baseUrl: process.env.TARGET_PATH || "/",
2025-01-24 13:04:43 -08:00
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: "aaif-goose", // Usually your GitHub org/user name.
2025-01-24 13:04:43 -08:00
projectName: "goose", // Usually your repo name.
onBrokenLinks: "throw",
2026-04-06 15:27:14 -04:00
2025-11-21 15:37:41 -06:00
markdown: {
hooks: {
onBrokenMarkdownLinks: "warn",
},
},
2025-01-24 13:04:43 -08:00
// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
// may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: "en",
locales: ["en"],
},
2025-12-01 04:44:20 +01:00
headTags: [
{
tagName: "link",
attributes: {
rel: "alternate",
type: "text/plain",
title: "LLM context",
2026-04-06 15:27:14 -04:00
href: "/llms.txt",
2025-12-01 04:44:20 +01:00
},
},
],
2025-01-24 13:04:43 -08:00
presets: [
[
"classic",
{
docs: {
sidebarPath: "./sidebars.ts",
2026-05-18 13:38:14 -05:00
async sidebarItemsGenerator(args) {
const items = await args.defaultSidebarItemsGenerator(args);
const contextEngineeringItems = [
{
type: "doc" as const,
id: "mcp/memory-mcp",
label: "Memory Extension",
},
{
type: "doc" as const,
id: "tutorials/rpi",
label: "Research → Plan → Implement",
},
];
const addItemsToCategory = (
sidebarItems: SidebarItem[],
categoryLabel: string,
extraItems: SidebarItem[],
) => {
for (const item of sidebarItems) {
if (item.type === "category" && item.label === categoryLabel) {
item.items.push(...extraItems);
return true;
}
if (
item.type === "category" &&
addItemsToCategory(item.items, categoryLabel, extraItems)
) {
return true;
}
}
return false;
};
addItemsToCategory(items, "Context Engineering", contextEngineeringItems);
return items;
},
2025-01-24 13:04:43 -08:00
},
blog: {
showReadingTime: true,
readingTime: ({ content, frontMatter, defaultReadingTime }) =>
frontMatter.reading_time ?? defaultReadingTime({ content }),
2025-01-24 13:04:43 -08:00
feedOptions: {
type: ["rss", "atom"],
xslt: true,
},
// Useful options to enforce blogging best practices
onInlineTags: "warn",
onInlineAuthors: "warn",
onUntruncatedBlogPosts: "warn",
2026-04-06 15:27:14 -04:00
blogSidebarCount: "ALL",
2026-04-11 01:26:49 +02:00
postsPerPage: 22,
2025-01-24 13:04:43 -08:00
},
theme: {
2025-03-24 14:56:40 +01:00
customCss: [
"./src/css/custom.css",
"./src/css/extensions.css",
"./src/css/tailwind.css",
],
2025-01-24 13:04:43 -08:00
},
2026-04-06 15:27:14 -04:00
gtag:
process.env.NODE_ENV === "production"
? {
trackingID: "G-ZS5D6SB4ZJ",
anonymizeIP: true,
}
: false,
2025-01-24 13:04:43 -08:00
} satisfies Preset.Options,
],
],
2025-01-28 16:21:27 +01:00
plugins: [
require.resolve("./plugins/custom-webpack.cjs"),
2025-01-28 16:21:27 +01:00
[
"@docusaurus/plugin-client-redirects",
{
redirects: [
{
2026-04-06 15:27:14 -04:00
from: "/docs/getting-started/using-goose-free",
to: "/docs/getting-started/providers#using-goose-for-free",
},
2025-01-28 16:21:27 +01:00
{
2026-04-06 15:27:14 -04:00
from: "/v1/docs/getting-started/providers",
to: "/docs/getting-started/providers",
2025-01-28 16:21:27 +01:00
},
{
2026-04-06 15:27:14 -04:00
from: "/v1/docs/getting-started/installation",
to: "/docs/getting-started/installation",
2025-01-28 16:21:27 +01:00
},
{
2026-04-06 15:27:14 -04:00
from: "/v1/docs/quickstart",
to: "/docs/quickstart",
2025-01-28 16:21:27 +01:00
},
{
2026-04-06 15:27:14 -04:00
from: "/v1/",
to: "/",
2025-01-31 13:22:57 -06:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/custom-extensions",
to: "/docs/tutorials/custom-extensions",
2025-02-05 08:09:47 -06:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs",
to: "/docs/category/getting-started",
2025-03-24 14:56:40 +01:00
},
{
2026-04-06 15:27:14 -04:00
from: "/v1/extensions",
to: "/extensions",
2025-04-22 22:49:26 -04:00
},
{
2026-04-06 15:27:14 -04:00
from: "/v1/extensions/detail/nondeveloper",
to: "/docs/mcp/computer-controller-mcp",
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/managing-goose-sessions",
to: "/docs/guides/sessions/session-management",
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/smart-context-management",
to: "/docs/guides/sessions/smart-context-management",
},
2025-04-22 22:49:26 -04:00
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/share-goose-sessions",
to: "/docs/guides/recipes/session-recipes",
2025-06-28 00:00:06 -04:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/session-recipes",
to: "/docs/guides/recipes/session-recipes",
2025-06-28 00:00:06 -04:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/recipe-reference",
to: "/docs/guides/recipes/recipe-reference",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/recipes/sub-recipes",
to: "/docs/guides/recipes/subrecipes",
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/sub-recipes-in-parallel",
to: "/docs/tutorials/subrecipes-in-parallel",
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/tool-permissions",
to: "/docs/guides/managing-tools/tool-permissions",
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/adjust-tool-output",
to: "/docs/guides/managing-tools/adjust-tool-output",
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/goose-in-docker",
to: "/docs/tutorials/goose-in-docker",
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/multi-model/creating-plans",
2026-05-18 13:38:14 -05:00
to: "/docs/guides/context-engineering/creating-plans",
},
{
from: "/docs/guides/creating-plans",
to: "/docs/guides/context-engineering/creating-plans",
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/config-file",
to: "/docs/guides/config-files",
},
2026-05-18 13:38:14 -05:00
{
from: "/docs/guides/using-persistent-instructions",
to: "/docs/guides/context-engineering/using-persistent-instructions",
},
{
from: "/docs/guides/subagents",
to: "/docs/guides/context-engineering/subagents",
},
{
from: "/docs/guides/prompt-templates",
to: "/docs/guides/context-engineering/prompt-templates",
},
{
from: "/docs/guides/goose-permissions",
to: "/docs/guides/managing-tools/goose-permissions",
},
2025-12-17 11:04:13 -08:00
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/using-goosehints",
to: "/docs/guides/context-engineering/using-goosehints",
2025-12-17 11:04:13 -08:00
},
2026-05-18 13:38:14 -05:00
{
from: "/docs/guides/managing-tools/hooks",
to: "/docs/guides/context-engineering/hooks",
},
{
from: "/docs/guides/managing-tools/plugins",
to: "/docs/guides/context-engineering/plugins",
},
2025-06-22 17:24:55 -05:00
// MCP tutorial redirects - moved from /docs/tutorials/ to /docs/mcp/
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/agentql-mcp",
to: "/docs/mcp/agentql-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/asana-mcp",
to: "/docs/mcp/asana-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/blender-mcp",
to: "/docs/mcp/blender-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/brave-mcp",
to: "/docs/mcp/brave-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/browserbase-mcp",
to: "/docs/mcp/browserbase-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/computer-controller-mcp",
to: "/docs/mcp/computer-controller-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/context7-mcp",
to: "/docs/mcp/context7-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/developer-mcp",
to: "/docs/mcp/developer-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/elevenlabs-mcp",
to: "/docs/mcp/elevenlabs-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/fetch-mcp",
to: "/docs/mcp/fetch-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/figma-mcp",
to: "/docs/mcp/figma-mcp",
2025-06-22 17:24:55 -05:00
},
{
from: ["/docs/tutorials/filesystem-mcp", "/docs/mcp/filesystem-mcp"],
to: "/docs/getting-started/using-extensions",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/github-mcp",
to: "/docs/mcp/github-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/google-drive-mcp",
to: "/docs/mcp/google-drive-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/google-maps-mcp",
to: "/docs/mcp/google-maps-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/jetbrains-mcp",
to: "/docs/mcp/jetbrains-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/knowledge-graph-mcp",
to: "/docs/mcp/knowledge-graph-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/memory-mcp",
to: "/docs/mcp/memory-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/nostrbook-mcp",
to: "/docs/mcp/nostrbook-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/pdf-mcp",
to: "/docs/mcp/pdf-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/pieces-mcp",
to: "/docs/mcp/pieces-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/playwright-mcp",
to: "/docs/mcp/playwright-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/postgres-mcp",
to: "/docs/mcp/postgres-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/puppeteer-mcp",
to: "/docs/mcp/puppeteer-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/reddit-mcp",
to: "/docs/mcp/reddit-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/repomix-mcp",
to: "/docs/mcp/repomix-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/selenium-mcp",
to: "/docs/mcp/selenium-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/speech-mcp",
to: "/docs/mcp/speech-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/square-mcp",
to: "/docs/mcp/square-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/tavily-mcp",
to: "/docs/mcp/tavily-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/tutorial-extension",
to: "/docs/mcp/tutorial-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/vscode-mcp",
to: "/docs/mcp/vs-code-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/tutorials/youtube-transcript",
to: "/docs/mcp/youtube-transcript-mcp",
2025-06-22 17:24:55 -05:00
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/guides/isolated-development-environments",
to: "/docs/tutorials/isolated-development-environments",
},
{
2026-04-06 15:27:14 -04:00
from: "/docs/experimental/subagents",
2026-05-18 13:38:14 -05:00
to: "/docs/guides/context-engineering/subagents",
2026-04-06 15:27:14 -04:00
},
{
from: "/docs/tutorials/lead-worker",
2026-05-18 13:38:14 -05:00
to: "/docs/guides/context-engineering/creating-plans",
},
2025-03-24 14:56:40 +01:00
],
2025-01-28 16:21:27 +01:00
},
],
2025-03-24 14:56:40 +01:00
tailwindPlugin,
2025-11-21 15:37:41 -06:00
[
require.resolve("./plugins/markdown-export.cjs"),
{
enabled: true,
},
],
2025-01-28 16:21:27 +01:00
],
themes: ["@inkeep/docusaurus/searchBar"],
2025-01-24 13:04:43 -08:00
themeConfig: {
// Replace with your project's social card
image: "img/home-banner.png",
colorMode: {
2026-04-06 15:27:14 -04:00
respectPrefersColorScheme: true,
},
2025-01-24 13:04:43 -08:00
navbar: {
title: "",
logo: {
alt: "goose Logo", // TODO: replace logo assets with AAIF branding
2025-01-24 13:04:43 -08:00
src: "img/logo_light.png",
srcDark: "img/logo_dark.png",
},
items: [
{
to: "/docs/quickstart",
label: "Quickstart",
position: "left",
},
{
2025-06-22 17:24:55 -05:00
to: "/docs/category/guides",
2025-01-24 13:04:43 -08:00
position: "left",
label: "Docs",
},
{
2025-02-24 07:47:46 -06:00
to: "/docs/category/tutorials",
2025-01-24 13:04:43 -08:00
position: "left",
2025-02-24 07:47:46 -06:00
label: "Tutorials",
2025-01-24 13:04:43 -08:00
},
2025-05-23 05:17:36 +10:00
{ to: "/blog", label: "Blog", position: "left" },
2025-03-31 07:29:37 -04:00
{
2026-04-06 15:27:14 -04:00
type: "dropdown",
label: "Resources",
position: "left",
2025-05-23 05:17:36 +10:00
items: [
{
2026-04-06 15:27:14 -04:00
to: "/extensions",
label: "Extensions",
2025-05-23 05:17:36 +10:00
},
{
2026-04-06 15:27:14 -04:00
to: "/recipes",
label: "Recipe Cookbook",
},
2025-05-23 05:17:36 +10:00
{
2026-04-06 15:27:14 -04:00
to: "deeplink-generator",
label: "Deeplink Generator",
2025-05-23 05:17:36 +10:00
},
],
2025-03-31 07:29:37 -04:00
},
2025-02-24 07:47:46 -06:00
2025-01-24 13:04:43 -08:00
{
2026-08-01 00:49:19 +02:00
href: "https://discord.gg/n8R5VaWDAn",
2025-01-24 13:04:43 -08:00
label: "Discord",
2025-02-24 07:47:46 -06:00
position: "right",
2025-01-24 13:04:43 -08:00
},
{
href: "https://github.com/aaif-goose/goose",
2025-01-24 13:04:43 -08:00
label: "GitHub",
2025-02-24 07:47:46 -06:00
position: "right",
2025-01-24 13:04:43 -08:00
},
],
},
footer: {
links: [
{
2025-01-25 10:14:27 -06:00
title: "Quick Links",
2025-01-24 13:04:43 -08:00
items: [
{
2025-09-26 23:44:38 -05:00
label: "Install goose",
2025-01-25 10:14:27 -06:00
to: "docs/getting-started/installation",
},
{
label: "Extensions",
2025-03-24 14:56:40 +01:00
to: "/extensions",
2025-01-24 13:04:43 -08:00
},
],
},
{
title: "Community",
items: [
2025-06-16 17:33:53 -04:00
{
label: "Spotlight",
to: "community",
},
2025-01-24 13:04:43 -08:00
{
label: "Discord",
2026-08-01 00:49:19 +02:00
href: "https://discord.gg/n8R5VaWDAn",
2025-01-24 13:04:43 -08:00
},
{
label: "YouTube",
2025-09-07 19:30:48 -05:00
href: "https://www.youtube.com/@goose-oss",
2025-01-24 13:04:43 -08:00
},
{
label: "LinkedIn",
2025-09-07 19:30:48 -05:00
href: "https://www.linkedin.com/company/goose-oss",
2025-01-24 13:04:43 -08:00
},
{
label: "Twitter / X",
2025-09-07 19:30:48 -05:00
href: "https://x.com/goose_oss",
2025-01-24 13:04:43 -08:00
},
{
label: "BlueSky",
2025-02-05 08:46:45 -06:00
href: "https://bsky.app/profile/opensource.block.xyz",
2025-01-24 13:04:43 -08:00
},
2025-02-10 12:13:52 -06:00
{
label: "Nostr",
href: "https://njump.me/opensource@block.xyz",
},
2025-01-24 13:04:43 -08:00
],
},
{
title: "More",
items: [
{
label: "Blog",
to: "/blog",
},
{
label: "GitHub",
href: "https://github.com/aaif-goose/goose",
2025-01-24 13:04:43 -08:00
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} AAIF (Agentic AI Foundation)`,
2025-01-24 13:04:43 -08:00
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.nightOwl,
},
2025-01-24 23:05:43 +01:00
inkeepConfig: {
baseSettings: {
2025-01-26 12:38:46 -05:00
apiKey: inkeepApiKey,
integrationId: inkeepIntegrationId,
organizationId: inkeepOrgId,
primaryBrandColor: "#1E1E1E",
2025-01-24 23:05:43 +01:00
},
2025-01-26 12:38:46 -05:00
},
announcementBar: {
id: 'goose-aaif-announcement', // Increment on new announcements to reuse the bar
content:
'✨ goose has moved to the Agentic AI Foundation (AAIF): <a href="/blog/2026/04/07/goose-moves-to-aaif">Learn more</a>! ✨',
backgroundColor: '#20232a',
textColor: '#fff',
isCloseable: true,
},
2025-01-24 13:04:43 -08:00
} satisfies Preset.ThemeConfig,
};
export default config;