axon/lib.rs
1//! AXON runtime library — exposes the full AXON runtime: compiler
2//! frontend (re-exported from `axon-frontend`), handlers, runtime
3//! primitives, ESK, HTTP/WebSocket servers, persistence, OTS pipelines.
4//!
5//! Used by the `axon` binary and by integration tests.
6//!
7//! # Frontend vs runtime
8//!
9//! §Fase 12.a — the compiler frontend (lexer, parser, AST, type checker,
10//! IR generator, top-level checker, and the closed catalogs used by the
11//! type checker) lives in the sibling crate `axon-frontend`, which has
12//! zero runtime dependencies. This crate re-exports those modules
13//! transparently so every existing caller (76 call sites across 26
14//! files) keeps compiling without changes. The crate `axon-lsp`
15//! consumes `axon-frontend` directly, skipping the runtime surface.
16
17// ── §Fase 12.a — frontend re-exports (transparent to callers) ───────
18pub use axon_frontend::{
19 ast,
20 checker,
21 // §Fase 115 — the Epistemic Module System (resolver · interfaces ·
22 // ECC · linker · cache · driver). Re-exported so the CLI and the
23 // enterprise workspace reach the module pipeline through the single
24 // `axon = …` dep, exactly like the rest of the frontend.
25 compilation_cache,
26 ems,
27 epistemic,
28 epistemic_compat,
29 ir_generator,
30 ir_nodes,
31 module_interface,
32 module_linker,
33 module_resolver,
34 legal_basis,
35 lexer,
36 parser,
37 refinement,
38 // §Fase 41.a — the session-type algebra (duality, regular-coinductive
39 // equality, §41.c credit-refined backpressure, §41.e SSE-polarity
40 // predicate). Re-exported so downstream consumers (the enterprise
41 // server's §Fase 41.f WS surface in `axon-enterprise`) reach it via the
42 // single `axon = …` workspace dep without an extra `axon-frontend`
43 // dependency line.
44 session,
45 // §Fase 41.h — multiparty session types (global types + projection).
46 // The orchestration story for n-agent skill/tool topologies: declare
47 // a `GlobalType`, project per role, drive each role's binary
48 // `SessionType` over the §41.d/41.f runtime — composition stays in
49 // lock-step by construction.
50 multiparty,
51 store_introspect,
52 store_schema,
53 store_schema_manifest,
54 stream_effect,
55 tokens,
56 type_checker,
57 // §Fase 80.f/80.g — the blessed preset catalog + the voice/preset
58 // desugar surface (`axon desugar` renders from these).
59 upstream_presets,
60 voice_desugar,
61};
62
63// `ots_catalog` is the compile-time slug catalog; the runtime `ots`
64// module (below) re-exports these constants for backward compatibility.
65
66// ── Runtime modules (stay in this crate) ────────────────────────────
67
68pub mod anchor_checker;
69pub mod api_keys;
70pub mod audit_trail;
71pub mod auth_middleware;
72pub mod axon_server;
73pub mod backend;
74pub mod backend_error;
75pub mod circuit_breaker;
76pub mod compiler;
77pub mod config_persistence;
78pub mod conversation;
79pub mod cors;
80pub mod cost_estimator;
81pub mod daemon;
82/// §Fase 108.b — the deterministic columnar engine behind `dataspace`
83/// (immutable record batches, validity bitmaps, zone maps, provenance).
84pub mod dataspace_engine;
85/// §Fase 110.b — Governed Human Notification: the canonical contract
86/// (evidence labels, recipient custody, fail-closed provider port).
87pub mod notification;
88pub mod db_pool;
89pub mod deployer;
90pub mod emcp;
91pub mod event_bus;
92/// §Fase 74.c — the durable event outbox (the append-only log + processed
93/// cursor that makes `emit` survive the consumer being down).
94pub mod event_outbox;
95/// §λ-L-E Fase 2 — Handler layer (Free Monad + CPS). Port of `axon/runtime/handlers/`.
96pub mod handlers;
97/// §λ-L-E Fase 3 + 5 runtime primitives. Port of `axon/runtime/` (lease kernel,
98/// reconcile loop, ensemble aggregator, immune kernels).
99pub mod runtime;
100/// §Fase 41.d — the **runtime** of a session-typed dialogue. The static
101/// algebra (`axon_frontend::session`: duality, regular-coinductive
102/// equality, credit-refined backpressure index `!ⁿA.S`) gets a dynamic
103/// counterpart here: an operational state machine (`SessionRuntime`)
104/// with one method per algebra rule, a wire envelope (`Frame`), and an
105/// RFC 6455 WebSocket carrier (`ws::drive`) that runs a session type
106/// against a peer. Carrier-agnostic core; the WS layer is one binding.
107pub mod session_runtime;
108/// §Fase 80.d — the `upstream` runtime: the CLIENT dual of the §41.d
109/// carrier. Dials OUT to a third-party vendor (STT/TTS/realtime speech)
110/// over RFC 6455 + TLS, applies the declared auth handshake, transcodes
111/// wire↔session per the compiled `map:` projection (T849-total), applies
112/// the declared `overflow:` policy when the vendor is the slow side, and
113/// reconnects with witnessed, fail-closed exponential backoff. A new
114/// vendor is a new DECLARATION, never new Rust code.
115pub mod upstream_runtime;
116/// §Fase 51.e — the `quant` cognitive primitive's RUNTIME: the
117/// [`quant::QuantBackend`] port + a usable dense-statevector reference
118/// simulator capped at n ≤ 10 (the OSS half; enterprise mounts the QuIDD /
119/// VRAM / QPU engine behind the same trait in §51.f–i).
120pub mod quant;
121/// §Fase 23.f — Algebraic effects runtime. FSM dispatch loop +
122/// handler stack + Free-Monad interpretation of CPS-lowered IR
123/// (consumes the JSON IR emitted by the Python frontend in 23.b/c/d).
124pub mod effects;
125/// §Fase 24.b — Native Rust LLM backends. Per-provider async clients
126/// behind a `Backend` trait + `Registry`. Per-provider modules
127/// (anthropic.rs / openai.rs / gemini.rs / kimi.rs / glm.rs / ollama.rs
128/// / openrouter.rs) land in 24.c–24.i; this module ships the shared
129/// infra (trait + types + error + retry + observability + locked_model
130/// + tokens dispatch).
131pub mod backends;
132/// §Fase 36.b — the Backend Resolution Contract (D1): the pure,
133/// deterministic precedence ladder that resolves a flow's execution
134/// backend (request → axonendpoint `backend:` → server default →
135/// environment-available `auto` → honest failure).
136pub mod backend_resolution;
137/// §Fase 68.c — pure capability-aware model resolution: a step's
138/// `requires_context:` + a backend's §68.a model catalog → the smallest model
139/// that fits, or honest fail-closed (never a too-small model).
140pub mod model_resolution;
141/// §Fase 69.a — the Advantage Witness: a transversal law
142/// (`axon://logic/no_unwitnessed_advantage`). A primitive may not claim an
143/// advantage over a cheaper baseline without a machine-checkable witness on real
144/// data; the `AdvantageWitness` trait + closed metric catalog + verdict.
145pub mod advantage_witness;
146/// §Fase 69.b — quant as the first Advantage-Witness instance: the amplitude-
147/// fidelity ≡ cosine theorem made executable + the `QuantKernelWitness` that
148/// fails closed (no advantage over the classical baseline).
149pub mod quant_witness;
150/// §Fase 69.d — the SECOND Advantage-Witness instance (transversality proof):
151/// retrieval / navigate via the `ranking_lift` metric over flat cosine retrieval.
152pub mod retrieval_witness;
153/// §ESK Fase 6 — Epistemic Security Kernel. Port of `axon/runtime/esk/`.
154pub mod esk;
155/// §Fase 51 — Proof-Carrying Code. apx/axonendpoint carry a portable,
156/// machine-checkable proof object an INDEPENDENT verifier checks
157/// against the artifact WITHOUT trusting the compiler that produced it
158/// (the move from `esk`'s builder-signed attestation to a consumer-
159/// verifiable proof). §51.a ships the kernel + the ComplianceCoverage
160/// property class.
161pub mod pcc;
162/// CLI handlers for the ESK audit commands (dossier, sbom, audit, evidence-package).
163pub mod audit_cli;
164/// §Fase 51.f — CLI handlers for the PCC commands (`axon pcc prove` /
165/// `axon pcc verify`). Closes the Proof-Carrying Code loop at the
166/// command line: generate a proof bundle from source, then
167/// independently verify it against a recompile of that source.
168pub mod pcc_cli;
169pub mod flow_inspect;
170/// §Fase 33.x.g — Closed-catalog runtime warnings for the SSE
171/// production path. Surfaces `axon-W002 streaming-not-supported`
172/// when the async streaming path falls back to legacy synchronous
173/// delivery (D5 — no silent degradation).
174pub mod runtime_warnings;
175/// §Fase 33.x.h — Process-wide runtime opt-in flags. Today carries
176/// the `tokenizer_fallback` flag that gates BPE-tokenized chunking
177/// on the SSE LEGACY path (D9 — opt-in; defaults OFF for v1.24.0
178/// wire byte-compat).
179pub mod runtime_flags;
180/// §Fase 33.x.b — Streaming-shaped execution plan extractor. Builds
181/// `StreamingExecutionPlan` from `.axon` source for the production
182/// async SSE path; pre-resolves per-step `BackpressurePolicy` via
183/// `stream_effect_dispatcher` so the hot per-chunk loop in
184/// `axon_server::server_execute_streaming_async` does not re-walk
185/// the AST per chunk. Rejects flows that use 33.x.b-unsupported
186/// features (anchors / lambda apply / let bindings / mid-stream
187/// use_tool / hibernate / pix) with a closed-catalog `PlanFallback`
188/// so the SSE handler can route them to the legacy synchronous path.
189pub mod flow_plan;
190/// §Fase 33.y.b — Per-IRFlowNode async dispatcher skeleton. Closed-
191/// catalog, compiler-enforced exhaustive match over the 45-variant
192/// `IRFlowNode` enum. Subsequent sub-fases 33.y.c–j replace the
193/// transitional legacy shim with real per-variant async handlers.
194/// 33.y.l retires the shim + the `LegacyShimHandled` outcome variant
195/// once every IR variant has its real handler.
196pub mod flow_dispatcher;
197/// §Fase 33.z.b — Streaming-via-dispatcher graft skeleton. Lifts
198/// `flow_dispatcher::dispatch_node` (Fase 33.y, 45/45 structurally
199/// complete) into the production SSE hot path behind the
200/// `AXON_STREAMING_VIA_DISPATCHER` runtime flag (default OFF;
201/// flip to ON for v1.27.0 stable in 33.z.c; legacy path retired
202/// in 33.z.e).
203pub mod streaming_via_dispatcher;
204pub mod flow_version;
205pub mod epistemic_capture;
206pub mod exec_context;
207pub mod graceful_shutdown;
208pub mod graph_export;
209pub mod health_check;
210pub mod hooks;
211pub mod http_tool;
212/// §Fase 99.e/f — the deterministic OOXML writer (DOCX/PPTX/XLSX) behind the
213/// `DocumentRenderer` native tool. Byte-deterministic + provenance-embedding.
214pub mod ooxml;
215/// §Fase 100.b — the read-only filesystem capability + path sandbox.
216pub mod fs_sandbox;
217/// §Fase 100.c/d — the OOXML reader: bounded, born-Untrusted, Parsed text tree.
218pub mod ooxml_read;
219/// §Fase 100.e — the surgical edit engine + per-part hash manifest.
220pub mod ooxml_edit;
221/// §Fase 101.a — the `Inferred`-extraction contract: the `ExtractionEngine`
222/// trait, the born-`Inferred` span with measured confidence, and the
223/// confidence-floor quarantine gate. The producers §100 left the class without.
224pub mod extraction;
225/// §Fase 101.c — the IDP-E recognizer kernel: the deterministic geometry+topology
226/// engine (Otsu → cubical β₀/β₁ → geometric discrimination → reading order →
227/// pix-navigable canonical tree). Reads a bounded PGM/PBM raster; real image
228/// decode is the sidecar (§101.e). Scoped to clean machine-print (D101.17).
229pub mod idpe;
230/// §Fase 101.d — the active-inference foveation planner: spend the recognizer on
231/// the highest-information-scent regions until the answer resolves or the budget
232/// (§72) is exhausted; every foveation is a replayable `ledger` trail entry.
233pub mod foveation;
234/// §Fase 101.e — the IDP-E image front-end: deterministic Perona-Malik anisotropic
235/// diffusion (Catté-regularised) + Gabor phase-tensor orientation energy that
236/// clean and analyse a raster before recognition. The CVE-prone image DECODE is
237/// isolated in the sidecar binary (`src/bin/idpe_sidecar.rs`), which feeds this
238/// front-end already-decoded grayscale — hostile bytes never reach the runtime.
239pub mod idpe_frontend;
240pub mod inspect;
241/// §Fase 98.e — Native Web Acquisition runtime (`scrape_http` / `scrape_dom` /
242/// `scrape_crawl`); born-Untrusted content, pluggable stealth fetcher.
243pub mod scrape_tool;
244/// §Fase 104.a — Governed Contact Enrichment (`scrape_enrich`): structured
245/// contact lookup via a pluggable enterprise provider; results born Inferred
246/// (≤ believe-ceiling) + Untrusted. OSS default = typed refusal (no fabrication).
247pub mod enrichment;
248/// §Fase 105 — Governed CRM Delivery (`deliver`): the egress-dual of acquisition.
249/// Canonical, idempotent CRM operations delivered via a pluggable enterprise
250/// transducer; each field carries its epistemic provenance (D105.2) or the author
251/// vouched (T920). OSS default = typed refusal (no fabricated receipt).
252pub mod delivery;
253pub mod lambda_data;
254pub mod lambda_runtime;
255pub mod logging;
256pub mod migrations;
257pub mod output;
258pub mod mdn;
259pub mod mdn_memory;
260pub mod mdn_provenance;
261pub mod parallel;
262pub mod pix_mdn_pcc;
263pub mod pix_navigator;
264pub mod plan_diff;
265pub mod plan_export;
266pub mod rate_limiter;
267pub mod request_binding;
268pub mod request_log;
269pub mod request_middleware;
270pub mod repl;
271pub mod replay;
272pub mod request_tracing;
273// §Fase 32.c — Body schema validation for first-class axonendpoint
274// routes. `route_schema` hosts the pure `validate_body` primitive +
275// `collect_type_table` walker. The fallback handler in `axon_server`
276// consults the table at request time per (method, path).
277pub mod route_schema;
278// §Fase 32.f — Idempotency-Key store for POST/PUT axonendpoint routes.
279// Stripe-compatible. Cross-tenant isolation via (client_id, path, key)
280// composite key. 24h default retention. Same-key-different-body
281// returns 422 per industry convention.
282pub mod idempotency;
283// §Fase 32.g — Auth scope (capability subset matching) for first-class
284// axonendpoint routes. `requires: [admin, legal.read, ...]` declarations
285// gate dispatch on declared_requires ⊆ token_capabilities. Closed slug
286// grammar shared with `axon_frontend::parser`. Mirror of Python
287// `_is_valid_capability_slug`.
288pub mod auth_scope;
289// §Fase 32.h — Replay-token binding for first-class axonendpoint routes.
290// Append-only log keyed by trace_id; populated on every successful 2xx
291// POST/PUT where `replay:` resolves to true. `GET /v1/replay/<trace_id>`
292// returns the original request body + response body + metadata for
293// regulatory audit (PCI DSS Req 10, FedRAMP AU-2, FRE 502, 21 CFR Part 11).
294pub mod axonendpoint_replay;
295// §Fase 33.b — Layer 1: flow execution event stream. Closed catalog of
296// {FlowStart, StepStart, StepToken, StepComplete, FlowComplete,
297// FlowError} per D2. Consumed by execute_sse_handler (33.c) for live
298// SSE forwarding; cross-stack drift-gated against the Python mirror.
299pub mod flow_execution_event;
300pub mod resilient_backend;
301pub mod retry_policy;
302pub mod runner;
303// §Fase 40.b — public shield-scanner registration hook. OSS ships no
304// scanners (identity); enterprise vertical crates register HIPAA/legal/AML
305// scanners here at boot. The `shield apply` handler consults it.
306pub mod shield_registry;
307/// §Fase 112.b — the Cognitive-I/O supervisor: the loop that instantiates the
308/// declared λ-L-E dataflow graph (`observe` → {`ensemble`, `immune`} →
309/// {`reflex`, `heal`}, plus `reconcile`) and drives it. The language was complete
310/// and the kernels took the IR directly; **nobody had ever built the loop.**
311pub mod cognitive_io_supervisor;
312/// §Fase 112.a — the source adapter registry: what an `observe` actually looks at.
313/// **Deny-by-default** — an unregistered source is UNKNOWN, not healthy, and the
314/// observation refuses rather than fabricating a reading.
315pub mod source_registry;
316pub mod server_config;
317pub mod server_metrics;
318pub mod session_scope;
319pub mod session_store;
320pub mod step_deps;
321pub mod storage;
322pub mod storage_postgres;
323// §Fase 35 — the `axonstore` cognitive data plane runtime. 35.b ships
324// `store::filter` (the parameterized where-expression compiler).
325pub mod resource_lease;
326pub mod resource_resolver;
327pub mod store;
328pub mod stdlib;
329pub mod tenant;
330pub mod tenant_secrets;
331// §Fase 10.e — JWT signature verification + JWKS client. Used by
332// tenant::tenant_extractor_middleware when AXON_JWT_JWKS_URL is set.
333pub mod jwt_verifier;
334// §λ-L-E Fase 11.a runtime — `trust_verifiers` holds the runtime
335// implementations that the compiler recognises; `stream_runtime` is
336// the Stream<T> channel with policy dispatch. The compile-time
337// `refinement` and `stream_effect` catalogs live in `axon-frontend`.
338pub mod trust_verifiers;
339pub mod stream_runtime;
340// §Fase 33.e — Stream-effect dispatcher (Layer 4 of the Fase 33 cycle).
341// Bridges the `effects: <stream:<policy>>` declarations on tool
342// definitions to actual runtime backpressure behavior on the SSE
343// wire. The dispatcher itself is a thin composition over
344// `stream_runtime::Stream<T>` (which carries the policy semantics)
345// and the AST resolver (which extracts the declared policy from the
346// tool referenced by each step).
347pub mod stream_effect_dispatcher;
348// §Fase 33.f — Cooperative cancellation primitives (D6 cancel-safety).
349// `CancellationFlag` + `CancelOnDrop` are the building blocks that
350// bind SSE response lifetime to the executor's spawn_blocking task:
351// when the wire client disconnects, the consumer cancels the flag,
352// which the producer observes between event emissions and exits
353// early instead of running the flow to completion against a dropped
354// channel.
355pub mod cancel_token;
356pub mod channel_semaphore;
357// §Fase 33.z.k (v1.28.0) — Wire-format adapter framework.
358// `wire_format` defines the WireFormatAdapter trait + per-dialect
359// adapters (axon / openai / anthropic). The SSE producer in
360// `axon_server::execute_sse_handler` uses `select_adapter(dialect)`
361// to translate internal FlowExecutionEvents into the dialect-
362// specific wire shape adopters' SDKs expect.
363pub mod wire_format;
364// §Fase 39.b — Pure Silicon Cognition wire envelope. The canonical
365// `FlowEnvelope` payload for `transport: json` axonendpoint responses
366// + legacy `POST /v1/execute`. Isomorphic serialization of the
367// ψ-vector `⟨T, V, E⟩`. See `docs/fase/fase_39_pure_silicon_cognition.md`.
368pub mod wire_envelope;
369// §Fase 39.c — Wire envelope producer helpers. Closed-taxonomy
370// translators from runtime execution metadata into the wire envelope's
371// epistemic fields (`provenance_chain` + `blame_attribution`).
372pub mod wire_envelope_producers;
373// §Fase 39.f — Rust CLI binary parity. New subcommands that closed
374// the gap vs the Python CLI (`axon parse` aggregator + `axon fmt`
375// round-trip formatter).
376pub mod cli_parse;
377pub mod cli_fmt;
378// §λ-L-E Fase 11.b — Zero-Copy Multimodal Buffers.
379// `buffer` defines ZeroCopyBuffer (Arc<[u8]>-backed) + BufferKind
380// (open registry) + BufferPool (slab allocator with per-tenant
381// soft-limit accounting). `ingest` hosts the network deposit paths
382// (multipart/form-data streaming parser, WebSocket binary-frame
383// accumulator) that populate buffers without intermediate copies.
384pub mod buffer;
385pub mod ingest;
386// §λ-L-E Fase 11.c runtime — `replay_token` hosts ReplayToken canonical
387// hashing + pluggable ReplayLog + ReplayExecutor for re-running from
388// any token. The compile-time `legal_basis` catalog lives in
389// `axon-frontend`.
390pub mod replay_token;
391// §λ-L-E Fase 11.d — Stateful PEM over WebSocket. `pem::state`
392// defines CognitiveState with Q32.32 fixed-point float encoding
393// so density-matrix round-trips are bit-identical across reconnects.
394// `pem::continuity_token` is an HMAC-signed handshake that proves
395// a reconnecting client is the original party. `pem::backend`
396// exposes the PersistenceBackend async trait + in-memory impl;
397// production uses axon_enterprise::cognitive_states (Postgres +
398// envelope encryption).
399pub mod pem;
400// §λ-L-E Fase 11.e — Ontological Tool Synthesis binary pipelines.
401// `ots::pipeline` hosts Transformer trait + TransformerRegistry +
402// Dijkstra-based path search. `ots::native` seeds μ-law ↔ PCM16
403// + resample (8k/16k/48k ladder). `ots::subprocess::ffmpeg` is
404// the subprocess fallback with warm-pool + availability detection.
405// The compile-time slug catalog lives in `axon-frontend::ots_catalog`.
406pub mod ots;
407pub mod tool_executor;
408pub mod tool_registry;
409// §Fase 34.b (v1.29.0) — Tool trait + ToolChunk closed-catalog
410// surface for tools-as-stream-producers. Bridges adopter-source
411// `effects: <stream:<policy>>` declarations into the runtime via
412// the dispatcher's per-chunk wire emission path (Fase 34.d/g lands
413// the wiring; this module is the structural foundation).
414pub mod tool_trait;
415// §Fase 34.d (v1.29.0) — Bridge from ToolEntry (registry shape) to
416// Tool trait impls (dispatcher's streaming surface). The dispatcher's
417// `pure_shape::run_step` calls `tool_dispatch_bridge::resolve_streaming_tool`
418// for is_streaming-flagged tools + drains the resulting Stream<ToolChunk>
419// chunk-by-chunk into the wire.
420pub mod tool_dispatch_bridge;
421// §Fase 84.d — Remote Hands runtime: pure argv render + confirmation-hash
422// binding + output bounding + the axon⇄agent wire protocol.
423pub mod technician_dispatch;
424// §Fase 85.d — result-memoization cache core: content-addressed keys,
425// in-process LRU tier with single-flight + TTL jitter + size bound, the
426// `CacheBackend` trait (enterprise injects Redis), and policy resolution.
427pub mod cache_runtime;
428// §Fase 86 — the mathematical core of `forge` Directed Creative Synthesis:
429// Boden profiles, NCD novelty (the computable Kolmogorov-novelty proxy),
430// best-of-N selection, and fail-closed verification.
431pub mod forge;
432// §Fase 87.e — the `HolographBackend` port + the OSS reference HRR codec
433// (circular-convolution binding via a self-contained radix-2 FFT), the
434// `savant` long-horizon memory-compression layer (paper §5).
435pub mod holograph;
436// §Fase 87.f — the remaining `savant` runtime ports + OSS reference impls:
437// `inference` (classical VFE/EFE active inference, no advantage claim),
438// `topology` (Vietoris–Rips β₀/β₁ + PHC-proxy centrality), and `synth`
439// (deny-by-default dynamic tool synthesis — the Extism executor is enterprise).
440pub mod inference;
441pub mod synth;
442pub mod topology;
443// §Fase 88.d — the `WardenBackend` port + the OSS reference static analyzer
444// (attested `Vulnerability` findings; authorization + deny-by-default enforced;
445// paraconsistent finding-validator). The enterprise LLM engine mounts §88.f.
446pub mod warden;
447pub mod tool_validator;
448pub mod trace_export;
449pub mod trace_store;
450pub mod trace_stats;
451pub mod tracer;
452pub mod version_diff;
453pub mod webhook_delivery;
454pub mod webhooks;
455/// §Fase 92.c — the `CredentialMinter` port behind the `mint` flow verb
456/// (attenuated, TTL-bounded ephemeral credentials; fail-closed when absent).
457pub mod credential_minter;
458/// §Fase 94.d — the `SecretCustody` port behind the `backend: secrets`
459/// metadata store, the `rotate` verb and the `tool { secret: }` injection
460/// (`rotation_without_revelation`; fail-closed when absent).
461pub mod secret_custody;
462/// §Fase 91.b — declared cognitive time: the runtime half of `now:` (one
463/// capture per run, deterministic prompt line, envelope record).
464pub mod temporal_context;
465/// §Fase 71.b — the runtime for the `window` temporal execution guard
466/// (timezone-aware `is_in_window` / `next_window_open` via chrono-tz).
467pub mod window;