How xpdevs/ofl works
OFL is a local deterministic search engine for filesystem metadata and structured records. Users enter through the CLI, library exports, or Unix-socket daemon. Build commands scan configured sources, create typed index segments and manifests, then persist crash-safe index data. Search requests are normalized, planned against loaded segments, executed and verified, sorted, and returned through the structured SearchOutput contract or CLI formatters. The sampled files show the main query and daemon paths; some command wiring and record-connector integration remain inferred from the tree and README.
Components 22
Entry Points
- CLI Runtime
src/cli/index.js - Search Command
src/cli/commands/search.js - Daemon Server
src/daemon/server.js - Daemon Handler
src/daemon/handler.js
Data Sources
- Filesystem Source
src/connectors/filesystem-metadata.js - JSON Records
src/connectors/records-json.js - NDJSON Records
src/connectors/records-ndjson.js
Indexing
- Index Builder
src/index/builder.js - Index Segments
src/index/segment.js - Index Manifest
src/index/manifest.js - Index Loader
src/index/loader.js - Index Types
src/index/trigram.js
Query Engine
- Query Model
src/core/query-model.js - Query Guard
src/security/query-guard.js - Query Normalizer
src/query/normalizer.js - Query Planner
src/query/planner.js - Query Executor
src/query/executor.js - Candidate Verifier
src/query/verifier.js
Results
- Search Output
src/core/search-output.js - Output Formatters
src/output/formatter.js
Other components
- User
- Daemon Client
Connections 31
- User → CLI Runtime: runs commands
- Daemon Client → Daemon Server: sends requests
- CLI Runtime → Search Command: dispatches search
- CLI Runtime → Index Builder: dispatches build
- Daemon Server → Index Loader: loads indexes
- Daemon Server → Daemon Handler: dispatches messages
- Daemon Handler → Query Normalizer: normalizes query
- Daemon Handler → Query Planner: plans query
- Daemon Handler → Query Executor: executes query
- Daemon Handler → Search Output: creates output
- Search Command → Index Loader: loads indexes
- Search Command → Query Model: creates query
- Search Command → Query Normalizer: normalizes query
- Search Command → Query Planner: plans query
- Search Command → Query Executor: executes query
- Search Command → Search Output: creates output
- Search Command → Output Formatters: formats output
- Filesystem Source → Index Builder: supplies records
- JSON Records → Index Builder: supplies records
- NDJSON Records → Index Builder: supplies records
- Index Builder → Index Segments: writes segments
- Index Builder → Index Manifest: writes manifest
- Index Builder → Index Types: builds indexes
- Index Loader → Index Segments: reads segments
- Index Loader → Index Manifest: reads manifest
- Query Planner → Index Segments: selects segments
- Query Executor → Index Segments: reads entries
- Query Executor → Candidate Verifier: verifies candidates
- Query Executor → Query Guard: checks timeout
- Query Normalizer → Query Model: normalizes fields
- Search Output → Output Formatters: serializes results