Metadata-Version: 2.4
Name: bijux-vex
Version: 0.2.0
Summary: Vector execution runtime with replayable determinism and audited ANN (nothing implicit).
Project-URL: Homepage, https://bijux.github.io/bijux-vex/
Project-URL: Documentation, https://bijux.github.io/bijux-vex/
Project-URL: Source, https://github.com/bijux/bijux-vex
Project-URL: Issues, https://github.com/bijux/bijux-vex/issues
Project-URL: Changelog, https://github.com/bijux/bijux-vex/blob/main/CHANGELOG.md
Project-URL: Security, https://github.com/bijux/bijux-vex/blob/main/SECURITY.md
Project-URL: Funding, https://github.com/sponsors/bijux
Author-email: Bijan Mousavi <mousavi.bijan@gmail.com>
Maintainer-email: Bijan Mousavi <mousavi.bijan@gmail.com>
License: MIT
License-File: LICENSE
Keywords: ann,audit,bijux,determinism,execution,nearest-neighbor,provenance,replay,reproducibility,vector,vector-search,vex
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Libraries
Classifier: Typing :: Typed
Requires-Python: <4,>=3.11
Requires-Dist: fastapi<0.129,>=0.128
Requires-Dist: pydantic<3.0,>=2.12
Requires-Dist: typer<0.22,>=0.21
Provides-Extra: api
Requires-Dist: fastapi<0.129,>=0.128; extra == 'api'
Requires-Dist: schemathesis<5.0,>=4.0; extra == 'api'
Requires-Dist: uvicorn<1.0,>=0.30.1; extra == 'api'
Provides-Extra: config
Requires-Dist: pyyaml<7.0,>=6.0; extra == 'config'
Provides-Extra: dev
Requires-Dist: anyio<5.0,>=4.4.0; extra == 'dev'
Requires-Dist: bandit<2.0,>=1.7.10; extra == 'dev'
Requires-Dist: build<2.0,>=1.0.3; extra == 'dev'
Requires-Dist: codespell<3.0,>=2.3.0; extra == 'dev'
Requires-Dist: commitizen<5.0,>=4.0.0; extra == 'dev'
Requires-Dist: cyclonedx-bom>=4.6.0; extra == 'dev'
Requires-Dist: deptry<1.0,>=0.10.0; extra == 'dev'
Requires-Dist: hypothesis-jsonschema<1.0,>=0.23.0; extra == 'dev'
Requires-Dist: hypothesis<7.0,>=6.103.0; extra == 'dev'
Requires-Dist: interrogate<2.0,>=1.7.0; extra == 'dev'
Requires-Dist: mypy<2.0,>=1.11.2; extra == 'dev'
Requires-Dist: openapi-spec-validator<1.0,>=0.7.1; extra == 'dev'
Requires-Dist: pexpect<5.0,>=4.8.0; extra == 'dev'
Requires-Dist: pip-audit<3.0,>=2.7.3; extra == 'dev'
Requires-Dist: prance>=25.4.0.0; extra == 'dev'
Requires-Dist: pre-commit>=4.0; extra == 'dev'
Requires-Dist: pydocstyle<7.0,>=6.2.1; extra == 'dev'
Requires-Dist: pyright[nodejs]<2.0,>=1.1.320; extra == 'dev'
Requires-Dist: pytest-asyncio<2.0,>=1.0.0; extra == 'dev'
Requires-Dist: pytest-benchmark<5.0,>=4.0.0; extra == 'dev'
Requires-Dist: pytest-cov<7.0,>=6.2.1; extra == 'dev'
Requires-Dist: pytest-rerunfailures<14.0,>=13.0; extra == 'dev'
Requires-Dist: pytest-timeout<3.0,>=2.4.0; extra == 'dev'
Requires-Dist: pytest<9.0,>=8.4.1; extra == 'dev'
Requires-Dist: pytype>=2024.10.11; extra == 'dev'
Requires-Dist: radon>=6.0.0; extra == 'dev'
Requires-Dist: reuse<6.0.0,>=4.0.0; extra == 'dev'
Requires-Dist: ruff<1.0,>=0.6.8; extra == 'dev'
Requires-Dist: schemathesis<5.0,>=4.0; extra == 'dev'
Requires-Dist: towncrier<25.0,>=23.0; extra == 'dev'
Requires-Dist: twine<7.0,>=6.1.0; extra == 'dev'
Requires-Dist: types-colorama<1.0,>=0.0.14; extra == 'dev'
Requires-Dist: types-orjson<4.0,>=3.6.0; extra == 'dev'
Requires-Dist: types-pexpect<5.0,>=4.9.0; extra == 'dev'
Requires-Dist: types-psutil<7.0,>=6.0.0; extra == 'dev'
Requires-Dist: types-pyyaml<7.0,>=6.0.12; extra == 'dev'
Requires-Dist: typing-extensions<5.0,>=4.5.0; extra == 'dev'
Requires-Dist: uvicorn<1.0,>=0.30.1; extra == 'dev'
Requires-Dist: vulture<3.0,>=2.7; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-gen-files; extra == 'docs'
Requires-Dist: mkdocs-git-revision-date-localized-plugin<2.0,>=1.2.0; extra == 'docs'
Requires-Dist: mkdocs-glightbox<1.0,>=0.3; extra == 'docs'
Requires-Dist: mkdocs-include-markdown-plugin; extra == 'docs'
Requires-Dist: mkdocs-literate-nav; extra == 'docs'
Requires-Dist: mkdocs-material<10.0,>=9.5.39; extra == 'docs'
Requires-Dist: mkdocs-material[imaging]<10.0,>=9.5.39; extra == 'docs'
Requires-Dist: mkdocs-minify-plugin<1.0,>=0.7; extra == 'docs'
Requires-Dist: mkdocs-redirects<2.0,>=1.2; extra == 'docs'
Requires-Dist: mkdocs<2.0,>=1.6.1; extra == 'docs'
Requires-Dist: mkdocstrings[python]<1.0,>=0.26.1; extra == 'docs'
Provides-Extra: embeddings
Requires-Dist: sentence-transformers<3.0,>=2.7.0; extra == 'embeddings'
Provides-Extra: nd
Requires-Dist: hnswlib<1.0,>=0.8.0; extra == 'nd'
Provides-Extra: vdb
Requires-Dist: faiss-cpu<2.0,>=1.7.4; extra == 'vdb'
Requires-Dist: numpy<3.0,>=1.26; extra == 'vdb'
Requires-Dist: qdrant-client<2.0,>=1.9.0; extra == 'vdb'
Description-Content-Type: text/markdown

<p align="center">
  <img src="https://raw.githubusercontent.com/bijux/bijux-vex/main/docs/assets/bijux_logo_hq.png" alt="Bijux-Vex" width="180" />
</p>

# bijux-vex

**Vector execution runtime with replayable determinism + audited ANN (nothing implicit).**

Why this exists: production vector search drifts quietly. Bijux‑Vex makes correctness explicit, and refuses when guarantees cannot be met.

If you only read one page, read this: https://bijux.github.io/bijux-vex/user/only_read_one_page/

## Why bijux-vex

- Replayable determinism for results you can defend
- Audited, bounded ND (ANN) instead of silent approximation
- Nothing implicit: fail‑closed by design

## Hello world (deterministic, exact)

```bash
bijux vex ingest --doc "hello" --vector "[0.0, 1.0, 0.0]" \
  --vector-store memory
bijux vex materialize --execution-contract deterministic --vector-store memory
bijux vex execute --artifact-id art-1 \
  --execution-contract deterministic --execution-intent exact_validation \
  --execution-mode strict --vector "[0.0, 1.0, 0.0]"
```

## Hello world (ND / ANN with quality)

```bash
bijux vex materialize --execution-contract non_deterministic --index-mode ann \
  --vector-store faiss --vector-store-uri ./index.faiss
bijux vex execute --artifact-id art-1 \
  --execution-contract non_deterministic --execution-intent exploratory_search \
  --execution-mode bounded --randomness-seed 42 --randomness-sources ann_probe \
  --nd-witness sample --vector "[0.0, 1.0, 0.0]"
```

## Concept map (instant mental model)

```
request → plan → execute → provenance
            ├─ deterministic (exact)
            └─ ND (ANN) + quality
vector store: optional + explicit
```

## When NOT to use this

- Not a vector DB (no implicit CRUD or query language)
- Not a RAG framework (no prompts, no orchestration)
- Not a hosted service (you run it)

## Stability & support

- Supported Python: 3.11–3.14
- Determinism: stable and replayable
- ND (ANN): experimental but audited and bounded

## Getting help / reporting issues

GitHub issues: https://github.com/bijux/bijux-vex/issues
Include `bijux vex debug-bundle` output when reporting a bug.

## Quick links

- Start Here (10 minutes): https://bijux.github.io/bijux-vex/user/start_here_10_minutes/
- Start Here (human): https://bijux.github.io/bijux-vex/user/start_here_human/
- Concept Map: https://bijux.github.io/bijux-vex/user/concept_map/
- ND Production Guide: https://bijux.github.io/bijux-vex/guides/nd_production/
- Security Policy: https://github.com/bijux/bijux-vex/blob/main/SECURITY.md
- Changelog: https://github.com/bijux/bijux-vex/blob/main/CHANGELOG.md
