fix baseUrl (#8347)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
4. Check that all image paths are correct relative to your post's directory
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
]}
|
||||
/>
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
|
||||
@@ -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',
|
||||
}
|
||||
]}
|
||||
/>
|
||||
/>
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
]}
|
||||
/>
|
||||
/>
|
||||
|
||||
@@ -9,7 +9,7 @@ import styles from '@site/src/components/Card/styles.module.css';
|
||||
|
||||
<h1 className={styles.pageTitle}>Managing Tools</h1>
|
||||
<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>
|
||||
|
||||
<div className={styles.categorySection}>
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
]}
|
||||
/>
|
||||
/>
|
||||
|
||||
@@ -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! 🔊
|
||||
|
||||
<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.
|
||||
</audio>
|
||||
|
||||
|
||||
+149
-158
@@ -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 /<baseUrl>/ pathname under which your site is served
|
||||
// For GitHub pages deployment, it is often '/<projectName>/'
|
||||
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: <a href="/goose/grants">apply now</a>! ✨',
|
||||
// backgroundColor: '#20232a',
|
||||
// textColor: '#fff',
|
||||
// isCloseable: false,
|
||||
// },
|
||||
} satisfies Preset.ThemeConfig,
|
||||
};
|
||||
|
||||
|
||||
export default config;
|
||||
|
||||
@@ -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`);
|
||||
});
|
||||
|
||||
@@ -245,7 +245,7 @@ export default function ContentCard({
|
||||
) : (
|
||||
<img
|
||||
style={styles.placeholderLogo}
|
||||
src="/goose/img/goose.svg"
|
||||
src="/img/goose.svg"
|
||||
alt="Goose logo placeholder"
|
||||
/>
|
||||
)}
|
||||
|
||||
@@ -4,7 +4,7 @@ import Admonition from '@theme/Admonition';
|
||||
export const PlatformExtensionNote = ({ defaultEnabled = true }) => {
|
||||
return (
|
||||
<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>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -18,7 +18,7 @@ export const RateLimits = () => {
|
||||
<br />
|
||||
Some providers also have rate limits on API usage, which can affect your
|
||||
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
|
||||
</a>{" "}
|
||||
guide to learn how to efficiently manage these limits while using goose.
|
||||
|
||||
@@ -12,7 +12,7 @@ const RecipeFields = () => {
|
||||
<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>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>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -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`;
|
||||
|
||||
@@ -435,7 +435,7 @@ function PageActionsMenu(): ReactNode {
|
||||
<ExternalLink size={16} className="flex-shrink-0" />
|
||||
</button>
|
||||
<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"
|
||||
onClick={() => setDropdownOpen(false)}
|
||||
>
|
||||
|
||||
@@ -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<MCPServer[]> {
|
||||
try {
|
||||
@@ -19,14 +19,14 @@ export async function fetchMCPServers(): Promise<MCPServer[]> {
|
||||
export async function searchMCPServers(query: string): Promise<MCPServer[]> {
|
||||
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)
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,8 +75,8 @@ async function fetchSkillsManifest(): Promise<Skill[]> {
|
||||
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}/`;
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
goose-docs.ai
|
||||
Reference in New Issue
Block a user