Skip to main content

IRProgram

Struct IRProgram 

Source
pub struct IRProgram {
Show 60 fields pub node_type: &'static str, pub source_line: u32, pub source_column: u32, pub personas: Vec<IRPersona>, pub contexts: Vec<IRContext>, pub anchors: Vec<IRAnchor>, pub tools: Vec<IRToolSpec>, pub memories: Vec<IRMemory>, pub types: Vec<IRType>, pub flows: Vec<IRFlow>, pub runs: Vec<IRRun>, pub imports: Vec<IRImport>, pub agents: Vec<IRAgent>, pub shields: Vec<IRShield>, pub windows: Vec<IRWindow>, pub budgets: Vec<IRBudget>, pub daemons: Vec<IRDaemon>, pub ots_specs: Vec<IROts>, pub pix_specs: Vec<IRPix>, pub ledger_specs: Vec<IRLedger>, pub corpus_specs: Vec<IRCorpus>, pub psyche_specs: Vec<IRPsyche>, pub mandate_specs: Vec<IRMandate>, pub lambda_data_specs: Vec<IRLambdaData>, pub compute_specs: Vec<IRCompute>, pub axonstore_specs: Vec<IRAxonStore>, pub endpoints: Vec<IRAxonEndpoint>, pub extensions: Vec<IRExtension>, pub dataspace_specs: Vec<IRDataspace>, pub resources: Vec<IRResource>, pub fabrics: Vec<IRFabric>, pub manifests: Vec<IRManifest>, pub observations: Vec<IRObserve>, pub intention_tree: Option<IRIntentionTree>, pub reconciles: Vec<IRReconcile>, pub leases: Vec<IRLease>, pub ensembles: Vec<IREnsemble>, pub sessions: Vec<IRSession>, pub topologies: Vec<IRTopology>, pub immunes: Vec<IRImmune>, pub reflexes: Vec<IRReflex>, pub heals: Vec<IRHeal>, pub components: Vec<IRComponent>, pub views: Vec<IRView>, pub channels: Vec<IRChannel>, pub sockets: Vec<IRSocket>, pub observables: Vec<IRObservable>, pub witnesses: Vec<IRWitness>, pub upstreams: Vec<IRUpstream>, pub cors_policies: Vec<IRCors>, pub caches: Vec<IRCache>, pub credentials: Vec<IRCredential>, pub savants: Vec<IRSavant>, pub documents: Vec<IRDocument>, pub deliveries: Vec<IRDeliver>, pub notifications: Vec<IRNotify>, pub synths: Vec<IRSynth>, pub scopes: Vec<IRScope>, pub effects: Vec<IREffectDeclaration>, pub modules: Vec<IRModuleProvenance>,
}
Expand description

v2.67.0 — Clone is additive and every member IR type already derives it. The Cognitive-I/O supervisor owns the compiled program it drives (it outlives the deploy call that built it), and a lifetime-bound supervisor would have to be threaded through ServerState for no benefit.

Fields§

§node_type: &'static str§source_line: u32§source_column: u32§personas: Vec<IRPersona>§contexts: Vec<IRContext>§anchors: Vec<IRAnchor>§tools: Vec<IRToolSpec>§memories: Vec<IRMemory>§types: Vec<IRType>§flows: Vec<IRFlow>§runs: Vec<IRRun>§imports: Vec<IRImport>§agents: Vec<IRAgent>§shields: Vec<IRShield>§windows: Vec<IRWindow>

v2.27.0 — temporal execution-window guards.

§budgets: Vec<IRBudget>

v2.69.0 — top-level budget declarations. A daemon’s anonymous budget stays on the daemon; these govern EVERY flow that calls the tools they name, including the HTTP endpoints adopters actually deploy.

§daemons: Vec<IRDaemon>§ots_specs: Vec<IROts>§pix_specs: Vec<IRPix>§ledger_specs: Vec<IRLedger>

v2.12.0 — audit-chain (ledger) declarations. Distinct from pix_specs (the retrieval navigator); a ledger binds a hash-linked recorder to an audited surface.

§corpus_specs: Vec<IRCorpus>§psyche_specs: Vec<IRPsyche>§mandate_specs: Vec<IRMandate>§lambda_data_specs: Vec<IRLambdaData>§compute_specs: Vec<IRCompute>§axonstore_specs: Vec<IRAxonStore>§endpoints: Vec<IRAxonEndpoint>§extensions: Vec<IRExtension>

v2.5.0 — closed-catalog extension declarations (compiled). #[serde(skip)] so the field is NOT emitted into the IR JSON — this keeps the static IR-JSON drift-gate fixtures green without regenerating them (the pattern dataspace_specs also used until v2.63.0 un-skipped it). The in-memory field feeds the v2.5.0 type-checker + v2.5.0 PCC (both read &IRProgram); soundness invariant #1 holds via SOURCE re-derivation — both the prover and the verifier read the source-derived IR, which carries the extensions. v2.5.0 hardening (optional): un-skip + regenerate fixtures + bind extensions into the PCC artifact_digest (today the digest omits them; the witness still binds them by re-derivation). Deterministically sorted by name at the end of IR generation (v2.5.0 founder refinement B) so multi-file declaration order can never perturb the proof-bundle hash.

§dataspace_specs: Vec<IRDataspace>

v2.63.0 — the compiled dataspace schemas, SERIALIZED into the IR JSON (un-skipped). History: this field was #[serde(skip)] for byte-identical parity with the retired Python reference frontend (section 8.2.h.1) — which meant the runtime literally could not see a declared dataspace (the v2.63.0 ground-truth finding). The parity constraint is gone; the deploy hook walks this field to instantiate the deterministic columnar engine’s stores. Additive for consumers: no IR deserializer uses deny_unknown_fields (verified 2026-07-12), and IRProgram is Serialize-only — consumers re-derive from source.

§resources: Vec<IRResource>

v1.1.0 — I/O cognitivo primitives (compiled).

§fabrics: Vec<IRFabric>§manifests: Vec<IRManifest>§observations: Vec<IRObserve>§intention_tree: Option<IRIntentionTree>

v1.1.0 (Free Monad root) — populated when the program declares manifests/observes. None ⇒ serialises as null (matches Python when the field is None).

§reconciles: Vec<IRReconcile>

v1.1.0 — Control cognitivo primitives (compiled).

§leases: Vec<IRLease>§ensembles: Vec<IREnsemble>§sessions: Vec<IRSession>

v1.1.0 — Topology + Session (compiled).

§topologies: Vec<IRTopology>§immunes: Vec<IRImmune>

v1.1.0 — Immune system (compiled).

§reflexes: Vec<IRReflex>§heals: Vec<IRHeal>§components: Vec<IRComponent>

v1.3.1 — UI cognitiva declarativa (compiled).

§views: Vec<IRView>§channels: Vec<IRChannel>

v1.6.0 — Mobile typed channels (compiled).

§sockets: Vec<IRSocket>

v2.3.0 — typed WebSocket transports (compiled). Each carries its referenced session protocol + the credit-window backpressure so axon-rs can realise the typed endpoint over a tokio WebSocket.

§observables: Vec<IRObservable>

v2.4.0 — Pauli-sum observable declarations (compiled). Each carries its real-coefficient × Pauli-string terms so axon-rs can build the Hermitian measurement operator M = Σ cₖ Pₖ a quant block measures against. #[serde(skip)] (like extensions / dataspace_specs) so the static IR-JSON drift fixtures stay green; the in-memory field feeds the v2.4.0 checker + the v2.4.0 runtime. The checker resolves quant(observable: …) against the AST symbol table, not this field.

§witnesses: Vec<IRWitness>

v2.23.0 — Advantage-Witness declarations. skip_serializing_if = empty keeps a witness-less program’s IR JSON byte-identical (zero IR-SHA drift, the v2.4.0/v2.21.0 pattern); when present it rides the IR to the enterprise deploy/runtime evaluator (v2.23.0+).

§upstreams: Vec<IRUpstream>

v2.37.0 — outbound vendor connections (compiled). Each carries its axon-facing session binding (protocol/role), the per-tenant config keys (resolve/secret), the auth handshake, the total wire↔session projection (map) and the reconnect/overflow policies, so axon-rs can dial + transcode without vendor-specific code. skip_serializing_if = empty keeps an upstream-less program’s IR JSON byte-identical (zero IR-SHA drift — the standing v2.33.0 discipline).

§cors_policies: Vec<IRCors>

v2.38.0 — named, referenced browser-origin policies. skip_serializing_if = empty keeps a cors-less program’s IR JSON byte-identical (zero IR-SHA drift — the standing v2.33.0 discipline).

§caches: Vec<IRCache>

v2.40.0 — named, referenced result-memoization policies. Same skip_serializing_if = empty IR-SHA discipline as cors_policies.

§credentials: Vec<IRCredential>

v2.46.0 — ephemeral-credential contracts (credential { ttl: grants: }), minted at runtime by the mint flow verb under the attenuation law (authority_only_attenuates). Same skip_serializing_if = empty IR-SHA discipline.

§savants: Vec<IRSavant>

v2.42.0 — long-horizon autonomous research primitives (compiled). Each carries its domain, cognition params, memory binding, compute budget and mandates so the enterprise engine (v2.42.0+) can drive the active-inference loop. Same skip_serializing_if = empty IR-SHA discipline as caches (a savant-less program’s IR JSON stays byte-identical — zero drift).

§documents: Vec<IRDocument>

v2.53.0 — compiled document declarations. Same skip_serializing_if = empty IR-SHA discipline (a document-less program’s IR JSON stays byte-identical). Consumed by the runtime DocumentRenderer tool + the DocumentProvenanceSoundness PCC class.

§deliveries: Vec<IRDeliver>

v2.60.0 — compiled CRM delivery declarations. Same skip_serializing_if = empty IR-SHA discipline (a delivery-less program’s IR JSON stays byte-identical). Consumed by the runtime delivery dispatch (axon::delivery) + the DeliveryProvenanceSoundness PCC class (T920).

§notifications: Vec<IRNotify>

v2.66.0 — governed human notifications (the third egress dual).

§synths: Vec<IRSynth>

v2.42.0 — dynamic tool-synthesis policies (compiled). Same skip_serializing_if = empty IR-SHA discipline as savants.

§scopes: Vec<IRScope>

v2.43.0 — authorization-scope policies (compiled). Same skip_serializing_if = empty IR-SHA discipline as synths.

§effects: Vec<IREffectDeclaration>

v1.17.0 — algebraic effect declarations (compiled). Each declared effect persists into IR so axon-rs can build the per-effect operation table at startup. The CPS state graph for perform/handle sites lives inline within IRFlow.steps (each IRPerform / IRHandlerFrame carries its assigned state_id / frame_id).

v2.87.0 — THIS FIELD IS NOW POPULATED, from .axon source.

It used to be a mirror of the retired Python frontend’s IRProgram.effects field, kept only so a byte-identical structural parity gate stayed green against an empty effects: []. The Python frontend is gone (the 0-.py north star) and the field outlived it carrying nothing — axon-frontend never emitted a single entry, which is why EffectRuntime was constructible only from its own tests.

v2.87.0 gives it its declarations, from effect E { … } in adopter source. It is the CLOSED catalog the dispatcher validates a perform site’s arity against, and the set the design decision resolves a bare perform Emit(x) over.

⚠️ Reusing this field rather than adding one was a deliberate correction mid-cycle: a parallel effect_specs would have made TWO compiled catalogs of one concept in one artifact — the v2.83.0 defect (a third blame vocabulary) committed knowingly. Ask what already reads a concept BEFORE giving it a new home.

§modules: Vec<IRModuleProvenance>

v2.76.0 — per-module provenance of a LINKED program: for every module the linker merged, its path, origin file, both EMS hashes and the virtual-line window its declarations occupy (the driver renumbers each module’s lines by a base offset so diagnostics and IR source_lines stay globally unambiguous — map back with line − line_base). skip_serializing_if = empty keeps every single-file program’s IR JSON byte-identical (zero IR-SHA drift — the standing v2.33.0 discipline).

Implementations§

Trait Implementations§

Source§

impl Clone for IRProgram

Source§

fn clone(&self) -> IRProgram

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for IRProgram

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Serialize for IRProgram

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more