terraphim_orchestrator 1.20.2

AI Dark Factory orchestrator wiring spawner, router, supervisor into a reconciliation loop
Documentation
[package]
name = "terraphim_orchestrator"
version = "1.20.2"
edition.workspace = true
authors = ["Terraphim Team <team@terraphim.ai>"]
description = "AI Dark Factory orchestrator wiring spawner, router, supervisor into a reconciliation loop"
documentation = "https://terraphim.ai"
homepage = "https://terraphim.ai"
repository = "https://github.com/terraphim/terraphim-ai"
keywords = ["ai", "orchestrator", "agents", "dark-factory", "supervisor"]
license = "Apache-2.0"
readme = "../../README.md"

[features]
default = ["quickwit", "evolution"]
quickwit = ["dep:reqwest", "dep:reqwest-middleware", "dep:reqwest-retry"]
evolution = ["dep:terraphim_agent_evolution"]
# Expose `scope::test_support` to integration tests under `tests/`.
# The dependency on `tempfile` is also pulled in by `[dev-dependencies]`,
# so this feature is effectively a no-op for non-test consumers, but
# the cfg gate keeps the helper out of the production tree.
test-helpers = ["dep:tempfile"]

[dependencies]
# Terraphim internal crates
terraphim_spawner = { version = "1.0.0" }
terraphim_router = { version = "1.0.0" }
terraphim_types = { version = "1.0.0", features = ["kg-integration"] }
terraphim_tracker = {  path = "../terraphim_tracker", version = "1.0.0" }

# Core dependencies
tokio = { workspace = true, features = ["full", "signal"] }

serde = { workspace = true, features = ["derive"] }

serde_json = { workspace = true }

thiserror = { workspace = true }

tracing = { workspace = true }

tracing-subscriber = { version = "0.3", features = ["env-filter"] }
chrono = { workspace = true, features = ["serde"] }

async-trait = { workspace = true }

uuid = { workspace = true, features = ["v4", "serde"] }


# Scheduling
cron = "0.13"

# CLI tool resolution
which = "5"

# Command parsing via terraphim-automata
terraphim_automata = { version = "1.19.2" }

# Config parsing
toml = "0.8"
glob = "0.3"

# Template rendering
handlebars = "6.3"
regex = "1"

# Webhook server
axum = "0.8"
hmac = "0.12"
sha2 = "0.10"
hex = "0.4"

# adf-ctl CLI binary
clap = { version = "4", features = ["derive"] }
jiff = { version = "0.2" }
anyhow = { workspace = true }

# Persistence layer for shared learnings
opendal = { version = "0.54", default-features = false }
terraphim_persistence = { version = "1.4.10", features = ["sqlite"] }

# Agent evolution system (optional)
terraphim_agent_evolution = {  path = "../terraphim_agent_evolution", version = "1.19.2", optional = true }

# Quickwit integration (optional)
reqwest = { workspace = true, optional = true }
reqwest-middleware = { workspace = true, optional = true }
reqwest-retry = { workspace = true, optional = true }
ulid = "1.2.1"

# Optional: enabled by the `test-helpers` feature so that the
# `scope::test_support` module can be shared with integration tests.
tempfile = { workspace = true, optional = true }

[dev-dependencies]
tokio-test = "0.4"
tempfile = { workspace = true }
serial_test = "3"

# Layer 1 cancellation property test (epic #1567 / issue #1569).
# Requires the `test-helpers` feature to access
# `scope::test_support::setup_git_repo`. Declared explicitly so
# `cargo test --all-features` picks it up; the source file is also
# `#![cfg(all(unix, feature = "test-helpers"))]` for defensive
# double-gating.
[[test]]
name = "compound_cancellation_test"
path = "tests/compound_cancellation_test.rs"
required-features = ["test-helpers"]

# Layer 2 startup sweep integration test (epic #1567 / issue #1570).
# Same test-helpers gate as Layer 1 -- the test re-uses the shared
# `scope::test_support::setup_git_repo` fixture so the sweep never
# runs against the live repository.
[[test]]
name = "sweep_on_startup_test"
path = "tests/sweep_on_startup_test.rs"
required-features = ["test-helpers"]


[[bin]]
name = "adf"
path = "src/bin/adf.rs"

[[bin]]
name = "adf-ctl"
path = "src/bin/adf-ctl.rs"