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://toystory/character/woody`
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::{
61    PresignOptions, PresignedRepresentation, ResolveConfig, ResolveOptions, Resolver,
62};
63pub use server::PINNED_LORE_VERSION;
64pub use server::{
65    LoreInstaller, LoreProcessManager, LoreVersionInfo, NapDoctor, ServerManager,
66    generate_certificates, generate_local_config, verify_lore_installation,
67};
68pub use storage::{StorageBackend, StorageConfig, StorageEngine, StorageError, get_engine};
69pub use types::EntityType;
70pub use uri::NapUri;
71pub use vcs::{
72    AccessLevel, CommitInfo, ContextDocument, Permission, Revision, VcsBackend, VcsContentAddress,
73    VcsRepositoryDescriptor,
74};
75pub use vcs_lore::LoreBackend;