enact-core 0.0.2

Core agent runtime for Enact - Graph-Native AI agents
Documentation
//! Context module - Execution context types
//!
//! This module provides the context types passed through all execution:
//!
//! - **TenantContext**: Multi-tenant isolation boundary (REQUIRED)
//! - **RuntimeContext**: The execution spine
//! - **TraceContext**: W3C distributed tracing
//! - **InvocationContext**: Agent/tool invocation context
//!
//! ## Key Invariant: TenantContext is Required
//!
//! Every execution MUST have a TenantContext. This ensures:
//! - Multi-tenant isolation
//! - Resource limit enforcement
//! - Audit compliance
//! - Billing attribution
//!
//! ## Usage
//! ```ignore
//! use enact_core::context::{TenantContext, RuntimeContext};
//! use enact_core::kernel::{ExecutionId, ParentLink, TenantId, UserId};
//!
//! // Create tenant context (REQUIRED)
//! let tenant = TenantContext::new(TenantId::from("tenant_acme"))
//!     .with_user(UserId::from("usr_alice"));
//!
//! // Create runtime context with tenant
//! let ctx = RuntimeContext::new(
//!     ExecutionId::new(),
//!     ParentLink::from_user_message("msg_123"),
//!     tenant,
//! );
//! ```

mod execution_context;
mod invocation;
mod tenant;
mod trace;

// Tenant context (REQUIRED for every execution)
pub use tenant::{ResourceLimits, TenantContext};

// Runtime context (the spine)
pub use execution_context::{RuntimeContext, RuntimeContextBuilder, SessionContext};

// Trace context (OpenTelemetry)
pub use trace::TraceContext;

// Invocation context
pub use invocation::{InvocationContext, InvocationServices};