#[non_exhaustive]pub enum AtomicAction {
Shell {
argv: Vec<String>,
},
Pipeline {
argv: Vec<String>,
},
FsRead {
path: String,
},
FsWrite {
path: String,
},
Net {
host: String,
},
Fetch {
host: String,
},
NetWord {
host: String,
},
WebSearch {
query: String,
},
UnknownTool {
host: String,
tool: String,
},
EnvRead {
name: String,
},
EnvSet {
name: String,
},
McpTool {
name: String,
},
}Expand description
The primitive operations an Action decomposes into.
One shell command typically yields several: the command itself, every path it touches, every host it may contact, every env var it reads or sets.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Shell
Normalised argv of one (sub-)command.
Pipeline
A whole pipeline / list (a | b && c) with separators kept as tokens, so
rules such as curl * | sh can match across sub-commands. Never carries
a default verdict (see engine.rs).
FsRead
Absolute path in slash-separated canonical form (~, ${project} and
cwd already applied).
FsWrite
A file write, create, delete or move.
Net
Host name only (no scheme, no port).
Fetch
The host of a URL a fetch tool reads; matched by fetch and net rules.
NetWord
A shell word with no scheme that looks like a host, outside the arguments
of a program that names hosts (ADR-025): it may be a JSON path or a method
call (check_runs.0.id, app.run). Matched by net rules; when none
matches, the policy’s catch-all decides it, not defaults.net.
WebSearch
A web search query; no rule list names it, so defaults decide it.
UnknownTool
A host tool the adapter cannot classify; only defaults decide it.
EnvRead
An environment variable read ($NAME, printenv NAME).
EnvSet
An environment variable set (NAME=value, export NAME=…).
McpTool
An MCP tool invocation.