This page explains how to prepare the search package, the native engine that adds multimodal search to Lumen, and what the package contains. It's for developers who build Lumen from source.
Before you begin#
Install the following tools:
- git
- The Swift/Xcode toolchain
- CMake and Ninja, or uv for the pinned build tools
Prepare the search package#
Prepare the package:
./scripts/prepare-search.shRebuild the app:
./scripts/build-app.sh release
The preparation script builds the pinned MIT llama.cpp b11461 static archive with the embedding allocation patch and Metal, and with networking libraries disabled. It then downloads two checksum-pinned Apache-2.0 Q8_0 GGUF files from ggml-org/embeddinggemma-2-GGUF at bfcd298762cc34d0357ece5ebdd31791a3a374d8. These files are converted from Google EmbeddingGemma 2 at 914f7f89142e33e77833254d9c9b90c3cef7303b.
Downloads occur only in this explicit developer command.
Package contents#
The prepared Tools/Search package contains the standalone LumenSearchWorker executable, model files, a complete inventory and provenance record, and license notices. The signed app uses the same stable signing certificate for its sandbox-inheriting runtime. The manifest checksum includes the final signature. Loading never searches model caches, executes downloaded code, or falls back to a model download.
| Workload | Model loaded |
|---|---|
| Text queries | The 310 MB text model only |
| Indexing | The text model plus the 555 MB image/audio projector |
Outputs are 768-dimensional normalized vectors. Apple Vision OCR and native file and media decoders supplement the vectors. The adapted DigUp engine owns the extraction, indexing, and ranking behind Lumen's bounded JSON and chosen-folder scopes. No upstream app or branding is included.
Evaluate the package#
Run the synthetic offline evaluator against explicitly prepared artifacts. Validate the sandbox-inheriting signed package through Lumen itself.
Note: Local preparation isn't broad relevance or hardware certification. Windows and Linux adapters and apps remain future work.