pub enum KernelObservation {
Show 28 variants
Compressed {
turn: u32,
action: KernelPressureAction,
rho_after: f64,
summary: Option<String>,
archived: Vec<Message>,
tier_hint: Option<String>,
invalidates_prefix_at: Option<usize>,
},
Renewed {
sprint: u32,
},
KnowledgeSwept {
turn: u32,
removed_keys: Vec<String>,
tokens_freed: u32,
},
KnowledgeBudgetExceeded {
turn: u32,
used: u32,
budget: u32,
},
Rollbacked {
turn: u32,
checkpoint_history_len: u32,
reason: Option<RollbackReason>,
},
CapabilityChanged {
turn: u32,
added: Vec<String>,
removed: Vec<String>,
change_kind: Option<String>,
capability_id: Option<String>,
version: Option<String>,
mounted_by: Option<String>,
mount_reason: Option<String>,
},
MilestoneAdvanced {
turn: u32,
phase_id: String,
capabilities_unlocked: Vec<String>,
},
MilestoneBlocked {
turn: u32,
phase_id: String,
reason: String,
},
CheckpointTaken {
turn: u32,
history_len: u32,
},
RepeatFuseTripped {
turn: u32,
signature: String,
count: u32,
action: String,
},
CriteriaGateFired {
turn: u32,
criteria: Vec<String>,
},
EntropySample {
turn: u32,
score: f64,
score_version: u32,
rho: f64,
repeat_pressure: f64,
failure_rate: f64,
rollbacks_in_window: u32,
window_turns: u32,
},
EntropyAlert {
turn: u32,
score: f64,
threshold: f64,
},
AgentProcessChanged {
turn: u32,
agent_id: String,
parent_session_id: String,
role: String,
isolation: String,
context_inheritance: String,
state: String,
permitted_capability_ids: Vec<String>,
result_termination: Option<String>,
},
WorkflowBatchSpawned {
turn: u32,
nodes: Vec<WorkflowSpawnInfo>,
budget: Option<WorkflowBudget>,
},
WorkflowCompleted {
turn: u32,
completed: Vec<String>,
failed: Vec<String>,
},
AgentPreempted {
turn: u32,
agent_ids: Vec<String>,
reason: String,
},
RoundPaced {
turn: u32,
round: u32,
decision: PaceDecision,
},
WorkflowNodesSubmitted {
turn: u32,
base: u32,
count: u32,
submitter: Option<String>,
},
ToolGated {
turn: u32,
call_id: String,
tool: String,
reason: String,
},
SignalDisposed {
turn: u32,
signal_id: String,
disposition: String,
queue_depth: u32,
},
BudgetExceeded {
turn: u32,
budget: String,
},
Suspended {
turn: u32,
reason: String,
pending_calls: Vec<String>,
},
Resumed {
turn: u32,
approved: Vec<String>,
denied: Vec<String>,
},
MemoryWritten {
turn: u32,
memory_id: String,
memory_kind: String,
size_bytes: u32,
},
MemoryValidationFailed {
turn: u32,
memory_id: String,
error: String,
},
MemoryQueried {
turn: u32,
query_context: String,
requested_k: usize,
requires_async_response: bool,
},
LargeResultSpooled {
turn: u32,
call_id: String,
tool: String,
original_size: u32,
preview_size: u32,
spool_ref: Option<String>,
},
}Variants§
Compressed
One compaction = one observation. archived non-empty ⇒ content left working
context (what the retired separate PageOut observation used to duplicate);
tier_hint then names the recommended long-term tier for the archived batch.
Fields
action: KernelPressureActionRenewed
KnowledgeSwept
K1: a boundary sweep of the knowledge partition applied deferred upserts and/or dropped
marked entries. removed_keys lists keyed removals (unkeyed drops count only in
tokens_freed); an upsert-only sweep has empty removed_keys.
KnowledgeBudgetExceeded
K2: the knowledge partition exceeds its configured budget share. Fired at most once per cache generation; the over-budget unpinned entries are already marked for the next boundary sweep. Pinned/skill weight that cannot be evicted keeps the warning standing.
Rollbacked
CapabilityChanged
Fields
MilestoneAdvanced
MilestoneBlocked
CheckpointTaken
Checkpoint taken at the start of a turn transaction (before LLM call).
RepeatFuseTripped
O6: the repeat fuse tripped — the same turn signature (non-meta tool name AND args) was
re-issued countx consecutively. action = "deny" (turn rolled back, directive note fed
back) or "terminate" (run ends no_progress after one final report turn). Additive ABI.
CriteriaGateFired
O4: the turn-end criteria gate fired — the model tried to finish while acceptance criteria
stand; the kernel injected one self-check turn before accepting Completed. Additive ABI.
EntropySample
Session-entropy sample at a completed turn boundary (the heartbeat watch source).
One per completed turn, unconditional — like CheckpointTaken. The component
vector is the contract; score is a versioned default fold (score_version).
See scheduler::entropy. Additive ABI.
Fields
EntropyAlert
The opt-in entropy watch tripped: score crossed threshold while armed and
cooled down (EntropyWatchConfig). Correlate components via the same-turn
EntropySample. Additive ABI.
AgentProcessChanged
Kernel process table changed for a spawned sub-agent.
Fields
WorkflowBatchSpawned
W0-ABI: a workflow batch was spawned — each node’s spawn descriptor (agent id + goal + role/isolation/inheritance) so the SDK can run the kernel-generated nodes.
Fields
nodes: Vec<WorkflowSpawnInfo>budget: Option<WorkflowBudget>G4 budget-as-signal: the workflow’s remaining headroom under the active quota at spawn time, so a coordinator node can scale its next submission. Additive: omitted when no resource quota is installed (nothing to report).
WorkflowCompleted
W0-ABI: a workflow finished (all nodes terminal, or stalled by a gated dependency).
AgentPreempted
#2-B: a high-urgency InterruptNow signal preempted in-flight work. The kernel has already
marked these agents Done(UserAbort) and reclaimed the root to reason about the interrupt; the
SDK must ABORT the listed in-flight child runs and discard their results (do NOT feed their
SubAgentCompleted). Additive variant (agent_preempted) — byte-identical for SDKs that never
receive it.
RoundPaced
③ loop-agent pacing: the kernel adjudicated a pace proposal for this round.
WorkflowNodesSubmitted
R3-1: a runtime node submission was appended to the in-flight DAG at base
(the graph length before the append). The SDK records base on the
workflow_nodes_submitted session event so resume can re-apply the batch at
the exact original indices (gap-filling any interleaved runtime children).
Fields
ToolGated
A tool call needs user approval (governance AskUser). Not blocked by the
kernel — the SDK must obtain approval before executing the named call.
SignalDisposed
An inbound signal was routed by the in-kernel attention policy.
BudgetExceeded
A budget axis (turns / tokens / wall-time) was exhausted.
Suspended
Loop entered Suspended state (awaiting human approval or sub-agent).
Resumed
Loop resumed from Suspended state.
MemoryWritten
Memory entry written successfully (Phase 7).
MemoryValidationFailed
Memory validation failed (Phase 7).
MemoryQueried
Memory query request (Phase 7).
LargeResultSpooled
Large tool result spooled (Layer 1).
Trait Implementations§
Source§impl Clone for KernelObservation
impl Clone for KernelObservation
Source§fn clone(&self) -> KernelObservation
fn clone(&self) -> KernelObservation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more