Files
brahman/crates/modules/shuma/SDD.md
T
sergio 37ea535cb7 feat(shuma): shuma-infer — motor de inferencia de intenciones
Detecta patrones de comandos repetidos en el historial: ventana
deslizante sobre las firmas de binarios (sólo ventanas 100%
exitosas), abstracción de argumentos variables (cd /a vs cd /b →
cd <…>), patrones maximales, puntaje por largo × frecuencia.
10 tests, agnóstico y determinista.

El shell lo corre tras cada comando terminado y promueve el patrón
más fuerte a un grupo « ...» en el panel [RUN] — la rehidratación
que convierte la repetición orgánica en una receta de un clic.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 19:12:47 +00:00

58 lines
3.0 KiB
Markdown

# modules/shuma/ — Runtime de espacios aislados (era shipote)
**Propósito.** Cada Workspace = un proceso aislado (namespaces +
cgroups + capabilities filtradas) que expone un wire protocol tipado.
El daemon es dueño de los workspaces; los clientes (cli/shell/gateway)
hablan postcard sobre Unix socket.
## Crates
| crate | tipo | rol |
| ----------------- | ---- | ------------------------------------------------------- |
| `shuma-card` | lib | Card del daemon + spec del Workspace |
| `shuma-protocol` | lib | Wire types: requests/responses + framing |
| `shuma-discern` | lib | Lookup de daemon vía broker brahman |
| `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) + `kill` |
| `shuma-infer` | lib | Motor de inferencia: detecta patrones de comandos repetidos en el historial y abstrae sus argumentos variables |
| `shuma-sysmon` | lib | Muestreo de CPU/memoria con historial para los monitores |
| `shuma-shell-render` | lib | Layout del lienzo de intenciones (legado del grafo) |
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
- `shuma-core``init/ente-incarnate` (encarnación real).
- `shuma-protocol``protocol/brahman-card`.
- Apps: `shuma-daemon` (dueño), `shuma-cli`, `shuma-shell` (GUI),
`shuma-gateway` (HTTP/JSON ↔ postcard).
## Docs
Documentación completa en `crates/modules/shuma/docs/`:
- `ARCHITECTURE.md` — diseño + flow
- `CLI.md` — referencia del cli
- `DEVELOPMENT.md` — guía de contribución
- `RECIPES.md` — specs ejemplo de Workspace
## Estado
LOC 6,907. Backend completo (daemon + cli funcionales). Tests sobre
discern + protocol. 14 TODOs en core (supervisión avanzada). Ver
`docs/changelog/shuma.md`.