Skip to main content

canon_core/
lib.rs

1//! CP Core - Data models and traits for Canon Protocol
2//!
3//! This crate defines the fundamental types used across all CP components:
4//! - Document, Chunk, Embedding nodes
5//! - Graph edges and relationships
6//! - State roots and Merkle commitments
7//! - Cognitive diffs for synchronization
8//! - Hybrid Logical Clocks for causal ordering
9//! - Canonical ID generation (BLAKE3-16)
10
11pub mod chunk;
12pub mod context_assembler;
13mod diff;
14mod document;
15mod edge;
16mod embedding;
17mod error;
18pub mod hlc;
19pub mod id;
20pub mod proof;
21pub mod state;
22pub mod text;
23
24pub use chunk::Chunk;
25pub use context_assembler::{
26    AssembledContext, ContextAssembler, ContextChunk, ContextMetadata, ScoredChunk, TokenBudget,
27};
28pub use diff::{CognitiveDiff, DiffMetadata, EmbeddingInput, ExecutionTrace, Operation};
29pub use document::Document;
30pub use edge::{Edge, EdgeKind};
31pub use embedding::Embedding;
32pub use error::{CPError, Result};
33pub use hlc::Hlc;
34pub use proof::{
35    ChunkProof, FileSnapshot, MerkleSibling, ProofReceipt, SemanticHit, SemanticSearchResult,
36    SessionEvent, SessionProof, SourceRef, UserPrompt,
37};
38pub use state::StateRoot;
39
40/// Re-export commonly used types
41pub mod prelude {
42    pub use crate::{
43        CPError, Chunk, CognitiveDiff, DiffMetadata, Document, Edge, EdgeKind, Embedding, Hlc,
44        Result, StateRoot,
45    };
46}