Skip to main content

Crate sttp_core_rs

Crate sttp_core_rs 

Source
Expand description

Core Rust library for working with STTP nodes, AVEC calibration, and context retrieval.

This crate provides:

  • domain models and contracts,
  • parsers and validators for STTP node payloads,
  • application services for calibration, storage, retrieval, mood presets, rollups, and rekey,
  • storage implementations (in-memory and SurrealDB-backed).

§Quick Start

use std::sync::Arc;

use sttp_core_rs::{
    CalibrationService, ContextQueryService, InMemoryNodeStore, NodeStoreInitializer,
    StoreContextService, TreeSitterValidator,
};

let runtime = tokio::runtime::Builder::new_current_thread()
    .enable_all()
    .build()?;

runtime.block_on(async {
    let store = Arc::new(InMemoryNodeStore::new());
    let initializer: Arc<dyn NodeStoreInitializer> = store.clone();
    initializer.initialize_async().await?;

    let validator = Arc::new(TreeSitterValidator::new());
    let store_context = StoreContextService::new(store.clone(), validator);
    let calibration = CalibrationService::new(store.clone());
    let context_query = ContextQueryService::new(store);

    let raw_node = r#"
⊕⟨ { trigger: manual, response_format: temporal_node, origin_session: "demo", compression_depth: 1, parent_node: null, prime: { attractor_config: { stability: 0.85, friction: 0.25, logic: 0.80, autonomy: 0.70 }, context_summary: "demo", relevant_tier: raw, retrieval_budget: 3 } } ⟩
⦿⟨ { timestamp: "2026-03-05T06:30:00Z", tier: raw, session_id: "demo", user_avec: { stability: 0.85, friction: 0.25, logic: 0.80, autonomy: 0.70, psi: 2.60 }, model_avec: { stability: 0.85, friction: 0.25, logic: 0.80, autonomy: 0.70, psi: 2.60 } } ⟩
◈⟨ { note(.99): "example" } ⟩
⍉⟨ { rho: 0.96, kappa: 0.94, psi: 2.60, compression_avec: { stability: 0.85, friction: 0.25, logic: 0.80, autonomy: 0.70, psi: 2.60 } } ⟩
"#;

    let store_result = store_context.store_async(raw_node, "demo-session").await;
    if store_result.valid {
        let _ = calibration
            .calibrate_async("demo-session", 0.9, 0.2, 0.9, 0.85, "manual")
            .await?;
        let _ = context_query.get_context_async("demo-session", 0.9, 0.2, 0.9, 0.85, 5).await;
    }

    Ok::<(), anyhow::Error>(())
})?;

Re-exports§

pub use application::services::CalibrationService;
pub use application::services::ContextQueryService;
pub use application::services::MonthlyRollupService;
pub use application::services::MoodCatalogService;
pub use application::services::RekeyScopeService;
pub use application::services::StoreContextService;
pub use application::services::SyncCoordinatorService;
pub use application::validation::TreeSitterValidator;
pub use domain::contracts::NodeStore;
pub use domain::contracts::NodeStoreInitializer;
pub use domain::contracts::NodeValidator;
pub use domain::contracts::SyncChangeSource;
pub use domain::contracts::SyncCoordinatorPolicy;
pub use parsing::SttpNodeParser;
pub use storage::InMemoryNodeStore;
pub use storage::QueryParams;
pub use storage::SurrealDbClient;
pub use storage::SurrealDbEndpointsSettings;
pub use storage::SurrealDbNodeStore;
pub use storage::SurrealDbRuntimeOptions;
pub use storage::SurrealDbSettings;
pub use domain::models::*;

Modules§

application
domain
parsing
storage