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 grpc_client;
15pub mod manifest;
16pub mod merge;
17pub mod permission_gate;
18pub mod query;
19pub mod repo_service;
20pub mod repository;
21pub mod resolver;
22pub mod schema;
23pub mod storage;
24pub mod types;
25pub mod uri;
26pub mod validation;
27pub mod vcs;
28
29// Git-backed VCS (deprecated — use vcs_lore for new development).
30pub mod vcs_git;
31
32// Lore VCS backend (production).
33pub mod vcs_lore;
34
35// Re-exports for ergonomic top-level usage
36pub use autopublish::{AutopublishConfig, AutopublishHandle, AutopublishWorker};
37pub use commit::{Change, ChangeOp, Commit};
38pub use content::ContentHash;
39pub use context_docs::ContextDocsManager;
40pub use error::NapError;
41pub use manifest::{Manifest, Principal, Provenance, Representation};
42pub use merge::{
43    conflict::{Conflict, ConflictType, MergeResult},
44    diff::{Change as DiffChange, ChangeOp as DiffChangeOp, DiffResult, diff, diff_normalized},
45    merge_engine::MergeEngine,
46    normalization::normalize,
47    path::CanonicalPath,
48    sdl::{
49        IdentityRule, MergeStrategyDef, MergeStrategyType, PropertyDef, PropertyType, SdlDocument,
50        SdlError,
51    },
52    strategies,
53};
54pub use permission_gate::PermissionGate;
55pub use query::ManifestQuery;
56pub use repo_service::RepoService;
57pub use repository::Repository;
58pub use resolver::{ResolveConfig, ResolveOptions, Resolver};
59pub use storage::{StorageBackend, StorageConfig, StorageEngine, StorageError, get_engine};
60pub use types::EntityType;
61pub use uri::NapUri;
62pub use vcs::{AccessLevel, CommitInfo, ContextDocument, Permission, Revision, VcsBackend};
63pub use vcs_git::GitBackend;
64pub use vcs_lore::LoreBackend;