aetherorchestrate 2.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,641 @@
1
+ Metadata-Version: 2.4
2
+ Name: aetherorchestrate
3
+ Version: 2.0.0
4
+ Summary: Reference implementation of the AetherOrchestrate architecture (v2.0.0 in progress)
5
+ Author-email: Samir Baladi <gitdeeper@gmail.com>
6
+ License-Expression: MIT
7
+ Requires-Python: >=3.9
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ License-File: AUTHORS.md
11
+ Requires-Dist: cryptography>=41.0
12
+ Provides-Extra: dev
13
+ Requires-Dist: pytest>=7.0; extra == "dev"
14
+ Requires-Dist: pytest-cov>=4.0; extra == "dev"
15
+ Dynamic: license-file
16
+
17
+ <div align="center">
18
+
19
+ # 🎯 AetherOrchestrate
20
+
21
+ ### A Falsification-First Investigation of Decentralized Orchestration in the Aether Family
22
+
23
+ *Goal Decomposition, Task Assignment, Scheduling, Dependency Tracking, and Routing in Multi-Agent Software Ecosystems*
24
+
25
+ <br>
26
+
27
+ [![DOI Zenodo](https://zenodo.org/badge/DOI/10.5281/zenodo.24095399.svg)](https://doi.org/10.5281/zenodo.24095399)
28
+ [![DOI Figshare](https://img.shields.io/badge/DOI%20Figshare-10.6084%2Fm9.figshare.34963687-blue)](https://doi.org/10.6084/m9.figshare.34963687)
29
+ [![License: MIT + CC-BY-4.0](https://img.shields.io/badge/License-MIT%20%2B%20CC--BY--4.0-crimson.svg)](LICENSE)
30
+ [![ORCID](https://img.shields.io/badge/ORCID-0009--0003--8903--0029-a6ce39?logo=orcid&logoColor=white)](https://orcid.org/0009-0003-8903-0029)
31
+ [![Release](https://img.shields.io/badge/Release-v2.0.0-green)](https://github.com/gitdeeper15/aetherorchestrate/releases/tag/v2.0.0)
32
+ [![Python](https://img.shields.io/badge/Python-3.9%2B-blue.svg?logo=python&logoColor=white)](https://python.org)
33
+
34
+ [![PyPI](https://img.shields.io/badge/PyPI-2.0.0-gold?logo=pypi&logoColor=white)](https://pypi.org/project/aetherorchestrate/)
35
+ [![Tests](https://img.shields.io/badge/Tests-39%20passed-brightgreen)](tests/)
36
+ [![Experiments](https://img.shields.io/badge/Experiments-3%2F3-brightgreen)](experiments/)
37
+
38
+ [![Zenodo](https://img.shields.io/badge/Zenodo-Published-blue)](https://doi.org/10.5281/zenodo.24095399)
39
+ [![Figshare](https://img.shields.io/badge/Figshare-Published-blue)](https://doi.org/10.6084/m9.figshare.34963687)
40
+ [![OSF](https://img.shields.io/badge/OSF-Published-blue)](https://doi.org/10.17605/OSF.IO/2F7TZ)
41
+ [![Record ID](https://img.shields.io/badge/Record%20ID-AETHERORCHESTRATE--02-informational)](https://doi.org/10.5281/zenodo.24095399)
42
+ [![Website](https://img.shields.io/badge/Website-aetherorchestrate.netlify.app-00C7B7?logo=netlify&logoColor=white)](https://aetherorchestrate.netlify.app)
43
+ [![Aether Family](https://img.shields.io/badge/Aether%20Family-7%20dimensions-purple)](https://aetherorchestrate.netlify.app)
44
+
45
+ <br>
46
+
47
+ **[📄 Paper (Zenodo)](https://doi.org/10.5281/zenodo.24095399)** ·
48
+ **[📑 Preprint (Figshare)](https://doi.org/10.6084/m9.figshare.34963687)** ·
49
+ **[📋 OSF Registration](https://doi.org/10.17605/OSF.IO/2F7TZ)** ·
50
+ **[🌐 Website](https://aetherorchestrate.netlify.app)** ·
51
+ **[📦 Releases](https://github.com/gitdeeper15/aetherorchestrate/releases)** ·
52
+ **[📖 Citation](#-citation)**
53
+
54
+ </div>
55
+
56
+ ---
57
+
58
+ > [!WARNING]
59
+ > **Status: v2.0.0 — Reference Implementation.**
60
+ > A reference implementation is built (`src/aetherorchestrate/`, 7 modules, 39 tests) and 3 experiments are executed.
61
+ > **Experiments use simulated data; no real-world deployment is evaluated.**
62
+ > The v0.1.0 hypothesis (F1–F5) is **not falsified** by the implementation or the experiments, but it is also **not confirmed**.
63
+ > F5 (observable benefit) remains **untested**.
64
+ > See [Threats to Validity](#️-threats-to-validity) and the [Research Status Statement](#-research-status-statement).
65
+
66
+ > *"AetherOrchestrate is a candidate, not a result."*
67
+
68
+ ---
69
+
70
+ ## 📑 Table of Contents
71
+
72
+ - [Overview](#-overview)
73
+ - [v2.0.0 at a Glance](#-v200-at-a-glance)
74
+ - [Seven-Phase Methodology](#-seven-phase-methodology)
75
+ - [The Central Question](#-the-central-question)
76
+ - [The Seven Functional Dimensions](#️-the-seven-functional-dimensions)
77
+ - [The Falsification-First Methodology](#-the-falsification-first-methodology)
78
+ - [Failure Conditions F1–F5](#-failure-conditions-f1f5)
79
+ - [Requirements R1–R6](#-requirements-r1r6)
80
+ - [AetherOrchestrate: Architecture](#️-aetherorchestrate-architecture)
81
+ - [Propositions P1–P2](#-propositions-p1p2)
82
+ - [Interfaces with the Aether Family](#-interfaces-with-the-aether-family)
83
+ - [Evaluation Design and v2.0.0 Results](#-evaluation-design-and-v200-results)
84
+ - [Threats to Validity](#️-threats-to-validity)
85
+ - [Open Questions Q1–Q20](#-open-questions-q1q20)
86
+ - [Research Status Statement](#-research-status-statement)
87
+ - [Platforms & Mirrors](#-platforms--mirrors)
88
+ - [Project Structure](#️-project-structure)
89
+ - [Version History](#-version-history)
90
+ - [Citation](#-citation)
91
+ - [Author](#-author)
92
+ - [License](#️-license)
93
+
94
+ ---
95
+
96
+ ## 🔭 Overview
97
+
98
+ **AetherOrchestrate** is the **seventh functional dimension (provisional)** of the Aether family — a candidate architecture for **goal decomposition, task assignment, scheduling, dependency tracking, and routing** of work in multi-agent software ecosystems.
99
+
100
+ The Aether family currently comprises **six foundational dimensions**, each published as a preprint on Zenodo (**not peer-reviewed**):
101
+
102
+ | Dimension | Focus | Question |
103
+ |---|---|---|
104
+ | **AetherGit** | Storage and versioning | How are agent-generated changes stored, signed, and versioned? |
105
+ | **AetherFlow** | Integration and post-merge verification | How are changes integrated into a shared trunk and verified? |
106
+ | **AetherProof** | Specification and evidence | How are claims specified and how is evidence for them recorded? |
107
+ | **AetherMesh** | Distribution and consistency | How is state synchronized without a central coordinator? |
108
+ | **AetherGovern** | Authority and policy | Who is authorized to do what, under which policy, and how is authority revoked? |
109
+ | **AetherRuntime** | Monitoring and assurance | What are agents doing while they run, and how are anomalies contained? |
110
+
111
+ AetherOrchestrate asks whether a **seventh dimension** is needed:
112
+
113
+ > **What should agents do next, and how is work decomposed, assigned, scheduled, ordered, and routed without a central coordinator?**
114
+
115
+ The investigation follows a **falsification-first methodology**: before describing the candidate, it states **five failure conditions (F1–F5)** whose satisfaction would show that the candidate does not deserve to exist as a separate dimension.
116
+
117
+ | Release | What it adds |
118
+ |---|---|
119
+ | **v0.1.0** | The hypothesis and the falsification-first methodology (paper only) |
120
+ | **v2.0.0** | Reference implementation (`src/aetherorchestrate/`): 7 modules, 39 tests, 3 experiments |
121
+
122
+ ---
123
+
124
+ ## 📊 v2.0.0 at a Glance
125
+
126
+ | Dimension | Status |
127
+ |---|---|
128
+ | Manuscript (v0.1.0) | ✅ Complete (36 pages) |
129
+ | Definitions / Propositions / Layers | 4 / 2 (proof sketches) / 5 |
130
+ | Implementation | ✅ Built (`src/aetherorchestrate/`, 7 modules) |
131
+ | Tests | ✅ 39 passed |
132
+ | Experiments | ✅ 3/3 completed (simulated data) |
133
+ | PyPI package | ✅ Published |
134
+ | Real-world deployment | ❌ Not evaluated |
135
+ | Causal claims | None (argument only) |
136
+
137
+ <p align="center">
138
+ <img src="docs/figures/Fig1_Seven_Dimensions.png"
139
+ alt="AetherOrchestrate — The Seven Functional Dimensions of the Aether Family"
140
+ width="100%">
141
+ </p>
142
+
143
+ <p align="center">
144
+ <em>Figure 1 — The Seven Functional Dimensions of the Aether Family. The seventh dimension (AetherOrchestrate) is a hypothesis under investigation, not a confirmed dimension.</em>
145
+ </p>
146
+
147
+ ### Contributions
148
+
149
+ | # | Contribution | Kind |
150
+ |:-:|---|---|
151
+ | 1 | A falsification-first procedure with five failure conditions and a decision rule, stated before the candidate is described | Methodology |
152
+ | 2 | A formal framework: four definitions (goal decomposition, task-assignment predicate, dependency graph, coordination window) | Analysis |
153
+ | 3 | Two propositions with proof sketches: determinism of local decomposition (P1); irreducible coordination window (P2) | Analysis |
154
+ | 4 | A five-layer architectural hypothesis: decomposition, assignment, scheduling, dependency tracking, routing | Specification (hypothesis) |
155
+ | 5 | **A reference implementation** (v2.0.0) with 7 modules, 39 tests, and 3 experiments | Implementation |
156
+ | 6 | An evaluation design: nine metrics, five baselines, six scenarios, a protocol | Design (partly executed in v2.0.0) |
157
+ | 7 | Twenty open questions (Q1–Q20) | Catalogue |
158
+
159
+ ---
160
+
161
+ ## 🪜 Seven-Phase Methodology
162
+
163
+ v2.0.0 was built through a seven-phase methodology. Each phase is documented in a separate file.
164
+
165
+ | Phase | Deliverable | File | Status |
166
+ |:-:|---|---|:-:|
167
+ | 1 | Architectural Specification | `SPECIFICATION.md` (431 lines) | ✅ |
168
+ | 2 | Invariant Definition | `INVARIANTS.md` (285 lines) | ✅ |
169
+ | 3 | Test Design | `TESTS.md` (312 lines) | ✅ |
170
+ | 4 | Simulator Implementation | `src/aetherorchestrate/` (7 modules, ~561 lines) | ✅ |
171
+ | 5 | Test Execution | `tests/` (39 tests, 39 pass) | ✅ |
172
+ | 6 | Experiments | `experiments/` (3 experiments) | ✅ |
173
+ | 7 | Release | `RELEASE.md` (101 lines) | ✅ |
174
+
175
+ **Why seven phases?** To avoid building ~1,100 lines of Python based on untested assumptions, then discovering that the architecture itself needs to change. Each phase constrains the next.
176
+
177
+ **What is not assumed:** CRDT, gossip, BFT, or AetherMesh.
178
+
179
+ ---
180
+
181
+ ## ❓ The Central Question
182
+
183
+ > **Is there a set of requirements for goal decomposition, task assignment, scheduling, dependency tracking, and routing in multi-agent software systems that (i) is not already specified by the six existing dimensions, (ii) does not reduce to verification or to governance, (iii) can be specified without reintroducing a central authority, and (iv) yields an observable benefit over existing mechanisms?**
184
+
185
+ The four clauses correspond to failure conditions **F1**, **F2 and F3**, **F4**, and **F5**. A negative answer to any clause is sufficient to reject the candidate as a separate dimension.
186
+
187
+ ---
188
+
189
+ ## 🗺️ The Seven Functional Dimensions
190
+
191
+ | # | Dimension | Focus | DOI |
192
+ |:-:|---|---|---|
193
+ | 1 | **AetherGit** | Storage and versioning | [10.5281/zenodo.23966896](https://doi.org/10.5281/zenodo.23966896) |
194
+ | 2 | **AetherFlow** | Integration and operational verification | [10.5281/zenodo.23979129](https://doi.org/10.5281/zenodo.23979129) |
195
+ | 3 | **AetherProof** | Specification and evidence | [10.5281/zenodo.24013124](https://doi.org/10.5281/zenodo.24013124) |
196
+ | 4 | **AetherMesh** | Distribution and consistency | [10.5281/zenodo.24038038](https://doi.org/10.5281/zenodo.24038038) |
197
+ | 5 | **AetherGovern** | Authority and policy | [10.5281/zenodo.24054524](https://doi.org/10.5281/zenodo.24054524) |
198
+ | 6 | **AetherRuntime** | Monitoring and runtime assurance | [10.5281/zenodo.24078477](https://doi.org/10.5281/zenodo.24078477) |
199
+ | 7 | **AetherOrchestrate** *(hypothesis)* | Orchestration | [10.5281/zenodo.24095399](https://doi.org/10.5281/zenodo.24095399) |
200
+
201
+ <p align="center">
202
+ <img src="docs/figures/Fig5_Orchestrate_vs_Flow.png"
203
+ alt="AetherOrchestrate — Orchestration versus Integration (AetherFlow)"
204
+ width="100%">
205
+ </p>
206
+
207
+ <p align="center">
208
+ <em>Figure 5 — Orchestration compared with integration and verification (AetherFlow) in the Aether family. Whether the two are distinct is tested by the failure conditions.</em>
209
+ </p>
210
+
211
+ ---
212
+
213
+ ## 🔬 The Falsification-First Methodology
214
+
215
+ A typical architecture paper begins from a conviction that a component is needed and then specifies it. The risk is circular. AetherOrchestrate adopts a falsification-first methodology:
216
+
217
+ 1. **No prior assumption** that the gap exists.
218
+ 2. **No prior assumption** that AetherOrchestrate should be a separate project.
219
+ 3. **Every claim** is tested against failure conditions (F1–F5).
220
+ 4. The **final structure** (single, dual, triple, quadruple, or integration protocol) is determined *after* comparison.
221
+
222
+ ---
223
+
224
+ ## 🧭 Failure Conditions F1–F5
225
+
226
+ | ID | Claim under test | Status |
227
+ |:-:|---|:-:|
228
+ | **F1** | Non-redundancy | 🟡 Not falsified (R2, R4, R6 partly covered) |
229
+ | **F2** | Orthogonality to verification | 🟡 Not falsified (narrowly) |
230
+ | **F3** | Boundary with governance | 🟡 Not falsified (decentralized setting) |
231
+ | **F4** | Decentralizability | 🟡 Not falsified (with residuals) |
232
+ | **F5** | Observable benefit | 🔴 Untested |
233
+
234
+ > [!NOTE]
235
+ > **"Not falsified" is a weaker status than "confirmed". No condition is confirmed.**
236
+
237
+ ---
238
+
239
+ ## 📋 Requirements R1–R6
240
+
241
+ | ID | Requirement |
242
+ |:-:|---|
243
+ | **R1** | Goal decomposition: a goal can be decomposed into a DAG of tasks |
244
+ | **R2** | Task assignment: each task can be assigned to a capable agent |
245
+ | **R3** | Scheduling: tasks can be ordered in time respecting dependencies |
246
+ | **R4** | Dependency tracking: the task DAG can be maintained under concurrent updates |
247
+ | **R5** | Routing: each task can be delivered to its executor without a central router |
248
+ | **R6** | Partition tolerance: decomposition, assignment, scheduling, and routing remain possible when nodes are disconnected |
249
+
250
+ ---
251
+
252
+ ## 🏛️ AetherOrchestrate: Architecture
253
+
254
+ > [!NOTE]
255
+ > All of this is **hypothesis**: a design-level description offered so that the failure conditions can be applied to something concrete. The five layers are implemented in `src/aetherorchestrate/`.
256
+
257
+ ### The Five Layers
258
+
259
+ <p align="center">
260
+ <img src="docs/figures/Fig2_Orchestrate_Layers.png"
261
+ alt="AetherOrchestrate — The Five Layers"
262
+ width="100%">
263
+ </p>
264
+
265
+ <p align="center">
266
+ <em>Figure 2 — The five layers of AetherOrchestrate.</em>
267
+ </p>
268
+
269
+ | Layer | Question | Module | Status |
270
+ |:-:|---|---|:-:|
271
+ | **L1 — Decomposition** | How is a goal broken into tasks? | `decomposition/` | ✅ Implemented |
272
+ | **L2 — Assignment** | Which agent executes each task? | `assignment/` | ✅ Implemented |
273
+ | **L3 — Scheduling** | When does each task run? | `scheduling/` | ✅ Implemented |
274
+ | **L4 — Dependency Tracking** | What are the dependencies between tasks? | `dependencies/` | ✅ Implemented |
275
+ | **L5 — Routing** | How is each task routed to its executor? | `routing/` | ✅ Implemented |
276
+
277
+ <p align="center">
278
+ <img src="docs/figures/Fig3_Task_DAG.png"
279
+ alt="AetherOrchestrate — Task DAG"
280
+ width="100%">
281
+ </p>
282
+
283
+ <p align="center">
284
+ <em>Figure 3 — A goal decomposed into a DAG of tasks.</em>
285
+ </p>
286
+
287
+ <p align="center">
288
+ <img src="docs/figures/Fig4_Assignment_Challenge.png"
289
+ alt="AetherOrchestrate — The Assignment Challenge"
290
+ width="100%">
291
+ </p>
292
+
293
+ <p align="center">
294
+ <em>Figure 4 — The assignment challenge in a decentralized setting.</em>
295
+ </p>
296
+
297
+ <p align="center">
298
+ <img src="docs/figures/Fig6_Centralization_Spectrum.png"
299
+ alt="AetherOrchestrate — The Centralization Spectrum"
300
+ width="100%">
301
+ </p>
302
+
303
+ <p align="center">
304
+ <em>Figure 6 — The centralization spectrum of orchestration designs.</em>
305
+ </p>
306
+
307
+ ### Monotone vs. non-monotone functions
308
+
309
+ The paper separates orchestration functions that can be realized **without agreement** (monotone functions, or deterministic functions of monotone state) from those that **cannot** (for example, enforcing at-most-one executor). This partition is the core of **F4**.
310
+
311
+ ---
312
+
313
+ ## 📜 Propositions P1–P2
314
+
315
+ > [!NOTE]
316
+ > *Status: Stated with proof sketches; **not machine-checked**.*
317
+
318
+ | # | Proposition | Status |
319
+ |:-:|---|:-:|
320
+ | **P1** | Determinism of Local Decomposition | Proof sketch |
321
+ | **P2** | Irreducible Coordination Window | Proof sketch |
322
+
323
+ **P1 (restated).** If admission of a decomposition delta is a deterministic function of the delta and its causal closure, decomposition deltas are inflationary additions to `S`, and each node selects the canonical decomposition by a deterministic rule, then (1) admission satisfies assumption A6 of [AetherMesh](https://doi.org/10.5281/zenodo.24038038) and (2) once all deltas are delivered, every honest node selects the same canonical decomposition.
324
+
325
+ **P2.** In any decentralized coordination protocol, the coordination window at an honest node is bounded below by the time to form the corrective record, propagate it, and verify it. The window is strictly positive.
326
+
327
+ ---
328
+
329
+ ## 🔗 Interfaces with the Aether Family
330
+
331
+ | Dimension | Requires | Provides | Coupling |
332
+ |---|---|---|:-:|
333
+ | **AetherGit** | Append-only store; result hashes | Goal, decomposition, claim, completion records | Low–medium |
334
+ | **AetherFlow** | Verification outcomes; remediation signals | Plans and expected structure of work | Medium–high |
335
+ | **AetherProof** | Specifications; evidence; certificates | Acceptance predicates; plan certificates | Medium |
336
+ | **AetherMesh** | Convergent propagation; A6 | Orchestration deltas; materialization functions | High |
337
+ | **AetherGovern** | Authorization; revocation | Takeover triggers; authority-rank use | High |
338
+ | **AetherRuntime** | Liveness telemetry; anomaly observations | Re-planning signals | Medium–high |
339
+
340
+ ---
341
+
342
+ ## 📊 Evaluation Design and v2.0.0 Results
343
+
344
+ > [!IMPORTANT]
345
+ > In the v0.1.0 paper **no evaluation was performed**. The v2.0.0 experiments are **simulations** covering a subset of the proposed metrics.
346
+
347
+ | ID | Metric | Direction |
348
+ |:-:|---|:-:|
349
+ | **M1** | Decomposition accuracy | Higher is better |
350
+ | **M2** | False-positive rate | Lower is better |
351
+ | **M3** | Decomposition latency | Lower is better |
352
+ | **M4** | Assignment fairness | Higher is better |
353
+ | **M5** | Schedule feasibility | Higher is better |
354
+ | **M6** | Dependency-tracking accuracy | Higher is better |
355
+ | **M7** | Routing overhead | Lower is better |
356
+ | **M8** | Coordination window | Lower is better |
357
+ | **M9** | Convergence preservation | Must be zero |
358
+
359
+ **Baselines B1–B5:** no orchestration, centralized orchestrator, hierarchical orchestrator, consensus-based scheduling, market-based allocation.
360
+
361
+ **Scenarios S1–S6:** network partition, coordinator failure, agent churn, concurrent decompositions, compromised assignee, dependency-update storm.
362
+
363
+ ### v2.0.0 Experimental Results
364
+
365
+ *From `experiments/*/results.json`.*
366
+
367
+ | # | Experiment | Metric | Result |
368
+ |:-:|---|:-:|---|
369
+ | 1 | Decomposition Accuracy | M1 | 10 goals; mean task count = 1.00; all acyclic ✅ |
370
+ | 2 | Assignment Fairness | M4 | Jain index = 0.8803 (expected 0.9174; 4% deviation) |
371
+ | 3 | Coordination Window | M8 | 5 scenarios; all positive; min 0.008 s, max 7.5 s |
372
+
373
+ > [!IMPORTANT]
374
+ > These are **simulation results**. No generalization beyond simulation is claimed. Baselines B1–B5 and scenarios S1–S6 are **not** evaluated in v2.0.0.
375
+
376
+ ---
377
+
378
+ ## ⚠️ Threats to Validity
379
+
380
+ Seven threats are listed (T1–T7), each with a stated planned mitigation:
381
+
382
+ | ID | Threat |
383
+ |:-:|---|
384
+ | T1 | Construct validity |
385
+ | T2 | Internal validity |
386
+ | T3 | External validity |
387
+ | T4 | Baseline strength |
388
+ | T5 | Scenario selection |
389
+ | T6 | Author bias |
390
+ | T7 | Model assumptions |
391
+
392
+ ---
393
+
394
+ ## ❓ Open Questions Q1–Q20
395
+
396
+ | Range | Area |
397
+ |---|---|
398
+ | Q1–Q3 | Decomposition |
399
+ | Q4–Q7 | Assignment |
400
+ | Q8–Q10 | Scheduling |
401
+ | Q11–Q13 | Dependency tracking |
402
+ | Q14–Q16 | Routing |
403
+ | Q17–Q18 | Interfaces |
404
+ | Q19–Q20 | Methodology |
405
+
406
+ Full statements are in Section 10 of the [paper](https://doi.org/10.5281/zenodo.24095399).
407
+
408
+ ---
409
+
410
+ ## 📋 Research Status Statement
411
+
412
+ | Item | Status |
413
+ |---|---|
414
+ | Document type | Research article + reference implementation |
415
+ | Version / record | 2.0.0, November 2026 · AETHERORCHESTRATE-02 · DOI 10.5281/zenodo.24095399 |
416
+ | Implementation | ✅ Built (`src/aetherorchestrate/`, 7 modules) |
417
+ | Tests | ✅ 39 passed |
418
+ | Experiments | ✅ 3/3 completed (simulated data) |
419
+ | PyPI package | ✅ Published |
420
+ | Real-world deployment | None; no deployed system has been benchmarked |
421
+ | Propositions P1–P2 | Proof sketches; not machine-checked |
422
+ | Review status | Not peer reviewed |
423
+
424
+ ### Deferred from v2.0.0
425
+
426
+ - **I3′ — Strong exclusivity:** requires bounded agreement; not implemented.
427
+ - **I5 — Completion readiness:** requires verification layer; not implemented.
428
+ - **I7 — Canonical convergence under full delivery:** requires full-delivery simulation; not implemented.
429
+ - **CRDT, gossip, BFT:** not assumed, not implemented.
430
+ - **Real-world deployment:** not evaluated.
431
+
432
+ ---
433
+
434
+ ## 🌍 Platforms & Mirrors
435
+
436
+ | Platform | URL | Role | Status |
437
+ |---|---|---|:-:|
438
+ | **GitHub** | [gitdeeper15/aetherorchestrate](https://github.com/gitdeeper15/aetherorchestrate) | Source code, issues, PRs | ✅ Active |
439
+ | **GitLab** | [gitlab.com/gitdeeper15/aetherorchestrate](https://gitlab.com/gitdeeper15/aetherorchestrate) | Mirror repository | ✅ Active |
440
+ | **Codeberg** | [codeberg.org/gitdeeper15/aetherorchestrate](https://codeberg.org/gitdeeper15/aetherorchestrate) | Mirror repository | ✅ Active |
441
+ | **Bitbucket** | [bitbucket.org/gitdeeper15/aetherorchestrate](https://bitbucket.org/gitdeeper15/aetherorchestrate) | Mirror repository | ✅ Active |
442
+ | **PyPI** | [pypi.org/project/aetherorchestrate](https://pypi.org/project/aetherorchestrate/) | Python package (`2.0.0`) | ✅ Published |
443
+ | **Zenodo** | [10.5281/zenodo.24095399](https://doi.org/10.5281/zenodo.24095399) | Citable DOI, paper archive | ✅ Published |
444
+ | **Figshare** | [10.6084/m9.figshare.34963687](https://doi.org/10.6084/m9.figshare.34963687) | Preprint archive | ✅ Published |
445
+ | **OSF** | [10.17605/OSF.IO/2F7TZ](https://doi.org/10.17605/OSF.IO/2F7TZ) · [project](https://osf.io/8beur) | Registration | ✅ Published |
446
+ | **Website** | [aetherorchestrate.netlify.app](https://aetherorchestrate.netlify.app) | Live documentation | ✅ Active |
447
+ | **ORCID** | [0009-0003-8903-0029](https://orcid.org/0009-0003-8903-0029) | Author identity | ✅ Active |
448
+
449
+ ---
450
+
451
+ ## 🗂️ Project Structure
452
+
453
+ <details>
454
+ <summary><b>Click to expand the repository tree</b></summary>
455
+
456
+ ```text
457
+ AetherOrchestrate/
458
+ ├── src/
459
+ │ └── aetherorchestrate/ # Reference implementation (v2.0.0, 7 modules)
460
+ │ ├── __init__.py
461
+ │ ├── __version__.py
462
+ │ ├── models.py
463
+ │ ├── cli.py
464
+ │ ├── decomposition/
465
+ │ ├── assignment/
466
+ │ ├── scheduling/
467
+ │ ├── dependencies/
468
+ │ ├── routing/
469
+ │ └── simulation/
470
+ ├── tests/ # 39 tests
471
+ ├── experiments/ # 3 experiments
472
+ │ ├── decomposition_accuracy/
473
+ │ ├── assignment_fairness/
474
+ │ └── coordination_window/
475
+ ├── docs/
476
+ │ ├── figures/ # 6 figures (Fig1–Fig6)
477
+ │ │ ├── Fig1_Seven_Dimensions.png
478
+ │ │ ├── Fig2_Orchestrate_Layers.png
479
+ │ │ ├── Fig3_Task_DAG.png
480
+ │ │ ├── Fig4_Assignment_Challenge.png
481
+ │ │ ├── Fig5_Orchestrate_vs_Flow.png
482
+ │ │ └── Fig6_Centralization_Spectrum.png
483
+ │ └── specification/ # 5 specification files
484
+ │ ├── 01_entities.md
485
+ │ ├── 02_operations.md
486
+ │ ├── 03_invariants.md
487
+ │ ├── 04_interfaces.md
488
+ │ └── 05_test_design.md
489
+ ├── PUBLICATION/
490
+ │ ├── AetherOrchestrate_Research_Paper.pdf
491
+ │ └── v2.0.0/ # (planned) v2.0.0 report
492
+ ├── SPECIFICATION.md # Phase 1
493
+ ├── INVARIANTS.md # Phase 2
494
+ ├── TESTS.md # Phase 3
495
+ ├── SIMULATOR.md # Phase 4
496
+ ├── RESULTS.md # Phase 5–6
497
+ ├── RELEASE.md # Phase 7
498
+ ├── AUTHORS.md
499
+ ├── CHANGELOG.md
500
+ ├── CITATION.cff
501
+ ├── CONTRIBUTING.md
502
+ ├── INVENTORY.md
503
+ ├── LICENSE
504
+ ├── PROJECT_SUMMARY.txt
505
+ ├── README.md
506
+ ├── VERSION # 2.0.0
507
+ ├── manifest.json
508
+ ├── netlify.toml
509
+ └── scientific_state.json
510
+ ```
511
+
512
+ </details>
513
+
514
+ ---
515
+
516
+ ## 🕓 Version History
517
+
518
+ | Version | Release | Focus | Status |
519
+ |---|---|---|:-:|
520
+ | **v2.0.0** | 2026-11-10 ([release](https://github.com/gitdeeper15/aetherorchestrate/releases/tag/v2.0.0)) | Reference implementation: 7 modules, 39 tests, 3 experiments | ✅ Released |
521
+ | **v0.1.0** | 2026-11-09 ([release](https://github.com/gitdeeper15/aetherorchestrate/releases/tag/v0.1.0)) | Formal architecture proposal (no implementation) | ✅ Released |
522
+ | *(planned)* | 2027+ | Real-world evaluation; comparison against baselines B1–B5 | ⏳ Not executed |
523
+
524
+ ---
525
+
526
+ ## 📖 Citation
527
+
528
+ ### Paper — AetherOrchestrate v0.1.0
529
+
530
+ ```bibtex
531
+ @techreport{baladi2026aetherorchestrate,
532
+ author = {Baladi, Samir},
533
+ title = {AetherOrchestrate: A Falsification-First Investigation of Decentralized Orchestration in the Aether Family},
534
+ institution = {Ronin Institute / Rite of Renaissance},
535
+ type = {Research Paper},
536
+ year = {2026},
537
+ month = {November},
538
+ version = {0.1.0},
539
+ doi = {10.5281/zenodo.24095399},
540
+ url = {https://doi.org/10.5281/zenodo.24095399},
541
+ note = {Formal Architecture Proposal --- No implementation claimed.}
542
+ }
543
+ ```
544
+
545
+ ### Software — AetherOrchestrate v2.0.0
546
+
547
+ ```bibtex
548
+ @software{baladi2026aetherorchestrate_v2,
549
+ author = {Baladi, Samir},
550
+ title = {{AetherOrchestrate} v2.0.0: Reference Implementation of the Falsification-First Orchestration Architecture},
551
+ year = {2026},
552
+ month = {November},
553
+ publisher = {PyPI},
554
+ version = {2.0.0},
555
+ doi = {10.5281/zenodo.24095399},
556
+ url = {https://pypi.org/project/aetherorchestrate/},
557
+ note = {Reference implementation. Available via pip install aetherorchestrate.}
558
+ }
559
+ ```
560
+
561
+ ---
562
+
563
+ ### OSF Preregistration — AetherOrchestrate v0.1.0
564
+
565
+ ```bibtex
566
+ @misc{baladi2026aetherorchestrate_osf,
567
+ author = {Baladi, Samir},
568
+ title = {{AetherOrchestrate: A Falsification-First Investigation of Decentralized Orchestration in the Aether Family}},
569
+ year = {2026},
570
+ month = nov,
571
+ day = {10},
572
+ publisher = {OSF},
573
+ doi = {10.17605/OSF.IO/2F7TZ},
574
+ url = {https://doi.org/10.17605/OSF.IO/2F7TZ},
575
+ note = {OSF Preregistration. Associated project: https://osf.io/8beur}
576
+ }
577
+ ```
578
+
579
+ ---
580
+
581
+ ## 👤 Author
582
+
583
+ **Samir Baladi**
584
+ *Interdisciplinary AI Researcher — Ronin Institute / Rite of Renaissance*
585
+
586
+ | | |
587
+ |---|---|
588
+ | **Research Area** | Distributed Systems / Software Engineering / Multi-Agent Coordination |
589
+ | **Research Domain** | Orchestration, Task Decomposition, Assignment, Scheduling, Dependency Tracking, Routing |
590
+ | **Research Type** | Architectural Hypothesis + Reference Implementation |
591
+ | 📧 **Email** | [gitdeeper@gmail.com](mailto:gitdeeper@gmail.com) |
592
+ | 🔗 **ORCID** | [0009-0003-8903-0029](https://orcid.org/0009-0003-8903-0029) |
593
+ | 🐙 **GitHub** | [gitdeeper15/aetherorchestrate](https://github.com/gitdeeper15/aetherorchestrate) |
594
+ | 📄 **Figshare** | [10.6084/m9.figshare.34963687](https://doi.org/10.6084/m9.figshare.34963687) |
595
+ | 🌐 **Official Site** | [aetherorchestrate.netlify.app](https://aetherorchestrate.netlify.app) |
596
+
597
+ ---
598
+
599
+ ## ⚖️ License
600
+
601
+ | Scope | License |
602
+ |---|---|
603
+ | **Code** | [MIT License](LICENSE) — Copyright © 2026 Samir Baladi |
604
+ | **Documentation, manuscript, and figures** | [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode) |
605
+
606
+ <details>
607
+ <summary><b>MIT License — full text</b></summary>
608
+
609
+ ```text
610
+ MIT License
611
+
612
+ Copyright (c) 2026 Samir Baladi
613
+
614
+ Permission is hereby granted, free of charge, to any person obtaining a copy
615
+ of this software and associated documentation files (the "Software"), to deal
616
+ in the Software without restriction, including without limitation the rights
617
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
618
+ copies of the Software, and to permit persons to whom the Software is
619
+ furnished to do so, subject to the following conditions:
620
+
621
+ The above copyright notice and this permission notice shall be included in all
622
+ copies or substantial portions of the Software.
623
+ ```
624
+
625
+ </details>
626
+
627
+ ---
628
+
629
+ <div align="center">
630
+
631
+ **AetherOrchestrate — Program Manuscript v2.0.0 (Reference Implementation)**
632
+
633
+ © 2026 Samir Baladi — Ronin Institute / Rite of Renaissance — MIT (code) + CC-BY-4.0 (docs)
634
+
635
+ [Zenodo](https://doi.org/10.5281/zenodo.24095399) ·
636
+ [Figshare](https://doi.org/10.6084/m9.figshare.34963687) ·
637
+ [OSF](https://doi.org/10.17605/OSF.IO/2F7TZ) ·
638
+ [Website](https://aetherorchestrate.netlify.app) ·
639
+ [GitHub](https://github.com/gitdeeper15/aetherorchestrate)
640
+
641
+ </div>
@@ -0,0 +1,25 @@
1
+ aetherorchestrate/__init__.py,sha256=y-r2I49QHfffOPb_3CU2hJFlacZRCkAGf8rm9tXdleY,351
2
+ aetherorchestrate/__version__.py,sha256=_7OlQdbVkK4jad0CLdpI0grT-zEAb-qgFmH5mFzDXiA,22
3
+ aetherorchestrate/cli.py,sha256=l1kFkOS9IB8tXo_n3KhUIkzqy6zM0oMD-zwWlOAdyNs,1068
4
+ aetherorchestrate/models.py,sha256=QX5eONeJMu-eYRDN2xoICwVii9eef2DEkwrqhFRoo-w,5894
5
+ aetherorchestrate/assignment/__init__.py,sha256=cam6RTjckl39Q4NXWW_mYs3DfErnNKX5QyNR7x2fEiw,183
6
+ aetherorchestrate/assignment/assigner.py,sha256=MWeOARxJkBKxztD2hvnC2Kk9S3Pst398wA2qi6ajBpQ,2047
7
+ aetherorchestrate/decomposition/__init__.py,sha256=jofuzZ13nRVHyHyzDgNMWNw9c6jkCTgvkQxL7Em2dGA,136
8
+ aetherorchestrate/decomposition/decomposer.py,sha256=Kcc9eetvTpkt0i3On5maXh-fFn8oirZ9wILdc-E4JXI,890
9
+ aetherorchestrate/dependencies/__init__.py,sha256=2qsPxHcxe8RtbgLbzuMFKBOebqa3qNDJob033DbqxdM,161
10
+ aetherorchestrate/dependencies/graph.py,sha256=qcIuZbW_7ZAfoYvkatAXZ0X3tJqgYmRlYgiFJ3Uk-dc,1969
11
+ aetherorchestrate/routing/__init__.py,sha256=D6jRMMHpCoYCrWlKpL9zUWrOf4zuugpyybLZMWZDgO4,102
12
+ aetherorchestrate/routing/router.py,sha256=aX-sybfTvlhajCwpA_u3sy7WldeMvS1Yl4OjeLngdf8,776
13
+ aetherorchestrate/scheduling/__init__.py,sha256=AEper-X9ogsIveM7Bz4uQScnFsMBSD4YlYnxaWF-TkI,120
14
+ aetherorchestrate/scheduling/scheduler.py,sha256=1UQo9Phg7TIOKVqfTUz91ejoYbmXO_Dz4vKE1f6WNM0,1265
15
+ aetherorchestrate/simulation/__init__.py,sha256=pj6cuiVf-pjH6rYKQp8OW8lOKBvP64nKOHMQXciY_OI,146
16
+ aetherorchestrate/simulation/network.py,sha256=xLJqe5eVJQJ1JaiCsLDSSs_QGuR7Vj9PvIBZvnIGZUI,1269
17
+ aetherorchestrate/simulation/node.py,sha256=YLQS8z3X02AcMU3AjgiPgH7piH3eZZmG1GX9Lm4hJOE,535
18
+ aetherorchestrate/simulation/testbed.py,sha256=KmvtC6WacTT46W_E8XHmxzWv2xxsUbTwBakE3dpJcuE,1034
19
+ aetherorchestrate-2.0.0.dist-info/licenses/AUTHORS.md,sha256=nG4WkeaJPOwrCUgubQN_70ITjxUgP3L4QFq418sIjyc,1340
20
+ aetherorchestrate-2.0.0.dist-info/licenses/LICENSE,sha256=OQU5CtQgrw2BJvlY4gMlYkxItc2FdTnwUXYX_GwF0JI,1198
21
+ aetherorchestrate-2.0.0.dist-info/METADATA,sha256=RE9L2Z4WgL59QRQSpyqRk4L7jpjyB5ldw9PI1MGD_-g,28332
22
+ aetherorchestrate-2.0.0.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
23
+ aetherorchestrate-2.0.0.dist-info/entry_points.txt,sha256=ZdETxhR9IpdO3eM9hYdTZx2CUnjpmxli45q_ACc2PnQ,65
24
+ aetherorchestrate-2.0.0.dist-info/top_level.txt,sha256=1fbhSKfRhivr7SKQsydpJydp2Qkk9KfPweFYW0X1Slk,18
25
+ aetherorchestrate-2.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.2.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ aetherorchestrate = aetherorchestrate.cli:main