Metadata-Version: 2.4
Name: bijux-vex
Version: 0.2.2
Summary: Vector execution runtime with replayable determinism and audited ANN (nothing implicit).
Project-URL: Homepage, https://github.com/bijux/bijux-vex
Project-URL: Repository, https://github.com/bijux/bijux-vex.git
Project-URL: Bug Tracker, https://github.com/bijux/bijux-vex/issues
Project-URL: Documentation, https://bijux.github.io/bijux-vex/
Project-URL: Changelog, https://bijux.github.io/bijux-vex/changelog
Project-URL: Discussions, https://github.com/bijux/bijux-vex/discussions
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
        
        Copyright (c) 2025 Bijan Mousavi
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
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

# bijux-vex — explicit vector execution

[![PyPI - Version](https://img.shields.io/pypi/v/bijux-vex.svg)](https://pypi.org/project/bijux-vex/)
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/)
[![Typing: typed (PEP 561)](https://img.shields.io/badge/typing-typed-4F8CC9.svg)](https://peps.python.org/pep-0561/)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/bijux/bijux-vex/raw/main/LICENSES/MIT.txt)
[![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-brightgreen)](https://bijux.github.io/bijux-vex/)
[![CI Status](https://github.com/bijux/bijux-vex/actions/workflows/ci.yml/badge.svg)](https://github.com/bijux/bijux-vex/actions)

**What it is**  
Bijux‑Vex is a vector execution runtime with replayable determinism and audited ND (ANN).

**Why it exists**  
Production vector search drifts quietly. Bijux‑Vex makes correctness explicit and refuses when guarantees cannot be met.

**Anti‑goals**  
Not a vector DB. Not a RAG framework. Not a hosted service. No implicit “best‑effort” correctness.

## Quickstart (deterministic)

```bash
python -m bijux_vex.boundaries.cli.app ingest --doc "hello" --vector "[0,1,0]" --vector-store memory
python -m bijux_vex.boundaries.cli.app materialize --execution-contract deterministic --vector-store memory
python -m bijux_vex.boundaries.cli.app execute --vector "[0,1,0]" \
  --execution-contract deterministic \
  --execution-intent exact_validation \
  --vector-store memory
```

## Start Here

- 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/
- Start here (canonical doc): `docs/user/start_here.md`
- Why Bijux‑Vex exists: https://bijux.github.io/bijux-vex/user/why_bijux_vex_exists/
- Docs home: https://bijux.github.io/bijux-vex/

## Production readiness (explicit)

- Determinism enforced and replayable
- ND is bounded and audited
- CI gates required before release

## Project values

- Correctness over convenience
- Explicit over implicit
- Honest failure over silent success
# Changelog

All notable changes to Bijux Vex are documented here. This project adheres to Semantic Versioning and the Keep a Changelog format.

## Unreleased

### Added

- (add new entries via Towncrier fragments in `changelog.d/`)

### Changed

- (add here)

### Fixed

- (add here)

## 0.2.0 – 2026-02-03

### Added

- Explicit vector store adapters (memory/sqlite, FAISS, Qdrant) with capability reporting and status commands.
- Non‑Deterministic (ND) execution model with budgets, quality metrics, witness options, and provenance audit fields.
- Embedding provider interface, cache controls, and embedding provenance metadata.
- Determinism fingerprints, replay gates, and conformance tests for stability.
- Benchmarks, dataset generator, and baseline regression checks.
- Human‑first documentation, contracts, and operational guides (trust model, safety, failure modes).

### Changed

- CLI and API now require explicit vector store selection for persistence/ANN routes.
- Refusal semantics are standardized and surfaced consistently across CLI/API/provenance.
- Docs and onboarding flow rewritten for clarity, with explicit anti‑goals and guarantees.

### Fixed

- Deterministic ordering rules and replay checks hardened across backends.
- Redaction rules tightened to prevent credential leakage in logs and provenance.

## 0.1.0 – first public release

### Added

- First public, contract‑complete release of bijux‑vex.
- Deterministic execution with replayable artifacts and provenance.
- Non‑deterministic execution via ANN with approximation reports and randomness audit.
- CLI and FastAPI v1 surfaces frozen; OpenAPI schema versioned.
- Provenance, determinism, and execution ABI enforced via conformance tests.
