#![doc(
html_logo_url = "https://raw.githubusercontent.com/dyologician/a1/main/docs/assets/logo.png"
)]
#![doc(
html_favicon_url = "https://raw.githubusercontent.com/dyologician/a1/main/docs/assets/favicon.ico"
)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![deny(unsafe_code)]
mod crypto;
pub mod audit;
pub mod cert;
pub mod chain;
pub mod context;
pub mod error;
pub mod hybrid;
pub mod identity;
pub mod intent;
pub mod passport;
pub mod policy;
pub mod provenance;
pub mod registry;
#[cfg(feature = "wire")]
#[cfg_attr(docsrs, doc(cfg(feature = "wire")))]
pub mod cert_extensions;
#[cfg(feature = "wire")]
#[cfg_attr(docsrs, doc(cfg(feature = "wire")))]
pub mod wire;
#[cfg(feature = "did")]
#[cfg_attr(docsrs, doc(cfg(feature = "did")))]
pub mod did;
#[cfg(feature = "zk")]
#[cfg_attr(docsrs, doc(cfg(feature = "zk")))]
pub mod zk;
#[cfg(feature = "anchor")]
#[cfg_attr(docsrs, doc(cfg(feature = "anchor")))]
pub mod anchor;
#[cfg(feature = "negotiate")]
#[cfg_attr(docsrs, doc(cfg(feature = "negotiate")))]
pub mod negotiate;
#[cfg(feature = "swarm")]
#[cfg_attr(docsrs, doc(cfg(feature = "swarm")))]
pub mod swarm;
#[cfg(feature = "governance")]
#[cfg_attr(docsrs, doc(cfg(feature = "governance")))]
pub mod governance;
#[cfg(feature = "ffi")]
#[cfg_attr(docsrs, doc(cfg(feature = "ffi")))]
#[allow(unsafe_code)]
pub mod ffi;
pub use audit::{
AuditEvent, AuditOutcome, AuditSink, CompositeAuditSink, LogAuditSink, NoopAuditSink,
};
pub use cert::{CertBuilder, CertBundle, DelegationCert, CERT_VERSION};
pub use chain::{
AuthorizedAction, BatchAuthorizeResult, Clock, DyoloChain, SystemClock, VerificationReceipt,
};
pub use context::A1Context;
pub use error::{A1Error, A1StorageError, StorageErrorKind};
pub use hybrid::{
negotiate_algorithm, ChainAlgorithmCompatibility, ClassicalHybridAdapter, HybridPublicKey,
HybridSignature, HybridSigner, SignatureAlgorithm,
};
pub use identity::narrowing::{CapabilityRegistry, NarrowingMatrix};
pub use identity::receipt::ProvableReceipt;
pub use identity::{DyoloIdentity, SharedIdentity, Signer};
#[allow(deprecated)]
pub use intent::{
intent_hash, Intent, IntentHash, IntentTree, MerkleProof, SiblingNode, SubScopeProof,
};
pub use passport::DyoloPassport;
pub use policy::{CapabilitySet, DelegationPolicy, PolicySet};
pub use provenance::{
ProvenanceRoot, ProvenanceStepProof, ReasoningStep, ReasoningStepKind, ReasoningTrace,
};
pub use registry::{
fresh_nonce, MemoryNonceStore, MemoryRateLimitStore, MemoryRevocationStore, NonceStore,
RateLimitStore, RevocationStore,
};
#[cfg(feature = "wire")]
#[cfg_attr(docsrs, doc(cfg(feature = "wire")))]
pub use cert_extensions::{CertExtensions, ExtValue};
#[cfg(feature = "did")]
#[cfg_attr(docsrs, doc(cfg(feature = "did")))]
pub use did::{
AgentDid, CredentialSubject, DidDocument, VcProof, VerifiableCredential, VerificationMethod,
};
#[cfg(feature = "zk")]
#[cfg_attr(docsrs, doc(cfg(feature = "zk")))]
pub use zk::{anchor_hash, ZkChainCommitment, ZkProofMode, ZkTraceProof};
#[cfg(feature = "anchor")]
#[cfg_attr(docsrs, doc(cfg(feature = "anchor")))]
pub use anchor::{AnchorNetwork, AnchoredReceipt};
#[cfg(feature = "negotiate")]
#[cfg_attr(docsrs, doc(cfg(feature = "negotiate")))]
pub use negotiate::{CapabilityRequest, DelegationAcceptance, DelegationOffer, NegotiationResult};
#[cfg(feature = "swarm")]
#[cfg_attr(docsrs, doc(cfg(feature = "swarm")))]
pub use swarm::{SwarmMember, SwarmPassport, SwarmRole};
#[cfg(feature = "governance")]
#[cfg_attr(docsrs, doc(cfg(feature = "governance")))]
pub use governance::{
ApprovalGate, ApprovalToken, AuditReport, GovernancePolicy, KeyRotationPolicy,
};
#[cfg(feature = "async")]
#[cfg_attr(docsrs, doc(cfg(feature = "async")))]
pub use context::AsyncA1Context;
#[cfg(feature = "async")]
#[cfg_attr(docsrs, doc(cfg(feature = "async")))]
pub use registry::r#async::{
AsyncNonceStore, AsyncRateLimitStore, AsyncRevocationStore, SyncNonceAdapter,
SyncRevocationAdapter,
};
#[cfg(feature = "async")]
#[cfg_attr(docsrs, doc(cfg(feature = "async")))]
pub use audit::r#async::{AsyncAuditSink, SyncAuditAdapter};
#[cfg(feature = "async")]
#[cfg_attr(docsrs, doc(cfg(feature = "async")))]
pub use identity::AsyncSigner;