bijux-vex 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
bijux_vex/_version.py ADDED
@@ -0,0 +1,34 @@
1
+ # file generated by setuptools-scm
2
+ # don't change, don't track in version control
3
+
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
12
+
13
+ TYPE_CHECKING = False
14
+ if TYPE_CHECKING:
15
+ from typing import Tuple
16
+ from typing import Union
17
+
18
+ VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
20
+ else:
21
+ VERSION_TUPLE = object
22
+ COMMIT_ID = object
23
+
24
+ version: str
25
+ __version__: str
26
+ __version_tuple__: VERSION_TUPLE
27
+ version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
30
+
31
+ __version__ = version = '0.1.0'
32
+ __version_tuple__ = version_tuple = (0, 1, 0)
33
+
34
+ __commit_id__ = commit_id = None
bijux_vex/py.typed ADDED
@@ -0,0 +1,3 @@
1
+ # SPDX-License-Identifier: MIT
2
+ # SPDX-FileCopyrightText: 2025 Bijan Mousavi
3
+ # SPDX-License-Identifier: MIT
@@ -0,0 +1,185 @@
1
+ Metadata-Version: 2.4
2
+ Name: bijux-vex
3
+ Version: 0.1.0
4
+ Summary: bijux-vex: contract-driven vector execution runtime with explicit determinism semantics.
5
+ Project-URL: Homepage, https://bijux.github.io/bijux-vex/
6
+ Project-URL: Repository, https://github.com/bijux/bijux-vex
7
+ Project-URL: Documentation, https://bijux.github.io/bijux-vex/
8
+ Project-URL: Issues, https://github.com/bijux/bijux-vex/issues
9
+ Author-email: Bijan Mousavi <mousavi.bijan@gmail.com>
10
+ License: MIT
11
+ License-File: LICENSE
12
+ Keywords: bijux,determinism,execution,vector,vex
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Natural Language :: English
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3 :: Only
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Programming Language :: Python :: 3.14
23
+ Classifier: Topic :: Security
24
+ Classifier: Topic :: Software Development :: Libraries
25
+ Requires-Python: <4,>=3.11
26
+ Requires-Dist: fastapi<0.129,>=0.128
27
+ Requires-Dist: pydantic<3.0,>=2.12
28
+ Requires-Dist: typer<0.22,>=0.21
29
+ Provides-Extra: api
30
+ Requires-Dist: fastapi<0.129,>=0.128; extra == 'api'
31
+ Requires-Dist: schemathesis<5.0,>=4.0; extra == 'api'
32
+ Requires-Dist: uvicorn<1.0,>=0.30.1; extra == 'api'
33
+ Provides-Extra: dev
34
+ Requires-Dist: anyio<5.0,>=4.4.0; extra == 'dev'
35
+ Requires-Dist: bandit<2.0,>=1.7.10; extra == 'dev'
36
+ Requires-Dist: build<2.0,>=1.0.3; extra == 'dev'
37
+ Requires-Dist: codespell<3.0,>=2.3.0; extra == 'dev'
38
+ Requires-Dist: commitizen<5.0,>=4.0.0; extra == 'dev'
39
+ Requires-Dist: cyclonedx-bom>=4.6.0; extra == 'dev'
40
+ Requires-Dist: deptry<1.0,>=0.10.0; extra == 'dev'
41
+ Requires-Dist: hypothesis-jsonschema<1.0,>=0.23.0; extra == 'dev'
42
+ Requires-Dist: hypothesis<7.0,>=6.103.0; extra == 'dev'
43
+ Requires-Dist: interrogate<2.0,>=1.7.0; extra == 'dev'
44
+ Requires-Dist: mkdocs-gen-files; extra == 'dev'
45
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin<2.0,>=1.2.0; extra == 'dev'
46
+ Requires-Dist: mkdocs-glightbox<1.0,>=0.3; extra == 'dev'
47
+ Requires-Dist: mkdocs-include-markdown-plugin; extra == 'dev'
48
+ Requires-Dist: mkdocs-literate-nav; extra == 'dev'
49
+ Requires-Dist: mkdocs-material<10.0,>=9.5.39; extra == 'dev'
50
+ Requires-Dist: mkdocs-material[imaging]<10.0,>=9.5.39; extra == 'dev'
51
+ Requires-Dist: mkdocs-minify-plugin<1.0,>=0.7; extra == 'dev'
52
+ Requires-Dist: mkdocs-redirects<2.0,>=1.2; extra == 'dev'
53
+ Requires-Dist: mkdocs<2.0,>=1.6.1; extra == 'dev'
54
+ Requires-Dist: mkdocstrings[python]<1.0,>=0.26.1; extra == 'dev'
55
+ Requires-Dist: mypy<2.0,>=1.11.2; extra == 'dev'
56
+ Requires-Dist: openapi-spec-validator<1.0,>=0.7.1; extra == 'dev'
57
+ Requires-Dist: pexpect<5.0,>=4.8.0; extra == 'dev'
58
+ Requires-Dist: pip-audit<3.0,>=2.7.3; extra == 'dev'
59
+ Requires-Dist: prance>=25.4.0.0; extra == 'dev'
60
+ Requires-Dist: pre-commit>=4.0; extra == 'dev'
61
+ Requires-Dist: pydocstyle<7.0,>=6.2.1; extra == 'dev'
62
+ Requires-Dist: pyright[nodejs]<2.0,>=1.1.320; extra == 'dev'
63
+ Requires-Dist: pytest-asyncio<2.0,>=1.0.0; extra == 'dev'
64
+ Requires-Dist: pytest-benchmark<5.0,>=4.0.0; extra == 'dev'
65
+ Requires-Dist: pytest-cov<7.0,>=6.2.1; extra == 'dev'
66
+ Requires-Dist: pytest-rerunfailures<14.0,>=13.0; extra == 'dev'
67
+ Requires-Dist: pytest-timeout<3.0,>=2.4.0; extra == 'dev'
68
+ Requires-Dist: pytest<9.0,>=8.4.1; extra == 'dev'
69
+ Requires-Dist: pytype>=2024.10.11; extra == 'dev'
70
+ Requires-Dist: radon>=6.0.0; extra == 'dev'
71
+ Requires-Dist: reuse<6.0.0,>=4.0.0; extra == 'dev'
72
+ Requires-Dist: ruff<1.0,>=0.6.8; extra == 'dev'
73
+ Requires-Dist: schemathesis<5.0,>=4.0; extra == 'dev'
74
+ Requires-Dist: towncrier<25.0,>=23.0; extra == 'dev'
75
+ Requires-Dist: twine<7.0,>=6.1.0; extra == 'dev'
76
+ Requires-Dist: types-colorama<1.0,>=0.0.14; extra == 'dev'
77
+ Requires-Dist: types-orjson<4.0,>=3.6.0; extra == 'dev'
78
+ Requires-Dist: types-pexpect<5.0,>=4.9.0; extra == 'dev'
79
+ Requires-Dist: types-psutil<7.0,>=6.0.0; extra == 'dev'
80
+ Requires-Dist: types-pyyaml<7.0,>=6.0.12; extra == 'dev'
81
+ Requires-Dist: typing-extensions<5.0,>=4.5.0; extra == 'dev'
82
+ Requires-Dist: uvicorn<1.0,>=0.30.1; extra == 'dev'
83
+ Requires-Dist: vulture<3.0,>=2.7; extra == 'dev'
84
+ Provides-Extra: llm
85
+ Description-Content-Type: text/markdown
86
+
87
+ # bijux-vex — vector execution engine with explicit determinism
88
+
89
+ [![PyPI - Version](https://img.shields.io/pypi/v/bijux-vex.svg)](https://pypi.org/project/bijux-vex/)
90
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/bijux-vex.svg)](https://pypi.org/project/bijux-vex/)
91
+ [![Typing: typed (PEP 561)](https://img.shields.io/badge/typing-typed-4F8CC9.svg)](https://peps.python.org/pep-0561/)
92
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/bijux/bijux-vex/raw/main/LICENSES/MIT.txt)
93
+ [![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-brightgreen)](https://bijux.github.io/bijux-vex/)
94
+ [![CI Status](https://github.com/bijux/bijux-vex/actions/workflows/ci.yml/badge.svg)](https://github.com/bijux/bijux-vex/actions)
95
+
96
+ bijux-vex executes vector workloads under **contracts**. Deterministic runs are replayable; non-deterministic runs are bounded, audited, and comparable.
97
+ Nothing is implicit: no silent defaults, retries, or randomness.
98
+
99
+ ## What bijux-vex is
100
+ Vector execution engine with explicit determinism contracts. Deterministic paths are bit-stable and replayable; non-deterministic paths (ANN) are supported but **experimental** and always emit approximation + randomness provenance.
101
+
102
+ ## What bijux-vex is not
103
+ - Not a vector DB or storage layer.
104
+ - Not an embedding or RAG framework.
105
+ - Not a serving platform with SLAs.
106
+
107
+ ## Quick links
108
+ - Start here (single onboarding path): [user/start_here.md](user/start_here.md)
109
+ - Docs home: https://bijux.github.io/bijux-vex/
110
+ - Concepts: [overview/concepts.md](overview/concepts.md)
111
+ - API: [api/index.md](api/index.md) and [`api/v1/schema.yaml`](https://github.com/bijux/bijux-vex/blob/main/api/v1/schema.yaml) (canonical contract)
112
+ - Examples: [examples/overview.md](examples/overview.md)
113
+ - Changelog: [changelog.md](changelog.md)
114
+ - Not a vector DB: [user/not_a_vdb.md](user/not_a_vdb.md)
115
+
116
+ ## Reading order (guaranteed)
117
+ 1) Start with [user/start_here.md](user/start_here.md) for the problem, fit, and next steps.
118
+ 2) Then [overview/concepts.md](overview/concepts.md) for execution vs storage and determinism vs non-determinism.
119
+ 3) Then [spec/system_contract.md](spec/system_contract.md) and [spec/execution_contracts.md](spec/execution_contracts.md) for the normative rules.
120
+ 4) Run [examples/overview.md](examples/overview.md) for deterministic and ANN flows.
121
+ 5) Consult [api/index.md](api/index.md) and [`api/v1/schema.yaml`](https://github.com/bijux/bijux-vex/blob/main/api/v1/schema.yaml) when integrating.
122
+ Everything else is reference or maintainer material.
123
+
124
+ ## Start here
125
+ Read `docs/user/start_here.md`. It explains the problem, when to use bijux-vex, deterministic vs non-deterministic execution, and where to go next.
126
+
127
+ ## Minimal example (CLI, 10 lines)
128
+ ```sh
129
+ bijux vex create --name demo
130
+ bijux vex ingest --documents doc.txt --vectors [[0,1,0]]
131
+ bijux vex artifact --artifact-id exact --contract deterministic
132
+ bijux vex execute --artifact-id exact --vector [0,1,0] --top-k 1 --contract deterministic
133
+ bijux vex artifact --artifact-id ann --contract non_deterministic
134
+ bijux vex execute --artifact-id ann --vector [0,1,0] --top-k 1 --contract non_deterministic --randomness-profile seed=1
135
+ bijux vex explain --artifact-id exact --result-id <vector_id>
136
+ bijux vex compare --artifact-id exact --other-id ann
137
+ ```
138
+
139
+ ## Execution truth table (canonical)
140
+ | Contract | Support level | Replayable | Output stability | Provenance / audit | Notes |
141
+ | --- | --- | --- | --- | --- | --- |
142
+ | deterministic | stable | yes (bit-identical) | stable | full chain + fingerprints | frozen ABI; breaking changes require major bump |
143
+ | non_deterministic | stable_bounded | no (envelope only) | outcome-variable (bounded divergence) | approximation + randomness metadata required | experimental surface; may fail if ANN backend unavailable |
144
+
145
+ ## Stability guarantees
146
+ - Supported Python: 3.11–3.13 (CI + metadata aligned).
147
+ - Package version: dynamic from git tags via hatch-vcs.
148
+ - Public API version: **v1.x** (frozen; breaking changes require major bump).
149
+ - Deterministic execution surface and ABI are frozen; breaking changes require a major bump.
150
+ - ND/ANN execution is **experimental** and may change; it can legally fail when no ANN backend is available.
151
+ - Determinism gates, ANN contracts, and provenance schema are enforced in conformance tests; regressions fail CI.
152
+ - Testing policy: tox runs multi-version tests; lint/quality/security/typing gates run only on the lowest supported Python (3.11) for cost/time efficiency.
153
+
154
+ ## No synonym drift
155
+ We use one term per concept: **replayable** (deterministic, bit-identical), **audited** (non-deterministic with envelopes), **stable** (supported and frozen), **outcome-variable** (bounded divergence). Avoid “reproducible” or “supported” as stand-ins.
156
+
157
+ ## Public surfaces
158
+ - **CLI (Typer)**: `create`, `ingest`, `materialize`, `execute`, `explain`, `replay`, `compare`, `list-artifacts`.
159
+ - **API (FastAPI)**: versioned under `bijux_vex.api.v1` with frozen OpenAPI (`api/v1/openapi.v1.json`), endpoints mirror CLI verbs.
160
+ - **Core types**: `ExecutionContract`, `ExecutionRequest`, `ExecutionArtifact`, `ExecutionResources`, `ApproximationReport`, `RandomnessProfile`.
161
+
162
+ ## Non-goals checksum
163
+ X - Not a VDB or search service.
164
+ X - Not an ML/embedding framework.
165
+ X - Not a serving layer with SLAs.
166
+ X - Not a “best-effort” ANN wrapper—contracts must be explicit.
167
+
168
+ ## Why strict
169
+ Aggressive invariants, terminal failures, and refusal to fallback exist to keep provenance honest and prevent silent divergence; permissive modes are intentionally rejected.
170
+
171
+ ## Assumptions
172
+ - Trusted runtime and honest backend declaration.
173
+ - Data is non-adversarial unless stated in tests.
174
+ - Users read the “Start here” path before touching API/CLI.
175
+
176
+ ## When contracts are violated
177
+ - Deterministic: execution refuses to run; replay fails closed.
178
+ - Non-deterministic: fails fast if ANN unavailable or metadata missing; never silently falls back to deterministic.
179
+ - Budget or capability breaches raise typed errors; no hidden retries or approximations.
180
+
181
+ ## Contributing & release
182
+ - Keep invariants terminal; ND without metadata is forbidden.
183
+ - Run `make lint quality security test` before any PR.
184
+ - Release process: see `docs/maintainer/release_process.md`; tags drive package versions, SBOM, and wheels.
185
+ - Licensing: code under MIT; docs/config under CC0. See `docs/legal/licensing.md`.
@@ -0,0 +1,6 @@
1
+ bijux_vex/_version.py,sha256=5jwwVncvCiTnhOedfkzzxmxsggwmTBORdFL_4wq0ZeY,704
2
+ bijux_vex/py.typed,sha256=NU-OYcV83NloaV7vtRk0bk8kc64u5PuiDkBRJwvHkBE,107
3
+ bijux_vex-0.1.0.dist-info/METADATA,sha256=m46ky_Y1OpoBiQsTpCTmjQfdc2M7aRH2mPobAXRcSe8,10708
4
+ bijux_vex-0.1.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
5
+ bijux_vex-0.1.0.dist-info/licenses/LICENSE,sha256=JtT2Sv8_KhmjvSaHKZVexlCuwWiKuqtNOVY-xolsRAo,1070
6
+ bijux_vex-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.28.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Bijan Mousavi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.