[package]
name = "loop-agent-sdk"
version = "0.1.0"
edition = "2021"
rust-version = "1.81"
authors = ["OAR Technologies Inc <csouthern@looplocal.io>"]
description = "Trustless agent SDK for Loop Protocol — intent-based execution on Solana."
readme = "README.md"
license = "MIT"
repository = "https://github.com/OAR-Technologies-Inc/loop-protocol"
homepage = "https://github.com/OAR-Technologies-Inc/loop-protocol/tree/main/agent-sdk"
documentation = "https://docs.rs/loop-agent-sdk"
keywords = ["solana", "agents", "mcp", "defi", "rewards"]
categories = ["cryptography::cryptocurrencies", "web-programming"]
exclude = ["examples/", "scripts/", "mcp/", "tests/fixtures/"]
[features]
default = ["full"]
full = ["action", "perception", "state"]
action = []
perception = []
state = []
lambda = ["aws-lambda-runtime", "tokio"]
dynamodb = ["aws-sdk-dynamodb", "aws-config", "tokio"]
privacy = ["hmac", "zeroize", "rand", "aws-sdk-secretsmanager", "aws-config", "tokio"]
webhook = ["privacy", "hmac"]
notifications = ["dynamodb", "reqwest"]
supabase = ["reqwest", "tokio"]
agent = ["lambda", "dynamodb", "privacy", "webhook", "notifications", "supabase"]
cli = ["clap"]
[dependencies]
solana-sdk = "2.0"
solana-client = "2.0"
spl-token = "6.0"
spl-associated-token-account = "4.0"
borsh = { version = "1.5", features = ["derive"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
chrono = { version = "0.4", features = ["serde"] }
tokio = { version = "1.0", features = ["full"], optional = true }
aws-lambda-runtime = { version = "0.13", package = "lambda_runtime", optional = true }
aws-sdk-dynamodb = { version = "1.0", optional = true }
aws-config = { version = "1.0", optional = true }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
base64 = "0.22"
hex = "0.4"
sha2 = "0.10"
hmac = { version = "0.12", optional = true }
zeroize = { version = "1.7", optional = true }
rand = { version = "0.8", optional = true }
aws-sdk-secretsmanager = { version = "1.0", optional = true }
reqwest = { version = "0.12", features = ["json"], optional = true }
clap = { version = "4.5", features = ["derive", "env"], optional = true }
[dev-dependencies]
tokio-test = "0.4"
pretty_assertions = "1.4"
[lib]
name = "loop_agent_sdk"
path = "src/lib.rs"
[[bin]]
name = "loop-agent"
path = "src/bin/loop_agent.rs"
required-features = ["agent"]
[[bin]]
name = "loop-cli"
path = "src/bin/loop_cli.rs"
required-features = ["cli"]
[[example]]
name = "lambda_handler"
path = "examples/lambda_handler.rs"
required-features = ["lambda", "dynamodb"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]