pub struct CommandToolDecisionData {
pub blockid: String,
pub request_id: String,
pub outcome: String,
pub scope: String,
pub feedback: Option<String>,
}Expand description
Data for tooldecision — frontend’s reply to a per-tool-call
permission gate. Today the backend validates the outcome and
logs the decision; actual delivery to the agent CLI is deferred
to PR-3b/PR-4 (rules persistence vs. interactive subprocess
path). Spec:
docs/specs/SPEC_DECISION_PROMPT_2026_04_24.md §9.1.
Fields§
§blockid: String§request_id: StringOpaque id matched against a PermissionRequestEvent. Echoed
in the audit log so the audit trail can be cross-referenced.
outcome: String“allow” or “deny”. Anything else returns an error.
scope: String“once” / “session” / “project” / “global”. Captured so the rules-persistence layer (PR-3b) can write a matching rule without re-asking the user.
feedback: Option<String>User-typed denial reason. Optional. Future PR will relay this verbatim into the agent’s next prompt.
Trait Implementations§
Source§impl Clone for CommandToolDecisionData
impl Clone for CommandToolDecisionData
Source§fn clone(&self) -> CommandToolDecisionData
fn clone(&self) -> CommandToolDecisionData
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CommandToolDecisionData
impl Debug for CommandToolDecisionData
Source§impl Default for CommandToolDecisionData
impl Default for CommandToolDecisionData
Source§fn default() -> CommandToolDecisionData
fn default() -> CommandToolDecisionData
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for CommandToolDecisionData
impl<'de> Deserialize<'de> for CommandToolDecisionData
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for CommandToolDecisionData
impl RefUnwindSafe for CommandToolDecisionData
impl Send for CommandToolDecisionData
impl Sync for CommandToolDecisionData
impl Unpin for CommandToolDecisionData
impl UnwindSafe for CommandToolDecisionData
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.