From 6a594a2094acfaf4e2e7ef2e38909b1ab5ce18c3 Mon Sep 17 00:00:00 2001 From: Jack Amadeo Date: Mon, 6 Apr 2026 15:27:14 -0400 Subject: [PATCH] fix baseUrl (#8347) --- .github/workflows/pr-website-preview.yml | 2 +- documentation/blog/README.md | 4 +- .../remote-access/mobile-access.md | 2 +- documentation/docs/guides/acp-clients.md | 2 +- .../context-engineering/slash-commands.md | 4 +- .../context-engineering/using-skills.md | 2 +- documentation/docs/guides/creating-plans.md | 6 +- .../docs/guides/managing-tools/code-mode.md | 6 +- .../docs/guides/managing-tools/index.md | 2 +- documentation/docs/guides/mcp-sampling.md | 2 +- documentation/docs/guides/prompt-templates.md | 2 +- documentation/docs/guides/subagents.mdx | 6 +- documentation/docs/mcp/developer-mcp.md | 6 +- documentation/docs/mcp/elevenlabs-mcp.md | 2 +- documentation/docusaurus.config.ts | 307 +++++++++--------- documentation/scripts/serve-static.js | 25 +- documentation/src/components/ContentCard.tsx | 2 +- .../src/components/PlatformExtensionNote.js | 2 +- documentation/src/components/RateLimits.js | 2 +- documentation/src/components/RecipeFields.js | 2 +- documentation/src/pages/skills/detail.tsx | 2 +- .../src/theme/DocItem/Layout/index.tsx | 2 +- documentation/src/utils/mcp-servers.ts | 8 +- documentation/src/utils/skills.ts | 4 +- documentation/static/CNAME | 1 + 25 files changed, 192 insertions(+), 213 deletions(-) create mode 100644 documentation/static/CNAME diff --git a/.github/workflows/pr-website-preview.yml b/.github/workflows/pr-website-preview.yml index 7e81a7aa63..01886641e2 100644 --- a/.github/workflows/pr-website-preview.yml +++ b/.github/workflows/pr-website-preview.yml @@ -34,7 +34,7 @@ jobs: INKEEP_API_KEY: ${{ secrets.INKEEP_API_KEY }} INKEEP_INTEGRATION_ID: ${{ secrets.INKEEP_INTEGRATION_ID }} INKEEP_ORG_ID: ${{ secrets.INKEEP_ORG_ID }} - TARGET_PATH: "/goose/pr-preview/pr-${{ github.event.number }}/" + TARGET_PATH: "/pr-preview/pr-${{ github.event.number }}/" run: | npm install npm run build diff --git a/documentation/blog/README.md b/documentation/blog/README.md index 6adc2de0a4..4971e24131 100644 --- a/documentation/blog/README.md +++ b/documentation/blog/README.md @@ -181,7 +181,7 @@ npm start 3. Open your browser and visit: ``` -http://localhost:3000/goose/blog +http://localhost:3000/blog ``` The development server features: @@ -208,4 +208,4 @@ npm start ``` 3. Verify your frontmatter syntax is correct (no tabs, proper indentation) -4. Check that all image paths are correct relative to your post's directory \ No newline at end of file +4. Check that all image paths are correct relative to your post's directory diff --git a/documentation/docs/experimental/remote-access/mobile-access.md b/documentation/docs/experimental/remote-access/mobile-access.md index 2b806cde1c..99999e9c35 100644 --- a/documentation/docs/experimental/remote-access/mobile-access.md +++ b/documentation/docs/experimental/remote-access/mobile-access.md @@ -72,7 +72,7 @@ import mobileShots from '@site/blog/2025-12-19-goose-mobile-terminal/mobile_shot title: 'goose Mobile Access and Native Terminal Support', description: 'Learn about two new ways to use goose: iOS app for mobile access and native terminal support with seamless session continuity.', thumbnailUrl: mobileShots, - linkUrl: '/goose/blog/2025/12/19/goose-mobile-terminal', + linkUrl: '/blog/2025/12/19/goose-mobile-terminal', date: '2025-12-19', duration: '4 min read' } diff --git a/documentation/docs/guides/acp-clients.md b/documentation/docs/guides/acp-clients.md index 0e7010ff03..473359ee2c 100644 --- a/documentation/docs/guides/acp-clients.md +++ b/documentation/docs/guides/acp-clients.md @@ -247,7 +247,7 @@ import chooseYourIde from '@site/blog/2025-10-24-intro-to-agent-client-protocol- title: 'Intro to Agent Client Protocol (ACP): The Standard for AI Agent-Editor Integration', description: 'Learn how to integrate AI agents like goose directly into your code editor via ACP, eliminating window-switching and vendor lock-in.', thumbnailUrl: chooseYourIde, - linkUrl: '/goose/blog/2025/10/24/intro-to-agent-client-protocol-acp', + linkUrl: '/blog/2025/10/24/intro-to-agent-client-protocol-acp', date: '2025-10-24', duration: '7 min read' } diff --git a/documentation/docs/guides/context-engineering/slash-commands.md b/documentation/docs/guides/context-engineering/slash-commands.md index c949165c9d..602d5167ab 100644 --- a/documentation/docs/guides/context-engineering/slash-commands.md +++ b/documentation/docs/guides/context-engineering/slash-commands.md @@ -98,13 +98,13 @@ import ContentCardCarousel from '@site/src/components/ContentCardCarousel'; type: 'topic', title: 'Recipes', description: 'Check out the Recipes guide for more docs, tools, and resources to help you master goose recipes.', - linkUrl: '/goose/docs/guides/recipes' + linkUrl: '/docs/guides/recipes' }, { type: 'topic', title: 'Research → Plan → Implement Patterns', description: 'See how slash commands make it easy to integrate instructions into interactive RPI workflows.', - linkUrl: '/goose/docs/tutorials/rpi' + linkUrl: '/docs/tutorials/rpi' } ]} /> diff --git a/documentation/docs/guides/context-engineering/using-skills.md b/documentation/docs/guides/context-engineering/using-skills.md index 1a874d4ab8..6c5f80ea7b 100644 --- a/documentation/docs/guides/context-engineering/using-skills.md +++ b/documentation/docs/guides/context-engineering/using-skills.md @@ -278,7 +278,7 @@ import skillsvsmcp from '@site/blog/2025-12-22-agent-skills-vs-mcp/skills-vs-mcp title: 'Did Skills Kill MCP?', description: 'An overview of Agent Skills vs MCP', thumbnailUrl: skillsvsmcp, - linkUrl: '/goose/blog/2025/12/22/agent-skills-vs-mcp', + linkUrl: '/blog/2025/12/22/agent-skills-vs-mcp', date: '2025-12-22', duration: '4 min read' } diff --git a/documentation/docs/guides/creating-plans.md b/documentation/docs/guides/creating-plans.md index c2b8d3c875..a01bc9aa0c 100644 --- a/documentation/docs/guides/creating-plans.md +++ b/documentation/docs/guides/creating-plans.md @@ -334,7 +334,7 @@ import blogBanner from '@site/blog/2025-12-19-does-your-ai-agent-need-a-plan/blo title: 'Does Your AI Agent Need a Plan?', description: 'Knowing when and how to plan with an AI agent can produce better results.', thumbnailUrl: blogBanner, - linkUrl: '/goose/blog/2025/12/19/does-your-ai-agent-need-a-plan', + linkUrl: '/blog/2025/12/19/does-your-ai-agent-need-a-plan', date: '2025-12-19', duration: '7 min read' }, @@ -342,7 +342,7 @@ import blogBanner from '@site/blog/2025-12-19-does-your-ai-agent-need-a-plan/blo type: 'topic', title: 'Planning Complex Tasks', description: 'Learn how to use the Plan feature to break down complex tasks into manageable, executable steps.', - linkUrl: '/goose/docs/tutorials/plan-feature-devcontainer-setup', + linkUrl: '/docs/tutorials/plan-feature-devcontainer-setup', } ]} -/> \ No newline at end of file +/> diff --git a/documentation/docs/guides/managing-tools/code-mode.md b/documentation/docs/guides/managing-tools/code-mode.md index 8d8a373aac..c29480b12f 100644 --- a/documentation/docs/guides/managing-tools/code-mode.md +++ b/documentation/docs/guides/managing-tools/code-mode.md @@ -56,7 +56,7 @@ import notMcpReplacement from '@site/blog/2025-12-21-code-mode-doesnt-replace-mc title: 'Code Mode for MCP', description: 'Learn about the code execution approach to MCP tool calling.', thumbnailUrl: gooseCodeMode, - linkUrl: '/goose/blog/2025/12/15/code-mode-mcp', + linkUrl: '/blog/2025/12/15/code-mode-mcp', date: '2025-12-15', duration: '5 min read' }, @@ -65,9 +65,9 @@ import notMcpReplacement from '@site/blog/2025-12-21-code-mode-doesnt-replace-mc title: 'Code Mode Doesn\'t Replace MCP', description: 'Understanding how Code Mode and MCP work together.', thumbnailUrl: notMcpReplacement, - linkUrl: '/goose/blog/2025/12/21/code-mode-doesnt-replace-mcp', + linkUrl: '/blog/2025/12/21/code-mode-doesnt-replace-mcp', date: '2025-12-21', duration: '8 min read' } ]} -/> \ No newline at end of file +/> diff --git a/documentation/docs/guides/managing-tools/index.md b/documentation/docs/guides/managing-tools/index.md index 9085badfa6..0f18f93d15 100644 --- a/documentation/docs/guides/managing-tools/index.md +++ b/documentation/docs/guides/managing-tools/index.md @@ -9,7 +9,7 @@ import styles from '@site/src/components/Card/styles.module.css';

Managing Tools

- Tools are specific functions within extensions that give goose its capabilities. Learn to control and customize how these tools work for you. + Tools are specific functions within extensions that give goose its capabilities. Learn to control and customize how these tools work for you.

diff --git a/documentation/docs/guides/mcp-sampling.md b/documentation/docs/guides/mcp-sampling.md index ec7dd15d54..3459792145 100644 --- a/documentation/docs/guides/mcp-sampling.md +++ b/documentation/docs/guides/mcp-sampling.md @@ -93,7 +93,7 @@ import mcpSampling from '@site/blog/2025-12-04-mcp-sampling/mcp-sampling.png'; title: 'MCP Sampling: When Your Tools Need to Think', description: 'Learn how MCP Sampling lets your tools call the AI instead of the other way around.', thumbnailUrl: mcpSampling, - linkUrl: '/goose/blog/2025/12/04/mcp-sampling', + linkUrl: '/blog/2025/12/04/mcp-sampling', date: '2025-12-04', duration: '6 min read' } diff --git a/documentation/docs/guides/prompt-templates.md b/documentation/docs/guides/prompt-templates.md index b0f8378e37..94cc4d724b 100644 --- a/documentation/docs/guides/prompt-templates.md +++ b/documentation/docs/guides/prompt-templates.md @@ -136,7 +136,7 @@ import promptBanner from '@site/blog/2025-03-19-better-ai-prompting/prompt.png'; title: 'AI Prompting 101: How to Get the Best Responses from Your AI Agent', description: 'Learn different prompting styles—from instruction-based to chain-of-thought—and discover which approach works best for your needs.', thumbnailUrl: promptBanner, - linkUrl: '/goose/blog/2025/03/19/better-ai-prompting', + linkUrl: '/blog/2025/03/19/better-ai-prompting', date: '2025-03-19', duration: '8 min read' } diff --git a/documentation/docs/guides/subagents.mdx b/documentation/docs/guides/subagents.mdx index 3affebd962..2b67a874c9 100644 --- a/documentation/docs/guides/subagents.mdx +++ b/documentation/docs/guides/subagents.mdx @@ -358,7 +358,7 @@ import agentCoordination from '@site/blog/2025-08-14-agent-coordination-patterns title: 'Agents, Subagents, and Multi Agents: What They Are and When to Use Them', description: 'Compare agents, subagents, and multi agents in AI workflows. Learn how they work together and practical scenarios for each approach.', thumbnailUrl: agentCoordination, - linkUrl: '/goose/blog/2025/08/14/agent-coordination-patterns', + linkUrl: '/blog/2025/08/14/agent-coordination-patterns', date: '2025-08-14', duration: '4 min read' }, @@ -376,7 +376,7 @@ import agentCoordination from '@site/blog/2025-08-14-agent-coordination-patterns title: 'Tutorial: Using Subagents', description: 'Spin up a team of subagents to build a fully functional app', thumbnailUrl: 'https://block.github.io/goose/assets/images/tutorial-using-subagents-ef265627024db73e73d80e5799ed0c1a.png', - linkUrl: '/goose/docs/tutorials/subagents', + linkUrl: '/docs/tutorials/subagents', date: '2026-01-27', duration: '1 hour' }, @@ -403,7 +403,7 @@ import agentCoordination from '@site/blog/2025-08-14-agent-coordination-patterns title: 'How to Choose Between Subagents and Subrecipes in goose', description: 'Detailed guide to subagents and subrecipes in goose. Compare reusability, setup complexity, and get practical advice for choosing the right approach.', thumbnailUrl: subagentsVsSubrecipes, - linkUrl: '/goose/blog/2025/09/26/subagents-vs-subrecipes', + linkUrl: '/blog/2025/09/26/subagents-vs-subrecipes', date: '2025-09-26', duration: '6 min read' } diff --git a/documentation/docs/mcp/developer-mcp.md b/documentation/docs/mcp/developer-mcp.md index 291ea779f2..1fb49ff900 100644 --- a/documentation/docs/mcp/developer-mcp.md +++ b/documentation/docs/mcp/developer-mcp.md @@ -251,13 +251,13 @@ import ContentCardCarousel from '@site/src/components/ContentCardCarousel'; type: 'topic', title: 'Enhanced Code Editing with AI Models', description: 'Use AI models to intelligently apply code changes', - linkUrl: '/goose/docs/guides/enhanced-code-editing' + linkUrl: '/docs/guides/enhanced-code-editing' }, { type: 'topic', title: 'Codebase Analysis', description: 'Understand codebases with semantic analysis and call graphs', - linkUrl: '/goose/docs/guides/codebase-analysis' + linkUrl: '/docs/guides/codebase-analysis' } ]} -/> +/> diff --git a/documentation/docs/mcp/elevenlabs-mcp.md b/documentation/docs/mcp/elevenlabs-mcp.md index 7878c34e91..64a413619b 100644 --- a/documentation/docs/mcp/elevenlabs-mcp.md +++ b/documentation/docs/mcp/elevenlabs-mcp.md @@ -124,7 +124,7 @@ The script has been created and read aloud using the specified voices and style. Press play and hear it for yourself! 🔊 diff --git a/documentation/docusaurus.config.ts b/documentation/docusaurus.config.ts index 3e9916da71..cf1aa36045 100644 --- a/documentation/docusaurus.config.ts +++ b/documentation/docusaurus.config.ts @@ -13,15 +13,14 @@ const inkeepOrgId = process.env.INKEEP_ORG_ID; const config: Config = { title: "goose", - tagline: - "your local AI agent, automating engineering tasks seamlessly", + tagline: "your local AI agent, automating engineering tasks seamlessly", favicon: "img/favicon.ico", // Set the production url of your site here - url: "https://block.github.io/", + url: "https://goose-docs.ai/", // Set the // pathname under which your site is served // For GitHub pages deployment, it is often '//' - baseUrl: process.env.TARGET_PATH || "/goose/", + baseUrl: process.env.TARGET_PATH || "/", // GitHub pages deployment config. // If you aren't using GitHub pages, you don't need these. @@ -29,7 +28,7 @@ const config: Config = { projectName: "goose", // Usually your repo name. onBrokenLinks: "throw", - + markdown: { hooks: { onBrokenMarkdownLinks: "warn", @@ -44,7 +43,6 @@ const config: Config = { locales: ["en"], }, - headTags: [ { tagName: "link", @@ -52,7 +50,7 @@ const config: Config = { rel: "alternate", type: "text/plain", title: "LLM context", - href: "/goose/llms.txt", + href: "/llms.txt", }, }, ], @@ -76,7 +74,7 @@ const config: Config = { onInlineTags: "warn", onInlineAuthors: "warn", onUntruncatedBlogPosts: "warn", - blogSidebarCount: 'ALL' + blogSidebarCount: "ALL", }, theme: { customCss: [ @@ -85,10 +83,13 @@ const config: Config = { "./src/css/tailwind.css", ], }, - gtag: process.env.NODE_ENV === 'production' ? { - trackingID: 'G-ZS5D6SB4ZJ', - anonymizeIP: true, - } : false, + gtag: + process.env.NODE_ENV === "production" + ? { + trackingID: "G-ZS5D6SB4ZJ", + anonymizeIP: true, + } + : false, } satisfies Preset.Options, ], ], @@ -99,242 +100,242 @@ const config: Config = { { redirects: [ { - from: '/docs/getting-started/using-goose-free', - to: '/docs/getting-started/providers#using-goose-for-free' + from: "/docs/getting-started/using-goose-free", + to: "/docs/getting-started/providers#using-goose-for-free", }, { - from: '/v1/docs/getting-started/providers', - to: '/docs/getting-started/providers' + from: "/v1/docs/getting-started/providers", + to: "/docs/getting-started/providers", }, { - from: '/v1/docs/getting-started/installation', - to: '/docs/getting-started/installation' + from: "/v1/docs/getting-started/installation", + to: "/docs/getting-started/installation", }, { - from: '/v1/docs/quickstart', - to: '/docs/quickstart' + from: "/v1/docs/quickstart", + to: "/docs/quickstart", }, { - from: '/v1/', - to: '/' + from: "/v1/", + to: "/", }, { - from: '/docs/guides/custom-extensions', - to: '/docs/tutorials/custom-extensions' + from: "/docs/guides/custom-extensions", + to: "/docs/tutorials/custom-extensions", }, { - from: '/docs', - to: '/docs/category/getting-started' + from: "/docs", + to: "/docs/category/getting-started", }, { - from: '/v1/extensions', - to: '/extensions' + from: "/v1/extensions", + to: "/extensions", }, { - from: '/v1/extensions/detail/nondeveloper', - to: '/docs/mcp/computer-controller-mcp' + from: "/v1/extensions/detail/nondeveloper", + to: "/docs/mcp/computer-controller-mcp", }, { - from: '/docs/guides/managing-goose-sessions', - to: '/docs/guides/sessions/session-management' + from: "/docs/guides/managing-goose-sessions", + to: "/docs/guides/sessions/session-management", }, { - from: '/docs/guides/smart-context-management', - to: '/docs/guides/sessions/smart-context-management' + from: "/docs/guides/smart-context-management", + to: "/docs/guides/sessions/smart-context-management", }, { - from: '/docs/guides/share-goose-sessions', - to: '/docs/guides/recipes/session-recipes' + from: "/docs/guides/share-goose-sessions", + to: "/docs/guides/recipes/session-recipes", }, { - from: '/docs/guides/session-recipes', - to: '/docs/guides/recipes/session-recipes' + from: "/docs/guides/session-recipes", + to: "/docs/guides/recipes/session-recipes", }, { - from: '/docs/guides/recipe-reference', - to: '/docs/guides/recipes/recipe-reference' + from: "/docs/guides/recipe-reference", + to: "/docs/guides/recipes/recipe-reference", }, { - from: '/docs/guides/recipes/sub-recipes', - to: '/docs/guides/recipes/subrecipes' + from: "/docs/guides/recipes/sub-recipes", + to: "/docs/guides/recipes/subrecipes", }, { - from: '/docs/tutorials/sub-recipes-in-parallel', - to: '/docs/tutorials/subrecipes-in-parallel' + from: "/docs/tutorials/sub-recipes-in-parallel", + to: "/docs/tutorials/subrecipes-in-parallel", }, { - from: '/docs/guides/tool-permissions', - to: '/docs/guides/managing-tools/tool-permissions' + from: "/docs/guides/tool-permissions", + to: "/docs/guides/managing-tools/tool-permissions", }, { - from: '/docs/guides/adjust-tool-output', - to: '/docs/guides/managing-tools/adjust-tool-output' + from: "/docs/guides/adjust-tool-output", + to: "/docs/guides/managing-tools/adjust-tool-output", }, { - from: '/docs/guides/benchmarking', - to: '/docs/tutorials/benchmarking' + from: "/docs/guides/benchmarking", + to: "/docs/tutorials/benchmarking", }, { - from: '/docs/guides/goose-in-docker', - to: '/docs/tutorials/goose-in-docker' + from: "/docs/guides/goose-in-docker", + to: "/docs/tutorials/goose-in-docker", }, { - from: '/docs/guides/multi-model/creating-plans', - to: '/docs/guides/creating-plans' + from: "/docs/guides/multi-model/creating-plans", + to: "/docs/guides/creating-plans", }, { - from: '/docs/guides/config-file', - to: '/docs/guides/config-files', + from: "/docs/guides/config-file", + to: "/docs/guides/config-files", }, { - from: '/docs/guides/using-goosehints', - to: '/docs/guides/context-engineering/using-goosehints', + from: "/docs/guides/using-goosehints", + to: "/docs/guides/context-engineering/using-goosehints", }, // MCP tutorial redirects - moved from /docs/tutorials/ to /docs/mcp/ { - from: '/docs/tutorials/agentql-mcp', - to: '/docs/mcp/agentql-mcp' + from: "/docs/tutorials/agentql-mcp", + to: "/docs/mcp/agentql-mcp", }, { - from: '/docs/tutorials/asana-mcp', - to: '/docs/mcp/asana-mcp' + from: "/docs/tutorials/asana-mcp", + to: "/docs/mcp/asana-mcp", }, { - from: '/docs/tutorials/blender-mcp', - to: '/docs/mcp/blender-mcp' + from: "/docs/tutorials/blender-mcp", + to: "/docs/mcp/blender-mcp", }, { - from: '/docs/tutorials/brave-mcp', - to: '/docs/mcp/brave-mcp' + from: "/docs/tutorials/brave-mcp", + to: "/docs/mcp/brave-mcp", }, { - from: '/docs/tutorials/browserbase-mcp', - to: '/docs/mcp/browserbase-mcp' + from: "/docs/tutorials/browserbase-mcp", + to: "/docs/mcp/browserbase-mcp", }, { - from: '/docs/tutorials/computer-controller-mcp', - to: '/docs/mcp/computer-controller-mcp' + from: "/docs/tutorials/computer-controller-mcp", + to: "/docs/mcp/computer-controller-mcp", }, { - from: '/docs/tutorials/context7-mcp', - to: '/docs/mcp/context7-mcp' + from: "/docs/tutorials/context7-mcp", + to: "/docs/mcp/context7-mcp", }, { - from: '/docs/tutorials/developer-mcp', - to: '/docs/mcp/developer-mcp' + from: "/docs/tutorials/developer-mcp", + to: "/docs/mcp/developer-mcp", }, { - from: '/docs/tutorials/elevenlabs-mcp', - to: '/docs/mcp/elevenlabs-mcp' + from: "/docs/tutorials/elevenlabs-mcp", + to: "/docs/mcp/elevenlabs-mcp", }, { - from: '/docs/tutorials/fetch-mcp', - to: '/docs/mcp/fetch-mcp' + from: "/docs/tutorials/fetch-mcp", + to: "/docs/mcp/fetch-mcp", }, { - from: '/docs/tutorials/figma-mcp', - to: '/docs/mcp/figma-mcp' + from: "/docs/tutorials/figma-mcp", + to: "/docs/mcp/figma-mcp", }, { - from: '/docs/tutorials/filesystem-mcp', - to: '/docs/mcp/filesystem-mcp' + from: "/docs/tutorials/filesystem-mcp", + to: "/docs/mcp/filesystem-mcp", }, { - from: '/docs/tutorials/github-mcp', - to: '/docs/mcp/github-mcp' + from: "/docs/tutorials/github-mcp", + to: "/docs/mcp/github-mcp", }, { - from: '/docs/tutorials/google-drive-mcp', - to: '/docs/mcp/google-drive-mcp' + from: "/docs/tutorials/google-drive-mcp", + to: "/docs/mcp/google-drive-mcp", }, { - from: '/docs/tutorials/google-maps-mcp', - to: '/docs/mcp/google-maps-mcp' + from: "/docs/tutorials/google-maps-mcp", + to: "/docs/mcp/google-maps-mcp", }, { - from: '/docs/tutorials/jetbrains-mcp', - to: '/docs/mcp/jetbrains-mcp' + from: "/docs/tutorials/jetbrains-mcp", + to: "/docs/mcp/jetbrains-mcp", }, { - from: '/docs/tutorials/knowledge-graph-mcp', - to: '/docs/mcp/knowledge-graph-mcp' + from: "/docs/tutorials/knowledge-graph-mcp", + to: "/docs/mcp/knowledge-graph-mcp", }, { - from: '/docs/tutorials/mbot-mcp', - to: '/docs/mcp/mbot-mcp' + from: "/docs/tutorials/mbot-mcp", + to: "/docs/mcp/mbot-mcp", }, { - from: '/docs/tutorials/memory-mcp', - to: '/docs/mcp/memory-mcp' + from: "/docs/tutorials/memory-mcp", + to: "/docs/mcp/memory-mcp", }, { - from: '/docs/tutorials/nostrbook-mcp', - to: '/docs/mcp/nostrbook-mcp' + from: "/docs/tutorials/nostrbook-mcp", + to: "/docs/mcp/nostrbook-mcp", }, { - from: '/docs/tutorials/pdf-mcp', - to: '/docs/mcp/pdf-mcp' + from: "/docs/tutorials/pdf-mcp", + to: "/docs/mcp/pdf-mcp", }, { - from: '/docs/tutorials/pieces-mcp', - to: '/docs/mcp/pieces-mcp' + from: "/docs/tutorials/pieces-mcp", + to: "/docs/mcp/pieces-mcp", }, { - from: '/docs/tutorials/playwright-mcp', - to: '/docs/mcp/playwright-mcp' + from: "/docs/tutorials/playwright-mcp", + to: "/docs/mcp/playwright-mcp", }, { - from: '/docs/tutorials/postgres-mcp', - to: '/docs/mcp/postgres-mcp' + from: "/docs/tutorials/postgres-mcp", + to: "/docs/mcp/postgres-mcp", }, { - from: '/docs/tutorials/puppeteer-mcp', - to: '/docs/mcp/puppeteer-mcp' + from: "/docs/tutorials/puppeteer-mcp", + to: "/docs/mcp/puppeteer-mcp", }, { - from: '/docs/tutorials/reddit-mcp', - to: '/docs/mcp/reddit-mcp' + from: "/docs/tutorials/reddit-mcp", + to: "/docs/mcp/reddit-mcp", }, { - from: '/docs/tutorials/repomix-mcp', - to: '/docs/mcp/repomix-mcp' + from: "/docs/tutorials/repomix-mcp", + to: "/docs/mcp/repomix-mcp", }, { - from: '/docs/tutorials/selenium-mcp', - to: '/docs/mcp/selenium-mcp' + from: "/docs/tutorials/selenium-mcp", + to: "/docs/mcp/selenium-mcp", }, { - from: '/docs/tutorials/speech-mcp', - to: '/docs/mcp/speech-mcp' + from: "/docs/tutorials/speech-mcp", + to: "/docs/mcp/speech-mcp", }, { - from: '/docs/tutorials/square-mcp', - to: '/docs/mcp/square-mcp' + from: "/docs/tutorials/square-mcp", + to: "/docs/mcp/square-mcp", }, { - from: '/docs/tutorials/tavily-mcp', - to: '/docs/mcp/tavily-mcp' + from: "/docs/tutorials/tavily-mcp", + to: "/docs/mcp/tavily-mcp", }, { - from: '/docs/tutorials/tutorial-extension', - to: '/docs/mcp/tutorial-mcp' + from: "/docs/tutorials/tutorial-extension", + to: "/docs/mcp/tutorial-mcp", }, { - from: '/docs/tutorials/vscode-mcp', - to: '/docs/mcp/vs-code-mcp' + from: "/docs/tutorials/vscode-mcp", + to: "/docs/mcp/vs-code-mcp", }, { - from: '/docs/tutorials/youtube-transcript', - to: '/docs/mcp/youtube-transcript-mcp' + from: "/docs/tutorials/youtube-transcript", + to: "/docs/mcp/youtube-transcript-mcp", }, { - from: '/docs/guides/isolated-development-environments', - to: '/docs/tutorials/isolated-development-environments' + from: "/docs/guides/isolated-development-environments", + to: "/docs/tutorials/isolated-development-environments", }, { - from: '/docs/experimental/subagents', - to: '/docs/guides/subagents' - } + from: "/docs/experimental/subagents", + to: "/docs/guides/subagents", + }, ], }, ], @@ -351,7 +352,7 @@ const config: Config = { // Replace with your project's social card image: "img/home-banner.png", colorMode: { - respectPrefersColorScheme: true + respectPrefersColorScheme: true, }, navbar: { title: "", @@ -383,33 +384,33 @@ const config: Config = { }, { to: "/blog", label: "Blog", position: "left" }, { - type: 'dropdown', - label: 'Resources', - position: 'left', + type: "dropdown", + label: "Resources", + position: "left", items: [ { - to: '/extensions', - label: 'Extensions', + to: "/extensions", + label: "Extensions", }, { - to: '/skills', - label: 'Skills Marketplace', + to: "/skills", + label: "Skills Marketplace", }, { - to: '/recipe-generator', - label: 'Recipe Generator', + to: "/recipe-generator", + label: "Recipe Generator", }, { - to: '/prompt-library', - label: 'Prompt Library', + to: "/prompt-library", + label: "Prompt Library", }, { - to: '/recipes', - label: 'Recipe Cookbook', + to: "/recipes", + label: "Recipe Cookbook", }, { - to: 'deeplink-generator', - label: 'Deeplink Generator', + to: "deeplink-generator", + label: "Deeplink Generator", }, ], }, @@ -503,8 +504,7 @@ const config: Config = { }, aiChatSettings: { chatSubjectName: "goose", - botAvatarSrcUrl: - "", + botAvatarSrcUrl: "", getHelpCallToActions: [ { name: "GitHub", @@ -517,16 +517,7 @@ const config: Config = { quickQuestions: ["What is goose?"], }, }, - // announcementBar: { - // id: 'goose-grants', - // content: - // '✨ goose grant program now open: apply now! ✨', - // backgroundColor: '#20232a', - // textColor: '#fff', - // isCloseable: false, - // }, } satisfies Preset.ThemeConfig, }; - export default config; diff --git a/documentation/scripts/serve-static.js b/documentation/scripts/serve-static.js index ced17b3a72..2835205849 100644 --- a/documentation/scripts/serve-static.js +++ b/documentation/scripts/serve-static.js @@ -23,29 +23,16 @@ const serve = serveStatic(buildDir, { }); const server = http.createServer((req, res) => { - // Handle requests to /goose/ by serving from the build directory - if (req.url.startsWith('/goose/')) { - // Strip /goose/ prefix and serve the file - req.url = req.url.substring(6); // Remove '/goose' - serve(req, res, () => { - res.statusCode = 404; - res.end('Not found'); - }); - } else if (req.url === '/') { - // Redirect root to /goose/ - res.writeHead(302, { Location: '/goose/' }); - res.end(); - } else { - // For any other path, return 404 + serve(req, res, () => { res.statusCode = 404; - res.end('Not found - try /goose/'); - } + res.end('Not found'); + }); }); server.listen(port, () => { console.log(`\n🚀 Static file server running at http://localhost:${port}`); - console.log(`\n🏠 Homepage: http://localhost:${port}/goose/`); + console.log(`\n🏠 Homepage: http://localhost:${port}/`); console.log(`\n📝 Test markdown exports:`); - console.log(` http://localhost:${port}/goose/docs/quickstart.md`); - console.log(` http://localhost:${port}/goose/docs/getting-started/installation.md\n`); + console.log(` http://localhost:${port}/docs/quickstart.md`); + console.log(` http://localhost:${port}/docs/getting-started/installation.md\n`); }); diff --git a/documentation/src/components/ContentCard.tsx b/documentation/src/components/ContentCard.tsx index 62c5c5ac34..7db86a0952 100644 --- a/documentation/src/components/ContentCard.tsx +++ b/documentation/src/components/ContentCard.tsx @@ -245,7 +245,7 @@ export default function ContentCard({ ) : ( Goose logo placeholder )} diff --git a/documentation/src/components/PlatformExtensionNote.js b/documentation/src/components/PlatformExtensionNote.js index 4b23effcd6..74e7ddb172 100644 --- a/documentation/src/components/PlatformExtensionNote.js +++ b/documentation/src/components/PlatformExtensionNote.js @@ -4,7 +4,7 @@ import Admonition from '@theme/Admonition'; export const PlatformExtensionNote = ({ defaultEnabled = true }) => { return ( -

This is a built-in platform extension{defaultEnabled && " that's enabled by default for new users"}. Platform extensions provide core functionality and are used within goose just like external MCP server extensions.

+

This is a built-in platform extension{defaultEnabled && " that's enabled by default for new users"}. Platform extensions provide core functionality and are used within goose just like external MCP server extensions.

); }; diff --git a/documentation/src/components/RateLimits.js b/documentation/src/components/RateLimits.js index 6a28b14197..02f8486747 100644 --- a/documentation/src/components/RateLimits.js +++ b/documentation/src/components/RateLimits.js @@ -18,7 +18,7 @@ export const RateLimits = () => {
Some providers also have rate limits on API usage, which can affect your experience. Check out our{" "} - + Handling Rate Limits {" "} guide to learn how to efficiently manage these limits while using goose. diff --git a/documentation/src/components/RecipeFields.js b/documentation/src/components/RecipeFields.js index 89866c96a5..bbc7b7d0dc 100644 --- a/documentation/src/components/RecipeFields.js +++ b/documentation/src/components/RecipeFields.js @@ -12,7 +12,7 @@ const RecipeFields = () => {
  • Parameters to accept dynamic values
  • Model and provider to specify which provider and model the recipe should use
  • Extensions to select which tools are available
  • -
  • Response JSON schema for structured output in automations
  • +
  • Response JSON schema for structured output in automations
  • Subrecipes to attach existing subrecipes or create a new one inline
  • diff --git a/documentation/src/pages/skills/detail.tsx b/documentation/src/pages/skills/detail.tsx index fcde0c8bd8..1f5ba03ee4 100644 --- a/documentation/src/pages/skills/detail.tsx +++ b/documentation/src/pages/skills/detail.tsx @@ -71,7 +71,7 @@ export default function SkillDetailPage(): JSX.Element { const handleDownload = () => { if (skill) { - const zipUrl = `/goose/skills-data-zips/${skill.id}.zip`; + const zipUrl = `/skills-data-zips/${skill.id}.zip`; const link = document.createElement('a'); link.href = zipUrl; link.download = `${skill.id}.zip`; diff --git a/documentation/src/theme/DocItem/Layout/index.tsx b/documentation/src/theme/DocItem/Layout/index.tsx index 812aa3767a..affd1f5116 100644 --- a/documentation/src/theme/DocItem/Layout/index.tsx +++ b/documentation/src/theme/DocItem/Layout/index.tsx @@ -435,7 +435,7 @@ function PageActionsMenu(): ReactNode { setDropdownOpen(false)} > diff --git a/documentation/src/utils/mcp-servers.ts b/documentation/src/utils/mcp-servers.ts index e7f9b26366..46c208c333 100644 --- a/documentation/src/utils/mcp-servers.ts +++ b/documentation/src/utils/mcp-servers.ts @@ -1,6 +1,6 @@ import type { MCPServer } from "../types/server"; -const SERVERS_URL = "/goose/servers.json"; +const SERVERS_URL = "/servers.json"; export async function fetchMCPServers(): Promise { try { @@ -19,14 +19,14 @@ export async function fetchMCPServers(): Promise { export async function searchMCPServers(query: string): Promise { const servers = await fetchMCPServers(); const normalizedQuery = query.toLowerCase(); - + return servers.filter((server) => { const normalizedName = server.name.toLowerCase(); const normalizedDescription = server.description.toLowerCase(); - + return ( normalizedName.includes(normalizedQuery) || normalizedDescription.includes(normalizedQuery) ); }); -} \ No newline at end of file +} diff --git a/documentation/src/utils/skills.ts b/documentation/src/utils/skills.ts index 731fc7aeac..d6f0fc012b 100644 --- a/documentation/src/utils/skills.ts +++ b/documentation/src/utils/skills.ts @@ -75,8 +75,8 @@ async function fetchSkillsManifest(): Promise { try { // In Docusaurus, baseUrl changes automatically for PR previews. // Example: - // prod: /goose/ - // PR preview: /goose/pr-preview/pr-6752/ + // prod: / + // PR preview: /pr-preview/pr-6752/ const baseUrl = siteConfig.baseUrl.endsWith("/") ? siteConfig.baseUrl : `${siteConfig.baseUrl}/`; diff --git a/documentation/static/CNAME b/documentation/static/CNAME new file mode 100644 index 0000000000..742f9b079e --- /dev/null +++ b/documentation/static/CNAME @@ -0,0 +1 @@ +goose-docs.ai