pub mod error;
pub mod config;
pub mod proof_gated;
#[cfg(feature = "sublinear")]
pub mod sublinear_attention;
#[cfg(feature = "physics")]
pub mod physics;
#[cfg(feature = "biological")]
pub mod biological;
#[cfg(feature = "self-organizing")]
pub mod self_organizing;
#[cfg(feature = "verified-training")]
pub mod verified_training;
#[cfg(feature = "manifold")]
pub mod manifold;
#[cfg(feature = "temporal")]
pub mod temporal;
#[cfg(feature = "economic")]
pub mod economic;
pub use error::{GraphTransformerError, Result};
pub use config::GraphTransformerConfig;
pub use proof_gated::{ProofGate, ProofGatedMutation, AttestationChain};
#[cfg(feature = "sublinear")]
pub use sublinear_attention::SublinearGraphAttention;
#[cfg(feature = "physics")]
pub use physics::{
HamiltonianGraphNet, HamiltonianState, HamiltonianOutput,
GaugeEquivariantMP, GaugeOutput,
LagrangianAttention, LagrangianOutput,
ConservativePdeAttention, PdeOutput,
};
#[cfg(feature = "biological")]
pub use biological::{
SpikingGraphAttention, HebbianLayer,
EffectiveOperator, InhibitionStrategy, HebbianNormBound,
HebbianRule, StdpEdgeUpdater, DendriticAttention, BranchAssignment,
ScopeTransitionAttestation,
};
#[cfg(feature = "self-organizing")]
pub use self_organizing::{MorphogeneticField, DevelopmentalProgram, GraphCoarsener};
#[cfg(feature = "verified-training")]
pub use verified_training::{
VerifiedTrainer, TrainingCertificate, TrainingInvariant,
RollbackStrategy, InvariantStats, ProofClass, TrainingStepResult,
EnergyGateResult,
};
#[cfg(feature = "manifold")]
pub use manifold::{
ProductManifoldAttention, ManifoldType, CurvatureAdaptiveRouter,
GeodesicMessagePassing, RiemannianAdamOptimizer,
LieGroupEquivariantAttention, LieGroupType,
};
#[cfg(feature = "temporal")]
pub use temporal::{
CausalGraphTransformer, MaskStrategy,
RetrocausalAttention, BatchModeToken, SmoothedOutput,
ContinuousTimeODE, OdeOutput,
GrangerCausalityExtractor, GrangerGraph, GrangerEdge, GrangerCausalityResult,
AttentionSnapshot,
TemporalEdgeEvent, EdgeEventType,
TemporalEmbeddingStore, StorageTier,
TemporalAttentionResult,
};
#[cfg(feature = "economic")]
pub use economic::{GameTheoreticAttention, ShapleyAttention, IncentiveAlignedMPNN};
pub struct GraphTransformer {
config: GraphTransformerConfig,
}
impl GraphTransformer {
pub fn new(config: GraphTransformerConfig) -> Self {
Self { config }
}
pub fn with_defaults() -> Self {
Self {
config: GraphTransformerConfig::default(),
}
}
pub fn config(&self) -> &GraphTransformerConfig {
&self.config
}
pub fn embed_dim(&self) -> usize {
self.config.embed_dim
}
pub fn create_gate<T>(&self, value: T) -> ProofGate<T> {
ProofGate::new(value)
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_graph_transformer_creation() {
let gt = GraphTransformer::with_defaults();
assert_eq!(gt.embed_dim(), 64);
assert!(gt.config().proof_gated);
}
#[test]
fn test_graph_transformer_custom_config() {
let config = GraphTransformerConfig {
embed_dim: 128,
num_heads: 8,
dropout: 0.2,
proof_gated: false,
..Default::default()
};
let gt = GraphTransformer::new(config);
assert_eq!(gt.embed_dim(), 128);
assert!(!gt.config().proof_gated);
}
#[test]
fn test_create_gate() {
let gt = GraphTransformer::with_defaults();
let gate = gt.create_gate(vec![1.0, 2.0, 3.0]);
assert_eq!(gate.read().len(), 3);
}
}