Skip to main content

nap_core/
lib.rs

1//! # NAP Core — Narrative Addressing Protocol
2//!
3//! Four primitives for entertainment infrastructure:
4//! - **URI**: Identity — `nap://starwars/character/lukeskywalker`
5//! - **Manifest**: Current state — YAML, human/machine/agent-readable
6//! - **Commit**: History — snapshot + delta metadata
7//! - **Resolver**: Resolution — URI → Manifest, with query/version selectors
8
9pub mod autopublish;
10pub mod commit;
11pub mod content;
12pub mod context_docs;
13pub mod error;
14pub mod manifest;
15pub mod merge;
16pub mod permission_gate;
17pub mod query;
18pub mod repo_service;
19pub mod repository;
20pub mod resolver;
21pub mod schema;
22pub mod storage;
23pub mod types;
24pub mod uri;
25pub mod validation;
26pub mod vcs;
27
28// Git-backed VCS (deprecated — use vcs_lore for new development).
29pub mod vcs_git;
30
31// Lore VCS backend (production).
32pub mod vcs_lore;
33
34// Re-exports for ergonomic top-level usage
35pub use autopublish::{AutopublishConfig, AutopublishHandle, AutopublishWorker};
36pub use commit::{Change, ChangeOp, Commit};
37pub use content::ContentHash;
38pub use context_docs::ContextDocsManager;
39pub use error::NapError;
40pub use manifest::{Manifest, Principal, Provenance, Representation};
41pub use merge::{
42    conflict::{Conflict, ConflictType, MergeResult},
43    diff::{Change as DiffChange, ChangeOp as DiffChangeOp, DiffResult, diff, diff_normalized},
44    merge_engine::MergeEngine,
45    normalization::normalize,
46    path::CanonicalPath,
47    sdl::{
48        IdentityRule, MergeStrategyDef, MergeStrategyType, PropertyDef, PropertyType, SdlDocument,
49        SdlError,
50    },
51    strategies,
52};
53pub use permission_gate::PermissionGate;
54pub use query::ManifestQuery;
55pub use repo_service::RepoService;
56pub use repository::Repository;
57pub use resolver::{ResolveOptions, Resolver};
58pub use storage::{StorageBackend, StorageConfig, StorageEngine, StorageError, get_engine};
59pub use types::EntityType;
60pub use uri::NapUri;
61pub use vcs::{AccessLevel, CommitInfo, ContextDocument, Permission, Revision, VcsBackend};
62pub use vcs_git::GitBackend;
63pub use vcs_lore::LoreBackend;