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).