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

const sidebars: SidebarsConfig = {
  developerSidebar: [
    {
      type: 'category',
      label: 'Architecture',
      collapsible: false,
      items: [
        {
          type: 'doc',
          id: 'developer/index',
          label: 'Overview',
          customProps: { icon: 'lu-book' },
        },
        {
          type: 'doc',
          id: 'developer/retain',
          label: 'Retain',
          customProps: { icon: 'lu-brain' },
        },
        {
          type: 'doc',
          id: 'developer/retrieval',
          label: 'Recall',
          customProps: { icon: 'lu-search' },
        },
        {
          type: 'doc',
          id: 'developer/reflect',
          label: 'Reflect',
          customProps: { icon: 'lu-message' },
        },
        {
          type: 'doc',
          id: 'developer/observations',
          label: 'Observations',
          customProps: { icon: 'lu-activity' },
        },
        {
          type: 'doc',
          id: 'developer/multilingual',
          label: 'Multilingual',
          customProps: { icon: 'lu-languages' },
        },
        {
          type: 'doc',
          id: 'developer/performance',
          label: 'Performance',
          customProps: { icon: 'lu-zap' },
        },
        {
          type: 'doc',
          id: 'developer/storage',
          label: 'Storage',
          customProps: { icon: 'lu-database' },
        },
        {
          type: 'doc',
          id: 'developer/rag-vs-hindsight',
          label: 'RAG vs Memory',
          customProps: { icon: 'lu-compare' },
        },
      ],
    },
    {
      type: 'category',
      label: 'API',
      collapsible: false,
      items: [
        {
          type: 'doc',
          id: 'developer/api/quickstart',
          label: 'Quick Start',
          customProps: { icon: 'lu-rocket' },
        },
        {
          type: 'doc',
          id: 'developer/api/retain',
          label: 'Retain',
          customProps: { icon: 'lu-brain' },
        },
        {
          type: 'doc',
          id: 'developer/api/recall',
          label: 'Recall',
          customProps: { icon: 'lu-search' },
        },
        {
          type: 'doc',
          id: 'developer/api/reflect',
          label: 'Reflect',
          customProps: { icon: 'lu-message' },
        },
        {
          type: 'doc',
          id: 'developer/api/mental-models',
          label: 'Mental Models',
          customProps: { icon: 'lu-layers' },
        },
        {
          type: 'doc',
          id: 'developer/api/memory-banks',
          label: 'Memory Banks',
          customProps: { icon: 'lu-memory' },
        },
        {
          type: 'doc',
          id: 'developer/api/documents',
          label: 'Documents',
          customProps: { icon: 'lu-file' },
        },
        {
          type: 'doc',
          id: 'developer/api/operations',
          label: 'Operations',
          customProps: { icon: 'lu-cpu' },
        },
        {
          type: 'doc',
          id: 'developer/api/webhooks',
          label: 'Webhooks',
          customProps: { icon: 'lu-webhook' },
        },
        {
          type: 'doc',
          id: 'developer/api/bank-templates',
          label: 'Bank Templates',
          customProps: { icon: 'lu-file-json' },
        },
        {
          type: 'link',
          href: '/api-reference',
          label: 'API Reference',
          customProps: { icon: 'lu-book-open', iconAfter: 'lu-arrow-up-right' },
        },
      ],
    },
    {
      type: 'category',
      label: 'Clients',
      collapsible: false,
      items: [
        {
          type: 'doc',
          id: 'sdks/python',
          label: 'Python',
          customProps: { icon: 'si-python' },
        },
        {
          type: 'doc',
          id: 'sdks/nodejs',
          label: 'TypeScript',
          customProps: { icon: '/img/icons/typescript.png' },
        },
        {
          type: 'doc',
          id: 'sdks/go',
          label: 'Go',
          customProps: { icon: 'si-go' },
        },
        {
          type: 'doc',
          id: 'sdks/cli',
          label: 'CLI',
          customProps: { icon: 'lu-terminal' },
        },
        {
          type: 'doc',
          id: 'sdks/embed',
          label: 'Embedded Python',
          customProps: { icon: '/img/icons/package.svg' },
        },
      ],
    },
    {
      type: 'category',
      label: 'Integrations',
      collapsible: false,
      items: [
        {
          type: 'link',
          href: '/sdks/integrations/local-mcp',
          label: 'Local MCP Server',
          customProps: { icon: '/img/icons/mcp.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/litellm',
          label: 'LiteLLM',
          customProps: { icon: '/img/icons/litellm.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/claude-code',
          label: 'Claude Code',
          customProps: { icon: '/img/icons/claudecode.svg' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/codex',
          label: 'OpenAI Codex CLI',
          customProps: { icon: '/img/icons/terminal.svg' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/openclaw',
          label: 'OpenClaw',
          customProps: { icon: '/img/icons/openclaw.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/ai-sdk',
          label: 'Vercel AI SDK',
          customProps: { icon: '/img/icons/vercel.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/chat',
          label: 'Vercel Chat SDK',
          customProps: { icon: '/img/icons/vercel.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/crewai',
          label: 'CrewAI',
          customProps: { icon: '/img/icons/crewai.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/pydantic-ai',
          label: 'Pydantic AI',
          customProps: { icon: '/img/icons/pydanticai.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/agno',
          label: 'Agno',
          customProps: { icon: '/img/icons/agno.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/hermes',
          label: 'Hermes Agent',
          customProps: { icon: '/img/icons/hermes.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/langgraph',
          label: 'LangGraph / LangChain',
          customProps: { icon: '/img/icons/langgraph.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/nemoclaw',
          label: 'NemoClaw',
          customProps: { icon: '/img/icons/nemoclaw.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/paperclip',
          label: 'Paperclip',
          customProps: { icon: '/img/icons/nodejs.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/strands',
          label: 'Strands Agents',
          customProps: { icon: '/img/icons/strands.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/ag2',
          label: 'AG2',
          customProps: { icon: '/img/icons/ag2.svg' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/autogen',
          label: 'AutoGen',
          customProps: { icon: '/img/icons/autogen.svg' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/llamaindex',
          label: 'LlamaIndex',
          customProps: { icon: '/img/icons/llamaindex.png' },
        },
        {
          type: 'link',
          href: '/sdks/integrations/skills',
          label: 'Skills',
          customProps: { icon: '/img/icons/skills.png' },
        },
      ],
    },
    {
      type: 'category',
      label: 'Hosting',
      collapsible: false,
      items: [
        {
          type: 'link',
          href: 'https://ui.hindsight.vectorize.io/signup',
          label: 'Cloud',
          customProps: { icon: 'lu-cloud', iconAfter: 'lu-arrow-up-right' },
        },
        {
          type: 'doc',
          id: 'developer/installation',
          label: 'Installation',
          customProps: { icon: 'lu-package' },
        },
        {
          type: 'doc',
          id: 'developer/services',
          label: 'Services',
          customProps: { icon: 'lu-server' },
        },
        {
          type: 'doc',
          id: 'developer/configuration',
          label: 'Configuration',
          customProps: { icon: 'lu-settings' },
        },
        {
          type: 'doc',
          id: 'developer/admin-cli',
          label: 'Admin CLI',
          customProps: { icon: 'lu-terminal' },
        },
        {
          type: 'doc',
          id: 'developer/extensions',
          label: 'Extensions',
          customProps: { icon: 'lu-plug' },
        },
        {
          type: 'doc',
          id: 'developer/models',
          label: 'Models',
          customProps: { icon: 'lu-cpu' },
        },
        {
          type: 'doc',
          id: 'developer/monitoring',
          label: 'Monitoring',
          customProps: { icon: 'lu-activity' },
        },
        {
          type: 'doc',
          id: 'developer/mcp-server',
          label: 'MCP Server',
          customProps: { icon: 'lu-network' },
        },
      ],
    },
    {
      type: 'category',
      label: 'Resources',
      collapsible: false,
      items: [
        {
          type: 'link',
          href: '/templates',
          label: 'Bank Templates Hub',
          customProps: { icon: 'lu-layout-template', iconAfter: 'lu-arrow-up-right' },
        },
        {
          type: 'link',
          href: '/best-practices',
          label: 'Best Practices',
          customProps: { icon: 'lu-star', iconAfter: 'lu-arrow-up-right' },
        },
        {
          type: 'link',
          href: '/faq',
          label: 'FAQ',
          customProps: { icon: 'lu-circle-help', iconAfter: 'lu-arrow-up-right' },
        },
      ],
    },
    {
      type: 'category',
      label: 'More',
      collapsible: false,
      items: [
        {
          type: 'link',
          href: '/cookbook',
          label: 'Cookbook',
          customProps: { icon: 'lu-book', iconAfter: 'lu-arrow-up-right' },
        },
        {
          type: 'link',
          href: '/blog',
          label: 'Blog',
          customProps: { icon: 'lu-rss', iconAfter: 'lu-arrow-up-right' },
        },
        {
          type: 'link',
          href: 'https://join.slack.com/t/hindsight-space/shared_invite/zt-3nhbm4w29-LeSJ5Ixi6j8PdiYOCPlOgg',
          label: 'Community',
          customProps: { icon: 'si-slack', iconAfter: 'lu-arrow-up-right' },
        },
        {
          type: 'link',
          href: 'https://github.com/vectorize-io/hindsight',
          label: 'GitHub',
          customProps: { icon: 'si-github', iconAfter: 'lu-arrow-up-right' },
        },
        {
          type: 'link',
          href: 'https://benchmarks.hindsight.vectorize.io/',
          label: 'Benchmarks',
          customProps: { icon: 'lu-chart-bar', iconAfter: 'lu-arrow-up-right' },
        },
        {
          type: 'link',
          href: 'https://benchmarks.hindsight.vectorize.io/',
          label: 'Which Model Should I Use?',
          customProps: { icon: 'lu-cpu', iconAfter: 'lu-arrow-up-right' },
        },
        {
          type: 'link',
          href: 'https://arxiv.org/abs/2512.12818',
          label: 'Paper',
          customProps: { icon: 'lu-file-text', iconAfter: 'lu-arrow-up-right' },
        },
      ],
    },
  ],
};

export default sidebars;
