pub enum RewriteAction {
GroundedRetry {
evidence_summary: String,
},
ContractRepair {
fields: Vec<String>,
},
CapabilityPromotion {
from_tier: ModelTier,
to_tier: ModelTier,
},
SensorRecovery {
degraded_stages: Vec<String>,
},
DegradedValidationStop {
reason: String,
},
NodeSplit {
proposed_children: Vec<String>,
},
InterfaceInsertion {
boundary: String,
},
SubgraphReplan {
affected_nodes: Vec<String>,
},
UserEscalation {
evidence: String,
},
}Expand description
PSP-5 Phase 5: Repair action chosen by the orchestrator after classifying non-convergence.
Actions are ordered from least destructive (retry with evidence) to most disruptive (user escalation). The orchestrator picks the first action that is safe given the current evidence.
Variants§
GroundedRetry
Re-attempt the node with a correction prompt grounded in verifier output.
ContractRepair
Refine or tighten the node’s behavioral contract or interface seal.
CapabilityPromotion
Promote the node to a higher-capability model tier.
SensorRecovery
Attempt to recover a degraded sensor or stop with explicit degradation.
DegradedValidationStop
Stop the node with an explicit degraded-validation marker rather than claiming false stability.
NodeSplit
Split the current node by ownership closure into smaller nodes.
InterfaceInsertion
Insert an interface node between this node and its dependents.
SubgraphReplan
Re-plan a local subgraph rooted at the failing node.
UserEscalation
Escalate to the user with stored evidence (last resort).
Trait Implementations§
Source§impl Clone for RewriteAction
impl Clone for RewriteAction
Source§fn clone(&self) -> RewriteAction
fn clone(&self) -> RewriteAction
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RewriteAction
impl Debug for RewriteAction
Source§impl<'de> Deserialize<'de> for RewriteAction
impl<'de> Deserialize<'de> for RewriteAction
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for RewriteAction
impl Display for RewriteAction
Source§impl PartialEq for RewriteAction
impl PartialEq for RewriteAction
Source§impl Serialize for RewriteAction
impl Serialize for RewriteAction
impl Eq for RewriteAction
impl StructuralPartialEq for RewriteAction
Auto Trait Implementations§
impl Freeze for RewriteAction
impl RefUnwindSafe for RewriteAction
impl Send for RewriteAction
impl Sync for RewriteAction
impl Unpin for RewriteAction
impl UnsafeUnpin for RewriteAction
impl UnwindSafe for RewriteAction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.