How chelmooz/maieutik works
Maieutik is a local-first notes indexing and retrieval product, with companion API/web and egui applications and Laya System 1 primitives. The documented end-to-end path is scanning and extracting notes, embedding and indexing them, then semantic, lexical, or hybrid retrieval; file watching maintains the index. Chat/generation and several MCP methods are partial or stubbed. The graph preserves documented capabilities, while unsampled subsystem internals and cross-process wiring are shown only where README evidence supports them.
Main entry points: src/lib.rs Laya System · retrieval/mod.rs Search Modes · indexer/mod.rs Chunk and Index · src/lib.rs Application State
Components 34
User Interfaces
- Web UI
maieutik-web/src/App.tsx - Chat Hook
maieutik-web/src/hooks/useChat.ts - File API Client
maieutik-web/src/api/client.ts - Desktop UI
maieutik-ui/src/app.rs - UI Backend
maieutik-ui/src/backend.rs - Hybrid Pipeline
maieutik-ui/src/pipeline.rs - UI Ports
maieutik-ui/src/ports.rs
API and MCP
- API State
maieutik-api/src/app.rs - REST Routes
maieutik-api/src/routes/mod.rs - API Adapters
maieutik-api/src/adapters.rs - MCP Bridge
maieutik/src/mcp/mod.rs - MCP HTTP
maieutik/src/mcp/http.rs
Index and Retrieval
- Application State
maieutik/src/lib.rs - Configuration Store
maieutik/src/config/store.rs - File Scan
maieutik/src/core/scan.rs - Text Extraction
maieutik/src/utils/mod.rs - Chunk and Index
maieutik/src/core/indexer/mod.rs - Embedding Cache
maieutik/src/core/embedding_cache.rs - File Watcher
maieutik/src/core/watch.rs - Search Modes
maieutik/src/core/retrieval/mod.rs - BM25 Search
maieutik/src/core/retrieval/bm25.rs - RRF Fusion
maieutik/src/core/retrieval/fusion.rs - Passage Selection
maieutik/src/core/retrieval/passage.rs - Query Processing
maieutik/src/core/retrieval/query.rs
AI and Models
- Generation
maieutik/src/llm/mod.rs - Model Management
maieutik/src/model/mod.rs - Speech Stub
maieutik/src/speech/mod.rs
Laya Primitives
- Laya System
laya-primitives/src/lib.rs - Shared Encoder
laya-primitives/src/encoder/mod.rs - Safety Guard
laya-primitives/src/noul/mod.rs - Intent Router
laya-primitives/src/choice/mod.rs - RAG Scorer
laya-primitives/src/score/mod.rs - Batch Inference
laya-primitives/src/batch/mod.rs
Other components
- User
Connections 36
- User → Web UI: uses
maieutik-web/src/App.tsx - User → Desktop UI: queries
maieutik-ui/src/app.rs - Web UI → Chat Hook: uses
- Web UI → File API Client: loads files
- Chat Hook → REST Routes: posts chat
maieutik-web/src/hooks/useChat.ts - File API Client → REST Routes: requests files
maieutik-web/src/api/client.ts - Desktop UI → UI Backend: dispatches commands
maieutik-ui/src/app.rs - UI Backend → Hybrid Pipeline: runs
maieutik-ui/src/backend.rs - Hybrid Pipeline → UI Ports: uses search and AI ports
maieutik-ui/src/pipeline.rs - API State → API Adapters: constructs
maieutik-api/src/app.rs - REST Routes → API State: uses state
maieutik-api/src/routes/mod.rs - API Adapters → Application State: reads index
- API State → Generation: configures Ollama
maieutik-api/src/app.rs - Application State → Configuration Store: loads settings
maieutik/src/lib.rs - Application State → File Watcher: runs watcher
maieutik/src/lib.rs - File Watcher → Chunk and Index: reindexes changes
maieutik/src/lib.rs - Application State → File Scan: initializes indexing
maieutik/src/lib.rs - File Scan → Chunk and Index: indexes files
README.md - Chunk and Index → Text Extraction: extracts text
README.md - Chunk and Index → Embedding Cache: caches embeddings
maieutik/src/core/indexer/mod.rs - Chunk and Index → Search Modes: supports search
maieutik/src/core/indexer/mod.rs - Search Modes → Query Processing: processes queries
README.md - Search Modes → BM25 Search: runs lexical mode
README.md - Search Modes → RRF Fusion: fuses rankings
README.md - Search Modes → Passage Selection: selects passages
README.md - MCP Bridge → Search Modes: routes search
maieutik/src/mcp/mod.rs - MCP Bridge → Generation: routes generation
maieutik/src/mcp/mod.rs - MCP Bridge → MCP HTTP: uses transport
maieutik/src/mcp/mod.rs - Generation → Model Management: uses local models
- Speech Stub → User: planned voice input
README.md - Laya System → Shared Encoder: loads shared encoder
laya-primitives/src/lib.rs - Laya System → Safety Guard: loads guard
laya-primitives/src/lib.rs - Laya System → Intent Router: loads router
laya-primitives/src/lib.rs - Laya System → RAG Scorer: loads scorer
laya-primitives/src/lib.rs - Laya System → Batch Inference: creates batch inference
laya-primitives/src/lib.rs - Hybrid Pipeline → Laya System: optional reranking and guard