import type { SidebarsConfig } from '@docusaurus/plugin-content-docs';

const sidebars: SidebarsConfig = {
  docsSidebar: [
    {
      type: 'category',
      label: 'Getting Started',
      link: { type: 'generated-index', title: 'Getting Started' },
      items: [
        'getting-started/installation',
        'getting-started/quickstart',
        'getting-started/configuration',
        'getting-started/deployment',
      ],
    },
    {
      type: 'category',
      label: 'Core',
      link: { type: 'doc', id: 'core/index' },
      items: [
        'core/cache-manager',
        'core/key-builder',
        'core/metrics',
        'core/serializer',
        'core/stampede',
        'core/warmer',
        'core/request-config',
        'core/compressor',
        'core/policies',
        'core/invalidation',
        'core/observability',
        'core/settings',
      ],
    },
    {
      type: 'category',
      label: 'Backends',
      link: { type: 'doc', id: 'backends/index' },
      items: [
        'backends/memory',
        'backends/async-memory',
        'backends/tiered',
        'backends/disk',
        'backends/redis',
        'backends/faiss',
        'backends/chroma',
        'backends/qdrant',
        'backends/weaviate',
        'backends/pinecone',
      ],
    },
    {
      type: 'category',
      label: 'Cache Layers',
      link: { type: 'doc', id: 'layers/index' },
      items: [
        'layers/response',
        'layers/streaming',
        'layers/embedding',
        'layers/retrieval',
        'layers/context',
        'layers/semantic',
        'layers/adaptive-semantic',
        'layers/prompt-cache',
      ],
    },
    {
      type: 'category',
      label: 'Middleware',
      link: { type: 'doc', id: 'middleware/index' },
      items: [
        'middleware/llm',
        'middleware/embedding',
        'middleware/retriever',
      ],
    },
    {
      type: 'category',
      label: 'Adapters',
      link: { type: 'doc', id: 'adapters/index' },
      items: [
        'adapters/openai-sdk',
        'adapters/anthropic-sdk',
        'adapters/mistral',
        'adapters/gemini',
        'adapters/google-adk',
        'adapters/openai-agents',
        'adapters/llamaindex',
        'adapters/claude-agent',
        'adapters/langchain',
        'adapters/langgraph',
        'adapters/autogen',
        'adapters/crewai',
        'adapters/agno',
        'adapters/a2a',
      ],
    },
    {
      type: 'category',
      label: 'Cookbook',
      link: { type: 'doc', id: 'cookbook/index' },
      items: [
        'cookbook/runnable-examples',
        'cookbook/example-outputs',
        'cookbook/core',
        'cookbook/langchain',
        'cookbook/langgraph',
        'cookbook/autogen',
        'cookbook/crewai',
        'cookbook/agno',
        'cookbook/a2a',
        'cookbook/openai-sdk',
        'cookbook/anthropic-sdk',
        'cookbook/mistral',
        'cookbook/gemini',
        'cookbook/google-adk',
        'cookbook/openai-agents',
        'cookbook/llamaindex',
        'cookbook/semantic-cache',
        'cookbook/adaptive-cache',
        'cookbook/streaming',
        'cookbook/prompt-cache',
        'cookbook/tiered-backend',
        'cookbook/redis',
        'cookbook/invalidation',
        'cookbook/ttl',
        'cookbook/multi-framework',
        'cookbook/metrics-observability',
      ],
    },
    {
      type: 'category',
      label: 'Examples',
      link: { type: 'generated-index', title: 'Examples' },
      items: [
        'examples/rag-ollama',
      ],
    },
    {
      type: 'doc',
      id: 'api-reference/index',
      label: 'API Reference',
    },
  ],
};

export default sidebars;
