[package]
edition = "2021"
rust-version = "1.88"
name = "arcp"
version = "2.0.0"
authors = ["Nick Ficano <nficano@gmail.com>"]
build = false
include = [
"src/**/*.rs",
"examples/**/*.rs",
"examples/**/README.md",
"tests/**/*.rs",
"tests/snapshots/*.snap",
"Cargo.toml",
"README.md",
"CONFORMANCE.md",
"CHANGELOG.md",
"LICENSE-MIT",
"LICENSE-APACHE",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Reference implementation of the Agent Runtime Control Protocol (ARCP) v1.1 — umbrella crate that re-exports arcp-core, arcp-client, and arcp-runtime."
homepage = "https://github.com/agentruntimecontrolprotocol/rust-sdk"
documentation = "https://docs.rs/arcp"
readme = "README.md"
keywords = [
"arcp",
"agent",
"protocol",
"runtime",
"rfc",
]
categories = [
"network-programming",
"asynchronous",
"api-bindings",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/agentruntimecontrolprotocol/rust-sdk"
[features]
client = ["dep:arcp-client"]
default = [
"client",
"runtime",
"transport-ws",
"transport-stdio",
]
runtime = ["dep:arcp-runtime"]
transport-stdio = [
"arcp-core/transport-stdio",
"arcp-client?/transport-stdio",
"arcp-runtime?/transport-stdio",
]
transport-ws = [
"arcp-core/transport-ws",
"arcp-client?/transport-ws",
"arcp-runtime?/transport-ws",
]
[lib]
name = "arcp"
path = "src/lib.rs"
[[example]]
name = "ack_backpressure"
path = "examples/ack_backpressure.rs"
[[example]]
name = "agent_versions"
path = "examples/agent_versions/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "axum_server"
path = "examples/axum_server.rs"
[[example]]
name = "cancellation"
path = "examples/cancellation.rs"
[[example]]
name = "capability_negotiation"
path = "examples/capability_negotiation.rs"
[[example]]
name = "cost_budget"
path = "examples/cost_budget/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "custom_auth"
path = "examples/custom_auth.rs"
[[example]]
name = "delegation"
path = "examples/delegation/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "extensions"
path = "examples/extensions.rs"
[[example]]
name = "handoff"
path = "examples/handoff/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "heartbeats"
path = "examples/heartbeats/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "idempotent_retry"
path = "examples/idempotent_retry.rs"
[[example]]
name = "job_subscribe"
path = "examples/job_subscribe/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "lease_expires_at"
path = "examples/lease_expires_at.rs"
[[example]]
name = "lease_revocation"
path = "examples/lease_revocation/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "lease_violation"
path = "examples/lease_violation.rs"
[[example]]
name = "leases"
path = "examples/leases/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "mcp"
path = "examples/mcp/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "permission_challenge"
path = "examples/permission_challenge/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "progress"
path = "examples/progress.rs"
[[example]]
name = "provisioned_credentials"
path = "examples/provisioned_credentials/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "reasoning_streams"
path = "examples/reasoning_streams/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "result_chunk"
path = "examples/result_chunk/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "resumability"
path = "examples/resumability/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "session_ack"
path = "examples/session_ack/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "session_heartbeat"
path = "examples/session_heartbeat/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "session_list_jobs"
path = "examples/session_list_jobs/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "stdio"
path = "examples/stdio.rs"
[[example]]
name = "submit_and_stream"
path = "examples/submit_and_stream.rs"
[[example]]
name = "subscriptions"
path = "examples/subscriptions/main.rs"
required-features = [
"client",
"runtime",
]
[[example]]
name = "tracing"
path = "examples/tracing.rs"
[[example]]
name = "vendor_extensions"
path = "examples/vendor_extensions.rs"
[[test]]
name = "artifact"
path = "tests/artifact.rs"
[[test]]
name = "artifact_dispatch"
path = "tests/artifact_dispatch.rs"
[[test]]
name = "cancellation"
path = "tests/cancellation.rs"
[[test]]
name = "cost_budget"
path = "tests/cost_budget.rs"
[[test]]
name = "envelope_snapshots"
path = "tests/envelope_snapshots.rs"
[[test]]
name = "extension_unknown"
path = "tests/extension_unknown.rs"
[[test]]
name = "handshake"
path = "tests/handshake.rs"
[[test]]
name = "handshake_ws"
path = "tests/handshake_ws.rs"
[[test]]
name = "job_lifecycle"
path = "tests/job_lifecycle.rs"
[[test]]
name = "job_subscription"
path = "tests/job_subscription.rs"
[[test]]
name = "live_regressions"
path = "tests/live_regressions.rs"
[[test]]
name = "model_use"
path = "tests/model_use.rs"
[[test]]
name = "provisioned_credentials"
path = "tests/provisioned_credentials.rs"
[[test]]
name = "result_chunk"
path = "tests/result_chunk.rs"
[[test]]
name = "resume"
path = "tests/resume.rs"
[[test]]
name = "runtime_dispatch"
path = "tests/runtime_dispatch.rs"
[[test]]
name = "subscription"
path = "tests/subscription.rs"
[[test]]
name = "subscription_dispatch"
path = "tests/subscription_dispatch.rs"
[dependencies.arcp-client]
version = "2.0.0"
optional = true
[dependencies.arcp-core]
version = "2.0.0"
[dependencies.arcp-runtime]
version = "2.0.0"
optional = true
[dev-dependencies.async-trait]
version = "0.1"
[dev-dependencies.base64]
version = "0.22"
[dev-dependencies.chrono]
version = "0.4"
features = [
"serde",
"clock",
]
default-features = false
[dev-dependencies.clap]
version = "4"
features = ["derive"]
[dev-dependencies.dashmap]
version = "6"
[dev-dependencies.futures]
version = "0.3"
[dev-dependencies.insta]
version = "1"
features = ["json"]
[dev-dependencies.jsonwebtoken]
version = "10"
features = ["rust_crypto"]
[dev-dependencies.pretty_assertions]
version = "1"
[dev-dependencies.rusqlite]
version = "0.39"
features = ["bundled"]
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"net",
"sync",
"time",
"io-util",
"io-std",
"fs",
"process",
"signal",
"test-util",
]
[dev-dependencies.tokio-stream]
version = "0.1"
[dev-dependencies.tokio-test]
version = "0.4"
[dev-dependencies.tokio-tungstenite]
version = "0.29"
[dev-dependencies.tokio-util]
version = "0.7"
features = ["rt"]
[dev-dependencies.tracing]
version = "0.1"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"json",
]
[dev-dependencies.tracing-test]
version = "0.2"
[dev-dependencies.ulid]
version = "1"
features = ["serde"]
[lints.clippy]
expect_used = "warn"
module_name_repetitions = "allow"
multiple_crate_versions = "allow"
panic = "deny"
todo = "deny"
unimplemented = "deny"
unwrap_used = "deny"
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "deny"
unreachable_pub = "warn"
unsafe_code = "deny"