pub struct Gate4AgentKernel { /* private fields */ }Expand description
Owns the provider catalog and the single session-state writer.
Phase order is fixed: clock advance, ordered ingress, control observations, tool observations, effect/completion drains, atomic snapshot, then ordered event drain. No phase awaits or performs external work. The kernel is intentionally not cloneable: cloning would fork provider binding and sequence authority while preserving otherwise valid runtime identities.
Implementations§
Source§impl Gate4AgentKernel
impl Gate4AgentKernel
pub fn new(catalog: AgentRegistry) -> Self
pub fn with_tool_providers( catalog: AgentRegistry, providers: impl IntoIterator<Item = CapabilityProviderDescriptor>, ) -> Result<Self, ToolEngineError>
pub fn with_builtin_catalog() -> Self
pub fn step( &mut self, commands: impl IntoIterator<Item = CommandEnvelope>, observations: impl IntoIterator<Item = ObservationEnvelope>, ) -> KernelStep
Sourcepub fn step_control_plane(
&mut self,
ingress: impl IntoIterator<Item = BackendIngress>,
control_observations: impl IntoIterator<Item = ObservationEnvelope>,
) -> KernelStep
pub fn step_control_plane( &mut self, ingress: impl IntoIterator<Item = BackendIngress>, control_observations: impl IntoIterator<Item = ObservationEnvelope>, ) -> KernelStep
Reduces one backend tick without performing external work.
The phase order is fixed: advance the kernel-owned logical clock; reduce ordered control/tool ingress; reduce control observations while synchronizing the affected tool instance after every observation; reduce provider-bound tool observations; then drain effects, completions, snapshots, and events. A tool integration failure blocks tool ingress and effect release for the rest of the tick.