{"owner":"algolia","repo":"docsearch","hasSkills":true,"totalSkillsCount":84,"totalTokensCount":28002,"categories":["root-instruction","mcp-config","anthropic-skill","plugin-manifest","marketplace","command-prompt"],"hasMcp":true,"mcpConfig":{"mcpServers":{"docsearch":{"command":"npx","args":["-y","@modelcontextprotocol/server-docsearch"]}}},"found":["AGENTS.md",".cursor/mcp.json","mcp/plugins/docsearch/claude/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md","mcp/plugins/docsearch/cursor/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md","mcp/plugins/docsearch/chatgpt/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md","packages/website/package.json","packages/website/README.md","packages/website/versions.json","packages/website/tsconfig.json","packages/website/WRITING_GUIDE.md","packages/website/components.json","packages/docsearch-sidepanel-js/CHANGELOG.md","packages/docsearch-sidepanel-js/package.json","packages/docsearch-sidepanel-js/README.md","packages/docsearch-sidepanel/CHANGELOG.md","packages/docsearch-sidepanel/package.json","packages/docsearch-sidepanel/README.md","packages/docsearch-react/CHANGELOG.md","packages/docsearch-react/package.json","packages/docsearch-react/README.md","packages/docsearch-modal/CHANGELOG.md","packages/docsearch-modal/package.json","packages/docsearch-modal/README.md","packages/docsearch-js/CHANGELOG.md","packages/docsearch-js/package.json","packages/docsearch-js/README.md","packages/docsearch-css/CHANGELOG.md","packages/docsearch-css/package.json","packages/docsearch-css/README.md","packages/docsearch-core/CHANGELOG.md","packages/docsearch-core/package.json","packages/docsearch-core/README.md","packages/docsearch-cli/CHANGELOG.md","packages/docsearch-cli/package.json","packages/docsearch-cli/README.md","packages/docsearch-cli/tsconfig.json","mcp/plugins/docsearch/README.md","packages/website/docs/docsearch-program.md","packages/website/docs/integrations.md","packages/website/docs/record-extractor.md","packages/website/docs/styling.md","packages/website/docs/tips.md","packages/website/docs/what-is-docsearch.md","packages/website/docs/who-can-apply.md","packages/website/versioned_sidebars/version-legacy-sidebars.json","packages/website/versioned_sidebars/version-v3-sidebars.json","packages/website/versioned_sidebars/version-v4-sidebars.json","packages/website/versioned_docs/version-v4/docsearch-program.md","packages/website/versioned_docs/version-v4/integrations.md","packages/website/versioned_docs/version-v4/migrating-from-v3.md","packages/website/versioned_docs/version-v4/record-extractor.md","packages/website/versioned_docs/version-v4/styling.md","packages/website/versioned_docs/version-v4/tips.md","packages/website/versioned_docs/version-v4/what-is-docsearch.md","packages/website/versioned_docs/version-v4/who-can-apply.md","packages/website/versioned_docs/version-v3/docsearch-program.md","packages/website/versioned_docs/version-v3/integrations.md","packages/website/versioned_docs/version-v3/migrating-from-v2.md","packages/website/versioned_docs/version-v3/record-extractor.md","packages/website/versioned_docs/version-v3/styling.md","packages/website/versioned_docs/version-v3/tips.md","packages/website/versioned_docs/version-v3/what-is-docsearch.md","packages/website/versioned_docs/version-v3/who-can-apply.md","packages/website/versioned_docs/version-legacy/behavior.md","packages/website/versioned_docs/version-legacy/config-file.md","packages/website/versioned_docs/version-legacy/dropdown.md","packages/website/versioned_docs/version-legacy/faq.md","packages/website/versioned_docs/version-legacy/inside-the-engine.md","packages/website/versioned_docs/version-legacy/integrations.md","packages/website/versioned_docs/version-legacy/required-configuration.md","packages/website/versioned_docs/version-legacy/run-your-own.md","packages/website/versioned_docs/version-legacy/scraper-overview.md","packages/website/versioned_docs/version-legacy/tips.md","mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json","mcp/plugins/docsearch/cursor/algolia-docsearch/README.md","mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json","mcp/plugins/docsearch/claude/algolia-docsearch/README.md","mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json","mcp/plugins/docsearch/chatgpt/algolia-docsearch/README.md","mcp/plugins/docsearch/cursor/algolia-docsearch/.cursor-plugin/plugin.json","mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/marketplace.json","mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/plugin.json","mcp/plugins/docsearch/claude/algolia-docsearch/commands/docs.md","mcp/plugins/docsearch/chatgpt/algolia-docsearch/.codex-plugin/plugin.json"],"skills":{"AGENTS.md":"# AGENTS.md - DocSearch Development Guide\n\nThis document provides guidelines for AI agents working on the DocSearch codebase.\n\n## Project Overview\n\nDocSearch is an Algolia-powered search widget for documentation sites. It's a TypeScript/React monorepo using Bun workspaces.\n\n### Packages\n\n- `@docsearch/core` - Core logic and hooks\n- `@docsearch/react` - React components\n- `@docsearch/js` - Vanilla JavaScript wrapper\n- `@docsearch/css` - Styles\n- `@docsearch/modal` - Modal component\n- `@docsearch/sidepanel` - Side panel React component\n- `@docsearch/sidepanel-js` - Side panel vanilla JS wrapper\n- `website` - Documentation site (Docusaurus)\n\n## Build Commands\n\n```bash\n# Install dependencies\nbun install\n\n# Build all packages\nbun run build\n\n# Build specific package\nbun run --filter @docsearch/react build\n\n# Watch mode (all packages)\nbun run watch\n```\n\n## Test Commands\n\n```bash\n# Run all unit tests\nbun run test\n\n# Run a single test file\nbun run test --run packages/docsearch-react/src/__tests__/utils.test.ts\n\n# Type checking\nbun run test:types\n\n# Bundle size check\nbun run test:size\n```\n\nWhen running tests, prefer to run specific files with the `--run` flag to prevent running with watch mode.\n\n## Lint Commands\n\n```bash\n# Run oxlint\nbun run lint --format=agent\n\n# Perform oxfmt formatting\nbun run fmt\n\n# Lint CSS\nbun run lint:css\n```\n\n## E2E Testing (Playwright)\n\n```bash\n# Run all Playwright tests\nbun run pw:run\n\n# Run with specific browser\nbun run pw:run:chromium\nbun run pw:run:firefox\nbun run pw:run:webkit\n```\n\nOnly the `chromium` project is currently enabled in `playwright.config.ts`; `firefox` and `webkit` will not run until those projects are uncommented, even though their `pw:run:*` scripts exist.\n\nPlaywright auto-starts the Docusaurus site (`bun run website:test`) on `http://localhost:3000` and reuses an already-running server locally (not in CI). Tests hit the live Algolia index for the docs site, so outbound network access is required.\n\n### Accessibility Tests (axe + Playwright)\n\n- **When to run:** For changes to widget markup, styles, keyboard handling, focus management, or ARIA attributes. Add or extend coverage when introducing new interactive behavior.\n- **Where tests live:**\n  - `e2e/a11y.test.ts` - dedicated axe scans (modal smoke test, modal search results, sidepanel smoke test)\n  - `e2e/fixtures.ts` - shared fixtures, page-ready helpers, and the `gatherA11yViolations` / `axe()` helper (WCAG 2.0/2.1/2.2 A & AA tags)\n  - `e2e/search.spec.ts` - keyboard, focus, and ARIA state assertions (shortcuts, arrow navigation, `aria-activedescendant`, `aria-selected`)\n\n```bash\n# Install the Chromium browser binary (first run only)\nbunx playwright install chromium\n\n# Build workspace packages before running e2e\nbun run build\n\n# Run the dedicated accessibility scans\nbun run pw:run e2e/a11y.test.ts --project=chromium\n\n# Run accessibility scans plus keyboard/focus/ARIA regression tests\nbun run pw:run e2e/a11y.test.ts e2e/search.spec.ts --project=chromium\n\n# Run a single accessibility test by name\nbun run pw:run e2e/a11y.test.ts --project=chromium --grep 'Modal Search results'\n```\n\n- **Test-authoring pattern:** Reuse the shared `axe()` fixture instead of instantiating `AxeBuilder` directly, wait for the target UI state (modal focused, sidepanel open, results rendered) before scanning, scope `.include()` to the relevant container, and attach `scanResults.violations` via `testInfo.attach` for debugging.\n- **Interpreting results:** Existing tests assert a maximum violation-node count per scan (currently 6/24/4), not zero violations. `gatherA11yViolations` flattens `violations[].nodes`, so the count reflects affected elements, not unique rules. Passing means staying within the existing budget — it is not a full accessibility certification, and automated axe checks don't replace manual keyboard traversal and screen-reader verification. Don't raise a threshold or add `.exclude()`/`disableRules()` just to make a failing test pass; investigate the regression, fix it, and only adjust the budget with an explicit justification.\n\n## Code Style Guidelines\n\n### TypeScript\n\n- Use `type` imports for type-only imports: `import type { Foo } from './types'`\n- Prefer interfaces for object shapes, types for unions/primitives\n- Avoid `any`; use `unknown` when type is truly unknown\n\n```typescript\n// Good\nexport type DocSearchHit = {\n  objectID: string;\n  content: string | null;\n};\n\n// Return type annotation\nfunction createStorage<TItem>(key: string): StorageInterface<TItem> {\n  // ...\n}\n```\n\n### Naming Conventions\n\n- **Components**: PascalCase (`DocSearchModal.tsx`)\n- **Hooks**: camelCase with `use` prefix (`useDocSearchKeyboardEvents.ts`)\n- **Utilities**: camelCase (`removeHighlightTags.ts`)\n- **Types**: PascalCase (`InternalDocSearchHit`)\n- **Constants**: SCREAMING_SNAKE_CASE (`MAX_QUERY_SIZE`)\n- **CSS classes**: `DocSearch-` prefix\n\n### React Components\n\n- Use function components with explicit JSX return type\n- Forward refs when needed using `React.forwardRef`\n- Use `React.useCallback` for callbacks passed as props\n- Use `React.useMemo` for expensive computations\n- Prefer destructuring props in function signature\n\n### React Component Structure\n\n- `src/components/ui/` contains reusable rendering components.\n- Prefer domain-light primitives in `src/components/ui/` when possible.\n- Feature-scoped UI components may live in `src/components/ui/` when their feature scope is explicit in the filename, such as `RecentConversationsResults.tsx`.\n- `src/components/` contains scoped composition components that own feature flow, branching, and state orchestration.\n- Keep AI-specific behavior out of generic UI primitives. If a UI component is AI-specific, make that scope clear in its name.\n\n```typescript\nfunction DocSearchComponent(\n  props: DocSearchProps,\n  ref: React.ForwardedRef<DocSearchRef>\n): JSX.Element {\n  // ...\n}\n\nexport const DocSearch = React.forwardRef(DocSearchComponent);\n```\n\n### Error Handling\n\n- Use try-catch for async operations that may fail\n- Check for specific error types when handling errors\n- Fail silently for non-critical localStorage operations\n- Throw descriptive errors for configuration issues\n\n```typescript\ntry {\n  window.localStorage.setItem(key, JSON.stringify(value));\n} catch (error) {\n  if (error instanceof DOMException && error.name === 'QuotaExceededError') {\n    cleanupDocSearchStorage();\n  }\n  // Silently fail for other errors\n}\n```\n\n### Formatting (oxfmt)\n\n- Single quotes for strings\n- Trailing commas (ES5 style)\n- No prose wrapping\n\n### CSS (Stylelint)\n\n- Selector pattern: `^DocSearch-[A-Za-z0-9-]*$`\n- Max nesting depth: 2 (excluding pseudo-classes)\n- Follow `stylelint-config-standard` and `stylelint-config-sass-guidelines`\n\n## Commit Conventions\n\nFollow conventional changelog format:\n\n```\ntype(scope): description\n```\n\nTypes: `fix`, `feat`, `refactor`, `docs`, `chore`\n\nExamples:\n\n- `fix(modal): increase default height`\n- `feat(searchbox): add type input property`\n- `chore(deps): update dependency rollup-plugin-babel to v3.0.7`\n\n## Testing Patterns\n\nTests use Vitest with Testing Library:\n\n```typescript\nimport { describe, it, expect, beforeEach } from 'vitest';\nimport { render, act, fireEvent, screen } from '@testing-library/react';\nimport '@testing-library/jest-dom/vitest';\n\ndescribe('ComponentName', () => {\n  it('describes expected behavior', () => {\n    // Arrange\n    render(<Component />);\n\n    // Act\n    fireEvent.click(screen.getByText('Button'));\n\n    // Assert\n    expect(screen.getByText('Result')).toBeInTheDocument();\n  });\n});\n```\n\n## File Structure\n\n```\npackages/\n  docsearch-react/\n    src/\n      components/         # Scoped React composition components\n        ui/               # Reusable rendering components and explicitly scoped UI pieces\n      __tests__/          # Test files\n      icons/              # Icon components\n      types/              # Type definitions\n      utils/              # Utility functions\n      Sidepanel/          # Sidepanel subcomponents\n      DocSearch.tsx       # Main component\n      index.ts            # Public exports\n```\n\n## Key Dependencies\n\n- `@algolia/autocomplete-core` - Autocomplete engine\n- `algoliasearch` - Algolia search client\n- `ai` / `@ai-sdk/react` - AI/streaming support\n- `marked` - Markdown rendering\n- `rollup` - Build bundling\n- `vitest` - Test runner\n\n## Cursor Cloud specific instructions\n\nToolchain is pinned in `.tool-versions`: Node `24.13.1` (managed via `fnm`) and Bun `1.3.10`. These are preinstalled in the Cloud VM and available on `PATH` in new shells; the startup update script only runs `bun install`.\n\nNon-obvious caveats:\n\n- **To run/demo the widget, use the React playground:** `bun run playground:start` serves at `http://localhost:5173` (Vite). `bun run playground-js:start` serves the vanilla-JS demo. These connect to Algolia's hosted index using public credentials baked into the demo, so **outbound internet is required** for live search results.\n- Run unit tests non-interactively with `bun run test --run` (plain `bun run test` starts Vitest watch mode).\n- `bun run lint:css` reports many pre-existing CSS lint violations in the repo; these are not environment problems.\n\n## Documentation\n\n- When writing or working on the documentation website (`packages/website`), MUST adhere to the writing guidelines in @packages/website/WRITING_GUIDE.md\n",".cursor/mcp.json":"{\n  \"mcpServers\": {\n    \"algolia-docsearch\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.algolia.com/1/docsearch/mcp\"\n    }\n  }\n}\n","mcp/plugins/docsearch/claude/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md":"---\nname: algolia-docsearch-mcp\ndescription: Use this skill when the user asks about public developer documentation, SDKs, APIs, libraries, frameworks, setup, configuration, or code examples. Fetch current docs from Algolia DocSearch MCP and cite source URLs.\n---\n\nWhen the user asks about public developer documentation, use Algolia DocSearch MCP instead of relying only on training data.\n\n## When To Use\n\nUse this skill when the user:\n\n- Asks setup or configuration questions for a public library, framework, SDK, API, or developer tool.\n- Requests code examples that should match current docs.\n- Needs API reference details, migration guidance, or command syntax.\n- Mentions a library or framework whose docs may have changed recently.\n- Asks for sources or citations from public documentation.\n\nDo not use this skill for private company docs, internal repositories, unpublished APIs, or questions where the user already supplied the relevant docs.\n\n## Tools\n\nDocSearch MCP exposes three tools. You can query in natural language — full sentences and questions work well.\n\n- `algolia_docsearch_search_docs` — one-shot lookup. Use this by default.\n- `algolia_docsearch_resolve_docset` — step 1 of the manual flow: find documentation sets.\n- `algolia_docsearch_query_docs` — step 2 of the manual flow: fetch content for chosen docsets.\n\n## Default Flow: One-Shot Search\n\nCall `algolia_docsearch_search_docs` for most lookups.\n\nInput:\n\n- `library`: the product, library, SDK, or platform. Use the official name (for example: `Next.js`, `Stripe`, `Algolia InstantSearch`).\n- `query`: the question, in natural language (for example: `how do middleware matchers work`).\n\nIt resolves the best matching documentation set and returns ranked content in a single call. If `library` is ambiguous, it returns candidate documentation sets instead — pick the right one and pass its `docset_id` to `algolia_docsearch_query_docs`, or retry with the official product name.\n\n## Manual Flow: Resolve, Then Query\n\nUse the two-step flow when a question spans several products, or when you want to inspect and hand-pick documentation sets.\n\n### Step 1: Resolve The Docset\n\nCall `algolia_docsearch_resolve_docset`.\n\nInput:\n\n- `query`: describe the product, library, SDK, or platform. Including the vendor name improves matching.\n- `topN`: optional. Use the default unless the initial result is ambiguous.\n\nEach candidate returns a `title`, `docset_id`, `description`, and ranking signals (`trustScore`, `benchmarkScore`, `popularityScore`). Prefer the official vendor's docset over third-party mentions, breaking ties by the higher scores.\n\n### Step 2: Query The Docs\n\nCall `algolia_docsearch_query_docs`.\n\nInput:\n\n- `query`: what to find in the docs, in natural language.\n- `docsetIds`: an array of the `docset_id` values you selected. Pass several when a question spans multiple products.\n\n## Answer With Sources\n\nUse the returned documentation content to answer the user directly.\n\nGuidelines:\n\n- Include source URLs from the tool result when available.\n- Say when DocSearch does not return a relevant result.\n- Do not invent source citations.\n- Keep the answer focused on the user's question.\n","mcp/plugins/docsearch/cursor/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md":"---\nname: algolia-docsearch-mcp\ndescription: Use this skill when the user asks about public developer documentation, SDKs, APIs, libraries, frameworks, setup, configuration, or code examples. Fetch current docs from Algolia DocSearch MCP and cite source URLs.\n---\n\nWhen the user asks about public developer documentation, use Algolia DocSearch MCP instead of relying only on training data.\n\n## When To Use\n\nUse this skill when the user:\n\n- Asks setup or configuration questions for a public library, framework, SDK, API, or developer tool.\n- Requests code examples that should match current docs.\n- Needs API reference details, migration guidance, or command syntax.\n- Mentions a library or framework whose docs may have changed recently.\n- Asks for sources or citations from public documentation.\n\nDo not use this skill for private company docs, internal repositories, unpublished APIs, or questions where the user already supplied the relevant docs.\n\n## Tools\n\nDocSearch MCP exposes three tools. You can query in natural language — full sentences and questions work well.\n\n- `algolia_docsearch_search_docs` — one-shot lookup. Use this by default.\n- `algolia_docsearch_resolve_docset` — step 1 of the manual flow: find documentation sets.\n- `algolia_docsearch_query_docs` — step 2 of the manual flow: fetch content for chosen docsets.\n\n## Default Flow: One-Shot Search\n\nCall `algolia_docsearch_search_docs` for most lookups.\n\nInput:\n\n- `library`: the product, library, SDK, or platform. Use the official name (for example: `Next.js`, `Stripe`, `Algolia InstantSearch`).\n- `query`: the question, in natural language (for example: `how do middleware matchers work`).\n\nIt resolves the best matching documentation set and returns ranked content in a single call. If `library` is ambiguous, it returns candidate documentation sets instead — pick the right one and pass its `docset_id` to `algolia_docsearch_query_docs`, or retry with the official product name.\n\n## Manual Flow: Resolve, Then Query\n\nUse the two-step flow when a question spans several products, or when you want to inspect and hand-pick documentation sets.\n\n### Step 1: Resolve The Docset\n\nCall `algolia_docsearch_resolve_docset`.\n\nInput:\n\n- `query`: describe the product, library, SDK, or platform. Including the vendor name improves matching.\n- `topN`: optional. Use the default unless the initial result is ambiguous.\n\nEach candidate returns a `title`, `docset_id`, `description`, and ranking signals (`trustScore`, `benchmarkScore`, `popularityScore`). Prefer the official vendor's docset over third-party mentions, breaking ties by the higher scores.\n\n### Step 2: Query The Docs\n\nCall `algolia_docsearch_query_docs`.\n\nInput:\n\n- `query`: what to find in the docs, in natural language.\n- `docsetIds`: an array of the `docset_id` values you selected. Pass several when a question spans multiple products.\n\n## Answer With Sources\n\nUse the returned documentation content to answer the user directly.\n\nGuidelines:\n\n- Include source URLs from the tool result when available.\n- Say when DocSearch does not return a relevant result.\n- Do not invent source citations.\n- Keep the answer focused on the user's question.\n","mcp/plugins/docsearch/chatgpt/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md":"---\nname: algolia-docsearch-mcp\ndescription: Use when the user asks about public developer documentation for a library, framework, SDK, API, CLI tool, or cloud service. Fetch current docs from Algolia DocSearch MCP and cite source URLs.\n---\n\nUse Algolia DocSearch MCP when the answer depends on current public developer documentation.\n\n## Scope\n\nUse this skill for:\n\n- Setup and configuration questions about public libraries, frameworks, SDKs, APIs, CLI tools, and cloud services.\n- API reference details, migrations, and code examples that should match current documentation.\n- Questions that ask for documentation sources or citations.\n\nDo not use this skill for:\n\n- Private or internal documentation.\n- Local code review or business logic.\n- General programming concepts that do not require external documentation.\n- Questions already answered by documentation the user supplied.\n- DocSearch crawler operations, administration, or private Algolia indices.\n\n## Default flow\n\nFor most questions, call `algolia_docsearch_search_docs`.\n\n1. Set `library` to the official product, library, SDK, or platform name.\n2. Set `query` to the actual documentation question in natural language.\n3. Answer only from the returned documentation chunks.\n4. Include returned source URLs when available.\n\nIf the selected documentation set is ambiguous or irrelevant, do not answer from it. Retry with the exact official product name or use the manual flow.\n\n## Manual flow\n\nUse `algolia_docsearch_resolve_docset` followed by `algolia_docsearch_query_docs` when:\n\n- The question spans multiple products.\n- The right documentation set is ambiguous.\n- The user asks to compare guidance across products.\n\nResolve the documentation set once, select the official vendor's best match, and pass its `docset_id` to `algolia_docsearch_query_docs`. Pass multiple IDs when the question genuinely spans products.\n\n## Answering\n\n- Ground the answer only in returned documentation content.\n- Prefer official vendor documentation sets over third-party mentions.\n- Include source links next to the claims they support.\n- If no relevant documentation is returned, say so and ask for a more specific product name or documentation source.\n- Never invent citations, credentials, private data, or unsupported capabilities.\n","packages/website/package.json":"{\n  \"name\": \"@docsearch/website\",\n  \"version\": \"4.6.0\",\n  \"private\": true,\n  \"homepage\": \"https://docsearch.algolia.com/\",\n  \"scripts\": {\n    \"build:clean\": \"rm -rf dist build .docusaurus node_modules\",\n    \"docusaurus\": \"docusaurus\",\n    \"start\": \"docusaurus start\",\n    \"build\": \"docusaurus build\",\n    \"swizzle\": \"docusaurus swizzle\",\n    \"deploy\": \"docusaurus deploy\",\n    \"clear\": \"docusaurus clear\",\n    \"serve\": \"docusaurus serve\",\n    \"write-translations\": \"docusaurus write-translations\",\n    \"write-heading-ids\": \"docusaurus write-heading-ids\"\n  },\n  \"dependencies\": {\n    \"@docsearch/core\": \"workspace:*\",\n    \"@docsearch/css\": \"workspace:*\",\n    \"@docsearch/docusaurus-adapter\": \"workspace:*\",\n    \"@docsearch/modal\": \"workspace:*\",\n    \"@docsearch/react\": \"workspace:*\",\n    \"@docusaurus/core\": \"3.10.2\",\n    \"@docusaurus/preset-classic\": \"3.10.2\",\n    \"@docusaurus/theme-common\": \"3.10.2\",\n    \"@mdx-js/react\": \"^3.1.0\",\n    \"class-variance-authority\": \"^0.7.1\",\n    \"clsx\": \"^2.1.1\",\n    \"cobe\": \"^0.6.4\",\n    \"file-loader\": \"6.2.0\",\n    \"iconoir-react\": \"^7.11.1\",\n    \"mini-svg-data-uri\": \"^1.4.4\",\n    \"motion\": \"^12.23.3\",\n    \"postcss\": \"8.5.6\",\n    \"postcss-import\": \"16.1.1\",\n    \"postcss-preset-env\": \"10.2.4\",\n    \"prism-react-renderer\": \"2.4.1\",\n    \"radix-ui\": \"^1.4.2\",\n    \"react\": \"^18.0.0\",\n    \"react-dom\": \"^18.0.0\",\n    \"react-google-recaptcha\": \"^3.1.0\",\n    \"tailwind-merge\": \"^3.3.1\",\n    \"tw-animate-css\": \"^1.3.5\"\n  },\n  \"devDependencies\": {\n    \"@docusaurus/module-type-aliases\": \"3.10.2\",\n    \"@docusaurus/tsconfig\": \"3.10.2\",\n    \"@docusaurus/types\": \"3.10.2\",\n    \"@tailwindcss/postcss\": \"4.1.11\",\n    \"image-webpack-loader\": \"^8.1.0\",\n    \"tailwindcss\": \"4.1.11\",\n    \"typescript\": \"^5.8.3\"\n  },\n  \"browserslist\": {\n    \"production\": [\n      \">0.5%\",\n      \"not dead\",\n      \"not op_mini all\"\n    ],\n    \"development\": [\n      \"last 1 chrome version\",\n      \"last 1 firefox version\",\n      \"last 1 safari version\"\n    ]\n  }\n}\n","packages/website/README.md":"[![DocSearch][1]][2]\n\nThe easiest way to add search to your documentation. For free.\n\n[![Netlify Status][3]][4]\n\nCheck out our [website][2] for a complete explanation and documentation.\n\n# Installation\n\n1. In the root of this repository (two levels above this directory), do `bun install` and `bun run build`\n1. In this directory, do `bun run start`.\n1. A browser window will open up, pointing to the docs.\n\n# Deployment\n\nNetlify handles the deployment of this website. If you are part of the DocSearch core team. [Access the Netlify Dashboard][11].\n\n[1]: ./static/img/docsearch-logo.svg\n[2]: https://docsearch.algolia.com/\n[3]: https://api.netlify.com/api/v1/badges/30eacc09-d4b2-4a53-879b-04d40aaea454/deploy-status\n[4]: https://app.netlify.com/sites/docsearch/deploys\n[6]: https://github.com/algolia/docsearch\n[7]: https://github.com/algolia/docsearch-configs\n[8]: https://github.com/algolia/docsearch-scraper\n[9]: https://github.com/algolia/docsearch-website\n[10]: https://v2.docusaurus.io/\n[11]: https://app.netlify.com/sites/docsearch/overview\n","packages/website/versions.json":"[\"v4\", \"v3\", \"legacy\"]\n","packages/website/tsconfig.json":"{\n  \"extends\": \"@docusaurus/tsconfig\",\n  \"compilerOptions\": {\n    \"baseUrl\": \".\",\n    \"paths\": {\n      \"@/*\": [\"./*\"]\n    }\n  }\n}\n","packages/website/WRITING_GUIDE.md":"# Style guide\n\n## Core principles\n\n- Help users succeed with Algolia.\n- Docs must stay correct, clear, complete, current.\n- Missing rule: use [Google developer docs style guide](https://developers.google.com/style). API refs: use [API docs style guide](https://api-clients-automation.netlify.app/docs/add-a-new-api/api-documentation-guidelines).\n- Write simple, consistent, concise. Explain what users need. No extra.\n- ALWAYS lean on using standardized markdown templating.\n\n## Voice and tone\n\n- Write like teaching new teammate. Then cut fluff.\n- Use contractions, short sentences, short paragraphs, imperative mood, active voice.\n- Focus user goals, not feature internals.\n- Give guidance + best practices. Samples should feel production-ready.\n- No sarcasm, humor, emojis, double negatives, idioms, `easy`, `simply`, `quick`.\n- Write accessible, global, inclusive docs.\n\n## Version references\n\n- When displaying install commands, ONLY include `@docsearch/*` packages, there's no need to include any other packages unless specified\n\n## Pages\n\n- Every page MUST have a title\n- Every page MUST have a concise description describing at a high level the information that is on the page\n- If you are about to explain a concept or property that is better explained on a different page, prefer to link to that current section on the other page instead\n\n## Tabs\n\n- Use Docusaurus theme `<Tabs />` and `<TabItem />` components when writing the following:\n  - Code snippets: One tab for React/TSX based snippet, one tab for vanilla JS snippet\n    - vanilla js -> label: 'JavaScript', value: 'js'\n    - react -> label: 'React', value: 'react'\n  - Install commands (npm/yarn/pnpm/bun) with each package manager being it's own tab\n- Always give each tab a title\n- \"React\" tab MUST always be the first one listed\n\n**EXAMPLE**:\n\n```tsx\n<Tabs groupId=\"language\" defaultValue=\"js\">\n  <TabItem value=\"js\" label=\"JavaScript\"></TabItem>\n  <TabItem value=\"react\" label=\"React\"></TabItem>\n</Tabs>\n```\n\n## Links\n\n- Prefer to use shared links on pages\n\n**EXAMPLE**:\n\n```mdx\nThis is a test [Website][1]\n\n[1]: https://example.com\n```\n\n## API References\n\n- API reference pages should focus on detailing out the specification for the related package/domain\n- If explaining exports/imports of a package, those definitions MUST appear at the bottom of the page\n  - exports/imports here are the rare occassion where tables ARE THE PREFERRED DISPLAY TYPE\n- Property definition as defined below is preferred over tables\n\n<property-definition>\n## `PROPERTY_NAME`\n\n> `type: TYPE_PRIMITIVE|ROUGH_TYPE_DEFINITION_FROM_SOURCE` | **required** | **optional** | **experimental**\n\nCONCISE DESCRIPTION OF THE PROPERTY\n</property-definition>\n\n\"type\" in the property definition is a static string that should always be included, it tells the reader that the following information is a type definition.\nThe different tags (required/optional/experimental) are optional on their own, but MUST be used correctly\n\n## Tables\n\n- AVOID tables as much as possible\n- IF a table is required, or absolutely the best option for display, it MUST be contained to a MAX of 3 columns\n\n## Package names\n\n- When referencing @docsearch/sidepanel package, the component MUST be named `Sidepanel` (capital 'S')\n\n## Code blocks\n\n- A Codeblock should prefer to have a title to it, ideally a realtively similar filename (app.tsx, Search.tsx, load-docsearch.js)\n","packages/website/components.json":"{\n  \"$schema\": \"https://ui.shadcn.com/schema.json\",\n  \"style\": \"new-york\",\n  \"rsc\": false,\n  \"tsx\": true,\n  \"tailwind\": {\n    \"config\": \"\",\n    \"css\": \"src/css/custom.css\",\n    \"baseColor\": \"neutral\",\n    \"cssVariables\": true,\n    \"prefix\": \"\"\n  },\n  \"aliases\": {\n    \"components\": \"@/components\",\n    \"utils\": \"@/lib/utils\",\n    \"ui\": \"@/components/ui\",\n    \"lib\": \"@/lib\",\n    \"hooks\": \"@/hooks\"\n  },\n  \"iconLibrary\": \"lucide\"\n}\n","packages/docsearch-sidepanel-js/CHANGELOG.md":"# Docsearch-sidepanel-js Skill\n\nPath: `packages/docsearch-sidepanel-js/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/CHANGELOG.md)","packages/docsearch-sidepanel-js/package.json":"# Docsearch-sidepanel-js Skill\n\nPath: `packages/docsearch-sidepanel-js/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/package.json)","packages/docsearch-sidepanel-js/README.md":"# docsearch-sidepanel-js Documentation\n\nPath: `packages/docsearch-sidepanel-js/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/README.md)","packages/docsearch-sidepanel/CHANGELOG.md":"# Docsearch-sidepanel Skill\n\nPath: `packages/docsearch-sidepanel/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/CHANGELOG.md)","packages/docsearch-sidepanel/package.json":"# Docsearch-sidepanel Skill\n\nPath: `packages/docsearch-sidepanel/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/package.json)","packages/docsearch-sidepanel/README.md":"# docsearch-sidepanel Documentation\n\nPath: `packages/docsearch-sidepanel/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/README.md)","packages/docsearch-react/CHANGELOG.md":"# Docsearch-react Skill\n\nPath: `packages/docsearch-react/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/CHANGELOG.md)","packages/docsearch-react/package.json":"# Docsearch-react Skill\n\nPath: `packages/docsearch-react/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/package.json)","packages/docsearch-react/README.md":"# docsearch-react Documentation\n\nPath: `packages/docsearch-react/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/README.md)","packages/docsearch-modal/CHANGELOG.md":"# Docsearch-modal Skill\n\nPath: `packages/docsearch-modal/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/CHANGELOG.md)","packages/docsearch-modal/package.json":"# Docsearch-modal Skill\n\nPath: `packages/docsearch-modal/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/package.json)","packages/docsearch-modal/README.md":"# docsearch-modal Documentation\n\nPath: `packages/docsearch-modal/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/README.md)","packages/docsearch-js/CHANGELOG.md":"# Docsearch-js Skill\n\nPath: `packages/docsearch-js/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/CHANGELOG.md)","packages/docsearch-js/package.json":"# Docsearch-js Skill\n\nPath: `packages/docsearch-js/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/package.json)","packages/docsearch-js/README.md":"# docsearch-js Documentation\n\nPath: `packages/docsearch-js/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/README.md)","packages/docsearch-css/CHANGELOG.md":"# Docsearch-css Skill\n\nPath: `packages/docsearch-css/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/CHANGELOG.md)","packages/docsearch-css/package.json":"# Docsearch-css Skill\n\nPath: `packages/docsearch-css/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/package.json)","packages/docsearch-css/README.md":"# docsearch-css Documentation\n\nPath: `packages/docsearch-css/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/README.md)","packages/docsearch-core/CHANGELOG.md":"# Docsearch-core Skill\n\nPath: `packages/docsearch-core/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/CHANGELOG.md)","packages/docsearch-core/package.json":"# Docsearch-core Skill\n\nPath: `packages/docsearch-core/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/package.json)","packages/docsearch-core/README.md":"# docsearch-core Documentation\n\nPath: `packages/docsearch-core/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/README.md)","packages/docsearch-cli/CHANGELOG.md":"# Docsearch-cli Skill\n\nPath: `packages/docsearch-cli/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/CHANGELOG.md)","packages/docsearch-cli/package.json":"# Docsearch-cli Skill\n\nPath: `packages/docsearch-cli/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/package.json)","packages/docsearch-cli/README.md":"# docsearch-cli Documentation\n\nPath: `packages/docsearch-cli/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/README.md)","packages/docsearch-cli/tsconfig.json":"# Docsearch-cli Skill\n\nPath: `packages/docsearch-cli/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/tsconfig.json)","mcp/plugins/docsearch/README.md":"# docsearch Documentation\n\nPath: `mcp/plugins/docsearch/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/README.md)","packages/website/docs/docsearch-program.md":"# Docs Skill\n\nPath: `packages/website/docs/docsearch-program.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/docsearch-program.md)","packages/website/docs/integrations.md":"# Docs Skill\n\nPath: `packages/website/docs/integrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/integrations.md)","packages/website/docs/record-extractor.md":"# Docs Skill\n\nPath: `packages/website/docs/record-extractor.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/record-extractor.md)","packages/website/docs/styling.md":"# Docs Skill\n\nPath: `packages/website/docs/styling.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/styling.md)","packages/website/docs/tips.md":"# Docs Skill\n\nPath: `packages/website/docs/tips.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/tips.md)","packages/website/docs/what-is-docsearch.md":"# Docs Skill\n\nPath: `packages/website/docs/what-is-docsearch.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/what-is-docsearch.md)","packages/website/docs/who-can-apply.md":"# Docs Skill\n\nPath: `packages/website/docs/who-can-apply.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/who-can-apply.md)","packages/website/versioned_sidebars/version-legacy-sidebars.json":"# Versioned_sidebars Skill\n\nPath: `packages/website/versioned_sidebars/version-legacy-sidebars.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_sidebars/version-legacy-sidebars.json)","packages/website/versioned_sidebars/version-v3-sidebars.json":"# Versioned_sidebars Skill\n\nPath: `packages/website/versioned_sidebars/version-v3-sidebars.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_sidebars/version-v3-sidebars.json)","packages/website/versioned_sidebars/version-v4-sidebars.json":"# Versioned_sidebars Skill\n\nPath: `packages/website/versioned_sidebars/version-v4-sidebars.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_sidebars/version-v4-sidebars.json)","packages/website/versioned_docs/version-v4/docsearch-program.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/docsearch-program.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/docsearch-program.md)","packages/website/versioned_docs/version-v4/integrations.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/integrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/integrations.md)","packages/website/versioned_docs/version-v4/migrating-from-v3.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/migrating-from-v3.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/migrating-from-v3.md)","packages/website/versioned_docs/version-v4/record-extractor.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/record-extractor.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/record-extractor.md)","packages/website/versioned_docs/version-v4/styling.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/styling.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/styling.md)","packages/website/versioned_docs/version-v4/tips.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/tips.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/tips.md)","packages/website/versioned_docs/version-v4/what-is-docsearch.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/what-is-docsearch.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/what-is-docsearch.md)","packages/website/versioned_docs/version-v4/who-can-apply.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/who-can-apply.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/who-can-apply.md)","packages/website/versioned_docs/version-v3/docsearch-program.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/docsearch-program.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/docsearch-program.md)","packages/website/versioned_docs/version-v3/integrations.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/integrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/integrations.md)","packages/website/versioned_docs/version-v3/migrating-from-v2.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/migrating-from-v2.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/migrating-from-v2.md)","packages/website/versioned_docs/version-v3/record-extractor.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/record-extractor.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/record-extractor.md)","packages/website/versioned_docs/version-v3/styling.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/styling.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/styling.md)","packages/website/versioned_docs/version-v3/tips.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/tips.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/tips.md)","packages/website/versioned_docs/version-v3/what-is-docsearch.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/what-is-docsearch.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/what-is-docsearch.md)","packages/website/versioned_docs/version-v3/who-can-apply.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/who-can-apply.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/who-can-apply.md)","packages/website/versioned_docs/version-legacy/behavior.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/behavior.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/behavior.md)","packages/website/versioned_docs/version-legacy/config-file.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/config-file.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/config-file.md)","packages/website/versioned_docs/version-legacy/dropdown.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/dropdown.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/dropdown.md)","packages/website/versioned_docs/version-legacy/faq.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/faq.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/faq.md)","packages/website/versioned_docs/version-legacy/inside-the-engine.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/inside-the-engine.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/inside-the-engine.md)","packages/website/versioned_docs/version-legacy/integrations.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/integrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/integrations.md)","packages/website/versioned_docs/version-legacy/required-configuration.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/required-configuration.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/required-configuration.md)","packages/website/versioned_docs/version-legacy/run-your-own.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/run-your-own.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/run-your-own.md)","packages/website/versioned_docs/version-legacy/scraper-overview.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/scraper-overview.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/scraper-overview.md)","packages/website/versioned_docs/version-legacy/tips.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/tips.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/tips.md)","mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json":"# Algolia-docsearch Skill\n\nPath: `mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json)","mcp/plugins/docsearch/cursor/algolia-docsearch/README.md":"# algolia-docsearch Documentation\n\nPath: `mcp/plugins/docsearch/cursor/algolia-docsearch/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/README.md)","mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json":"# Algolia-docsearch Skill\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json)","mcp/plugins/docsearch/claude/algolia-docsearch/README.md":"# algolia-docsearch Documentation\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/README.md)","mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json":"# Algolia-docsearch Skill\n\nPath: `mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json)","mcp/plugins/docsearch/chatgpt/algolia-docsearch/README.md":"# algolia-docsearch Documentation\n\nPath: `mcp/plugins/docsearch/chatgpt/algolia-docsearch/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/README.md)","mcp/plugins/docsearch/cursor/algolia-docsearch/.cursor-plugin/plugin.json":"# cursor-plugin Plugin Manifest\n\nPath: `mcp/plugins/docsearch/cursor/algolia-docsearch/.cursor-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/.cursor-plugin/plugin.json)","mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/marketplace.json)","mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/plugin.json)","mcp/plugins/docsearch/claude/algolia-docsearch/commands/docs.md":"# Command: /docs\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/commands/docs.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/commands/docs.md)","mcp/plugins/docsearch/chatgpt/algolia-docsearch/.codex-plugin/plugin.json":"# codex-plugin Plugin Manifest\n\nPath: `mcp/plugins/docsearch/chatgpt/algolia-docsearch/.codex-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/.codex-plugin/plugin.json)"},"files":{"AGENTS.md":"# AGENTS.md - DocSearch Development Guide\n\nThis document provides guidelines for AI agents working on the DocSearch codebase.\n\n## Project Overview\n\nDocSearch is an Algolia-powered search widget for documentation sites. It's a TypeScript/React monorepo using Bun workspaces.\n\n### Packages\n\n- `@docsearch/core` - Core logic and hooks\n- `@docsearch/react` - React components\n- `@docsearch/js` - Vanilla JavaScript wrapper\n- `@docsearch/css` - Styles\n- `@docsearch/modal` - Modal component\n- `@docsearch/sidepanel` - Side panel React component\n- `@docsearch/sidepanel-js` - Side panel vanilla JS wrapper\n- `website` - Documentation site (Docusaurus)\n\n## Build Commands\n\n```bash\n# Install dependencies\nbun install\n\n# Build all packages\nbun run build\n\n# Build specific package\nbun run --filter @docsearch/react build\n\n# Watch mode (all packages)\nbun run watch\n```\n\n## Test Commands\n\n```bash\n# Run all unit tests\nbun run test\n\n# Run a single test file\nbun run test --run packages/docsearch-react/src/__tests__/utils.test.ts\n\n# Type checking\nbun run test:types\n\n# Bundle size check\nbun run test:size\n```\n\nWhen running tests, prefer to run specific files with the `--run` flag to prevent running with watch mode.\n\n## Lint Commands\n\n```bash\n# Run oxlint\nbun run lint --format=agent\n\n# Perform oxfmt formatting\nbun run fmt\n\n# Lint CSS\nbun run lint:css\n```\n\n## E2E Testing (Playwright)\n\n```bash\n# Run all Playwright tests\nbun run pw:run\n\n# Run with specific browser\nbun run pw:run:chromium\nbun run pw:run:firefox\nbun run pw:run:webkit\n```\n\nOnly the `chromium` project is currently enabled in `playwright.config.ts`; `firefox` and `webkit` will not run until those projects are uncommented, even though their `pw:run:*` scripts exist.\n\nPlaywright auto-starts the Docusaurus site (`bun run website:test`) on `http://localhost:3000` and reuses an already-running server locally (not in CI). Tests hit the live Algolia index for the docs site, so outbound network access is required.\n\n### Accessibility Tests (axe + Playwright)\n\n- **When to run:** For changes to widget markup, styles, keyboard handling, focus management, or ARIA attributes. Add or extend coverage when introducing new interactive behavior.\n- **Where tests live:**\n  - `e2e/a11y.test.ts` - dedicated axe scans (modal smoke test, modal search results, sidepanel smoke test)\n  - `e2e/fixtures.ts` - shared fixtures, page-ready helpers, and the `gatherA11yViolations` / `axe()` helper (WCAG 2.0/2.1/2.2 A & AA tags)\n  - `e2e/search.spec.ts` - keyboard, focus, and ARIA state assertions (shortcuts, arrow navigation, `aria-activedescendant`, `aria-selected`)\n\n```bash\n# Install the Chromium browser binary (first run only)\nbunx playwright install chromium\n\n# Build workspace packages before running e2e\nbun run build\n\n# Run the dedicated accessibility scans\nbun run pw:run e2e/a11y.test.ts --project=chromium\n\n# Run accessibility scans plus keyboard/focus/ARIA regression tests\nbun run pw:run e2e/a11y.test.ts e2e/search.spec.ts --project=chromium\n\n# Run a single accessibility test by name\nbun run pw:run e2e/a11y.test.ts --project=chromium --grep 'Modal Search results'\n```\n\n- **Test-authoring pattern:** Reuse the shared `axe()` fixture instead of instantiating `AxeBuilder` directly, wait for the target UI state (modal focused, sidepanel open, results rendered) before scanning, scope `.include()` to the relevant container, and attach `scanResults.violations` via `testInfo.attach` for debugging.\n- **Interpreting results:** Existing tests assert a maximum violation-node count per scan (currently 6/24/4), not zero violations. `gatherA11yViolations` flattens `violations[].nodes`, so the count reflects affected elements, not unique rules. Passing means staying within the existing budget — it is not a full accessibility certification, and automated axe checks don't replace manual keyboard traversal and screen-reader verification. Don't raise a threshold or add `.exclude()`/`disableRules()` just to make a failing test pass; investigate the regression, fix it, and only adjust the budget with an explicit justification.\n\n## Code Style Guidelines\n\n### TypeScript\n\n- Use `type` imports for type-only imports: `import type { Foo } from './types'`\n- Prefer interfaces for object shapes, types for unions/primitives\n- Avoid `any`; use `unknown` when type is truly unknown\n\n```typescript\n// Good\nexport type DocSearchHit = {\n  objectID: string;\n  content: string | null;\n};\n\n// Return type annotation\nfunction createStorage<TItem>(key: string): StorageInterface<TItem> {\n  // ...\n}\n```\n\n### Naming Conventions\n\n- **Components**: PascalCase (`DocSearchModal.tsx`)\n- **Hooks**: camelCase with `use` prefix (`useDocSearchKeyboardEvents.ts`)\n- **Utilities**: camelCase (`removeHighlightTags.ts`)\n- **Types**: PascalCase (`InternalDocSearchHit`)\n- **Constants**: SCREAMING_SNAKE_CASE (`MAX_QUERY_SIZE`)\n- **CSS classes**: `DocSearch-` prefix\n\n### React Components\n\n- Use function components with explicit JSX return type\n- Forward refs when needed using `React.forwardRef`\n- Use `React.useCallback` for callbacks passed as props\n- Use `React.useMemo` for expensive computations\n- Prefer destructuring props in function signature\n\n### React Component Structure\n\n- `src/components/ui/` contains reusable rendering components.\n- Prefer domain-light primitives in `src/components/ui/` when possible.\n- Feature-scoped UI components may live in `src/components/ui/` when their feature scope is explicit in the filename, such as `RecentConversationsResults.tsx`.\n- `src/components/` contains scoped composition components that own feature flow, branching, and state orchestration.\n- Keep AI-specific behavior out of generic UI primitives. If a UI component is AI-specific, make that scope clear in its name.\n\n```typescript\nfunction DocSearchComponent(\n  props: DocSearchProps,\n  ref: React.ForwardedRef<DocSearchRef>\n): JSX.Element {\n  // ...\n}\n\nexport const DocSearch = React.forwardRef(DocSearchComponent);\n```\n\n### Error Handling\n\n- Use try-catch for async operations that may fail\n- Check for specific error types when handling errors\n- Fail silently for non-critical localStorage operations\n- Throw descriptive errors for configuration issues\n\n```typescript\ntry {\n  window.localStorage.setItem(key, JSON.stringify(value));\n} catch (error) {\n  if (error instanceof DOMException && error.name === 'QuotaExceededError') {\n    cleanupDocSearchStorage();\n  }\n  // Silently fail for other errors\n}\n```\n\n### Formatting (oxfmt)\n\n- Single quotes for strings\n- Trailing commas (ES5 style)\n- No prose wrapping\n\n### CSS (Stylelint)\n\n- Selector pattern: `^DocSearch-[A-Za-z0-9-]*$`\n- Max nesting depth: 2 (excluding pseudo-classes)\n- Follow `stylelint-config-standard` and `stylelint-config-sass-guidelines`\n\n## Commit Conventions\n\nFollow conventional changelog format:\n\n```\ntype(scope): description\n```\n\nTypes: `fix`, `feat`, `refactor`, `docs`, `chore`\n\nExamples:\n\n- `fix(modal): increase default height`\n- `feat(searchbox): add type input property`\n- `chore(deps): update dependency rollup-plugin-babel to v3.0.7`\n\n## Testing Patterns\n\nTests use Vitest with Testing Library:\n\n```typescript\nimport { describe, it, expect, beforeEach } from 'vitest';\nimport { render, act, fireEvent, screen } from '@testing-library/react';\nimport '@testing-library/jest-dom/vitest';\n\ndescribe('ComponentName', () => {\n  it('describes expected behavior', () => {\n    // Arrange\n    render(<Component />);\n\n    // Act\n    fireEvent.click(screen.getByText('Button'));\n\n    // Assert\n    expect(screen.getByText('Result')).toBeInTheDocument();\n  });\n});\n```\n\n## File Structure\n\n```\npackages/\n  docsearch-react/\n    src/\n      components/         # Scoped React composition components\n        ui/               # Reusable rendering components and explicitly scoped UI pieces\n      __tests__/          # Test files\n      icons/              # Icon components\n      types/              # Type definitions\n      utils/              # Utility functions\n      Sidepanel/          # Sidepanel subcomponents\n      DocSearch.tsx       # Main component\n      index.ts            # Public exports\n```\n\n## Key Dependencies\n\n- `@algolia/autocomplete-core` - Autocomplete engine\n- `algoliasearch` - Algolia search client\n- `ai` / `@ai-sdk/react` - AI/streaming support\n- `marked` - Markdown rendering\n- `rollup` - Build bundling\n- `vitest` - Test runner\n\n## Cursor Cloud specific instructions\n\nToolchain is pinned in `.tool-versions`: Node `24.13.1` (managed via `fnm`) and Bun `1.3.10`. These are preinstalled in the Cloud VM and available on `PATH` in new shells; the startup update script only runs `bun install`.\n\nNon-obvious caveats:\n\n- **To run/demo the widget, use the React playground:** `bun run playground:start` serves at `http://localhost:5173` (Vite). `bun run playground-js:start` serves the vanilla-JS demo. These connect to Algolia's hosted index using public credentials baked into the demo, so **outbound internet is required** for live search results.\n- Run unit tests non-interactively with `bun run test --run` (plain `bun run test` starts Vitest watch mode).\n- `bun run lint:css` reports many pre-existing CSS lint violations in the repo; these are not environment problems.\n\n## Documentation\n\n- When writing or working on the documentation website (`packages/website`), MUST adhere to the writing guidelines in @packages/website/WRITING_GUIDE.md\n",".cursor/mcp.json":"{\n  \"mcpServers\": {\n    \"algolia-docsearch\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.algolia.com/1/docsearch/mcp\"\n    }\n  }\n}\n","mcp/plugins/docsearch/claude/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md":"---\nname: algolia-docsearch-mcp\ndescription: Use this skill when the user asks about public developer documentation, SDKs, APIs, libraries, frameworks, setup, configuration, or code examples. Fetch current docs from Algolia DocSearch MCP and cite source URLs.\n---\n\nWhen the user asks about public developer documentation, use Algolia DocSearch MCP instead of relying only on training data.\n\n## When To Use\n\nUse this skill when the user:\n\n- Asks setup or configuration questions for a public library, framework, SDK, API, or developer tool.\n- Requests code examples that should match current docs.\n- Needs API reference details, migration guidance, or command syntax.\n- Mentions a library or framework whose docs may have changed recently.\n- Asks for sources or citations from public documentation.\n\nDo not use this skill for private company docs, internal repositories, unpublished APIs, or questions where the user already supplied the relevant docs.\n\n## Tools\n\nDocSearch MCP exposes three tools. You can query in natural language — full sentences and questions work well.\n\n- `algolia_docsearch_search_docs` — one-shot lookup. Use this by default.\n- `algolia_docsearch_resolve_docset` — step 1 of the manual flow: find documentation sets.\n- `algolia_docsearch_query_docs` — step 2 of the manual flow: fetch content for chosen docsets.\n\n## Default Flow: One-Shot Search\n\nCall `algolia_docsearch_search_docs` for most lookups.\n\nInput:\n\n- `library`: the product, library, SDK, or platform. Use the official name (for example: `Next.js`, `Stripe`, `Algolia InstantSearch`).\n- `query`: the question, in natural language (for example: `how do middleware matchers work`).\n\nIt resolves the best matching documentation set and returns ranked content in a single call. If `library` is ambiguous, it returns candidate documentation sets instead — pick the right one and pass its `docset_id` to `algolia_docsearch_query_docs`, or retry with the official product name.\n\n## Manual Flow: Resolve, Then Query\n\nUse the two-step flow when a question spans several products, or when you want to inspect and hand-pick documentation sets.\n\n### Step 1: Resolve The Docset\n\nCall `algolia_docsearch_resolve_docset`.\n\nInput:\n\n- `query`: describe the product, library, SDK, or platform. Including the vendor name improves matching.\n- `topN`: optional. Use the default unless the initial result is ambiguous.\n\nEach candidate returns a `title`, `docset_id`, `description`, and ranking signals (`trustScore`, `benchmarkScore`, `popularityScore`). Prefer the official vendor's docset over third-party mentions, breaking ties by the higher scores.\n\n### Step 2: Query The Docs\n\nCall `algolia_docsearch_query_docs`.\n\nInput:\n\n- `query`: what to find in the docs, in natural language.\n- `docsetIds`: an array of the `docset_id` values you selected. Pass several when a question spans multiple products.\n\n## Answer With Sources\n\nUse the returned documentation content to answer the user directly.\n\nGuidelines:\n\n- Include source URLs from the tool result when available.\n- Say when DocSearch does not return a relevant result.\n- Do not invent source citations.\n- Keep the answer focused on the user's question.\n","mcp/plugins/docsearch/cursor/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md":"---\nname: algolia-docsearch-mcp\ndescription: Use this skill when the user asks about public developer documentation, SDKs, APIs, libraries, frameworks, setup, configuration, or code examples. Fetch current docs from Algolia DocSearch MCP and cite source URLs.\n---\n\nWhen the user asks about public developer documentation, use Algolia DocSearch MCP instead of relying only on training data.\n\n## When To Use\n\nUse this skill when the user:\n\n- Asks setup or configuration questions for a public library, framework, SDK, API, or developer tool.\n- Requests code examples that should match current docs.\n- Needs API reference details, migration guidance, or command syntax.\n- Mentions a library or framework whose docs may have changed recently.\n- Asks for sources or citations from public documentation.\n\nDo not use this skill for private company docs, internal repositories, unpublished APIs, or questions where the user already supplied the relevant docs.\n\n## Tools\n\nDocSearch MCP exposes three tools. You can query in natural language — full sentences and questions work well.\n\n- `algolia_docsearch_search_docs` — one-shot lookup. Use this by default.\n- `algolia_docsearch_resolve_docset` — step 1 of the manual flow: find documentation sets.\n- `algolia_docsearch_query_docs` — step 2 of the manual flow: fetch content for chosen docsets.\n\n## Default Flow: One-Shot Search\n\nCall `algolia_docsearch_search_docs` for most lookups.\n\nInput:\n\n- `library`: the product, library, SDK, or platform. Use the official name (for example: `Next.js`, `Stripe`, `Algolia InstantSearch`).\n- `query`: the question, in natural language (for example: `how do middleware matchers work`).\n\nIt resolves the best matching documentation set and returns ranked content in a single call. If `library` is ambiguous, it returns candidate documentation sets instead — pick the right one and pass its `docset_id` to `algolia_docsearch_query_docs`, or retry with the official product name.\n\n## Manual Flow: Resolve, Then Query\n\nUse the two-step flow when a question spans several products, or when you want to inspect and hand-pick documentation sets.\n\n### Step 1: Resolve The Docset\n\nCall `algolia_docsearch_resolve_docset`.\n\nInput:\n\n- `query`: describe the product, library, SDK, or platform. Including the vendor name improves matching.\n- `topN`: optional. Use the default unless the initial result is ambiguous.\n\nEach candidate returns a `title`, `docset_id`, `description`, and ranking signals (`trustScore`, `benchmarkScore`, `popularityScore`). Prefer the official vendor's docset over third-party mentions, breaking ties by the higher scores.\n\n### Step 2: Query The Docs\n\nCall `algolia_docsearch_query_docs`.\n\nInput:\n\n- `query`: what to find in the docs, in natural language.\n- `docsetIds`: an array of the `docset_id` values you selected. Pass several when a question spans multiple products.\n\n## Answer With Sources\n\nUse the returned documentation content to answer the user directly.\n\nGuidelines:\n\n- Include source URLs from the tool result when available.\n- Say when DocSearch does not return a relevant result.\n- Do not invent source citations.\n- Keep the answer focused on the user's question.\n","mcp/plugins/docsearch/chatgpt/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md":"---\nname: algolia-docsearch-mcp\ndescription: Use when the user asks about public developer documentation for a library, framework, SDK, API, CLI tool, or cloud service. Fetch current docs from Algolia DocSearch MCP and cite source URLs.\n---\n\nUse Algolia DocSearch MCP when the answer depends on current public developer documentation.\n\n## Scope\n\nUse this skill for:\n\n- Setup and configuration questions about public libraries, frameworks, SDKs, APIs, CLI tools, and cloud services.\n- API reference details, migrations, and code examples that should match current documentation.\n- Questions that ask for documentation sources or citations.\n\nDo not use this skill for:\n\n- Private or internal documentation.\n- Local code review or business logic.\n- General programming concepts that do not require external documentation.\n- Questions already answered by documentation the user supplied.\n- DocSearch crawler operations, administration, or private Algolia indices.\n\n## Default flow\n\nFor most questions, call `algolia_docsearch_search_docs`.\n\n1. Set `library` to the official product, library, SDK, or platform name.\n2. Set `query` to the actual documentation question in natural language.\n3. Answer only from the returned documentation chunks.\n4. Include returned source URLs when available.\n\nIf the selected documentation set is ambiguous or irrelevant, do not answer from it. Retry with the exact official product name or use the manual flow.\n\n## Manual flow\n\nUse `algolia_docsearch_resolve_docset` followed by `algolia_docsearch_query_docs` when:\n\n- The question spans multiple products.\n- The right documentation set is ambiguous.\n- The user asks to compare guidance across products.\n\nResolve the documentation set once, select the official vendor's best match, and pass its `docset_id` to `algolia_docsearch_query_docs`. Pass multiple IDs when the question genuinely spans products.\n\n## Answering\n\n- Ground the answer only in returned documentation content.\n- Prefer official vendor documentation sets over third-party mentions.\n- Include source links next to the claims they support.\n- If no relevant documentation is returned, say so and ask for a more specific product name or documentation source.\n- Never invent citations, credentials, private data, or unsupported capabilities.\n","packages/website/package.json":"{\n  \"name\": \"@docsearch/website\",\n  \"version\": \"4.6.0\",\n  \"private\": true,\n  \"homepage\": \"https://docsearch.algolia.com/\",\n  \"scripts\": {\n    \"build:clean\": \"rm -rf dist build .docusaurus node_modules\",\n    \"docusaurus\": \"docusaurus\",\n    \"start\": \"docusaurus start\",\n    \"build\": \"docusaurus build\",\n    \"swizzle\": \"docusaurus swizzle\",\n    \"deploy\": \"docusaurus deploy\",\n    \"clear\": \"docusaurus clear\",\n    \"serve\": \"docusaurus serve\",\n    \"write-translations\": \"docusaurus write-translations\",\n    \"write-heading-ids\": \"docusaurus write-heading-ids\"\n  },\n  \"dependencies\": {\n    \"@docsearch/core\": \"workspace:*\",\n    \"@docsearch/css\": \"workspace:*\",\n    \"@docsearch/docusaurus-adapter\": \"workspace:*\",\n    \"@docsearch/modal\": \"workspace:*\",\n    \"@docsearch/react\": \"workspace:*\",\n    \"@docusaurus/core\": \"3.10.2\",\n    \"@docusaurus/preset-classic\": \"3.10.2\",\n    \"@docusaurus/theme-common\": \"3.10.2\",\n    \"@mdx-js/react\": \"^3.1.0\",\n    \"class-variance-authority\": \"^0.7.1\",\n    \"clsx\": \"^2.1.1\",\n    \"cobe\": \"^0.6.4\",\n    \"file-loader\": \"6.2.0\",\n    \"iconoir-react\": \"^7.11.1\",\n    \"mini-svg-data-uri\": \"^1.4.4\",\n    \"motion\": \"^12.23.3\",\n    \"postcss\": \"8.5.6\",\n    \"postcss-import\": \"16.1.1\",\n    \"postcss-preset-env\": \"10.2.4\",\n    \"prism-react-renderer\": \"2.4.1\",\n    \"radix-ui\": \"^1.4.2\",\n    \"react\": \"^18.0.0\",\n    \"react-dom\": \"^18.0.0\",\n    \"react-google-recaptcha\": \"^3.1.0\",\n    \"tailwind-merge\": \"^3.3.1\",\n    \"tw-animate-css\": \"^1.3.5\"\n  },\n  \"devDependencies\": {\n    \"@docusaurus/module-type-aliases\": \"3.10.2\",\n    \"@docusaurus/tsconfig\": \"3.10.2\",\n    \"@docusaurus/types\": \"3.10.2\",\n    \"@tailwindcss/postcss\": \"4.1.11\",\n    \"image-webpack-loader\": \"^8.1.0\",\n    \"tailwindcss\": \"4.1.11\",\n    \"typescript\": \"^5.8.3\"\n  },\n  \"browserslist\": {\n    \"production\": [\n      \">0.5%\",\n      \"not dead\",\n      \"not op_mini all\"\n    ],\n    \"development\": [\n      \"last 1 chrome version\",\n      \"last 1 firefox version\",\n      \"last 1 safari version\"\n    ]\n  }\n}\n","packages/website/README.md":"[![DocSearch][1]][2]\n\nThe easiest way to add search to your documentation. For free.\n\n[![Netlify Status][3]][4]\n\nCheck out our [website][2] for a complete explanation and documentation.\n\n# Installation\n\n1. In the root of this repository (two levels above this directory), do `bun install` and `bun run build`\n1. In this directory, do `bun run start`.\n1. A browser window will open up, pointing to the docs.\n\n# Deployment\n\nNetlify handles the deployment of this website. If you are part of the DocSearch core team. [Access the Netlify Dashboard][11].\n\n[1]: ./static/img/docsearch-logo.svg\n[2]: https://docsearch.algolia.com/\n[3]: https://api.netlify.com/api/v1/badges/30eacc09-d4b2-4a53-879b-04d40aaea454/deploy-status\n[4]: https://app.netlify.com/sites/docsearch/deploys\n[6]: https://github.com/algolia/docsearch\n[7]: https://github.com/algolia/docsearch-configs\n[8]: https://github.com/algolia/docsearch-scraper\n[9]: https://github.com/algolia/docsearch-website\n[10]: https://v2.docusaurus.io/\n[11]: https://app.netlify.com/sites/docsearch/overview\n","packages/website/versions.json":"[\"v4\", \"v3\", \"legacy\"]\n","packages/website/tsconfig.json":"{\n  \"extends\": \"@docusaurus/tsconfig\",\n  \"compilerOptions\": {\n    \"baseUrl\": \".\",\n    \"paths\": {\n      \"@/*\": [\"./*\"]\n    }\n  }\n}\n","packages/website/WRITING_GUIDE.md":"# Style guide\n\n## Core principles\n\n- Help users succeed with Algolia.\n- Docs must stay correct, clear, complete, current.\n- Missing rule: use [Google developer docs style guide](https://developers.google.com/style). API refs: use [API docs style guide](https://api-clients-automation.netlify.app/docs/add-a-new-api/api-documentation-guidelines).\n- Write simple, consistent, concise. Explain what users need. No extra.\n- ALWAYS lean on using standardized markdown templating.\n\n## Voice and tone\n\n- Write like teaching new teammate. Then cut fluff.\n- Use contractions, short sentences, short paragraphs, imperative mood, active voice.\n- Focus user goals, not feature internals.\n- Give guidance + best practices. Samples should feel production-ready.\n- No sarcasm, humor, emojis, double negatives, idioms, `easy`, `simply`, `quick`.\n- Write accessible, global, inclusive docs.\n\n## Version references\n\n- When displaying install commands, ONLY include `@docsearch/*` packages, there's no need to include any other packages unless specified\n\n## Pages\n\n- Every page MUST have a title\n- Every page MUST have a concise description describing at a high level the information that is on the page\n- If you are about to explain a concept or property that is better explained on a different page, prefer to link to that current section on the other page instead\n\n## Tabs\n\n- Use Docusaurus theme `<Tabs />` and `<TabItem />` components when writing the following:\n  - Code snippets: One tab for React/TSX based snippet, one tab for vanilla JS snippet\n    - vanilla js -> label: 'JavaScript', value: 'js'\n    - react -> label: 'React', value: 'react'\n  - Install commands (npm/yarn/pnpm/bun) with each package manager being it's own tab\n- Always give each tab a title\n- \"React\" tab MUST always be the first one listed\n\n**EXAMPLE**:\n\n```tsx\n<Tabs groupId=\"language\" defaultValue=\"js\">\n  <TabItem value=\"js\" label=\"JavaScript\"></TabItem>\n  <TabItem value=\"react\" label=\"React\"></TabItem>\n</Tabs>\n```\n\n## Links\n\n- Prefer to use shared links on pages\n\n**EXAMPLE**:\n\n```mdx\nThis is a test [Website][1]\n\n[1]: https://example.com\n```\n\n## API References\n\n- API reference pages should focus on detailing out the specification for the related package/domain\n- If explaining exports/imports of a package, those definitions MUST appear at the bottom of the page\n  - exports/imports here are the rare occassion where tables ARE THE PREFERRED DISPLAY TYPE\n- Property definition as defined below is preferred over tables\n\n<property-definition>\n## `PROPERTY_NAME`\n\n> `type: TYPE_PRIMITIVE|ROUGH_TYPE_DEFINITION_FROM_SOURCE` | **required** | **optional** | **experimental**\n\nCONCISE DESCRIPTION OF THE PROPERTY\n</property-definition>\n\n\"type\" in the property definition is a static string that should always be included, it tells the reader that the following information is a type definition.\nThe different tags (required/optional/experimental) are optional on their own, but MUST be used correctly\n\n## Tables\n\n- AVOID tables as much as possible\n- IF a table is required, or absolutely the best option for display, it MUST be contained to a MAX of 3 columns\n\n## Package names\n\n- When referencing @docsearch/sidepanel package, the component MUST be named `Sidepanel` (capital 'S')\n\n## Code blocks\n\n- A Codeblock should prefer to have a title to it, ideally a realtively similar filename (app.tsx, Search.tsx, load-docsearch.js)\n","packages/website/components.json":"{\n  \"$schema\": \"https://ui.shadcn.com/schema.json\",\n  \"style\": \"new-york\",\n  \"rsc\": false,\n  \"tsx\": true,\n  \"tailwind\": {\n    \"config\": \"\",\n    \"css\": \"src/css/custom.css\",\n    \"baseColor\": \"neutral\",\n    \"cssVariables\": true,\n    \"prefix\": \"\"\n  },\n  \"aliases\": {\n    \"components\": \"@/components\",\n    \"utils\": \"@/lib/utils\",\n    \"ui\": \"@/components/ui\",\n    \"lib\": \"@/lib\",\n    \"hooks\": \"@/hooks\"\n  },\n  \"iconLibrary\": \"lucide\"\n}\n","packages/docsearch-sidepanel-js/CHANGELOG.md":"# Docsearch-sidepanel-js Skill\n\nPath: `packages/docsearch-sidepanel-js/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/CHANGELOG.md)","packages/docsearch-sidepanel-js/package.json":"# Docsearch-sidepanel-js Skill\n\nPath: `packages/docsearch-sidepanel-js/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/package.json)","packages/docsearch-sidepanel-js/README.md":"# docsearch-sidepanel-js Documentation\n\nPath: `packages/docsearch-sidepanel-js/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/README.md)","packages/docsearch-sidepanel/CHANGELOG.md":"# Docsearch-sidepanel Skill\n\nPath: `packages/docsearch-sidepanel/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/CHANGELOG.md)","packages/docsearch-sidepanel/package.json":"# Docsearch-sidepanel Skill\n\nPath: `packages/docsearch-sidepanel/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/package.json)","packages/docsearch-sidepanel/README.md":"# docsearch-sidepanel Documentation\n\nPath: `packages/docsearch-sidepanel/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/README.md)","packages/docsearch-react/CHANGELOG.md":"# Docsearch-react Skill\n\nPath: `packages/docsearch-react/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/CHANGELOG.md)","packages/docsearch-react/package.json":"# Docsearch-react Skill\n\nPath: `packages/docsearch-react/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/package.json)","packages/docsearch-react/README.md":"# docsearch-react Documentation\n\nPath: `packages/docsearch-react/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/README.md)","packages/docsearch-modal/CHANGELOG.md":"# Docsearch-modal Skill\n\nPath: `packages/docsearch-modal/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/CHANGELOG.md)","packages/docsearch-modal/package.json":"# Docsearch-modal Skill\n\nPath: `packages/docsearch-modal/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/package.json)","packages/docsearch-modal/README.md":"# docsearch-modal Documentation\n\nPath: `packages/docsearch-modal/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/README.md)","packages/docsearch-js/CHANGELOG.md":"# Docsearch-js Skill\n\nPath: `packages/docsearch-js/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/CHANGELOG.md)","packages/docsearch-js/package.json":"# Docsearch-js Skill\n\nPath: `packages/docsearch-js/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/package.json)","packages/docsearch-js/README.md":"# docsearch-js Documentation\n\nPath: `packages/docsearch-js/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/README.md)","packages/docsearch-css/CHANGELOG.md":"# Docsearch-css Skill\n\nPath: `packages/docsearch-css/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/CHANGELOG.md)","packages/docsearch-css/package.json":"# Docsearch-css Skill\n\nPath: `packages/docsearch-css/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/package.json)","packages/docsearch-css/README.md":"# docsearch-css Documentation\n\nPath: `packages/docsearch-css/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/README.md)","packages/docsearch-core/CHANGELOG.md":"# Docsearch-core Skill\n\nPath: `packages/docsearch-core/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/CHANGELOG.md)","packages/docsearch-core/package.json":"# Docsearch-core Skill\n\nPath: `packages/docsearch-core/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/package.json)","packages/docsearch-core/README.md":"# docsearch-core Documentation\n\nPath: `packages/docsearch-core/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/README.md)","packages/docsearch-cli/CHANGELOG.md":"# Docsearch-cli Skill\n\nPath: `packages/docsearch-cli/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/CHANGELOG.md)","packages/docsearch-cli/package.json":"# Docsearch-cli Skill\n\nPath: `packages/docsearch-cli/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/package.json)","packages/docsearch-cli/README.md":"# docsearch-cli Documentation\n\nPath: `packages/docsearch-cli/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/README.md)","packages/docsearch-cli/tsconfig.json":"# Docsearch-cli Skill\n\nPath: `packages/docsearch-cli/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/tsconfig.json)","mcp/plugins/docsearch/README.md":"# docsearch Documentation\n\nPath: `mcp/plugins/docsearch/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/README.md)","packages/website/docs/docsearch-program.md":"# Docs Skill\n\nPath: `packages/website/docs/docsearch-program.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/docsearch-program.md)","packages/website/docs/integrations.md":"# Docs Skill\n\nPath: `packages/website/docs/integrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/integrations.md)","packages/website/docs/record-extractor.md":"# Docs Skill\n\nPath: `packages/website/docs/record-extractor.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/record-extractor.md)","packages/website/docs/styling.md":"# Docs Skill\n\nPath: `packages/website/docs/styling.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/styling.md)","packages/website/docs/tips.md":"# Docs Skill\n\nPath: `packages/website/docs/tips.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/tips.md)","packages/website/docs/what-is-docsearch.md":"# Docs Skill\n\nPath: `packages/website/docs/what-is-docsearch.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/what-is-docsearch.md)","packages/website/docs/who-can-apply.md":"# Docs Skill\n\nPath: `packages/website/docs/who-can-apply.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/who-can-apply.md)","packages/website/versioned_sidebars/version-legacy-sidebars.json":"# Versioned_sidebars Skill\n\nPath: `packages/website/versioned_sidebars/version-legacy-sidebars.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_sidebars/version-legacy-sidebars.json)","packages/website/versioned_sidebars/version-v3-sidebars.json":"# Versioned_sidebars Skill\n\nPath: `packages/website/versioned_sidebars/version-v3-sidebars.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_sidebars/version-v3-sidebars.json)","packages/website/versioned_sidebars/version-v4-sidebars.json":"# Versioned_sidebars Skill\n\nPath: `packages/website/versioned_sidebars/version-v4-sidebars.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_sidebars/version-v4-sidebars.json)","packages/website/versioned_docs/version-v4/docsearch-program.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/docsearch-program.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/docsearch-program.md)","packages/website/versioned_docs/version-v4/integrations.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/integrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/integrations.md)","packages/website/versioned_docs/version-v4/migrating-from-v3.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/migrating-from-v3.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/migrating-from-v3.md)","packages/website/versioned_docs/version-v4/record-extractor.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/record-extractor.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/record-extractor.md)","packages/website/versioned_docs/version-v4/styling.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/styling.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/styling.md)","packages/website/versioned_docs/version-v4/tips.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/tips.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/tips.md)","packages/website/versioned_docs/version-v4/what-is-docsearch.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/what-is-docsearch.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/what-is-docsearch.md)","packages/website/versioned_docs/version-v4/who-can-apply.md":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/who-can-apply.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/who-can-apply.md)","packages/website/versioned_docs/version-v3/docsearch-program.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/docsearch-program.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/docsearch-program.md)","packages/website/versioned_docs/version-v3/integrations.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/integrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/integrations.md)","packages/website/versioned_docs/version-v3/migrating-from-v2.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/migrating-from-v2.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/migrating-from-v2.md)","packages/website/versioned_docs/version-v3/record-extractor.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/record-extractor.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/record-extractor.md)","packages/website/versioned_docs/version-v3/styling.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/styling.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/styling.md)","packages/website/versioned_docs/version-v3/tips.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/tips.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/tips.md)","packages/website/versioned_docs/version-v3/what-is-docsearch.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/what-is-docsearch.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/what-is-docsearch.md)","packages/website/versioned_docs/version-v3/who-can-apply.md":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/who-can-apply.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/who-can-apply.md)","packages/website/versioned_docs/version-legacy/behavior.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/behavior.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/behavior.md)","packages/website/versioned_docs/version-legacy/config-file.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/config-file.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/config-file.md)","packages/website/versioned_docs/version-legacy/dropdown.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/dropdown.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/dropdown.md)","packages/website/versioned_docs/version-legacy/faq.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/faq.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/faq.md)","packages/website/versioned_docs/version-legacy/inside-the-engine.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/inside-the-engine.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/inside-the-engine.md)","packages/website/versioned_docs/version-legacy/integrations.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/integrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/integrations.md)","packages/website/versioned_docs/version-legacy/required-configuration.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/required-configuration.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/required-configuration.md)","packages/website/versioned_docs/version-legacy/run-your-own.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/run-your-own.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/run-your-own.md)","packages/website/versioned_docs/version-legacy/scraper-overview.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/scraper-overview.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/scraper-overview.md)","packages/website/versioned_docs/version-legacy/tips.md":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/tips.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/tips.md)","mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json":"# Algolia-docsearch Skill\n\nPath: `mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json)","mcp/plugins/docsearch/cursor/algolia-docsearch/README.md":"# algolia-docsearch Documentation\n\nPath: `mcp/plugins/docsearch/cursor/algolia-docsearch/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/README.md)","mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json":"# Algolia-docsearch Skill\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json)","mcp/plugins/docsearch/claude/algolia-docsearch/README.md":"# algolia-docsearch Documentation\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/README.md)","mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json":"# Algolia-docsearch Skill\n\nPath: `mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json)","mcp/plugins/docsearch/chatgpt/algolia-docsearch/README.md":"# algolia-docsearch Documentation\n\nPath: `mcp/plugins/docsearch/chatgpt/algolia-docsearch/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/README.md)","mcp/plugins/docsearch/cursor/algolia-docsearch/.cursor-plugin/plugin.json":"# cursor-plugin Plugin Manifest\n\nPath: `mcp/plugins/docsearch/cursor/algolia-docsearch/.cursor-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/.cursor-plugin/plugin.json)","mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/marketplace.json)","mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/plugin.json)","mcp/plugins/docsearch/claude/algolia-docsearch/commands/docs.md":"# Command: /docs\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/commands/docs.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/commands/docs.md)","mcp/plugins/docsearch/chatgpt/algolia-docsearch/.codex-plugin/plugin.json":"# codex-plugin Plugin Manifest\n\nPath: `mcp/plugins/docsearch/chatgpt/algolia-docsearch/.codex-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/.codex-plugin/plugin.json)"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# AGENTS.md - DocSearch Development Guide\n\nThis document provides guidelines for AI agents working on the DocSearch codebase.\n\n## Project Overview\n\nDocSearch is an Algolia-powered search widget for documentation sites. It's a TypeScript/React monorepo using Bun workspaces.\n\n### Packages\n\n- `@docsearch/core` - Core logic and hooks\n- `@docsearch/react` - React components\n- `@docsearch/js` - Vanilla JavaScript wrapper\n- `@docsearch/css` - Styles\n- `@docsearch/modal` - Modal component\n- `@docsearch/sidepanel` - Side panel React component\n- `@docsearch/sidepanel-js` - Side panel vanilla JS wrapper\n- `website` - Documentation site (Docusaurus)\n\n## Build Commands\n\n```bash\n# Install dependencies\nbun install\n\n# Build all packages\nbun run build\n\n# Build specific package\nbun run --filter @docsearch/react build\n\n# Watch mode (all packages)\nbun run watch\n```\n\n## Test Commands\n\n```bash\n# Run all unit tests\nbun run test\n\n# Run a single test file\nbun run test --run packages/docsearch-react/src/__tests__/utils.test.ts\n\n# Type checking\nbun run test:types\n\n# Bundle size check\nbun run test:size\n```\n\nWhen running tests, prefer to run specific files with the `--run` flag to prevent running with watch mode.\n\n## Lint Commands\n\n```bash\n# Run oxlint\nbun run lint --format=agent\n\n# Perform oxfmt formatting\nbun run fmt\n\n# Lint CSS\nbun run lint:css\n```\n\n## E2E Testing (Playwright)\n\n```bash\n# Run all Playwright tests\nbun run pw:run\n\n# Run with specific browser\nbun run pw:run:chromium\nbun run pw:run:firefox\nbun run pw:run:webkit\n```\n\nOnly the `chromium` project is currently enabled in `playwright.config.ts`; `firefox` and `webkit` will not run until those projects are uncommented, even though their `pw:run:*` scripts exist.\n\nPlaywright auto-starts the Docusaurus site (`bun run website:test`) on `http://localhost:3000` and reuses an already-running server locally (not in CI). Tests hit the live Algolia index for the docs site, so outbound network access is required.\n\n### Accessibility Tests (axe + Playwright)\n\n- **When to run:** For changes to widget markup, styles, keyboard handling, focus management, or ARIA attributes. Add or extend coverage when introducing new interactive behavior.\n- **Where tests live:**\n  - `e2e/a11y.test.ts` - dedicated axe scans (modal smoke test, modal search results, sidepanel smoke test)\n  - `e2e/fixtures.ts` - shared fixtures, page-ready helpers, and the `gatherA11yViolations` / `axe()` helper (WCAG 2.0/2.1/2.2 A & AA tags)\n  - `e2e/search.spec.ts` - keyboard, focus, and ARIA state assertions (shortcuts, arrow navigation, `aria-activedescendant`, `aria-selected`)\n\n```bash\n# Install the Chromium browser binary (first run only)\nbunx playwright install chromium\n\n# Build workspace packages before running e2e\nbun run build\n\n# Run the dedicated accessibility scans\nbun run pw:run e2e/a11y.test.ts --project=chromium\n\n# Run accessibility scans plus keyboard/focus/ARIA regression tests\nbun run pw:run e2e/a11y.test.ts e2e/search.spec.ts --project=chromium\n\n# Run a single accessibility test by name\nbun run pw:run e2e/a11y.test.ts --project=chromium --grep 'Modal Search results'\n```\n\n- **Test-authoring pattern:** Reuse the shared `axe()` fixture instead of instantiating `AxeBuilder` directly, wait for the target UI state (modal focused, sidepanel open, results rendered) before scanning, scope `.include()` to the relevant container, and attach `scanResults.violations` via `testInfo.attach` for debugging.\n- **Interpreting results:** Existing tests assert a maximum violation-node count per scan (currently 6/24/4), not zero violations. `gatherA11yViolations` flattens `violations[].nodes`, so the count reflects affected elements, not unique rules. Passing means staying within the existing budget — it is not a full accessibility certification, and automated axe checks don't replace manual keyboard traversal and screen-reader verification. Don't raise a threshold or add `.exclude()`/`disableRules()` just to make a failing test pass; investigate the regression, fix it, and only adjust the budget with an explicit justification.\n\n## Code Style Guidelines\n\n### TypeScript\n\n- Use `type` imports for type-only imports: `import type { Foo } from './types'`\n- Prefer interfaces for object shapes, types for unions/primitives\n- Avoid `any`; use `unknown` when type is truly unknown\n\n```typescript\n// Good\nexport type DocSearchHit = {\n  objectID: string;\n  content: string | null;\n};\n\n// Return type annotation\nfunction createStorage<TItem>(key: string): StorageInterface<TItem> {\n  // ...\n}\n```\n\n### Naming Conventions\n\n- **Components**: PascalCase (`DocSearchModal.tsx`)\n- **Hooks**: camelCase with `use` prefix (`useDocSearchKeyboardEvents.ts`)\n- **Utilities**: camelCase (`removeHighlightTags.ts`)\n- **Types**: PascalCase (`InternalDocSearchHit`)\n- **Constants**: SCREAMING_SNAKE_CASE (`MAX_QUERY_SIZE`)\n- **CSS classes**: `DocSearch-` prefix\n\n### React Components\n\n- Use function components with explicit JSX return type\n- Forward refs when needed using `React.forwardRef`\n- Use `React.useCallback` for callbacks passed as props\n- Use `React.useMemo` for expensive computations\n- Prefer destructuring props in function signature\n\n### React Component Structure\n\n- `src/components/ui/` contains reusable rendering components.\n- Prefer domain-light primitives in `src/components/ui/` when possible.\n- Feature-scoped UI components may live in `src/components/ui/` when their feature scope is explicit in the filename, such as `RecentConversationsResults.tsx`.\n- `src/components/` contains scoped composition components that own feature flow, branching, and state orchestration.\n- Keep AI-specific behavior out of generic UI primitives. If a UI component is AI-specific, make that scope clear in its name.\n\n```typescript\nfunction DocSearchComponent(\n  props: DocSearchProps,\n  ref: React.ForwardedRef<DocSearchRef>\n): JSX.Element {\n  // ...\n}\n\nexport const DocSearch = React.forwardRef(DocSearchComponent);\n```\n\n### Error Handling\n\n- Use try-catch for async operations that may fail\n- Check for specific error types when handling errors\n- Fail silently for non-critical localStorage operations\n- Throw descriptive errors for configuration issues\n\n```typescript\ntry {\n  window.localStorage.setItem(key, JSON.stringify(value));\n} catch (error) {\n  if (error instanceof DOMException && error.name === 'QuotaExceededError') {\n    cleanupDocSearchStorage();\n  }\n  // Silently fail for other errors\n}\n```\n\n### Formatting (oxfmt)\n\n- Single quotes for strings\n- Trailing commas (ES5 style)\n- No prose wrapping\n\n### CSS (Stylelint)\n\n- Selector pattern: `^DocSearch-[A-Za-z0-9-]*$`\n- Max nesting depth: 2 (excluding pseudo-classes)\n- Follow `stylelint-config-standard` and `stylelint-config-sass-guidelines`\n\n## Commit Conventions\n\nFollow conventional changelog format:\n\n```\ntype(scope): description\n```\n\nTypes: `fix`, `feat`, `refactor`, `docs`, `chore`\n\nExamples:\n\n- `fix(modal): increase default height`\n- `feat(searchbox): add type input property`\n- `chore(deps): update dependency rollup-plugin-babel to v3.0.7`\n\n## Testing Patterns\n\nTests use Vitest with Testing Library:\n\n```typescript\nimport { describe, it, expect, beforeEach } from 'vitest';\nimport { render, act, fireEvent, screen } from '@testing-library/react';\nimport '@testing-library/jest-dom/vitest';\n\ndescribe('ComponentName', () => {\n  it('describes expected behavior', () => {\n    // Arrange\n    render(<Component />);\n\n    // Act\n    fireEvent.click(screen.getByText('Button'));\n\n    // Assert\n    expect(screen.getByText('Result')).toBeInTheDocument();\n  });\n});\n```\n\n## File Structure\n\n```\npackages/\n  docsearch-react/\n    src/\n      components/         # Scoped React composition components\n        ui/               # Reusable rendering components and explicitly scoped UI pieces\n      __tests__/          # Test files\n      icons/              # Icon components\n      types/              # Type definitions\n      utils/              # Utility functions\n      Sidepanel/          # Sidepanel subcomponents\n      DocSearch.tsx       # Main component\n      index.ts            # Public exports\n```\n\n## Key Dependencies\n\n- `@algolia/autocomplete-core` - Autocomplete engine\n- `algoliasearch` - Algolia search client\n- `ai` / `@ai-sdk/react` - AI/streaming support\n- `marked` - Markdown rendering\n- `rollup` - Build bundling\n- `vitest` - Test runner\n\n## Cursor Cloud specific instructions\n\nToolchain is pinned in `.tool-versions`: Node `24.13.1` (managed via `fnm`) and Bun `1.3.10`. These are preinstalled in the Cloud VM and available on `PATH` in new shells; the startup update script only runs `bun install`.\n\nNon-obvious caveats:\n\n- **To run/demo the widget, use the React playground:** `bun run playground:start` serves at `http://localhost:5173` (Vite). `bun run playground-js:start` serves the vanilla-JS demo. These connect to Algolia's hosted index using public credentials baked into the demo, so **outbound internet is required** for live search results.\n- Run unit tests non-interactively with `bun run test --run` (plain `bun run test` starts Vitest watch mode).\n- `bun run lint:css` reports many pre-existing CSS lint violations in the repo; these are not environment problems.\n\n## Documentation\n\n- When writing or working on the documentation website (`packages/website`), MUST adhere to the writing guidelines in @packages/website/WRITING_GUIDE.md\n","isInternal":false,"tokens":2272,"sizeBytes":9371},{"name":".mcp.json","path":"mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json","title":"Algolia-docsearch Skill","category":"anthropic-skill","format":"json","content":"# Algolia-docsearch Skill\n\nPath: `mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json)","tokens":300,"sizeBytes":238},{"name":"SKILL.md","path":"mcp/plugins/docsearch/chatgpt/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md","title":"algolia-docsearch-mcp","category":"anthropic-skill","format":"markdown","content":"---\nname: algolia-docsearch-mcp\ndescription: Use when the user asks about public developer documentation for a library, framework, SDK, API, CLI tool, or cloud service. Fetch current docs from Algolia DocSearch MCP and cite source URLs.\n---\n\nUse Algolia DocSearch MCP when the answer depends on current public developer documentation.\n\n## Scope\n\nUse this skill for:\n\n- Setup and configuration questions about public libraries, frameworks, SDKs, APIs, CLI tools, and cloud services.\n- API reference details, migrations, and code examples that should match current documentation.\n- Questions that ask for documentation sources or citations.\n\nDo not use this skill for:\n\n- Private or internal documentation.\n- Local code review or business logic.\n- General programming concepts that do not require external documentation.\n- Questions already answered by documentation the user supplied.\n- DocSearch crawler operations, administration, or private Algolia indices.\n\n## Default flow\n\nFor most questions, call `algolia_docsearch_search_docs`.\n\n1. Set `library` to the official product, library, SDK, or platform name.\n2. Set `query` to the actual documentation question in natural language.\n3. Answer only from the returned documentation chunks.\n4. Include returned source URLs when available.\n\nIf the selected documentation set is ambiguous or irrelevant, do not answer from it. Retry with the exact official product name or use the manual flow.\n\n## Manual flow\n\nUse `algolia_docsearch_resolve_docset` followed by `algolia_docsearch_query_docs` when:\n\n- The question spans multiple products.\n- The right documentation set is ambiguous.\n- The user asks to compare guidance across products.\n\nResolve the documentation set once, select the official vendor's best match, and pass its `docset_id` to `algolia_docsearch_query_docs`. Pass multiple IDs when the question genuinely spans products.\n\n## Answering\n\n- Ground the answer only in returned documentation content.\n- Prefer official vendor documentation sets over third-party mentions.\n- Include source links next to the claims they support.\n- If no relevant documentation is returned, say so and ask for a more specific product name or documentation source.\n- Never invent citations, credentials, private data, or unsupported capabilities.\n","frontmatter":{"name":"algolia-docsearch-mcp","description":"Use when the user asks about public developer documentation for a library, framework, SDK, API, CLI tool, or cloud service. Fetch current docs from Algolia DocSearch MCP and cite source URLs."},"isInternal":false,"tokens":445,"sizeBytes":2284},{"name":".mcp.json","path":"mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json","title":"Algolia-docsearch Skill","category":"anthropic-skill","format":"json","content":"# Algolia-docsearch Skill\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json)","tokens":300,"sizeBytes":236},{"name":"SKILL.md","path":"mcp/plugins/docsearch/claude/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md","title":"algolia-docsearch-mcp","category":"anthropic-skill","format":"markdown","content":"---\nname: algolia-docsearch-mcp\ndescription: Use this skill when the user asks about public developer documentation, SDKs, APIs, libraries, frameworks, setup, configuration, or code examples. Fetch current docs from Algolia DocSearch MCP and cite source URLs.\n---\n\nWhen the user asks about public developer documentation, use Algolia DocSearch MCP instead of relying only on training data.\n\n## When To Use\n\nUse this skill when the user:\n\n- Asks setup or configuration questions for a public library, framework, SDK, API, or developer tool.\n- Requests code examples that should match current docs.\n- Needs API reference details, migration guidance, or command syntax.\n- Mentions a library or framework whose docs may have changed recently.\n- Asks for sources or citations from public documentation.\n\nDo not use this skill for private company docs, internal repositories, unpublished APIs, or questions where the user already supplied the relevant docs.\n\n## Tools\n\nDocSearch MCP exposes three tools. You can query in natural language — full sentences and questions work well.\n\n- `algolia_docsearch_search_docs` — one-shot lookup. Use this by default.\n- `algolia_docsearch_resolve_docset` — step 1 of the manual flow: find documentation sets.\n- `algolia_docsearch_query_docs` — step 2 of the manual flow: fetch content for chosen docsets.\n\n## Default Flow: One-Shot Search\n\nCall `algolia_docsearch_search_docs` for most lookups.\n\nInput:\n\n- `library`: the product, library, SDK, or platform. Use the official name (for example: `Next.js`, `Stripe`, `Algolia InstantSearch`).\n- `query`: the question, in natural language (for example: `how do middleware matchers work`).\n\nIt resolves the best matching documentation set and returns ranked content in a single call. If `library` is ambiguous, it returns candidate documentation sets instead — pick the right one and pass its `docset_id` to `algolia_docsearch_query_docs`, or retry with the official product name.\n\n## Manual Flow: Resolve, Then Query\n\nUse the two-step flow when a question spans several products, or when you want to inspect and hand-pick documentation sets.\n\n### Step 1: Resolve The Docset\n\nCall `algolia_docsearch_resolve_docset`.\n\nInput:\n\n- `query`: describe the product, library, SDK, or platform. Including the vendor name improves matching.\n- `topN`: optional. Use the default unless the initial result is ambiguous.\n\nEach candidate returns a `title`, `docset_id`, `description`, and ranking signals (`trustScore`, `benchmarkScore`, `popularityScore`). Prefer the official vendor's docset over third-party mentions, breaking ties by the higher scores.\n\n### Step 2: Query The Docs\n\nCall `algolia_docsearch_query_docs`.\n\nInput:\n\n- `query`: what to find in the docs, in natural language.\n- `docsetIds`: an array of the `docset_id` values you selected. Pass several when a question spans multiple products.\n\n## Answer With Sources\n\nUse the returned documentation content to answer the user directly.\n\nGuidelines:\n\n- Include source URLs from the tool result when available.\n- Say when DocSearch does not return a relevant result.\n- Do not invent source citations.\n- Keep the answer focused on the user's question.\n","frontmatter":{"name":"algolia-docsearch-mcp","description":"Use this skill when the user asks about public developer documentation, SDKs, APIs, libraries, frameworks, setup, configuration, or code examples. Fetch current docs from Algolia DocSearch MCP and cite source URLs."},"isInternal":false,"tokens":690,"sizeBytes":3185},{"name":"mcp.json","path":"mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json","title":"Algolia-docsearch Skill","category":"anthropic-skill","format":"json","content":"# Algolia-docsearch Skill\n\nPath: `mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json)","tokens":300,"sizeBytes":234},{"name":"SKILL.md","path":"mcp/plugins/docsearch/cursor/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md","title":"algolia-docsearch-mcp","category":"anthropic-skill","format":"markdown","content":"---\nname: algolia-docsearch-mcp\ndescription: Use this skill when the user asks about public developer documentation, SDKs, APIs, libraries, frameworks, setup, configuration, or code examples. Fetch current docs from Algolia DocSearch MCP and cite source URLs.\n---\n\nWhen the user asks about public developer documentation, use Algolia DocSearch MCP instead of relying only on training data.\n\n## When To Use\n\nUse this skill when the user:\n\n- Asks setup or configuration questions for a public library, framework, SDK, API, or developer tool.\n- Requests code examples that should match current docs.\n- Needs API reference details, migration guidance, or command syntax.\n- Mentions a library or framework whose docs may have changed recently.\n- Asks for sources or citations from public documentation.\n\nDo not use this skill for private company docs, internal repositories, unpublished APIs, or questions where the user already supplied the relevant docs.\n\n## Tools\n\nDocSearch MCP exposes three tools. You can query in natural language — full sentences and questions work well.\n\n- `algolia_docsearch_search_docs` — one-shot lookup. Use this by default.\n- `algolia_docsearch_resolve_docset` — step 1 of the manual flow: find documentation sets.\n- `algolia_docsearch_query_docs` — step 2 of the manual flow: fetch content for chosen docsets.\n\n## Default Flow: One-Shot Search\n\nCall `algolia_docsearch_search_docs` for most lookups.\n\nInput:\n\n- `library`: the product, library, SDK, or platform. Use the official name (for example: `Next.js`, `Stripe`, `Algolia InstantSearch`).\n- `query`: the question, in natural language (for example: `how do middleware matchers work`).\n\nIt resolves the best matching documentation set and returns ranked content in a single call. If `library` is ambiguous, it returns candidate documentation sets instead — pick the right one and pass its `docset_id` to `algolia_docsearch_query_docs`, or retry with the official product name.\n\n## Manual Flow: Resolve, Then Query\n\nUse the two-step flow when a question spans several products, or when you want to inspect and hand-pick documentation sets.\n\n### Step 1: Resolve The Docset\n\nCall `algolia_docsearch_resolve_docset`.\n\nInput:\n\n- `query`: describe the product, library, SDK, or platform. Including the vendor name improves matching.\n- `topN`: optional. Use the default unless the initial result is ambiguous.\n\nEach candidate returns a `title`, `docset_id`, `description`, and ranking signals (`trustScore`, `benchmarkScore`, `popularityScore`). Prefer the official vendor's docset over third-party mentions, breaking ties by the higher scores.\n\n### Step 2: Query The Docs\n\nCall `algolia_docsearch_query_docs`.\n\nInput:\n\n- `query`: what to find in the docs, in natural language.\n- `docsetIds`: an array of the `docset_id` values you selected. Pass several when a question spans multiple products.\n\n## Answer With Sources\n\nUse the returned documentation content to answer the user directly.\n\nGuidelines:\n\n- Include source URLs from the tool result when available.\n- Say when DocSearch does not return a relevant result.\n- Do not invent source citations.\n- Keep the answer focused on the user's question.\n","frontmatter":{"name":"algolia-docsearch-mcp","description":"Use this skill when the user asks about public developer documentation, SDKs, APIs, libraries, frameworks, setup, configuration, or code examples. Fetch current docs from Algolia DocSearch MCP and cite source URLs."},"isInternal":false,"tokens":690,"sizeBytes":3185},{"name":"CHANGELOG.md","path":"packages/docsearch-cli/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/CHANGELOG.md","title":"Docsearch-cli Skill","category":"anthropic-skill","format":"markdown","content":"# Docsearch-cli Skill\n\nPath: `packages/docsearch-cli/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/CHANGELOG.md)","tokens":300,"sizeBytes":190},{"name":"package.json","path":"packages/docsearch-cli/package.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/package.json","title":"Docsearch-cli Skill","category":"anthropic-skill","format":"json","content":"# Docsearch-cli Skill\n\nPath: `packages/docsearch-cli/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/package.json)","tokens":300,"sizeBytes":190},{"name":"tsconfig.json","path":"packages/docsearch-cli/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/tsconfig.json","title":"Docsearch-cli Skill","category":"anthropic-skill","format":"json","content":"# Docsearch-cli Skill\n\nPath: `packages/docsearch-cli/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/tsconfig.json)","tokens":300,"sizeBytes":192},{"name":"CHANGELOG.md","path":"packages/docsearch-core/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/CHANGELOG.md","title":"Docsearch-core Skill","category":"anthropic-skill","format":"markdown","content":"# Docsearch-core Skill\n\nPath: `packages/docsearch-core/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/CHANGELOG.md)","tokens":300,"sizeBytes":193},{"name":"package.json","path":"packages/docsearch-core/package.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/package.json","title":"Docsearch-core Skill","category":"anthropic-skill","format":"json","content":"# Docsearch-core Skill\n\nPath: `packages/docsearch-core/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/package.json)","tokens":300,"sizeBytes":193},{"name":"CHANGELOG.md","path":"packages/docsearch-css/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/CHANGELOG.md","title":"Docsearch-css Skill","category":"anthropic-skill","format":"markdown","content":"# Docsearch-css Skill\n\nPath: `packages/docsearch-css/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/CHANGELOG.md)","tokens":300,"sizeBytes":190},{"name":"package.json","path":"packages/docsearch-css/package.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/package.json","title":"Docsearch-css Skill","category":"anthropic-skill","format":"json","content":"# Docsearch-css Skill\n\nPath: `packages/docsearch-css/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/package.json)","tokens":300,"sizeBytes":190},{"name":"CHANGELOG.md","path":"packages/docsearch-js/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/CHANGELOG.md","title":"Docsearch-js Skill","category":"anthropic-skill","format":"markdown","content":"# Docsearch-js Skill\n\nPath: `packages/docsearch-js/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/CHANGELOG.md)","tokens":300,"sizeBytes":187},{"name":"package.json","path":"packages/docsearch-js/package.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/package.json","title":"Docsearch-js Skill","category":"anthropic-skill","format":"json","content":"# Docsearch-js Skill\n\nPath: `packages/docsearch-js/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/package.json)","tokens":300,"sizeBytes":187},{"name":"CHANGELOG.md","path":"packages/docsearch-modal/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/CHANGELOG.md","title":"Docsearch-modal Skill","category":"anthropic-skill","format":"markdown","content":"# Docsearch-modal Skill\n\nPath: `packages/docsearch-modal/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/CHANGELOG.md)","tokens":300,"sizeBytes":196},{"name":"package.json","path":"packages/docsearch-modal/package.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/package.json","title":"Docsearch-modal Skill","category":"anthropic-skill","format":"json","content":"# Docsearch-modal Skill\n\nPath: `packages/docsearch-modal/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/package.json)","tokens":300,"sizeBytes":196},{"name":"CHANGELOG.md","path":"packages/docsearch-react/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/CHANGELOG.md","title":"Docsearch-react Skill","category":"anthropic-skill","format":"markdown","content":"# Docsearch-react Skill\n\nPath: `packages/docsearch-react/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/CHANGELOG.md)","tokens":300,"sizeBytes":196},{"name":"package.json","path":"packages/docsearch-react/package.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/package.json","title":"Docsearch-react Skill","category":"anthropic-skill","format":"json","content":"# Docsearch-react Skill\n\nPath: `packages/docsearch-react/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/package.json)","tokens":300,"sizeBytes":196},{"name":"CHANGELOG.md","path":"packages/docsearch-sidepanel-js/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/CHANGELOG.md","title":"Docsearch-sidepanel-js Skill","category":"anthropic-skill","format":"markdown","content":"# Docsearch-sidepanel-js Skill\n\nPath: `packages/docsearch-sidepanel-js/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/CHANGELOG.md)","tokens":300,"sizeBytes":217},{"name":"package.json","path":"packages/docsearch-sidepanel-js/package.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/package.json","title":"Docsearch-sidepanel-js Skill","category":"anthropic-skill","format":"json","content":"# Docsearch-sidepanel-js Skill\n\nPath: `packages/docsearch-sidepanel-js/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/package.json)","tokens":300,"sizeBytes":217},{"name":"CHANGELOG.md","path":"packages/docsearch-sidepanel/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/CHANGELOG.md","title":"Docsearch-sidepanel Skill","category":"anthropic-skill","format":"markdown","content":"# Docsearch-sidepanel Skill\n\nPath: `packages/docsearch-sidepanel/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/CHANGELOG.md)","tokens":300,"sizeBytes":208},{"name":"package.json","path":"packages/docsearch-sidepanel/package.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/package.json","title":"Docsearch-sidepanel Skill","category":"anthropic-skill","format":"json","content":"# Docsearch-sidepanel Skill\n\nPath: `packages/docsearch-sidepanel/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/package.json)","tokens":300,"sizeBytes":208},{"name":"components.json","path":"packages/website/components.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/components.json","title":"Website Skill","category":"anthropic-skill","format":"json","content":"{\n  \"$schema\": \"https://ui.shadcn.com/schema.json\",\n  \"style\": \"new-york\",\n  \"rsc\": false,\n  \"tsx\": true,\n  \"tailwind\": {\n    \"config\": \"\",\n    \"css\": \"src/css/custom.css\",\n    \"baseColor\": \"neutral\",\n    \"cssVariables\": true,\n    \"prefix\": \"\"\n  },\n  \"aliases\": {\n    \"components\": \"@/components\",\n    \"utils\": \"@/lib/utils\",\n    \"ui\": \"@/components/ui\",\n    \"lib\": \"@/lib\",\n    \"hooks\": \"@/hooks\"\n  },\n  \"iconLibrary\": \"lucide\"\n}\n","frontmatter":{"$schema":"https://ui.shadcn.com/schema.json","style":"new-york","rsc":false,"tsx":true,"tailwind":{"config":"","css":"src/css/custom.css","baseColor":"neutral","cssVariables":true,"prefix":""},"aliases":{"components":"@/components","utils":"@/lib/utils","ui":"@/components/ui","lib":"@/lib","hooks":"@/hooks"},"iconLibrary":"lucide"},"isInternal":false,"tokens":136,"sizeBytes":431},{"name":"docsearch-program.md","path":"packages/website/docs/docsearch-program.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/docsearch-program.md","title":"Docs Skill","category":"anthropic-skill","format":"markdown","content":"# Docs Skill\n\nPath: `packages/website/docs/docsearch-program.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/docsearch-program.md)","tokens":300,"sizeBytes":195},{"name":"integrations.md","path":"packages/website/docs/integrations.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/integrations.md","title":"Docs Skill","category":"anthropic-skill","format":"markdown","content":"# Docs Skill\n\nPath: `packages/website/docs/integrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/integrations.md)","tokens":300,"sizeBytes":185},{"name":"record-extractor.md","path":"packages/website/docs/record-extractor.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/record-extractor.md","title":"Docs Skill","category":"anthropic-skill","format":"markdown","content":"# Docs Skill\n\nPath: `packages/website/docs/record-extractor.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/record-extractor.md)","tokens":300,"sizeBytes":193},{"name":"styling.md","path":"packages/website/docs/styling.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/styling.md","title":"Docs Skill","category":"anthropic-skill","format":"markdown","content":"# Docs Skill\n\nPath: `packages/website/docs/styling.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/styling.md)","tokens":300,"sizeBytes":175},{"name":"tips.md","path":"packages/website/docs/tips.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/tips.md","title":"Docs Skill","category":"anthropic-skill","format":"markdown","content":"# Docs Skill\n\nPath: `packages/website/docs/tips.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/tips.md)","tokens":300,"sizeBytes":169},{"name":"what-is-docsearch.md","path":"packages/website/docs/what-is-docsearch.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/what-is-docsearch.md","title":"Docs Skill","category":"anthropic-skill","format":"markdown","content":"# Docs Skill\n\nPath: `packages/website/docs/what-is-docsearch.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/what-is-docsearch.md)","tokens":300,"sizeBytes":195},{"name":"who-can-apply.md","path":"packages/website/docs/who-can-apply.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/who-can-apply.md","title":"Docs Skill","category":"anthropic-skill","format":"markdown","content":"# Docs Skill\n\nPath: `packages/website/docs/who-can-apply.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/who-can-apply.md)","tokens":300,"sizeBytes":187},{"name":"package.json","path":"packages/website/package.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/package.json","title":"@docsearch/website","category":"anthropic-skill","format":"json","content":"{\n  \"name\": \"@docsearch/website\",\n  \"version\": \"4.6.0\",\n  \"private\": true,\n  \"homepage\": \"https://docsearch.algolia.com/\",\n  \"scripts\": {\n    \"build:clean\": \"rm -rf dist build .docusaurus node_modules\",\n    \"docusaurus\": \"docusaurus\",\n    \"start\": \"docusaurus start\",\n    \"build\": \"docusaurus build\",\n    \"swizzle\": \"docusaurus swizzle\",\n    \"deploy\": \"docusaurus deploy\",\n    \"clear\": \"docusaurus clear\",\n    \"serve\": \"docusaurus serve\",\n    \"write-translations\": \"docusaurus write-translations\",\n    \"write-heading-ids\": \"docusaurus write-heading-ids\"\n  },\n  \"dependencies\": {\n    \"@docsearch/core\": \"workspace:*\",\n    \"@docsearch/css\": \"workspace:*\",\n    \"@docsearch/docusaurus-adapter\": \"workspace:*\",\n    \"@docsearch/modal\": \"workspace:*\",\n    \"@docsearch/react\": \"workspace:*\",\n    \"@docusaurus/core\": \"3.10.2\",\n    \"@docusaurus/preset-classic\": \"3.10.2\",\n    \"@docusaurus/theme-common\": \"3.10.2\",\n    \"@mdx-js/react\": \"^3.1.0\",\n    \"class-variance-authority\": \"^0.7.1\",\n    \"clsx\": \"^2.1.1\",\n    \"cobe\": \"^0.6.4\",\n    \"file-loader\": \"6.2.0\",\n    \"iconoir-react\": \"^7.11.1\",\n    \"mini-svg-data-uri\": \"^1.4.4\",\n    \"motion\": \"^12.23.3\",\n    \"postcss\": \"8.5.6\",\n    \"postcss-import\": \"16.1.1\",\n    \"postcss-preset-env\": \"10.2.4\",\n    \"prism-react-renderer\": \"2.4.1\",\n    \"radix-ui\": \"^1.4.2\",\n    \"react\": \"^18.0.0\",\n    \"react-dom\": \"^18.0.0\",\n    \"react-google-recaptcha\": \"^3.1.0\",\n    \"tailwind-merge\": \"^3.3.1\",\n    \"tw-animate-css\": \"^1.3.5\"\n  },\n  \"devDependencies\": {\n    \"@docusaurus/module-type-aliases\": \"3.10.2\",\n    \"@docusaurus/tsconfig\": \"3.10.2\",\n    \"@docusaurus/types\": \"3.10.2\",\n    \"@tailwindcss/postcss\": \"4.1.11\",\n    \"image-webpack-loader\": \"^8.1.0\",\n    \"tailwindcss\": \"4.1.11\",\n    \"typescript\": \"^5.8.3\"\n  },\n  \"browserslist\": {\n    \"production\": [\n      \">0.5%\",\n      \"not dead\",\n      \"not op_mini all\"\n    ],\n    \"development\": [\n      \"last 1 chrome version\",\n      \"last 1 firefox version\",\n      \"last 1 safari version\"\n    ]\n  }\n}\n","frontmatter":{"name":"@docsearch/website","version":"4.6.0","private":true,"homepage":"https://docsearch.algolia.com/","scripts":{"build:clean":"rm -rf dist build .docusaurus node_modules","docusaurus":"docusaurus","start":"docusaurus start","build":"docusaurus build","swizzle":"docusaurus swizzle","deploy":"docusaurus deploy","clear":"docusaurus clear","serve":"docusaurus serve","write-translations":"docusaurus write-translations","write-heading-ids":"docusaurus write-heading-ids"},"dependencies":{"@docsearch/core":"workspace:*","@docsearch/css":"workspace:*","@docsearch/docusaurus-adapter":"workspace:*","@docsearch/modal":"workspace:*","@docsearch/react":"workspace:*","@docusaurus/core":"3.10.2","@docusaurus/preset-classic":"3.10.2","@docusaurus/theme-common":"3.10.2","@mdx-js/react":"^3.1.0","class-variance-authority":"^0.7.1","clsx":"^2.1.1","cobe":"^0.6.4","file-loader":"6.2.0","iconoir-react":"^7.11.1","mini-svg-data-uri":"^1.4.4","motion":"^12.23.3","postcss":"8.5.6","postcss-import":"16.1.1","postcss-preset-env":"10.2.4","prism-react-renderer":"2.4.1","radix-ui":"^1.4.2","react":"^18.0.0","react-dom":"^18.0.0","react-google-recaptcha":"^3.1.0","tailwind-merge":"^3.3.1","tw-animate-css":"^1.3.5"},"devDependencies":{"@docusaurus/module-type-aliases":"3.10.2","@docusaurus/tsconfig":"3.10.2","@docusaurus/types":"3.10.2","@tailwindcss/postcss":"4.1.11","image-webpack-loader":"^8.1.0","tailwindcss":"4.1.11","typescript":"^5.8.3"},"browserslist":{"production":[">0.5%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]}},"isInternal":false,"tokens":685,"sizeBytes":1969},{"name":"tsconfig.json","path":"packages/website/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/tsconfig.json","title":"Website Skill","category":"anthropic-skill","format":"json","content":"{\n  \"extends\": \"@docusaurus/tsconfig\",\n  \"compilerOptions\": {\n    \"baseUrl\": \".\",\n    \"paths\": {\n      \"@/*\": [\"./*\"]\n    }\n  }\n}\n","frontmatter":{"extends":"@docusaurus/tsconfig","compilerOptions":{"baseUrl":".","paths":{"@/*":["./*"]}}},"isInternal":false,"tokens":42,"sizeBytes":130},{"name":"behavior.md","path":"packages/website/versioned_docs/version-legacy/behavior.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/behavior.md","title":"Version-legacy Skill","category":"anthropic-skill","format":"markdown","content":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/behavior.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/behavior.md)","tokens":300,"sizeBytes":237},{"name":"config-file.md","path":"packages/website/versioned_docs/version-legacy/config-file.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/config-file.md","title":"Version-legacy Skill","category":"anthropic-skill","format":"markdown","content":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/config-file.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/config-file.md)","tokens":300,"sizeBytes":243},{"name":"dropdown.md","path":"packages/website/versioned_docs/version-legacy/dropdown.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/dropdown.md","title":"Version-legacy Skill","category":"anthropic-skill","format":"markdown","content":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/dropdown.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/dropdown.md)","tokens":300,"sizeBytes":237},{"name":"faq.md","path":"packages/website/versioned_docs/version-legacy/faq.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/faq.md","title":"Version-legacy Skill","category":"anthropic-skill","format":"markdown","content":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/faq.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/faq.md)","tokens":300,"sizeBytes":227},{"name":"inside-the-engine.md","path":"packages/website/versioned_docs/version-legacy/inside-the-engine.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/inside-the-engine.md","title":"Version-legacy Skill","category":"anthropic-skill","format":"markdown","content":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/inside-the-engine.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/inside-the-engine.md)","tokens":300,"sizeBytes":255},{"name":"integrations.md","path":"packages/website/versioned_docs/version-legacy/integrations.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/integrations.md","title":"Version-legacy Skill","category":"anthropic-skill","format":"markdown","content":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/integrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/integrations.md)","tokens":300,"sizeBytes":245},{"name":"required-configuration.md","path":"packages/website/versioned_docs/version-legacy/required-configuration.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/required-configuration.md","title":"Version-legacy Skill","category":"anthropic-skill","format":"markdown","content":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/required-configuration.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/required-configuration.md)","tokens":300,"sizeBytes":265},{"name":"run-your-own.md","path":"packages/website/versioned_docs/version-legacy/run-your-own.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/run-your-own.md","title":"Version-legacy Skill","category":"anthropic-skill","format":"markdown","content":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/run-your-own.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/run-your-own.md)","tokens":300,"sizeBytes":245},{"name":"scraper-overview.md","path":"packages/website/versioned_docs/version-legacy/scraper-overview.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/scraper-overview.md","title":"Version-legacy Skill","category":"anthropic-skill","format":"markdown","content":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/scraper-overview.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/scraper-overview.md)","tokens":300,"sizeBytes":253},{"name":"tips.md","path":"packages/website/versioned_docs/version-legacy/tips.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/tips.md","title":"Version-legacy Skill","category":"anthropic-skill","format":"markdown","content":"# Version-legacy Skill\n\nPath: `packages/website/versioned_docs/version-legacy/tips.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-legacy/tips.md)","tokens":300,"sizeBytes":229},{"name":"docsearch-program.md","path":"packages/website/versioned_docs/version-v3/docsearch-program.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/docsearch-program.md","title":"Version-v3 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/docsearch-program.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/docsearch-program.md)","tokens":300,"sizeBytes":243},{"name":"integrations.md","path":"packages/website/versioned_docs/version-v3/integrations.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/integrations.md","title":"Version-v3 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/integrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/integrations.md)","tokens":300,"sizeBytes":233},{"name":"migrating-from-v2.md","path":"packages/website/versioned_docs/version-v3/migrating-from-v2.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/migrating-from-v2.md","title":"Version-v3 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/migrating-from-v2.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/migrating-from-v2.md)","tokens":300,"sizeBytes":243},{"name":"record-extractor.md","path":"packages/website/versioned_docs/version-v3/record-extractor.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/record-extractor.md","title":"Version-v3 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/record-extractor.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/record-extractor.md)","tokens":300,"sizeBytes":241},{"name":"styling.md","path":"packages/website/versioned_docs/version-v3/styling.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/styling.md","title":"Version-v3 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/styling.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/styling.md)","tokens":300,"sizeBytes":223},{"name":"tips.md","path":"packages/website/versioned_docs/version-v3/tips.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/tips.md","title":"Version-v3 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/tips.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/tips.md)","tokens":300,"sizeBytes":217},{"name":"what-is-docsearch.md","path":"packages/website/versioned_docs/version-v3/what-is-docsearch.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/what-is-docsearch.md","title":"Version-v3 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/what-is-docsearch.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/what-is-docsearch.md)","tokens":300,"sizeBytes":243},{"name":"who-can-apply.md","path":"packages/website/versioned_docs/version-v3/who-can-apply.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/who-can-apply.md","title":"Version-v3 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v3 Skill\n\nPath: `packages/website/versioned_docs/version-v3/who-can-apply.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v3/who-can-apply.md)","tokens":300,"sizeBytes":235},{"name":"docsearch-program.md","path":"packages/website/versioned_docs/version-v4/docsearch-program.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/docsearch-program.md","title":"Version-v4 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/docsearch-program.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/docsearch-program.md)","tokens":300,"sizeBytes":243},{"name":"integrations.md","path":"packages/website/versioned_docs/version-v4/integrations.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/integrations.md","title":"Version-v4 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/integrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/integrations.md)","tokens":300,"sizeBytes":233},{"name":"migrating-from-v3.md","path":"packages/website/versioned_docs/version-v4/migrating-from-v3.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/migrating-from-v3.md","title":"Version-v4 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/migrating-from-v3.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/migrating-from-v3.md)","tokens":300,"sizeBytes":243},{"name":"record-extractor.md","path":"packages/website/versioned_docs/version-v4/record-extractor.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/record-extractor.md","title":"Version-v4 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/record-extractor.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/record-extractor.md)","tokens":300,"sizeBytes":241},{"name":"styling.md","path":"packages/website/versioned_docs/version-v4/styling.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/styling.md","title":"Version-v4 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/styling.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/styling.md)","tokens":300,"sizeBytes":223},{"name":"tips.md","path":"packages/website/versioned_docs/version-v4/tips.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/tips.md","title":"Version-v4 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/tips.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/tips.md)","tokens":300,"sizeBytes":217},{"name":"what-is-docsearch.md","path":"packages/website/versioned_docs/version-v4/what-is-docsearch.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/what-is-docsearch.md","title":"Version-v4 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/what-is-docsearch.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/what-is-docsearch.md)","tokens":300,"sizeBytes":243},{"name":"who-can-apply.md","path":"packages/website/versioned_docs/version-v4/who-can-apply.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/who-can-apply.md","title":"Version-v4 Skill","category":"anthropic-skill","format":"markdown","content":"# Version-v4 Skill\n\nPath: `packages/website/versioned_docs/version-v4/who-can-apply.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_docs/version-v4/who-can-apply.md)","tokens":300,"sizeBytes":235},{"name":"version-legacy-sidebars.json","path":"packages/website/versioned_sidebars/version-legacy-sidebars.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_sidebars/version-legacy-sidebars.json","title":"Versioned_sidebars Skill","category":"anthropic-skill","format":"json","content":"# Versioned_sidebars Skill\n\nPath: `packages/website/versioned_sidebars/version-legacy-sidebars.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_sidebars/version-legacy-sidebars.json)","tokens":300,"sizeBytes":253},{"name":"version-v3-sidebars.json","path":"packages/website/versioned_sidebars/version-v3-sidebars.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_sidebars/version-v3-sidebars.json","title":"Versioned_sidebars Skill","category":"anthropic-skill","format":"json","content":"# Versioned_sidebars Skill\n\nPath: `packages/website/versioned_sidebars/version-v3-sidebars.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_sidebars/version-v3-sidebars.json)","tokens":300,"sizeBytes":245},{"name":"version-v4-sidebars.json","path":"packages/website/versioned_sidebars/version-v4-sidebars.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_sidebars/version-v4-sidebars.json","title":"Versioned_sidebars Skill","category":"anthropic-skill","format":"json","content":"# Versioned_sidebars Skill\n\nPath: `packages/website/versioned_sidebars/version-v4-sidebars.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versioned_sidebars/version-v4-sidebars.json)","tokens":300,"sizeBytes":245},{"name":"versions.json","path":"packages/website/versions.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/versions.json","title":"Website Skill","category":"anthropic-skill","format":"json","content":"[\"v4\", \"v3\", \"legacy\"]\n","isInternal":false,"tokens":11,"sizeBytes":23},{"name":"WRITING_GUIDE.md","path":"packages/website/WRITING_GUIDE.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/WRITING_GUIDE.md","title":"Website Skill","category":"anthropic-skill","format":"markdown","content":"# Style guide\n\n## Core principles\n\n- Help users succeed with Algolia.\n- Docs must stay correct, clear, complete, current.\n- Missing rule: use [Google developer docs style guide](https://developers.google.com/style). API refs: use [API docs style guide](https://api-clients-automation.netlify.app/docs/add-a-new-api/api-documentation-guidelines).\n- Write simple, consistent, concise. Explain what users need. No extra.\n- ALWAYS lean on using standardized markdown templating.\n\n## Voice and tone\n\n- Write like teaching new teammate. Then cut fluff.\n- Use contractions, short sentences, short paragraphs, imperative mood, active voice.\n- Focus user goals, not feature internals.\n- Give guidance + best practices. Samples should feel production-ready.\n- No sarcasm, humor, emojis, double negatives, idioms, `easy`, `simply`, `quick`.\n- Write accessible, global, inclusive docs.\n\n## Version references\n\n- When displaying install commands, ONLY include `@docsearch/*` packages, there's no need to include any other packages unless specified\n\n## Pages\n\n- Every page MUST have a title\n- Every page MUST have a concise description describing at a high level the information that is on the page\n- If you are about to explain a concept or property that is better explained on a different page, prefer to link to that current section on the other page instead\n\n## Tabs\n\n- Use Docusaurus theme `<Tabs />` and `<TabItem />` components when writing the following:\n  - Code snippets: One tab for React/TSX based snippet, one tab for vanilla JS snippet\n    - vanilla js -> label: 'JavaScript', value: 'js'\n    - react -> label: 'React', value: 'react'\n  - Install commands (npm/yarn/pnpm/bun) with each package manager being it's own tab\n- Always give each tab a title\n- \"React\" tab MUST always be the first one listed\n\n**EXAMPLE**:\n\n```tsx\n<Tabs groupId=\"language\" defaultValue=\"js\">\n  <TabItem value=\"js\" label=\"JavaScript\"></TabItem>\n  <TabItem value=\"react\" label=\"React\"></TabItem>\n</Tabs>\n```\n\n## Links\n\n- Prefer to use shared links on pages\n\n**EXAMPLE**:\n\n```mdx\nThis is a test [Website][1]\n\n[1]: https://example.com\n```\n\n## API References\n\n- API reference pages should focus on detailing out the specification for the related package/domain\n- If explaining exports/imports of a package, those definitions MUST appear at the bottom of the page\n  - exports/imports here are the rare occassion where tables ARE THE PREFERRED DISPLAY TYPE\n- Property definition as defined below is preferred over tables\n\n<property-definition>\n## `PROPERTY_NAME`\n\n> `type: TYPE_PRIMITIVE|ROUGH_TYPE_DEFINITION_FROM_SOURCE` | **required** | **optional** | **experimental**\n\nCONCISE DESCRIPTION OF THE PROPERTY\n</property-definition>\n\n\"type\" in the property definition is a static string that should always be included, it tells the reader that the following information is a type definition.\nThe different tags (required/optional/experimental) are optional on their own, but MUST be used correctly\n\n## Tables\n\n- AVOID tables as much as possible\n- IF a table is required, or absolutely the best option for display, it MUST be contained to a MAX of 3 columns\n\n## Package names\n\n- When referencing @docsearch/sidepanel package, the component MUST be named `Sidepanel` (capital 'S')\n\n## Code blocks\n\n- A Codeblock should prefer to have a title to it, ideally a realtively similar filename (app.tsx, Search.tsx, load-docsearch.js)\n","isInternal":false,"tokens":780,"sizeBytes":3394},{"name":"marketplace.json","path":"mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/marketplace.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/marketplace.json","title":"Claude Plugin Marketplace Catalog","category":"marketplace","format":"json","content":"# Claude Plugin Marketplace Catalog\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/marketplace.json)","tokens":300,"sizeBytes":290},{"name":"plugin.json","path":"mcp/plugins/docsearch/chatgpt/algolia-docsearch/.codex-plugin/plugin.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/.codex-plugin/plugin.json","title":"codex-plugin Plugin Manifest","category":"plugin-manifest","format":"json","content":"# codex-plugin Plugin Manifest\n\nPath: `mcp/plugins/docsearch/chatgpt/algolia-docsearch/.codex-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/.codex-plugin/plugin.json)","tokens":300,"sizeBytes":275},{"name":"README.md","path":"mcp/plugins/docsearch/chatgpt/algolia-docsearch/README.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/README.md","title":"algolia-docsearch Documentation","category":"plugin-manifest","format":"markdown","content":"# algolia-docsearch Documentation\n\nPath: `mcp/plugins/docsearch/chatgpt/algolia-docsearch/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/README.md)","tokens":300,"sizeBytes":246},{"name":"plugin.json","path":"mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/plugin.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/plugin.json","title":"claude-plugin Plugin Manifest","category":"plugin-manifest","format":"json","content":"# claude-plugin Plugin Manifest\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/.claude-plugin/plugin.json)","tokens":300,"sizeBytes":276},{"name":"README.md","path":"mcp/plugins/docsearch/claude/algolia-docsearch/README.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/README.md","title":"algolia-docsearch Documentation","category":"plugin-manifest","format":"markdown","content":"# algolia-docsearch Documentation\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/README.md)","tokens":300,"sizeBytes":244},{"name":"plugin.json","path":"mcp/plugins/docsearch/cursor/algolia-docsearch/.cursor-plugin/plugin.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/.cursor-plugin/plugin.json","title":"cursor-plugin Plugin Manifest","category":"plugin-manifest","format":"json","content":"# cursor-plugin Plugin Manifest\n\nPath: `mcp/plugins/docsearch/cursor/algolia-docsearch/.cursor-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/.cursor-plugin/plugin.json)","tokens":300,"sizeBytes":276},{"name":"README.md","path":"mcp/plugins/docsearch/cursor/algolia-docsearch/README.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/README.md","title":"algolia-docsearch Documentation","category":"plugin-manifest","format":"markdown","content":"# algolia-docsearch Documentation\n\nPath: `mcp/plugins/docsearch/cursor/algolia-docsearch/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/README.md)","tokens":300,"sizeBytes":244},{"name":"README.md","path":"mcp/plugins/docsearch/README.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/README.md","title":"docsearch Documentation","category":"plugin-manifest","format":"markdown","content":"# docsearch Documentation\n\nPath: `mcp/plugins/docsearch/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/README.md)","tokens":300,"sizeBytes":186},{"name":"README.md","path":"packages/docsearch-cli/README.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/README.md","title":"docsearch-cli Documentation","category":"plugin-manifest","format":"markdown","content":"# docsearch-cli Documentation\n\nPath: `packages/docsearch-cli/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/README.md)","tokens":300,"sizeBytes":192},{"name":"README.md","path":"packages/docsearch-core/README.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/README.md","title":"docsearch-core Documentation","category":"plugin-manifest","format":"markdown","content":"# docsearch-core Documentation\n\nPath: `packages/docsearch-core/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/README.md)","tokens":300,"sizeBytes":195},{"name":"README.md","path":"packages/docsearch-css/README.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/README.md","title":"docsearch-css Documentation","category":"plugin-manifest","format":"markdown","content":"# docsearch-css Documentation\n\nPath: `packages/docsearch-css/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/README.md)","tokens":300,"sizeBytes":192},{"name":"README.md","path":"packages/docsearch-js/README.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/README.md","title":"docsearch-js Documentation","category":"plugin-manifest","format":"markdown","content":"# docsearch-js Documentation\n\nPath: `packages/docsearch-js/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/README.md)","tokens":300,"sizeBytes":189},{"name":"README.md","path":"packages/docsearch-modal/README.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/README.md","title":"docsearch-modal Documentation","category":"plugin-manifest","format":"markdown","content":"# docsearch-modal Documentation\n\nPath: `packages/docsearch-modal/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/README.md)","tokens":300,"sizeBytes":198},{"name":"README.md","path":"packages/docsearch-react/README.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/README.md","title":"docsearch-react Documentation","category":"plugin-manifest","format":"markdown","content":"# docsearch-react Documentation\n\nPath: `packages/docsearch-react/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/README.md)","tokens":300,"sizeBytes":198},{"name":"README.md","path":"packages/docsearch-sidepanel-js/README.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/README.md","title":"docsearch-sidepanel-js Documentation","category":"plugin-manifest","format":"markdown","content":"# docsearch-sidepanel-js Documentation\n\nPath: `packages/docsearch-sidepanel-js/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/README.md)","tokens":300,"sizeBytes":219},{"name":"README.md","path":"packages/docsearch-sidepanel/README.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/README.md","title":"docsearch-sidepanel Documentation","category":"plugin-manifest","format":"markdown","content":"# docsearch-sidepanel Documentation\n\nPath: `packages/docsearch-sidepanel/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/README.md)","tokens":300,"sizeBytes":210},{"name":"README.md","path":"packages/website/README.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/README.md","title":"website Documentation","category":"plugin-manifest","format":"markdown","content":"[![DocSearch][1]][2]\n\nThe easiest way to add search to your documentation. For free.\n\n[![Netlify Status][3]][4]\n\nCheck out our [website][2] for a complete explanation and documentation.\n\n# Installation\n\n1. In the root of this repository (two levels above this directory), do `bun install` and `bun run build`\n1. In this directory, do `bun run start`.\n1. A browser window will open up, pointing to the docs.\n\n# Deployment\n\nNetlify handles the deployment of this website. If you are part of the DocSearch core team. [Access the Netlify Dashboard][11].\n\n[1]: ./static/img/docsearch-logo.svg\n[2]: https://docsearch.algolia.com/\n[3]: https://api.netlify.com/api/v1/badges/30eacc09-d4b2-4a53-879b-04d40aaea454/deploy-status\n[4]: https://app.netlify.com/sites/docsearch/deploys\n[6]: https://github.com/algolia/docsearch\n[7]: https://github.com/algolia/docsearch-configs\n[8]: https://github.com/algolia/docsearch-scraper\n[9]: https://github.com/algolia/docsearch-website\n[10]: https://v2.docusaurus.io/\n[11]: https://app.netlify.com/sites/docsearch/overview\n","isInternal":false,"tokens":303,"sizeBytes":1050},{"name":"mcp.json","path":".cursor/mcp.json","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/.cursor/mcp.json","title":"Model Context Protocol (MCP) Configuration","category":"mcp-config","format":"json","content":"{\n  \"mcpServers\": {\n    \"algolia-docsearch\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.algolia.com/1/docsearch/mcp\"\n    }\n  }\n}\n","frontmatter":{"mcpServers":{"algolia-docsearch":{"type":"http","url":"https://mcp.algolia.com/1/docsearch/mcp"}}},"isInternal":false,"tokens":48,"sizeBytes":136},{"name":"docs.md","path":"mcp/plugins/docsearch/claude/algolia-docsearch/commands/docs.md","rawUrl":"https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/commands/docs.md","title":"Command: /docs","category":"command-prompt","format":"markdown","content":"# Command: /docs\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/commands/docs.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/commands/docs.md)","tokens":300,"sizeBytes":241}],"systemPromptSnippet":"<yakaai_skills repo=\"algolia/docsearch\">\n<!-- File: AGENTS.md (Tokens: ~2272 | Category: root-instruction) -->\n# AGENTS.md - DocSearch Development Guide\n\nThis document provides guidelines for AI agents working on the DocSearch codebase.\n\n## Project Overview\n\nDocSearch is an Algolia-powered search widget for documentation sites. It's a TypeScript/React monorepo using Bun workspaces.\n\n### Packages\n\n- `@docsearch/core` - Core logic and hooks\n- `@docsearch/react` - React components\n- `@docsearch/js` - Vanilla JavaScript wrapper\n- `@docsearch/css` - Styles\n- `@docsearch/modal` - Modal component\n- `@docsearch/sidepanel` - Side panel React component\n- `@docsearch/sidepanel-js` - Side panel vanilla JS wrapper\n- `website` - Documentation site (Docusaurus)\n\n## Build Commands\n\n```bash\n# Install dependencies\nbun install\n\n# Build all packages\nbun run build\n\n# Build specific package\nbun run --filter @docsearch/react build\n\n# Watch mode (all packages)\nbun run watch\n```\n\n## Test Commands\n\n```bash\n# Run all unit tests\nbun run test\n\n# Run a single test file\nbun run test --run packages/docsearch-react/src/__tests__/utils.test.ts\n\n# Type checking\nbun run test:types\n\n# Bundle size check\nbun run test:size\n```\n\nWhen running tests, prefer to run specific files with the `--run` flag to prevent running with watch mode.\n\n## Lint Commands\n\n```bash\n# Run oxlint\nbun run lint --format=agent\n\n# Perform oxfmt formatting\nbun run fmt\n\n# Lint CSS\nbun run lint:css\n```\n\n## E2E Testing (Playwright)\n\n```bash\n# Run all Playwright tests\nbun run pw:run\n\n# Run with specific browser\nbun run pw:run:chromium\nbun run pw:run:firefox\nbun run pw:run:webkit\n```\n\nOnly the `chromium` project is currently enabled in `playwright.config.ts`; `firefox` and `webkit` will not run until those projects are uncommented, even though their `pw:run:*` scripts exist.\n\nPlaywright auto-starts the Docusaurus site (`bun run website:test`) on `http://localhost:3000` and reuses an already-running server locally (not in CI). Tests hit the live Algolia index for the docs site, so outbound network access is required.\n\n### Accessibility Tests (axe + Playwright)\n\n- **When to run:** For changes to widget markup, styles, keyboard handling, focus management, or ARIA attributes. Add or extend coverage when introducing new interactive behavior.\n- **Where tests live:**\n  - `e2e/a11y.test.ts` - dedicated axe scans (modal smoke test, modal search results, sidepanel smoke test)\n  - `e2e/fixtures.ts` - shared fixtures, page-ready helpers, and the `gatherA11yViolations` / `axe()` helper (WCAG 2.0/2.1/2.2 A & AA tags)\n  - `e2e/search.spec.ts` - keyboard, focus, and ARIA state assertions (shortcuts, arrow navigation, `aria-activedescendant`, `aria-selected`)\n\n```bash\n# Install the Chromium browser binary (first run only)\nbunx playwright install chromium\n\n# Build workspace packages before running e2e\nbun run build\n\n# Run the dedicated accessibility scans\nbun run pw:run e2e/a11y.test.ts --project=chromium\n\n# Run accessibility scans plus keyboard/focus/ARIA regression tests\nbun run pw:run e2e/a11y.test.ts e2e/search.spec.ts --project=chromium\n\n# Run a single accessibility test by name\nbun run pw:run e2e/a11y.test.ts --project=chromium --grep 'Modal Search results'\n```\n\n- **Test-authoring pattern:** Reuse the shared `axe()` fixture instead of instantiating `AxeBuilder` directly, wait for the target UI state (modal focused, sidepanel open, results rendered) before scanning, scope `.include()` to the relevant container, and attach `scanResults.violations` via `testInfo.attach` for debugging.\n- **Interpreting results:** Existing tests assert a maximum violation-node count per scan (currently 6/24/4), not zero violations. `gatherA11yViolations` flattens `violations[].nodes`, so the count reflects affected elements, not unique rules. Passing means staying within the existing budget — it is not a full accessibility certification, and automated axe checks don't replace manual keyboard traversal and screen-reader verification. Don't raise a threshold or add `.exclude()`/`disableRules()` just to make a failing test pass; investigate the regression, fix it, and only adjust the budget with an explicit justification.\n\n## Code Style Guidelines\n\n### TypeScript\n\n- Use `type` imports for type-only imports: `import type { Foo } from './types'`\n- Prefer interfaces for object shapes, types for unions/primitives\n- Avoid `any`; use `unknown` when type is truly unknown\n\n```typescript\n// Good\nexport type DocSearchHit = {\n  objectID: string;\n  content: string | null;\n};\n\n// Return type annotation\nfunction createStorage<TItem>(key: string): StorageInterface<TItem> {\n  // ...\n}\n```\n\n### Naming Conventions\n\n- **Components**: PascalCase (`DocSearchModal.tsx`)\n- **Hooks**: camelCase with `use` prefix (`useDocSearchKeyboardEvents.ts`)\n- **Utilities**: camelCase (`removeHighlightTags.ts`)\n- **Types**: PascalCase (`InternalDocSearchHit`)\n- **Constants**: SCREAMING_SNAKE_CASE (`MAX_QUERY_SIZE`)\n- **CSS classes**: `DocSearch-` prefix\n\n### React Components\n\n- Use function components with explicit JSX return type\n- Forward refs when needed using `React.forwardRef`\n- Use `React.useCallback` for callbacks passed as props\n- Use `React.useMemo` for expensive computations\n- Prefer destructuring props in function signature\n\n### React Component Structure\n\n- `src/components/ui/` contains reusable rendering components.\n- Prefer domain-light primitives in `src/components/ui/` when possible.\n- Feature-scoped UI components may live in `src/components/ui/` when their feature scope is explicit in the filename, such as `RecentConversationsResults.tsx`.\n- `src/components/` contains scoped composition components that own feature flow, branching, and state orchestration.\n- Keep AI-specific behavior out of generic UI primitives. If a UI component is AI-specific, make that scope clear in its name.\n\n```typescript\nfunction DocSearchComponent(\n  props: DocSearchProps,\n  ref: React.ForwardedRef<DocSearchRef>\n): JSX.Element {\n  // ...\n}\n\nexport const DocSearch = React.forwardRef(DocSearchComponent);\n```\n\n### Error Handling\n\n- Use try-catch for async operations that may fail\n- Check for specific error types when handling errors\n- Fail silently for non-critical localStorage operations\n- Throw descriptive errors for configuration issues\n\n```typescript\ntry {\n  window.localStorage.setItem(key, JSON.stringify(value));\n} catch (error) {\n  if (error instanceof DOMException && error.name === 'QuotaExceededError') {\n    cleanupDocSearchStorage();\n  }\n  // Silently fail for other errors\n}\n```\n\n### Formatting (oxfmt)\n\n- Single quotes for strings\n- Trailing commas (ES5 style)\n- No prose wrapping\n\n### CSS (Stylelint)\n\n- Selector pattern: `^DocSearch-[A-Za-z0-9-]*$`\n- Max nesting depth: 2 (excluding pseudo-classes)\n- Follow `stylelint-config-standard` and `stylelint-config-sass-guidelines`\n\n## Commit Conventions\n\nFollow conventional changelog format:\n\n```\ntype(scope): description\n```\n\nTypes: `fix`, `feat`, `refactor`, `docs`, `chore`\n\nExamples:\n\n- `fix(modal): increase default height`\n- `feat(searchbox): add type input property`\n- `chore(deps): update dependency rollup-plugin-babel to v3.0.7`\n\n## Testing Patterns\n\nTests use Vitest with Testing Library:\n\n```typescript\nimport { describe, it, expect, beforeEach } from 'vitest';\nimport { render, act, fireEvent, screen } from '@testing-library/react';\nimport '@testing-library/jest-dom/vitest';\n\ndescribe('ComponentName', () => {\n  it('describes expected behavior', () => {\n    // Arrange\n    render(<Component />);\n\n    // Act\n    fireEvent.click(screen.getByText('Button'));\n\n    // Assert\n    expect(screen.getByText('Result')).toBeInTheDocument();\n  });\n});\n```\n\n## File Structure\n\n```\npackages/\n  docsearch-react/\n    src/\n      components/         # Scoped React composition components\n        ui/               # Reusable rendering components and explicitly scoped UI pieces\n      __tests__/          # Test files\n      icons/              # Icon components\n      types/              # Type definitions\n      utils/              # Utility functions\n      Sidepanel/          # Sidepanel subcomponents\n      DocSearch.tsx       # Main component\n      index.ts            # Public exports\n```\n\n## Key Dependencies\n\n- `@algolia/autocomplete-core` - Autocomplete engine\n- `algoliasearch` - Algolia search client\n- `ai` / `@ai-sdk/react` - AI/streaming support\n- `marked` - Markdown rendering\n- `rollup` - Build bundling\n- `vitest` - Test runner\n\n## Cursor Cloud specific instructions\n\nToolchain is pinned in `.tool-versions`: Node `24.13.1` (managed via `fnm`) and Bun `1.3.10`. These are preinstalled in the Cloud VM and available on `PATH` in new shells; the startup update script only runs `bun install`.\n\nNon-obvious caveats:\n\n- **To run/demo the widget, use the React playground:** `bun run playground:start` serves at `http://localhost:5173` (Vite). `bun run playground-js:start` serves the vanilla-JS demo. These connect to Algolia's hosted index using public credentials baked into the demo, so **outbound internet is required** for live search results.\n- Run unit tests non-interactively with `bun run test --run` (plain `bun run test` starts Vitest watch mode).\n- `bun run lint:css` reports many pre-existing CSS lint violations in the repo; these are not environment problems.\n\n## Documentation\n\n- When writing or working on the documentation website (`packages/website`), MUST adhere to the writing guidelines in @packages/website/WRITING_GUIDE.md\n\n<!-- File: mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Algolia-docsearch Skill\n\nPath: `mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/chatgpt/algolia-docsearch/.mcp.json)\n\n<!-- File: mcp/plugins/docsearch/chatgpt/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md (Tokens: ~445 | Category: anthropic-skill) -->\n---\nname: algolia-docsearch-mcp\ndescription: Use when the user asks about public developer documentation for a library, framework, SDK, API, CLI tool, or cloud service. Fetch current docs from Algolia DocSearch MCP and cite source URLs.\n---\n\nUse Algolia DocSearch MCP when the answer depends on current public developer documentation.\n\n## Scope\n\nUse this skill for:\n\n- Setup and configuration questions about public libraries, frameworks, SDKs, APIs, CLI tools, and cloud services.\n- API reference details, migrations, and code examples that should match current documentation.\n- Questions that ask for documentation sources or citations.\n\nDo not use this skill for:\n\n- Private or internal documentation.\n- Local code review or business logic.\n- General programming concepts that do not require external documentation.\n- Questions already answered by documentation the user supplied.\n- DocSearch crawler operations, administration, or private Algolia indices.\n\n## Default flow\n\nFor most questions, call `algolia_docsearch_search_docs`.\n\n1. Set `library` to the official product, library, SDK, or platform name.\n2. Set `query` to the actual documentation question in natural language.\n3. Answer only from the returned documentation chunks.\n4. Include returned source URLs when available.\n\nIf the selected documentation set is ambiguous or irrelevant, do not answer from it. Retry with the exact official product name or use the manual flow.\n\n## Manual flow\n\nUse `algolia_docsearch_resolve_docset` followed by `algolia_docsearch_query_docs` when:\n\n- The question spans multiple products.\n- The right documentation set is ambiguous.\n- The user asks to compare guidance across products.\n\nResolve the documentation set once, select the official vendor's best match, and pass its `docset_id` to `algolia_docsearch_query_docs`. Pass multiple IDs when the question genuinely spans products.\n\n## Answering\n\n- Ground the answer only in returned documentation content.\n- Prefer official vendor documentation sets over third-party mentions.\n- Include source links next to the claims they support.\n- If no relevant documentation is returned, say so and ask for a more specific product name or documentation source.\n- Never invent citations, credentials, private data, or unsupported capabilities.\n\n<!-- File: mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Algolia-docsearch Skill\n\nPath: `mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/claude/algolia-docsearch/.mcp.json)\n\n<!-- File: mcp/plugins/docsearch/claude/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md (Tokens: ~690 | Category: anthropic-skill) -->\n---\nname: algolia-docsearch-mcp\ndescription: Use this skill when the user asks about public developer documentation, SDKs, APIs, libraries, frameworks, setup, configuration, or code examples. Fetch current docs from Algolia DocSearch MCP and cite source URLs.\n---\n\nWhen the user asks about public developer documentation, use Algolia DocSearch MCP instead of relying only on training data.\n\n## When To Use\n\nUse this skill when the user:\n\n- Asks setup or configuration questions for a public library, framework, SDK, API, or developer tool.\n- Requests code examples that should match current docs.\n- Needs API reference details, migration guidance, or command syntax.\n- Mentions a library or framework whose docs may have changed recently.\n- Asks for sources or citations from public documentation.\n\nDo not use this skill for private company docs, internal repositories, unpublished APIs, or questions where the user already supplied the relevant docs.\n\n## Tools\n\nDocSearch MCP exposes three tools. You can query in natural language — full sentences and questions work well.\n\n- `algolia_docsearch_search_docs` — one-shot lookup. Use this by default.\n- `algolia_docsearch_resolve_docset` — step 1 of the manual flow: find documentation sets.\n- `algolia_docsearch_query_docs` — step 2 of the manual flow: fetch content for chosen docsets.\n\n## Default Flow: One-Shot Search\n\nCall `algolia_docsearch_search_docs` for most lookups.\n\nInput:\n\n- `library`: the product, library, SDK, or platform. Use the official name (for example: `Next.js`, `Stripe`, `Algolia InstantSearch`).\n- `query`: the question, in natural language (for example: `how do middleware matchers work`).\n\nIt resolves the best matching documentation set and returns ranked content in a single call. If `library` is ambiguous, it returns candidate documentation sets instead — pick the right one and pass its `docset_id` to `algolia_docsearch_query_docs`, or retry with the official product name.\n\n## Manual Flow: Resolve, Then Query\n\nUse the two-step flow when a question spans several products, or when you want to inspect and hand-pick documentation sets.\n\n### Step 1: Resolve The Docset\n\nCall `algolia_docsearch_resolve_docset`.\n\nInput:\n\n- `query`: describe the product, library, SDK, or platform. Including the vendor name improves matching.\n- `topN`: optional. Use the default unless the initial result is ambiguous.\n\nEach candidate returns a `title`, `docset_id`, `description`, and ranking signals (`trustScore`, `benchmarkScore`, `popularityScore`). Prefer the official vendor's docset over third-party mentions, breaking ties by the higher scores.\n\n### Step 2: Query The Docs\n\nCall `algolia_docsearch_query_docs`.\n\nInput:\n\n- `query`: what to find in the docs, in natural language.\n- `docsetIds`: an array of the `docset_id` values you selected. Pass several when a question spans multiple products.\n\n## Answer With Sources\n\nUse the returned documentation content to answer the user directly.\n\nGuidelines:\n\n- Include source URLs from the tool result when available.\n- Say when DocSearch does not return a relevant result.\n- Do not invent source citations.\n- Keep the answer focused on the user's question.\n\n<!-- File: mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Algolia-docsearch Skill\n\nPath: `mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/mcp/plugins/docsearch/cursor/algolia-docsearch/mcp.json)\n\n<!-- File: mcp/plugins/docsearch/cursor/algolia-docsearch/skills/algolia-docsearch-mcp/SKILL.md (Tokens: ~690 | Category: anthropic-skill) -->\n---\nname: algolia-docsearch-mcp\ndescription: Use this skill when the user asks about public developer documentation, SDKs, APIs, libraries, frameworks, setup, configuration, or code examples. Fetch current docs from Algolia DocSearch MCP and cite source URLs.\n---\n\nWhen the user asks about public developer documentation, use Algolia DocSearch MCP instead of relying only on training data.\n\n## When To Use\n\nUse this skill when the user:\n\n- Asks setup or configuration questions for a public library, framework, SDK, API, or developer tool.\n- Requests code examples that should match current docs.\n- Needs API reference details, migration guidance, or command syntax.\n- Mentions a library or framework whose docs may have changed recently.\n- Asks for sources or citations from public documentation.\n\nDo not use this skill for private company docs, internal repositories, unpublished APIs, or questions where the user already supplied the relevant docs.\n\n## Tools\n\nDocSearch MCP exposes three tools. You can query in natural language — full sentences and questions work well.\n\n- `algolia_docsearch_search_docs` — one-shot lookup. Use this by default.\n- `algolia_docsearch_resolve_docset` — step 1 of the manual flow: find documentation sets.\n- `algolia_docsearch_query_docs` — step 2 of the manual flow: fetch content for chosen docsets.\n\n## Default Flow: One-Shot Search\n\nCall `algolia_docsearch_search_docs` for most lookups.\n\nInput:\n\n- `library`: the product, library, SDK, or platform. Use the official name (for example: `Next.js`, `Stripe`, `Algolia InstantSearch`).\n- `query`: the question, in natural language (for example: `how do middleware matchers work`).\n\nIt resolves the best matching documentation set and returns ranked content in a single call. If `library` is ambiguous, it returns candidate documentation sets instead — pick the right one and pass its `docset_id` to `algolia_docsearch_query_docs`, or retry with the official product name.\n\n## Manual Flow: Resolve, Then Query\n\nUse the two-step flow when a question spans several products, or when you want to inspect and hand-pick documentation sets.\n\n### Step 1: Resolve The Docset\n\nCall `algolia_docsearch_resolve_docset`.\n\nInput:\n\n- `query`: describe the product, library, SDK, or platform. Including the vendor name improves matching.\n- `topN`: optional. Use the default unless the initial result is ambiguous.\n\nEach candidate returns a `title`, `docset_id`, `description`, and ranking signals (`trustScore`, `benchmarkScore`, `popularityScore`). Prefer the official vendor's docset over third-party mentions, breaking ties by the higher scores.\n\n### Step 2: Query The Docs\n\nCall `algolia_docsearch_query_docs`.\n\nInput:\n\n- `query`: what to find in the docs, in natural language.\n- `docsetIds`: an array of the `docset_id` values you selected. Pass several when a question spans multiple products.\n\n## Answer With Sources\n\nUse the returned documentation content to answer the user directly.\n\nGuidelines:\n\n- Include source URLs from the tool result when available.\n- Say when DocSearch does not return a relevant result.\n- Do not invent source citations.\n- Keep the answer focused on the user's question.\n\n<!-- File: packages/docsearch-cli/CHANGELOG.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-cli Skill\n\nPath: `packages/docsearch-cli/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/CHANGELOG.md)\n\n<!-- File: packages/docsearch-cli/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-cli Skill\n\nPath: `packages/docsearch-cli/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/package.json)\n\n<!-- File: packages/docsearch-cli/tsconfig.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-cli Skill\n\nPath: `packages/docsearch-cli/tsconfig.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-cli/tsconfig.json)\n\n<!-- File: packages/docsearch-core/CHANGELOG.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-core Skill\n\nPath: `packages/docsearch-core/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/CHANGELOG.md)\n\n<!-- File: packages/docsearch-core/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-core Skill\n\nPath: `packages/docsearch-core/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-core/package.json)\n\n<!-- File: packages/docsearch-css/CHANGELOG.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-css Skill\n\nPath: `packages/docsearch-css/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/CHANGELOG.md)\n\n<!-- File: packages/docsearch-css/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-css Skill\n\nPath: `packages/docsearch-css/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-css/package.json)\n\n<!-- File: packages/docsearch-js/CHANGELOG.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-js Skill\n\nPath: `packages/docsearch-js/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/CHANGELOG.md)\n\n<!-- File: packages/docsearch-js/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-js Skill\n\nPath: `packages/docsearch-js/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-js/package.json)\n\n<!-- File: packages/docsearch-modal/CHANGELOG.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-modal Skill\n\nPath: `packages/docsearch-modal/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/CHANGELOG.md)\n\n<!-- File: packages/docsearch-modal/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-modal Skill\n\nPath: `packages/docsearch-modal/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-modal/package.json)\n\n<!-- File: packages/docsearch-react/CHANGELOG.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-react Skill\n\nPath: `packages/docsearch-react/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/CHANGELOG.md)\n\n<!-- File: packages/docsearch-react/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-react Skill\n\nPath: `packages/docsearch-react/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-react/package.json)\n\n<!-- File: packages/docsearch-sidepanel-js/CHANGELOG.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-sidepanel-js Skill\n\nPath: `packages/docsearch-sidepanel-js/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/CHANGELOG.md)\n\n<!-- File: packages/docsearch-sidepanel-js/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-sidepanel-js Skill\n\nPath: `packages/docsearch-sidepanel-js/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel-js/package.json)\n\n<!-- File: packages/docsearch-sidepanel/CHANGELOG.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-sidepanel Skill\n\nPath: `packages/docsearch-sidepanel/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/CHANGELOG.md)\n\n<!-- File: packages/docsearch-sidepanel/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Docsearch-sidepanel Skill\n\nPath: `packages/docsearch-sidepanel/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/docsearch-sidepanel/package.json)\n\n<!-- File: packages/website/components.json (Tokens: ~136 | Category: anthropic-skill) -->\n{\n  \"$schema\": \"https://ui.shadcn.com/schema.json\",\n  \"style\": \"new-york\",\n  \"rsc\": false,\n  \"tsx\": true,\n  \"tailwind\": {\n    \"config\": \"\",\n    \"css\": \"src/css/custom.css\",\n    \"baseColor\": \"neutral\",\n    \"cssVariables\": true,\n    \"prefix\": \"\"\n  },\n  \"aliases\": {\n    \"components\": \"@/components\",\n    \"utils\": \"@/lib/utils\",\n    \"ui\": \"@/components/ui\",\n    \"lib\": \"@/lib\",\n    \"hooks\": \"@/hooks\"\n  },\n  \"iconLibrary\": \"lucide\"\n}\n\n<!-- File: packages/website/docs/docsearch-program.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docs Skill\n\nPath: `packages/website/docs/docsearch-program.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/docsearch-program.md)\n\n<!-- File: packages/website/docs/integrations.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docs Skill\n\nPath: `packages/website/docs/integrations.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/integrations.md)\n\n<!-- File: packages/website/docs/record-extractor.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docs Skill\n\nPath: `packages/website/docs/record-extractor.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/record-extractor.md)\n\n<!-- File: packages/website/docs/styling.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docs Skill\n\nPath: `packages/website/docs/styling.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/styling.md)\n\n<!-- File: packages/website/docs/tips.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Docs Skill\n\nPath: `packages/website/docs/tips.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/algolia/docsearch/HEAD/packages/website/docs/tips.md)\n\n<!-- ... +54 more modular skills available via /api/skills/algolia/docsearch?path={path} -->\n</yakaai_skills>"}