Skip to main content

ModuleExecutor

Struct ModuleExecutor 

Source
pub struct ModuleExecutor {
    pub charter: Charter,
    pub scope: ScopeManager,
    pub max_risk: RiskLevel,
    pub policy_set: PolicySet,
    pub sandbox_required: bool,
    pub tier: Tier,
    pub audit: HashChain,
    pub evidence: Vec<Evidence>,
    pub traces: Vec<ReasoningTrace>,
    pub memories: Vec<MemoryEntry>,
    pub stage: GeeStage,
}
Expand description

The execution seam of ICEBOX and its fundamental execution primitive: every action runs as a Governed Execution Environment (GEE). This type owns the GEE lifecycle (policy evaluation, sandbox provisioning, approval gating, execution, evidence collection, audit, validation, and teardown) and keeps the state required to enforce it.

Fields§

§charter: Charter§scope: ScopeManager§max_risk: RiskLevel§policy_set: PolicySet§sandbox_required: bool§tier: Tier§audit: HashChain§evidence: Vec<Evidence>§traces: Vec<ReasoningTrace>§memories: Vec<MemoryEntry>§stage: GeeStage

Implementations§

Source§

impl ModuleExecutor

Source

pub fn new(charter: Charter, scope: ScopeManager, max_risk: RiskLevel) -> Self

Source

pub fn policy(&self, context: PolicyContext) -> ConfigPolicy

Source

pub fn recent_traces(&self, n: usize) -> Vec<ReasoningTrace>

Source

pub fn recent_memories(&self, n: usize) -> Vec<MemoryEntry>

Source

pub fn remember(&mut self, kind: MemoryKind, text: impl Into<String>)

Source

pub fn record_trace(&mut self, trace: ReasoningTrace)

Source

pub fn recent_decisions(&self, n: usize) -> Vec<DecisionRecord>

Source

pub fn decisions(&self) -> Vec<DecisionRecord>

Source

pub fn append_decision(&mut self, record: DecisionRecord) -> u64

Source

pub fn verify_audit(&self) -> bool

Source

pub fn audit_chain(&self) -> &HashChain

Source

pub fn govern_action( &mut self, action: &GovernAction, context: PolicyContext, ) -> GovernResult

Pure governance check: evaluate policy, scope, and approval gates without executing the action. Returns a decision the caller acts upon. This is the single-entry “Stripe-style” govern() call.

Source

pub fn record_action( &mut self, action: &GovernAction, outcome: ActionOutcome, ) -> RecordResult

Record completion of a prior governed action. Appends evidence and an audit-chain entry, then returns the chain tip.

Source

pub fn recent_evidence(&self, n: usize) -> Vec<Evidence>

Source

pub async fn preflight( &self, loaded: &LoadedModule, target: &str, destructive_override: Option<bool>, approved: bool, context: PolicyContext, ) -> Preflight

Source

pub async fn execute( &mut self, loaded: &mut LoadedModule, target: &str, destructive_override: Option<bool>, approved: bool, context: PolicyContext, job_id: Option<u64>, sandbox: bool, engine: Option<SandboxEngineType>, ) -> Result<ModuleResult, ExecutorError>

Trait Implementations§

Source§

impl Debug for ModuleExecutor

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more