diff --git a/crates/modules/shuma/SDD.md b/crates/modules/shuma/SDD.md index 9ccdcc8..9d81280 100644 --- a/crates/modules/shuma/SDD.md +++ b/crates/modules/shuma/SDD.md @@ -15,13 +15,24 @@ hablan postcard sobre Unix socket. | `shuma-core` | lib | Pipeline: parse spec → encarnar → supervisar → persist | | `shuma-intent` | lib | Intenciones, grafo de sesión y libro de macros | | `shuma-line` | lib | Análisis de la línea de comandos: lexer bash, clasificación, pipeline, autocompletado, `LineState` editable — agnóstico (GUI/TUI) | +| `shuma-session` | lib | `WorkSession`: cwd (= identificador de aislamiento), historial de comandos y grupos reutilizables | +| `shuma-exec` | lib | Ejecución de comandos con salida en streaming (stdout/stderr línea a línea por canal) | | `shuma-sysmon` | lib | Muestreo de CPU/memoria con historial para los monitores | -| `shuma-shell-render` | lib | Layout del lienzo de intenciones | +| `shuma-shell-render` | lib | Layout del lienzo de intenciones (legado del grafo) | -App: `apps/shuma-shell` — el shell GPUI: input inteligente (resaltado + -autocompletado + pipes vía `shuma-line`), monitores con curva -(`shuma-sysmon`) y lienzo de intenciones. Crates agnósticos → un futuro -`shuma-shell-tui` reusaría `shuma-line` + `shuma-sysmon` sin cambios. +App: `apps/shuma-shell` — el shell GPUI: input inteligente (`shuma-line`), +ejecución real con streams (`shuma-exec`) volcada al panel central, +sesión de trabajo con cwd/aislamiento (`shuma-session`), monitores con +curva (`shuma-sysmon`) y divisores arrastrables. Los crates son +agnósticos → un futuro `shuma-shell-tui` los reusaría sin cambios. + +## sandokan vs. shuma-exec + +`sandokan` orquesta *Cards* de brahman (entidades aisladas y +supervisadas) y es **poll-based por diseño**. El shell ejecuta líneas de +shell ad-hoc y necesita ver la salida fluir → eso es `shuma-exec`. Dos +capas distintas, a propósito; un comando que lance un módulo brahman +podría enrutarse por sandokan más adelante. ## Dependencias