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<RewriteAction, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<RewriteAction, <__D as Deserializer<'de>>::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
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<Ok, Error>
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.