@jossuealcala/madre 0.5.2 → 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/CHANGELOG.md +265 -1
- package/README.md +33 -1
- package/docs/SDK.md +173 -6
- package/docs/sdk/connector-module.mjs +186 -0
- package/package.json +6 -2
- package/public/abduction.js +384 -0
- package/public/app.js +3450 -540
- package/public/assets/abduction-cat-blink.png +0 -0
- package/public/assets/abduction-cat-control-left.png +0 -0
- package/public/assets/abduction-cat-control-right.png +0 -0
- package/public/assets/abduction-cat.png +0 -0
- package/public/es.js +354 -54
- package/public/index.html +65 -19
- package/public/routing.js +74 -0
- package/public/styles.css +788 -77
- package/src/adapters/claude.mjs +6 -2
- package/src/adapters/gemini.mjs +26 -5
- package/src/adapters/madre.mjs +5 -0
- package/src/choices.mjs +64 -0
- package/src/dataset.mjs +11 -6
- package/src/distiller.mjs +12 -1
- package/src/file-ops.mjs +45 -0
- package/src/lease.mjs +37 -2
- package/src/mcp/smtp-server.mjs +189 -0
- package/src/memory-dashboard.mjs +69 -0
- package/src/memory.mjs +222 -18
- package/src/modules/ahp.mjs +1 -1
- package/src/modules/ash-policy.mjs +67 -0
- package/src/modules/ash.mjs +1 -1
- package/src/modules/choices.mjs +34 -0
- package/src/modules/correo.mjs +107 -0
- package/src/modules/index.mjs +48 -4
- package/src/modules/playwright.mjs +5 -1
- package/src/modules/ripley.mjs +13 -1
- package/src/modules/sdk.mjs +44 -9
- package/src/outbound.mjs +37 -3
- package/src/ports.mjs +91 -0
- package/src/request-guard.mjs +26 -0
- package/src/room/archivist.mjs +2 -1
- package/src/room/economy.mjs +83 -1
- package/src/room/prompt.mjs +14 -2
- package/src/room.mjs +150 -18
- package/src/sentinel-errors.mjs +5 -1
- package/src/server.mjs +188 -8
- package/src/smtp.mjs +122 -0
- package/src/vault.mjs +100 -0
- package/src/whats-new.mjs +140 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/public/es.js
CHANGED
|
@@ -15,6 +15,225 @@ export const ES = {
|
|
|
15
15
|
'CREATE encendido: di qué crear. Los archivos nuevos caen donde les toca en el proyecto; nada de lo que ya existe se toca.',
|
|
16
16
|
'Compact prose. Nothing you write is altered; only the answers get shorter.':
|
|
17
17
|
'Respuestas compactas. Lo que tú escribes no cambia; lo que se acorta son las respuestas.',
|
|
18
|
+
'In this room: {on} output tokens is the middle turn with ASH ({onTurns} turns), {off} without it ({offTurns}). You choose when to ask for compact prose, so these are different tasks, not the same task twice.':
|
|
19
|
+
'En esta sala: {on} tokens de salida es el turno de en medio con ASH ({onTurns} turnos), {off} sin ASH ({offTurns}). Tú decides cuándo pedir prosa compacta, así que son tareas distintas, no la misma tarea dos veces.',
|
|
20
|
+
'{n} uncharged': '{n} no cobrados',
|
|
21
|
+
'{cached} tokens this CLI read back from its own cache instead of charging them again (measured). {unsent} tokens of briefing the room never sent (estimated at {rate} characters per token). Neither is Ash: Ash shortens the answer, and that is the figure above the bubble.':
|
|
22
|
+
'{cached} tokens que este CLI leyó de su propia caché en vez de volver a cobrarlos (medido). {unsent} tokens de briefing que la sala nunca envió (estimado a {rate} caracteres por token). Ninguno de los dos es Ash: Ash acorta la respuesta, y esa cifra está arriba de la burbuja.',
|
|
23
|
+
'TOKENS SAVED': 'TOKENS AHORRADOS',
|
|
24
|
+
'input the CLI did not charge again · {pct} of the input': 'entrada que el CLI no volvió a cobrar · {pct} de la entrada',
|
|
25
|
+
'SPENT IN': 'GASTADO EN ENTRADA',
|
|
26
|
+
'input tokens actually charged': 'tokens de entrada realmente cobrados',
|
|
27
|
+
'@madre can answer this from the room archive, on this computer, for no tokens · it read {why}':
|
|
28
|
+
'@madre puede contestar esto desde el archivo de la sala, en esta computadora, sin gastar tokens · leyó {why}',
|
|
29
|
+
'ASK @madre': 'PREGÚNTALE A @madre',
|
|
30
|
+
'what was decided': 'qué se decidió',
|
|
31
|
+
'whether this came up before': 'si esto ya había salido',
|
|
32
|
+
'where the room left off': 'dónde se quedó la sala',
|
|
33
|
+
'why something was chosen': 'por qué se eligió algo',
|
|
34
|
+
'what somebody said': 'qué dijo alguien',
|
|
35
|
+
'what is still open': 'qué sigue abierto',
|
|
36
|
+
'TURNS THE ROOM ANSWERED ITSELF': 'TURNOS QUE LA SALA CONTESTÓ SOLA',
|
|
37
|
+
'FREE TURNS': 'TURNOS SIN COSTO',
|
|
38
|
+
'answered by @madre on this computer · no provider, no bill':
|
|
39
|
+
'contestados por @madre en esta computadora · sin proveedor, sin factura',
|
|
40
|
+
'OF EVERY TURN': 'DEL TOTAL',
|
|
41
|
+
'of the turns weighed in this room': 'de los turnos pesados en esta sala',
|
|
42
|
+
'A PAID TURN': 'UN TURNO PAGADO',
|
|
43
|
+
'the middle paid turn here · what the others cost, not what these would have':
|
|
44
|
+
'el turno pagado de en medio · lo que costaron los otros, no lo que habrían costado estos',
|
|
45
|
+
'These turns have no bill because nothing left this computer to answer them. MADRE does not say what they would have cost somewhere else: nobody measured that.':
|
|
46
|
+
'Estos turnos no tienen factura porque nada salió de esta computadora para contestarlos. MADRE no dice cuánto habrían costado en otro lado: eso nadie lo midió.',
|
|
47
|
+
'{pct} shorter with ASH, wider than this agent varies here (±{on} and ±{off})':
|
|
48
|
+
'{pct} más corta con ASH, más que lo que este agente varía aquí (±{on} y ±{off})',
|
|
49
|
+
'the difference fits inside how much this agent varies anyway (±{on} and ±{off}) · nothing to read yet':
|
|
50
|
+
'la diferencia cabe dentro de lo que este agente varía de todos modos (±{on} y ±{off}) · todavía no hay nada que leer',
|
|
51
|
+
'on · agents may ask you to choose': 'encendido · los agentes pueden pedirte que elijas',
|
|
52
|
+
'off · agents answer in prose': 'apagado · los agentes contestan en prosa',
|
|
53
|
+
'Lets an agent hand a decision back to you as buttons instead of a paragraph, when the answer turns on three or more real options. Costs about 135 tokens of instruction per turn while it is on, counted in the economy like every other block.':
|
|
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
|
+
'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
|
+
'◉ decided here · {n}': '◉ decidido aquí · {n}',
|
|
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Ó',
|
|
62
|
+
'every turn this room has been billed for': 'cada turno por el que cobraron a esta sala',
|
|
63
|
+
'INPUT CHARGED': 'ENTRADA COBRADA',
|
|
64
|
+
'tokens the CLIs charged as fresh reading': 'tokens que los CLIs cobraron como lectura nueva',
|
|
65
|
+
'OUTPUT CHARGED': 'SALIDA COBRADA',
|
|
66
|
+
'tokens written back · the dearer half': 'tokens escritos de vuelta · la mitad más cara',
|
|
67
|
+
'read back from a cache, plus what was never sent': 'leído de una caché, más lo que nunca se envió',
|
|
68
|
+
'CAME FROM CACHE': 'LEÍDO DE CACHÉ',
|
|
69
|
+
'of everything read, the share nobody charged twice': 'de todo lo leído, la parte que nadie cobró dos veces',
|
|
70
|
+
'CHARACTERS PER TOKEN': 'CARACTERES POR TOKEN',
|
|
71
|
+
'what MADRE wrote against what the CLIs were charged for reading · not a tokenizer':
|
|
72
|
+
'lo que MADRE escribió contra lo que a los CLIs les cobraron por leer · no es un tokenizador',
|
|
73
|
+
'AGENT': 'AGENTE',
|
|
74
|
+
'INPUT': 'ENTRADA',
|
|
75
|
+
'OUTPUT': 'SALIDA',
|
|
76
|
+
'CACHE': 'CACHÉ',
|
|
77
|
+
'CACHED %': '% CACHEADO',
|
|
78
|
+
'CHARS / TOKEN': 'CARACT. / TOKEN',
|
|
79
|
+
'◉ still open here': '◉ sigue abierto aquí',
|
|
80
|
+
'The room has carried this into {n} turn(s) and still has no answer.':
|
|
81
|
+
'La sala ha arrastrado esto a {n} turno(s) y sigue sin respuesta.',
|
|
82
|
+
'The archivist recorded this as open and nothing has answered it.':
|
|
83
|
+
'El archivista lo registró como abierto y nada lo ha contestado.',
|
|
84
|
+
'@{agent} says this needs #{n} {label}': '@{agent} dice que esto necesita #{n} {label}',
|
|
85
|
+
'ARM #{n}': 'ARMAR #{n}',
|
|
86
|
+
'SET #{n}': 'PONER #{n}',
|
|
87
|
+
'Opens the override: you type the project designation, as always.': 'Abre la anulación: tú escribes la designación del proyecto, como siempre.',
|
|
88
|
+
'Arms the composer for your next message. Nothing is sent.': 'Arma el compositor para tu siguiente mensaje. No se manda nada.',
|
|
89
|
+
'SERVERS': 'SERVIDORES',
|
|
90
|
+
'MADRE version': 'Versión de MADRE',
|
|
91
|
+
'Local servers answering on this computer': 'Servidores locales que contestan en esta computadora',
|
|
92
|
+
'COULD NOT READ THE PORTS': 'NO SE PUDIERON LEER LOS PUERTOS',
|
|
93
|
+
'NOTHING IS ANSWERING ON THIS COMPUTER · START YOUR SERVER AND OPEN THIS AGAIN':
|
|
94
|
+
'NADA CONTESTA EN ESTA COMPUTADORA · LEVANTA TU SERVIDOR Y ABRE ESTO DE NUEVO',
|
|
95
|
+
'ONLY WHAT LISTENS ON THIS COMPUTER AND ANSWERS HTTP · MADRE RUNS NOTHING TO FIND THEM':
|
|
96
|
+
'SOLO LO QUE ESCUCHA EN ESTA COMPUTADORA Y CONTESTA HTTP · MADRE NO EJECUTA NADA PARA ENCONTRARLOS',
|
|
97
|
+
'{what} · refuses to be framed': '{what} · se niega a ser enmarcado',
|
|
98
|
+
'Resize the browser': 'Cambiar el ancho del navegador',
|
|
99
|
+
'Crew': 'Tripulación',
|
|
100
|
+
'Crew · {ready} of {total} ready · {who}': 'Tripulación · {ready} de {total} lista · {who}',
|
|
101
|
+
'The destination is outside this project.': 'El destino está fuera de este proyecto.',
|
|
102
|
+
'There is already something at {path}.': 'Ya hay algo en {path}.',
|
|
103
|
+
'Search files': 'Buscar archivos',
|
|
104
|
+
'Search files…': 'Buscar archivos…',
|
|
105
|
+
'Copy': 'Copiar',
|
|
106
|
+
'Move': 'Mover',
|
|
107
|
+
'Paste here': 'Pegar aquí',
|
|
108
|
+
'Paste beside it': 'Pegar al lado',
|
|
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.',
|
|
158
|
+
'New file': 'Archivo nuevo',
|
|
159
|
+
'New folder': 'Carpeta nueva',
|
|
160
|
+
'NEW NAME': 'NOMBRE NUEVO',
|
|
161
|
+
'NEW FILE': 'ARCHIVO NUEVO',
|
|
162
|
+
'NEW FOLDER': 'CARPETA NUEVA',
|
|
163
|
+
'PROJECT DESIGNATION': 'DESIGNACIÓN DEL PROYECTO',
|
|
164
|
+
'OK': 'LISTO',
|
|
165
|
+
'MOVE': 'MOVER',
|
|
166
|
+
'That could not be done.': 'Eso no se pudo hacer.',
|
|
167
|
+
'NOTHING MATCHES {q}': 'NADA COINCIDE CON {q}',
|
|
168
|
+
'MADRE GUARDS THIS PATH · IT WILL ASK FOR THE DESIGNATION': 'MADRE PROTEGE ESTA RUTA · VA A PEDIR LA DESIGNACIÓN',
|
|
169
|
+
'{path} is a place MADRE guards.': '{path} es un lugar que MADRE protege.',
|
|
170
|
+
'{host} will not be framed': '{host} no se deja enmarcar',
|
|
171
|
+
'The site answers with a rule that forbids any page from putting it inside a frame. It is the standard defence against clickjacking, and RIPLEY neither can nor should override it.':
|
|
172
|
+
'El sitio responde con una regla que prohíbe a cualquier página meterlo dentro de un marco. Es la defensa estándar contra el clickjacking, y RIPLEY ni puede ni debe saltársela.',
|
|
173
|
+
'This server answers with a rule that forbids any page from putting it inside a frame — your own dev server may be setting it without you noticing. RIPLEY neither can nor should override it.':
|
|
174
|
+
'Este servidor responde con una regla que prohíbe a cualquier página meterlo dentro de un marco — tu propio servidor de desarrollo puede estar poniéndola sin que lo notes. RIPLEY ni puede ni debe saltársela.',
|
|
175
|
+
'OPEN IN A TAB': 'ABRIR EN UNA PESTAÑA',
|
|
176
|
+
'COPY THE ADDRESS': 'COPIAR LA DIRECCIÓN',
|
|
177
|
+
'Address copied.': 'Dirección copiada.',
|
|
178
|
+
'Browser · local servers and the web': 'Navegador · servidores locales y la web',
|
|
179
|
+
'Browser': 'Navegador',
|
|
180
|
+
'RIPLEY browser': 'Navegador de RIPLEY',
|
|
181
|
+
'new tab': 'pestaña nueva',
|
|
182
|
+
'New tab': 'Pestaña nueva',
|
|
183
|
+
'Address': 'Dirección',
|
|
184
|
+
'Only http and https.': 'Solo http y https.',
|
|
185
|
+
'That is not an address.': 'Eso no es una dirección.',
|
|
186
|
+
'RIPLEY reaches this computer only · turn the web on in MODULES to open an address outside it':
|
|
187
|
+
'RIPLEY solo alcanza esta computadora · enciende la web en MÓDULOS para abrir una dirección fuera de ella',
|
|
188
|
+
'SEE THE ECONOMY': 'VER LA ECONOMÍA',
|
|
189
|
+
'ECONOMY': 'ECONOMÍA',
|
|
190
|
+
'MADRE · WHAT THIS ROOM SPENT AND WHAT IT NEVER SPENT': 'MADRE · LO QUE ESTA SALA GASTÓ Y LO QUE NUNCA GASTÓ',
|
|
191
|
+
'MEASURED FROM WHAT THE CLIs CHARGED · A SAVING NOBODY MEASURED IS NEVER SHOWN':
|
|
192
|
+
'MEDIDO SOBRE LO QUE COBRARON LOS CLIs · UN AHORRO QUE NADIE MIDIÓ NO SE MUESTRA NUNCA',
|
|
193
|
+
'Token economy': 'Economía de tokens',
|
|
194
|
+
'NEVER CHARGED FOR': 'NUNCA COBRADO',
|
|
195
|
+
'FROM THE CACHE': 'DE LA CACHÉ',
|
|
196
|
+
'the CLI said it read these back instead of charging them again · measured':
|
|
197
|
+
'el CLI dijo que los leyó de vuelta en vez de volver a cobrarlos · medido',
|
|
198
|
+
'briefing a turn had no use for · estimated from characters, not measured':
|
|
199
|
+
'briefing que el turno no iba a usar · estimado a partir de caracteres, no medido',
|
|
200
|
+
'OF THE INPUT': 'DE LA ENTRADA',
|
|
201
|
+
'the share of everything read that came back from a cache':
|
|
202
|
+
'la parte de todo lo leído que volvió de una caché',
|
|
203
|
+
'One half is measured and the other is estimated, and they are never added without saying so. Neither of them is Ash: Ash shortens the answer, which is the next reading.':
|
|
204
|
+
'Una mitad es medida y la otra estimada, y nunca se suman sin decirlo. Ninguna de las dos es Ash: Ash acorta la respuesta, que es la lectura siguiente.',
|
|
205
|
+
'ASH ADDS': 'ASH AÑADE',
|
|
206
|
+
'to every prompt it is on · measured, not estimated': 'a cada prompt donde está encendido · medido, no estimado',
|
|
207
|
+
'IN TOKENS': 'EN TOKENS',
|
|
208
|
+
'at {rate} characters per token · an estimate': 'a {rate} caracteres por token · una estimación',
|
|
209
|
+
'TURNS CARRYING IT': 'TURNOS QUE LO LLEVAN',
|
|
210
|
+
'of the {n} weighed in this room': 'de los {n} pesados en esta sala',
|
|
211
|
+
'What Ash costs is certain and measured here. What it saves is not: the shorter answer below is observed, never promised. Output is the dearer half of every bill, so the trade is usually favourable — MADRE does not turn it into money because it does not know your prices.':
|
|
212
|
+
'Lo que Ash cuesta es seguro y está medido aquí. Lo que ahorra no lo es: la respuesta más corta de abajo se observa, nunca se promete. La salida es la mitad más cara de cualquier factura, así que el cambio suele convenir — MADRE no lo convierte en dinero porque no conoce tus precios.',
|
|
213
|
+
'WHAT ASH DOES TO AN ANSWER': 'QUÉ LE HACE ASH A UNA RESPUESTA',
|
|
214
|
+
'No turns with the switch recorded yet. Leave Ash on for a few turns and off for a few more, and this fills.':
|
|
215
|
+
'Aún no hay turnos con el interruptor registrado. Deja Ash encendido unos turnos y apagado otros tantos, y esto se llena.',
|
|
216
|
+
'WHERE EACH PROMPT GOES': 'A DÓNDE VA CADA PROMPT',
|
|
217
|
+
'{pct} of each prompt is the unchanging head a cache can match. MADRE wrote {chars} characters of the {input} input tokens you were charged for; the rest is what the CLIs read on their own.':
|
|
218
|
+
'{pct} de cada prompt es la cabecera que no cambia y que una caché puede reconocer. MADRE escribió {chars} caracteres de los {input} tokens de entrada que te cobraron; el resto es lo que los CLIs leyeron por su cuenta.',
|
|
219
|
+
'BY AGENT': 'POR AGENTE',
|
|
220
|
+
'with ASH': 'con ASH',
|
|
221
|
+
'without ASH': 'sin ASH',
|
|
222
|
+
'{n}↑ · {turns} turns': '{n}↑ · {turns} turnos',
|
|
223
|
+
'{n} turns with ASH, {m} without · {min} of each before this can be read':
|
|
224
|
+
'{n} turnos con ASH, {m} sin ASH · hacen falta {min} de cada lado para poder leerlo',
|
|
225
|
+
'The middle turn of each side, not an average. You choose when to ask for compact prose, so the two sides are different tasks, not the same task twice — MADRE does not claim a percentage saved.':
|
|
226
|
+
'El turno de en medio de cada lado, no un promedio. Tú decides cuándo pedir prosa compacta, así que los dos lados son tareas distintas y no la misma tarea dos veces: MADRE no afirma un porcentaje ahorrado.',
|
|
227
|
+
'NEVER CHARGED': 'NUNCA COBRADO',
|
|
228
|
+
'REVIEW · the local check found: {details}':
|
|
229
|
+
'REVISAR · la comprobación local encontró: {details}',
|
|
230
|
+
'empty response': 'respuesta vacía',
|
|
231
|
+
'unclosed code fence': 'bloque de código sin cerrar',
|
|
232
|
+
'text after ```pulse block': 'hay texto después del bloque ```pulse',
|
|
233
|
+
'missing negation': 'falta una negación',
|
|
234
|
+
'{count} {unit}, maximum {maximum}': '{count} {unit}, máximo {maximum}',
|
|
235
|
+
'lines': 'líneas',
|
|
236
|
+
'missing {value}': 'falta {value}',
|
|
18
237
|
'Off the record. Ask anything; nothing is saved, nobody else will remember it.':
|
|
19
238
|
'Fuera de registro. Pregunta lo que quieras: no se guarda nada y nadie más se va a acordar.',
|
|
20
239
|
'Control armed. Say what to change in the project; every action runs without asking.':
|
|
@@ -82,8 +301,8 @@ export const ES = {
|
|
|
82
301
|
'Attach an image or file (or drop it here)': 'Adjunta una imagen o un archivo (o arrástralo aquí)',
|
|
83
302
|
'Send': 'Enviar',
|
|
84
303
|
'Agent': 'Agente',
|
|
85
|
-
'Consultation mode ·
|
|
86
|
-
'Modo consulta ·
|
|
304
|
+
'Consultation mode · Agents write only with CREATE or a standing lease, only inside .pulse/out/ · What an agent reads may reach its configured model provider.':
|
|
305
|
+
'Modo consulta · Los agentes escriben solo con CREATE o con un permiso permanente, y solo dentro de .pulse/out/ · Lo que un agente lee puede llegar al proveedor de modelo que tenga configurado.',
|
|
87
306
|
|
|
88
307
|
// Quién habla, delante del campo.
|
|
89
308
|
'HUMAN ›': 'HUMANO ›',
|
|
@@ -310,13 +529,13 @@ export const ES = {
|
|
|
310
529
|
'a push only when you type /git push confirm, after it shows what would leave':
|
|
311
530
|
'un push solo cuando escribes /git push confirm, después de enseñarte qué saldría',
|
|
312
531
|
|
|
313
|
-
'Asks every agent for compact prose
|
|
314
|
-
'
|
|
532
|
+
'Asks every agent for compact prose without altering what you write. MADRE shows each turn\'s input, output and cache use; savings depend on the agent, task and cache, so no fixed percentage is promised.':
|
|
533
|
+
'Pide a cada agente prosa compacta sin alterar lo que escribes. MADRE muestra la entrada, la salida y el uso de caché de cada turno; el ahorro depende del agente, la tarea y el caché, así que no promete un porcentaje fijo.',
|
|
315
534
|
'nothing in the project': 'nada en el proyecto',
|
|
316
535
|
'a switch in ~/.pulse/config.json': 'un interruptor en ~/.pulse/config.json',
|
|
317
536
|
|
|
318
|
-
'Renders HTML, SVG and Markdown from the project
|
|
319
|
-
'
|
|
537
|
+
'Renders HTML, SVG and Markdown from the project in the file viewer, inside a sealed frame, and opens a browser on the servers answering on this computer.':
|
|
538
|
+
'Renderiza HTML, SVG y Markdown del proyecto en el visor de archivos, dentro de un marco sellado, y abre un navegador sobre los servidores que contestan en esta computadora.',
|
|
320
539
|
'scripts run in the frame · nothing leaves, nothing is stored, nothing reaches MADRE':
|
|
321
540
|
'los scripts corren dentro del marco · no sale nada, no se guarda nada, nada llega a MADRE',
|
|
322
541
|
|
|
@@ -416,8 +635,6 @@ export const ES = {
|
|
|
416
635
|
'Settings were not saved.': 'Los ajustes no se guardaron.',
|
|
417
636
|
|
|
418
637
|
// Memoria.
|
|
419
|
-
'{entries} EXCHANGES · {memories} MEMORIES · {pending} WAITING': '{entries} INTERCAMBIOS · {memories} MEMORIAS · {pending} EN ESPERA',
|
|
420
|
-
'NO INDEX': 'SIN ÍNDICE',
|
|
421
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.':
|
|
422
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.',
|
|
423
640
|
'AUTO · cheapest allowed': 'AUTO · el más barato permitido',
|
|
@@ -525,11 +742,47 @@ export const ES = {
|
|
|
525
742
|
'@{agent} timeout saved: {n}s.': 'tiempo límite de @{agent} guardado: {n}s.',
|
|
526
743
|
|
|
527
744
|
// ── DÓNDE ESTÁ LA SALA · LAS TRES PRUEBAS ─────────────────────────────────
|
|
528
|
-
'THE READING IS UNAVAILABLE': 'LA LECTURA NO ESTÁ DISPONIBLE',
|
|
529
745
|
'NOTHING TO READ YET: THE ROOM HAS NO ARCHIVE.': 'TODAVÍA NO HAY NADA QUE LEER: LA SALA NO TIENE ARCHIVO.',
|
|
530
746
|
'NEXT': 'SIGUE',
|
|
531
747
|
'WHAT THE ARCHIVE IS MADE OF': 'DE QUÉ ESTÁ HECHO EL ARCHIVO',
|
|
532
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',
|
|
533
786
|
'CAN THE ARCHIVE ANSWER WHAT THIS PROJECT ASKS?': '¿EL ARCHIVO PUEDE CONTESTAR LO QUE ESTE PROYECTO PREGUNTA?',
|
|
534
787
|
'DOES THE ARCHIVE CONTRADICT ITSELF?': '¿EL ARCHIVO SE CONTRADICE A SÍ MISMO?',
|
|
535
788
|
'DOES THE LOCAL MODEL LAND WHERE THE AGENTS LANDED?': '¿EL MODELO LOCAL ATERRIZA DONDE ATERRIZÓ LA TRIPULACIÓN?',
|
|
@@ -710,7 +963,7 @@ export const ES = {
|
|
|
710
963
|
'MU/TH/UR › actualizando. La salida está en la sala, y la ficha se refresca al terminar.',
|
|
711
964
|
'NOT NOW': 'AHORA NO',
|
|
712
965
|
'ECONOMY · THIS ROOM': 'ECONOMÍA · ESTA SALA',
|
|
713
|
-
'NO TURNS WEIGHED YET · SEND A MESSAGE AND THIS FILLS': 'TODAVÍA NO
|
|
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',
|
|
714
967
|
'ECONOMY UNAVAILABLE': 'ECONOMÍA NO DISPONIBLE',
|
|
715
968
|
'LOCAL BRAIN': 'CEREBRO LOCAL',
|
|
716
969
|
'ROLES': 'PAPELES',
|
|
@@ -722,8 +975,6 @@ export const ES = {
|
|
|
722
975
|
'ESTO ESCRIBE DENTRO DEL PROYECTO. MADRE VA A CORRER, EN LA CARPETA DEL PROYECTO:',
|
|
723
976
|
'DEVELOP FOR MADRE': 'DESARROLLA PARA MADRE',
|
|
724
977
|
'Would you like to develop for MADRE?': '¿Te gustaría desarrollar para MADRE?',
|
|
725
|
-
'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.':
|
|
726
|
-
'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.',
|
|
727
978
|
' every project · ': ' todos los proyectos · ',
|
|
728
979
|
' this project': ' este proyecto',
|
|
729
980
|
'READ THE SDK ↗': 'LEER EL SDK ↗',
|
|
@@ -816,7 +1067,8 @@ export const ES = {
|
|
|
816
1067
|
'{events} eventos · {entries} intercambios indexados · {memories} memorias reescritas con el marcador',
|
|
817
1068
|
'{n} private terms replaced with {marker}': '{n} términos privados reemplazados con {marker}',
|
|
818
1069
|
'memory · ': 'memoria · ',
|
|
819
|
-
|
|
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 · ',
|
|
820
1072
|
' could not distil #{from}–#{through}: ': ' no pudo destilar #{from}–#{through}: ',
|
|
821
1073
|
' · batch skipped': ' · lote saltado',
|
|
822
1074
|
' · @{agent} takes the next run': ' · @{agent} toma la siguiente corrida',
|
|
@@ -858,7 +1110,7 @@ export const ES = {
|
|
|
858
1110
|
' · {n} existing files put back, CREATE only adds: {files}': ' · {n} archivos que ya existían se restauraron, CREATE solo agrega: {files}',
|
|
859
1111
|
' · {n} writes into forbidden zones reverted': ' · {n} escrituras en zonas prohibidas revertidas',
|
|
860
1112
|
' · need to change existing files? ask again in #3 CONTROL': ' · ¿necesitas cambiar archivos que ya existen? pídelo otra vez en #3 CONTROL',
|
|
861
|
-
'CONTROL
|
|
1113
|
+
'CONTROL': 'CONTROL',
|
|
862
1114
|
' holds the project · checkpoint ': ' tiene el proyecto · checkpoint ',
|
|
863
1115
|
'MU/TH/UR › @{agent} holds CONTROL. Checkpoint taken; UNDO will be one click.':
|
|
864
1116
|
'MU/TH/UR › @{agent} tiene CONTROL. Checkpoint tomado; DESHACER va a ser un clic.',
|
|
@@ -986,6 +1238,11 @@ export const ES = {
|
|
|
986
1238
|
'⚙ CONNECTIONS': '⚙ CONEXIONES',
|
|
987
1239
|
'✎ FEEDBACK': '✎ COMENTARIOS',
|
|
988
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…',
|
|
989
1246
|
'COLLAPSE ALL': 'CERRAR TODO',
|
|
990
1247
|
'END SESSION ×': 'TERMINAR SESIÓN ×',
|
|
991
1248
|
'NO SPECIAL ORDERS ON THIS SHIP · THE CREW IS NOT EXPENDABLE · ESC TO END SESSION':
|
|
@@ -999,10 +1256,7 @@ export const ES = {
|
|
|
999
1256
|
'ARM': 'ARMAR',
|
|
1000
1257
|
'ONE HOLDER AT A TIME · EVERY TURN IS CHECKPOINTED · WHAT LEAVES THE SHIP DOES NOT COME BACK · STOPALL REVOKES IT':
|
|
1001
1258
|
'UN SOLO PORTADOR A LA VEZ · CADA TURNO LLEVA CHECKPOINT · LO QUE SALE DE LA NAVE NO REGRESA · STOPALL LO REVOCA',
|
|
1002
|
-
'INTERFACE 2037 · FIRST CONTACT': 'INTERFAZ 2037 · PRIMER CONTACTO',
|
|
1003
|
-
'SKIP ×': 'SALTAR ×',
|
|
1004
1259
|
'BACK': 'ATRÁS',
|
|
1005
|
-
'NEXT ›': 'SIGUIENTE ›',
|
|
1006
1260
|
'MEMORY RESEARCH · ACCESS CONTROL': 'INVESTIGACIÓN DE MEMORIA · CONTROL DE ACCESO',
|
|
1007
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.':
|
|
1008
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.',
|
|
@@ -1018,8 +1272,56 @@ export const ES = {
|
|
|
1018
1272
|
'ASK · 0': 'PREGUNTAR · 0',
|
|
1019
1273
|
'RECENTER': 'RECENTRAR',
|
|
1020
1274
|
'LEAVE ×': 'SALIR ×',
|
|
1021
|
-
|
|
1022
|
-
|
|
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',
|
|
1023
1325
|
'⚠ WARNING ⚠': '⚠ ADVERTENCIA ⚠',
|
|
1024
1326
|
'MU/TH/UR 6000 · SPECIAL ORDER 937 · PRIORITY ONE': 'MU/TH/UR 6000 · ORDEN ESPECIAL 937 · PRIORIDAD UNO',
|
|
1025
1327
|
'WHAT TO ASK NEXT': 'QUÉ PREGUNTAR AHORA',
|
|
@@ -1592,34 +1894,6 @@ export const ES = {
|
|
|
1592
1894
|
'Run `gemini` and use /auth, or check GEMINI_API_KEY.': 'Corre `gemini` y usa /auth, o revisa GEMINI_API_KEY.',
|
|
1593
1895
|
|
|
1594
1896
|
// ── EL RECORRIDO DE PRIMER CONTACTO ───────────────────────────────────────
|
|
1595
|
-
'ONE ROOM, YOUR AGENTS': 'UNA SALA, TUS AGENTES',
|
|
1596
|
-
'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.':
|
|
1597
|
-
'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.',
|
|
1598
|
-
'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.':
|
|
1599
|
-
'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.',
|
|
1600
|
-
'Nothing leaves this machine on its own: each agent talks to its own provider with its own session.':
|
|
1601
|
-
'De esta computadora no sale nada por su cuenta: cada agente habla con su propio proveedor y con su propia sesión.',
|
|
1602
|
-
'MODES: HOW FAR A MESSAGE MAY GO': 'MODOS: HASTA DÓNDE PUEDE LLEGAR UN MENSAJE',
|
|
1603
|
-
'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.',
|
|
1604
|
-
'#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.':
|
|
1605
|
-
'#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.',
|
|
1606
|
-
'Each agent has a MAX MODE and a DEFAULT MODE in ⚙ CONNECTIONS.':
|
|
1607
|
-
'Cada agente tiene su MODO MÁXIMO y su MODO INICIAL en ⚙ CONEXIONES.',
|
|
1608
|
-
'A MEMORY EVERY AGENT RECALLS': 'UNA MEMORIA QUE TODOS RECUERDAN',
|
|
1609
|
-
'Everything said outside GHOST is indexed. When the conversation grows, each turn gets the older exchanges that match, cited by sequence.':
|
|
1610
|
-
'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.',
|
|
1611
|
-
'The archivist distils decisions, facts, preferences and open questions; with Ollama it runs locally and for free, and @madre answers from the whole archive.':
|
|
1612
|
-
'El archivista destila decisiones, hechos, preferencias y preguntas abiertas; con Ollama corre local y gratis, y @madre contesta desde el archivo entero.',
|
|
1613
|
-
'◉ NOSTROMO shows the memory as a map. PRIVACY keeps names that must never travel through the room.':
|
|
1614
|
-
'◉ NOSTROMO enseña la memoria como un mapa. PRIVACY guarda los nombres que nunca deben viajar por la sala.',
|
|
1615
|
-
'MU/TH/UR AND MODULES': 'MU/TH/UR Y LOS MÓDULOS',
|
|
1616
|
-
'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.':
|
|
1617
|
-
'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.',
|
|
1618
|
-
'MODULES adds optional powers: Git Pulse, Image Studio, RIPLEY previews, OLLAMA, PLAYWRIGHT, and your own modules from one file.':
|
|
1619
|
-
'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.',
|
|
1620
|
-
'This tour comes back from the ? in MU/TH/UR. Type STOPALL any time to halt every agent.':
|
|
1621
|
-
'Este recorrido vuelve desde el ? de MU/TH/UR. Escribe STOPALL cuando quieras para frenar a todos los agentes.',
|
|
1622
|
-
'START ›': 'EMPEZAR ›',
|
|
1623
1897
|
|
|
1624
1898
|
// ── EL COMPOSITOR, LOS MODOS Y LA ANULACIÓN ──────────────────────────────
|
|
1625
1899
|
'Arm CREATE for this message: the agent may add new files to the project where they belong.':
|
|
@@ -1747,7 +2021,6 @@ export const ES = {
|
|
|
1747
2021
|
|
|
1748
2022
|
// ── LA SALA EN MOVIMIENTO: PLANES, FRENOS, ADJUNTOS Y AVISOS ─────────────
|
|
1749
2023
|
'answering @{agent}': 'contestándole a @{agent}',
|
|
1750
|
-
' · {n} saved': ' · {n} ahorrados',
|
|
1751
2024
|
' wrote ': ' escribió ',
|
|
1752
2025
|
'CHECK AGAIN': 'MEDIR OTRA VEZ',
|
|
1753
2026
|
'CHECK IT AGAINST THIS ROOM': 'MEDIRLO CONTRA ESTA SALA',
|
|
@@ -2097,20 +2370,14 @@ export const ES = {
|
|
|
2097
2370
|
'THIS RUNS ON THIS COMPUTER, OUTSIDE THE PROJECT:': 'ESTO CORRE EN ESTA COMPUTADORA, FUERA DEL PROYECTO:',
|
|
2098
2371
|
|
|
2099
2372
|
// La economía de la sala y la ficha de Ollama.
|
|
2100
|
-
'TOKENS SAVED': 'TOKENS AHORRADOS',
|
|
2101
2373
|
'read back from the CLI cache, plus what was never sent': 'leídos de la caché del CLI, más lo que nunca se mandó',
|
|
2102
2374
|
'FROM CACHE': 'DE LA CACHÉ',
|
|
2103
|
-
'input the CLI did not charge again · {pct} of the input': 'entrada que el CLI no volvió a cobrar · {pct} de la entrada',
|
|
2104
2375
|
'NEVER SENT': 'NUNCA SE MANDÓ',
|
|
2105
2376
|
'briefing a turn had no use for': 'briefing que ese turno no necesitaba',
|
|
2106
|
-
'SPENT IN': 'GASTADO EN ENTRADA',
|
|
2107
|
-
'input tokens actually charged': 'tokens de entrada realmente cobrados',
|
|
2108
2377
|
'SPENT OUT': 'GASTADO EN SALIDA',
|
|
2109
2378
|
'output tokens, the dearer half': 'tokens de salida, la mitad más cara',
|
|
2110
2379
|
'TURNS': 'TURNOS',
|
|
2111
2380
|
'weighed so far': 'pesados hasta ahora',
|
|
2112
|
-
'{pct} OF EACH PROMPT IS THE UNCHANGING HEAD A CACHE CAN MATCH · MADRE WROTE {chars} CHARACTERS OF THE {input} INPUT TOKENS YOU WERE CHARGED FOR; THE REST IS WHAT THE CLIs READ ON THEIR OWN':
|
|
2113
|
-
'{pct} DE CADA PROMPT ES LA CABECERA QUE NO CAMBIA Y QUE UNA CACHÉ PUEDE RECONOCER · MADRE ESCRIBIÓ {chars} CARACTERES DE LOS {input} TOKENS DE ENTRADA QUE TE COBRARON; EL RESTO ES LO QUE LOS CLIs LEYERON POR SU CUENTA',
|
|
2114
2381
|
'SERVER': 'SERVIDOR',
|
|
2115
2382
|
'running · {host}': 'corriendo · {host}',
|
|
2116
2383
|
'not running': 'no está corriendo',
|
|
@@ -2250,6 +2517,39 @@ export const ES = {
|
|
|
2250
2517
|
'{name} installed': '{name} instalado',
|
|
2251
2518
|
'{name} install failed': 'falló la instalación de {name}',
|
|
2252
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',
|
|
2253
2553
|
'It loads in every room on this computer.': 'Se carga en todas las salas de esta computadora.',
|
|
2254
2554
|
'DISABLE': 'APAGAR',
|
|
2255
2555
|
'ENABLE': 'ENCENDER',
|