feat(shuma): núcleo del shell — parser de intenciones + grafo de contexto
shuma-intent: el corazón agnóstico del shell shuma. - parse — Intention: una línea del prompt parseada en etapas separadas por pipe. Ref (%cN comando / %pN buffer) + Stage (Exec | Inject). Parsea el ejemplo de la spec: `ssh nodo 'cat data.json' | %p1 | sort`. - graph — SessionGraph: el grafo de contexto de la sesión. record() registra una intención (%cN), complete() le asigna buffer de salida (%pN) + estado, resolve() resuelve referencias, dangling_refs() valida una intención antes de ejecutar (la validación previa del prompt), collapse_succeeded() retrae nodos OK (quietud visual). Todo puro y serializable (sesiones exportables). El front-end GPUI (zonas RUN/SENS + lienzo central) lo rehidrata; la ejecución la hace sandokan. 8 tests verdes. cargo check --workspace verde. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
//! `shuma-intent` — núcleo agnóstico del shell shuma.
|
||||
//!
|
||||
//! El shell shuma trabaja con **intenciones**, no comandos sueltos: cada
|
||||
//! línea del prompt es una [`Intention`] (etapas conectadas por pipes,
|
||||
//! con tokens de referencia `%cN`/`%pN`). El [`SessionGraph`] mantiene el
|
||||
//! historial como un grafo de contexto navegable: cada comando es un
|
||||
//! nodo, cada salida un buffer intermedio referenciable.
|
||||
//!
|
||||
//! Todo acá es lógica pura y serializable — el front-end GPUI (las tres
|
||||
//! zonas: RUN, SENS y el lienzo central) lo rehidrata; la ejecución real
|
||||
//! la hace `sandokan`.
|
||||
|
||||
#![forbid(unsafe_code)]
|
||||
|
||||
pub mod parse;
|
||||
pub mod graph;
|
||||
|
||||
pub use graph::{CommandNode, NodeStatus, SessionGraph};
|
||||
pub use parse::{Intention, Ref, Stage};
|
||||
Reference in New Issue
Block a user