ggen-engine 26.10.11

SPARQL-in-Tera code generation engine (vendored, renamed from praxis/crates/ggen)
#![doc = include_str!("../README.md")]
#![deny(clippy::print_stdout)]
// `deny(unsafe_code)` relaxed to `warn` (see `[lints.rust]` in Cargo.toml): `verbs`'s
// `linkme::distributed_slice` noun registration expands to unsafe code (a real, audited
// pattern already used the same way in ggen-cli/cpmp's own noun-verb registration, not new
// unsafe this crate introduces).
#![warn(unsafe_code)]

// Build-time provenance digest (BLAKE3 over commit SHA + 6 strata pack
// digests + ontology triple count), embedded by `build.rs`. Fail-soft:
// absent inputs are represented in-band, never a build failure.
pub mod build_provenance;
pub mod config;
pub mod error;
// Declarative `[[generation.rules]]` sync path (specs/014-ggen-core-replacement, T070),
// wired into `sync::sync` additively alongside the pre-existing frontmatter convention. Not
// `pub`: its entry point (`run`) is `pub(crate)` and consumed only by `sync::sync` -- external
// callers use `sync::sync` the same way regardless of which schema a project's ggen.toml uses.
// Schema dispatch itself lives in `crate::schema_dispatch`, not here. See the module's own doc
// comment for the full design.
mod generation_rules;
// CP8 (Gall's-Law checkpoint 8): projects a real, parsed `template::Frontmatter`
// into RDF facts (`fm:` namespace) and SHACL-validates them via
// `graph::GraphEngine::validate_shacl`, the same engine call
// `sync::admit_shape_files` already makes against rendered template output.
// See the module's own doc comment for exactly which fields are projected.
pub mod frontmatter_rdf;
pub mod graph;
pub mod law_engine;
pub mod lint;
// Ed25519 signing/verifying-key resolution for receipt signing
// (specs/014-ggen-core-replacement, T063). Not `pub`: consumed by
// `sync::write_receipt` and `verbs::handlers::handle_receipt_verify`;
// external callers go through `receipt verify`/a real sync, not this
// module directly. See the module's own doc comment for the key policy.
mod keys;
pub mod pack;
/// DfCM candidate scoping, semantic pack topology, cache identity, and benchmark metrics.
pub mod pack_scope;
// Portable receipt envelope (RFC-GPACK-001 §54/§55, ticket T10): additive
// sidecar written alongside the legacy BLAKE3 chain receipt — see the
// module's own doc comment for the standing-reporting contract (§57).
pub mod portable_receipt;
// Shared "load the project graph, stop before templates" entry point --
// consumed by `ggen-mcp`'s ad-hoc query tools. See its own doc comment.
pub mod project_graph;
/// GALL-001 clean replay verification for portable semantic-pack receipts.
pub mod receipt_chain_seam;
pub mod replay;
// The single dispatch point deciding which of ggen.toml's two schemas a project uses
// (specs/014-ggen-core-replacement, correction 2 / Blocker A part 2). Not `pub`: consumed by
// `sync::sync` and `verbs::handlers` only -- every other caller already goes through one of
// those. See the module's own doc comment for the full design and why it replaces each call
// site's previously ad-hoc dispatch logic.
mod schema_dispatch;
pub mod shell_safety;
pub mod sync;
pub mod template;
pub mod types;
pub mod write;

pub mod repl;
// `verbs` — the ontology-generated clap-noun-verb CLI dispatch layer (GENERATED by `ggen
// sync` from `schema/praxis.ttl`; only `verbs::handlers` carries hand-written logic).
// Re-enabled (specs/014-ggen-core-replacement) now that the workspace's clap-noun-verb pin
// is bumped to the published 26.7.4 (kebab-case-with-snake_case-alias release), resolving
// the version conflict with ggen-cli's own pin that previously kept this disabled.
pub mod verbs;
pub mod watch;

pub use error::AppError;
pub use types::{
    canonical_bytes, Admit, Admitted, AdmittedEvidence, AdmittedReceipt, Blake3Hash, Evidence,
    ObjectRef, ProfileId, Raw, RawEvidence, Validated, ValidatedEvidence,
};