MiniSearch / docs /project-structure.md
github-actions[bot]
Sync from https://github.com/felladrin/MiniSearch
db8cd68

Project Structure

Directory Layout

  • client/: Frontend React application
    • components/: Feature-based UI components
      • App/: Main application component with error boundaries
      • AiResponse/: AI response display and chat interface components
      • Analytics/: Search analytics and statistics components
      • Logs/: Application logging and debug modal components
      • Pages/: Route-level page components
        • Main/: Main search interface with menu and settings
      • Search/: Search functionality components
        • Form/: Search input and form components
        • History/: Search history and saved searches
        • Results/: Search results display (textual and graphical)
      • Settings/: Application settings and configuration
    • hooks/: Custom React hooks
    • modules/: Core business logic (PubSub stores, search services, database layers)
    • public/: Static assets
  • server/: Server hooks for search endpoints, caching, compression, CORS, and API validation
  • shared/: Utilities shared between client and server
  • vite.config.ts: Build and server configuration with environment-driven feature flags

Component Organization

Components are organized by feature domain. Each component folder contains:

  • Component implementation
  • Related styles
  • Custom hooks
  • Utility functions
  • Tests

This self-contained structure makes it easy for agents to understand and modify components without navigating across the codebase.

Key Modules Reference

The client/modules/ directory contains core business logic organized by domain:

Module Purpose
pubSub.ts All PubSub channels for state management
search.ts Search orchestration, caching, and reranking
textGeneration.ts AI response generation and chat handling
textGenerationWith*.ts Provider-specific inference implementations (WebLLM, Wllama, OpenAI, Horde, Internal API)
history.ts IndexedDB persistence for searches and chat
settings.ts Default settings and inference type definitions
followUpQuestions.ts Generates contextual follow-up questions
relatedSearchQuery.ts Creates related search queries from conversation
querySuggestions.ts Query suggestion UI data management
webGpu.ts WebGPU availability and F16 shader detection
wllama.ts Wllama model configuration and management
accessKey.ts Access key validation and storage
searchTokenHash.ts CSRF protection token generation
parentWindow.ts PostMessage API for parent window embedding
logEntries.ts Application logging with unique IDs
appInfo.ts Application metadata and version info
keyboard.ts Keyboard shortcut handling
systemPrompt.ts System prompt templates
stringFormatters.ts Text formatting utilities
types.ts Shared TypeScript type definitions

Related Topics

  • Overview: docs/overview.md - System architecture and data flow
  • UI Components: docs/ui-components.md - Component architecture and PubSub patterns
  • Quick Start: docs/quick-start.md - Installation and setup