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.
Files changed (86) hide show
  1. ioa_core-2.6.0/LICENSE +13 -0
  2. ioa_core-2.6.0/NOTICE +7 -0
  3. ioa_core-2.6.0/PKG-INFO +263 -0
  4. ioa_core-2.6.0/README.md +171 -0
  5. ioa_core-2.6.0/pyproject.toml +213 -0
  6. ioa_core-2.6.0/setup.cfg +4 -0
  7. ioa_core-2.6.0/src/ioa/analytics/web_dashboard.py +694 -0
  8. ioa_core-2.6.0/src/ioa/governance/__init__.py +10 -0
  9. ioa_core-2.6.0/src/ioa/governance/jurisdiction_policy.py +241 -0
  10. ioa_core-2.6.0/src/ioa_core/__init__.py +46 -0
  11. ioa_core-2.6.0/src/ioa_core/audit/canonical.py +150 -0
  12. ioa_core-2.6.0/src/ioa_core/cartridges/ethics/README.md +175 -0
  13. ioa_core-2.6.0/src/ioa_core/cartridges/ethics/__init__.py +21 -0
  14. ioa_core-2.6.0/src/ioa_core/cartridges/ethics/policy_ethics.py +200 -0
  15. ioa_core-2.6.0/src/ioa_core/cartridges/ethics/schemas/ethics_event.schema.json +80 -0
  16. ioa_core-2.6.0/src/ioa_core/ci_gates.py +646 -0
  17. ioa_core-2.6.0/src/ioa_core/cli.py +2764 -0
  18. ioa_core-2.6.0/src/ioa_core/connectors/__init__.py +15 -0
  19. ioa_core-2.6.0/src/ioa_core/connectors/base.py +295 -0
  20. ioa_core-2.6.0/src/ioa_core/demo_roundtable.py +591 -0
  21. ioa_core-2.6.0/src/ioa_core/errors.py +61 -0
  22. ioa_core-2.6.0/src/ioa_core/evidence/__init__.py +21 -0
  23. ioa_core-2.6.0/src/ioa_core/evidence/evidence_bundle.py +227 -0
  24. ioa_core-2.6.0/src/ioa_core/evidence/exporters.py +261 -0
  25. ioa_core-2.6.0/src/ioa_core/governance/__init__.py +44 -0
  26. ioa_core-2.6.0/src/ioa_core/governance/audit_chain.py +530 -0
  27. ioa_core-2.6.0/src/ioa_core/governance/cross_domain.py +95 -0
  28. ioa_core-2.6.0/src/ioa_core/governance/healthcare_taxonomy.py +93 -0
  29. ioa_core-2.6.0/src/ioa_core/governance/manifest.py +278 -0
  30. ioa_core-2.6.0/src/ioa_core/governance/policy_engine.py +1093 -0
  31. ioa_core-2.6.0/src/ioa_core/governance/signing_keys/README.md +86 -0
  32. ioa_core-2.6.0/src/ioa_core/governance/system_laws.json +98 -0
  33. ioa_core-2.6.0/src/ioa_core/governance/system_laws.py +182 -0
  34. ioa_core-2.6.0/src/ioa_core/governance/system_laws.schema.json +161 -0
  35. ioa_core-2.6.0/src/ioa_core/llm_manager.py +62 -0
  36. ioa_core-2.6.0/src/ioa_core/llm_providers/__init__.py +11 -0
  37. ioa_core-2.6.0/src/ioa_core/llm_providers/ollama_smoketest.py +132 -0
  38. ioa_core-2.6.0/src/ioa_core/llm_providers/ollama_utils.py +742 -0
  39. ioa_core-2.6.0/src/ioa_core/memory_fabric/__init__.py +35 -0
  40. ioa_core-2.6.0/src/ioa_core/memory_fabric/crypto.py +128 -0
  41. ioa_core-2.6.0/src/ioa_core/memory_fabric/fabric.py +905 -0
  42. ioa_core-2.6.0/src/ioa_core/memory_fabric/metrics.py +206 -0
  43. ioa_core-2.6.0/src/ioa_core/memory_fabric/schema.py +171 -0
  44. ioa_core-2.6.0/src/ioa_core/memory_fabric/stores/__init__.py +22 -0
  45. ioa_core-2.6.0/src/ioa_core/memory_fabric/stores/base.py +112 -0
  46. ioa_core-2.6.0/src/ioa_core/memory_fabric/stores/local_jsonl.py +168 -0
  47. ioa_core-2.6.0/src/ioa_core/memory_fabric/stores/s3.py +343 -0
  48. ioa_core-2.6.0/src/ioa_core/memory_fabric/stores/sqlite.py +332 -0
  49. ioa_core-2.6.0/src/ioa_core/memory_fabric/tiering_4d.py +172 -0
  50. ioa_core-2.6.0/src/ioa_core/onboard.py +1063 -0
  51. ioa_core-2.6.0/src/ioa_core/pr_bot_utils.py +236 -0
  52. ioa_core-2.6.0/src/ioa_core/security_utils.py +396 -0
  53. ioa_core-2.6.0/src/ioa_core/vector_search.py +214 -0
  54. ioa_core-2.6.0/src/ioa_core/vendor_neutral_roundtable.py +689 -0
  55. ioa_core-2.6.0/src/ioa_core.egg-info/PKG-INFO +263 -0
  56. ioa_core-2.6.0/src/ioa_core.egg-info/SOURCES.txt +84 -0
  57. ioa_core-2.6.0/src/ioa_core.egg-info/dependency_links.txt +1 -0
  58. ioa_core-2.6.0/src/ioa_core.egg-info/entry_points.txt +2 -0
  59. ioa_core-2.6.0/src/ioa_core.egg-info/requires.txt +64 -0
  60. ioa_core-2.6.0/src/ioa_core.egg-info/top_level.txt +2 -0
  61. ioa_core-2.6.0/tests/test_agent_onboarding.py +669 -0
  62. ioa_core-2.6.0/tests/test_agent_router_domain_schema.py +25 -0
  63. ioa_core-2.6.0/tests/test_agent_router_final.py +1079 -0
  64. ioa_core-2.6.0/tests/test_assurance_calc.py +32 -0
  65. ioa_core-2.6.0/tests/test_audit_chain.py +30 -0
  66. ioa_core-2.6.0/tests/test_audit_logger_batch.py +122 -0
  67. ioa_core-2.6.0/tests/test_bootloader.py +78 -0
  68. ioa_core-2.6.0/tests/test_ci_gates.py +546 -0
  69. ioa_core-2.6.0/tests/test_ci_gates_integration.py +293 -0
  70. ioa_core-2.6.0/tests/test_cold_storage.py +120 -0
  71. ioa_core-2.6.0/tests/test_connectors.py +892 -0
  72. ioa_core-2.6.0/tests/test_digestor_demo.py +1325 -0
  73. ioa_core-2.6.0/tests/test_hitl_override_audit.py +225 -0
  74. ioa_core-2.6.0/tests/test_kpi_monitor_final.py +709 -0
  75. ioa_core-2.6.0/tests/test_llm_adapter.py +331 -0
  76. ioa_core-2.6.0/tests/test_logging_schema.py +593 -0
  77. ioa_core-2.6.0/tests/test_model_provenance.py +48 -0
  78. ioa_core-2.6.0/tests/test_mood_engine.py +29 -0
  79. ioa_core-2.6.0/tests/test_pattern_weaver.py +682 -0
  80. ioa_core-2.6.0/tests/test_reinforcement_policy.py +451 -0
  81. ioa_core-2.6.0/tests/test_roundtable_executor.py +884 -0
  82. ioa_core-2.6.0/tests/test_schema_harness.py +741 -0
  83. ioa_core-2.6.0/tests/test_signature_engine.py +23 -0
  84. ioa_core-2.6.0/tests/test_smoketest_cost_cap.py +372 -0
  85. ioa_core-2.6.0/tests/test_tiering_4d.py +394 -0
  86. 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.
@@ -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](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
96
+ [![Python](https://img.shields.io/badge/python-3.10–3.12-brightgreen.svg)]()
97
+ [![Build](https://img.shields.io/github/actions/workflow/status/OrchIntel/ioa-core/build.yml?branch=main)](https://github.com/OrchIntel/ioa-core/actions/workflows/build.yml)
98
+ [![Docs](https://img.shields.io/badge/docs-latest-brightgreen.svg)](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.
@@ -0,0 +1,171 @@
1
+ # IOA Core v2.6.0
2
+
3
+ [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
4
+ [![Python](https://img.shields.io/badge/python-3.10–3.12-brightgreen.svg)]()
5
+ [![Build](https://img.shields.io/github/actions/workflow/status/OrchIntel/ioa-core/build.yml?branch=main)](https://github.com/OrchIntel/ioa-core/actions/workflows/build.yml)
6
+ [![Docs](https://img.shields.io/badge/docs-latest-brightgreen.svg)](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"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+