ArchetypeMeta gets flows, checked when the controller stores the record: every todo must go to the new members recipient, which the router expands to the agents of the archetype. The operator's flows document refuses members. The router reads the archetype records and each roster agent's archetype key, and its NATS grant gains read on both buckets.
50 lines
1.6 KiB
TOML
50 lines
1.6 KiB
TOML
[package]
|
|
name = "swarm-notify-router"
|
|
version.workspace = true
|
|
readme = "README.md"
|
|
edition.workspace = true
|
|
|
|
[[bin]]
|
|
name = "swarm-notify-router"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
# `kv` for its state bucket; `jetstream` comes with it.
|
|
async-nats = { workspace = true, features = ["kv"] }
|
|
# StreamExt / TryStreamExt on the pulled batch and the subject listing.
|
|
futures-util.workspace = true
|
|
hive-log.workspace = true
|
|
# The flow templates a todo node renders.
|
|
hive-template.workspace = true
|
|
# The metrics the router exports (`metrics`), pushed through the OTLP exporter
|
|
# `swarm-secret-client`'s `meter_provider` builds.
|
|
opentelemetry.workspace = true
|
|
opentelemetry_sdk.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
# The connect, and the two streams' configs it shares with the controller and
|
|
# the agent harness.
|
|
swarm-queue-client = { workspace = true, features = [
|
|
"forge-events",
|
|
"router-todo",
|
|
# `archetypes::open` and `agent_archetype::read`, for the flows archetypes carry.
|
|
"kv",
|
|
"agent-archetype",
|
|
] }
|
|
# Its queue client secret, read with its own store leaf.
|
|
swarm-secret-client = { workspace = true, features = ["otel"] }
|
|
# The stream, subject, bucket and op names.
|
|
swarm-wire.workspace = true
|
|
tokio.workspace = true
|
|
tracing.workspace = true
|
|
|
|
# A fresh directory per test `nats-server`, for its store and ports file.
|
|
[dev-dependencies]
|
|
# `InMemoryMetricExporter`, to read back what `metrics` records.
|
|
opentelemetry_sdk = { workspace = true, features = ["testing"] }
|
|
tempfile = "3"
|
|
tracing-subscriber.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|