1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//! Zenith library subsystem: pack format, registry, and resolver.
//!
//! A library "pack" is a `.zen` file whose IDENTITY is declared by a single
//! `library` SELF-entry in its own `libraries` block, for example:
//!
//! ```kdl
//! libraries { library id="@zenith/flowchart" version="1.0.0" }
//! ```
//!
//! That entry's `id` is the package id and `version` is the pack version. A
//! pack's ITEMS are its `components`, filter/mask `tokens`, and `actions`:
//! item `decision` in pack `@zenith/flowchart` is addressed
//! `@zenith/flowchart#decision`.
//!
//! PRESET packs are embedded in the binary via [`include_str!`] (see
//! [`EMBEDDED_PACKS`]); PROJECT packs live in
//! `<project_dir>/libraries/*.zen` and are scanned at runtime. Resolution order
//! is project packs first, then embedded presets (a project pack shadows an
//! embedded pack of the same id).
//!
//! This module contains pure pack-loading/registry logic only; the CLI command
//! that consumes it lives in [`crate::commands::library`]. The submodules group
//! by concern: `registry` (pack model + parse + resolve), `add` (shared
//! materialization machinery), and one module per `materialize*` flavor
//! (`component`, `token`, `action`).
// ── Public API (crate-internal callers in `commands::library` / `lib.rs`) ─────
pub use ;
pub use ;
pub use ;
pub use materialize;
pub use ;