bijux-vex 0.1.0__tar.gz → 0.2.0__tar.gz
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-0.1.0 → bijux_vex-0.2.0}/.gitignore +10 -0
- bijux_vex-0.2.0/PKG-INFO +176 -0
- bijux_vex-0.2.0/PYPI.md +74 -0
- {bijux_vex-0.1.0 → bijux_vex-0.2.0}/pyproject.toml +58 -17
- {bijux_vex-0.1.0 → bijux_vex-0.2.0}/src/bijux_vex/_version.py +2 -2
- bijux_vex-0.1.0/PKG-INFO +0 -185
- bijux_vex-0.1.0/README.md +0 -99
- {bijux_vex-0.1.0 → bijux_vex-0.2.0}/LICENSE +0 -0
- {bijux_vex-0.1.0 → bijux_vex-0.2.0}/src/bijux_vex/py.typed +0 -0
bijux_vex-0.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: bijux-vex
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Vector execution runtime with replayable determinism and audited ANN (nothing implicit).
|
|
5
|
+
Project-URL: Homepage, https://bijux.github.io/bijux-vex/
|
|
6
|
+
Project-URL: Documentation, https://bijux.github.io/bijux-vex/
|
|
7
|
+
Project-URL: Source, https://github.com/bijux/bijux-vex
|
|
8
|
+
Project-URL: Issues, https://github.com/bijux/bijux-vex/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/bijux/bijux-vex/blob/main/CHANGELOG.md
|
|
10
|
+
Project-URL: Security, https://github.com/bijux/bijux-vex/blob/main/SECURITY.md
|
|
11
|
+
Project-URL: Funding, https://github.com/sponsors/bijux
|
|
12
|
+
Author-email: Bijan Mousavi <mousavi.bijan@gmail.com>
|
|
13
|
+
Maintainer-email: Bijan Mousavi <mousavi.bijan@gmail.com>
|
|
14
|
+
License: MIT
|
|
15
|
+
License-File: LICENSE
|
|
16
|
+
Keywords: ann,audit,bijux,determinism,execution,nearest-neighbor,provenance,replay,reproducibility,vector,vector-search,vex
|
|
17
|
+
Classifier: Development Status :: 4 - Beta
|
|
18
|
+
Classifier: Intended Audience :: Developers
|
|
19
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
20
|
+
Classifier: Natural Language :: English
|
|
21
|
+
Classifier: Operating System :: OS Independent
|
|
22
|
+
Classifier: Programming Language :: Python :: 3
|
|
23
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
26
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
27
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
28
|
+
Classifier: Topic :: Security
|
|
29
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
30
|
+
Classifier: Typing :: Typed
|
|
31
|
+
Requires-Python: <4,>=3.11
|
|
32
|
+
Requires-Dist: fastapi<0.129,>=0.128
|
|
33
|
+
Requires-Dist: pydantic<3.0,>=2.12
|
|
34
|
+
Requires-Dist: typer<0.22,>=0.21
|
|
35
|
+
Provides-Extra: api
|
|
36
|
+
Requires-Dist: fastapi<0.129,>=0.128; extra == 'api'
|
|
37
|
+
Requires-Dist: schemathesis<5.0,>=4.0; extra == 'api'
|
|
38
|
+
Requires-Dist: uvicorn<1.0,>=0.30.1; extra == 'api'
|
|
39
|
+
Provides-Extra: config
|
|
40
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == 'config'
|
|
41
|
+
Provides-Extra: dev
|
|
42
|
+
Requires-Dist: anyio<5.0,>=4.4.0; extra == 'dev'
|
|
43
|
+
Requires-Dist: bandit<2.0,>=1.7.10; extra == 'dev'
|
|
44
|
+
Requires-Dist: build<2.0,>=1.0.3; extra == 'dev'
|
|
45
|
+
Requires-Dist: codespell<3.0,>=2.3.0; extra == 'dev'
|
|
46
|
+
Requires-Dist: commitizen<5.0,>=4.0.0; extra == 'dev'
|
|
47
|
+
Requires-Dist: cyclonedx-bom>=4.6.0; extra == 'dev'
|
|
48
|
+
Requires-Dist: deptry<1.0,>=0.10.0; extra == 'dev'
|
|
49
|
+
Requires-Dist: hypothesis-jsonschema<1.0,>=0.23.0; extra == 'dev'
|
|
50
|
+
Requires-Dist: hypothesis<7.0,>=6.103.0; extra == 'dev'
|
|
51
|
+
Requires-Dist: interrogate<2.0,>=1.7.0; extra == 'dev'
|
|
52
|
+
Requires-Dist: mypy<2.0,>=1.11.2; extra == 'dev'
|
|
53
|
+
Requires-Dist: openapi-spec-validator<1.0,>=0.7.1; extra == 'dev'
|
|
54
|
+
Requires-Dist: pexpect<5.0,>=4.8.0; extra == 'dev'
|
|
55
|
+
Requires-Dist: pip-audit<3.0,>=2.7.3; extra == 'dev'
|
|
56
|
+
Requires-Dist: prance>=25.4.0.0; extra == 'dev'
|
|
57
|
+
Requires-Dist: pre-commit>=4.0; extra == 'dev'
|
|
58
|
+
Requires-Dist: pydocstyle<7.0,>=6.2.1; extra == 'dev'
|
|
59
|
+
Requires-Dist: pyright[nodejs]<2.0,>=1.1.320; extra == 'dev'
|
|
60
|
+
Requires-Dist: pytest-asyncio<2.0,>=1.0.0; extra == 'dev'
|
|
61
|
+
Requires-Dist: pytest-benchmark<5.0,>=4.0.0; extra == 'dev'
|
|
62
|
+
Requires-Dist: pytest-cov<7.0,>=6.2.1; extra == 'dev'
|
|
63
|
+
Requires-Dist: pytest-rerunfailures<14.0,>=13.0; extra == 'dev'
|
|
64
|
+
Requires-Dist: pytest-timeout<3.0,>=2.4.0; extra == 'dev'
|
|
65
|
+
Requires-Dist: pytest<9.0,>=8.4.1; extra == 'dev'
|
|
66
|
+
Requires-Dist: pytype>=2024.10.11; extra == 'dev'
|
|
67
|
+
Requires-Dist: radon>=6.0.0; extra == 'dev'
|
|
68
|
+
Requires-Dist: reuse<6.0.0,>=4.0.0; extra == 'dev'
|
|
69
|
+
Requires-Dist: ruff<1.0,>=0.6.8; extra == 'dev'
|
|
70
|
+
Requires-Dist: schemathesis<5.0,>=4.0; extra == 'dev'
|
|
71
|
+
Requires-Dist: towncrier<25.0,>=23.0; extra == 'dev'
|
|
72
|
+
Requires-Dist: twine<7.0,>=6.1.0; extra == 'dev'
|
|
73
|
+
Requires-Dist: types-colorama<1.0,>=0.0.14; extra == 'dev'
|
|
74
|
+
Requires-Dist: types-orjson<4.0,>=3.6.0; extra == 'dev'
|
|
75
|
+
Requires-Dist: types-pexpect<5.0,>=4.9.0; extra == 'dev'
|
|
76
|
+
Requires-Dist: types-psutil<7.0,>=6.0.0; extra == 'dev'
|
|
77
|
+
Requires-Dist: types-pyyaml<7.0,>=6.0.12; extra == 'dev'
|
|
78
|
+
Requires-Dist: typing-extensions<5.0,>=4.5.0; extra == 'dev'
|
|
79
|
+
Requires-Dist: uvicorn<1.0,>=0.30.1; extra == 'dev'
|
|
80
|
+
Requires-Dist: vulture<3.0,>=2.7; extra == 'dev'
|
|
81
|
+
Provides-Extra: docs
|
|
82
|
+
Requires-Dist: mkdocs-gen-files; extra == 'docs'
|
|
83
|
+
Requires-Dist: mkdocs-git-revision-date-localized-plugin<2.0,>=1.2.0; extra == 'docs'
|
|
84
|
+
Requires-Dist: mkdocs-glightbox<1.0,>=0.3; extra == 'docs'
|
|
85
|
+
Requires-Dist: mkdocs-include-markdown-plugin; extra == 'docs'
|
|
86
|
+
Requires-Dist: mkdocs-literate-nav; extra == 'docs'
|
|
87
|
+
Requires-Dist: mkdocs-material<10.0,>=9.5.39; extra == 'docs'
|
|
88
|
+
Requires-Dist: mkdocs-material[imaging]<10.0,>=9.5.39; extra == 'docs'
|
|
89
|
+
Requires-Dist: mkdocs-minify-plugin<1.0,>=0.7; extra == 'docs'
|
|
90
|
+
Requires-Dist: mkdocs-redirects<2.0,>=1.2; extra == 'docs'
|
|
91
|
+
Requires-Dist: mkdocs<2.0,>=1.6.1; extra == 'docs'
|
|
92
|
+
Requires-Dist: mkdocstrings[python]<1.0,>=0.26.1; extra == 'docs'
|
|
93
|
+
Provides-Extra: embeddings
|
|
94
|
+
Requires-Dist: sentence-transformers<3.0,>=2.7.0; extra == 'embeddings'
|
|
95
|
+
Provides-Extra: nd
|
|
96
|
+
Requires-Dist: hnswlib<1.0,>=0.8.0; extra == 'nd'
|
|
97
|
+
Provides-Extra: vdb
|
|
98
|
+
Requires-Dist: faiss-cpu<2.0,>=1.7.4; extra == 'vdb'
|
|
99
|
+
Requires-Dist: numpy<3.0,>=1.26; extra == 'vdb'
|
|
100
|
+
Requires-Dist: qdrant-client<2.0,>=1.9.0; extra == 'vdb'
|
|
101
|
+
Description-Content-Type: text/markdown
|
|
102
|
+
|
|
103
|
+
<p align="center">
|
|
104
|
+
<img src="https://raw.githubusercontent.com/bijux/bijux-vex/main/docs/assets/bijux_logo_hq.png" alt="Bijux-Vex" width="180" />
|
|
105
|
+
</p>
|
|
106
|
+
|
|
107
|
+
# bijux-vex
|
|
108
|
+
|
|
109
|
+
**Vector execution runtime with replayable determinism + audited ANN (nothing implicit).**
|
|
110
|
+
|
|
111
|
+
Why this exists: production vector search drifts quietly. Bijux‑Vex makes correctness explicit, and refuses when guarantees cannot be met.
|
|
112
|
+
|
|
113
|
+
If you only read one page, read this: https://bijux.github.io/bijux-vex/user/only_read_one_page/
|
|
114
|
+
|
|
115
|
+
## Why bijux-vex
|
|
116
|
+
|
|
117
|
+
- Replayable determinism for results you can defend
|
|
118
|
+
- Audited, bounded ND (ANN) instead of silent approximation
|
|
119
|
+
- Nothing implicit: fail‑closed by design
|
|
120
|
+
|
|
121
|
+
## Hello world (deterministic, exact)
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
bijux vex ingest --doc "hello" --vector "[0.0, 1.0, 0.0]" \
|
|
125
|
+
--vector-store memory
|
|
126
|
+
bijux vex materialize --execution-contract deterministic --vector-store memory
|
|
127
|
+
bijux vex execute --artifact-id art-1 \
|
|
128
|
+
--execution-contract deterministic --execution-intent exact_validation \
|
|
129
|
+
--execution-mode strict --vector "[0.0, 1.0, 0.0]"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Hello world (ND / ANN with quality)
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
bijux vex materialize --execution-contract non_deterministic --index-mode ann \
|
|
136
|
+
--vector-store faiss --vector-store-uri ./index.faiss
|
|
137
|
+
bijux vex execute --artifact-id art-1 \
|
|
138
|
+
--execution-contract non_deterministic --execution-intent exploratory_search \
|
|
139
|
+
--execution-mode bounded --randomness-seed 42 --randomness-sources ann_probe \
|
|
140
|
+
--nd-witness sample --vector "[0.0, 1.0, 0.0]"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Concept map (instant mental model)
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
request → plan → execute → provenance
|
|
147
|
+
├─ deterministic (exact)
|
|
148
|
+
└─ ND (ANN) + quality
|
|
149
|
+
vector store: optional + explicit
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## When NOT to use this
|
|
153
|
+
|
|
154
|
+
- Not a vector DB (no implicit CRUD or query language)
|
|
155
|
+
- Not a RAG framework (no prompts, no orchestration)
|
|
156
|
+
- Not a hosted service (you run it)
|
|
157
|
+
|
|
158
|
+
## Stability & support
|
|
159
|
+
|
|
160
|
+
- Supported Python: 3.11–3.14
|
|
161
|
+
- Determinism: stable and replayable
|
|
162
|
+
- ND (ANN): experimental but audited and bounded
|
|
163
|
+
|
|
164
|
+
## Getting help / reporting issues
|
|
165
|
+
|
|
166
|
+
GitHub issues: https://github.com/bijux/bijux-vex/issues
|
|
167
|
+
Include `bijux vex debug-bundle` output when reporting a bug.
|
|
168
|
+
|
|
169
|
+
## Quick links
|
|
170
|
+
|
|
171
|
+
- Start Here (10 minutes): https://bijux.github.io/bijux-vex/user/start_here_10_minutes/
|
|
172
|
+
- Start Here (human): https://bijux.github.io/bijux-vex/user/start_here_human/
|
|
173
|
+
- Concept Map: https://bijux.github.io/bijux-vex/user/concept_map/
|
|
174
|
+
- ND Production Guide: https://bijux.github.io/bijux-vex/guides/nd_production/
|
|
175
|
+
- Security Policy: https://github.com/bijux/bijux-vex/blob/main/SECURITY.md
|
|
176
|
+
- Changelog: https://github.com/bijux/bijux-vex/blob/main/CHANGELOG.md
|
bijux_vex-0.2.0/PYPI.md
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/bijux/bijux-vex/main/docs/assets/bijux_logo_hq.png" alt="Bijux-Vex" width="180" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
# bijux-vex
|
|
6
|
+
|
|
7
|
+
**Vector execution runtime with replayable determinism + audited ANN (nothing implicit).**
|
|
8
|
+
|
|
9
|
+
Why this exists: production vector search drifts quietly. Bijux‑Vex makes correctness explicit, and refuses when guarantees cannot be met.
|
|
10
|
+
|
|
11
|
+
If you only read one page, read this: https://bijux.github.io/bijux-vex/user/only_read_one_page/
|
|
12
|
+
|
|
13
|
+
## Why bijux-vex
|
|
14
|
+
|
|
15
|
+
- Replayable determinism for results you can defend
|
|
16
|
+
- Audited, bounded ND (ANN) instead of silent approximation
|
|
17
|
+
- Nothing implicit: fail‑closed by design
|
|
18
|
+
|
|
19
|
+
## Hello world (deterministic, exact)
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
bijux vex ingest --doc "hello" --vector "[0.0, 1.0, 0.0]" \
|
|
23
|
+
--vector-store memory
|
|
24
|
+
bijux vex materialize --execution-contract deterministic --vector-store memory
|
|
25
|
+
bijux vex execute --artifact-id art-1 \
|
|
26
|
+
--execution-contract deterministic --execution-intent exact_validation \
|
|
27
|
+
--execution-mode strict --vector "[0.0, 1.0, 0.0]"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Hello world (ND / ANN with quality)
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
bijux vex materialize --execution-contract non_deterministic --index-mode ann \
|
|
34
|
+
--vector-store faiss --vector-store-uri ./index.faiss
|
|
35
|
+
bijux vex execute --artifact-id art-1 \
|
|
36
|
+
--execution-contract non_deterministic --execution-intent exploratory_search \
|
|
37
|
+
--execution-mode bounded --randomness-seed 42 --randomness-sources ann_probe \
|
|
38
|
+
--nd-witness sample --vector "[0.0, 1.0, 0.0]"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Concept map (instant mental model)
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
request → plan → execute → provenance
|
|
45
|
+
├─ deterministic (exact)
|
|
46
|
+
└─ ND (ANN) + quality
|
|
47
|
+
vector store: optional + explicit
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## When NOT to use this
|
|
51
|
+
|
|
52
|
+
- Not a vector DB (no implicit CRUD or query language)
|
|
53
|
+
- Not a RAG framework (no prompts, no orchestration)
|
|
54
|
+
- Not a hosted service (you run it)
|
|
55
|
+
|
|
56
|
+
## Stability & support
|
|
57
|
+
|
|
58
|
+
- Supported Python: 3.11–3.14
|
|
59
|
+
- Determinism: stable and replayable
|
|
60
|
+
- ND (ANN): experimental but audited and bounded
|
|
61
|
+
|
|
62
|
+
## Getting help / reporting issues
|
|
63
|
+
|
|
64
|
+
GitHub issues: https://github.com/bijux/bijux-vex/issues
|
|
65
|
+
Include `bijux vex debug-bundle` output when reporting a bug.
|
|
66
|
+
|
|
67
|
+
## Quick links
|
|
68
|
+
|
|
69
|
+
- Start Here (10 minutes): https://bijux.github.io/bijux-vex/user/start_here_10_minutes/
|
|
70
|
+
- Start Here (human): https://bijux.github.io/bijux-vex/user/start_here_human/
|
|
71
|
+
- Concept Map: https://bijux.github.io/bijux-vex/user/concept_map/
|
|
72
|
+
- ND Production Guide: https://bijux.github.io/bijux-vex/guides/nd_production/
|
|
73
|
+
- Security Policy: https://github.com/bijux/bijux-vex/blob/main/SECURITY.md
|
|
74
|
+
- Changelog: https://github.com/bijux/bijux-vex/blob/main/CHANGELOG.md
|
|
@@ -4,12 +4,26 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "bijux-vex"
|
|
7
|
-
description = "
|
|
8
|
-
readme = "
|
|
7
|
+
description = "Vector execution runtime with replayable determinism and audited ANN (nothing implicit)."
|
|
8
|
+
readme = "PYPI.md"
|
|
9
9
|
requires-python = ">=3.11,<4"
|
|
10
10
|
license = { text = "MIT" }
|
|
11
11
|
authors = [{ name = "Bijan Mousavi", email = "mousavi.bijan@gmail.com" }]
|
|
12
|
-
|
|
12
|
+
maintainers = [{ name = "Bijan Mousavi", email = "mousavi.bijan@gmail.com" }]
|
|
13
|
+
keywords = [
|
|
14
|
+
"ann",
|
|
15
|
+
"audit",
|
|
16
|
+
"bijux",
|
|
17
|
+
"determinism",
|
|
18
|
+
"execution",
|
|
19
|
+
"nearest-neighbor",
|
|
20
|
+
"provenance",
|
|
21
|
+
"replay",
|
|
22
|
+
"reproducibility",
|
|
23
|
+
"vector",
|
|
24
|
+
"vector-search",
|
|
25
|
+
"vex",
|
|
26
|
+
]
|
|
13
27
|
dynamic = ["version"]
|
|
14
28
|
classifiers = [
|
|
15
29
|
"Development Status :: 4 - Beta",
|
|
@@ -22,6 +36,8 @@ classifiers = [
|
|
|
22
36
|
"Programming Language :: Python :: 3.12",
|
|
23
37
|
"Programming Language :: Python :: 3.13",
|
|
24
38
|
"Programming Language :: Python :: 3.14",
|
|
39
|
+
"Typing :: Typed",
|
|
40
|
+
"Operating System :: OS Independent",
|
|
25
41
|
"Topic :: Software Development :: Libraries",
|
|
26
42
|
"Topic :: Security",
|
|
27
43
|
]
|
|
@@ -38,7 +54,32 @@ api = [
|
|
|
38
54
|
"uvicorn>=0.30.1,<1.0",
|
|
39
55
|
"schemathesis>=4.0,<5.0",
|
|
40
56
|
]
|
|
41
|
-
|
|
57
|
+
config = [
|
|
58
|
+
"PyYAML>=6.0,<7.0",
|
|
59
|
+
]
|
|
60
|
+
embeddings = [
|
|
61
|
+
"sentence-transformers>=2.7.0,<3.0",
|
|
62
|
+
]
|
|
63
|
+
nd = [
|
|
64
|
+
"hnswlib>=0.8.0,<1.0",
|
|
65
|
+
]
|
|
66
|
+
vdb = [
|
|
67
|
+
"faiss-cpu>=1.7.4,<2.0",
|
|
68
|
+
"numpy>=1.26,<3.0",
|
|
69
|
+
"qdrant-client>=1.9.0,<2.0",
|
|
70
|
+
]
|
|
71
|
+
docs = [
|
|
72
|
+
"mkdocs>=1.6.1,<2.0",
|
|
73
|
+
"mkdocs-material>=9.5.39,<10.0",
|
|
74
|
+
"mkdocstrings[python]>=0.26.1,<1.0",
|
|
75
|
+
"mkdocs-git-revision-date-localized-plugin>=1.2.0,<2.0",
|
|
76
|
+
"mkdocs-include-markdown-plugin",
|
|
77
|
+
"mkdocs-gen-files",
|
|
78
|
+
"mkdocs-literate-nav",
|
|
79
|
+
"mkdocs-redirects>=1.2,<2.0",
|
|
80
|
+
"mkdocs-minify-plugin>=0.7,<1.0",
|
|
81
|
+
"mkdocs-glightbox>=0.3,<1.0",
|
|
82
|
+
"mkdocs-material[imaging]>=9.5.39,<10.0",
|
|
42
83
|
]
|
|
43
84
|
dev = [
|
|
44
85
|
"types-PyYAML>=6.0.12,<7.0",
|
|
@@ -76,18 +117,6 @@ dev = [
|
|
|
76
117
|
"pip-audit>=2.7.3,<3.0",
|
|
77
118
|
"commitizen>=4.0.0,<5.0",
|
|
78
119
|
|
|
79
|
-
"mkdocs>=1.6.1,<2.0",
|
|
80
|
-
"mkdocs-material>=9.5.39,<10.0",
|
|
81
|
-
"mkdocstrings[python]>=0.26.1,<1.0",
|
|
82
|
-
"mkdocs-git-revision-date-localized-plugin>=1.2.0,<2.0",
|
|
83
|
-
"mkdocs-include-markdown-plugin",
|
|
84
|
-
"mkdocs-gen-files",
|
|
85
|
-
"mkdocs-literate-nav",
|
|
86
|
-
"mkdocs-redirects>=1.2,<2.0",
|
|
87
|
-
"mkdocs-minify-plugin>=0.7,<1.0",
|
|
88
|
-
"mkdocs-glightbox>=0.3,<1.0",
|
|
89
|
-
"mkdocs-material[imaging]>=9.5.39,<10.0",
|
|
90
|
-
|
|
91
120
|
"prance>=25.4.0.0",
|
|
92
121
|
"openapi-spec-validator>=0.7.1,<1.0",
|
|
93
122
|
"schemathesis>=4.0,<5.0",
|
|
@@ -103,9 +132,21 @@ dev = [
|
|
|
103
132
|
|
|
104
133
|
[project.urls]
|
|
105
134
|
Homepage = "https://bijux.github.io/bijux-vex/"
|
|
106
|
-
Repository = "https://github.com/bijux/bijux-vex"
|
|
107
135
|
Documentation = "https://bijux.github.io/bijux-vex/"
|
|
136
|
+
Source = "https://github.com/bijux/bijux-vex"
|
|
108
137
|
Issues = "https://github.com/bijux/bijux-vex/issues"
|
|
138
|
+
Changelog = "https://github.com/bijux/bijux-vex/blob/main/CHANGELOG.md"
|
|
139
|
+
Security = "https://github.com/bijux/bijux-vex/blob/main/SECURITY.md"
|
|
140
|
+
Funding = "https://github.com/sponsors/bijux"
|
|
141
|
+
|
|
142
|
+
[project.entry-points."bijux_vex.vectorstores"]
|
|
143
|
+
example = "bijux_vex.plugins.example:register_vectorstore"
|
|
144
|
+
|
|
145
|
+
[project.entry-points."bijux_vex.embeddings"]
|
|
146
|
+
example = "bijux_vex.plugins.example:register_embedding"
|
|
147
|
+
|
|
148
|
+
[project.entry-points."bijux_vex.runners"]
|
|
149
|
+
example = "bijux_vex.plugins.example:register_runner"
|
|
109
150
|
|
|
110
151
|
[tool.hatch.version]
|
|
111
152
|
source = "vcs"
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.
|
|
32
|
-
__version_tuple__ = version_tuple = (0,
|
|
31
|
+
__version__ = version = '0.2.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 2, 0)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
bijux_vex-0.1.0/PKG-INFO
DELETED
|
@@ -1,185 +0,0 @@
|
|
|
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`.
|
bijux_vex-0.1.0/README.md
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
# bijux-vex — vector execution engine with explicit determinism
|
|
2
|
-
|
|
3
|
-
[](https://pypi.org/project/bijux-vex/)
|
|
4
|
-
[](https://pypi.org/project/bijux-vex/)
|
|
5
|
-
[](https://peps.python.org/pep-0561/)
|
|
6
|
-
[](https://github.com/bijux/bijux-vex/raw/main/LICENSES/MIT.txt)
|
|
7
|
-
[](https://bijux.github.io/bijux-vex/)
|
|
8
|
-
[](https://github.com/bijux/bijux-vex/actions)
|
|
9
|
-
|
|
10
|
-
bijux-vex executes vector workloads under **contracts**. Deterministic runs are replayable; non-deterministic runs are bounded, audited, and comparable.
|
|
11
|
-
Nothing is implicit: no silent defaults, retries, or randomness.
|
|
12
|
-
|
|
13
|
-
## What bijux-vex is
|
|
14
|
-
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.
|
|
15
|
-
|
|
16
|
-
## What bijux-vex is not
|
|
17
|
-
- Not a vector DB or storage layer.
|
|
18
|
-
- Not an embedding or RAG framework.
|
|
19
|
-
- Not a serving platform with SLAs.
|
|
20
|
-
|
|
21
|
-
## Quick links
|
|
22
|
-
- Start here (single onboarding path): [user/start_here.md](user/start_here.md)
|
|
23
|
-
- Docs home: https://bijux.github.io/bijux-vex/
|
|
24
|
-
- Concepts: [overview/concepts.md](overview/concepts.md)
|
|
25
|
-
- 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)
|
|
26
|
-
- Examples: [examples/overview.md](examples/overview.md)
|
|
27
|
-
- Changelog: [changelog.md](changelog.md)
|
|
28
|
-
- Not a vector DB: [user/not_a_vdb.md](user/not_a_vdb.md)
|
|
29
|
-
|
|
30
|
-
## Reading order (guaranteed)
|
|
31
|
-
1) Start with [user/start_here.md](user/start_here.md) for the problem, fit, and next steps.
|
|
32
|
-
2) Then [overview/concepts.md](overview/concepts.md) for execution vs storage and determinism vs non-determinism.
|
|
33
|
-
3) Then [spec/system_contract.md](spec/system_contract.md) and [spec/execution_contracts.md](spec/execution_contracts.md) for the normative rules.
|
|
34
|
-
4) Run [examples/overview.md](examples/overview.md) for deterministic and ANN flows.
|
|
35
|
-
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.
|
|
36
|
-
Everything else is reference or maintainer material.
|
|
37
|
-
|
|
38
|
-
## Start here
|
|
39
|
-
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.
|
|
40
|
-
|
|
41
|
-
## Minimal example (CLI, 10 lines)
|
|
42
|
-
```sh
|
|
43
|
-
bijux vex create --name demo
|
|
44
|
-
bijux vex ingest --documents doc.txt --vectors [[0,1,0]]
|
|
45
|
-
bijux vex artifact --artifact-id exact --contract deterministic
|
|
46
|
-
bijux vex execute --artifact-id exact --vector [0,1,0] --top-k 1 --contract deterministic
|
|
47
|
-
bijux vex artifact --artifact-id ann --contract non_deterministic
|
|
48
|
-
bijux vex execute --artifact-id ann --vector [0,1,0] --top-k 1 --contract non_deterministic --randomness-profile seed=1
|
|
49
|
-
bijux vex explain --artifact-id exact --result-id <vector_id>
|
|
50
|
-
bijux vex compare --artifact-id exact --other-id ann
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## Execution truth table (canonical)
|
|
54
|
-
| Contract | Support level | Replayable | Output stability | Provenance / audit | Notes |
|
|
55
|
-
| --- | --- | --- | --- | --- | --- |
|
|
56
|
-
| deterministic | stable | yes (bit-identical) | stable | full chain + fingerprints | frozen ABI; breaking changes require major bump |
|
|
57
|
-
| non_deterministic | stable_bounded | no (envelope only) | outcome-variable (bounded divergence) | approximation + randomness metadata required | experimental surface; may fail if ANN backend unavailable |
|
|
58
|
-
|
|
59
|
-
## Stability guarantees
|
|
60
|
-
- Supported Python: 3.11–3.13 (CI + metadata aligned).
|
|
61
|
-
- Package version: dynamic from git tags via hatch-vcs.
|
|
62
|
-
- Public API version: **v1.x** (frozen; breaking changes require major bump).
|
|
63
|
-
- Deterministic execution surface and ABI are frozen; breaking changes require a major bump.
|
|
64
|
-
- ND/ANN execution is **experimental** and may change; it can legally fail when no ANN backend is available.
|
|
65
|
-
- Determinism gates, ANN contracts, and provenance schema are enforced in conformance tests; regressions fail CI.
|
|
66
|
-
- 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.
|
|
67
|
-
|
|
68
|
-
## No synonym drift
|
|
69
|
-
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.
|
|
70
|
-
|
|
71
|
-
## Public surfaces
|
|
72
|
-
- **CLI (Typer)**: `create`, `ingest`, `materialize`, `execute`, `explain`, `replay`, `compare`, `list-artifacts`.
|
|
73
|
-
- **API (FastAPI)**: versioned under `bijux_vex.api.v1` with frozen OpenAPI (`api/v1/openapi.v1.json`), endpoints mirror CLI verbs.
|
|
74
|
-
- **Core types**: `ExecutionContract`, `ExecutionRequest`, `ExecutionArtifact`, `ExecutionResources`, `ApproximationReport`, `RandomnessProfile`.
|
|
75
|
-
|
|
76
|
-
## Non-goals checksum
|
|
77
|
-
X - Not a VDB or search service.
|
|
78
|
-
X - Not an ML/embedding framework.
|
|
79
|
-
X - Not a serving layer with SLAs.
|
|
80
|
-
X - Not a “best-effort” ANN wrapper—contracts must be explicit.
|
|
81
|
-
|
|
82
|
-
## Why strict
|
|
83
|
-
Aggressive invariants, terminal failures, and refusal to fallback exist to keep provenance honest and prevent silent divergence; permissive modes are intentionally rejected.
|
|
84
|
-
|
|
85
|
-
## Assumptions
|
|
86
|
-
- Trusted runtime and honest backend declaration.
|
|
87
|
-
- Data is non-adversarial unless stated in tests.
|
|
88
|
-
- Users read the “Start here” path before touching API/CLI.
|
|
89
|
-
|
|
90
|
-
## When contracts are violated
|
|
91
|
-
- Deterministic: execution refuses to run; replay fails closed.
|
|
92
|
-
- Non-deterministic: fails fast if ANN unavailable or metadata missing; never silently falls back to deterministic.
|
|
93
|
-
- Budget or capability breaches raise typed errors; no hidden retries or approximations.
|
|
94
|
-
|
|
95
|
-
## Contributing & release
|
|
96
|
-
- Keep invariants terminal; ND without metadata is forbidden.
|
|
97
|
-
- Run `make lint quality security test` before any PR.
|
|
98
|
-
- Release process: see `docs/maintainer/release_process.md`; tags drive package versions, SBOM, and wheels.
|
|
99
|
-
- Licensing: code under MIT; docs/config under CC0. See `docs/legal/licensing.md`.
|
|
File without changes
|
|
File without changes
|