fix baseUrl (#8347)
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
@@ -208,4 +208,4 @@ npm start
|
|||||||
```
|
```
|
||||||
|
|
||||||
3. Verify your frontmatter syntax is correct (no tabs, proper indentation)
|
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',
|
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'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,9 +65,9 @@ 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}>
|
||||||
|
|||||||
@@ -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'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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'
|
||||||
}
|
}
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
+149
-158
@@ -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.
|
||||||
@@ -29,7 +28,7 @@ const config: Config = {
|
|||||||
projectName: "goose", // Usually your repo name.
|
projectName: "goose", // Usually your repo name.
|
||||||
|
|
||||||
onBrokenLinks: "throw",
|
onBrokenLinks: "throw",
|
||||||
|
|
||||||
markdown: {
|
markdown: {
|
||||||
hooks: {
|
hooks: {
|
||||||
onBrokenMarkdownLinks: "warn",
|
onBrokenMarkdownLinks: "warn",
|
||||||
@@ -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;
|
||||||
|
|||||||
@@ -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`);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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,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 {
|
||||||
@@ -19,14 +19,14 @@ export async function fetchMCPServers(): Promise<MCPServer[]> {
|
|||||||
export async function searchMCPServers(query: string): Promise<MCPServer[]> {
|
export async function searchMCPServers(query: string): Promise<MCPServer[]> {
|
||||||
const servers = await fetchMCPServers();
|
const servers = await fetchMCPServers();
|
||||||
const normalizedQuery = query.toLowerCase();
|
const normalizedQuery = query.toLowerCase();
|
||||||
|
|
||||||
return servers.filter((server) => {
|
return servers.filter((server) => {
|
||||||
const normalizedName = server.name.toLowerCase();
|
const normalizedName = server.name.toLowerCase();
|
||||||
const normalizedDescription = server.description.toLowerCase();
|
const normalizedDescription = server.description.toLowerCase();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
normalizedName.includes(normalizedQuery) ||
|
normalizedName.includes(normalizedQuery) ||
|
||||||
normalizedDescription.includes(normalizedQuery)
|
normalizedDescription.includes(normalizedQuery)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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}/`;
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
goose-docs.ai
|
||||||
Reference in New Issue
Block a user