aae-protocol 0.9.0

Accountable Agentic Execution — protocol SDK for Rust
Documentation

aae-protocol (Rust)

Rust SDK for the Accountable Agentic Execution (AAE) protocol.

Install

[dependencies]
aae-protocol = "0.1"

What this provides

  • Serde-derived types for every AAE schema (Proposal, Preview, PolicyDecision, CapabilityToken, AuditEvent, ToolRegistration)
  • Hash chain helpers (canonicalization, chain construction, verification)
  • Capability token mint/verify (JWT via jsonwebtoken)
  • Async-friendly traits (with async feature) for policy adapters, audit sinks, approval delivery
  • Compiles to WASM for use in component-model hosts (e.g., Iarsma)

Features

  • default = ["jwt"]
  • jwt — JWT capability token support via jsonwebtoken
  • async — async-trait-based async interfaces

Quick example

use aae::{Proposal, Step, Context, BlastRadius};
use aae::hashchain::{append_event, verify_chain};

// Construct a proposal
let proposal = Proposal {
    aae_version: aae::PROTOCOL_VERSION.to_string(),
    proposal_id: ulid::Ulid::new().to_string(),
    agent_id: "ops-agent-v3".to_string(),
    tenant_id: "default".to_string(),
    intent: "restart_test_service".to_string(),
    context: Context {
        rationale: "QA asked".to_string(),
        triggered_by: None,
        derived_from: None,
        extra: Default::default(),
    },
    steps: vec![Step {
        tool: "ssh_exec".to_string(),
        args: serde_json::json!({"host": "test-01", "command": "systemctl restart test"}),
        expected: None,
        blast_radius: BlastRadius::SingleService,
    }],
    submitted_at: chrono::Utc::now(),
};

// Serialize, send to a host application implementing AAE...

Status

v0.1 — early development. APIs may shift before v1.0.

License

MIT OR Apache-2.0