Implement full CRV (Coordinate Remote Viewing) signal-line protocol mapping to WiFi CSI sensing via ruvector-crv: - Stage I: CsiGestaltClassifier (6 gestalt types from amplitude/phase) - Stage II: CsiSensoryEncoder (texture/color/temperature/sound/luminosity/dimension) - Stage III: Mesh topology encoding (AP nodes/links → GNN graph) - Stage IV: Coherence gate → AOL detection (signal vs noise separation) - Stage V: Pose interrogation via differentiable search - Stage VI: Person partitioning via MinCut clustering - Cross-session convergence for cross-room identity New files: - crv/mod.rs: 1,430 lines, 43 tests - crv_bench.rs: 8 criterion benchmarks (gestalt, sensory, pipeline, convergence) - ADR-033: 740-line architecture decision with 30+ acceptance criteria - patches/ruvector-crv: Fix ruvector-gnn 2.0.5 API mismatch Dependencies: ruvector-crv 0.1.1, ruvector-gnn 2.0.5 Co-Authored-By: claude-flow <ruv@ruv.net>
39 lines
1.0 KiB
Rust
39 lines
1.0 KiB
Rust
//! Error types for the CRV protocol integration.
|
|
|
|
use thiserror::Error;
|
|
|
|
/// CRV-specific errors.
|
|
#[derive(Debug, Error)]
|
|
pub enum CrvError {
|
|
/// Dimension mismatch between expected and actual vector sizes.
|
|
#[error("Dimension mismatch: expected {expected}, got {actual}")]
|
|
DimensionMismatch { expected: usize, actual: usize },
|
|
|
|
/// Invalid CRV stage number.
|
|
#[error("Invalid stage: {0} (must be 1-6)")]
|
|
InvalidStage(u8),
|
|
|
|
/// Empty input data.
|
|
#[error("Empty input: {0}")]
|
|
EmptyInput(String),
|
|
|
|
/// Session not found.
|
|
#[error("Session not found: {0}")]
|
|
SessionNotFound(String),
|
|
|
|
/// Encoding failure.
|
|
#[error("Encoding error: {0}")]
|
|
EncodingError(String),
|
|
|
|
/// Attention mechanism error.
|
|
#[error("Attention error: {0}")]
|
|
AttentionError(#[from] ruvector_attention::AttentionError),
|
|
|
|
/// Serialization error.
|
|
#[error("Serialization error: {0}")]
|
|
SerializationError(#[from] serde_json::Error),
|
|
}
|
|
|
|
/// Result type alias for CRV operations.
|
|
pub type CrvResult<T> = Result<T, CrvError>;
|