@jossuealcala/madre 0.7.1 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,7 +4,67 @@ Todas las versiones publicadas de `@jossuealcala/madre`. Fechas en ISO.
4
4
 
5
5
  Una versión se cierra cuando está en npm: hasta entonces su sección se llama **Sin publicar** y puede crecer. Cada versión publicada tiene exactamente una etiqueta `vX.Y.Z`, una release en GitHub y una sección aquí; el parche puede llegar a dos dígitos (`0.2.10`) antes de subir el menor. Ver `docs/ROADMAP.md` para el criterio de qué sube cada número.
6
6
 
7
- ## 0.7.2 · Sin publicar
7
+ ## 0.7.3 · Sin publicar
8
+
9
+ ## 0.7.2 · 2026-10-03
10
+
11
+ Esta versión les da a los agentes botones para pedirte lo que antes te pedían en un párrafo: que corras un comando, que les subas el permiso, que elijas entre opciones. También trae el nivel de esfuerzo por agente, un panel de archivos que se comporta como esperas, y arreglos en la actualización de Ollama y al volver a abrir la sala.
12
+
13
+ ### Un agente puede pedirte que corras un comando
14
+
15
+ - Módulo nuevo, **Runs**, apagado hasta que lo enciendas en MÓDULOS. Cuando un agente necesita un comando que su modo no le deja correr (las pruebas después de un arreglo, un build, un linter), en lugar de pedirte que lo copies a una terminal te deja un botón por comando, con el motivo arriba.
16
+ - Nada corre hasta que presionas. Cada línea corre sola, desde la raíz del proyecto y sin shell: lo que dice el botón es lo que se ejecuta. Una línea con `&&`, `|`, redirecciones, variables o comodines aparece con el motivo por el que no se puede correr.
17
+ - Antes de correr se toma un checkpoint. La salida aparece en la sala como tarjeta y la leen todos los agentes en su siguiente turno; si el comando cambió archivos, **DESHACER** los regresa.
18
+ - Un comando a la vez, hasta diez minutos, y **PARAR TODO** lo detiene. En AIRLOCK el agente sigue corriendo sus propios comandos.
19
+
20
+ ### Cuando un agente pide más permiso, un clic se lo da
21
+
22
+ - Si un agente responde que necesita un modo más alto, debajo de su respuesta aparece una tarjeta con **CONCEDER Y SEGUIR**: escribes la designación del proyecto como siempre (#3 y #4) y el agente recibe tu permiso y continúa. Ya no hace falta escribirle «permiso concedido» en otro mensaje.
23
+ - **ESCRIBIRLE YO** arma el modo y cita su respuesta en la caja, para que agregues instrucciones antes de mandar; **AHORA NO** cierra la tarjeta.
24
+ - Si el agente tenía un modo máximo más bajo, conceder también lo sube en CONEXIONES (y la ceremonia lo dice), en lugar de que el mensaje sea rechazado.
25
+ - Una tarjeta ya contestada se queda cerrada al volver a abrir la sala.
26
+
27
+ ### Las elecciones se leen completas y traen la recomendada
28
+
29
+ - Cuando un agente te pide elegir, cada opción se ve entera: antes se cortaba a 120 caracteres, a veces a media palabra.
30
+ - La opción que el agente recomienda va primero, marcada **RECOMENDADA**. Los agentes ahora tienen que decir cuál elegirían.
31
+ - Las opciones van en filas numeradas en lugar de píldoras, y la que presionaste queda marcada.
32
+ - La vista previa del briefing y la economía ahora incluyen el bloque que enseña a los agentes a ofrecerte opciones, cuando **Choices** está encendido; antes viajaba en cada turno sin aparecer ahí.
33
+ - En GHOST ese bloque ya no se manda, porque ahí la sala nunca lee una elección.
34
+
35
+ ### Nivel de esfuerzo junto al modelo
36
+
37
+ - Un chip nuevo al lado del modelo elige cuánto piensa el agente antes de contestar: de **Bajo** a **Máximo** en Claude, de **Mínimo** a **Muy alto** en Codex.
38
+ - **Por defecto** no manda nada y el CLI usa su propio ajuste; si MADRE puede leerlo (Codex), el chip lo muestra atenuado.
39
+ - Se recuerda por agente, y cada mensaje y respuesta dice con qué esfuerzo se hizo.
40
+
41
+ ### Los archivos del proyecto: copiar, mover y crear carpetas se comportan como esperas
42
+
43
+ - Después de copiar, mover o crear algo, el árbol ya no se cierra: las carpetas que tenías abiertas siguen abiertas, la de destino se abre y lo nuevo se ilumina un momento.
44
+ - **Pegar al lado** de un archivo con el mismo nombre crea una copia (`notas copia.md`, `notas copia 2.md`) en lugar de dar error.
45
+ - Clic derecho en el espacio vacío bajo la lista pega o crea en la raíz del proyecto, que antes no tenía dónde hacerlo.
46
+ - Copiar, mover y renombrar funcionan también desde los resultados de una búsqueda.
47
+ - **Escape** limpia la búsqueda y devuelve el árbol; un segundo Escape sale del campo.
48
+ - El panel es más ancho, y al crear o renombrar, lo que se pide (y dónde va a quedar) se lee completo arriba del campo.
49
+ - Los avisos de estas operaciones salen en el idioma de la sala.
50
+
51
+ ### Un módulo corregido dice que reemplaza al instalado
52
+
53
+ - Cuando un agente escribe una nueva versión de un módulo que ya tienes, la tarjeta lo dice, muestra la versión que sigue funcionando y ofrece **REEMPLAZAR** en lugar de instalar.
54
+
55
+ ### Actualizar Ollama ahora sí cambia la versión que contesta
56
+
57
+ - Al actualizar se reemplazaba el programa, pero el Ollama que ya estaba corriendo seguía siendo el viejo: la tarjeta repetía la versión anterior y parecía que no había pasado nada. Ahora, si el que contesta es más viejo que el instalado, MADRE lo reinicia con el nuevo, y la tarjeta lo dice antes de que presiones.
58
+ - Eso también corrige el error `invalid argument: --no-mmap` al cargar un modelo, que salía cuando el servidor viejo arrancaba piezas de la versión nueva.
59
+ - Si el Ollama que contesta no es uno que MADRE pueda reiniciar (la app, o un servicio de otro usuario), la tarjeta dice qué versión está instalada, cuál contesta y qué hacer, en lugar de anunciar la versión vieja como si fuera nueva.
60
+
61
+ ### Al volver a abrir la sala ya no aparece un inicio de sesión viejo
62
+
63
+ - Si alguna vez iniciaste sesión de un agente desde la sala, cada vez que la página cargaba volvía a salir el aviso con el enlace de ese inicio de sesión, ya vencido, y el enlace se salía de la pantalla. Ahora el aviso sale solo mientras el inicio de sesión está pasando, y los avisos largos parten línea.
64
+
65
+ ### En el teléfono la página ya no se sale de la pantalla
66
+
67
+ - La fila de agentes y chips sobre el compositor ensanchaba toda la página a 580 px, y con ella la barra superior y el hilo. Ahora los chips bajan a su propia línea y se acomodan.
8
68
 
9
69
  ## 0.7.1 · 2026-10-03
10
70
 
package/SECURITY.md CHANGED
@@ -15,6 +15,7 @@ Please include the MADRE version (`madre doctor --json`), the platform, which ag
15
15
 
16
16
  - In `#3 CONTROL`, `.env` files, `.pulse/`, `.madre/` and `.claude/settings.local.json` are made read-only for the length of the turn and restored from the checkpoint afterwards; `.git/` stays writable because the CLIs need it and is only restored after the turn. An agent that changes permissions on purpose is caught by that restoration, not prevented.
17
17
  - `#4 AIRLOCK` runs commands with the CLIs and sessions already on the machine: tests, builds, `git push`, deploys. Files come back with `UNDO`; **what leaves the machine does not**. Arming it asks for two keys — the project designation and the word `AIRLOCK` — and the agent's `MAX MODE` in CONNECTIONS must already reach it, which is a separate deliberate act. No agent can raise its own ceiling, and a permission an agent writes into its own answer is not a permission. Treat `#4` as handing that agent your shell.
18
+ - **Runs** (a module, off until you switch it on) lets an agent below `#4` ask you to run a command. Nothing runs until you press its button, and the server runs the line it recorded the agent asking for, never one sent by the page. Each line runs alone from the project root with no shell, so the line you read is the argv that runs; lines that would need a shell (`|`, `&&`, redirections, variables, globs) are shown and refused. A checkpoint is taken first and `UNDO` restores files; what the command sends off the machine does not come back. Read a command before you press it as you would before pasting it into a terminal.
18
19
  - Everything said outside `#0 GHOST` is kept in the room's memory and reaches every agent of that room. Use GHOST for what must not be remembered.
19
20
 
20
21
  NOBODY DELETES MOTHER'S MEMORY. EVERYTHING ELSE IS FAIR GAME.
package/docs/REFERENCE.md CHANGED
@@ -83,6 +83,8 @@ Cada mensaje sale con un modo. Tu modo es el techo de cualquier plan que ese men
83
83
 
84
84
  **Dos controles por agente.** En `⚙ CONNECTIONS` cada agente tiene `MAX MODE`, hasta dónde puede llegar un mensaje dirigido a él, y `DEFAULT MODE`, dónde empieza: `#1` solo lectura hasta que armes CREATE, o `#2` para que cada turno pueda añadir archivos sin pedirlo. Aparte, dos habilidades: generar imágenes y web.
85
85
 
86
+ **Comandos que pide un agente.** Con el módulo **Runs** encendido, un agente en `#1`, `#2` o `#3` que necesita un comando que no puede correr (las pruebas, un build, un linter) termina su respuesta con un bloque `pulse-run`: el motivo en la primera línea y un comando por línea, cada uno con `$`. MADRE muestra cada línea como un botón y no corre nada hasta que lo presionas. Cada línea corre sola, desde la raíz del proyecto y **sin shell**: lo que lees en el botón es exactamente lo que se ejecuta, así que las líneas con `|`, `&&`, `;`, redirecciones, `$VARIABLES`, comodines, `~` o `cd` se muestran con el motivo y no se pueden correr. Antes de correr, MADRE toma un checkpoint; la salida vuelve a la sala como tarjeta, la leen todos los agentes en su siguiente turno, y si el comando cambió archivos, `UNDO` los regresa. Lo que el comando haya mandado fuera de la máquina no regresa. Un comando a la vez, diez minutos como máximo, y `STOP ALL` lo detiene. En `#4` el agente corre sus propios comandos y no se le enseña el bloque.
87
+
86
88
  ---
87
89
 
88
90
  ## QUÉ PUEDE CADA AGENTE
@@ -187,6 +189,7 @@ El botón de la barra abre la pantalla de diagnóstico. Escribe un síntoma, un
187
189
  | **RIPLEY** | El visor renderiza HTML, SVG y Markdown en un marco sellado, con recarga automática |
188
190
  | **OLLAMA** | Embeddings, archivista y `@madre` en local, gratis y sin cuenta. Se instala, se despierta y descarga su modelo desde el puente |
189
191
  | **PLAYWRIGHT** | Un navegador headless por turno que solo alcanza esta MADRE: abrir la vista previa de RIPLEY, hacer clic, leer consola, capturas al borrador del turno. Requiere `@playwright/mcp` |
192
+ | **Runs** | Un agente te pide correr un comando que su modo no le deja correr; cada línea es un botón, corre sin shell desde la raíz del proyecto, con checkpoint antes y la salida de vuelta en la sala. Cuesta unos 190 tokens de instrucción por turno debajo de AIRLOCK mientras está encendido |
190
193
  | **Ash** | La economía de tokens de la sala. El interruptor pide a los agentes respuestas en prosa compacta; lo demás está siempre encendido y no se nota: el briefing lleva solo los bloques que el turno puede usar, lo que nunca cambia se lee primero para que el caché lo reconozca, y la transcripción se queda quieta en vez de deslizarse. Nada de lo que tú escribes se altera. En `⚙ CONNECTIONS` se ve a dónde se van los tokens |
191
194
  | **AHP+** | Integración externa opcional: estado verificado del proyecto, checkpoints y handoffs en `.ahp/`; `/ahp status`, `/ahp check`, `/ahp context` |
192
195
 
@@ -199,7 +202,7 @@ Cada módulo es un archivo. Los tuyos van en `~/.pulse/modules/` (todas las sala
199
202
  - **Nada por sí solo.** MADRE no tiene nube, cuenta ni backend. No guarda credenciales.
200
203
  - **Lo que un agente lee, viaja a su proveedor.** Codex a OpenAI, Claude Code a Anthropic, Gemini CLI a Google, OpenCode a quien tenga configurado. Si `OPENAI_BASE_URL` o `ANTHROPIC_BASE_URL` cambia ese destino, MADRE enseña solo el hostname y bloquea el turno antes de armar el briefing; un gateway verificado se autoriza por agente con `PULSE_ALLOW_CUSTOM_AGENT_ENDPOINTS`. Aplican la cuenta, los límites y los términos del destino efectivo. `@madre` y el archivista con Ollama no salen de la máquina.
201
204
  - **Dos envíos propios, ambos bajo tu interruptor.** El sentinel, apagado por defecto, envía reportes redactados al colector del proyecto. El canal de liberación, encendido por defecto, pregunta a npm por la última versión: viaja el nombre del paquete, nada más, la misma petición que hace `npx`. `PULSE_UPDATE_CHECK=0` lo apaga.
202
- - **Escritura.** En `#1` nadie escribe. En `#2` solo se añade: lo que existía se restaura al terminar el turno. En `#3` todo el proyecto salvo las zonas prohibidas, con checkpoint y `UNDO`. En un proyecto sin git, MADRE guarda sus fotografías en un repositorio sombra fuera del proyecto.
205
+ - **Escritura.** En `#1` nadie escribe. En `#2` solo se añade: lo que existía se restaura al terminar el turno. En `#3` todo el proyecto salvo las zonas prohibidas, con checkpoint y `UNDO`. En un proyecto sin git, MADRE guarda sus fotografías en un repositorio sombra fuera del proyecto. Un comando que pide un agente lo corres tú, con checkpoint antes y `UNDO` después.
203
206
  - **Memoria.** Todo lo dicho fuera de GHOST queda en `~/.pulse/rooms/<sala>/` y vuelve a los prompts de todos los agentes de esa sala. GHOST es la salida para lo que no debe recordarse; PRIVACY, para los nombres que nunca deben aparecer.
204
207
 
205
208
  ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jossuealcala/madre",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "description": "MADRE · one local room where the AI coding agents already on your machine (Codex, Claude Code, Gemini CLI, OpenCode) work on your project together, share one memory you can see and explore, and answer to you. Read-only by default, with per-message permission modes and checkpoints you can undo. Nothing leaves your machine on its own.",
5
5
  "keywords": [
6
6
  "ai-agents",