soma-som-core 0.1.0

Universal soma(som) structural primitives — Quad / Tree / Ring / Genesis / Fingerprint / TemporalLedger / CrossingRecord
Documentation
// SPDX-License-Identifier: LGPL-3.0-only
#![warn(missing_docs)]
#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used, clippy::panic))]
#![doc = include_str!("../README.md")]

//! # soma-som-core
//!
//! Universal structural primitives for the SOMA/SOM circular architecture.
//!
//! This crate defines the ring's structural backbone: Quad, Ring, unit identities,
//! SOM layers, fingerprints, the temporal ledger, and the Genesis protocol.
//! It contains no IPC, no IO, no side effects, and no application-specific
//! governance types.
//!
//! ## Ring Foundation Purity
//!
//! soma-som-core defines the seven §13.1 pluggable governance trait surfaces
//! (`AuthorizationProvider`, `AutonomyEvaluator`, `ConfigurationProvider`,
//! `EvidenceValidator`, `ProcessEngine`, `ProcessGate`, `CycleAnnotator`)
//! and their no-op defaults. Concrete §13.2 policy data is application-tier.
//!
//! ## Paper traceability — soma(som) v1.0 (State of Mind)
//!
//! | Type / Module       | Reference                        |
//! |---------------------|----------------------------------|
//! | `Quad`              | OPUS §2 (Definition 1)           |
//! | `UnitId`, `Layer`   | OPUS §5, §4                      |
//! | `UnitId::W_LABELS`  | SOMA_FRONTEND_SPEC §2.4          |
//! | `Ring`              | OPUS §3, §6                      |
//! | `Fingerprint`       | OPUS §8 (Definitions 7–8)        |
//! | `TemporalLedger`    | OPUS §9.5                        |
//! | `Genesis`           | OPUS §10                         |
//! | `Position`          | OPUS §8.1                        |
//! | `Envelope`          | Contracts §2                     |
//! | `PerspectivalChain` | Perspectival Ledger §2           |
//! | `CrossingRecord`    | Contracts §2.1 (Def. 2)          |
//! | `RingStore`         | L0 persistence trait          |
//! | `Extension`+5 traits| Ring-extension family                |
//! | `World`             | OPUS §6 (State-of-Mind worlds)          |
//! | `VocabTerm`         | OPUS §5.1–§5.6 (72 terms)        |
//! | `WorldRegistry`     | OPUS §1.2 + §6              |
//!

pub mod authorization;
pub mod autonomy;
pub mod codec;
pub mod configuration;
pub mod crossing;
pub mod envelope;
pub mod processor;
pub mod error;
pub mod evidence;
pub mod extension;
pub mod federation;
pub mod fingerprint;
pub mod genesis;
pub mod governance_context;
pub mod ledger;
pub mod lexicon;
pub mod perspectival;
pub mod position;
pub mod signing_provider;
pub mod timing;
pub mod process_engine;
pub mod process_gate;
pub mod quad;
pub mod ring;
pub mod ring_store;
pub mod sibling;
pub mod traceability;
pub mod types;
pub mod vocab;
pub mod world;

#[cfg(feature = "test-support")]
pub mod testing;

// ── Re-exports for ergonomic use ────────────────────────────────────────────

pub use authorization::{
    AuthorizationProvider, AuthorizationTable, AuthorizationTableEntry, AuthorizationTableResult,
    PermissionCollision, PermissionRegistry, PermissionRequirement, PermitAll,
    SharedAuthorizationTable, SharedPermissionRegistry,
};
pub use codec::{CodecError, persist_decode, persist_encode};
pub use crossing::CrossingRecord;
pub use envelope::Envelope;
pub use evidence::{
    AcceptAll, EvidenceValidator, verify_ring_cycle_evidence, verify_ring_cycle_evidence_with_key,
    verify_view_cycle_evidence,
};
pub use signing_provider::{CrossingSigner, NoopSigner, SigningProviderError};
pub use timing::{CycleTimer, TimingConfig, TimingError, UnitTiming};
pub use error::SomaError;
pub use extension::{
    AfterRing, AroundRing, BeforeRing, CommandSchema, DelegationError, Extension, GateRejection,
    SchemaField, SchemaFieldType, ThroughRing,
};
pub use federation::{
    DescriptorEnvelope, DescriptorPayload, EnvelopeDestination, OrientationSummary, PeerRecord,
    PeerStatus, RingAnnounce, RingFingerprint, federation_ns,
};
pub use fingerprint::{awareness_fingerprint, ring_fingerprint, system_fingerprint};
pub use genesis::Genesis;
pub use governance_context::GovernanceContext;
pub use ledger::{LedgerEntry, TemporalLedger};
pub use lexicon::{
    CoordinateError, LexiconEntry, LexiconProvider, Medium, Rendering, RenderingPack,
    ResolvedRendering, TermDescription, VocabCoord, resolve_rendering,
};
pub use perspectival::{
    PerspectivalChain, PerspectivalEntry, PerspectivalState, cross_verification_digest,
};
pub use position::Position;
pub use processor::{UnitProcessor, UnitProcessorError};
pub use quad::Quad;
pub use ring::{Ring, RingState};
pub use ring_store::{RingStore, RingStoreBackendError, RingStoreError, RingStoreResult};
pub use sibling::{
    CapabilityDeclaration, DomainRequest, HttpMethod, RegistrationError, RouteMount,
    SiblingManifest, SiblingStatus, SurfaceSection,
};
pub use traceability::{CycleContext, CycleKind, LEGACY_SEMANTIC_HASH};
pub use types::{CrossingType, Element, Layer, LayerTransition, UnitId, World};
pub use vocab::{VocabTerm, all_terms, domain_term};
pub use world::{OrganEntry, WorldRegistry};