agentic-flows 0.1.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.
@@ -0,0 +1,143 @@
1
+ ### Python template
2
+ # Byte-compiled / optimized / DLL files
3
+ __pycache__/
4
+ *.py[cod]
5
+ *$py.class
6
+
7
+ # C extensions
8
+ *.so
9
+
10
+ # Distribution / packaging
11
+ .Python
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ wheels/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ *.manifest
32
+ *.spec
33
+
34
+ # Installer logs
35
+ pip-log.txt
36
+ pip-delete-this-directory.txt
37
+
38
+ # Unit test / coverage reports
39
+ htmlcov/
40
+ .tox/
41
+ .nox/
42
+ .coverage
43
+ .coverage.*
44
+ .cache
45
+ nosetests.xml
46
+ coverage.xml
47
+ *.cover
48
+ *.py,cover
49
+ .hypothesis/
50
+ .pytest_cache/
51
+ cover/
52
+
53
+ # Translations
54
+ *.mo
55
+ *.pot
56
+
57
+ # Django stuff:
58
+ *.log
59
+ local_settings.py
60
+ db.sqlite3
61
+ db.sqlite3-journal
62
+
63
+ # Flask stuff:
64
+ instance/
65
+ .webassets-cache
66
+
67
+ # Scrapy stuff:
68
+ .scrapy
69
+
70
+ # Sphinx documentation
71
+ docs/_build/
72
+
73
+ # PyBuilder
74
+ .pybuilder/
75
+ target/
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default/
82
+ ipython_config.py
83
+
84
+ .pdm.toml
85
+ .pdm-python
86
+ .pdm-build/
87
+
88
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
89
+ __pypackages__/
90
+
91
+ # Celery stuff
92
+ celerybeat-schedule
93
+ celerybeat.pid
94
+
95
+ # SageMath parsed files
96
+ *.sage.py
97
+
98
+ # Environments
99
+ .env
100
+ .venv
101
+ env/
102
+ venv/
103
+ ENV/
104
+ env.bak/
105
+ venv.bak/
106
+
107
+ # Spyder project settings
108
+ .spyderproject
109
+ .spyproject
110
+
111
+ # Rope project settings
112
+ .ropeproject
113
+
114
+ # mkdocs documentation
115
+ /site
116
+
117
+ # mypy
118
+ .mypy_cache/
119
+ .dmypy.json
120
+ dmypy.json
121
+
122
+ # Pyre type checker
123
+ .pyre/
124
+
125
+ # pytype static type analyzer
126
+ .pytype/
127
+
128
+ # Cython debug symbols
129
+ cython_debug/
130
+
131
+ artifacts
132
+ artifacts/
133
+
134
+ .idea
135
+ .idea/
136
+
137
+ site
138
+ site/
139
+
140
+ .benchmarks
141
+ .benchmarks/
142
+
143
+ **/*.pyc
@@ -0,0 +1,60 @@
1
+ # Changelog
2
+ <a id="top"></a>
3
+
4
+ All notable changes to **agentic-flows** are documented here.
5
+ This project adheres to [Semantic Versioning](https://semver.org) and the
6
+ [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format.
7
+
8
+ <a id="unreleased"></a>
9
+ ## [Unreleased]
10
+
11
+ <!-- unreleased start -->
12
+ ### Added
13
+ * (add new entries via fragments in `changelog.d/`)
14
+
15
+ ### Changed
16
+ * (add here)
17
+
18
+ ### Fixed
19
+ * (add here)
20
+ <!-- unreleased end -->
21
+
22
+
23
+
24
+ ---
25
+
26
+ <!-- release start -->
27
+
28
+ <a id="v0-1-0"></a>
29
+ ## [0.1.0] – 2025-01-21
30
+
31
+ ### Added
32
+ - **Core runtime**
33
+ - Deterministic execution lifecycle with planning, execution, and finalization phases.
34
+ - Execution modes: plan, dry-run, live, observe, and unsafe.
35
+ - Strict determinism guardrails with explicit seed and environment fingerprints.
36
+ - **Non-determinism governance**
37
+ - Declared non-determinism intent model and policy validation.
38
+ - Entropy budgeting with enforcement, exhaustion semantics, and replay analysis.
39
+ - Determinism profiles with structured replay metadata.
40
+ - **Replay and audit**
41
+ - Replay modes (strict/bounded/observational) and acceptability classifications.
42
+ - Trace diffing, replay envelopes, and deterministic replay validation.
43
+ - Observability capture for events, artifacts, evidence, and entropy usage.
44
+ - **Persistence**
45
+ - DuckDB execution store with schema contract enforcement and migrations.
46
+ - Execution schema, replay envelopes, checkpoints, and trace storage.
47
+ - **CLI + API surface**
48
+ - CLI commands for planning, running, replaying, inspecting, and diffing runs.
49
+ - OpenAPI schema for the HTTP surface with schema hash stability checks.
50
+ - **Policies and verification**
51
+ - Verification policy and arbitration plumbing for reasoning and evidence checks.
52
+ - Failure taxonomy with deterministic error classes.
53
+ - **Docs and examples**
54
+ - Determinism/non-determinism contract docs and storage model guidance.
55
+ - Examples for deterministic and replay behavior.
56
+ - **Quality gates**
57
+ - Makefile orchestration for tests, linting, docs, API checks, SBOM, and citation outputs.
58
+
59
+
60
+ <!-- release end -->
@@ -0,0 +1,23 @@
1
+ cff-version: 1.2.0
2
+ message: "If you use this software, please cite it as:"
3
+ title: "agentic-flows"
4
+ version: "0.1.0"
5
+ date-released: 2025-01-18
6
+ authors:
7
+ - family-names: "Mousavi"
8
+ given-names: "Bijan"
9
+ orcid: "https://orcid.org/0009-0002-4092-2854"
10
+ repository-code: "https://github.com/bijux/agentic-flows"
11
+ url: "https://github.com/bijux/agentic-flows"
12
+ license: "Apache-2.0"
13
+ keywords: ["agentic-flows", "agents", "determinism", "verification"]
14
+ preferred-citation:
15
+ type: software
16
+ title: "agentic-flows"
17
+ version: "0.1.0"
18
+ authors:
19
+ - family-names: "Mousavi"
20
+ given-names: "Bijan"
21
+ year: 2025
22
+ month: 1
23
+ url: "https://github.com/bijux/agentic-flows"
@@ -0,0 +1,192 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ Copyright 2025 Bijan Mousavi
181
+
182
+ Licensed under the Apache License, Version 2.0 (the "License");
183
+ you may not use this file except in compliance with the License.
184
+ You may obtain a copy of the License at
185
+
186
+ http://www.apache.org/licenses/LICENSE-2.0
187
+
188
+ Unless required by applicable law or agreed to in writing, software
189
+ distributed under the License is distributed on an "AS IS" BASIS,
190
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
191
+ See the License for the specific language governing permissions and
192
+ limitations under the License.
@@ -0,0 +1,379 @@
1
+ Metadata-Version: 2.4
2
+ Name: agentic-flows
3
+ Version: 0.1.0
4
+ Summary: Governed execution and replay with auditable non-determinism
5
+ Project-URL: Documentation, https://bijux.github.io/agentic-flows/
6
+ Project-URL: Repository, https://github.com/bijux/agentic-flows
7
+ Project-URL: Issues, https://github.com/bijux/agentic-flows/issues
8
+ Project-URL: Changelog, https://github.com/bijux/agentic-flows/blob/main/CHANGELOG.md
9
+ Author-email: Bijan Mousavi <mousavi.bijan@gmail.com>
10
+ License: Apache-2.0
11
+ License-File: LICENSE
12
+ Keywords: agents,audit,execution,governance,non-determinism,replay,reproducibility
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Environment :: Console
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Intended Audience :: Science/Research
17
+ Classifier: License :: OSI Approved :: Apache Software License
18
+ Classifier: Operating System :: MacOS
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Operating System :: POSIX
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3 :: Only
23
+ Classifier: Programming Language :: Python :: 3.11
24
+ Classifier: Programming Language :: Python :: 3.12
25
+ Classifier: Programming Language :: Python :: 3.13
26
+ Classifier: Programming Language :: Python :: 3.14
27
+ Classifier: Programming Language :: Python :: Implementation :: CPython
28
+ Classifier: Topic :: Software Development :: Libraries
29
+ Classifier: Topic :: Utilities
30
+ Requires-Python: >=3.11
31
+ Requires-Dist: bijux-agent<0.2.0,>=0.1.0
32
+ Requires-Dist: bijux-cli<0.2.0,>=0.1.0
33
+ Requires-Dist: bijux-rag<0.2.0,>=0.1.0
34
+ Requires-Dist: bijux-rar<0.2.0,>=0.1.0
35
+ Requires-Dist: bijux-vex<0.2.0,>=0.1.0
36
+ Requires-Dist: duckdb<2.0.0,>=1.1.3
37
+ Requires-Dist: pydantic<3.0.0,>=2.0.2
38
+ Provides-Extra: api
39
+ Requires-Dist: fastapi<1.0,>=0.128; extra == 'api'
40
+ Requires-Dist: uvicorn<1.0,>=0.32; extra == 'api'
41
+ Provides-Extra: dev
42
+ Requires-Dist: bandit<2.0,>=1.7.10; extra == 'dev'
43
+ Requires-Dist: build<2.0,>=1.0.3; extra == 'dev'
44
+ Requires-Dist: codespell<3.0,>=2.3.0; extra == 'dev'
45
+ Requires-Dist: deptry<1.0,>=0.10.0; extra == 'dev'
46
+ Requires-Dist: fastapi<1.0,>=0.128; extra == 'dev'
47
+ Requires-Dist: httpx<1.0,>=0.27.0; extra == 'dev'
48
+ Requires-Dist: hypothesis-jsonschema<1.0,>=0.23.0; extra == 'dev'
49
+ Requires-Dist: hypothesis<7.0,>=6.103.0; extra == 'dev'
50
+ Requires-Dist: interrogate<2.0,>=1.7.0; extra == 'dev'
51
+ Requires-Dist: mkdocs-material<10.0,>=9.5.39; extra == 'dev'
52
+ Requires-Dist: mkdocs<2.0,>=1.6.1; extra == 'dev'
53
+ Requires-Dist: mypy<2.0,>=1.11.2; 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: pydocstyle<7.0,>=6.2.1; extra == 'dev'
57
+ Requires-Dist: pyfakefs>=5.9.0; extra == 'dev'
58
+ Requires-Dist: pyright<2.0,>=1.1.320; extra == 'dev'
59
+ Requires-Dist: pytest-asyncio<2.0,>=1.0.0; extra == 'dev'
60
+ Requires-Dist: pytest-benchmark<5.0,>=4.0.0; extra == 'dev'
61
+ Requires-Dist: pytest-cov<7.0,>=6.2.1; extra == 'dev'
62
+ Requires-Dist: pytest-mock<4.0,>=3.14.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: pyyaml<7.0,>=6.0; extra == 'dev'
68
+ Requires-Dist: radon>=6.0.0; extra == 'dev'
69
+ Requires-Dist: reuse<6.0.0,>=4.0.0; extra == 'dev'
70
+ Requires-Dist: ruff<1.0,>=0.6.8; extra == 'dev'
71
+ Requires-Dist: types-colorama<1.0,>=0.0.14; extra == 'dev'
72
+ Requires-Dist: types-orjson<4.0,>=3.6.0; extra == 'dev'
73
+ Requires-Dist: types-pexpect<5.0,>=4.9.0; extra == 'dev'
74
+ Requires-Dist: types-psutil<7.0,>=6.0.0; extra == 'dev'
75
+ Requires-Dist: types-pyyaml<7.0,>=6.0.12; extra == 'dev'
76
+ Requires-Dist: typing-extensions<5.0,>=4.5.0; extra == 'dev'
77
+ Requires-Dist: vulture<3.0,>=2.7; extra == 'dev'
78
+ Description-Content-Type: text/markdown
79
+
80
+ # Agentic Flows
81
+ <a id="top"></a>
82
+
83
+ **A deterministic, contract-first execution and replay framework** — strict invariants, reproducible runs, and traceable outputs. Build audit-ready agent workflows with stable artifacts and replayable traces.
84
+
85
+ Non-determinism is explicitly declared, budgeted, classified, governed, and audited.
86
+ Determinism is a policy decision, not a binary property.
87
+
88
+ v1 scope covers deterministic execution, replay, and contract verification for offline workflows; it is intended for research engineers and platform teams who need audit-grade runs, and it is not for interactive chat systems, autonomous agents, or low-latency production serving.
89
+
90
+ This system prioritizes replayability and auditability over convenience and speed.
91
+
92
+ [![PyPI - Version](https://img.shields.io/pypi/v/agentic-flows.svg)](https://pypi.org/project/agentic-flows/)
93
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://pypi.org/project/agentic-flows/)
94
+ [![Typing: typed (PEP 561)](https://img.shields.io/badge/typing-typed-4F8CC9.svg)](https://peps.python.org/pep-0561/)
95
+ [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-green.svg)](https://github.com/bijux/agentic-flows/blob/main/LICENSE)
96
+ [![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-brightgreen)](https://bijux.github.io/agentic-flows/)
97
+ [![CI Status](https://github.com/bijux/agentic-flows/actions/workflows/ci.yml/badge.svg)](https://github.com/bijux/agentic-flows/actions)
98
+
99
+ > **At a glance:** deterministic execution • invariant enforcement • replayable traces • CLI surface • structured telemetry
100
+ > **Quality:** coverage floors enforced per module, benchmark regression gate active, docs linted and built in CI, no telemetry.
101
+
102
+ ---
103
+
104
+ ## Table of Contents
105
+
106
+ * [Why Agentic Flows?](#why-agentic-flows)
107
+ * [Try It in 20 Seconds](#try-it-in-20-seconds)
108
+ * [Key Features](#key-features)
109
+ * [Installation](#installation)
110
+ * [Quick Start](#quick-start)
111
+ * [Artifacts & Reproducibility](#artifacts--reproducibility)
112
+ * [API Surface](#api-surface)
113
+ * [Built-in Commands](#built-in-commands)
114
+ * [Tests & Quality](#tests--quality)
115
+ * [Project Tree](#project-tree)
116
+ * [Docs & Resources](#docs--resources)
117
+ * [Contributing](#contributing)
118
+ * [License](#license)
119
+
120
+
121
+
122
+ ---
123
+
124
+ <a id="why-agentic-flows"></a>
125
+ ## Why Agentic Flows?
126
+
127
+ Most agent tooling optimizes for velocity. Agentic Flows prioritizes **repeatability, traceability, and audit-ready execution**:
128
+
129
+ * **Determinism first** for reliable experiments and CI validation.
130
+ * **Invariant enforcement** with fail-fast execution semantics.
131
+ * **Replayable traces** for deterministic verification.
132
+ * **Clear boundaries** between execution, retrieval, and verification.
133
+
134
+
135
+
136
+ ---
137
+
138
+ <a id="try-it-in-20-seconds"></a>
139
+ ## Try It in 20 Seconds
140
+
141
+ ```bash
142
+ pipx install agentic-flows # Or: pip install agentic-flows
143
+ agentic-flows --help
144
+ agentic-flows run examples/boring/flow.json --policy examples/boring/policy.json --db-path /tmp/flows.duckdb
145
+ ```
146
+
147
+
148
+
149
+ ---
150
+
151
+ <a id="key-features"></a>
152
+ ## Key Features
153
+
154
+ * **Deterministic execution** — reproducible runs with explicit budgets.
155
+ * **Contract-first design** — schema and invariants enforced at boundaries.
156
+ * **Replayable traces** — audit-grade execution records.
157
+ * **Structured telemetry** — correlation IDs and traceable events.
158
+
159
+
160
+
161
+ ---
162
+
163
+ <a id="installation"></a>
164
+ ## Installation
165
+
166
+ Requires **Python 3.11+**.
167
+
168
+ ```bash
169
+ # Isolated install (recommended)
170
+ pipx install agentic-flows
171
+
172
+ # Standard
173
+ pip install agentic-flows
174
+ ```
175
+
176
+ Upgrade: `pipx upgrade agentic-flows` or `pip install --upgrade agentic-flows`.
177
+
178
+
179
+
180
+ ---
181
+
182
+ <a id="quick-start"></a>
183
+ ## Quick Start
184
+
185
+ ```bash
186
+ # Discover commands/flags
187
+ agentic-flows --help
188
+
189
+ # Run a deterministic execution
190
+ agentic-flows run examples/boring/flow.json --policy examples/boring/policy.json --db-path /tmp/flows.duckdb
191
+ ```
192
+
193
+
194
+
195
+ ---
196
+
197
+ <a id="artifacts--reproducibility"></a>
198
+ ## Artifacts & Reproducibility
199
+
200
+ Artifacts are immutable and hash-addressed. Replaying a run verifies hashes before returning outputs.
201
+
202
+ ```bash
203
+ agentic-flows replay examples/boring/flow.json --policy examples/boring/policy.json --run-id <run_id> --tenant-id <tenant> --db-path /tmp/flows.duckdb
204
+ ```
205
+
206
+ Docs: [Execution Lifecycle](https://bijux.github.io/agentic-flows/architecture/execution_lifecycle/) · [Invariants](https://bijux.github.io/agentic-flows/architecture/invariants/)
207
+
208
+
209
+
210
+ ---
211
+
212
+ <a id="api-surface"></a>
213
+ ## API Surface
214
+
215
+ HTTP API is experimental and currently unimplemented.
216
+
217
+ Docs: [API Overview](https://bijux.github.io/agentic-flows/api/overview/) · [Schema](https://bijux.github.io/agentic-flows/api/schema/)
218
+
219
+
220
+
221
+ ---
222
+
223
+ <a id="built-in-commands"></a>
224
+ ## Built-in Commands
225
+
226
+ | Command | Description | Example |
227
+ | ------- | ----------- | ------- |
228
+ | `run` | Execute a flow | `agentic-flows run examples/boring/flow.json --policy examples/boring/policy.json --db-path /tmp/flow.duckdb` |
229
+ | `replay` | Replay a stored run | `agentic-flows replay examples/boring/flow.json --policy examples/boring/policy.json --run-id <run_id> --tenant-id <tenant> --db-path /tmp/flow.duckdb` |
230
+ | `inspect run` | Inspect a stored run | `agentic-flows inspect run <run_id> --tenant-id <tenant> --db-path /tmp/flow.duckdb` |
231
+
232
+ Full surface: [CLI Surface](https://bijux.github.io/agentic-flows/interface/cli_surface/)
233
+
234
+
235
+
236
+ ---
237
+
238
+ <a id="tests--quality"></a>
239
+ ## Tests & Quality
240
+
241
+ * **Coverage floors:** enforced per module in CI.
242
+ * **Benchmarks:** regression gate on critical path.
243
+ * **Docs:** linted and built in CI.
244
+
245
+ Quick commands:
246
+
247
+ ```bash
248
+ make test
249
+ make lint
250
+ make quality
251
+ ```
252
+
253
+ Artifacts: Generated in CI; see GitHub Actions for logs and reports.
254
+
255
+
256
+
257
+ ---
258
+
259
+ <a id="project-tree"></a>
260
+ ## Project Tree
261
+
262
+ ```
263
+ api/ # OpenAPI schemas
264
+ config/ # Lint/type/security configs
265
+ docs/ # MkDocs site
266
+ makefiles/ # Task modules (docs, test, lint, etc.)
267
+ scripts/ # Helper scripts
268
+ src/agentic_flows/ # Runtime + CLI implementation
269
+ tests/ # unit / regression / e2e
270
+ ```
271
+
272
+
273
+
274
+ ---
275
+
276
+ <a id="docs--resources"></a>
277
+ ## Docs & Resources
278
+
279
+ * **Overview**: [Why agentic-flows exists](https://bijux.github.io/agentic-flows/overview/why-agentic-flows/) · [Mental model](https://bijux.github.io/agentic-flows/overview/mental-model/) · [Minimal run](https://bijux.github.io/agentic-flows/overview/minimal-run/) · [Relationship to agentic-proteins](https://bijux.github.io/agentic-flows/overview/relationship-to-agentic-proteins/) · [Audience](https://bijux.github.io/agentic-flows/overview/audience/)
280
+ * **Concepts**: [Concepts index](https://bijux.github.io/agentic-flows/concepts/) · [Determinism](https://bijux.github.io/agentic-flows/concepts/determinism/) · [Failures](https://bijux.github.io/agentic-flows/concepts/failures/)
281
+ * **Execution**: [Failure paths](https://bijux.github.io/agentic-flows/execution/failure-paths/)
282
+ * **Site**: https://bijux.github.io/agentic-flows/
283
+ * **Changelog**: https://github.com/bijux/agentic-flows/blob/main/CHANGELOG.md
284
+ * **Repository**: https://github.com/bijux/agentic-flows
285
+ * **Issues**: https://github.com/bijux/agentic-flows/issues
286
+ * **Security** (private reports): https://github.com/bijux/agentic-flows/security/advisories/new
287
+ * **Artifacts**: https://bijux.github.io/agentic-flows/artifacts/
288
+
289
+
290
+
291
+ ---
292
+
293
+ <a id="contributing"></a>
294
+ ## Contributing
295
+
296
+ Welcome. See **[CONTRIBUTING.md](https://github.com/bijux/agentic-flows/blob/main/CONTRIBUTING.md)** for setup and test guidance.
297
+
298
+
299
+
300
+ ---
301
+
302
+ <a id="license"></a>
303
+ ## License
304
+
305
+ Apache-2.0 — see **[LICENSE](https://github.com/bijux/agentic-flows/blob/main/LICENSE)**.
306
+ © 2025 Bijan Mousavi.
307
+
308
+
309
+ ---
310
+
311
+ This system is designed for auditability and replay, not exploratory or interactive use.
312
+
313
+ ## Non-goals
314
+
315
+ - Automatic agent self-improvement or learning
316
+
317
+ ## Publishing status
318
+
319
+ Current maturity: experimental research framework. v0.x carries no backward compatibility guarantees; schema compatibility is the only API guarantee. CLI output formatting and observability summaries may change without notice. Internal execution and verification APIs are not stable. Production usage should gate on strict determinism and explicit contracts.
320
+ # Changelog
321
+ <a id="top"></a>
322
+
323
+ All notable changes to **agentic-flows** are documented here.
324
+ This project adheres to [Semantic Versioning](https://semver.org) and the
325
+ [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format.
326
+
327
+ <a id="unreleased"></a>
328
+ ## [Unreleased]
329
+
330
+ <!-- unreleased start -->
331
+ ### Added
332
+ * (add new entries via fragments in `changelog.d/`)
333
+
334
+ ### Changed
335
+ * (add here)
336
+
337
+ ### Fixed
338
+ * (add here)
339
+ <!-- unreleased end -->
340
+
341
+
342
+
343
+ ---
344
+
345
+ <!-- release start -->
346
+
347
+ <a id="v0-1-0"></a>
348
+ ## [0.1.0] – 2025-01-21
349
+
350
+ ### Added
351
+ - **Core runtime**
352
+ - Deterministic execution lifecycle with planning, execution, and finalization phases.
353
+ - Execution modes: plan, dry-run, live, observe, and unsafe.
354
+ - Strict determinism guardrails with explicit seed and environment fingerprints.
355
+ - **Non-determinism governance**
356
+ - Declared non-determinism intent model and policy validation.
357
+ - Entropy budgeting with enforcement, exhaustion semantics, and replay analysis.
358
+ - Determinism profiles with structured replay metadata.
359
+ - **Replay and audit**
360
+ - Replay modes (strict/bounded/observational) and acceptability classifications.
361
+ - Trace diffing, replay envelopes, and deterministic replay validation.
362
+ - Observability capture for events, artifacts, evidence, and entropy usage.
363
+ - **Persistence**
364
+ - DuckDB execution store with schema contract enforcement and migrations.
365
+ - Execution schema, replay envelopes, checkpoints, and trace storage.
366
+ - **CLI + API surface**
367
+ - CLI commands for planning, running, replaying, inspecting, and diffing runs.
368
+ - OpenAPI schema for the HTTP surface with schema hash stability checks.
369
+ - **Policies and verification**
370
+ - Verification policy and arbitration plumbing for reasoning and evidence checks.
371
+ - Failure taxonomy with deterministic error classes.
372
+ - **Docs and examples**
373
+ - Determinism/non-determinism contract docs and storage model guidance.
374
+ - Examples for deterministic and replay behavior.
375
+ - **Quality gates**
376
+ - Makefile orchestration for tests, linting, docs, API checks, SBOM, and citation outputs.
377
+
378
+
379
+ <!-- release end -->
@@ -0,0 +1,240 @@
1
+ # Agentic Flows
2
+ <a id="top"></a>
3
+
4
+ **A deterministic, contract-first execution and replay framework** — strict invariants, reproducible runs, and traceable outputs. Build audit-ready agent workflows with stable artifacts and replayable traces.
5
+
6
+ Non-determinism is explicitly declared, budgeted, classified, governed, and audited.
7
+ Determinism is a policy decision, not a binary property.
8
+
9
+ v1 scope covers deterministic execution, replay, and contract verification for offline workflows; it is intended for research engineers and platform teams who need audit-grade runs, and it is not for interactive chat systems, autonomous agents, or low-latency production serving.
10
+
11
+ This system prioritizes replayability and auditability over convenience and speed.
12
+
13
+ [![PyPI - Version](https://img.shields.io/pypi/v/agentic-flows.svg)](https://pypi.org/project/agentic-flows/)
14
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://pypi.org/project/agentic-flows/)
15
+ [![Typing: typed (PEP 561)](https://img.shields.io/badge/typing-typed-4F8CC9.svg)](https://peps.python.org/pep-0561/)
16
+ [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-green.svg)](https://github.com/bijux/agentic-flows/blob/main/LICENSE)
17
+ [![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-brightgreen)](https://bijux.github.io/agentic-flows/)
18
+ [![CI Status](https://github.com/bijux/agentic-flows/actions/workflows/ci.yml/badge.svg)](https://github.com/bijux/agentic-flows/actions)
19
+
20
+ > **At a glance:** deterministic execution • invariant enforcement • replayable traces • CLI surface • structured telemetry
21
+ > **Quality:** coverage floors enforced per module, benchmark regression gate active, docs linted and built in CI, no telemetry.
22
+
23
+ ---
24
+
25
+ ## Table of Contents
26
+
27
+ * [Why Agentic Flows?](#why-agentic-flows)
28
+ * [Try It in 20 Seconds](#try-it-in-20-seconds)
29
+ * [Key Features](#key-features)
30
+ * [Installation](#installation)
31
+ * [Quick Start](#quick-start)
32
+ * [Artifacts & Reproducibility](#artifacts--reproducibility)
33
+ * [API Surface](#api-surface)
34
+ * [Built-in Commands](#built-in-commands)
35
+ * [Tests & Quality](#tests--quality)
36
+ * [Project Tree](#project-tree)
37
+ * [Docs & Resources](#docs--resources)
38
+ * [Contributing](#contributing)
39
+ * [License](#license)
40
+
41
+
42
+
43
+ ---
44
+
45
+ <a id="why-agentic-flows"></a>
46
+ ## Why Agentic Flows?
47
+
48
+ Most agent tooling optimizes for velocity. Agentic Flows prioritizes **repeatability, traceability, and audit-ready execution**:
49
+
50
+ * **Determinism first** for reliable experiments and CI validation.
51
+ * **Invariant enforcement** with fail-fast execution semantics.
52
+ * **Replayable traces** for deterministic verification.
53
+ * **Clear boundaries** between execution, retrieval, and verification.
54
+
55
+
56
+
57
+ ---
58
+
59
+ <a id="try-it-in-20-seconds"></a>
60
+ ## Try It in 20 Seconds
61
+
62
+ ```bash
63
+ pipx install agentic-flows # Or: pip install agentic-flows
64
+ agentic-flows --help
65
+ agentic-flows run examples/boring/flow.json --policy examples/boring/policy.json --db-path /tmp/flows.duckdb
66
+ ```
67
+
68
+
69
+
70
+ ---
71
+
72
+ <a id="key-features"></a>
73
+ ## Key Features
74
+
75
+ * **Deterministic execution** — reproducible runs with explicit budgets.
76
+ * **Contract-first design** — schema and invariants enforced at boundaries.
77
+ * **Replayable traces** — audit-grade execution records.
78
+ * **Structured telemetry** — correlation IDs and traceable events.
79
+
80
+
81
+
82
+ ---
83
+
84
+ <a id="installation"></a>
85
+ ## Installation
86
+
87
+ Requires **Python 3.11+**.
88
+
89
+ ```bash
90
+ # Isolated install (recommended)
91
+ pipx install agentic-flows
92
+
93
+ # Standard
94
+ pip install agentic-flows
95
+ ```
96
+
97
+ Upgrade: `pipx upgrade agentic-flows` or `pip install --upgrade agentic-flows`.
98
+
99
+
100
+
101
+ ---
102
+
103
+ <a id="quick-start"></a>
104
+ ## Quick Start
105
+
106
+ ```bash
107
+ # Discover commands/flags
108
+ agentic-flows --help
109
+
110
+ # Run a deterministic execution
111
+ agentic-flows run examples/boring/flow.json --policy examples/boring/policy.json --db-path /tmp/flows.duckdb
112
+ ```
113
+
114
+
115
+
116
+ ---
117
+
118
+ <a id="artifacts--reproducibility"></a>
119
+ ## Artifacts & Reproducibility
120
+
121
+ Artifacts are immutable and hash-addressed. Replaying a run verifies hashes before returning outputs.
122
+
123
+ ```bash
124
+ agentic-flows replay examples/boring/flow.json --policy examples/boring/policy.json --run-id <run_id> --tenant-id <tenant> --db-path /tmp/flows.duckdb
125
+ ```
126
+
127
+ Docs: [Execution Lifecycle](https://bijux.github.io/agentic-flows/architecture/execution_lifecycle/) · [Invariants](https://bijux.github.io/agentic-flows/architecture/invariants/)
128
+
129
+
130
+
131
+ ---
132
+
133
+ <a id="api-surface"></a>
134
+ ## API Surface
135
+
136
+ HTTP API is experimental and currently unimplemented.
137
+
138
+ Docs: [API Overview](https://bijux.github.io/agentic-flows/api/overview/) · [Schema](https://bijux.github.io/agentic-flows/api/schema/)
139
+
140
+
141
+
142
+ ---
143
+
144
+ <a id="built-in-commands"></a>
145
+ ## Built-in Commands
146
+
147
+ | Command | Description | Example |
148
+ | ------- | ----------- | ------- |
149
+ | `run` | Execute a flow | `agentic-flows run examples/boring/flow.json --policy examples/boring/policy.json --db-path /tmp/flow.duckdb` |
150
+ | `replay` | Replay a stored run | `agentic-flows replay examples/boring/flow.json --policy examples/boring/policy.json --run-id <run_id> --tenant-id <tenant> --db-path /tmp/flow.duckdb` |
151
+ | `inspect run` | Inspect a stored run | `agentic-flows inspect run <run_id> --tenant-id <tenant> --db-path /tmp/flow.duckdb` |
152
+
153
+ Full surface: [CLI Surface](https://bijux.github.io/agentic-flows/interface/cli_surface/)
154
+
155
+
156
+
157
+ ---
158
+
159
+ <a id="tests--quality"></a>
160
+ ## Tests & Quality
161
+
162
+ * **Coverage floors:** enforced per module in CI.
163
+ * **Benchmarks:** regression gate on critical path.
164
+ * **Docs:** linted and built in CI.
165
+
166
+ Quick commands:
167
+
168
+ ```bash
169
+ make test
170
+ make lint
171
+ make quality
172
+ ```
173
+
174
+ Artifacts: Generated in CI; see GitHub Actions for logs and reports.
175
+
176
+
177
+
178
+ ---
179
+
180
+ <a id="project-tree"></a>
181
+ ## Project Tree
182
+
183
+ ```
184
+ api/ # OpenAPI schemas
185
+ config/ # Lint/type/security configs
186
+ docs/ # MkDocs site
187
+ makefiles/ # Task modules (docs, test, lint, etc.)
188
+ scripts/ # Helper scripts
189
+ src/agentic_flows/ # Runtime + CLI implementation
190
+ tests/ # unit / regression / e2e
191
+ ```
192
+
193
+
194
+
195
+ ---
196
+
197
+ <a id="docs--resources"></a>
198
+ ## Docs & Resources
199
+
200
+ * **Overview**: [Why agentic-flows exists](https://bijux.github.io/agentic-flows/overview/why-agentic-flows/) · [Mental model](https://bijux.github.io/agentic-flows/overview/mental-model/) · [Minimal run](https://bijux.github.io/agentic-flows/overview/minimal-run/) · [Relationship to agentic-proteins](https://bijux.github.io/agentic-flows/overview/relationship-to-agentic-proteins/) · [Audience](https://bijux.github.io/agentic-flows/overview/audience/)
201
+ * **Concepts**: [Concepts index](https://bijux.github.io/agentic-flows/concepts/) · [Determinism](https://bijux.github.io/agentic-flows/concepts/determinism/) · [Failures](https://bijux.github.io/agentic-flows/concepts/failures/)
202
+ * **Execution**: [Failure paths](https://bijux.github.io/agentic-flows/execution/failure-paths/)
203
+ * **Site**: https://bijux.github.io/agentic-flows/
204
+ * **Changelog**: https://github.com/bijux/agentic-flows/blob/main/CHANGELOG.md
205
+ * **Repository**: https://github.com/bijux/agentic-flows
206
+ * **Issues**: https://github.com/bijux/agentic-flows/issues
207
+ * **Security** (private reports): https://github.com/bijux/agentic-flows/security/advisories/new
208
+ * **Artifacts**: https://bijux.github.io/agentic-flows/artifacts/
209
+
210
+
211
+
212
+ ---
213
+
214
+ <a id="contributing"></a>
215
+ ## Contributing
216
+
217
+ Welcome. See **[CONTRIBUTING.md](https://github.com/bijux/agentic-flows/blob/main/CONTRIBUTING.md)** for setup and test guidance.
218
+
219
+
220
+
221
+ ---
222
+
223
+ <a id="license"></a>
224
+ ## License
225
+
226
+ Apache-2.0 — see **[LICENSE](https://github.com/bijux/agentic-flows/blob/main/LICENSE)**.
227
+ © 2025 Bijan Mousavi.
228
+
229
+
230
+ ---
231
+
232
+ This system is designed for auditability and replay, not exploratory or interactive use.
233
+
234
+ ## Non-goals
235
+
236
+ - Automatic agent self-improvement or learning
237
+
238
+ ## Publishing status
239
+
240
+ Current maturity: experimental research framework. v0.x carries no backward compatibility guarantees; schema compatibility is the only API guarantee. CLI output formatting and observability summaries may change without notice. Internal execution and verification APIs are not stable. Production usage should gate on strict determinism and explicit contracts.
@@ -0,0 +1,30 @@
1
+ version = 1
2
+
3
+ # Config/docs/assets: public domain
4
+ [[annotations]]
5
+ path = [
6
+ "**/*.png", "**/*.svg", "**/*.ico", "**/*.gif", "**/*.jpg", "**/*.jpeg",
7
+ "**/*.html", "**/*.toml", "**/*.ini", "**/*.cfg", "**/*.conf", "**/*.txt",
8
+ "**/*.env", "**/*.env.*", "**/*.yaml", "**/*.yml", "**/*.json", "**/*.pdb",
9
+ "**/*.cff", "**/*.dic", ".coverage*", ".gitattributes", ".gitignore",
10
+ "models/**", "**/.editorconfig", "artifacts/**", ".idea/**", "**/*.pyc",
11
+ "**/*.fasta", "**/*.gitkeep", "site/**", ".venv/**", "**/*.jsonl", "**/*.dvc",
12
+ "**/*.gitignore", "**/*.hash",
13
+ ]
14
+ precedence = "override"
15
+ SPDX-License-Identifier = "CC0-1.0"
16
+ SPDX-FileCopyrightText = "© 2025 Bijan Mousavi"
17
+
18
+ # Code: Apache-2.0
19
+ [[annotations]]
20
+ path = ["src/**", "scripts/**", "**/*.py", "**/*.pyi", "**/*.sh", "**/*.mk", "Makefile", "Dockerfile", "Dockerfile.*"]
21
+ precedence = "closest"
22
+ SPDX-License-Identifier = "Apache-2.0"
23
+ SPDX-FileCopyrightText = "© 2025 Bijan Mousavi"
24
+
25
+ # Markdown docs: Apache-2.0
26
+ [[annotations]]
27
+ path = ["**/*.md"]
28
+ precedence = "closest"
29
+ SPDX-License-Identifier = "Apache-2.0"
30
+ SPDX-FileCopyrightText = "© 2025 Bijan Mousavi"
@@ -0,0 +1,3 @@
1
+ This directory contains small, versioned test datasets used to validate
2
+ non-determinism behavior and replay policies. These files are tracked with DVC
3
+ to keep dataset hashes stable and auditable across test runs.
@@ -0,0 +1,147 @@
1
+ [build-system]
2
+ requires = [
3
+ "hatchling>=1.27.0,<1.28",
4
+ "hatch-fancy-pypi-readme>=24.2,<26.0",
5
+ "hatch-vcs>=0.4.0,<1.0",
6
+ ]
7
+ build-backend = "hatchling.build"
8
+
9
+ [project]
10
+ name = "agentic-flows"
11
+ dynamic = ["version"]
12
+ description = "Governed execution and replay with auditable non-determinism"
13
+ readme = { file = "README.md", content-type = "text/markdown" }
14
+ license = { text = "Apache-2.0" }
15
+ requires-python = ">=3.11"
16
+ authors = [{ name = "Bijan Mousavi", email = "mousavi.bijan@gmail.com" }]
17
+ keywords = [
18
+ "execution",
19
+ "reproducibility",
20
+ "replay",
21
+ "audit",
22
+ "non-determinism",
23
+ "governance",
24
+ "agents",
25
+ ]
26
+ classifiers = [
27
+ "Development Status :: 3 - Alpha",
28
+ "Environment :: Console",
29
+ "Intended Audience :: Science/Research",
30
+ "Intended Audience :: Developers",
31
+ "License :: OSI Approved :: Apache Software License",
32
+ "Operating System :: OS Independent",
33
+ "Operating System :: MacOS",
34
+ "Operating System :: POSIX",
35
+ "Programming Language :: Python :: 3",
36
+ "Programming Language :: Python :: 3 :: Only",
37
+ "Programming Language :: Python :: 3.11",
38
+ "Programming Language :: Python :: 3.12",
39
+ "Programming Language :: Python :: 3.13",
40
+ "Programming Language :: Python :: 3.14",
41
+ "Programming Language :: Python :: Implementation :: CPython",
42
+ "Topic :: Software Development :: Libraries",
43
+ "Topic :: Utilities",
44
+ ]
45
+ dependencies = [
46
+ "bijux-cli>=0.1.0,<0.2.0",
47
+ "bijux-agent>=0.1.0,<0.2.0",
48
+ "bijux-rag>=0.1.0,<0.2.0",
49
+ "bijux-rar>=0.1.0,<0.2.0",
50
+ "bijux-vex>=0.1.0,<0.2.0",
51
+ "duckdb>=1.1.3,<2.0.0",
52
+ "pydantic>=2.0.2,<3.0.0",
53
+ ]
54
+
55
+ [project.urls]
56
+ Documentation = "https://bijux.github.io/agentic-flows/"
57
+ Repository = "https://github.com/bijux/agentic-flows"
58
+ Issues = "https://github.com/bijux/agentic-flows/issues"
59
+ Changelog = "https://github.com/bijux/agentic-flows/blob/main/CHANGELOG.md"
60
+
61
+ [project.optional-dependencies]
62
+ api = [
63
+ "fastapi>=0.128,<1.0",
64
+ "uvicorn>=0.32,<1.0",
65
+ ]
66
+ dev = [
67
+ "types-PyYAML>=6.0.12,<7.0",
68
+ "PyYAML>=6.0,<7.0",
69
+ "types-orjson>=3.6.0,<4.0",
70
+ "types-colorama>=0.0.14,<1.0",
71
+ "types-psutil>=6.0.0,<7.0",
72
+ "typing-extensions>=4.5.0,<5.0",
73
+ "types-pexpect>=4.9.0,<5.0",
74
+ "pytest>=8.4.1,<9.0",
75
+ "pytest-cov>=6.2.1,<7.0",
76
+ "pytest-asyncio>=1.0.0,<2.0",
77
+ "pytest-timeout>=2.4.0,<3.0",
78
+ "pytest-rerunfailures>=13.0,<14.0",
79
+ "pytest-benchmark>=4.0.0,<5.0",
80
+ "pytest-mock>=3.14.1,<4.0",
81
+ "hypothesis>=6.103.0,<7.0",
82
+ "hypothesis-jsonschema>=0.23.0,<1.0",
83
+ "pexpect>=4.8.0,<5.0",
84
+ "pyfakefs>=5.9.0",
85
+ "httpx>=0.27.0,<1.0",
86
+ "fastapi>=0.128,<1.0",
87
+ "ruff>=0.6.8,<1.0",
88
+ "mypy>=1.11.2,<2.0",
89
+ "pytype>=2024.10.11",
90
+ "codespell>=2.3.0,<3.0",
91
+ "pyright>=1.1.320,<2.0",
92
+ "pydocstyle>=6.2.1,<7.0",
93
+ "radon>=6.0.0",
94
+ "vulture>=2.7,<3.0",
95
+ "deptry>=0.10.0,<1.0",
96
+ "reuse>=4.0.0,<6.0.0",
97
+ "build>=1.0.3,<2.0",
98
+ "bandit>=1.7.10,<2.0",
99
+ "pip-audit>=2.7.3,<3.0",
100
+ "interrogate>=1.7.0,<2.0",
101
+ "mkdocs>=1.6.1,<2.0",
102
+ "mkdocs-material>=9.5.39,<10.0",
103
+ ]
104
+
105
+ [project.scripts]
106
+ agentic-flows = "agentic_flows.cli.main:main"
107
+
108
+ [tool.hatch.build]
109
+ include = [
110
+ "README.md",
111
+ "CHANGELOG.md",
112
+ "LICENSE",
113
+ "REUSE.toml",
114
+ "CITATION.cff",
115
+ "src/agentic_flows/py.typed",
116
+ ]
117
+
118
+ [tool.hatch.version]
119
+ source = "vcs"
120
+
121
+ [tool.hatch.build.targets.wheel]
122
+ packages = ["src/agentic_flows"]
123
+ zip-safe = false
124
+
125
+ [tool.hatch.build.targets.wheel.package-data]
126
+ "agentic_flows" = ["py.typed", "http_api/v1/schema.hash"]
127
+
128
+ [tool.hatch.build.targets.wheel.shared-data]
129
+ "api/v1/schema.hash" = "agentic_flows.schema.hash"
130
+
131
+ [tool.hatch.metadata.hooks.fancy-pypi-readme]
132
+ content-type = "text/markdown"
133
+ fragments = [
134
+ { path = "README.md" },
135
+ { path = "CHANGELOG.md" },
136
+ ]
137
+
138
+ [tool.deptry]
139
+ ignore = ["DEP002", "DEP003"]
140
+
141
+ [tool.interrogate]
142
+ fail-under = 100
143
+ color = true
144
+
145
+ [tool.bandit]
146
+ skips = ["B404", "B311"]
147
+ exclude_dirs = [".venv", "tests", "artifacts", ".pytest_cache", ".ruff_cache"]
File without changes
@@ -0,0 +1,5 @@
1
+ API handlers are intentionally not unit-tested in this repository.
2
+ The OpenAPI schema and schemathesis runs are the contract gate.
3
+ Schema drift is the primary failure mode we protect against here.
4
+ Coverage percentages are misleading because API behavior is stubbed.
5
+ We prefer contract validation over handler-level tests.