@jossuealcala/madre 1.0.0 → 1.0.1
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 +45 -1
- package/CONTRIBUTING.md +5 -1
- package/NOTICE +20 -1
- package/README.md +8 -7
- package/TRADEMARKS.md +65 -0
- package/docs/INTERNALS.md +2 -2
- package/docs/REFERENCE.md +6 -5
- package/docs/madre-banner.png +0 -0
- package/package.json +4 -3
- package/public/app.js +529 -91
- package/public/es.js +1330 -1070
- package/public/macroverso.js +22 -2
- package/public/salas-mac.css +518 -24
- package/public/salas-mac.html +25 -21
- package/public/salas-mac.js +1454 -125
- package/public/styles.css +167 -3
- package/public/tour-chapters.js +162 -52
- package/public/tour.js +48 -12
- package/public/troubleshooting.js +2 -2
- package/src/auth-probe.mjs +29 -6
- package/src/credentials.mjs +80 -0
- package/src/directives.mjs +6 -6
- package/src/extensions.mjs +31 -10
- package/src/heartbeat.mjs +55 -0
- package/src/local-ai.mjs +48 -0
- package/src/looks.mjs +38 -5
- package/src/models.mjs +38 -0
- package/src/modules/ollama.mjs +14 -2
- package/src/outbound.mjs +17 -0
- package/src/room/escalation.mjs +1 -0
- package/src/room.mjs +60 -19
- package/src/server.mjs +350 -27
- package/src/tour.mjs +24 -9
- package/src/whats-new.mjs +10 -10
- package/docs/madre-banner.svg +0 -25
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,51 @@ 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
|
-
## 1.0.
|
|
7
|
+
## 1.0.2 · Sin publicar
|
|
8
|
+
|
|
9
|
+
## 1.0.1 · 2026-10-14
|
|
10
|
+
|
|
11
|
+
- **MADRE habla más claro.** Se revisaron los textos de toda la interfaz, del recorrido y de «Qué hay de nuevo» para que se entiendan aunque no sepas de IA ni de programación: 1,157 cambios, solo de palabras. *Turno* ahora es *respuesta*; los estados de una memoria son SIN CONFIRMAR, CONFIRMADA, EN CUARENTENA y DESCARTADA; Diagnóstico habla de *problema* y *solución*; la llave de #3 y #4 es *confirmar* y la de un proveedor, *llave de API*. Los comandos de la consola siguen en inglés y los guiños a Alien siguen ahí.
|
|
12
|
+
- **IA local por proyecto.** En **Inicio › Ajustes › IA local** eliges qué proyectos usan Ollama: **Automático** (todos, como antes), **Uno a uno** (solo los que enciendes) o **Manual** (cada proyecto decide en sus Ajustes). Cambiar de modo no toca a los proyectos que ya existen, solo cómo empiezan los nuevos; el cambio llega al instante a los proyectos abiertos. En un proyecto, «Activo» de Módulos › IA local ya no apaga la IA local de los demás. El widget Modelos locales marca los proyectos sin ella y lleva a estos ajustes.
|
|
13
|
+
- **Un aviso diario de que MADRE sigue en uso.** Una vez al día cada copia le dice a madre.run que está encendida: un identificador al azar que la copia crea para sí, la versión de MADRE, el sistema y la versión de Node. Nada más: ni nombre, ni correo, ni proyectos; madre.run no guarda la IP. Es la forma de saber cuántas personas usan MADRE, qué versiones corren y si regresan. Está siempre encendido, aparece en «Lo que se envía» y en *Lo que sale de la máquina* de la referencia, y sin red falla en silencio.
|
|
14
|
+
- **Un recorrido para quien ya tenía 1.0.** Quien terminó el recorrido de 1.0 ve un saludo propio y solo lo que cambió: los nombres más claros, Inicio a tu manera, los widgets, la IA local por proyecto, el cielo de conexiones, Ajustes y los gestos nuevos, cada capítulo con una línea «Nuevo desde 1.0». Para quien empieza, el saludo lleva primero a conectar los agentes y agregar proyectos, y un proyecto ya no lo saluda antes que Inicio.
|
|
15
|
+
- **Guías de los widgets y avisos de la primera vez.** Un capítulo explica cada widget, y la primera vez que uno aparece en Inicio dice qué muestra. La primera vez que abres Conexiones, el Mapa de proyectos, Ajustes o Agregar en Inicio, o Ajustes, Módulos, Diagnóstico, el Mapa de memoria, Agentes o Primeros pasos en un proyecto, una tarjeta dice para qué sirve.
|
|
16
|
+
- **Reiniciar todos.** Después de actualizar, Inicio reinicia de una vez los proyectos que siguen con la versión anterior, desde **Te necesita** o **Ajustes › Versión**. Los que están trabajando o esperándote se dejan para después, y te dice cuáles.
|
|
17
|
+
- **Un proyecto abierto en otro MADRE lo dice.** Abrirlo desde Inicio cuando ya está abierto en otra parte responde con la dirección donde está, en lugar de «no abrió».
|
|
18
|
+
- **La marca MADRE, por escrito.** `TRADEMARKS.md` dice qué se puede hacer con el nombre y qué no; `NOTICE` lleva la línea que todo fork conserva («Based on MADRE by Jossue Alcalá»), y las contribuciones se firman con `Signed-off-by`.
|
|
19
|
+
- **Claude ya se puede conectar con tu propia API key.** Al iniciar sesión eliges la puerta: «Cuenta de Claude» (tu suscripción) o «Consola de Anthropic» (se cobra a tu crédito de API). También puedes pegar tu `ANTHROPIC_API_KEY`: se escribe donde el CLI de Claude la lee (`~/.claude/settings.json`, solo para ti), MADRE no guarda copia y, si el CLI no la acepta, todo vuelve como estaba. Esa llave manda sobre todo Claude Code de esta computadora, y MADRE lo dice antes de guardarla.
|
|
20
|
+
- **Un inicio de sesión con navegador ya se puede terminar dentro de MADRE.** La página de Claude devuelve un código y su CLI lo espera: antes no había dónde pegarlo y el intento moría a los cinco minutos. Ahora la dirección se queda a la vista, hay una caja para el código y una tecla para cancelar; la espera dura hasta quince minutos, porque del otro lado hay una persona.
|
|
21
|
+
- **Inicio trae los ajustes de conexión completos.** La misma tarjeta que el proyecto: con qué cuenta está conectado cada agente, las puertas para entrar, la caja para pegar una llave, la página del inicio de sesión y su código. Un campo a medio escribir ya no se borra cuando el panel se actualiza solo.
|
|
22
|
+
- **El README abre con el logo oficial de MADRE** y la frase de 1.0, en lugar del banner con la firma «MU/TH/UR 6000 · INTERFACE 2037».
|
|
23
|
+
- **Los planes revisan sus resultados y pueden continuar** hasta tres tramos por petición. Un paso sin número sigue leyendo, o creando si el plan ya puede crear; uno que pide `#3` o `#4` por encima de tu mensaje espera tu llave para ese agente, y `#4` la pide siempre.
|
|
24
|
+
- **Inicio muestra las conexiones directas entre proyectos** antes de las del Coordinador y deja más espacio para leerlas. Si una sala tarda en responder, conserva brevemente su último estado conocido; el Mapa de proyectos vuelve a intentar una lectura fallida.
|
|
25
|
+
- **La navegación del Mapa respeta las ventanas abiertas.** Clics, arrastres y rueda sobre una tarjeta no actúan sobre el lienzo detrás.
|
|
26
|
+
- **Los comandos indican su estado y tiempo transcurrido.** Cada línea muestra una barra de actividad mientras corre y el resumen distingue las que terminaron. Inicio deja de mostrar como pendiente una línea ya iniciada y conserva el agente que la pidió.
|
|
27
|
+
- **Los servidores tienen una tecla de recarga reconocible.**
|
|
28
|
+
- **OpenCode por proveedor.** El selector de modelo del chat agrupa los modelos de OpenCode bajo su proveedor (solo los que tienen llave o cuenta, y los propios de OpenCode) y lleva a **Ajustes › Agentes › OpenCode**: ahí se pega o se quita la llave de cada proveedor, se elige cuáles aparecen en el chat y el modelo por defecto.
|
|
29
|
+
- **El mapa de conexiones de Inicio, más claro.** La tarjeta muestra solo los proyectos conectados, cada uno con un tono derivado de tu acento que se repite en sus cables y en su nombre; tocarla abre el mapa completo, amplio, en «Ver las conexiones».
|
|
30
|
+
- **Botones con sombra más limpia**, con un borde fino y una sombra corta, en claro y en oscuro.
|
|
31
|
+
- **Ajustes › Agentes, ordenado.** Cada agente es una línea con su estado hasta que lo abres; abierto, sus opciones van en pares. El registro de un inicio de sesión ya no apila un «still running…» cada 8 segundos: la línea se actualiza, y cada intento empieza limpio. Los proveedores de OpenCode viven dentro de su tarjeta, una línea cada uno y una sola fila para agregar otro.
|
|
32
|
+
- **Inicio a tu medida.** Clic derecho en cualquier tarjeta de Inicio: moverla antes o después, llevarla arriba o abajo de los proyectos, cambiar su tamaño (pequeño, medio, grande, ancho completo), quitarla o **Agregar a Inicio**. Los proyectos también se mueven con su clic derecho, y el orden queda como «Tuyo».
|
|
33
|
+
- **Cada página con su fondo.** Inicio conserva el fondo que eliges en su Apariencia y cada proyecto el suyo; el tema, el acento y lo demás siguen compartidos. Cada tarjeta del cajón muestra el fondo de su sala. Un proyecto que nunca eligió uno conserva el que tenía.
|
|
34
|
+
- **Inicio se acomoda a cualquier ancho de tarjeta.** El cajón de proyectos tiene su nombre más grande y sus herramientas en una sola fila, alineadas al centro; si se angosta, la búsqueda baja a su propia línea y «Agregar proyecto» queda como «+». En el Coordinador, «Hablar con el Coordinador» baja bajo su nombre cuando no cabe al lado. Los botones de cada tarjeta nunca se enciman con el título. «N proyectos más, sin conexión» va en una pastilla discreta, y las barras de los widgets llenan su ancho.
|
|
35
|
+
- **Inicio en una cuadrícula exacta.** 12 columnas y filas de 96 px: cada tarjeta ocupa columnas y filas enteras, así que sus bordes coinciden con los de las demás. Con clic derecho eliges el **ancho** y el **alto** (automático, o de 2 a 5 filas); lo que no cabe se desplaza dentro de la tarjeta. Al angostar la pantalla, las tarjetas pasan a medio ancho y a ancho completo, y los pares terminan parejos.
|
|
36
|
+
- **Arrastrar hasta el borde**: mientras llevas una tarjeta o un proyecto, acercarte arriba o abajo desplaza Inicio, más rápido cuanto más cerca, sin soltarlo.
|
|
37
|
+
- **La barra de Inicio ya no recorta el punto de estado** de un proyecto abierto ni su halo.
|
|
38
|
+
- **«Te necesita» con aire**: cada aviso en su bloque, con el título y su pista bien espaciados y la acción en su propio renglón.
|
|
39
|
+
- **Conexiones como flujo eléctrico**: sin flechas, una línea tenue con corriente que corre en el sentido en que viajan las notas, y en los dos cuando se leen entre sí.
|
|
40
|
+
- **La barra de Inicio se comporta como la de los proyectos**: con el puntero encima, el ícono y su palabra toman tu acento, la tecla se eleva, el trazo se engrosa y cada dibujo se mueve a su manera (el eslabón se une, los planetas giran, recargar da la vuelta).
|
|
41
|
+
- **Las conexiones, un cielo.** Cada proyecto es una estrella en su tono, que titila a su ritmo; las notas que viajan son chispas y el Coordinador es la estrella más brillante, con su marca. En oscuro brillan; en claro son más sobrias, para que los nombres se lean.
|
|
42
|
+
- **Los íconos de la barra de Inicio se mueven** como los de las salas: en Conexiones las dos mitades del eslabón se unen, y en el Mapa de proyectos los planetas giran en su órbita mientras el puntero está encima.
|
|
43
|
+
- **Cada proyecto del cajón sobre su parte del fondo de pantalla**, difuminada y bajo un velo de la tarjeta, para que el texto conserve su contraste.
|
|
44
|
+
- **Inicio en un solo tablero.** Cada tarjeta mide lo que mide su contenido, a cualquier tamaño, así que ninguna se estira con espacio vacío. Los proyectos viven en un **cajón** que se mueve como cualquier tarjeta, con su búsqueda, filtro, orden y «Agregar proyecto» en su encabezado: muestra tres filas y un «+N» dice cuántos más hay, abiertos y dormidos, y los abre.
|
|
45
|
+
- **Reglas para widgets**: piezas y tokens comunes (`.sm-w-grid`, `.sm-w-metric`, `.sm-meter`) que se acomodan al ancho que tiene la tarjeta, no a la ventana.
|
|
46
|
+
- **Conexiones en dos columnas**, con «Revocar» junto a «Incluir siempre».
|
|
47
|
+
- **Arrastrar y soltar en Inicio.** Las tarjetas se toman de su encabezado y se acomodan en vivo, también de arriba a abajo de los proyectos; los proyectos se reordenan arrastrándolos entre los demás y el orden queda como «Tuyo».
|
|
48
|
+
- **El mapa de conexiones, interactivo.** Al pasar sobre un proyecto se iluminan solo sus conexiones; tocar el mapa abre **Mapa de conexiones** en su ventana: un círculo con los proyectos conectados alrededor del Coordinador y, al lado, lo que eliges — un proyecto (a quién consulta, quién lo consulta) o una línea (qué cruza, hasta cuándo, cuántas lecturas).
|
|
49
|
+
- **Widgets en Inicio**, cada uno con datos reales: Recursos del sistema (procesador y memoria disponible, leída del propio sistema), Servidores (los de tus proyectos abiertos con Vista previa, y si responden), Calidad de la memoria (madurez de cada proyecto y su lado más débil), Entrenamiento del Coordinador y Modelos locales (Ollama y qué tan cerca está cada proyecto de su propio modelo). Uno sin nada que lo alimente no se puede agregar y dice qué le falta.
|
|
50
|
+
- **Agentes en Inicio con el diseño de los proyectos**: tarjetas plegables con su estado, también en el asistente para quien empieza, y los proveedores de OpenCode dentro de su tarjeta.
|
|
51
|
+
- **Los botones de ajustes y «nuevo» de Archivos y Servidores** ya no parecen presionados: en reposo llevan el borde fino de los controles de al lado y se tiñen al pasar el puntero.
|
|
8
52
|
|
|
9
53
|
## 1.0.0 · 2026-10-12
|
|
10
54
|
|
package/CONTRIBUTING.md
CHANGED
|
@@ -12,11 +12,15 @@ node ./bin/madre.mjs doctor --catalog # what MU/TH/UR already knows
|
|
|
12
12
|
node ./bin/madre.mjs start --no-open # the room from source, URL in the terminal
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
+
## Sign your work
|
|
16
|
+
|
|
17
|
+
Every commit carries a `Signed-off-by:` line (`git commit -s`). It is the [Developer Certificate of Origin](https://developercertificate.org): you wrote the change, or have the right to submit it, and it goes in under the project's [Apache 2.0](LICENSE) licence. Contributions are credited in the history; MADRE's name, logo and NOTICE stay as they are ([TRADEMARKS.md](TRADEMARKS.md)).
|
|
18
|
+
|
|
15
19
|
## What a good change looks like
|
|
16
20
|
|
|
17
21
|
- One idea per commit, in the imperative voice the log already speaks.
|
|
18
22
|
- A test for every behaviour you touch: `test/pulse.test.mjs` for the room and adapters, `test/memory.test.mjs` for memory, NOSTROMO and MOTHER, `test/sentinel.test.mjs` for the sentinel. No test may call a real model.
|
|
19
|
-
- Nothing leaves the machine without the human's say-so. If your change sends anything anywhere, it needs a switch, off by default, and a line in the threat model.
|
|
23
|
+
- Nothing leaves the machine without the human's say-so. If your change sends anything anywhere, it needs a switch, off by default, and a line in the threat model. The one exception is the author's daily «still in use» notice (`src/heartbeat.mjs`), declared in `docs/REFERENCE.md`; nothing may be added to what it carries.
|
|
20
24
|
- Agents never write outside their lease. If you widen what an agent may do, the permission modes and MU/TH/UR's catalog must say so.
|
|
21
25
|
- MU/TH/UR speaks in uppercase and in short sentences; the room speaks like a person. Keep both voices.
|
|
22
26
|
|
package/NOTICE
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
MADRE
|
|
2
2
|
Copyright 2026 Jossue Alcalá.
|
|
3
3
|
|
|
4
|
-
This product
|
|
4
|
+
This product is MADRE, created by Jossue Alcalá (https://jossuealcala.com).
|
|
5
5
|
Licensed under the Apache License, Version 2.0. See LICENSE.
|
|
6
|
+
|
|
7
|
+
Attribution. Section 4(d) of the License requires every redistribution of
|
|
8
|
+
this software, and of any work derived from it, to carry the attribution
|
|
9
|
+
notices in this file. Keep the following line, unchanged, in the NOTICE file
|
|
10
|
+
of your distribution:
|
|
11
|
+
|
|
12
|
+
Based on MADRE by Jossue Alcalá — https://madre.run
|
|
13
|
+
|
|
14
|
+
"MADRE", the MADRE logo and madre.run are trademarks of Jossue Alcalá. The
|
|
15
|
+
License grants no permission to use them (Section 6). A modified version must
|
|
16
|
+
be distributed under a different name and logo; saying that it is based on
|
|
17
|
+
MADRE is welcome. See TRADEMARKS.md.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
MADRE es de Jossue Alcalá. Cualquier versión o fork que se distribuya debe
|
|
22
|
+
conservar este archivo y la línea «Based on MADRE by Jossue Alcalá —
|
|
23
|
+
https://madre.run». El nombre MADRE, su logo y madre.run son marcas de Jossue
|
|
24
|
+
Alcalá: una versión modificada lleva otro nombre. Ver TRADEMARKS.md.
|
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://madre.run"><img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/madre-banner.
|
|
2
|
+
<a href="https://madre.run"><img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/madre-banner.png" alt="MADRE · Todas tus IAs en un mismo chat · Codex, Claude Code, Gemini CLI y OpenCode" width="100%"></a>
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
@@ -10,10 +10,6 @@
|
|
|
10
10
|
<img alt="license" src="https://img.shields.io/badge/licencia-Apache--2.0-9bff66?style=flat-square&labelColor=050605">
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
|
-
```
|
|
14
|
-
MU/TH/UR 6000 · INTERFACE 2037 · MADRE IS READY
|
|
15
|
-
```
|
|
16
|
-
|
|
17
13
|
<br>
|
|
18
14
|
|
|
19
15
|
# Todas tus IAs en un mismo chat.
|
|
@@ -169,7 +165,7 @@ Esto importa más que cualquier función.
|
|
|
169
165
|
|
|
170
166
|
**Tus llaves, donde hacen falta y en ningún otro lado.** Cuando das la llave de un agente, MADRE la escribe en el archivo donde ese CLI la busca, cerrada a tu usuario, y no conserva copia. Una integración no tiene CLI al que dársela, así que esa —y solo esa— la guarda MADRE, en su propia bodega de tu máquina, con permisos de solo tu usuario, aceptada únicamente desde esta computadora. Nunca en su config, ni en su registro, ni en sus logs, ni en lo que lee un agente: la ficha solo muestra que hay una guardada y cuántos caracteres tiene.
|
|
171
167
|
|
|
172
|
-
**Nada sale por su cuenta.** Lo que un agente lee viaja a *su* proveedor, con tu cuenta y tus límites — como si lo hubieras corrido en tu terminal, porque eso es exactamente lo que MADRE hace. Lo que MADRE consulta por su cuenta está declarado, con lo que lo apaga: la consulta diaria de versiones nuevas (npm y GitHub), la cuota de tu plan de Claude, los embeddings e imágenes de Gemini si los activas, y los reportes de fallos, apagados por defecto.
|
|
168
|
+
**Nada sale por su cuenta.** Lo que un agente lee viaja a *su* proveedor, con tu cuenta y tus límites — como si lo hubieras corrido en tu terminal, porque eso es exactamente lo que MADRE hace. Lo que MADRE consulta por su cuenta está declarado, con lo que lo apaga: la consulta diaria de versiones nuevas (npm y GitHub), la cuota de tu plan de Claude, los embeddings e imágenes de Gemini si los activas, y los reportes de fallos, apagados por defecto. Y una vez al día, siempre, un aviso de que esta copia sigue en uso: un identificador al azar, la versión de MADRE, el sistema y la versión de Node. Sin tu nombre, tu correo, tu IP ni nada de tus proyectos; es como el autor sabe cuántas personas usan MADRE.
|
|
173
169
|
|
|
174
170
|
**Y te deja leerlo.** Toca el núcleo del Mapa de memoria y se abre «Lo que se envía»: el documento exacto que MADRE escribe en tu nombre cada turno, el comando exacto con el que lo entrega, y el registro de cada llamada que salió de esta máquina. No es una promesa: es una pantalla.
|
|
175
171
|
|
|
@@ -228,7 +224,12 @@ MADRE es gratis y seguirá siéndolo. Si te ahorra tiempo y quieres que siga cre
|
|
|
228
224
|
puedes [apadrinarla](https://github.com/sponsors/jossuealcacao-exe). Nada del producto
|
|
229
225
|
cambia según lo que hagas con ese enlace.
|
|
230
226
|
|
|
231
|
-
Apache-2.0 · [
|
|
227
|
+
Apache-2.0 · [Jossue Alcalá](https://jossuealcala.com/en/)
|
|
228
|
+
|
|
229
|
+
El código es libre: úsalo, modifícalo y haz forks. El nombre **MADRE**, su logo y madre.run son
|
|
230
|
+
marcas de Jossue Alcalá. Un fork que se distribuya conserva el archivo [`NOTICE`](NOTICE) con la línea
|
|
231
|
+
«Based on MADRE by Jossue Alcalá», y si cambia el código lleva otro nombre. Qué sí y qué no:
|
|
232
|
+
[TRADEMARKS.md](TRADEMARKS.md).
|
|
232
233
|
|
|
233
234
|
<br>
|
|
234
235
|
|
package/TRADEMARKS.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Marca MADRE · MADRE trademark policy
|
|
2
|
+
|
|
3
|
+
**Español** · [English below](#english)
|
|
4
|
+
|
|
5
|
+
El código de MADRE es libre bajo la [licencia Apache 2.0](LICENSE): puedes usarlo, estudiarlo,
|
|
6
|
+
modificarlo, hacer forks y distribuirlos, también con fines comerciales. **El nombre no viene
|
|
7
|
+
incluido.** «MADRE», su logo y madre.run son marcas de Jossue Alcalá, y la licencia no da
|
|
8
|
+
permiso de usarlas (sección 6). Esta página dice qué sí y qué no.
|
|
9
|
+
|
|
10
|
+
## Lo que siempre debe hacer un fork
|
|
11
|
+
|
|
12
|
+
- **Decir de dónde viene.** Conserva el archivo [`NOTICE`](NOTICE) con la línea
|
|
13
|
+
`Based on MADRE by Jossue Alcalá — https://madre.run`. La licencia lo exige (sección 4.d).
|
|
14
|
+
- **Conservar los avisos de copyright** de los archivos que vengan de MADRE (sección 4.c).
|
|
15
|
+
- **Indicar que lo cambiaste** en los archivos que modifiques (sección 4.b).
|
|
16
|
+
|
|
17
|
+
Te pedimos además que la frase «Basado en MADRE» aparezca donde tu proyecto diga quién lo hizo:
|
|
18
|
+
el README, la pantalla «Acerca de» o el pie de página.
|
|
19
|
+
|
|
20
|
+
## Lo que sí puedes hacer sin pedir permiso
|
|
21
|
+
|
|
22
|
+
- Usar MADRE tal cual, con su nombre, para ti o tu equipo.
|
|
23
|
+
- Redistribuir MADRE **sin modificar** con su nombre.
|
|
24
|
+
- Decir con palabras que tu proyecto está «basado en MADRE», «hecho para MADRE» o «compatible con
|
|
25
|
+
MADRE», sin hacer creer que es oficial.
|
|
26
|
+
- Escribir módulos para MADRE y llamarlos «módulo X para MADRE».
|
|
27
|
+
- Hablar de MADRE en artículos, videos, cursos y reseñas.
|
|
28
|
+
|
|
29
|
+
## Lo que necesita otro nombre
|
|
30
|
+
|
|
31
|
+
- Una versión **modificada** que distribuyas: lleva un nombre y un logo propios que no se
|
|
32
|
+
confundan con MADRE (no «MADRE Pro», «MADRE+», «NeoMADRE» ni similares).
|
|
33
|
+
- Un servicio, una app o un paquete que se presente como MADRE o como su versión oficial.
|
|
34
|
+
- Dominios, paquetes de npm, cuentas o repositorios cuyo nombre haga creer que son de MADRE.
|
|
35
|
+
- El logo de MADRE en cualquier cosa que no sea MADRE sin modificar.
|
|
36
|
+
|
|
37
|
+
## Si tienes duda
|
|
38
|
+
|
|
39
|
+
Escribe a Jossue Alcalá en [jossuealcala.com](https://jossuealcala.com) antes de publicar. Esta
|
|
40
|
+
política puede cambiar; la versión vigente es la de este repositorio.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## English
|
|
45
|
+
|
|
46
|
+
MADRE's code is free under the [Apache License 2.0](LICENSE): use it, study it, modify it, fork
|
|
47
|
+
it and redistribute it, commercially too. **The name is not included.** "MADRE", its logo and
|
|
48
|
+
madre.run are trademarks of Jossue Alcalá, and the License grants no permission to use them
|
|
49
|
+
(Section 6).
|
|
50
|
+
|
|
51
|
+
**Every fork must:** keep the [`NOTICE`](NOTICE) file with the line
|
|
52
|
+
`Based on MADRE by Jossue Alcalá — https://madre.run` (required by Section 4(d)); keep the
|
|
53
|
+
copyright notices of files that come from MADRE (4(c)); and mark the files it changed (4(b)). We
|
|
54
|
+
also ask that "Based on MADRE" appears wherever your project says who made it.
|
|
55
|
+
|
|
56
|
+
**You may, without asking:** use MADRE as is, under its name; redistribute it unmodified under
|
|
57
|
+
its name; say your project is "based on MADRE", "made for MADRE" or "compatible with MADRE" without
|
|
58
|
+
implying it is official; name a module "X for MADRE"; write and talk about MADRE.
|
|
59
|
+
|
|
60
|
+
**Needs a different name:** any modified version you distribute (its own name and logo, nothing
|
|
61
|
+
confusable such as "MADRE Pro" or "MADRE+"); anything presented as MADRE or its official
|
|
62
|
+
version; domains, npm packages, accounts or repositories that look like MADRE's; the logo on
|
|
63
|
+
anything that is not unmodified MADRE.
|
|
64
|
+
|
|
65
|
+
In doubt, contact Jossue Alcalá at [jossuealcala.com](https://jossuealcala.com) before publishing.
|
package/docs/INTERNALS.md
CHANGED
|
@@ -82,7 +82,7 @@ Los alcances de imagen de Claude, Gemini y OpenCode se cumplen con **Image Studi
|
|
|
82
82
|
|
|
83
83
|
Un turno en `#2` toma la misma fotografía que CONTROL, sin asiento: varios turnos `#2` pueden correr a la vez. Al terminar, `diff` contra la fotografía: los archivos añadidos se conservan y se registran como `artifacts.created` con su ruta en el proyecto; los modificados, renombrados o borrados se restauran desde la fotografía y se anuncian en `create.reverted`. Las zonas prohibidas se restauran igual que en CONTROL. Cada CLI recibe sus herramientas de escritura sobre el proyecto: Claude Code niega `Write` si `Edit` no está permitido en la misma ruta y OpenCode deja sin herramienta de escritura si `edit` está denegado (ambos verificados con el CLI real), así que en `#2` van juntas y la garantía de "solo añadir" es la restauración posterior, no la regla previa. Gemini recibe solo `write_file`. El `scratchDir` bajo `.pulse/out/` sigue existiendo para lo que no tiene sitio y para Image Studio.
|
|
84
84
|
|
|
85
|
-
En un plan, el modo de cada paso es el mínimo entre lo que pidió el orquestador (`@agente #n
|
|
85
|
+
En un plan, el modo de cada paso es el mínimo entre lo que pidió el orquestador (`@agente #n:`; sin número, `#1`, o `#2` si hay lease), el techo del plan (el modo del mensaje humano) y el `MAX MODE` del agente. `#4` nunca llega a un delegado por el techo: solo con la llave de ese agente. Bajo techo `#3`, un paso `#2` recibe un lease de proyecto emitido a nombre del orquestador y un paso `#3` toma CONTROL con su propio checkpoint, uno a la vez. Bajo techo `#1`, un paso `#2` pasa por la escalación al humano. Un paso `#3` o `#4` que supera el techo pide la llave al humano para ese agente; concederla para el plan no eleva el techo de los demás.
|
|
86
86
|
|
|
87
87
|
## CONTROL por dentro
|
|
88
88
|
|
|
@@ -90,7 +90,7 @@ Antes del turno, MADRE fotografía el proyecto como un commit real bajo `refs/ma
|
|
|
90
90
|
|
|
91
91
|
## Recuperación operativa
|
|
92
92
|
|
|
93
|
-
Si MADRE se detiene a mitad de un turno, al arrancar detecta los `agent.started` sin cierre y registra un `message.failed` recuperado para cada uno. Al cerrar con Ctrl+C o `SIGTERM`, interrumpe los procesos de agente en curso, registra esos turnos como fallidos, entrega los eventos pendientes a las páginas abiertas y termina. Los planes se ejecutan en secuencia y los delegados no delegan,
|
|
93
|
+
Si MADRE se detiene a mitad de un turno, al arrancar detecta los `agent.started` sin cierre y registra un `message.failed` recuperado para cada uno. Al cerrar con Ctrl+C o `SIGTERM`, interrumpe los procesos de agente en curso, registra esos turnos como fallidos, entrega los eventos pendientes a las páginas abiertas y termina. Los planes se ejecutan en secuencia y los delegados no delegan. El orquestador revisa las respuestas y puede abrir otro tramo, hasta tres por petición; `STOPALL` corta cualquier cosa en curso.
|
|
94
94
|
|
|
95
95
|
## Empaquetado y pruebas
|
|
96
96
|
|
package/docs/REFERENCE.md
CHANGED
|
@@ -77,9 +77,9 @@ Cada mensaje sale con un modo. Tu modo es el techo de cualquier plan que ese men
|
|
|
77
77
|
|
|
78
78
|
**EDITAR por dentro.** Antes del turno, un commit real bajo `refs/madre/checkpoints/` que no toca tu rama, tu índice ni tu stash. Durante el turno, `.git/`, `.pulse/`, `.madre/`, los `.env` y `.claude/settings.local.json` quedan en solo lectura a nivel de sistema de archivos y recuperan sus permisos al terminar. Después, la lista de archivos añadidos, modificados y borrados, y `DESHACER` restaura el punto de restauración. Desbloquear `#3` pide el nombre del proyecto; desbloquear `#4` lo pide dos veces. En `#4` cada CLI recibe su herramienta de comandos (Codex sin sandbox de red, Claude `Bash`, Gemini `run_shell_command`, OpenCode `bash`) y la instrucción de decir en una línea qué va a salir y adónde antes de que salga.
|
|
79
79
|
|
|
80
|
-
**Solicitud de permiso.** Si un plan en `#1` llega a un paso que pide crear algo, el proyecto se detiene y pregunta: `GRANT ONCE · GRANT FOR PLAN · DENY`, con cronómetro de tres minutos. Solo el humano concede; un permiso escrito por un agente dentro de la conversación no cuenta.
|
|
80
|
+
**Solicitud de permiso.** Si un plan en `#1` llega a un paso que pide crear algo, el proyecto se detiene y pregunta: `GRANT ONCE · GRANT FOR PLAN · DENY`, con cronómetro de tres minutos. Solo el humano concede; un permiso escrito por un agente dentro de la conversación no cuenta. Un paso que pide `#3` o `#4` también se detiene: se desbloquea con la llave de ese modo y de ese agente. Concederlo para el plan no desbloquea a los demás agentes.
|
|
81
81
|
|
|
82
|
-
**Modo por paso.** Un orquestador puede pedir el modo de cada paso: `@codex #2: crea la página`, `@claude #3: arregla el router`.
|
|
82
|
+
**Modo por paso.** Un orquestador puede pedir el modo de cada paso: `@codex #2: crea la página`, `@claude #3: arregla el router`. Sin número, el paso solo lee, o crea si el plan ya puede crear: `#3` se pide por su nombre. MADRE respeta el `MAX MODE` de cada agente. Con tu mensaje en `#3`, la palabra del orquestador basta para un paso `#3`; con tu mensaje en `#1`, un paso `#2` pasa por la solicitud de permiso y `#3` o `#4` pide tu llave. Un paso `#4` pide siempre la llave de ese agente, aunque tu mensaje vaya en `#4`.
|
|
83
83
|
|
|
84
84
|
**Dos controles por agente.** El Modo máximo, en Ajustes → Permisos, dice hasta dónde puede llegar un mensaje dirigido a cada agente; el Modo inicial, en Ajustes → Agentes, dónde empieza: `#1` solo lectura hasta que armes CREAR, o `#2` para que cada turno pueda añadir archivos sin pedirlo. Aparte, dos habilidades: generar imágenes y web.
|
|
85
85
|
|
|
@@ -113,7 +113,7 @@ Un agente puede poner a trabajar a los demás. Si le pides coordinar, termina su
|
|
|
113
113
|
@claude: Compara ambas síntesis y marca dónde divergen.
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
-
MADRE ejecuta los pasos como turnos normales: cada uno queda en el ledger, pasa por traspaso, presupuesto y timeout.
|
|
116
|
+
MADRE ejecuta los pasos como turnos normales: cada uno queda en el ledger, pasa por traspaso, presupuesto y timeout. Tras las respuestas, el orquestador recibe un turno de cierre aunque no lo haya escrito como paso. Puede proponer el siguiente tramo si aún queda trabajo dentro de los permisos concedidos; MADRE permite hasta tres tramos por petición. Los delegados no abren planes propios. Cada tramo tiene como máximo cuatro pasos más el cierre.
|
|
117
117
|
|
|
118
118
|
**TURNOS.** En Diagnóstico, junto al centinela. Encendido por defecto: una conversación que sigue trabajando cuando abres otra no se detiene, sigue escribiendo su registro y el panel de conversaciones la marca hasta que termina. Dos límites: conversaciones trabajando a la vez (2) y turnos a la vez en cada una (3); un mensaje que los pasaría se rechaza con el motivo antes de empezar. Todas las conversaciones comparten un solo titular de EDITAR o ACCESO TOTAL. Apagado, una sola conversación maneja a los agentes y no se puede cambiar de una que está trabajando. `DETENER TODO` detiene todas.
|
|
119
119
|
|
|
@@ -274,9 +274,10 @@ Los planes viven en `bishop-plans.json` junto al registro del proyecto del Coord
|
|
|
274
274
|
|
|
275
275
|
## LO QUE SALE DE LA MÁQUINA
|
|
276
276
|
|
|
277
|
-
- **
|
|
277
|
+
- **Sin nube ni cuenta.** MADRE no tiene cuenta ni backend que guarde lo tuyo. No guarda credenciales de proveedores.
|
|
278
278
|
- **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.
|
|
279
|
-
- **
|
|
279
|
+
- **Un aviso diario de que sigue en uso, siempre encendido.** Una vez al día cada copia le dice a madre.run que está en uso: un identificador al azar que la copia creó para sí (`~/.pulse/install-id`), la versión de MADRE, el sistema y la versión mayor de Node. Nada más: ni nombre, ni correo, ni proyecto, ni rutas, ni agentes, ni nada de lo que se dice en un proyecto; madre.run no guarda la IP. Es la forma en que el autor sabe cuántas personas usan MADRE, qué versiones corren y si regresan. Sale por el mismo registro que todo lo demás, así que aparece en «Lo que se envía». Sin red, falla en silencio. (`src/heartbeat.mjs`)
|
|
280
|
+
- **Dos envíos propios 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.
|
|
280
281
|
- **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 punto de restauración y `DESHACER`. 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 punto de restauración antes y `DESHACER` después.
|
|
281
282
|
- **Memoria.** Todo lo dicho fuera de INCÓGNITO queda en `~/.pulse/rooms/<sala>/` y vuelve a los prompts de todos los agentes de ese proyecto. INCÓGNITO es la salida para lo que no debe recordarse; PRIVACY, para los nombres que nunca deben aparecer.
|
|
282
283
|
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jossuealcala/madre",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
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",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"url": "https://github.com/jossuealcacao-exe/madre/issues"
|
|
33
33
|
},
|
|
34
34
|
"author": {
|
|
35
|
-
"name": "
|
|
35
|
+
"name": "Jossue Alcalá",
|
|
36
36
|
"url": "https://jossuealcala.com/en/"
|
|
37
37
|
},
|
|
38
38
|
"type": "module",
|
|
@@ -45,7 +45,8 @@
|
|
|
45
45
|
"CHANGELOG.md",
|
|
46
46
|
"LICENSE",
|
|
47
47
|
"NOTICE",
|
|
48
|
-
"
|
|
48
|
+
"TRADEMARKS.md",
|
|
49
|
+
"docs/madre-banner.png",
|
|
49
50
|
"docs/room.png",
|
|
50
51
|
"docs/training",
|
|
51
52
|
"docs/SDK.md",
|