LumenDocumentation
Website
Browse documentation

Native search package

Prepare the search package and its pinned model artifacts, then rebuild and evaluate it.

On this page
Working from source

File references name paths in the local checkout. A public repository link will be added when available. Preparation commands are separate from normal app operation.

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#

  1. Prepare the package:

    sh
    ./scripts/prepare-search.sh
  2. Rebuild the app:

    sh
    ./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.

WorkloadModel loaded
Text queriesThe 310 MB text model only
IndexingThe 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.

By · Documentation updated

Found a problem? Start with troubleshooting.

Search documentation

Start typing to find a guide.

Documentation search runs in your browser. Queries are not sent to a search service.