Search that agrees with itself: structure ⊗ text ⊗ meaning, glued at one location by coherence-R, with matryoshka embeddings for speed.
Project description
ix-search
ast-grep × grep × meaning. Three searches, glued at one spot, with a confidence score.
# pip install ix-search — coming to PyPI; this works today:
pip install git+https://github.com/Intuition-Labs-LLC/ix-search
ix "the part that retries on failure"
That's the whole thing. You already know ast-grep (structure) and grep (text). ix runs both — plus a meaning search — glues the three at the same place, and gives every hit an R: how sure it is, because they agreed.
ix · structure ⊗ text ⊗ meaning, glued by R
R 1.00 net.py:42 def retry_with_backoff(...) [ast-grep·grep·meaning] ← all three agree
R 0.51 http.py:88 except ConnectionError: ... [grep·meaning] ← two agree
R 0.26 util.py:12 # exponential backoff helper [meaning] ← a stretch, flagged
R = 1 when ast-grep, grep, and meaning land on the same line. Lower when only some do. It's confidence from agreement — not a black-box cosine.
Zero effort
- No API key, no GPU, nothing leaves your machine. Meaning runs on model2vec static embeddings (~30 MB, CPU).
- For an agent:
ix "..." --json→{path, line, R, agreed}per hit, so it acts on confidence (takeR ≈ 1, escalateR < 1) instead of guessing.
from ix_search import search
for h in search("retry on failure", "."):
print(h.R, h.path, h.line, h.agreed)
Why it's more than grep
- Three readings glue. Lexical, structural, and semantic search are three views of one location;
ixoverlays them and scores the agreement. The hit where all three land is the one you want — and the semantic-only stretch is flagged, not hidden. - Matryoshka = speed. The embeddings are nested (a prefix is a smaller embedding), so
ixdoes a fast coarse pass on a truncated vector, then unfolds to full dim only on the survivors. (--dimtunes it.)
The idea behind it
ix is the runnable instance of The Matryoshka Sheaf — local readings glue into one global result exactly when they agree, with R = exp(−d_tail/scale) as the gluing obstruction.
- 📄 Paper + code: https://huggingface.co/datasets/intuitionlabs/matryoshka-sheaf
- 🧩 ELI5: https://intuitionlabs.tech/codebox/phi/35-the-matryoshka-sheaf
Needs ast-grep and ripgrep on PATH (the meaning search works without them).
AGPL-3.0-or-later · Intuition Labs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ix_search-0.1.0.tar.gz.
File metadata
- Download URL: ix_search-0.1.0.tar.gz
- Upload date:
- Size: 22.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
846442908711ecd07e8d989f20d41e2ce2d611196c2be91687212b68af51f3d3
|
|
| MD5 |
3f00392f877364ff6cfe29817e7d535e
|
|
| BLAKE2b-256 |
06d353b263e5d288353a843171ee4913a3411cf52bf18cfa6a23de4a08c30ca6
|
File details
Details for the file ix_search-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ix_search-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20bfa57d22ebedc7baffa96422da847a30ee47e8badfff1fb3d2d737530599ea
|
|
| MD5 |
8bf158c41eee08f0ddb3cfd104b226f9
|
|
| BLAKE2b-256 |
8608fe64b9808f09560db74d15731bd021f42e36e336bfbf3ba4d8ac71747253
|