pub struct IrEffectNode {Show 21 fields
pub id: String,
pub kind: IrEffectKind,
pub binding: Option<String>,
pub required_capabilities: Vec<String>,
pub construct_use: Option<IrConstructUse>,
pub idempotency_key: String,
pub span: SourceSpan,
pub timeout_seconds: Option<u64>,
pub access_grants: Vec<IrAccessGrant>,
pub turn_skills: Vec<String>,
pub on_stream: Option<String>,
pub selection_source: Option<String>,
pub transport_onto: Option<String>,
pub resource: Option<String>,
pub agent: Option<String>,
pub coerce_target: Option<String>,
pub workflow_target: Option<String>,
pub endorsed: bool,
pub declassified: bool,
pub selected_by: Option<(String, String)>,
pub exec_target: Option<IrExecTarget>,
}Fields§
§id: String§kind: IrEffectKind§binding: Option<String>§required_capabilities: Vec<String>§construct_use: Option<IrConstructUse>§idempotency_key: String§span: SourceSpan§timeout_seconds: Option<u64>Creation-anchored deadline from a timeout <duration> clause.
access_grants: Vec<IrAccessGrant>Turn-access grants (with access to …) lowered onto an agent.tell effect as
authority-narrowing metadata (Proposal A). Empty for non-grant effects.
turn_skills: Vec<String>Turn-scoped skills (with skills [...]) pinned onto an agent.tell effect as
provenance (context-assembly Phase 7). Recorded, not enforced — the owned
catalogue stays discover-all. Empty for effects without a skill pin.
on_stream: Option<String>on stream <name> (std.vcs): the tell’s per-turn homing exception.
None = the agent’s declared membership decides.
selection_source: Option<String>The raw selection-slot source of an undo/transport effect
(std.vcs R4). A string LITERAL validates statically against the
selection grammar; a dynamic expression validates at execution.
transport_onto: Option<String>The onto <target> of a transport effect: mainline or a
declared stream, validated post-lowering.
resource: Option<String>The named resource (file store / channel) a direct effect touches, if any —
e.g. the store of a read/write. Surfaced so information-flow analysis can
see rule-body data flows, not just turn-access grants. None for effects
that touch no named resource. Not part of the .ir snapshot.
agent: Option<String>The agent a tell addresses (its target), surfaced so information-flow
analysis can model the turn’s egress to that agent’s provider. None for
non-tell effects. Not part of the .ir snapshot.
coerce_target: Option<String>The coerce declaration this effect invokes, surfaced for the same reason
agent is: it is how the analysis reaches the declaration’s provider
clause and so the endpoint this egress actually reaches. None for
non-coerce effects AND for an inline decide, which names no declaration
and therefore no backend. Not part of the .ir snapshot.
workflow_target: Option<String>The workflow an invoke addresses, surfaced so information-flow analysis can
enumerate and govern invoke membrane ports. None for non-invoke effects.
Not part of the .ir snapshot.
endorsed: boolThe endorsed source marker (DR-0027 I-IFC3): the author declared this effect
(a coerce) an integrity-raising crossing. Surfaced so the trusted surface is
visible at the source crossing point. Not part of the .ir snapshot.
declassified: boolThe declassified source marker (DR-0027 I-IFC3): the author declared this
coerce a confidentiality-lowering crossing (its output schema bounds the
leak). Surfaced for audit. Not part of the .ir snapshot.
selected_by: Option<(String, String)>The innermost case <scrutinee> { <pattern> => … } arm this effect sits in,
as (scrutinee, pattern) — the discriminated-families selector. Lets the
IFC checker apply NMIF-on-the-selector: a crossing (endorsed/declassified)
selected by a low-integrity discriminant is rejected (DR §5.6 / §7.4). None
for effects outside any case. Not part of the .ir snapshot.
exec_target: Option<IrExecTarget>The exec surface form — raw command string vs manifest capability
(spec/std-script.md “Static checks” item 2) — surfaced so check-time
gates (hosted-raw demotion, manifest resolution) classify the effect
from the AST instead of re-scanning rule-body text. None for
non-exec effects. Not part of the .ir snapshot.
Trait Implementations§
Source§impl Clone for IrEffectNode
impl Clone for IrEffectNode
Source§fn clone(&self) -> IrEffectNode
fn clone(&self) -> IrEffectNode
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more