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 +34 -0
- bijux_vex/py.typed +3 -0
- bijux_vex-0.1.0.dist-info/METADATA +185 -0
- bijux_vex-0.1.0.dist-info/RECORD +6 -0
- bijux_vex-0.1.0.dist-info/WHEEL +4 -0
- bijux_vex-0.1.0.dist-info/licenses/LICENSE +21 -0
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,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
|
+
[](https://pypi.org/project/bijux-vex/)
|
|
90
|
+
[](https://pypi.org/project/bijux-vex/)
|
|
91
|
+
[](https://peps.python.org/pep-0561/)
|
|
92
|
+
[](https://github.com/bijux/bijux-vex/raw/main/LICENSES/MIT.txt)
|
|
93
|
+
[](https://bijux.github.io/bijux-vex/)
|
|
94
|
+
[](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,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.
|