Skip to main content

Crate astrid_core

Crate astrid_core 

Source
Expand description

Astrid Core - Foundation types for the Astrid secure agent runtime.

This crate provides:

  • Identity management across platforms
  • Uplink types for capsule integration
  • Approval and elicitation primitives
  • Common types used throughout the runtime
  • Retry configuration with exponential backoff

Re-exports§

pub use capability_grammar::CapabilityGrammarError;
pub use capability_grammar::MAX_CAPABILITY_LEN;
pub use capability_grammar::capability_matches;
pub use capability_grammar::validate_capability;
pub use elicitation::ElicitationAction;
pub use elicitation::ElicitationRequest;
pub use elicitation::ElicitationResponse;
pub use elicitation::ElicitationSchema;
pub use elicitation::SelectOption;
pub use elicitation::UrlElicitationRequest;
pub use elicitation::UrlElicitationResponse;
pub use elicitation::UrlElicitationType;
pub use groups::BUILTIN_ADMIN;
pub use groups::BUILTIN_AGENT;
pub use groups::BUILTIN_RESTRICTED;
pub use groups::Group;
pub use groups::GroupConfig;
pub use groups::GroupConfigError;
pub use groups::GroupConfigResult;
pub use principal::PrincipalId;
pub use principal::PrincipalIdError;
pub use profile::AuthConfig;
pub use profile::AuthMethod;
pub use profile::BACKGROUND_PROCESSES_UPPER_BOUND;
pub use profile::CURRENT_PROFILE_VERSION;
pub use profile::DEFAULT_MAX_BACKGROUND_PROCESSES;
pub use profile::DEFAULT_MAX_IPC_THROUGHPUT_BYTES;
pub use profile::DEFAULT_MAX_MEMORY_BYTES;
pub use profile::DEFAULT_MAX_STORAGE_BYTES;
pub use profile::DEFAULT_MAX_TIMEOUT_SECS;
pub use profile::MAX_GROUP_NAME_LEN;
pub use profile::NetworkConfig;
pub use profile::PrincipalProfile;
pub use profile::ProcessConfig;
pub use profile::ProfileError;
pub use profile::ProfileResult;
pub use profile::Quotas;
pub use profile::TIMEOUT_SECS_UPPER_BOUND;
pub use retry::RetryConfig;
pub use types::AgentId;
pub use types::ApprovalDecision;
pub use types::ApprovalOption;
pub use types::ApprovalRequest;
pub use types::Permission;
pub use types::SessionId;
pub use types::Timestamp;
pub use types::TokenId;
pub use identity::AstridUserId;
pub use identity::normalize_platform;
pub use uplink::InboundMessage;
pub use uplink::UplinkCapabilities;
pub use uplink::UplinkDescriptor;
pub use uplink::UplinkError;
pub use uplink::UplinkId;
pub use uplink::UplinkProfile;
pub use uplink::UplinkResult;
pub use uplink::UplinkSource;

Modules§

capability_grammar
Shared grammar and validation for static capability strings (issue #670).
dirs
Directory scaffolding for Astrid home and workspace directories.
elicitation
Elicitation types for MCP server-initiated user input requests.
env_policy
Environment variable security policy for spawned child processes.
groups
Static group-to-capability configuration (issue #670).
identity
Astrid User Identity
kernel_api
Kernel management API request and response types.
prelude
Prelude module - commonly used types for convenient import.
principal
Principal identity for multi-user deployments.
profile
Per-principal profile: enablement, auth, resource quotas, egress policy.
retry
Retry utilities with exponential backoff.
session_token
Session token for Unix socket authentication.
types
Common types used throughout Astrid.
uplink
Uplink abstraction - unified types for platforms, capsules, and bridges.

Functions§

truncate_to_boundary
Truncate a string to at most max_bytes, ensuring the cut falls on a UTF-8 character boundary. Returns the original string if already short enough.