pub enum Action {
Shell {
command: String,
},
ForeignShell {
shell: String,
command: String,
},
FsRead {
path: String,
},
FsWrite {
path: String,
},
Net {
url: String,
},
Fetch {
url: String,
},
Patch {
writes: Vec<String>,
},
ReadFiles {
paths: Vec<String>,
},
McpTool {
name: String,
reads: Vec<String>,
writes: Vec<String>,
hosts: Vec<String>,
unchecked: Option<String>,
},
}Expand description
A tool call as seen from a host, before classification.
Host adapters (openmoat-hosts) translate each payload into exactly one of
these. Adapters never decide.
Variants§
Shell
A shell command string as the host would execute it. A shell command line, exactly as the host would run it.
ForeignShell
A command for a shell the classifier cannot read (Claude Code PowerShell).
Never classified, so always unparseable: an ask, never an allow.
Fields
FsRead
A direct file read through a host tool (e.g. Claude Code Read).
A file read by a host tool (Read, Glob, Grep, LSP, beforeReadFile).
FsWrite
A direct file write/edit through a host tool.
A file write or edit by a host tool (Edit, Write, NotebookEdit).
Net
A network connection a host tool opens and may send data over
(Claude Code Monitor WebSocket).
Fetch
A URL read by a host’s own fetch tool (Claude Code WebFetch): a
request the agent cannot attach a body to, judged by fetch and net
rules (ADR-017).
Patch
A patch that edits several files in one call (Codex apply_patch):
every path it adds, updates, deletes or moves to is written.
Files changed by one multi-file patch (Codex apply_patch).
ReadFiles
Files one tool call reads together (Claude Code SendFile, which sends
their contents to another session): every path is read.
McpTool
An MCP tool call, mcp__<server>__<tool>. Adapters that understand a
server’s arguments add the paths and hosts the call touches so the
usual fs.* and net rules apply to it as well.
Fields
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Action
impl<'de> Deserialize<'de> for Action
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>,
impl Eq for Action
impl StructuralPartialEq for Action
Auto Trait Implementations§
impl Freeze for Action
impl RefUnwindSafe for Action
impl Send for Action
impl Sync for Action
impl Unpin for Action
impl UnsafeUnpin for Action
impl UnwindSafe for Action
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<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.