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 commit;
10pub mod content;
11pub mod context_docs;
12pub mod error;
13pub mod grpc_client;
14pub mod manifest;
15pub mod merge;
16pub mod permission_gate;
17pub mod provider;
18pub mod query;
19pub mod repo_service;
20pub mod repository;
21pub mod repository_api;
22pub mod resolver;
23pub mod schema;
24pub mod server;
25pub mod storage;
26#[cfg(any(test, feature = "test-utils"))]
27pub mod test_utils;
28pub mod types;
29pub mod uri;
30pub mod validation;
31pub mod vcs;
32
33// Lore VCS backend (production).
34pub mod vcs_lore;
35
36// Re-exports for ergonomic top-level usage
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 provider::{Provider, ProviderFactory, ProviderManager, ProviderType};
56pub use query::ManifestQuery;
57pub use repo_service::RepoService;
58pub use repository::Repository;
59pub use repository_api::{RepositoryApi, RepositoryHandle};
60pub use resolver::{ResolveConfig, ResolveOptions, Resolver};
61pub use server::PINNED_LORE_VERSION;
62pub use server::{
63    LoreInstaller, LoreProcessManager, LoreVersionInfo, NapDoctor, ServerManager,
64    generate_certificates, generate_local_config, verify_lore_installation,
65};
66pub use storage::{StorageBackend, StorageConfig, StorageEngine, StorageError, get_engine};
67pub use types::EntityType;
68pub use uri::NapUri;
69pub use vcs::{AccessLevel, CommitInfo, ContextDocument, Permission, Revision, VcsBackend};
70pub use vcs_lore::LoreBackend;