ioa-core 2.6.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.
- ioa_core-2.6.0/LICENSE +13 -0
- ioa_core-2.6.0/NOTICE +7 -0
- ioa_core-2.6.0/PKG-INFO +263 -0
- ioa_core-2.6.0/README.md +171 -0
- ioa_core-2.6.0/pyproject.toml +213 -0
- ioa_core-2.6.0/setup.cfg +4 -0
- ioa_core-2.6.0/src/ioa/analytics/web_dashboard.py +694 -0
- ioa_core-2.6.0/src/ioa/governance/__init__.py +10 -0
- ioa_core-2.6.0/src/ioa/governance/jurisdiction_policy.py +241 -0
- ioa_core-2.6.0/src/ioa_core/__init__.py +46 -0
- ioa_core-2.6.0/src/ioa_core/audit/canonical.py +150 -0
- ioa_core-2.6.0/src/ioa_core/cartridges/ethics/README.md +175 -0
- ioa_core-2.6.0/src/ioa_core/cartridges/ethics/__init__.py +21 -0
- ioa_core-2.6.0/src/ioa_core/cartridges/ethics/policy_ethics.py +200 -0
- ioa_core-2.6.0/src/ioa_core/cartridges/ethics/schemas/ethics_event.schema.json +80 -0
- ioa_core-2.6.0/src/ioa_core/ci_gates.py +646 -0
- ioa_core-2.6.0/src/ioa_core/cli.py +2764 -0
- ioa_core-2.6.0/src/ioa_core/connectors/__init__.py +15 -0
- ioa_core-2.6.0/src/ioa_core/connectors/base.py +295 -0
- ioa_core-2.6.0/src/ioa_core/demo_roundtable.py +591 -0
- ioa_core-2.6.0/src/ioa_core/errors.py +61 -0
- ioa_core-2.6.0/src/ioa_core/evidence/__init__.py +21 -0
- ioa_core-2.6.0/src/ioa_core/evidence/evidence_bundle.py +227 -0
- ioa_core-2.6.0/src/ioa_core/evidence/exporters.py +261 -0
- ioa_core-2.6.0/src/ioa_core/governance/__init__.py +44 -0
- ioa_core-2.6.0/src/ioa_core/governance/audit_chain.py +530 -0
- ioa_core-2.6.0/src/ioa_core/governance/cross_domain.py +95 -0
- ioa_core-2.6.0/src/ioa_core/governance/healthcare_taxonomy.py +93 -0
- ioa_core-2.6.0/src/ioa_core/governance/manifest.py +278 -0
- ioa_core-2.6.0/src/ioa_core/governance/policy_engine.py +1093 -0
- ioa_core-2.6.0/src/ioa_core/governance/signing_keys/README.md +86 -0
- ioa_core-2.6.0/src/ioa_core/governance/system_laws.json +98 -0
- ioa_core-2.6.0/src/ioa_core/governance/system_laws.py +182 -0
- ioa_core-2.6.0/src/ioa_core/governance/system_laws.schema.json +161 -0
- ioa_core-2.6.0/src/ioa_core/llm_manager.py +62 -0
- ioa_core-2.6.0/src/ioa_core/llm_providers/__init__.py +11 -0
- ioa_core-2.6.0/src/ioa_core/llm_providers/ollama_smoketest.py +132 -0
- ioa_core-2.6.0/src/ioa_core/llm_providers/ollama_utils.py +742 -0
- ioa_core-2.6.0/src/ioa_core/memory_fabric/__init__.py +35 -0
- ioa_core-2.6.0/src/ioa_core/memory_fabric/crypto.py +128 -0
- ioa_core-2.6.0/src/ioa_core/memory_fabric/fabric.py +905 -0
- ioa_core-2.6.0/src/ioa_core/memory_fabric/metrics.py +206 -0
- ioa_core-2.6.0/src/ioa_core/memory_fabric/schema.py +171 -0
- ioa_core-2.6.0/src/ioa_core/memory_fabric/stores/__init__.py +22 -0
- ioa_core-2.6.0/src/ioa_core/memory_fabric/stores/base.py +112 -0
- ioa_core-2.6.0/src/ioa_core/memory_fabric/stores/local_jsonl.py +168 -0
- ioa_core-2.6.0/src/ioa_core/memory_fabric/stores/s3.py +343 -0
- ioa_core-2.6.0/src/ioa_core/memory_fabric/stores/sqlite.py +332 -0
- ioa_core-2.6.0/src/ioa_core/memory_fabric/tiering_4d.py +172 -0
- ioa_core-2.6.0/src/ioa_core/onboard.py +1063 -0
- ioa_core-2.6.0/src/ioa_core/pr_bot_utils.py +236 -0
- ioa_core-2.6.0/src/ioa_core/security_utils.py +396 -0
- ioa_core-2.6.0/src/ioa_core/vector_search.py +214 -0
- ioa_core-2.6.0/src/ioa_core/vendor_neutral_roundtable.py +689 -0
- ioa_core-2.6.0/src/ioa_core.egg-info/PKG-INFO +263 -0
- ioa_core-2.6.0/src/ioa_core.egg-info/SOURCES.txt +84 -0
- ioa_core-2.6.0/src/ioa_core.egg-info/dependency_links.txt +1 -0
- ioa_core-2.6.0/src/ioa_core.egg-info/entry_points.txt +2 -0
- ioa_core-2.6.0/src/ioa_core.egg-info/requires.txt +64 -0
- ioa_core-2.6.0/src/ioa_core.egg-info/top_level.txt +2 -0
- ioa_core-2.6.0/tests/test_agent_onboarding.py +669 -0
- ioa_core-2.6.0/tests/test_agent_router_domain_schema.py +25 -0
- ioa_core-2.6.0/tests/test_agent_router_final.py +1079 -0
- ioa_core-2.6.0/tests/test_assurance_calc.py +32 -0
- ioa_core-2.6.0/tests/test_audit_chain.py +30 -0
- ioa_core-2.6.0/tests/test_audit_logger_batch.py +122 -0
- ioa_core-2.6.0/tests/test_bootloader.py +78 -0
- ioa_core-2.6.0/tests/test_ci_gates.py +546 -0
- ioa_core-2.6.0/tests/test_ci_gates_integration.py +293 -0
- ioa_core-2.6.0/tests/test_cold_storage.py +120 -0
- ioa_core-2.6.0/tests/test_connectors.py +892 -0
- ioa_core-2.6.0/tests/test_digestor_demo.py +1325 -0
- ioa_core-2.6.0/tests/test_hitl_override_audit.py +225 -0
- ioa_core-2.6.0/tests/test_kpi_monitor_final.py +709 -0
- ioa_core-2.6.0/tests/test_llm_adapter.py +331 -0
- ioa_core-2.6.0/tests/test_logging_schema.py +593 -0
- ioa_core-2.6.0/tests/test_model_provenance.py +48 -0
- ioa_core-2.6.0/tests/test_mood_engine.py +29 -0
- ioa_core-2.6.0/tests/test_pattern_weaver.py +682 -0
- ioa_core-2.6.0/tests/test_reinforcement_policy.py +451 -0
- ioa_core-2.6.0/tests/test_roundtable_executor.py +884 -0
- ioa_core-2.6.0/tests/test_schema_harness.py +741 -0
- ioa_core-2.6.0/tests/test_signature_engine.py +23 -0
- ioa_core-2.6.0/tests/test_smoketest_cost_cap.py +372 -0
- ioa_core-2.6.0/tests/test_tiering_4d.py +394 -0
- ioa_core-2.6.0/tests/test_vendor_neutral_roundtable.py +499 -0
ioa_core-2.6.0/LICENSE
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Copyright (c) 2025 IOA Project
|
|
2
|
+
|
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
you may not use this file except in compliance with the License.
|
|
5
|
+
You may obtain a copy of the License at
|
|
6
|
+
|
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
|
+
limitations under the License.
|
ioa_core-2.6.0/NOTICE
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
IOA Core v2.5.0
|
|
2
|
+
Copyright 2025 OrchIntel Systems Ltd. and Contributors
|
|
3
|
+
|
|
4
|
+
This product includes software developed by the IOA Project Contributors.
|
|
5
|
+
This product includes software developed by the Apache Software Foundation.
|
|
6
|
+
|
|
7
|
+
For license information, see LICENSE file.
|
ioa_core-2.6.0/PKG-INFO
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ioa-core
|
|
3
|
+
Version: 2.6.0
|
|
4
|
+
Summary: Intelligent Orchestration Architecture Core - Open-source platform for orchestrating modular AI agents with memory-driven collaboration and governance mechanisms
|
|
5
|
+
Author-email: "OrchIntel Systems Ltd." <maintainers@orchintel.com>, IOA Project Contributors <contributors@orchintel.com>
|
|
6
|
+
Maintainer-email: IOA Core Team <core-maintainers@orchintel.com>
|
|
7
|
+
License-Expression: Apache-2.0
|
|
8
|
+
Project-URL: Homepage, https://github.com/orchintel/ioa-core
|
|
9
|
+
Project-URL: Documentation, https://orchintel.com/docs
|
|
10
|
+
Project-URL: Repository, https://github.com/orchintel/ioa-core.git
|
|
11
|
+
Project-URL: Bug Tracker, https://github.com/orchintel/ioa-core/issues
|
|
12
|
+
Project-URL: Source Code, https://github.com/orchintel/ioa-core
|
|
13
|
+
Project-URL: Security Policy, https://github.com/orchintel/ioa-core/security/policy
|
|
14
|
+
Keywords: ai,orchestration,agents,governance,memory,llm,workflow
|
|
15
|
+
Classifier: Development Status :: 4 - Beta
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Intended Audience :: System Administrators
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
26
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
27
|
+
Classifier: Topic :: Security
|
|
28
|
+
Classifier: Topic :: System :: Logging
|
|
29
|
+
Classifier: Topic :: System :: Monitoring
|
|
30
|
+
Requires-Python: >=3.9
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
License-File: LICENSE
|
|
33
|
+
License-File: NOTICE
|
|
34
|
+
Requires-Dist: click>=8.0.0
|
|
35
|
+
Requires-Dist: pydantic>=2.0.0
|
|
36
|
+
Requires-Dist: pyyaml>=6.0
|
|
37
|
+
Requires-Dist: requests>=2.28.0
|
|
38
|
+
Requires-Dist: aiohttp>=3.8.0
|
|
39
|
+
Requires-Dist: aiomqtt>=1.0.0
|
|
40
|
+
Requires-Dist: cryptography>=3.4.0
|
|
41
|
+
Requires-Dist: python-dotenv>=0.19.0
|
|
42
|
+
Requires-Dist: structlog>=23.0.0
|
|
43
|
+
Requires-Dist: rich>=13.0.0
|
|
44
|
+
Requires-Dist: tqdm>=4.64.0
|
|
45
|
+
Provides-Extra: dev
|
|
46
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
47
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
48
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
49
|
+
Requires-Dist: pytest-mock>=3.10.0; extra == "dev"
|
|
50
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
51
|
+
Requires-Dist: isort>=5.12.0; extra == "dev"
|
|
52
|
+
Requires-Dist: flake8>=6.0.0; extra == "dev"
|
|
53
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
54
|
+
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
55
|
+
Requires-Dist: bandit>=1.7.0; extra == "dev"
|
|
56
|
+
Requires-Dist: safety>=2.0.0; extra == "dev"
|
|
57
|
+
Provides-Extra: docs
|
|
58
|
+
Requires-Dist: mkdocs>=1.4.0; extra == "docs"
|
|
59
|
+
Requires-Dist: mkdocs-material>=9.0.0; extra == "docs"
|
|
60
|
+
Requires-Dist: mkdocstrings>=0.20.0; extra == "docs"
|
|
61
|
+
Requires-Dist: mkdocstrings-python>=1.0.0; extra == "docs"
|
|
62
|
+
Provides-Extra: performance
|
|
63
|
+
Requires-Dist: psutil>=5.9.0; extra == "performance"
|
|
64
|
+
Requires-Dist: memory-profiler>=0.60.0; extra == "performance"
|
|
65
|
+
Requires-Dist: line-profiler>=4.0.0; extra == "performance"
|
|
66
|
+
Provides-Extra: bench
|
|
67
|
+
Requires-Dist: beir>=2.0.0; extra == "bench"
|
|
68
|
+
Requires-Dist: mteb>=1.0.0; extra == "bench"
|
|
69
|
+
Requires-Dist: datasets>=2.0.0; extra == "bench"
|
|
70
|
+
Requires-Dist: transformers>=4.0.0; extra == "bench"
|
|
71
|
+
Requires-Dist: torch>=2.0.0; extra == "bench"
|
|
72
|
+
Requires-Dist: scikit-learn>=1.0.0; extra == "bench"
|
|
73
|
+
Requires-Dist: numpy>=1.20.0; extra == "bench"
|
|
74
|
+
Requires-Dist: pandas>=1.3.0; extra == "bench"
|
|
75
|
+
Requires-Dist: tqdm>=4.64.0; extra == "bench"
|
|
76
|
+
Provides-Extra: core
|
|
77
|
+
Provides-Extra: enterprise
|
|
78
|
+
Requires-Dist: cryptography>=3.4.0; extra == "enterprise"
|
|
79
|
+
Requires-Dist: pydantic>=2.0.0; extra == "enterprise"
|
|
80
|
+
Requires-Dist: fastapi>=0.100.0; extra == "enterprise"
|
|
81
|
+
Requires-Dist: uvicorn>=0.20.0; extra == "enterprise"
|
|
82
|
+
Requires-Dist: sqlalchemy>=2.0.0; extra == "enterprise"
|
|
83
|
+
Requires-Dist: redis>=4.0.0; extra == "enterprise"
|
|
84
|
+
Provides-Extra: saas
|
|
85
|
+
Requires-Dist: fastapi>=0.100.0; extra == "saas"
|
|
86
|
+
Requires-Dist: uvicorn>=0.20.0; extra == "saas"
|
|
87
|
+
Requires-Dist: celery>=5.3.0; extra == "saas"
|
|
88
|
+
Requires-Dist: flower>=2.0.0; extra == "saas"
|
|
89
|
+
Requires-Dist: prometheus-client>=0.17.0; extra == "saas"
|
|
90
|
+
Requires-Dist: grafana-api>=1.0.0; extra == "saas"
|
|
91
|
+
Dynamic: license-file
|
|
92
|
+
|
|
93
|
+
# IOA Core v2.6.0
|
|
94
|
+
|
|
95
|
+
[](LICENSE)
|
|
96
|
+
[]()
|
|
97
|
+
[](https://github.com/OrchIntel/ioa-core/actions/workflows/build.yml)
|
|
98
|
+
[](https://ioa.systems/docs)
|
|
99
|
+
|
|
100
|
+
IOA Core is an open-source governance kernel for AI workflows.
|
|
101
|
+
|
|
102
|
+
It focuses on policy enforcement, evidence capture, immutable audit trails,
|
|
103
|
+
memory-backed orchestration, and multi-model review patterns.
|
|
104
|
+
|
|
105
|
+
## Release Status
|
|
106
|
+
|
|
107
|
+
`ioa-core` is currently documented here as a public release candidate, not a
|
|
108
|
+
fully polished stable OSS release.
|
|
109
|
+
|
|
110
|
+
That means:
|
|
111
|
+
|
|
112
|
+
- the core governance primitives are real and usable
|
|
113
|
+
- the examples below are limited to commands verified in this checkout
|
|
114
|
+
- some deeper docs still describe roadmap or partially implemented CLI surfaces
|
|
115
|
+
- broad stable marketing should wait until the checklist in [docs/OSS_LAUNCH_READINESS_CHECKLIST.md](docs/OSS_LAUNCH_READINESS_CHECKLIST.md) is complete
|
|
116
|
+
|
|
117
|
+
## What Is In Scope
|
|
118
|
+
|
|
119
|
+
- hash-chained audit logging
|
|
120
|
+
- evidence bundle generation
|
|
121
|
+
- policy and system-law framing
|
|
122
|
+
- memory fabric primitives
|
|
123
|
+
- offline and live provider smoke testing
|
|
124
|
+
- local examples for governed workflow and quorum-style review
|
|
125
|
+
|
|
126
|
+
For the current public feature boundary, see [FEATURE_MATRIX.md](FEATURE_MATRIX.md).
|
|
127
|
+
|
|
128
|
+
## Quick Start
|
|
129
|
+
|
|
130
|
+
The commands below were verified in this repository checkout on 2026-03-07.
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
git clone https://github.com/orchintel/ioa-core.git
|
|
134
|
+
cd ioa-core
|
|
135
|
+
pip install -e ".[dev]"
|
|
136
|
+
|
|
137
|
+
# Check the CLI entrypoint
|
|
138
|
+
python -m ioa_core.cli --help
|
|
139
|
+
python -m ioa_core.cli --version
|
|
140
|
+
|
|
141
|
+
# Scaffold a minimal project
|
|
142
|
+
python examples/00_bootstrap/boot_project.py /tmp/ioa-core-demo-project
|
|
143
|
+
|
|
144
|
+
# Run a governed workflow example
|
|
145
|
+
python examples/10_workflows/run_workflow.py
|
|
146
|
+
|
|
147
|
+
# Run an offline multi-model roundtable example
|
|
148
|
+
python examples/20_roundtable/roundtable_quorum.py "Analyze this code for security issues (ok)"
|
|
149
|
+
|
|
150
|
+
# Check environment health
|
|
151
|
+
python examples/30_doctor/doctor_check.py
|
|
152
|
+
|
|
153
|
+
# Smoke test the provider layer in offline mode
|
|
154
|
+
IOA_PROVIDER=mock python examples/40_providers/provider_smoketest.py
|
|
155
|
+
|
|
156
|
+
# Run the Ollama turbo-mode demo
|
|
157
|
+
python examples/50_ollama/turbo_mode_demo.py turbo_cloud
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Examples run offline by default unless you explicitly enable live mode and set
|
|
161
|
+
provider credentials.
|
|
162
|
+
|
|
163
|
+
## Example Outputs
|
|
164
|
+
|
|
165
|
+
Governed workflow example:
|
|
166
|
+
|
|
167
|
+
```json
|
|
168
|
+
{
|
|
169
|
+
"task": "Analyze code for security issues",
|
|
170
|
+
"policy": "demo-governed",
|
|
171
|
+
"result": "OK",
|
|
172
|
+
"evidence_id": "ev-0001",
|
|
173
|
+
"audit_chain_verified": true,
|
|
174
|
+
"system_laws_applied": ["Law 1", "Law 5", "Law 7"]
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Roundtable example:
|
|
179
|
+
|
|
180
|
+
```json
|
|
181
|
+
{
|
|
182
|
+
"quorum_approved": true,
|
|
183
|
+
"approve_count": 3,
|
|
184
|
+
"total_votes": 3,
|
|
185
|
+
"evidence_id": "ev-rt-0001"
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Core Components
|
|
190
|
+
|
|
191
|
+
### Audit and Evidence
|
|
192
|
+
|
|
193
|
+
- immutable audit chain with hash continuity
|
|
194
|
+
- redaction support for sensitive values
|
|
195
|
+
- append-only JSONL logging with rotation and replay protection
|
|
196
|
+
- evidence bundle object for validations, metadata, and signatures
|
|
197
|
+
|
|
198
|
+
### Governance
|
|
199
|
+
|
|
200
|
+
- system-law framing for governed execution
|
|
201
|
+
- policy hooks and validation paths
|
|
202
|
+
- support for audit-linked governance events
|
|
203
|
+
|
|
204
|
+
### Provider and Review Layer
|
|
205
|
+
|
|
206
|
+
- multi-provider abstractions
|
|
207
|
+
- offline mock mode for repeatable examples
|
|
208
|
+
- provider smoke testing
|
|
209
|
+
- quorum-style review examples for multi-model workflows
|
|
210
|
+
|
|
211
|
+
### Memory
|
|
212
|
+
|
|
213
|
+
- memory fabric package with hot and persistent stores
|
|
214
|
+
- SQLite, S3, and local JSONL backends
|
|
215
|
+
- encryption support for memory storage
|
|
216
|
+
|
|
217
|
+
## Recommended Docs
|
|
218
|
+
|
|
219
|
+
- [docs/examples/QUICKSTART.md](docs/examples/QUICKSTART.md)
|
|
220
|
+
- [docs/examples/WORKFLOWS.md](docs/examples/WORKFLOWS.md)
|
|
221
|
+
- [docs/examples/ROUNDTABLE.md](docs/examples/ROUNDTABLE.md)
|
|
222
|
+
- [docs/examples/PROVIDERS.md](docs/examples/PROVIDERS.md)
|
|
223
|
+
- [docs/examples/OLLAMA.md](docs/examples/OLLAMA.md)
|
|
224
|
+
- [docs/OSS_LAUNCH_READINESS_CHECKLIST.md](docs/OSS_LAUNCH_READINESS_CHECKLIST.md)
|
|
225
|
+
|
|
226
|
+
## Live Provider Usage
|
|
227
|
+
|
|
228
|
+
Live provider tests are optional and require real API keys.
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
export OPENAI_API_KEY=your-key
|
|
232
|
+
IOA_LIVE=1 IOA_PROVIDER=openai python examples/40_providers/provider_smoketest.py
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
If live keys are not configured, stay in offline mode and treat results as
|
|
236
|
+
simulation/demo outputs rather than provider validation.
|
|
237
|
+
|
|
238
|
+
## Current Gaps
|
|
239
|
+
|
|
240
|
+
Before positioning IOA Core as a polished stable OSS product, the project still
|
|
241
|
+
needs:
|
|
242
|
+
|
|
243
|
+
- aligned release metadata and version reporting
|
|
244
|
+
- removal of roadmap-style commands from deeper onboarding docs
|
|
245
|
+
- clean test collection and supported-version CI proof
|
|
246
|
+
- consistent model provenance rollout across evidence and audit-producing call sites
|
|
247
|
+
- clearer governance observability surfaces
|
|
248
|
+
|
|
249
|
+
## Why IOA Core Exists
|
|
250
|
+
|
|
251
|
+
Most AI orchestration stacks optimize for routing and output generation.
|
|
252
|
+
|
|
253
|
+
IOA Core is built around a different requirement: important AI workflows should
|
|
254
|
+
also emit policy context, evidence, and auditable traces that can be inspected
|
|
255
|
+
later.
|
|
256
|
+
|
|
257
|
+
That core substrate is intended to support higher-level OrchIntel products
|
|
258
|
+
without forcing each downstream product to reinvent governance separately.
|
|
259
|
+
|
|
260
|
+
## Contributing
|
|
261
|
+
|
|
262
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development workflow and
|
|
263
|
+
[SECURITY.md](SECURITY.md) for vulnerability reporting.
|
ioa_core-2.6.0/README.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# IOA Core v2.6.0
|
|
2
|
+
|
|
3
|
+
[](LICENSE)
|
|
4
|
+
[]()
|
|
5
|
+
[](https://github.com/OrchIntel/ioa-core/actions/workflows/build.yml)
|
|
6
|
+
[](https://ioa.systems/docs)
|
|
7
|
+
|
|
8
|
+
IOA Core is an open-source governance kernel for AI workflows.
|
|
9
|
+
|
|
10
|
+
It focuses on policy enforcement, evidence capture, immutable audit trails,
|
|
11
|
+
memory-backed orchestration, and multi-model review patterns.
|
|
12
|
+
|
|
13
|
+
## Release Status
|
|
14
|
+
|
|
15
|
+
`ioa-core` is currently documented here as a public release candidate, not a
|
|
16
|
+
fully polished stable OSS release.
|
|
17
|
+
|
|
18
|
+
That means:
|
|
19
|
+
|
|
20
|
+
- the core governance primitives are real and usable
|
|
21
|
+
- the examples below are limited to commands verified in this checkout
|
|
22
|
+
- some deeper docs still describe roadmap or partially implemented CLI surfaces
|
|
23
|
+
- broad stable marketing should wait until the checklist in [docs/OSS_LAUNCH_READINESS_CHECKLIST.md](docs/OSS_LAUNCH_READINESS_CHECKLIST.md) is complete
|
|
24
|
+
|
|
25
|
+
## What Is In Scope
|
|
26
|
+
|
|
27
|
+
- hash-chained audit logging
|
|
28
|
+
- evidence bundle generation
|
|
29
|
+
- policy and system-law framing
|
|
30
|
+
- memory fabric primitives
|
|
31
|
+
- offline and live provider smoke testing
|
|
32
|
+
- local examples for governed workflow and quorum-style review
|
|
33
|
+
|
|
34
|
+
For the current public feature boundary, see [FEATURE_MATRIX.md](FEATURE_MATRIX.md).
|
|
35
|
+
|
|
36
|
+
## Quick Start
|
|
37
|
+
|
|
38
|
+
The commands below were verified in this repository checkout on 2026-03-07.
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
git clone https://github.com/orchintel/ioa-core.git
|
|
42
|
+
cd ioa-core
|
|
43
|
+
pip install -e ".[dev]"
|
|
44
|
+
|
|
45
|
+
# Check the CLI entrypoint
|
|
46
|
+
python -m ioa_core.cli --help
|
|
47
|
+
python -m ioa_core.cli --version
|
|
48
|
+
|
|
49
|
+
# Scaffold a minimal project
|
|
50
|
+
python examples/00_bootstrap/boot_project.py /tmp/ioa-core-demo-project
|
|
51
|
+
|
|
52
|
+
# Run a governed workflow example
|
|
53
|
+
python examples/10_workflows/run_workflow.py
|
|
54
|
+
|
|
55
|
+
# Run an offline multi-model roundtable example
|
|
56
|
+
python examples/20_roundtable/roundtable_quorum.py "Analyze this code for security issues (ok)"
|
|
57
|
+
|
|
58
|
+
# Check environment health
|
|
59
|
+
python examples/30_doctor/doctor_check.py
|
|
60
|
+
|
|
61
|
+
# Smoke test the provider layer in offline mode
|
|
62
|
+
IOA_PROVIDER=mock python examples/40_providers/provider_smoketest.py
|
|
63
|
+
|
|
64
|
+
# Run the Ollama turbo-mode demo
|
|
65
|
+
python examples/50_ollama/turbo_mode_demo.py turbo_cloud
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Examples run offline by default unless you explicitly enable live mode and set
|
|
69
|
+
provider credentials.
|
|
70
|
+
|
|
71
|
+
## Example Outputs
|
|
72
|
+
|
|
73
|
+
Governed workflow example:
|
|
74
|
+
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"task": "Analyze code for security issues",
|
|
78
|
+
"policy": "demo-governed",
|
|
79
|
+
"result": "OK",
|
|
80
|
+
"evidence_id": "ev-0001",
|
|
81
|
+
"audit_chain_verified": true,
|
|
82
|
+
"system_laws_applied": ["Law 1", "Law 5", "Law 7"]
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Roundtable example:
|
|
87
|
+
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"quorum_approved": true,
|
|
91
|
+
"approve_count": 3,
|
|
92
|
+
"total_votes": 3,
|
|
93
|
+
"evidence_id": "ev-rt-0001"
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Core Components
|
|
98
|
+
|
|
99
|
+
### Audit and Evidence
|
|
100
|
+
|
|
101
|
+
- immutable audit chain with hash continuity
|
|
102
|
+
- redaction support for sensitive values
|
|
103
|
+
- append-only JSONL logging with rotation and replay protection
|
|
104
|
+
- evidence bundle object for validations, metadata, and signatures
|
|
105
|
+
|
|
106
|
+
### Governance
|
|
107
|
+
|
|
108
|
+
- system-law framing for governed execution
|
|
109
|
+
- policy hooks and validation paths
|
|
110
|
+
- support for audit-linked governance events
|
|
111
|
+
|
|
112
|
+
### Provider and Review Layer
|
|
113
|
+
|
|
114
|
+
- multi-provider abstractions
|
|
115
|
+
- offline mock mode for repeatable examples
|
|
116
|
+
- provider smoke testing
|
|
117
|
+
- quorum-style review examples for multi-model workflows
|
|
118
|
+
|
|
119
|
+
### Memory
|
|
120
|
+
|
|
121
|
+
- memory fabric package with hot and persistent stores
|
|
122
|
+
- SQLite, S3, and local JSONL backends
|
|
123
|
+
- encryption support for memory storage
|
|
124
|
+
|
|
125
|
+
## Recommended Docs
|
|
126
|
+
|
|
127
|
+
- [docs/examples/QUICKSTART.md](docs/examples/QUICKSTART.md)
|
|
128
|
+
- [docs/examples/WORKFLOWS.md](docs/examples/WORKFLOWS.md)
|
|
129
|
+
- [docs/examples/ROUNDTABLE.md](docs/examples/ROUNDTABLE.md)
|
|
130
|
+
- [docs/examples/PROVIDERS.md](docs/examples/PROVIDERS.md)
|
|
131
|
+
- [docs/examples/OLLAMA.md](docs/examples/OLLAMA.md)
|
|
132
|
+
- [docs/OSS_LAUNCH_READINESS_CHECKLIST.md](docs/OSS_LAUNCH_READINESS_CHECKLIST.md)
|
|
133
|
+
|
|
134
|
+
## Live Provider Usage
|
|
135
|
+
|
|
136
|
+
Live provider tests are optional and require real API keys.
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
export OPENAI_API_KEY=your-key
|
|
140
|
+
IOA_LIVE=1 IOA_PROVIDER=openai python examples/40_providers/provider_smoketest.py
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
If live keys are not configured, stay in offline mode and treat results as
|
|
144
|
+
simulation/demo outputs rather than provider validation.
|
|
145
|
+
|
|
146
|
+
## Current Gaps
|
|
147
|
+
|
|
148
|
+
Before positioning IOA Core as a polished stable OSS product, the project still
|
|
149
|
+
needs:
|
|
150
|
+
|
|
151
|
+
- aligned release metadata and version reporting
|
|
152
|
+
- removal of roadmap-style commands from deeper onboarding docs
|
|
153
|
+
- clean test collection and supported-version CI proof
|
|
154
|
+
- consistent model provenance rollout across evidence and audit-producing call sites
|
|
155
|
+
- clearer governance observability surfaces
|
|
156
|
+
|
|
157
|
+
## Why IOA Core Exists
|
|
158
|
+
|
|
159
|
+
Most AI orchestration stacks optimize for routing and output generation.
|
|
160
|
+
|
|
161
|
+
IOA Core is built around a different requirement: important AI workflows should
|
|
162
|
+
also emit policy context, evidence, and auditable traces that can be inspected
|
|
163
|
+
later.
|
|
164
|
+
|
|
165
|
+
That core substrate is intended to support higher-level OrchIntel products
|
|
166
|
+
without forcing each downstream product to reinvent governance separately.
|
|
167
|
+
|
|
168
|
+
## Contributing
|
|
169
|
+
|
|
170
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development workflow and
|
|
171
|
+
[SECURITY.md](SECURITY.md) for vulnerability reporting.
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "ioa-core"
|
|
7
|
+
version = "2.6.0"
|
|
8
|
+
description = "Intelligent Orchestration Architecture Core - Open-source platform for orchestrating modular AI agents with memory-driven collaboration and governance mechanisms"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "Apache-2.0"
|
|
11
|
+
authors = [
|
|
12
|
+
{name = "OrchIntel Systems Ltd.", email = "maintainers@orchintel.com"},
|
|
13
|
+
{name = "IOA Project Contributors", email = "contributors@orchintel.com"}
|
|
14
|
+
]
|
|
15
|
+
maintainers = [
|
|
16
|
+
{name = "IOA Core Team", email = "core-maintainers@orchintel.com"}
|
|
17
|
+
]
|
|
18
|
+
keywords = ["ai", "orchestration", "agents", "governance", "memory", "llm", "workflow"]
|
|
19
|
+
classifiers = [
|
|
20
|
+
"Development Status :: 4 - Beta",
|
|
21
|
+
"Intended Audience :: Developers",
|
|
22
|
+
"Intended Audience :: System Administrators",
|
|
23
|
+
"Operating System :: OS Independent",
|
|
24
|
+
"Programming Language :: Python :: 3",
|
|
25
|
+
"Programming Language :: Python :: 3.9",
|
|
26
|
+
"Programming Language :: Python :: 3.10",
|
|
27
|
+
"Programming Language :: Python :: 3.11",
|
|
28
|
+
"Programming Language :: Python :: 3.12",
|
|
29
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
30
|
+
"Topic :: System :: Distributed Computing",
|
|
31
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
32
|
+
"Topic :: Security",
|
|
33
|
+
"Topic :: System :: Logging",
|
|
34
|
+
"Topic :: System :: Monitoring",
|
|
35
|
+
]
|
|
36
|
+
requires-python = ">=3.9"
|
|
37
|
+
dependencies = [
|
|
38
|
+
"click>=8.0.0",
|
|
39
|
+
"pydantic>=2.0.0",
|
|
40
|
+
"pyyaml>=6.0",
|
|
41
|
+
"requests>=2.28.0",
|
|
42
|
+
"aiohttp>=3.8.0",
|
|
43
|
+
"aiomqtt>=1.0.0",
|
|
44
|
+
"cryptography>=3.4.0",
|
|
45
|
+
"python-dotenv>=0.19.0",
|
|
46
|
+
"structlog>=23.0.0",
|
|
47
|
+
"rich>=13.0.0",
|
|
48
|
+
"tqdm>=4.64.0",
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
[project.optional-dependencies]
|
|
52
|
+
dev = [
|
|
53
|
+
"pytest>=7.0.0",
|
|
54
|
+
"pytest-asyncio>=0.21.0",
|
|
55
|
+
"pytest-cov>=4.0.0",
|
|
56
|
+
"pytest-mock>=3.10.0",
|
|
57
|
+
"black>=23.0.0",
|
|
58
|
+
"isort>=5.12.0",
|
|
59
|
+
"flake8>=6.0.0",
|
|
60
|
+
"mypy>=1.0.0",
|
|
61
|
+
"pre-commit>=3.0.0",
|
|
62
|
+
"bandit>=1.7.0",
|
|
63
|
+
"safety>=2.0.0",
|
|
64
|
+
]
|
|
65
|
+
docs = [
|
|
66
|
+
"mkdocs>=1.4.0",
|
|
67
|
+
"mkdocs-material>=9.0.0",
|
|
68
|
+
"mkdocstrings>=0.20.0",
|
|
69
|
+
"mkdocstrings-python>=1.0.0",
|
|
70
|
+
]
|
|
71
|
+
performance = [
|
|
72
|
+
"psutil>=5.9.0",
|
|
73
|
+
"memory-profiler>=0.60.0",
|
|
74
|
+
"line-profiler>=4.0.0",
|
|
75
|
+
]
|
|
76
|
+
bench = [
|
|
77
|
+
# BEIR/MTEB benchmarks for evaluation (OSS-safe - no bundled datasets)
|
|
78
|
+
"beir>=2.0.0",
|
|
79
|
+
"mteb>=1.0.0",
|
|
80
|
+
"datasets>=2.0.0",
|
|
81
|
+
"transformers>=4.0.0",
|
|
82
|
+
"torch>=2.0.0",
|
|
83
|
+
"scikit-learn>=1.0.0",
|
|
84
|
+
"numpy>=1.20.0",
|
|
85
|
+
"pandas>=1.3.0",
|
|
86
|
+
"tqdm>=4.64.0",
|
|
87
|
+
]
|
|
88
|
+
core = [] # Core package has no additional dependencies
|
|
89
|
+
enterprise = [
|
|
90
|
+
"cryptography>=3.4.0",
|
|
91
|
+
"pydantic>=2.0.0",
|
|
92
|
+
"fastapi>=0.100.0",
|
|
93
|
+
"uvicorn>=0.20.0",
|
|
94
|
+
"sqlalchemy>=2.0.0",
|
|
95
|
+
"redis>=4.0.0",
|
|
96
|
+
]
|
|
97
|
+
saas = [
|
|
98
|
+
"fastapi>=0.100.0",
|
|
99
|
+
"uvicorn>=0.20.0",
|
|
100
|
+
"celery>=5.3.0",
|
|
101
|
+
"flower>=2.0.0",
|
|
102
|
+
"prometheus-client>=0.17.0",
|
|
103
|
+
"grafana-api>=1.0.0",
|
|
104
|
+
]
|
|
105
|
+
|
|
106
|
+
[project.scripts]
|
|
107
|
+
ioa = "ioa_core.cli:main"
|
|
108
|
+
|
|
109
|
+
[project.urls]
|
|
110
|
+
Homepage = "https://github.com/orchintel/ioa-core"
|
|
111
|
+
Documentation = "https://orchintel.com/docs"
|
|
112
|
+
Repository = "https://github.com/orchintel/ioa-core.git"
|
|
113
|
+
"Bug Tracker" = "https://github.com/orchintel/ioa-core/issues"
|
|
114
|
+
"Source Code" = "https://github.com/orchintel/ioa-core"
|
|
115
|
+
"Security Policy" = "https://github.com/orchintel/ioa-core/security/policy"
|
|
116
|
+
|
|
117
|
+
[project.entry-points."console_scripts"]
|
|
118
|
+
ioa = "ioa_core.cli:main"
|
|
119
|
+
|
|
120
|
+
[tool.setuptools.packages.find]
|
|
121
|
+
where = ["src"]
|
|
122
|
+
include = ["*"]
|
|
123
|
+
|
|
124
|
+
[tool.setuptools.package-data]
|
|
125
|
+
"*" = ["*.json", "*.yaml", "*.yml", "*.txt", "*.md"]
|
|
126
|
+
|
|
127
|
+
[tool.black]
|
|
128
|
+
line-length = 88
|
|
129
|
+
target-version = ['py39', 'py310', 'py311', 'py312']
|
|
130
|
+
include = '\.pyi?$'
|
|
131
|
+
extend-exclude = '''
|
|
132
|
+
/(
|
|
133
|
+
# directories
|
|
134
|
+
\.eggs
|
|
135
|
+
| \.git
|
|
136
|
+
| \.hg
|
|
137
|
+
| \.mypy_cache
|
|
138
|
+
| \.tox
|
|
139
|
+
| \.venv
|
|
140
|
+
| _build
|
|
141
|
+
| buck-out
|
|
142
|
+
| build
|
|
143
|
+
| dist
|
|
144
|
+
)/
|
|
145
|
+
'''
|
|
146
|
+
|
|
147
|
+
[tool.isort]
|
|
148
|
+
profile = "black"
|
|
149
|
+
multi_line_output = 3
|
|
150
|
+
line_length = 88
|
|
151
|
+
known_first_party = ["src"]
|
|
152
|
+
known_third_party = ["pytest", "click", "pydantic"]
|
|
153
|
+
|
|
154
|
+
[tool.mypy]
|
|
155
|
+
python_version = "3.10"
|
|
156
|
+
warn_return_any = true
|
|
157
|
+
warn_unused_configs = true
|
|
158
|
+
disallow_untyped_defs = true
|
|
159
|
+
disallow_incomplete_defs = true
|
|
160
|
+
check_untyped_defs = true
|
|
161
|
+
disallow_untyped_decorators = true
|
|
162
|
+
no_implicit_optional = true
|
|
163
|
+
warn_redundant_casts = true
|
|
164
|
+
warn_unused_ignores = true
|
|
165
|
+
warn_no_return = true
|
|
166
|
+
warn_unreachable = true
|
|
167
|
+
strict_equality = true
|
|
168
|
+
|
|
169
|
+
[tool.pytest.ini_options]
|
|
170
|
+
minversion = "8.0.0"
|
|
171
|
+
addopts = "-ra -q --strict-markers --strict-config"
|
|
172
|
+
testpaths = ["tests"]
|
|
173
|
+
python_files = ["test_*.py", "*_test.py"]
|
|
174
|
+
python_classes = ["Test*"]
|
|
175
|
+
python_functions = ["test_*"]
|
|
176
|
+
markers = [
|
|
177
|
+
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
178
|
+
"integration: marks tests as integration tests",
|
|
179
|
+
"smoke: marks tests as smoke tests",
|
|
180
|
+
"performance: marks tests as performance tests",
|
|
181
|
+
"unit: marks tests as unit tests",
|
|
182
|
+
]
|
|
183
|
+
|
|
184
|
+
[tool.coverage.run]
|
|
185
|
+
source = ["src"]
|
|
186
|
+
omit = [
|
|
187
|
+
"*/tests/*",
|
|
188
|
+
"*/test_*",
|
|
189
|
+
"*/__pycache__/*",
|
|
190
|
+
"*/venv/*",
|
|
191
|
+
"*/.venv/*",
|
|
192
|
+
]
|
|
193
|
+
|
|
194
|
+
[tool.coverage.report]
|
|
195
|
+
exclude_lines = [
|
|
196
|
+
"pragma: no cover",
|
|
197
|
+
"def __repr__",
|
|
198
|
+
"if self.debug:",
|
|
199
|
+
"if settings.DEBUG",
|
|
200
|
+
"raise AssertionError",
|
|
201
|
+
"raise NotImplementedError",
|
|
202
|
+
"if 0:",
|
|
203
|
+
"if __name__ == .__main__.:",
|
|
204
|
+
"class .*\\bProtocol\\):",
|
|
205
|
+
"@(abc\\.)?abstractmethod",
|
|
206
|
+
]
|
|
207
|
+
|
|
208
|
+
[tool.bandit]
|
|
209
|
+
exclude_dirs = ["tests", "docs", "examples"]
|
|
210
|
+
skips = ["B101", "B601"]
|
|
211
|
+
|
|
212
|
+
[tool.safety]
|
|
213
|
+
output = "json"
|
ioa_core-2.6.0/setup.cfg
ADDED