feat(yachay): notebooks reproducibles — yachay-core + demo

yachay-core: notebook como secuencia de celdas (orden de lectura) +
DAG de dependencias (orden de ejecución). Celdas markdown/código/embed
con content_hash BLAKE3; editar una propaga staleness a descendientes;
digest Merkle por celda (content_hash ‖ digests upstream) y
notebook_digest que certifica reproducibilidad. Demo CLI en apps/yachay.

14 tests. Sin kernel ni UI, #![forbid(unsafe_code)].

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-20 17:09:18 +00:00
parent 3f8a3ea4b6
commit e3980d005f
9 changed files with 661 additions and 0 deletions
@@ -0,0 +1,22 @@
//! `yachay-core` — el núcleo de los notebooks reproducibles.
//!
//! Un notebook de yachay es a la vez una secuencia de celdas (el orden
//! de lectura) y un DAG de dependencias (el orden de ejecución). Editar
//! una celda marca obsoletas a sus descendientes; un digest Merkle
//! certifica que dos corridas del mismo notebook producen lo mismo —
//! reproducibilidad verificable, no prometida.
//!
//! - [`cell`] — la [`Cell`] y su clase ([`CellKind`]: markdown, código,
//! o un embed de otro módulo brahman).
//! - [`notebook`] — el [`Notebook`]: DAG, staleness y digest.
//!
//! Sin kernel, sin ejecución real, sin UI — tipos puros. La ejecución de
//! código y el render de los embeds van en capas superiores.
#![forbid(unsafe_code)]
pub mod cell;
pub mod notebook;
pub use cell::{Cell, CellId, CellKind, CellState};
pub use notebook::Notebook;