[package]
edition = "2024"
rust-version = "1.94.1"
name = "agentplane"
version = "0.38.0"
build = false
include = [
"/src/**/*.rs",
"/examples/*.rs",
"/examples/*.yaml",
"/examples/*.cedar",
"/src/bin/*.rs",
"/README.md",
"/CHANGELOG.md",
"/LICENSE-MIT",
"/LICENSE-APACHE",
"/clippy.toml",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Durable, replayable agent runtime — the journal is the plan of record"
homepage = "https://hupe1980.github.io/agentplane/"
documentation = "https://docs.rs/agentplane"
readme = "README.md"
keywords = [
"agent",
"durable-execution",
"replay",
"runtime",
"llm",
]
categories = [
"asynchronous",
"data-structures",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/hupe1980/agentplane"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
a2a = ["dep:reqwest"]
a2a-server = [
"http",
"manifest",
"push",
"dep:async-stream",
]
bedrock = [
"dep:aws-config",
"dep:aws-sdk-bedrockruntime",
"dep:aws-smithy-types",
"dep:jsonschema",
]
cedar = ["dep:cedar-policy"]
cli = [
"manifest",
"redb",
"providers",
"bedrock",
"fake-model",
"signing",
"witness-http",
"tokio/signal",
"dep:tracing-subscriber",
"dep:clap",
]
default = ["redb"]
fake-model = []
http = [
"dep:axum",
"tokio/net",
"tokio/rt-multi-thread",
]
keyring = ["dep:chacha20poly1305"]
keyring-vault = [
"keyring",
"dep:reqwest",
]
manifest = [
"dep:serde_yaml_ng",
"dep:jsonschema",
]
mcp = ["dep:rmcp"]
mcp-http = [
"mcp",
"rmcp/transport-streamable-http-client-reqwest",
]
mcp-server = [
"mcp",
"manifest",
"rmcp/server",
"rmcp/transport-io",
]
mcp-stdio = [
"mcp",
"rmcp/transport-child-process",
]
media = [
"dep:reqwest",
"tokio/net",
]
opendal = ["dep:opendal"]
postgres = [
"dep:tokio-postgres",
"dep:deadpool-postgres",
]
providers = [
"dep:reqwest",
"dep:jsonschema",
]
push = [
"dep:reqwest",
"dep:hmac",
]
redb = ["dep:redb"]
signing = ["dep:ed25519-dalek"]
testkit = ["fake-model"]
witness-http = [
"dep:reqwest",
"signing",
]
[lib]
name = "agentplane"
path = "src/lib.rs"
[[bin]]
name = "agentplane"
path = "src/bin/agentplane.rs"
required-features = ["cli"]
[[example]]
name = "a2a_peer"
path = "examples/a2a_peer.rs"
required-features = [
"redb",
"a2a-server",
"manifest",
]
[[example]]
name = "a2a_tck_live"
path = "examples/a2a_tck_live.rs"
required-features = [
"redb",
"a2a-server",
"manifest",
"testkit",
]
[[example]]
name = "answered_doubt"
path = "examples/answered_doubt.rs"
required-features = ["redb"]
[[example]]
name = "approved_call"
path = "examples/approved_call.rs"
required-features = [
"redb",
"fake-model",
"manifest",
]
[[example]]
name = "batch_run"
path = "examples/batch_run.rs"
required-features = ["redb"]
[[example]]
name = "bedrock_live"
path = "examples/bedrock_live.rs"
required-features = ["bedrock"]
[[example]]
name = "blog_room"
path = "examples/blog_room.rs"
required-features = [
"redb",
"fake-model",
"manifest",
]
[[example]]
name = "budget_pause"
path = "examples/budget_pause.rs"
required-features = ["redb"]
[[example]]
name = "camel_live"
path = "examples/camel_live.rs"
required-features = [
"redb",
"providers",
"manifest",
]
[[example]]
name = "clearing_case"
path = "examples/clearing_case.rs"
required-features = ["redb"]
[[example]]
name = "durable_pipeline"
path = "examples/durable_pipeline.rs"
required-features = ["redb"]
[[example]]
name = "effect_group"
path = "examples/effect_group.rs"
required-features = ["redb"]
[[example]]
name = "governed_transfer"
path = "examples/governed_transfer.rs"
required-features = [
"redb",
"manifest",
]
[[example]]
name = "hello_skill"
path = "examples/hello_skill.rs"
required-features = ["redb"]
[[example]]
name = "journal_bench"
path = "examples/journal_bench.rs"
required-features = ["redb"]
[[example]]
name = "manifest_run"
path = "examples/manifest_run.rs"
required-features = [
"redb",
"fake-model",
"manifest",
]
[[example]]
name = "mcp_tools"
path = "examples/mcp_tools.rs"
required-features = [
"redb",
"fake-model",
"manifest",
"mcp",
]
[[example]]
name = "media_run"
path = "examples/media_run.rs"
required-features = [
"redb",
"fake-model",
"media",
]
[[example]]
name = "memory_run"
path = "examples/memory_run.rs"
required-features = ["redb"]
[[example]]
name = "model_run"
path = "examples/model_run.rs"
required-features = [
"redb",
"fake-model",
]
[[example]]
name = "observability"
path = "examples/observability.rs"
required-features = ["redb"]
[[example]]
name = "openai_live"
path = "examples/openai_live.rs"
required-features = [
"redb",
"providers",
]
[[example]]
name = "operator_stop"
path = "examples/operator_stop.rs"
required-features = ["redb"]
[[example]]
name = "peer_call"
path = "examples/peer_call.rs"
required-features = [
"redb",
"testkit",
"manifest",
"a2a",
"a2a-server",
]
[[example]]
name = "plan_graph"
path = "examples/plan_graph.rs"
required-features = ["redb"]
[[example]]
name = "planned_run"
path = "examples/planned_run.rs"
required-features = [
"redb",
"fake-model",
"manifest",
]
[[example]]
name = "recovered_run"
path = "examples/recovered_run.rs"
required-features = ["redb"]
[[example]]
name = "retention_hold"
path = "examples/retention_hold.rs"
required-features = ["redb"]
[[example]]
name = "saga_checkout"
path = "examples/saga_checkout.rs"
required-features = ["redb"]
[[example]]
name = "sealed_run"
path = "examples/sealed_run.rs"
required-features = [
"redb",
"testkit",
"keyring",
]
[[example]]
name = "serve_mcp"
path = "examples/serve_mcp.rs"
required-features = [
"redb",
"mcp",
"mcp-server",
"manifest",
]
[[example]]
name = "standing_authority"
path = "examples/standing_authority.rs"
required-features = [
"redb",
"fake-model",
]
[[example]]
name = "streaming_run"
path = "examples/streaming_run.rs"
required-features = [
"redb",
"fake-model",
]
[[example]]
name = "tool_loop"
path = "examples/tool_loop.rs"
required-features = [
"redb",
"fake-model",
"manifest",
]
[dependencies.async-stream]
version = "0.3"
optional = true
[dependencies.async-trait]
version = "0.1"
[dependencies.aws-config]
version = "1.11.0"
features = [
"default-https-client",
"rt-tokio",
"credentials-process",
"sso",
"credentials-login",
"behavior-version-latest",
]
optional = true
default-features = false
[dependencies.aws-sdk-bedrockruntime]
version = "1.139.0"
features = [
"default-https-client",
"rt-tokio",
"behavior-version-latest",
]
optional = true
default-features = false
[dependencies.aws-smithy-types]
version = "1.6.1"
optional = true
[dependencies.axum]
version = "0.8.9"
features = [
"json",
"http1",
"tokio",
"query",
]
optional = true
default-features = false
[dependencies.base64]
version = "0.23"
[dependencies.cedar-policy]
version = "4.12.0"
optional = true
default-features = false
[dependencies.chacha20poly1305]
version = "0.11"
features = [
"alloc",
"getrandom",
]
optional = true
default-features = false
[dependencies.clap]
version = "4"
features = [
"derive",
"std",
"help",
"usage",
"error-context",
"suggestions",
"env",
"wrap_help",
]
optional = true
default-features = false
[dependencies.deadpool-postgres]
version = "0.14.1"
optional = true
[dependencies.ed25519-dalek]
version = "3"
features = [
"alloc",
"zeroize",
"signature",
]
optional = true
default-features = false
[dependencies.futures-core]
version = "0.3"
[dependencies.futures-util]
version = "0.3"
features = [
"std",
"async-await",
]
default-features = false
[dependencies.hex]
version = "0.4"
[dependencies.hmac]
version = "0.13"
optional = true
[dependencies.jsonschema]
version = "0.55.0"
optional = true
default-features = false
[dependencies.opendal]
version = "0.58"
features = ["services-fs"]
optional = true
default-features = false
[dependencies.rand]
version = "0.10"
features = ["chacha"]
[dependencies.redb]
version = "4"
optional = true
[dependencies.reqwest]
version = "0.13"
features = [
"json",
"rustls",
"http2",
"charset",
"stream",
]
optional = true
default-features = false
[dependencies.rmcp]
version = "3.1"
features = [
"client",
"transport-io",
]
optional = true
default-features = false
[dependencies.schemars]
version = "1"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_yaml_ng]
version = "0.10"
optional = true
[dependencies.sha2]
version = "0.11"
[dependencies.thiserror]
version = "2"
[dependencies.time]
version = "0.3"
features = [
"serde-well-known",
"macros",
"formatting",
"parsing",
]
[dependencies.tokio]
version = "1"
features = [
"sync",
"rt",
"macros",
"time",
]
[dependencies.tokio-postgres]
version = "0.7.18"
features = ["with-serde_json-1"]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"fmt",
"registry",
"env-filter",
]
optional = true
default-features = false
[dependencies.ulid]
version = "3"
features = ["serde"]
[dependencies.zeroize]
version = "1"
features = [
"alloc",
"derive",
]
[dev-dependencies.a2a-lf]
version = "0.3.0"
default-features = false
[dev-dependencies.a2a-server-lf]
version = "0.4.1"
default-features = false
[dev-dependencies.aws-smithy-runtime-api]
version = "1"
features = ["client"]
[dev-dependencies.aws-smithy-types]
version = "1"
[dev-dependencies.bytes]
version = "1"
[dev-dependencies.futures-util]
version = "0.3"
features = [
"std",
"async-await",
]
default-features = false
[dev-dependencies.http]
version = "1"
[dev-dependencies.rmcp]
version = "3.1"
features = [
"server",
"transport-io",
"macros",
]
default-features = false
[dev-dependencies.testcontainers-modules]
version = "0.15.0"
features = ["postgres"]
[dev-dependencies.tokio]
version = "1"
features = ["full"]
[dev-dependencies.tower]
version = "0.5.3"
features = ["util"]
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
"fmt",
"registry",
]
default-features = false
[lints.clippy]
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
needless_collect = "warn"
needless_pass_by_ref_mut = "warn"
or_fun_call = "warn"
redundant_clone = "warn"
string_lit_as_bytes = "warn"
too_long_first_doc_paragraph = "warn"
use_self = "warn"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_debug_implementations = "warn"
unsafe_code = "forbid"