A pure async control-flow engine that executes a task across a TopologyGraph by sequencing safe agent turns. Safety by construction: the engine can only invoke turns via a generic TurnExecutor — it performs no side effects itself, so §15 gating (inside each turn) is inherited and switching topology cannot escalate authority. - TurnExecutor trait + TurnRequest/TurnOutcome (real impl will wrap cm-runtime::Runtime; tests use a scripted Echo executor). - Pure planners (plan.rs): hierarchical (delegate down / synthesize up), pipeline (topo-ordered threading), swarm (parallel attempts + aggregate). - RunRecord journal (per-step + RunMetrics: tokens, gated actions, approvals granted/blocked, turns) — feeds the Phase 4 comparison harness/paper. - Unsupported kinds return an error (no panic). 5 tests, clippy clean. Next (Phase 2b): a real TurnExecutor adapter over cm-runtime::send_message. Co-Authored-By: Claude Opus 4.8 <[email protected]>
20 lines
391 B
TOML
20 lines
391 B
TOML
[package]
|
|
name = "cm-orchestrator"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
publish.workspace = true
|
|
|
|
[dependencies]
|
|
cm-topology = { path = "../cm-topology" }
|
|
cm-domain = { path = "../cm-domain" }
|
|
serde = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
tokio = { workspace = true }
|
|
|
|
[lints]
|
|
workspace = true
|