65 const
std::filesystem::path&
root() const noexcept;
72 std::span<const
std::uint8_t> bytes) noexcept;
80 std::unique_ptr<Impl> impl_;
91 std::uint64_t maximum_bytes)
noexcept;
runtime::Result< BlobReference, PackageError > stage_blob(BlobStore store, const timeline::ContentHash &expected, std::span< const std::uint8_t > bytes) noexcept
Hash-verifies, fences, and no-replace publishes one blob before it can be referenced.
PackageWriter(PackageWriter &&) noexcept
static runtime::Result< PackageWriter, PackageError > create(const std::filesystem::path &root, timeline::SchemaRegistry registry, const PackageLimits &limits={}) noexcept
Creates or opens the package layout and acquires its non-blocking writer lock.
runtime::Result< AtomicPublishOutcome, PackageError > publish(const timeline::Project &project) noexcept
Publishes project.json only after validating every packaged asset reference.
const std::filesystem::path & root() const noexcept
Returns the canonical stable package root.
bool recovered_staging() const noexcept
Reports whether opening reclaimed a private temp left by an interrupted writer.
Result<T, E> — either holds a T or an E, never both.
Definition result.hpp:76
Durable SHA-256 identity for sealed media bytes.
Definition assets.hpp:24
Immutable root of a Timeline document and its monotonic identity domain.
Definition model.hpp:1079
Immutable, shareable registry of Timeline schema contracts.
Definition schema_registry.hpp:189
Definition atomic_publisher.hpp:12
runtime::Result< std::vector< std::uint8_t >, PackageError > read_blob(const std::filesystem::path &root, const BlobReference &reference, std::uint64_t maximum_bytes) noexcept
Reads a bounded blob and verifies its bytes against the reference hash.
BlobStore
Content-addressed store within a project package.
Definition project_package.hpp:17
@ Media
Definition project_package.hpp:17
@ State
Definition project_package.hpp:17
@ Artifact
Definition project_package.hpp:17
@ Receipt
Definition project_package.hpp:17
AtomicPublishOutcome
Visibility and finalization state after a namespace-publication attempt.
Definition atomic_publisher.hpp:36
runtime::Result< OpenPackageResult, PackageError > open_package(const std::filesystem::path &root, const timeline::SchemaRegistry ®istry, const PackageLimits &limits={}) noexcept
Opens and validates the sole referencing generation in a stable package root.
Definition generated_event_source.hpp:33
Definition program_compiler.hpp:18
Exact package location of one SHA-256-addressed blob.
Definition project_package.hpp:20
BlobStore store
Store containing the blob.
Definition project_package.hpp:22
constexpr auto operator<=>(const BlobReference &) const =default
timeline::ContentHash hash
SHA-256 identity used as the blob filename.
Definition project_package.hpp:24
Validated package generation and its package-owned working directories.
Definition project_package.hpp:37
timeline::Project project
Fully decoded, reference-validated generation.
Definition project_package.hpp:39
std::filesystem::path journal_directory
Stable directory in which FileJournal state may be opened.
Definition project_package.hpp:41
std::filesystem::path cache_directory
Recoverable derived-data directory.
Definition project_package.hpp:43
bool cache_recreated
Whether this open recreated a missing cache directory.
Definition project_package.hpp:45
Path-bearing package failure.
Definition atomic_publisher.hpp:28
Admission limits for untrusted project and blob bytes.
Definition project_package.hpp:29
std::uint64_t max_project_bytes
Maximum admitted bytes for project.json.
Definition project_package.hpp:33
std::uint64_t max_blob_bytes
Maximum admitted bytes for one content-addressed blob.
Definition project_package.hpp:31