@jossuealcala/madre 0.6.0 → 0.7.0

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/public/es.js CHANGED
@@ -54,16 +54,20 @@ export const ES = {
54
54
  'Deja que un agente te devuelva una decisión como botones en vez de un párrafo, cuando la respuesta depende de tres o más opciones reales. Cuesta unos 135 tokens de instrucción por turno mientras está encendido, contados en la economía como cualquier otro bloque.',
55
55
  'Writes it into the composer · nothing is sent until you press send': 'Lo escribe en el compositor · no se manda nada hasta que le des enviar',
56
56
  '◉ decided here · {n}': '◉ decidido aquí · {n}',
57
- 'TURNS WEIGHED': 'TURNOS PESADOS',
57
+ 'TURNS WEIGHED': 'TURNOS CON FACTURA',
58
+ '{n} characters': '{n} caracteres',
59
+ ' · ALWAYS': ' · SIEMPRE',
60
+ 'Characters each block adds to one prompt.': 'CARACTERES QUE CADA BLOQUE AÑADE A UN PROMPT',
61
+ 'tokens this room never paid for': 'TOKENS QUE ESTA SALA NUNCA PAGÓ',
58
62
  'every turn this room has been billed for': 'cada turno por el que cobraron a esta sala',
59
63
  'INPUT CHARGED': 'ENTRADA COBRADA',
60
64
  'tokens the CLIs charged as fresh reading': 'tokens que los CLIs cobraron como lectura nueva',
61
65
  'OUTPUT CHARGED': 'SALIDA COBRADA',
62
66
  'tokens written back · the dearer half': 'tokens escritos de vuelta · la mitad más cara',
63
67
  'read back from a cache, plus what was never sent': 'leído de una caché, más lo que nunca se envió',
64
- 'CAME FROM CACHE': 'VINO DE CACHÉ',
68
+ 'CAME FROM CACHE': 'LEÍDO DE CACHÉ',
65
69
  'of everything read, the share nobody charged twice': 'de todo lo leído, la parte que nadie cobró dos veces',
66
- 'CH PER TOKEN': 'CAR POR TOKEN',
70
+ 'CHARACTERS PER TOKEN': 'CARACTERES POR TOKEN',
67
71
  'what MADRE wrote against what the CLIs were charged for reading · not a tokenizer':
68
72
  'lo que MADRE escribió contra lo que a los CLIs les cobraron por leer · no es un tokenizador',
69
73
  'AGENT': 'AGENTE',
@@ -71,7 +75,7 @@ export const ES = {
71
75
  'OUTPUT': 'SALIDA',
72
76
  'CACHE': 'CACHÉ',
73
77
  'CACHED %': '% CACHEADO',
74
- 'CH / TOKEN': 'CAR / TOKEN',
78
+ 'CHARS / TOKEN': 'CARACT. / TOKEN',
75
79
  '◉ still open here': '◉ sigue abierto aquí',
76
80
  'The room has carried this into {n} turn(s) and still has no answer.':
77
81
  'La sala ha arrastrado esto a {n} turno(s) y sigue sin respuesta.',
@@ -103,6 +107,54 @@ export const ES = {
103
107
  'Paste here': 'Pegar aquí',
104
108
  'Paste beside it': 'Pegar al lado',
105
109
  'Rename': 'Renombrar',
110
+ 'HOLD': 'BODEGA',
111
+ 'BRIDGE': 'PUENTE',
112
+ 'MED BAY': 'ENFERMERÍA',
113
+ 'JETTISONED': 'ESCLUSA',
114
+ 'ZONE': 'ZONA',
115
+ 'OUT OF CIRCULATION': 'FUERA DE CIRCULACIÓN',
116
+ 'STOPPING': 'DETENIENDO',
117
+ 'No module by that name is loaded.': 'No hay ningún módulo cargado con ese nombre.',
118
+ 'Gemini tried to hand this turn to one of its own subagents. MADRE does not allow that: a subagent answers outside the lease, so nothing it wrote would be checked, shown or undoable.':
119
+ 'Gemini intentó pasarle este turno a uno de sus propios subagentes. MADRE no lo permite: un subagente contesta fuera del arriendo, así que nada de lo que escribiera quedaría comprobado, mostrado ni reversible.',
120
+ 'Ask again saying it should do the work itself, without subagents.':
121
+ 'Vuelve a pedirlo diciéndole que haga el trabajo él mismo, sin subagentes.',
122
+ ' · this reply names {n} file(s) that are not on disk: {files}':
123
+ ' · esta respuesta nombra {n} archivo(s) que no están en disco: {files}',
124
+ ' · nothing was written this turn': ' · en este turno no se escribió nada',
125
+ 'OPEN MODULES': 'ABRIR MÓDULOS',
126
+ '{command} · listens on the whole network': '{command} · escucha en toda la red',
127
+ 'RIPLEY only opens what is bound to 127.0.0.1. Start it with --host 127.0.0.1 (or listen(port, "127.0.0.1")) and it will show up above.':
128
+ 'RIPLEY solo abre lo atado a 127.0.0.1. Arráncalo con --host 127.0.0.1 (o listen(puerto, "127.0.0.1")) y aparecerá arriba.',
129
+ '@{who} puts {agents} to work': '@{who} pone a trabajar a {agents}',
130
+ '@{who} puts {agents} to work, then closes': '@{who} pone a trabajar a {agents} y luego cierra',
131
+ '{n} step': '{n} paso',
132
+ '{n} steps': '{n} pasos',
133
+ '@{who} finished · {steps}': '@{who} terminó · {steps}',
134
+ '@{who} stopped after {steps} · {why}': '@{who} se detuvo tras {steps} · {why}',
135
+ 'SUPPORT': 'APOYAR',
136
+ 'MADRE is free and stays free · this only opens GitHub Sponsors in a tab':
137
+ 'MADRE es gratis y seguirá siéndolo · esto solo abre GitHub Sponsors en una pestaña',
138
+ 'Enter sends · ⌥ Enter (Alt on Linux) breaks the line':
139
+ 'Enter manda · ⌥ Enter (Alt en Linux) salta de línea',
140
+ 'Stop this answer · the room and the other agents keep going':
141
+ 'Detener esta respuesta · la sala y los demás agentes siguen',
142
+ 'That turn is not running any more.': 'Ese turno ya no está corriendo.',
143
+ 'stopped by the human': 'detenido por el humano',
144
+ 'This is how I want it done · the room keeps it as a preference':
145
+ 'Así lo quiero · la sala lo conserva como preferencia',
146
+ 'Never do this again · what the room remembers from it is put out':
147
+ 'Nunca más · lo que la sala recuerde de esto queda fuera de circulación',
148
+ 'A faded star is in MED BAY or JETTISONED: the archive keeps it and never hands it to a turn.':
149
+ 'Una estrella apagada está en ENFERMERÍA o en ESCLUSA: el archivo la conserva y nunca la entrega a un turno.',
150
+ 'Distilled and nobody has judged it. It travels into turns.':
151
+ 'Destilada y nadie la ha juzgado. Viaja a los turnos.',
152
+ 'You marked the reply it came from as good. It travels, confirmed.':
153
+ 'Marcaste como buena la respuesta de la que salió. Viaja, confirmada.',
154
+ 'Quarantined: it is false, or it came from a reply you marked bad. It never travels.':
155
+ 'En cuarentena: es falsa, o salió de una respuesta que marcaste mal. No viaja nunca.',
156
+ 'Put out of circulation and kept so it is not learned again. It never travels.':
157
+ 'Fuera de circulación, conservada para no volver a aprenderla. No viaja nunca.',
106
158
  'New file': 'Archivo nuevo',
107
159
  'New folder': 'Carpeta nueva',
108
160
  'NEW NAME': 'NOMBRE NUEVO',
@@ -583,8 +635,6 @@ export const ES = {
583
635
  'Settings were not saved.': 'Los ajustes no se guardaron.',
584
636
 
585
637
  // Memoria.
586
- '{entries} EXCHANGES · {memories} MEMORIES · {pending} WAITING': '{entries} INTERCAMBIOS · {memories} MEMORIAS · {pending} EN ESPERA',
587
- 'NO INDEX': 'SIN ÍNDICE',
588
638
  'THE ARCHIVIST READS WHAT NOBODY HAS DISTILLED AND KEEPS THE FEW NOTES WORTH REMEMBERING. THE CHEAPEST ALLOWED AGENT GOES FIRST; A LOCAL MODEL COSTS NOTHING AND KEEPS EVERYTHING ON THIS MACHINE.':
589
639
  'EL ARCHIVISTA LEE LO QUE NADIE HA DESTILADO Y SE QUEDA CON LAS POCAS NOTAS QUE VALE LA PENA RECORDAR. VA PRIMERO EL AGENTE PERMITIDO MÁS BARATO; UN MODELO LOCAL NO CUESTA NADA Y DEJA TODO EN ESTA COMPUTADORA.',
590
640
  'AUTO · cheapest allowed': 'AUTO · el más barato permitido',
@@ -692,11 +742,47 @@ export const ES = {
692
742
  '@{agent} timeout saved: {n}s.': 'tiempo límite de @{agent} guardado: {n}s.',
693
743
 
694
744
  // ── DÓNDE ESTÁ LA SALA · LAS TRES PRUEBAS ─────────────────────────────────
695
- 'THE READING IS UNAVAILABLE': 'LA LECTURA NO ESTÁ DISPONIBLE',
696
745
  'NOTHING TO READ YET: THE ROOM HAS NO ARCHIVE.': 'TODAVÍA NO HAY NADA QUE LEER: LA SALA NO TIENE ARCHIVO.',
697
746
  'NEXT': 'SIGUE',
698
747
  'WHAT THE ARCHIVE IS MADE OF': 'DE QUÉ ESTÁ HECHO EL ARCHIVO',
699
748
  'THE THREE TESTS': 'LAS TRES PRUEBAS',
749
+ // El tablero de MEMORIA: lo que el archivo hizo día por día y de qué está hecho.
750
+ 'MEMORY · THE ARCHIVE AT A GLANCE': 'MEMORIA · EL ARCHIVO DE UN VISTAZO',
751
+ 'READ {time}': 'LEÍDO {time}',
752
+ 'REFRESH': 'ACTUALIZAR',
753
+ 'EXCHANGES': 'INTERCAMBIOS',
754
+ 'MEMORIES': 'MEMORIAS',
755
+ 'TURNS THAT RECALLED': 'TURNOS QUE RECORDARON',
756
+ 'WAITING': 'EN ESPERA',
757
+ 'MATURITY': 'MADUREZ',
758
+ '{n} THIS WEEK': '{n} ESTA SEMANA',
759
+ '{last} in the last 7 days, {before} in the 7 before': '{last} en los últimos 7 días, {before} en los 7 anteriores',
760
+ 'EXCHANGES NOBODY HAS DISTILLED YET': 'INTERCAMBIOS QUE NADIE HA DESTILADO TODAVÍA',
761
+ 'THE ARCHIVIST IS UP TO DATE': 'EL ARCHIVISTA VA AL DÍA',
762
+ 'ACTIVITY · LAST {n} DAYS': 'ACTIVIDAD · ÚLTIMOS {n} DÍAS',
763
+ 'NEW MEMORIES': 'MEMORIAS NUEVAS',
764
+ 'PEAK {n}': 'MÁXIMO {n}',
765
+ 'TODAY': 'HOY',
766
+ '{entries} exchanges, {memories} new memories and {recalls} turns that recalled in the last {n} days':
767
+ '{entries} intercambios, {memories} memorias nuevas y {recalls} turnos que recordaron en los últimos {n} días',
768
+ 'BY DAY · TABLE': 'POR DÍA · TABLA',
769
+ 'NOTHING HAPPENED IN THESE DAYS.': 'NO PASÓ NADA EN ESTOS DÍAS.',
770
+ 'DAY': 'DÍA',
771
+ 'THE DASHBOARD IS UNAVAILABLE': 'EL TABLERO NO ESTÁ DISPONIBLE',
772
+ 'BY KIND': 'POR CLASE',
773
+ 'BY ARCHIVIST': 'POR ARCHIVISTA',
774
+ 'BY ZONE': 'POR ZONA',
775
+ 'RECALL AND EMBEDDINGS': 'RECALL Y EMBEDDINGS',
776
+ 'How recalled memories arrived: found by the search, or carried along by the company they keep.':
777
+ 'Cómo llegaron las memorias que se recordaron: las encontró la búsqueda, o las trajo la compañía que tienen.',
778
+ 'SEARCH': 'BÚSQUEDA',
779
+ 'CASCADE': 'CASCADA',
780
+ 'MEMORIES WITH A VECTOR': 'MEMORIAS CON VECTOR',
781
+ 'EXCHANGES WITH A VECTOR': 'INTERCAMBIOS CON VECTOR',
782
+ 'EMBEDDINGS OFF · RECALL MATCHES WORDS ONLY': 'EMBEDDINGS APAGADOS · EL RECALL SOLO EMPAREJA PALABRAS',
783
+ 'PASSES AT {n}': 'PASA CON {n}',
784
+ 'ARCHIVIST AND RECALL': 'ARCHIVISTA Y RECALL',
785
+ 'DATASET AND TRAINING': 'DATASET Y ENTRENAMIENTO',
700
786
  'CAN THE ARCHIVE ANSWER WHAT THIS PROJECT ASKS?': '¿EL ARCHIVO PUEDE CONTESTAR LO QUE ESTE PROYECTO PREGUNTA?',
701
787
  'DOES THE ARCHIVE CONTRADICT ITSELF?': '¿EL ARCHIVO SE CONTRADICE A SÍ MISMO?',
702
788
  'DOES THE LOCAL MODEL LAND WHERE THE AGENTS LANDED?': '¿EL MODELO LOCAL ATERRIZA DONDE ATERRIZÓ LA TRIPULACIÓN?',
@@ -877,7 +963,7 @@ export const ES = {
877
963
  'MU/TH/UR › actualizando. La salida está en la sala, y la ficha se refresca al terminar.',
878
964
  'NOT NOW': 'AHORA NO',
879
965
  'ECONOMY · THIS ROOM': 'ECONOMÍA · ESTA SALA',
880
- 'NO TURNS WEIGHED YET · SEND A MESSAGE AND THIS FILLS': 'TODAVÍA NO SE HA PESADO NINGÚN TURNO · MANDA UN MENSAJE Y ESTO SE LLENA',
966
+ 'NO TURNS WEIGHED YET · SEND A MESSAGE AND THIS FILLS': 'TODAVÍA NO HAY NINGÚN TURNO CON FACTURA · MANDA UN MENSAJE Y ESTO SE LLENA',
881
967
  'ECONOMY UNAVAILABLE': 'ECONOMÍA NO DISPONIBLE',
882
968
  'LOCAL BRAIN': 'CEREBRO LOCAL',
883
969
  'ROLES': 'PAPELES',
@@ -889,8 +975,6 @@ export const ES = {
889
975
  'ESTO ESCRIBE DENTRO DEL PROYECTO. MADRE VA A CORRER, EN LA CARPETA DEL PROYECTO:',
890
976
  'DEVELOP FOR MADRE': 'DESARROLLA PARA MADRE',
891
977
  'Would you like to develop for MADRE?': '¿Te gustaría desarrollar para MADRE?',
892
- 'Use our SDK to build your own modules: one file, no build, no dependencies. A switch, settings, slash commands, tools for the agents, routes. Write it by hand or with an AI, drop it in a folder, reload.':
893
- 'Usa nuestro SDK para construir tus propios módulos: un archivo, sin build, sin dependencias. Un interruptor, ajustes, comandos, herramientas para los agentes, rutas. Escríbelo a mano o con una IA, déjalo caer en una carpeta y recarga.',
894
978
  ' every project · ': ' todos los proyectos · ',
895
979
  ' this project': ' este proyecto',
896
980
  'READ THE SDK ↗': 'LEER EL SDK ↗',
@@ -983,7 +1067,8 @@ export const ES = {
983
1067
  '{events} eventos · {entries} intercambios indexados · {memories} memorias reescritas con el marcador',
984
1068
  '{n} private terms replaced with {marker}': '{n} términos privados reemplazados con {marker}',
985
1069
  'memory · ': 'memoria · ',
986
- 'memory · the human forgot a ': 'memoria · a la humana se le olvidó un ',
1070
+ // Neutro a propósito: casi todas las clases son femeninas (decisión, pregunta, aberración).
1071
+ 'memory · the human forgot a ': 'memoria · olvidada por la humana · ',
987
1072
  ' could not distil #{from}–#{through}: ': ' no pudo destilar #{from}–#{through}: ',
988
1073
  ' · batch skipped': ' · lote saltado',
989
1074
  ' · @{agent} takes the next run': ' · @{agent} toma la siguiente corrida',
@@ -1153,6 +1238,11 @@ export const ES = {
1153
1238
  '⚙ CONNECTIONS': '⚙ CONEXIONES',
1154
1239
  '✎ FEEDBACK': '✎ COMENTARIOS',
1155
1240
  'EXPAND ALL': 'ABRIR TODO',
1241
+ // MEMORIA, emancipada de CONEXIONES: su propio botón en la barra de MU/TH/UR.
1242
+ '\u25a4 MEMORY': '\u25a4 MEMORIA',
1243
+ 'What the archive holds, who distils it, and how well it is answering': 'Qué guarda el archivo, quién lo destila y qué tan bien está contestando',
1244
+ 'THIS ROOM HAS NO MEMORY INDEX.': 'ESTA SALA NO TIENE ÍNDICE DE MEMORIA.',
1245
+ 'READING THE ARCHIVE…': 'LEYENDO EL ARCHIVO…',
1156
1246
  'COLLAPSE ALL': 'CERRAR TODO',
1157
1247
  'END SESSION ×': 'TERMINAR SESIÓN ×',
1158
1248
  'NO SPECIAL ORDERS ON THIS SHIP · THE CREW IS NOT EXPENDABLE · ESC TO END SESSION':
@@ -1166,10 +1256,7 @@ export const ES = {
1166
1256
  'ARM': 'ARMAR',
1167
1257
  'ONE HOLDER AT A TIME · EVERY TURN IS CHECKPOINTED · WHAT LEAVES THE SHIP DOES NOT COME BACK · STOPALL REVOKES IT':
1168
1258
  'UN SOLO PORTADOR A LA VEZ · CADA TURNO LLEVA CHECKPOINT · LO QUE SALE DE LA NAVE NO REGRESA · STOPALL LO REVOCA',
1169
- 'INTERFACE 2037 · FIRST CONTACT': 'INTERFAZ 2037 · PRIMER CONTACTO',
1170
- 'SKIP ×': 'SALTAR ×',
1171
1259
  'BACK': 'ATRÁS',
1172
- 'NEXT ›': 'SIGUIENTE ›',
1173
1260
  'MEMORY RESEARCH · ACCESS CONTROL': 'INVESTIGACIÓN DE MEMORIA · CONTROL DE ACCESO',
1174
1261
  'THE ARCHIVE OF THIS ROOM: EVERY MEMORY THE CREW DISTILLED, LINKED BY WHAT THEY SHARE. READING IS FREE; FORGETTING IS FOREVER. TYPE THE PROJECT DESIGNATION TO BOARD.':
1175
1262
  'EL ARCHIVO DE ESTA SALA: CADA MEMORIA QUE DESTILÓ LA TRIPULACIÓN, ENLAZADA POR LO QUE COMPARTEN. LEER ES GRATIS; OLVIDAR ES PARA SIEMPRE. ESCRIBE LA DESIGNACIÓN DEL PROYECTO PARA ABORDAR.',
@@ -1185,8 +1272,56 @@ export const ES = {
1185
1272
  'ASK · 0': 'PREGUNTAR · 0',
1186
1273
  'RECENTER': 'RECENTRAR',
1187
1274
  'LEAVE ×': 'SALIR ×',
1188
- 'DRAG TO MOVE · WHEEL TO ZOOM · CLICK A MEMORY · DO NOT TOUCH MOTHER':
1189
- 'ARRASTRA PARA MOVER · RUEDA PARA ACERCAR · CLIC EN UNA MEMORIA · NO TOQUES A MOTHER',
1275
+ // /module: las ideas, dos de cada forma de módulo.
1276
+ 'command': 'comando',
1277
+ 'connector': 'conector',
1278
+ 'sends · #4 only': 'manda · solo en #4',
1279
+ 'card of its own': 'ficha propia',
1280
+ 'a command that lists the TODOs still left in the code': 'un comando que liste los TODO que quedan en el código',
1281
+ 'connect me to my database so the agents can read it, never write': 'conéctame a mi base de datos para que los agentes la lean, sin escribir nunca',
1282
+ 'post a summary to Slack when a long plan finishes': 'publica un resumen en Slack cuando termine un plan largo',
1283
+ 'a card with what my store sold today': 'una ficha con lo que vendió mi tienda hoy',
1284
+ // Primer uso: la tarjeta junto a un botón que nunca se había presionado.
1285
+ 'The browser': 'El navegador',
1286
+ 'See what you are building without leaving the room: the servers answering on this computer, in tabs, at phone, tablet or desktop width. To open the web, switch RIPLEY on in MODULES.':
1287
+ 'Mira lo que estás construyendo sin salir de la sala: los servidores que contestan en esta computadora, en pestañas, a ancho de teléfono, tableta o escritorio. Para abrir la web, activa RIPLEY en MÓDULOS.',
1288
+ 'The project files': 'Los archivos del proyecto',
1289
+ 'Your project as a tree. Click a file to read it, search by name, and right-click to copy, move, rename or create files and folders.':
1290
+ 'Tu proyecto como árbol. Haz clic en un archivo para leerlo, búscalo por nombre, y con clic derecho copia, mueve, renombra o crea archivos y carpetas.',
1291
+ 'Conversations, one memory': 'Conversaciones, una sola memoria',
1292
+ 'A project can hold many conversations and a single memory. Start a new one for a new subject: they all feed the same archive, and every agent recalls what was said in the others.':
1293
+ 'Un proyecto puede tener muchas conversaciones y una sola memoria. Empieza otra para un tema nuevo: todas alimentan el mismo archivo y cualquier agente recuerda lo que se dijo en las demás.',
1294
+ 'Got it': 'Entendido',
1295
+ // Primer contacto: el recorrido sobre la sala.
1296
+ 'Your crew, one box': 'Tu tripulación, una sola caja',
1297
+ 'The AI agents already on this computer work here together. Pick one in the row above the box, or write @claude, and ask. Every reply says who answered, in which mode and how many tokens it cost. Nothing leaves this computer on its own.':
1298
+ 'Los agentes de IA que ya tienes en esta computadora trabajan aquí juntos. Elige uno en la fila sobre la caja, o escribe @claude, y pregunta. Cada respuesta dice quién contestó, en qué modo y cuántos tokens costó. Nada sale de esta computadora por su cuenta.',
1299
+ 'Modes: how far a message may go': 'Los modos: hasta dónde llega un mensaje',
1300
+ 'Every message carries a mode. It starts at #1, and the higher the number, the more it may touch.':
1301
+ 'Cada mensaje lleva un modo. Empieza en #1, y entre más alto el número, más puede tocar.',
1302
+ 'MU/TH/UR, the console': 'MU/TH/UR, la consola',
1303
+ 'Sign agents in and set how far each one may go in CONNECTIONS. See what the room remembers in MEMORY, and travel through it as a map in NOSTROMO. When something fails, the diagnosis is here.':
1304
+ 'En CONEXIONES inicias sesión con tus agentes y decides hasta dónde puede llegar cada uno. En MEMORIA ves lo que la sala recuerda, y en NOSTROMO lo recorres como un mapa. Cuando algo falla, el diagnóstico está aquí.',
1305
+ 'MODULES, optional powers': 'MÓDULOS, poderes opcionales',
1306
+ 'Add what this project needs: Git, images, previews of what you build, a local model, a browser, or a module of your own in a single file. Nothing is installed until you press it.':
1307
+ 'Agrega lo que este proyecto necesite: Git, imágenes, vistas previas de lo que construyes, un modelo local, un navegador, o un módulo tuyo en un solo archivo. Nada se instala hasta que tú lo pidas.',
1308
+ 'You can take this tour again from ? in MU/TH/UR. Type STOPALL at any time to halt every agent.':
1309
+ 'Puedes volver a ver este recorrido desde ? en MU/TH/UR. Escribe STOPALL en cualquier momento para frenar a todos los agentes.',
1310
+ '{n} of {total}': '{n} de {total}',
1311
+ 'Skip': 'Saltar',
1312
+ 'Next': 'Siguiente',
1313
+ 'Start': 'Empezar',
1314
+ // Novedades: la hoja que se abre una vez después de actualizar.
1315
+ 'ABOUT THIS VERSION': 'ACERCA DE ESTA VERSIÓN',
1316
+ "What's new in MADRE {version}": 'Novedades en MADRE {version}',
1317
+ "What's new": 'Novedades',
1318
+ 'Where': 'Dónde',
1319
+ 'Continue': 'Continuar',
1320
+ 'Read every change on madre.run ↗': 'Lee todos los cambios en madre.run ↗',
1321
+ // NOSTROMO: la mira sobre la enana elegida.
1322
+ 'TARGET LOCKED': 'BLANCO FIJADO',
1323
+ 'DRAG TO TURN · SHIFT+DRAG TO MOVE · WHEEL TO ZOOM · CLICK A MEMORY · DO NOT TOUCH MOTHER':
1324
+ 'ARRASTRA PARA GIRAR · SHIFT+ARRASTRA PARA MOVER · RUEDA PARA ACERCAR · CLIC EN UNA MEMORIA · NO TOQUES A MOTHER',
1190
1325
  '⚠ WARNING ⚠': '⚠ ADVERTENCIA ⚠',
1191
1326
  'MU/TH/UR 6000 · SPECIAL ORDER 937 · PRIORITY ONE': 'MU/TH/UR 6000 · ORDEN ESPECIAL 937 · PRIORIDAD UNO',
1192
1327
  'WHAT TO ASK NEXT': 'QUÉ PREGUNTAR AHORA',
@@ -1759,34 +1894,6 @@ export const ES = {
1759
1894
  'Run `gemini` and use /auth, or check GEMINI_API_KEY.': 'Corre `gemini` y usa /auth, o revisa GEMINI_API_KEY.',
1760
1895
 
1761
1896
  // ── EL RECORRIDO DE PRIMER CONTACTO ───────────────────────────────────────
1762
- 'ONE ROOM, YOUR AGENTS': 'UNA SALA, TUS AGENTES',
1763
- 'MADRE is a local room where the AI coding agents already on this machine work on this project together: Codex, Claude Code, Gemini CLI, OpenCode, and @madre, the memory itself.':
1764
- 'MADRE es una sala local donde los agentes de código que ya tienes en esta computadora trabajan juntos sobre este proyecto: Codex, Claude Code, Gemini CLI, OpenCode, y @madre, que es la memoria misma.',
1765
- 'Pick an agent in the row above the composer or type @claude …. Every reply shows who spoke, to whom, in which mode, with which model and how many tokens.':
1766
- 'Elige un agente en la fila de arriba del compositor, o escribe @claude … . Cada respuesta dice quién habló, a quién, en qué modo, con qué modelo y cuántos tokens.',
1767
- 'Nothing leaves this machine on its own: each agent talks to its own provider with its own session.':
1768
- 'De esta computadora no sale nada por su cuenta: cada agente habla con su propio proveedor y con su propia sesión.',
1769
- 'MODES: HOW FAR A MESSAGE MAY GO': 'MODOS: HASTA DÓNDE PUEDE LLEGAR UN MENSAJE',
1770
- 'The chip next to TO @agent sets the mode of that message.': 'El chip que está junto a PARA @agente fija el modo de ese mensaje.',
1771
- '#0 GHOST · off the record. #1 EXCHANGE · read and talk, the default. #2 CREATE · add new files where they belong; existing files stay untouched. #3 CONTROL · edit the project, checkpointed, UNDO in one click. #4 AIRLOCK · run commands, push, deploy; what leaves the ship does not come back.':
1772
- '#0 GHOST · fuera de registro. #1 EXCHANGE · leer y hablar, el de siempre. #2 CREATE · agregar archivos nuevos donde les toca; los que ya existen no se tocan. #3 CONTROL · editar el proyecto, con checkpoint y DESHACER a un clic. #4 AIRLOCK · correr comandos, hacer push, desplegar; lo que sale de la nave no regresa.',
1773
- 'Each agent has a MAX MODE and a DEFAULT MODE in ⚙ CONNECTIONS.':
1774
- 'Cada agente tiene su MODO MÁXIMO y su MODO INICIAL en ⚙ CONEXIONES.',
1775
- 'A MEMORY EVERY AGENT RECALLS': 'UNA MEMORIA QUE TODOS RECUERDAN',
1776
- 'Everything said outside GHOST is indexed. When the conversation grows, each turn gets the older exchanges that match, cited by sequence.':
1777
- 'Todo lo que se dice fuera de GHOST queda indexado. Cuando la conversación crece, cada turno recibe los intercambios viejos que coinciden, citados por su número.',
1778
- 'The archivist distils decisions, facts, preferences and open questions; with Ollama it runs locally and for free, and @madre answers from the whole archive.':
1779
- 'El archivista destila decisiones, hechos, preferencias y preguntas abiertas; con Ollama corre local y gratis, y @madre contesta desde el archivo entero.',
1780
- '◉ NOSTROMO shows the memory as a map. PRIVACY keeps names that must never travel through the room.':
1781
- '◉ NOSTROMO enseña la memoria como un mapa. PRIVACY guarda los nombres que nunca deben viajar por la sala.',
1782
- 'MU/TH/UR AND MODULES': 'MU/TH/UR Y LOS MÓDULOS',
1783
- 'MU/TH/UR is the console: diagnosis of anything that failed, ⚙ CONNECTIONS to sign agents in and set their ceilings, MEMORY, PRIVACY, the SENTINEL and the release channel.':
1784
- 'MU/TH/UR es la consola: diagnóstico de lo que haya fallado, ⚙ CONEXIONES para iniciar sesiones y fijar techos, MEMORIA, PRIVACY, el CENTINELA y el canal de releases.',
1785
- 'MODULES adds optional powers: Git Pulse, Image Studio, RIPLEY previews, OLLAMA, PLAYWRIGHT, and your own modules from one file.':
1786
- 'MÓDULOS agrega poderes opcionales: Git Pulse, Image Studio, las vistas previas de RIPLEY, OLLAMA, PLAYWRIGHT, y tus propios módulos desde un solo archivo.',
1787
- 'This tour comes back from the ? in MU/TH/UR. Type STOPALL any time to halt every agent.':
1788
- 'Este recorrido vuelve desde el ? de MU/TH/UR. Escribe STOPALL cuando quieras para frenar a todos los agentes.',
1789
- 'START ›': 'EMPEZAR ›',
1790
1897
 
1791
1898
  // ── EL COMPOSITOR, LOS MODOS Y LA ANULACIÓN ──────────────────────────────
1792
1899
  'Arm CREATE for this message: the agent may add new files to the project where they belong.':
@@ -2410,6 +2517,39 @@ export const ES = {
2410
2517
  '{name} installed': '{name} instalado',
2411
2518
  '{name} install failed': 'falló la instalación de {name}',
2412
2519
  '{name} could not save {label}.': '{name} no pudo guardar {label}.',
2520
+
2521
+ // CORREO y, en general, la llave de cualquier conector: lo que MADRE guarda en su bodega.
2522
+
2523
+ // Los arranques de /module: una instrucción para editar, no un comando para mandar.
2524
+ 'MODULE · ↑↓ · TAB OR ENTER · pick one and edit it': 'MÓDULO · ↑↓ · TAB O ENTER · elige uno y edítalo',
2525
+ 'a command that tells me what changed in the repo this week': 'un comando que me diga qué cambió en el repo esta semana',
2526
+ 'a slash command · runs in the room, answers as a card': 'un comando · corre en la sala y responde como tarjeta',
2527
+ 'connect me to my Notion so the agents can search my pages': 'conéctame con mi Notion para que los agentes busquen en mis páginas',
2528
+ 'a connector · one key, pasted on its card': 'un conector · una llave, pegada en su ficha',
2529
+ 'ping me on Telegram when a turn fails': 'avísame por Telegram cuando falle un turno',
2530
+ 'a connector that sends · only offered in #4 AIRLOCK': 'un conector que manda · solo se ofrece en #4 AIRLOCK',
2531
+ 'a card showing which of my services are up': 'una tarjeta que muestre cuáles de mis servicios están arriba',
2532
+ 'a card of your own · its own panel inside MODULES': 'una ficha propia · su propio panel dentro de MÓDULOS',
2533
+
2534
+ // La tarjeta de desarrollo en MÓDULOS.
2535
+ 'A module is one file: no build, no dependencies, nothing to register. A switch, settings, a slash command, a tool for the agents, a card of your own — or a connector to something you already use. Drop it in a folder, press RELOAD, and it is there with its own card.':
2536
+ 'Un módulo es un archivo: sin build, sin dependencias, sin registrarse en ningún lado. Un interruptor, ajustes, un comando, una herramienta para los agentes, una ficha propia — o un conector con algo que ya usas. Lo dejas en una carpeta, pulsas RECARGAR y ahí está con su tarjeta.',
2537
+ 'Or ask for one. In the composer: ': 'O pídelo. En la caja de texto: ',
2538
+ ' — the agent reads the SDK and writes the file; you review it and decide whether it is installed.':
2539
+ ' — el agente lee el SDK y escribe el archivo; tú lo revisas y decides si se instala.',
2540
+ 'Connecting to a service from outside is almost always possible: the limit is not MADRE, it is whether that service lets you get your own key in minutes and revoke it on its own. Your module declares the key it needs and MADRE draws the field; declares where it reaches and the outbound log answers for it; declares which of its tools SEND, and the room withholds those below #4 AIRLOCK.':
2541
+ 'Conectar con un servicio de fuera casi siempre se puede: el límite no es MADRE, es si ese servicio te deja conseguir tu propia llave en minutos y revocarla sola. Tu módulo declara la llave que necesita y MADRE dibuja el campo; declara a dónde llega y el registro de salidas responde por él; declara cuáles de sus herramientas MANDAN, y la sala se las retira por debajo de #4 AIRLOCK.',
2542
+ 'ASK FOR ONE': 'PÍDELE UNO',
2543
+ 'Puts /module in the composer, in the room': 'Pone /module en la caja de texto, en la sala',
2544
+ 'KEYS': 'LLAVES',
2545
+ 'paste it here': 'pégala aquí',
2546
+ 'kept · {n} characters': 'guardada · {n} caracteres',
2547
+ 'FORGET IT': 'OLVIDARLA',
2548
+ 'WHERE TO GET IT': 'DÓNDE SACARLA',
2549
+ '{name} could not keep {label}.': '{name} no pudo guardar {label}.',
2550
+ 'off · ready': 'apagado · listo',
2551
+ 'on · not configured': 'encendido · sin configurar',
2552
+ 'only to': 'solo a',
2413
2553
  'It loads in every room on this computer.': 'Se carga en todas las salas de esta computadora.',
2414
2554
  'DISABLE': 'APAGAR',
2415
2555
  'ENABLE': 'ENCENDER',
package/public/index.html CHANGED
@@ -133,15 +133,17 @@
133
133
  <span class="mother-sub">MADRE · INTERFACE 2037 · TROUBLESHOOTING</span>
134
134
  <span class="mother-actions">
135
135
  <button id="mother-settings-button" class="mother-close" type="button" aria-pressed="false" title="The crew and this room's settings: install an agent, sign it in, set what each one may do">⚙ CONNECTIONS</button>
136
+ <button id="memory-button" class="mother-close" type="button" aria-pressed="false" title="What the archive holds, who distils it, and how well it is answering">▤ MEMORY</button>
136
137
  <button id="nostromo-button" class="mother-close nostromo-button" type="button" title="NOSTROMO · memory research · needs the project designation">◉ NOSTROMO</button>
137
138
  <button id="feedback-button" class="mother-close" type="button" title="Tell MADRE's author what happened or what you wish for · opens a prefilled issue">✎ FEEDBACK</button>
138
- <button id="fold-all" class="mother-close" type="button" title="Open or close every section of this panel">EXPAND ALL</button>
139
139
  <button id="tour-button" class="mother-close tour-button" type="button" title="The four-step tour of MADRE" aria-label="Tour">?</button>
140
140
  <button id="mother-close" class="mother-close" type="button">END SESSION ×</button>
141
141
  </span>
142
142
  </header>
143
+ <div class="fold-all-row"><button id="fold-all" class="fold-all" type="button" title="Open or close every section of this panel"></button></div>
143
144
  <section id="mother-update" class="mother-section update"></section>
144
145
  <section id="mother-settings" class="mother-section settings" hidden></section>
146
+ <section id="mother-memory" class="mother-section memory-panel" hidden></section>
145
147
  <section id="mother-sentinel" class="mother-section sentinel"></section>
146
148
  <pre id="mother-boot" class="mother-boot" aria-live="polite"></pre>
147
149
  <form id="mother-query" class="mother-query" autocomplete="off">
@@ -231,24 +233,22 @@
231
233
  <footer class="mother-foot">ONE HOLDER AT A TIME · EVERY TURN IS CHECKPOINTED · WHAT LEAVES THE SHIP DOES NOT COME BACK · STOPALL REVOKES IT</footer>
232
234
  </div>
233
235
  </dialog>
234
- <dialog id="tour" class="mother override tour" aria-label="MADRE tour">
235
- <div class="mother-frame override-frame tour-frame">
236
- <header class="mother-head">
237
- <span class="mother-title">MADRE</span>
238
- <span class="mother-sub" id="tour-sub">INTERFACE 2037 · FIRST CONTACT</span>
239
- <button id="tour-skip" class="mother-close" type="button">SKIP ×</button>
240
- </header>
241
- <div class="tour-body">
242
- <div class="tour-step" id="tour-step"></div>
243
- </div>
236
+ <dialog id="tour" class="tour" aria-label="MADRE tour">
237
+ <div id="tour-spot" class="tour-spot" aria-hidden="true"></div>
238
+ <section id="tour-card" class="tour-card" aria-live="polite">
239
+ <span id="tour-count" class="tour-count"></span>
240
+ <h3 id="tour-title"></h3>
241
+ <p id="tour-text"></p>
242
+ <ol id="tour-modes" class="tour-modes" hidden></ol>
243
+ <p id="tour-note" class="tour-note" hidden></p>
244
244
  <footer class="tour-foot">
245
- <span class="tour-dots" id="tour-dots"></span>
245
+ <button id="tour-skip" class="tour-skip" type="button"></button>
246
246
  <span class="tour-nav">
247
- <button id="tour-back" class="mother-close" type="button">BACK</button>
248
- <button id="tour-next" class="mother-close primary" type="button">NEXT ›</button>
247
+ <button id="tour-back" class="tour-back" type="button"></button>
248
+ <button id="tour-next" class="tour-next" type="button"></button>
249
249
  </span>
250
250
  </footer>
251
- </div>
251
+ </section>
252
252
  </dialog>
253
253
  <dialog id="nostromo-gate" class="mother override" aria-label="NOSTROMO access">
254
254
  <div class="mother-frame override-frame">
@@ -281,7 +281,7 @@
281
281
  <button id="nostromo-close" class="mother-close" type="button">LEAVE ×</button>
282
282
  </header>
283
283
  <canvas id="nostromo-canvas" class="nostromo-canvas" tabindex="-1" aria-label="Memories orbiting MOTHER's core"></canvas>
284
- <p class="nostromo-help">DRAG TO MOVE · WHEEL TO ZOOM · CLICK A MEMORY · DO NOT TOUCH MOTHER</p>
284
+ <p class="nostromo-help">DRAG TO TURN · SHIFT+DRAG TO MOVE · WHEEL TO ZOOM · CLICK A MEMORY · DO NOT TOUCH MOTHER</p>
285
285
  <div id="nostromo-alert" class="nostromo-alert" role="alert" hidden>
286
286
  <div class="klaxon"></div>
287
287
  <div class="panel">
@@ -310,6 +310,7 @@
310
310
  <dt>SOURCE</dt><dd id="nostromo-card-span"></dd>
311
311
  <dt>ARCHIVIST</dt><dd id="nostromo-card-agent"></dd>
312
312
  <dt>DISTILLED</dt><dd id="nostromo-card-when"></dd>
313
+ <dt>ZONE</dt><dd id="nostromo-card-zone"></dd>
313
314
  </dl>
314
315
  <section class="wire">
315
316
  <h6>LINKS <span id="nostromo-card-degree" class="n"></span></h6>