1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! 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,
//! );
//! ```
// Tenant context (REQUIRED for every execution)
pub use ;
// Runtime context (the spine)
pub use ;
// Trace context (OpenTelemetry)
pub use TraceContext;
// Invocation context
pub use ;