fix baseUrl (#8347)

This commit is contained in:
Jack Amadeo
2026-04-06 15:27:14 -04:00
committed by GitHub
parent 771bc38731
commit 6a594a2094
25 changed files with 192 additions and 213 deletions
+1 -1
View File
@@ -34,7 +34,7 @@ jobs:
INKEEP_API_KEY: ${{ secrets.INKEEP_API_KEY }} INKEEP_API_KEY: ${{ secrets.INKEEP_API_KEY }}
INKEEP_INTEGRATION_ID: ${{ secrets.INKEEP_INTEGRATION_ID }} INKEEP_INTEGRATION_ID: ${{ secrets.INKEEP_INTEGRATION_ID }}
INKEEP_ORG_ID: ${{ secrets.INKEEP_ORG_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: | run: |
npm install npm install
npm run build npm run build
+1 -1
View File
@@ -181,7 +181,7 @@ npm start
3. Open your browser and visit: 3. Open your browser and visit:
``` ```
http://localhost:3000/goose/blog http://localhost:3000/blog
``` ```
The development server features: The development server features:
@@ -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', 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.', description: 'Learn about two new ways to use goose: iOS app for mobile access and native terminal support with seamless session continuity.',
thumbnailUrl: mobileShots, thumbnailUrl: mobileShots,
linkUrl: '/goose/blog/2025/12/19/goose-mobile-terminal', linkUrl: '/blog/2025/12/19/goose-mobile-terminal',
date: '2025-12-19', date: '2025-12-19',
duration: '4 min read' duration: '4 min read'
} }
+1 -1
View File
@@ -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', 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.', 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, 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', date: '2025-10-24',
duration: '7 min read' duration: '7 min read'
} }
@@ -98,13 +98,13 @@ import ContentCardCarousel from '@site/src/components/ContentCardCarousel';
type: 'topic', type: 'topic',
title: 'Recipes', title: 'Recipes',
description: 'Check out the Recipes guide for more docs, tools, and resources to help you master goose 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', type: 'topic',
title: 'Research → Plan → Implement Patterns', title: 'Research → Plan → Implement Patterns',
description: 'See how slash commands make it easy to integrate instructions into interactive RPI workflows.', description: 'See how slash commands make it easy to integrate instructions into interactive RPI workflows.',
linkUrl: '/goose/docs/tutorials/rpi' linkUrl: '/docs/tutorials/rpi'
} }
]} ]}
/> />
@@ -278,7 +278,7 @@ import skillsvsmcp from '@site/blog/2025-12-22-agent-skills-vs-mcp/skills-vs-mcp
title: 'Did Skills Kill MCP?', title: 'Did Skills Kill MCP?',
description: 'An overview of Agent Skills vs MCP', description: 'An overview of Agent Skills vs MCP',
thumbnailUrl: skillsvsmcp, 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', date: '2025-12-22',
duration: '4 min read' duration: '4 min read'
} }
+2 -2
View File
@@ -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?', title: 'Does Your AI Agent Need a Plan?',
description: 'Knowing when and how to plan with an AI agent can produce better results.', description: 'Knowing when and how to plan with an AI agent can produce better results.',
thumbnailUrl: blogBanner, 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', date: '2025-12-19',
duration: '7 min read' 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', type: 'topic',
title: 'Planning Complex Tasks', title: 'Planning Complex Tasks',
description: 'Learn how to use the Plan feature to break down complex tasks into manageable, executable steps.', 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',
} }
]} ]}
/> />
@@ -56,7 +56,7 @@ import notMcpReplacement from '@site/blog/2025-12-21-code-mode-doesnt-replace-mc
title: 'Code Mode for MCP', title: 'Code Mode for MCP',
description: 'Learn about the code execution approach to MCP tool calling.', description: 'Learn about the code execution approach to MCP tool calling.',
thumbnailUrl: gooseCodeMode, thumbnailUrl: gooseCodeMode,
linkUrl: '/goose/blog/2025/12/15/code-mode-mcp', linkUrl: '/blog/2025/12/15/code-mode-mcp',
date: '2025-12-15', date: '2025-12-15',
duration: '5 min read' duration: '5 min read'
}, },
@@ -65,7 +65,7 @@ import notMcpReplacement from '@site/blog/2025-12-21-code-mode-doesnt-replace-mc
title: 'Code Mode Doesn\'t Replace MCP', title: 'Code Mode Doesn\'t Replace MCP',
description: 'Understanding how Code Mode and MCP work together.', description: 'Understanding how Code Mode and MCP work together.',
thumbnailUrl: notMcpReplacement, 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', date: '2025-12-21',
duration: '8 min read' duration: '8 min read'
} }
@@ -9,7 +9,7 @@ import styles from '@site/src/components/Card/styles.module.css';
<h1 className={styles.pageTitle}>Managing Tools</h1> <h1 className={styles.pageTitle}>Managing Tools</h1>
<p className={styles.pageDescription}> <p className={styles.pageDescription}>
Tools are specific functions within <a href="/goose/docs/getting-started/using-extensions">extensions</a> that give goose its capabilities. Learn to control and customize how these tools work for you. Tools are specific functions within <a href="/docs/getting-started/using-extensions">extensions</a> that give goose its capabilities. Learn to control and customize how these tools work for you.
</p> </p>
<div className={styles.categorySection}> <div className={styles.categorySection}>
+1 -1
View File
@@ -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', 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.', description: 'Learn how MCP Sampling lets your tools call the AI instead of the other way around.',
thumbnailUrl: mcpSampling, thumbnailUrl: mcpSampling,
linkUrl: '/goose/blog/2025/12/04/mcp-sampling', linkUrl: '/blog/2025/12/04/mcp-sampling',
date: '2025-12-04', date: '2025-12-04',
duration: '6 min read' duration: '6 min read'
} }
@@ -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', 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.', description: 'Learn different prompting styles—from instruction-based to chain-of-thought—and discover which approach works best for your needs.',
thumbnailUrl: promptBanner, thumbnailUrl: promptBanner,
linkUrl: '/goose/blog/2025/03/19/better-ai-prompting', linkUrl: '/blog/2025/03/19/better-ai-prompting',
date: '2025-03-19', date: '2025-03-19',
duration: '8 min read' duration: '8 min read'
} }
+3 -3
View File
@@ -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', 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.', description: 'Compare agents, subagents, and multi agents in AI workflows. Learn how they work together and practical scenarios for each approach.',
thumbnailUrl: agentCoordination, thumbnailUrl: agentCoordination,
linkUrl: '/goose/blog/2025/08/14/agent-coordination-patterns', linkUrl: '/blog/2025/08/14/agent-coordination-patterns',
date: '2025-08-14', date: '2025-08-14',
duration: '4 min read' duration: '4 min read'
}, },
@@ -376,7 +376,7 @@ import agentCoordination from '@site/blog/2025-08-14-agent-coordination-patterns
title: 'Tutorial: Using Subagents', title: 'Tutorial: Using Subagents',
description: 'Spin up a team of subagents to build a fully functional app', 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', 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', date: '2026-01-27',
duration: '1 hour' 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', 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.', description: 'Detailed guide to subagents and subrecipes in goose. Compare reusability, setup complexity, and get practical advice for choosing the right approach.',
thumbnailUrl: subagentsVsSubrecipes, thumbnailUrl: subagentsVsSubrecipes,
linkUrl: '/goose/blog/2025/09/26/subagents-vs-subrecipes', linkUrl: '/blog/2025/09/26/subagents-vs-subrecipes',
date: '2025-09-26', date: '2025-09-26',
duration: '6 min read' duration: '6 min read'
} }
+2 -2
View File
@@ -251,13 +251,13 @@ import ContentCardCarousel from '@site/src/components/ContentCardCarousel';
type: 'topic', type: 'topic',
title: 'Enhanced Code Editing with AI Models', title: 'Enhanced Code Editing with AI Models',
description: 'Use AI models to intelligently apply code changes', description: 'Use AI models to intelligently apply code changes',
linkUrl: '/goose/docs/guides/enhanced-code-editing' linkUrl: '/docs/guides/enhanced-code-editing'
}, },
{ {
type: 'topic', type: 'topic',
title: 'Codebase Analysis', title: 'Codebase Analysis',
description: 'Understand codebases with semantic analysis and call graphs', description: 'Understand codebases with semantic analysis and call graphs',
linkUrl: '/goose/docs/guides/codebase-analysis' linkUrl: '/docs/guides/codebase-analysis'
} }
]} ]}
/> />
+1 -1
View File
@@ -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! 🔊 Press play and hear it for yourself! 🔊
<audio controls> <audio controls>
<source src="/goose/audio/elevenlabs-mcp-demo.mp3" type="audio/mpeg" /> <source src="/audio/elevenlabs-mcp-demo.mp3" type="audio/mpeg" />
Your browser does not support the audio element. Your browser does not support the audio element.
</audio> </audio>
+148 -157
View File
@@ -13,15 +13,14 @@ const inkeepOrgId = process.env.INKEEP_ORG_ID;
const config: Config = { const config: Config = {
title: "goose", title: "goose",
tagline: tagline: "your local AI agent, automating engineering tasks seamlessly",
"your local AI agent, automating engineering tasks seamlessly",
favicon: "img/favicon.ico", favicon: "img/favicon.ico",
// Set the production url of your site here // Set the production url of your site here
url: "https://block.github.io/", url: "https://goose-docs.ai/",
// Set the /<baseUrl>/ pathname under which your site is served // Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/' // For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: process.env.TARGET_PATH || "/goose/", baseUrl: process.env.TARGET_PATH || "/",
// GitHub pages deployment config. // GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these. // If you aren't using GitHub pages, you don't need these.
@@ -44,7 +43,6 @@ const config: Config = {
locales: ["en"], locales: ["en"],
}, },
headTags: [ headTags: [
{ {
tagName: "link", tagName: "link",
@@ -52,7 +50,7 @@ const config: Config = {
rel: "alternate", rel: "alternate",
type: "text/plain", type: "text/plain",
title: "LLM context", title: "LLM context",
href: "/goose/llms.txt", href: "/llms.txt",
}, },
}, },
], ],
@@ -76,7 +74,7 @@ const config: Config = {
onInlineTags: "warn", onInlineTags: "warn",
onInlineAuthors: "warn", onInlineAuthors: "warn",
onUntruncatedBlogPosts: "warn", onUntruncatedBlogPosts: "warn",
blogSidebarCount: 'ALL' blogSidebarCount: "ALL",
}, },
theme: { theme: {
customCss: [ customCss: [
@@ -85,10 +83,13 @@ const config: Config = {
"./src/css/tailwind.css", "./src/css/tailwind.css",
], ],
}, },
gtag: process.env.NODE_ENV === 'production' ? { gtag:
trackingID: 'G-ZS5D6SB4ZJ', process.env.NODE_ENV === "production"
anonymizeIP: true, ? {
} : false, trackingID: "G-ZS5D6SB4ZJ",
anonymizeIP: true,
}
: false,
} satisfies Preset.Options, } satisfies Preset.Options,
], ],
], ],
@@ -99,242 +100,242 @@ const config: Config = {
{ {
redirects: [ redirects: [
{ {
from: '/docs/getting-started/using-goose-free', from: "/docs/getting-started/using-goose-free",
to: '/docs/getting-started/providers#using-goose-for-free' to: "/docs/getting-started/providers#using-goose-for-free",
}, },
{ {
from: '/v1/docs/getting-started/providers', from: "/v1/docs/getting-started/providers",
to: '/docs/getting-started/providers' to: "/docs/getting-started/providers",
}, },
{ {
from: '/v1/docs/getting-started/installation', from: "/v1/docs/getting-started/installation",
to: '/docs/getting-started/installation' to: "/docs/getting-started/installation",
}, },
{ {
from: '/v1/docs/quickstart', from: "/v1/docs/quickstart",
to: '/docs/quickstart' to: "/docs/quickstart",
}, },
{ {
from: '/v1/', from: "/v1/",
to: '/' to: "/",
}, },
{ {
from: '/docs/guides/custom-extensions', from: "/docs/guides/custom-extensions",
to: '/docs/tutorials/custom-extensions' to: "/docs/tutorials/custom-extensions",
}, },
{ {
from: '/docs', from: "/docs",
to: '/docs/category/getting-started' to: "/docs/category/getting-started",
}, },
{ {
from: '/v1/extensions', from: "/v1/extensions",
to: '/extensions' to: "/extensions",
}, },
{ {
from: '/v1/extensions/detail/nondeveloper', from: "/v1/extensions/detail/nondeveloper",
to: '/docs/mcp/computer-controller-mcp' to: "/docs/mcp/computer-controller-mcp",
}, },
{ {
from: '/docs/guides/managing-goose-sessions', from: "/docs/guides/managing-goose-sessions",
to: '/docs/guides/sessions/session-management' to: "/docs/guides/sessions/session-management",
}, },
{ {
from: '/docs/guides/smart-context-management', from: "/docs/guides/smart-context-management",
to: '/docs/guides/sessions/smart-context-management' to: "/docs/guides/sessions/smart-context-management",
}, },
{ {
from: '/docs/guides/share-goose-sessions', from: "/docs/guides/share-goose-sessions",
to: '/docs/guides/recipes/session-recipes' to: "/docs/guides/recipes/session-recipes",
}, },
{ {
from: '/docs/guides/session-recipes', from: "/docs/guides/session-recipes",
to: '/docs/guides/recipes/session-recipes' to: "/docs/guides/recipes/session-recipes",
}, },
{ {
from: '/docs/guides/recipe-reference', from: "/docs/guides/recipe-reference",
to: '/docs/guides/recipes/recipe-reference' to: "/docs/guides/recipes/recipe-reference",
}, },
{ {
from: '/docs/guides/recipes/sub-recipes', from: "/docs/guides/recipes/sub-recipes",
to: '/docs/guides/recipes/subrecipes' to: "/docs/guides/recipes/subrecipes",
}, },
{ {
from: '/docs/tutorials/sub-recipes-in-parallel', from: "/docs/tutorials/sub-recipes-in-parallel",
to: '/docs/tutorials/subrecipes-in-parallel' to: "/docs/tutorials/subrecipes-in-parallel",
}, },
{ {
from: '/docs/guides/tool-permissions', from: "/docs/guides/tool-permissions",
to: '/docs/guides/managing-tools/tool-permissions' to: "/docs/guides/managing-tools/tool-permissions",
}, },
{ {
from: '/docs/guides/adjust-tool-output', from: "/docs/guides/adjust-tool-output",
to: '/docs/guides/managing-tools/adjust-tool-output' to: "/docs/guides/managing-tools/adjust-tool-output",
}, },
{ {
from: '/docs/guides/benchmarking', from: "/docs/guides/benchmarking",
to: '/docs/tutorials/benchmarking' to: "/docs/tutorials/benchmarking",
}, },
{ {
from: '/docs/guides/goose-in-docker', from: "/docs/guides/goose-in-docker",
to: '/docs/tutorials/goose-in-docker' to: "/docs/tutorials/goose-in-docker",
}, },
{ {
from: '/docs/guides/multi-model/creating-plans', from: "/docs/guides/multi-model/creating-plans",
to: '/docs/guides/creating-plans' to: "/docs/guides/creating-plans",
}, },
{ {
from: '/docs/guides/config-file', from: "/docs/guides/config-file",
to: '/docs/guides/config-files', to: "/docs/guides/config-files",
}, },
{ {
from: '/docs/guides/using-goosehints', from: "/docs/guides/using-goosehints",
to: '/docs/guides/context-engineering/using-goosehints', to: "/docs/guides/context-engineering/using-goosehints",
}, },
// MCP tutorial redirects - moved from /docs/tutorials/ to /docs/mcp/ // MCP tutorial redirects - moved from /docs/tutorials/ to /docs/mcp/
{ {
from: '/docs/tutorials/agentql-mcp', from: "/docs/tutorials/agentql-mcp",
to: '/docs/mcp/agentql-mcp' to: "/docs/mcp/agentql-mcp",
}, },
{ {
from: '/docs/tutorials/asana-mcp', from: "/docs/tutorials/asana-mcp",
to: '/docs/mcp/asana-mcp' to: "/docs/mcp/asana-mcp",
}, },
{ {
from: '/docs/tutorials/blender-mcp', from: "/docs/tutorials/blender-mcp",
to: '/docs/mcp/blender-mcp' to: "/docs/mcp/blender-mcp",
}, },
{ {
from: '/docs/tutorials/brave-mcp', from: "/docs/tutorials/brave-mcp",
to: '/docs/mcp/brave-mcp' to: "/docs/mcp/brave-mcp",
}, },
{ {
from: '/docs/tutorials/browserbase-mcp', from: "/docs/tutorials/browserbase-mcp",
to: '/docs/mcp/browserbase-mcp' to: "/docs/mcp/browserbase-mcp",
}, },
{ {
from: '/docs/tutorials/computer-controller-mcp', from: "/docs/tutorials/computer-controller-mcp",
to: '/docs/mcp/computer-controller-mcp' to: "/docs/mcp/computer-controller-mcp",
}, },
{ {
from: '/docs/tutorials/context7-mcp', from: "/docs/tutorials/context7-mcp",
to: '/docs/mcp/context7-mcp' to: "/docs/mcp/context7-mcp",
}, },
{ {
from: '/docs/tutorials/developer-mcp', from: "/docs/tutorials/developer-mcp",
to: '/docs/mcp/developer-mcp' to: "/docs/mcp/developer-mcp",
}, },
{ {
from: '/docs/tutorials/elevenlabs-mcp', from: "/docs/tutorials/elevenlabs-mcp",
to: '/docs/mcp/elevenlabs-mcp' to: "/docs/mcp/elevenlabs-mcp",
}, },
{ {
from: '/docs/tutorials/fetch-mcp', from: "/docs/tutorials/fetch-mcp",
to: '/docs/mcp/fetch-mcp' to: "/docs/mcp/fetch-mcp",
}, },
{ {
from: '/docs/tutorials/figma-mcp', from: "/docs/tutorials/figma-mcp",
to: '/docs/mcp/figma-mcp' to: "/docs/mcp/figma-mcp",
}, },
{ {
from: '/docs/tutorials/filesystem-mcp', from: "/docs/tutorials/filesystem-mcp",
to: '/docs/mcp/filesystem-mcp' to: "/docs/mcp/filesystem-mcp",
}, },
{ {
from: '/docs/tutorials/github-mcp', from: "/docs/tutorials/github-mcp",
to: '/docs/mcp/github-mcp' to: "/docs/mcp/github-mcp",
}, },
{ {
from: '/docs/tutorials/google-drive-mcp', from: "/docs/tutorials/google-drive-mcp",
to: '/docs/mcp/google-drive-mcp' to: "/docs/mcp/google-drive-mcp",
}, },
{ {
from: '/docs/tutorials/google-maps-mcp', from: "/docs/tutorials/google-maps-mcp",
to: '/docs/mcp/google-maps-mcp' to: "/docs/mcp/google-maps-mcp",
}, },
{ {
from: '/docs/tutorials/jetbrains-mcp', from: "/docs/tutorials/jetbrains-mcp",
to: '/docs/mcp/jetbrains-mcp' to: "/docs/mcp/jetbrains-mcp",
}, },
{ {
from: '/docs/tutorials/knowledge-graph-mcp', from: "/docs/tutorials/knowledge-graph-mcp",
to: '/docs/mcp/knowledge-graph-mcp' to: "/docs/mcp/knowledge-graph-mcp",
}, },
{ {
from: '/docs/tutorials/mbot-mcp', from: "/docs/tutorials/mbot-mcp",
to: '/docs/mcp/mbot-mcp' to: "/docs/mcp/mbot-mcp",
}, },
{ {
from: '/docs/tutorials/memory-mcp', from: "/docs/tutorials/memory-mcp",
to: '/docs/mcp/memory-mcp' to: "/docs/mcp/memory-mcp",
}, },
{ {
from: '/docs/tutorials/nostrbook-mcp', from: "/docs/tutorials/nostrbook-mcp",
to: '/docs/mcp/nostrbook-mcp' to: "/docs/mcp/nostrbook-mcp",
}, },
{ {
from: '/docs/tutorials/pdf-mcp', from: "/docs/tutorials/pdf-mcp",
to: '/docs/mcp/pdf-mcp' to: "/docs/mcp/pdf-mcp",
}, },
{ {
from: '/docs/tutorials/pieces-mcp', from: "/docs/tutorials/pieces-mcp",
to: '/docs/mcp/pieces-mcp' to: "/docs/mcp/pieces-mcp",
}, },
{ {
from: '/docs/tutorials/playwright-mcp', from: "/docs/tutorials/playwright-mcp",
to: '/docs/mcp/playwright-mcp' to: "/docs/mcp/playwright-mcp",
}, },
{ {
from: '/docs/tutorials/postgres-mcp', from: "/docs/tutorials/postgres-mcp",
to: '/docs/mcp/postgres-mcp' to: "/docs/mcp/postgres-mcp",
}, },
{ {
from: '/docs/tutorials/puppeteer-mcp', from: "/docs/tutorials/puppeteer-mcp",
to: '/docs/mcp/puppeteer-mcp' to: "/docs/mcp/puppeteer-mcp",
}, },
{ {
from: '/docs/tutorials/reddit-mcp', from: "/docs/tutorials/reddit-mcp",
to: '/docs/mcp/reddit-mcp' to: "/docs/mcp/reddit-mcp",
}, },
{ {
from: '/docs/tutorials/repomix-mcp', from: "/docs/tutorials/repomix-mcp",
to: '/docs/mcp/repomix-mcp' to: "/docs/mcp/repomix-mcp",
}, },
{ {
from: '/docs/tutorials/selenium-mcp', from: "/docs/tutorials/selenium-mcp",
to: '/docs/mcp/selenium-mcp' to: "/docs/mcp/selenium-mcp",
}, },
{ {
from: '/docs/tutorials/speech-mcp', from: "/docs/tutorials/speech-mcp",
to: '/docs/mcp/speech-mcp' to: "/docs/mcp/speech-mcp",
}, },
{ {
from: '/docs/tutorials/square-mcp', from: "/docs/tutorials/square-mcp",
to: '/docs/mcp/square-mcp' to: "/docs/mcp/square-mcp",
}, },
{ {
from: '/docs/tutorials/tavily-mcp', from: "/docs/tutorials/tavily-mcp",
to: '/docs/mcp/tavily-mcp' to: "/docs/mcp/tavily-mcp",
}, },
{ {
from: '/docs/tutorials/tutorial-extension', from: "/docs/tutorials/tutorial-extension",
to: '/docs/mcp/tutorial-mcp' to: "/docs/mcp/tutorial-mcp",
}, },
{ {
from: '/docs/tutorials/vscode-mcp', from: "/docs/tutorials/vscode-mcp",
to: '/docs/mcp/vs-code-mcp' to: "/docs/mcp/vs-code-mcp",
}, },
{ {
from: '/docs/tutorials/youtube-transcript', from: "/docs/tutorials/youtube-transcript",
to: '/docs/mcp/youtube-transcript-mcp' to: "/docs/mcp/youtube-transcript-mcp",
}, },
{ {
from: '/docs/guides/isolated-development-environments', from: "/docs/guides/isolated-development-environments",
to: '/docs/tutorials/isolated-development-environments' to: "/docs/tutorials/isolated-development-environments",
}, },
{ {
from: '/docs/experimental/subagents', from: "/docs/experimental/subagents",
to: '/docs/guides/subagents' to: "/docs/guides/subagents",
} },
], ],
}, },
], ],
@@ -351,7 +352,7 @@ const config: Config = {
// Replace with your project's social card // Replace with your project's social card
image: "img/home-banner.png", image: "img/home-banner.png",
colorMode: { colorMode: {
respectPrefersColorScheme: true respectPrefersColorScheme: true,
}, },
navbar: { navbar: {
title: "", title: "",
@@ -383,33 +384,33 @@ const config: Config = {
}, },
{ to: "/blog", label: "Blog", position: "left" }, { to: "/blog", label: "Blog", position: "left" },
{ {
type: 'dropdown', type: "dropdown",
label: 'Resources', label: "Resources",
position: 'left', position: "left",
items: [ items: [
{ {
to: '/extensions', to: "/extensions",
label: 'Extensions', label: "Extensions",
}, },
{ {
to: '/skills', to: "/skills",
label: 'Skills Marketplace', label: "Skills Marketplace",
}, },
{ {
to: '/recipe-generator', to: "/recipe-generator",
label: 'Recipe Generator', label: "Recipe Generator",
}, },
{ {
to: '/prompt-library', to: "/prompt-library",
label: 'Prompt Library', label: "Prompt Library",
}, },
{ {
to: '/recipes', to: "/recipes",
label: 'Recipe Cookbook', label: "Recipe Cookbook",
}, },
{ {
to: 'deeplink-generator', to: "deeplink-generator",
label: 'Deeplink Generator', label: "Deeplink Generator",
}, },
], ],
}, },
@@ -503,8 +504,7 @@ const config: Config = {
}, },
aiChatSettings: { aiChatSettings: {
chatSubjectName: "goose", chatSubjectName: "goose",
botAvatarSrcUrl: botAvatarSrcUrl: "",
"",
getHelpCallToActions: [ getHelpCallToActions: [
{ {
name: "GitHub", name: "GitHub",
@@ -517,16 +517,7 @@ const config: Config = {
quickQuestions: ["What is goose?"], quickQuestions: ["What is goose?"],
}, },
}, },
// announcementBar: {
// id: 'goose-grants',
// content:
// '✨ goose grant program now open: <a href="/goose/grants">apply now</a>! ✨',
// backgroundColor: '#20232a',
// textColor: '#fff',
// isCloseable: false,
// },
} satisfies Preset.ThemeConfig, } satisfies Preset.ThemeConfig,
}; };
export default config; export default config;
+6 -19
View File
@@ -23,29 +23,16 @@ const serve = serveStatic(buildDir, {
}); });
const server = http.createServer((req, res) => { const server = http.createServer((req, res) => {
// Handle requests to /goose/ by serving from the build directory serve(req, res, () => {
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
res.statusCode = 404; res.statusCode = 404;
res.end('Not found - try /goose/'); res.end('Not found');
} });
}); });
server.listen(port, () => { server.listen(port, () => {
console.log(`\n🚀 Static file server running at http://localhost:${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(`\n📝 Test markdown exports:`);
console.log(` http://localhost:${port}/goose/docs/quickstart.md`); console.log(` http://localhost:${port}/docs/quickstart.md`);
console.log(` http://localhost:${port}/goose/docs/getting-started/installation.md\n`); console.log(` http://localhost:${port}/docs/getting-started/installation.md\n`);
}); });
+1 -1
View File
@@ -245,7 +245,7 @@ export default function ContentCard({
) : ( ) : (
<img <img
style={styles.placeholderLogo} style={styles.placeholderLogo}
src="/goose/img/goose.svg" src="/img/goose.svg"
alt="Goose logo placeholder" alt="Goose logo placeholder"
/> />
)} )}
@@ -4,7 +4,7 @@ import Admonition from '@theme/Admonition';
export const PlatformExtensionNote = ({ defaultEnabled = true }) => { export const PlatformExtensionNote = ({ defaultEnabled = true }) => {
return ( return (
<Admonition type="info" title="Platform Extension"> <Admonition type="info" title="Platform Extension">
<p>This is a <a href="/goose/docs/getting-started/using-extensions#built-in-platform-extensions">built-in platform extension</a>{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.</p> <p>This is a <a href="/docs/getting-started/using-extensions#built-in-platform-extensions">built-in platform extension</a>{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.</p>
</Admonition> </Admonition>
); );
}; };
+1 -1
View File
@@ -18,7 +18,7 @@ export const RateLimits = () => {
<br /> <br />
Some providers also have rate limits on API usage, which can affect your Some providers also have rate limits on API usage, which can affect your
experience. Check out our{" "} experience. Check out our{" "}
<a href="/goose/docs/guides/handling-llm-rate-limits-with-goose" target="_blank"> <a href="/docs/guides/handling-llm-rate-limits-with-goose" target="_blank">
Handling Rate Limits Handling Rate Limits
</a>{" "} </a>{" "}
guide to learn how to efficiently manage these limits while using goose. guide to learn how to efficiently manage these limits while using goose.
+1 -1
View File
@@ -12,7 +12,7 @@ const RecipeFields = () => {
<li><strong>Parameters</strong> to accept dynamic values</li> <li><strong>Parameters</strong> to accept dynamic values</li>
<li><strong>Model and provider</strong> to specify which provider and model the recipe should use</li> <li><strong>Model and provider</strong> to specify which provider and model the recipe should use</li>
<li><strong>Extensions</strong> to select which tools are available</li> <li><strong>Extensions</strong> to select which tools are available</li>
<li><strong>Response JSON schema</strong> for <a href="/goose/docs/guides/recipes/session-recipes#structured-output-for-automation">structured output in automations</a></li> <li><strong>Response JSON schema</strong> for <a href="/docs/guides/recipes/session-recipes#structured-output-for-automation">structured output in automations</a></li>
<li><strong>Subrecipes</strong> to attach existing subrecipes or create a new one inline</li> <li><strong>Subrecipes</strong> to attach existing subrecipes or create a new one inline</li>
</ul> </ul>
</li> </li>
+1 -1
View File
@@ -71,7 +71,7 @@ export default function SkillDetailPage(): JSX.Element {
const handleDownload = () => { const handleDownload = () => {
if (skill) { if (skill) {
const zipUrl = `/goose/skills-data-zips/${skill.id}.zip`; const zipUrl = `/skills-data-zips/${skill.id}.zip`;
const link = document.createElement('a'); const link = document.createElement('a');
link.href = zipUrl; link.href = zipUrl;
link.download = `${skill.id}.zip`; link.download = `${skill.id}.zip`;
@@ -435,7 +435,7 @@ function PageActionsMenu(): ReactNode {
<ExternalLink size={16} className="flex-shrink-0" /> <ExternalLink size={16} className="flex-shrink-0" />
</button> </button>
<a <a
href="/goose/docs/mcp/goose-docs-mcp" href="/docs/mcp/goose-docs-mcp"
className="w-full flex items-center justify-between gap-1.5 px-3 py-1.5 text-sm text-white dark:text-black hover:opacity-90 hover:-translate-y-px active:translate-y-px transition-all duration-200 ease-in-out bg-transparent rounded-b-md no-underline" className="w-full flex items-center justify-between gap-1.5 px-3 py-1.5 text-sm text-white dark:text-black hover:opacity-90 hover:-translate-y-px active:translate-y-px transition-all duration-200 ease-in-out bg-transparent rounded-b-md no-underline"
onClick={() => setDropdownOpen(false)} onClick={() => setDropdownOpen(false)}
> >
+1 -1
View File
@@ -1,6 +1,6 @@
import type { MCPServer } from "../types/server"; import type { MCPServer } from "../types/server";
const SERVERS_URL = "/goose/servers.json"; const SERVERS_URL = "/servers.json";
export async function fetchMCPServers(): Promise<MCPServer[]> { export async function fetchMCPServers(): Promise<MCPServer[]> {
try { try {
+2 -2
View File
@@ -75,8 +75,8 @@ async function fetchSkillsManifest(): Promise<Skill[]> {
try { try {
// In Docusaurus, baseUrl changes automatically for PR previews. // In Docusaurus, baseUrl changes automatically for PR previews.
// Example: // Example:
// prod: /goose/ // prod: /
// PR preview: /goose/pr-preview/pr-6752/ // PR preview: /pr-preview/pr-6752/
const baseUrl = siteConfig.baseUrl.endsWith("/") const baseUrl = siteConfig.baseUrl.endsWith("/")
? siteConfig.baseUrl ? siteConfig.baseUrl
: `${siteConfig.baseUrl}/`; : `${siteConfig.baseUrl}/`;
+1
View File
@@ -0,0 +1 @@
goose-docs.ai