Skip to main content

astrid_core/
lib.rs

1//! Astrid Core - Foundation types for the Astrid secure agent runtime.
2//!
3//! This crate provides:
4//! - Identity management across platforms
5//! - Uplink types for capsule integration
6//! - Approval and elicitation primitives
7//! - Capsule ABI types (WASM host-guest interface)
8//! - Common types used throughout the runtime
9//! - Retry configuration with exponential backoff
10
11#![deny(unsafe_code)]
12#![deny(missing_docs)]
13#![deny(clippy::all)]
14#![deny(unreachable_pub)]
15#![deny(clippy::unwrap_used)]
16#![cfg_attr(test, allow(clippy::unwrap_used))]
17
18pub mod prelude;
19
20pub mod capsule_abi;
21pub mod dirs;
22pub mod elicitation;
23pub mod env_policy;
24pub mod identity;
25pub mod retry;
26pub mod session_token;
27pub mod types;
28pub mod uplink;
29pub(crate) mod utils;
30
31pub use elicitation::{
32    ElicitationAction, ElicitationRequest, ElicitationResponse, ElicitationSchema, SelectOption,
33    UrlElicitationRequest, UrlElicitationResponse, UrlElicitationType,
34};
35pub use retry::RetryConfig;
36pub use types::{
37    AgentId, ApprovalDecision, ApprovalOption, ApprovalRequest, Permission, RiskLevel, SessionId,
38    Timestamp, TokenId,
39};
40pub use utils::truncate_to_boundary;
41
42// Identity types
43pub use identity::{AstridUserId, FrontendLink, normalize_platform};
44
45// Uplink types
46pub use uplink::{
47    InboundMessage, MAX_UPLINKS_PER_CAPSULE, UplinkCapabilities, UplinkDescriptor, UplinkError,
48    UplinkId, UplinkProfile, UplinkResult, UplinkSource,
49};