ratacode 0.2.5

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.
Files changed (58) hide show
  1. package/CREDITS.md +80 -0
  2. package/LICENSE +21 -0
  3. package/README.md +289 -0
  4. package/apreton/README.md +54 -0
  5. package/apreton/handshake.md +33 -0
  6. package/apreton/headless.md +58 -0
  7. package/apreton/mcp.md +221 -0
  8. package/apreton/navegador.md +58 -0
  9. package/bin/instalacion.js +148 -0
  10. package/bin/ratacode.js +1251 -0
  11. package/fabrica/settings.yaml +247 -0
  12. package/mcp/README.md +253 -0
  13. package/mcp/bin/ratacode-mcp.js +215 -0
  14. package/mcp/lib/actividad.js +49 -0
  15. package/mcp/lib/casa.js +126 -0
  16. package/mcp/lib/claves.js +148 -0
  17. package/mcp/lib/espacios.js +117 -0
  18. package/mcp/lib/http.js +184 -0
  19. package/mcp/lib/lectura.js +210 -0
  20. package/mcp/lib/modelos.js +235 -0
  21. package/mcp/lib/nucleo.js +332 -0
  22. package/mcp/lib/registro.js +21 -0
  23. package/mcp/lib/seguridad.js +283 -0
  24. package/mcp/lib/servidor.js +397 -0
  25. package/mcp/lib/tareas.js +406 -0
  26. package/mcp/package.json +22 -0
  27. package/mcp/tunel.mjs +209 -0
  28. package/modos/arquitecto/agent.cordis.yml +120 -0
  29. package/modos/arquitecto/preset.yml +3 -0
  30. package/modos/capataz/agent.cordis.yml +120 -0
  31. package/modos/capataz/preset.yml +3 -0
  32. package/modos/faro/agent.cordis.yml +120 -0
  33. package/modos/faro/preset.yml +3 -0
  34. package/modos/gepeto/agent.cordis.yml +191 -0
  35. package/modos/gepeto/preset.yml +3 -0
  36. package/modos/hero/agent.cordis.yml +198 -0
  37. package/modos/hero/preset.yml +3 -0
  38. package/modos/modo-rata/agent.cordis.yml +198 -0
  39. package/modos/modo-rata/preset.yml +3 -0
  40. package/modos/nex/agent.cordis.yml +213 -0
  41. package/modos/nex/preset.yml +3 -0
  42. package/modos/nex/skills/cordis-plugin-development/SKILL.md +420 -0
  43. package/modos/nex/skills/editing-cordis-compositions/SKILL.md +165 -0
  44. package/modos/pix/agent.cordis.yml +207 -0
  45. package/modos/pix/preset.yml +3 -0
  46. package/modos/tirita/agent.cordis.yml +130 -0
  47. package/modos/tirita/preset.yml +3 -0
  48. package/package.json +49 -0
  49. package/piel/activos/ratacode-emblema.svg +14 -0
  50. package/piel/activos/ratacode-es.js +1331 -0
  51. package/piel/activos/ratacode-identidad.css +50 -0
  52. package/piel/activos/ratacode-piel.css +217 -0
  53. package/piel/activos/ratacode-piel.js +487 -0
  54. package/piel/activos/ratacode-vida.js +424 -0
  55. package/piel/cordis.patch.yml +6 -0
  56. package/piel/lib/cliente.js +1020 -0
  57. package/piel/lib/index.js +1230 -0
  58. package/piel/package.json +36 -0
package/CREDITS.md ADDED
@@ -0,0 +1,80 @@
1
+ # Créditos y licencias de terceros
2
+
3
+ RATACODE se reparte bajo **MIT** (ver [`LICENSE`](LICENSE)). Dentro viaja, sin modificar,
4
+ un motor de terceros que hace el trabajo de verdad; su licencia es también MIT y su aviso
5
+ de copyright tiene que viajar con él. Este fichero es ese aviso.
6
+
7
+ ## RATACODE
8
+
9
+ MIT License — Copyright (c) 2026 **Patxi**
10
+
11
+ ## Motor de trabajo
12
+
13
+ MIT License — Copyright (c) 2026 **DeepSeek**
14
+
15
+ Paquete: `@deepseek-ai/dsh` (DeepSeek Harness). RATACODE lo usa como dependencia, sin
16
+ tocarlo: la casa, la piel, los modos y el servidor MCP son de RATACODE; el motor es suyo.
17
+ Texto de la licencia, tal y como viene en el paquete:
18
+
19
+ ```
20
+ MIT License
21
+
22
+ Copyright (c) 2026 DeepSeek
23
+
24
+ Permission is hereby granted, free of charge, to any person obtaining a copy
25
+ of this software and associated documentation files (the "Software"), to deal
26
+ in the Software without restriction, including without limitation the rights
27
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
28
+ copies of the Software, and to permit persons to whom the Software is
29
+ furnished to do so, subject to the following conditions:
30
+
31
+ The above copyright notice and this permission notice shall be included in all
32
+ copies or substantial portions of the Software.
33
+
34
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
35
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
36
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
37
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
38
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
39
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
40
+ SOFTWARE.
41
+ ```
42
+
43
+ ## sharp y libvips (LGPL-3.0-or-later)
44
+
45
+ `sharp` (Apache-2.0) trae dentro los binarios de **libvips**, que son
46
+ **LGPL-3.0-or-later**: `@img/sharp-win32-x64` se declara `Apache-2.0 AND
47
+ LGPL-3.0-or-later` y en su carpeta viajan `libvips-42.dll` y
48
+ `libvips-cpp-8.18.6.dll`. Su texto está en
49
+ <https://www.gnu.org/licenses/lgpl-3.0.html>. No se modifica nada de libvips: se
50
+ usa el binario tal y como lo publica el paquete, y por eso la licencia se cumple
51
+ con este aviso y con el enlace a su texto.
52
+
53
+ El resto del árbol (587 paquetes, casi todos MIT, Apache-2.0, BSD o ISC) lo
54
+ instala **npm** al instalar RATACODE, con las licencias que declara cada paquete
55
+ y sus ficheros de licencia dentro de `node_modules`; RATACODE no los copia ni los
56
+ modifica, y en el `.tgz` sólo viaja lo que declara `files` en su `package.json`.
57
+
58
+ ## RATACODE
59
+
60
+ MIT License
61
+
62
+ Copyright (c) 2026 Patxi
63
+
64
+ Permission is hereby granted, free of charge, to any person obtaining a copy
65
+ of this software and associated documentation files (the "Software"), to deal
66
+ in the Software without restriction, including without limitation the rights
67
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
68
+ copies of the Software, and to permit persons to whom the Software is
69
+ furnished to do so, subject to the following conditions:
70
+
71
+ The above copyright notice and this permission notice shall be included in all
72
+ copies or substantial portions of the Software.
73
+
74
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
75
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
76
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
77
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
78
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
79
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
80
+ SOFTWARE.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Patxi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,289 @@
1
+ # RATACODE
2
+
3
+ **Manos baratas para tu agente o tu chat.** RATACODE es la terminal de trabajo bruto:
4
+ una terminal de trabajo con IA con la cara de RATACODE —las ratas, las chispas,
5
+ los colores— montada sobre un motor libre que no se toca. Le mandas el
6
+ trabajo pesado y barato (B.AI, OpenRouter, DeepSeek, cinco proveedores gratuitos y
7
+ **dos modelos locales sin clave ni coste** vienen de fábrica) y el resultado vuelve a tu
8
+ agente o a tu chat.
9
+
10
+ **La web:** <https://kittcat.com/ratacode/> — la página del producto, con el botón que
11
+ copia el prompt de instalación y lo cuenta en corto.
12
+
13
+ ## Qué trae la 0.2.0
14
+
15
+ - **Los 9 modos de casa** (MODO-RATA, ARQUITECTO, CAPATAZ, HERO, TIRITA, GEPETO, FARO,
16
+ PIX y NEX) en el selector, con MODO-RATA por defecto y **sin los modos de serie del
17
+ motor**: una casa vieja se pone al día sola al arrancar.
18
+ - **Modelos locales de serie, sin clave:** Ollama y LM Studio tienen **su propia pestaña
19
+ en Ajustes → «Modelos locales»** (si están encendidos, qué modelos tienes y cuáles valen
20
+ como agente, su dirección, cómo encenderlos y la tabla «qué modelo local según tu
21
+ tarjeta»). Ajustes → Models se queda para las **8 APIs con clave**.
22
+ - **Cada tarea MCP se ve en la barra lateral del panel**, con su conversación: el MCP
23
+ deja de ser una caja negra.
24
+ - **La instalación, en un comando:** `npm i -g ratacode`.
25
+ - Fuera el nombre del motor de todo lo que ve el usuario (panel, ayuda y mensajes).
26
+
27
+ ## Qué trae la 0.2.1
28
+
29
+ - **Las claves, en un solo sitio y editables:** la única fuente es **Ajustes → Models** (la
30
+ casa). El motor y el MCP arrancan **sin** las variables de claves de Windows, así que el
31
+ campo de cada proveedor siempre se puede pegar y editar en la web.
32
+ - **El MCP deja de mirar el entorno de tu chat:** le pregunta al motor si la credencial está
33
+ puesta en la casa. Si no lo está, dice
34
+ `Falta la clave de B.AI. Pégala en RATACODE › Ajustes › Models.` Y las altas de MCP
35
+ (Claude Code, Codex, OpenClaw…) ya no llevan `--env` ni `env_vars`: sólo `ratacode mcp`.
36
+ - **Arreglado el arranque de una casa de la 0.1:** si su `cordis.patch.yml` se quedó roto (un
37
+ `[]` pegado delante de las filas, de la 0.2.0), se repara solo al arrancar y el motor no se
38
+ cae al leer el overlay.
39
+ - **Aviso de migración, una vez:** si tienes variables de claves de proveedores en Windows, el
40
+ panel te lo recuerda en una línea —«RATACODE ya no la usa: pega tu clave en Ajustes ›
41
+ Models»— con su botón de cerrar. No copia ninguna clave y no vuelve.
42
+
43
+ ## Requisitos
44
+
45
+ - **Windows** (la v1 solo está probada en Windows; Mac y Linux, después).
46
+ - **Node 24** — las dependencias nativas de la terminal (`node-pty`, `koffi`) necesitan
47
+ que npm ejecute sus scripts de instalación.
48
+
49
+ ## Instalación (un comando)
50
+
51
+ ```bash
52
+ npm i -g ratacode
53
+ ```
54
+
55
+ > **Los avisos amarillos de npm 11 al instalar son normales.** npm 11 frena los scripts
56
+ > de instalación de las dependencias nativas de la terminal y avisa con
57
+ > «allow-scripts» / «Ignored build scripts». Ese aviso **no impide que RATACODE funcione**:
58
+ > el paquete ya declara las que hacen falta (`allowScripts` en su `package.json`) y sus
59
+ > binarios vienen precompilados para Node 24.
60
+
61
+ Alternativa, si npm te falla o quieres una versión concreta: la **release de GitHub**
62
+ (el `.tgz` que cuelga de ella; no hace falta ni git ni cuenta de npm):
63
+
64
+ ```bash
65
+ npm i -g https://github.com/kittcat-lab/ratacode/releases/download/v0.2.0/ratacode-0.2.0.tgz
66
+ ```
67
+
68
+ Último recurso, si la descarga falla: `git clone https://github.com/kittcat-lab/ratacode && cd ratacode && npm pack && npm i -g ./ratacode-0.2.0.tgz`.
69
+
70
+ Y para abrirla (lo mismo en los tres casos):
71
+
72
+ ```bash
73
+ ratacode
74
+ ```
75
+
76
+ Arranca el panel con la cara de RATACODE en el puerto **3777** (fijo y conocido; `--port` lo
77
+ cambia), imprime la URL **con su token** y la guarda en `<casa>\url.txt` — la de la vez
78
+ anterior se borra al arrancar y la nueva sólo se escribe **cuando el puerto ya escucha**.
79
+ Cada arranque y cada cierre del motor quedan apuntados en `<casa>\ratacode.log`, con su
80
+ código de salida y su señal (para saber por qué se cerró).
81
+
82
+ ## Las claves: Ajustes → Models (ocho APIs de fábrica)
83
+
84
+ Cada usuario pone las suyas; **nunca viajan dentro del paquete**. Se ponen donde el motor
85
+ las pone siempre: en la web, **Ajustes → Models**, con el campo «API key» de cada proveedor
86
+ (quedan en `<casa>\.credentials.yaml`), o exportando su variable de entorno. RATACODE trae
87
+ **ocho APIs** ya declaradas (los dos motores locales, que no piden clave, están en
88
+ **Ajustes → «Modelos locales»**):
89
+
90
+ | Proveedor | Variable | Notas |
91
+ |---|---|---|
92
+ | B.AI | `B_AI_API_KEY` | de fábrica, con `deepseek-v4.1-flash` y más modelos baratos |
93
+ | OpenRouter | `OPENROUTER_API_KEY` | |
94
+ | DeepSeek | `DEEPSEEK_API_KEY` | adaptador nativo del motor (`deepseek-official`) |
95
+ | Groq | `GROQ_API_KEY` | gratis (30 RPM / 1.000 RPD); `openai/gpt-oss-120b`, `qwen/qwen3.8-27b` |
96
+ | Google Gemini | `GEMINI_API_KEY` | gratis, pero **entrena con tus datos**: no lo uses con código confidencial |
97
+ | NVIDIA NIM | `NVIDIA_API_KEY` | gratis sólo para prototipar; uso comercial prohibido sin licencia |
98
+ | SambaNova | `SAMBANOVA_API_KEY` | gratis permanente (20 RPM / 20 RPD / 200K TPD) |
99
+ | Cloudflare Workers AI | `CLOUDFLARE_API_KEY` | **cambia `{account_id}` a mano**: Ajustes → Models → ese proveedor → *Customized settings* → **Base URL** |
100
+ | **Ollama (local)** | *ninguna* | `http://127.0.0.1:11434/v1`, sin clave y sin coste ([ollama.com/download](https://ollama.com/download)) |
101
+ | **LM Studio (local)** | *ninguna* | `http://127.0.0.1:1234/v1`, sin clave (`lms server start`); pon el id que devuelva `GET /v1/models` |
102
+
103
+ Los dos locales **no piden clave**: van declarados sin credencial y el motor deja la ruta
104
+ sin autenticar. Nada sale de tu ordenador cuando trabajas con ellos, y por eso **no salen
105
+ en Ajustes → Models**: tienen su pestaña, **Ajustes → «Modelos locales»**, donde se ve si
106
+ están encendidos, qué modelos tienes, cuáles valen como agente, su dirección (y cómo
107
+ cambiarla si usas otro puerto) y el enlace de descarga.
108
+
109
+ ### Qué modelo local según tu tarjeta
110
+
111
+ Bájalo con `ollama pull <id>` y elígelo en el selector de modelos de la caja. Medido en el
112
+ informe R15 (tool calling = que el modelo sepa **usar** las herramientas, no sólo hablar):
113
+
114
+ | Tu tarjeta | Modelo (`ollama pull`) | Tamaño | Por qué ése |
115
+ |---|---|---|---|
116
+ | **8 GB** | `qwen3:8b` | 5,2 GB | la mejor evidencia independiente de uso de herramientas (F1 0,919 en el banco de Docker; medido aquí: devuelve `tool_calls` de verdad) |
117
+ | **12 GB** | `gemma4:12b` | 7,6 GB | cifra agéntica publicada (τ² 69,0) y function calling nativo; a ≤16K de contexto |
118
+ | **16 GB** | `gpt-oss:20b` | 14 GB | `tools` nativo y Apache-2.0; **súbele el contexto** (con 4K por defecto las herramientas se rompen) y no hace llamadas en paralelo |
119
+ | **24 GB** | `muse-glimmer:30b` (o `qwen3.6:27b`) | 18 GB | los dos con cifras de trabajo real (SWE-bench Verified 76-77) |
120
+ | **Solo CPU** | `granite4.1:3b` (2,1 GB) o `lfm2.5:8b` (1B activo) | 2-5 GB | caben en RAM sin tarjeta; con 32 GB, `nemotron-3.5-lightning:30b` |
121
+
122
+ Si tienes 8 GB, `lfm2.5:8b` también vale (125K de contexto, hecho para tool calling).
123
+
124
+ > **Ojo con `qwen2.5-coder:7b`.** Devuelve las herramientas **como texto** dentro del
125
+ > mensaje en vez de llamarlas: el modelo no llega a ejecutar nada y el agente se queda
126
+ > mirando. Medido en R15 con Ollama; no lo pongas como modo de trabajo. (Lo mismo, por
127
+ > la misma razón, con `qwen3.5:9b` y el *thinking* activado.)
128
+
129
+ Para LM Studio el id de modelo lo pone la aplicación: míralo con
130
+ `curl http://127.0.0.1:1234/v1/models` y escríbelo en el selector de modelos de la caja
131
+ (la pestaña **Modelos locales** te dice cuál devuelve tu servidor).
132
+
133
+ Los dos lados de la mano están en **Ajustes → Conexiones**: el texto que se copia para
134
+ los agentes con navegador (Claude Code, Codex, OpenClaw, Rowboat…) —lo copia y lo deja en
135
+ `<casa>\handshake.md`— y el **MCP para chats web**, con la carpeta autorizada («Este chat
136
+ solo puede leer y escribir en `<carpeta>`.») y el texto que se pega en el chat.
137
+ **El MCP es la vía recomendada**: cuesta menos (dos llamadas y texto, sin capturas de
138
+ pantalla), tiene estado explícito y **cada tarea sale en la barra lateral del panel** con
139
+ su conversación, así que no es una caja negra.
140
+
141
+ **Las claves del MCP.** Están en UN solo sitio: **Ajustes → Models** (la casa). El servidor
142
+ MCP no mira las variables de entorno del cliente ni abre ficheros de claves: le pregunta al
143
+ motor si la credencial de esa ruta está puesta. Si no lo está, se para y lo dice:
144
+ `Falta la clave de B.AI. Pégala en RATACODE › Ajustes › Models.` Alta típica, sin nada más:
145
+ `claude mcp add --transport stdio ratacode -- ratacode mcp`.
146
+
147
+ ## Los 9 modos de la casa
148
+
149
+ El selector del panel trae los **nueve modos de RATACODE y ninguno de los de serie del
150
+ motor**; el de por defecto es **MODO-RATA**:
151
+
152
+ | Modo | Oficio |
153
+ |---|---|
154
+ | MODO-RATA | generalista: el de por defecto |
155
+ | ARQUITECTO | decidir CÓMO se construye |
156
+ | CAPATAZ | objetivo → plan ejecutable |
157
+ | HERO | las manos: implementar |
158
+ | TIRITA | curar fallos |
159
+ | GEPETO | segunda opinión y pesquisa |
160
+ | FARO | escribir claro |
161
+ | PIX | la vía rápida: varias operaciones en un programa |
162
+ | NEX | hacer y probar modos y plugins |
163
+
164
+ ## Las 3 formas de usarlo
165
+
166
+ 1. **Navegador** — `ratacode`: la terminal en tu navegador, sin «Permitir» en cada paso
167
+ (`danger-full-access` de fábrica). `--home` cambia la casa y `--open` abre el navegador.
168
+ 2. **Headless** — `ratacode headless "encargo"`: mandas el encargo por terminal, sin
169
+ pantalla, y la entrega queda en un fichero.
170
+ 3. **MCP** — `ratacode mcp` (o `node mcp/bin/ratacode-mcp.js --home <casa>`): servidor MCP
171
+ por stdio para Claude Code, Codex, ChatGPT web, Rowboat u OpenClaw. Siete herramientas:
172
+ `list_providers` → `list_models` → `run_task` → `get_task_status` → `get_task_result` →
173
+ `cancel_task` y `ratacode_status`. Por HTTP (para ChatGPT web) hace falta
174
+ `ratacode mcp --http` y `mcp.workspaces` declarado; el túnel es
175
+ `node mcp/tunel.mjs --home <casa>` (puerto por defecto del MCP: 3778).
176
+
177
+ > Los rótulos propios y las secciones **Conexiones**, **Modelos locales** y **Modos** están en
178
+ > español, pero Ajustes → Models y los menús del motor siguen en inglés (los pone el motor, y
179
+ > RATACODE no reescribe la interfaz a propósito).
180
+
181
+ Para manejar RATACODE desde otro chat sin ayuda, abre **Ajustes → Conexiones** y usa sus dos
182
+ tarjetas (el texto para los agentes con navegador y el MCP para chats web); los textos largos
183
+ están en la carpeta [`apreton`](https://github.com/kittcat-lab/ratacode) del repositorio
184
+ (navegador, headless o MCP).
185
+
186
+ ## Seguridad
187
+
188
+ - **Casa propia y cerrada.** Todo vive en `%USERPROFILE%\.ratacode`, **su** carpeta (nunca
189
+ la de ajustes de ningún otro programa). Una tarea MCP trabaja **solo dentro de las
190
+ carpetas autorizadas** (`mcp.workspaces`): escribe y lee ahí, y ni una cosa ni la otra
191
+ fuera. Lo impone el core (sandbox fijado en `workspace-write`) más el cerco de lectura
192
+ del MCP, y la tarea se para con una línea: «Fuera de la carpeta autorizada: `<ruta>`».
193
+ - **Y sin puertas por detrás.** En una tarea del MCP no hay terminal, ni trabajos en
194
+ segundo plano, ni red, ni subagentes, ni guiones: se apagan una a una en el parche de
195
+ cada tarea. Lo que la tarea lea viaja al proveedor del modelo, así que la carpeta
196
+ autorizada es, de verdad, todo lo que ese chat puede ver.
197
+ - **La lectura, encerrada desde R25.** El motor sigue sin saber acotarla (su sandbox es de
198
+ ESCRITURA: *«Reads pass through untouched: every mode permits reading»*), así que
199
+ RATACODE la encierra con el gancho `tools/pre-execute` del motor: cada herramienta con
200
+ una ruta fuera de `mcp.workspaces` se deniega. Antes, `ratacode mcp --http` y
201
+ `mcp/tunel.mjs` **no arrancaban** sin `--acepto-lectura-total`; ya no hace falta nada de
202
+ eso (la bandera se acepta como no-op, por no romper comandos viejos).
203
+ - **Las claves no salen.** Nunca van dentro del paquete. El servidor MCP no lee ficheros
204
+ de credenciales (le pregunta al motor si la credencial está puesta en la casa), las usa
205
+ y no las devuelve ni las escribe en el cuaderno. El motor, además, lava el entorno de
206
+ los shells de sus agentes (`/KEY|PASSWORD|SECRET|TOKEN/i`). Y con el cerco de lectura,
207
+ una tarea MCP tampoco puede abrir `<casa>\.credentials.yaml`.
208
+ - **Lo que adjuntes viaja al proveedor del modelo, igual que el texto.** El panel deja
209
+ adjuntar ficheros e imágenes, y eso también sale de tu PC.
210
+ - **Nada hacia fuera por sí solo:** sin telemetría, sin cuentas; de tu PC solo sale lo que
211
+ tus llamadas a tu proveedor de modelos.
212
+
213
+ ## Desinstalar y borrar datos
214
+
215
+ Nada de RATACODE queda fuera de estas dos cosas: el paquete y la casa.
216
+
217
+ ```bash
218
+ # 1. El programa (y su comando `ratacode`)
219
+ npm uninstall -g ratacode
220
+
221
+ # 2. La casa: ajustes, claves, perfiles, sesiones y registros
222
+ # (en Windows, la carpeta por defecto; si usaste --home, la que le dijeras)
223
+ rmdir /s /q "%USERPROFILE%\.ratacode"
224
+ # PowerShell: Remove-Item -Recurse -Force "$env:USERPROFILE\.ratacode"
225
+ # Mac/Linux: rm -rf ~/.ratacode
226
+ ```
227
+
228
+ Dentro de esa carpeta van, en claro, **tus claves** (`<casa>\.credentials.yaml`), la clave del
229
+ MCP por HTTP (`<casa>\mcp\http-secret.txt`), la URL del panel con su token (`<casa>\url.txt`),
230
+ los ajustes (`<casa>\settings.yaml`) y los perfiles con la piel copiada. Borrar la carpeta lo
231
+ borra todo; no hay nada más que limpiar (RATACODE nunca escribe fuera de su casa, y si algún
232
+ día exportaste `B_AI_API_KEY` en tu shell, eso se quita de tu perfil de shell).
233
+
234
+ ## Licencia y créditos
235
+
236
+ MIT © 2026 **Patxi** (ver [`LICENSE`](LICENSE)). Créditos y licencias de terceros, con su
237
+ texto completo, en [`CREDITS.md`](CREDITS.md).
238
+
239
+ **RATACODE no está afiliado ni avalado por DeepSeek, OpenAI, Anthropic ni Google.** Los
240
+ nombres de sus productos y modelos se usan solo para decir con qué se puede trabajar.
241
+
242
+ ---
243
+
244
+ ### English summary
245
+
246
+ **RATACODE — cheap hands for your agent or your chat.** A terminal for AI work wearing
247
+ the RATACODE skin, built on a free engine it never modifies. Send heavy work to cheap
248
+ models (B.AI, OpenRouter, DeepSeek, five free providers and **two local, key-free ones**)
249
+ and get the result back in your agent or chat.
250
+
251
+ - **Requires:** Windows and Node 24.
252
+ - **Web:** <https://kittcat.com/ratacode/> — the product page, with the install prompt ready to copy.
253
+ - **Install (one command):** `npm i -g ratacode`
254
+ (the yellow npm 11 «allow-scripts» warnings during install are normal and do not stop it
255
+ from working; alternative: the GitHub release tarball
256
+ `https://github.com/kittcat-lab/ratacode/releases/download/v0.2.0/ratacode-0.2.0.tgz`
257
+ — last resort: `git clone` the repo, `npm pack` and `npm i -g ./ratacode-0.2.0.tgz`) — then run `ratacode`.
258
+ - **Bring your own keys:** eight APIs ship declared (`B.AI`, `OpenRouter`, `DeepSeek`,
259
+ `Groq`, `Google Gemini`, `NVIDIA NIM`, `SambaNova`, `Cloudflare Workers AI` — the last one
260
+ needs your `{account_id}` pasted into *Customized settings → Base URL*). Set each key in the
261
+ web UI (Settings → Models) or as its environment variable; keys are never bundled.
262
+ The MCP server asks the engine whether the credential is set in the house — it never reads your
263
+ chat's environment or any credentials file.
264
+ - **Local models live in their own tab (Settings → "Modelos locales"):** **Ollama** and
265
+ **LM Studio**, local and key-free — whether they are installed, running or off, the button to
266
+ turn them on and off, which models you have and which ones work as an agent, and your card's
267
+ recommendation ("your GPU: 10 GB → recommended: qwen3:8b"). They stay declared in the house, so
268
+ the box's model picker still offers them.
269
+ - **Nine modes** ship in the picker (MODO-RATA by default) and none of the engine's own: three
270
+ columns by three rows, each with its character's colour and "En uso" on the one in charge.
271
+ - **Conexiones (Settings → Conexiones):** one button copies the text that tells an agent how to
272
+ work with RATACODE; the other card turns the web-chat connection on and off, with the address
273
+ to paste in ChatGPT › Settings › Connectors and its one-line warning. **MCP is the recommended
274
+ route** (cheaper and more reliable), and every MCP task shows up in the panel sidebar with its
275
+ conversation.
276
+ - **Three ways to use it:** browser (`ratacode`), headless (`ratacode headless "task"`),
277
+ and MCP (`ratacode mcp`) so ChatGPT web, Claude Code, Codex, Rowboat or OpenClaw can
278
+ delegate tasks (`list_models`, `run_task`, `get_task_status`, `get_task_result`, `cancel_task`).
279
+ - **Security:** its own locked home (`%USERPROFILE%\.ratacode`, never any other program's settings
280
+ folder); MCP tasks work only inside the folders you authorise (`mcp.workspaces`) — they **read
281
+ and write there and nowhere else** — with no terminal, no network, no subagents and no scripts,
282
+ and the read fence is the engine's own `tools/pre-execute` hook, so the HTTP transport and the
283
+ tunnel no longer need `--acepto-lectura-total` (it is a no-op now); and the keys never travel
284
+ inside the package.
285
+ - **Uninstall:** `npm uninstall -g ratacode`, then delete the home folder
286
+ (`%USERPROFILE%\.ratacode`; `rm -rf ~/.ratacode` on Mac/Linux). That folder holds your keys
287
+ (`.credentials.yaml`), the MCP key (`mcp\http-secret.txt`) and the panel URL with its token
288
+ (`url.txt`); nothing else is written anywhere.
289
+ - **License:** MIT © 2026 Patxi. Third-party credits and licences: [`CREDITS.md`](CREDITS.md).
@@ -0,0 +1,54 @@
1
+ # RATACODE · Conexiones: cuál elegir según tu app
2
+
3
+ | Tu app | Qué usar | Por qué |
4
+ |---|---|---|
5
+ | Claude Code, Codex, OpenClaw, Rowboat | **mcp.md** (recomendado) o **navegador.md** | **El MCP es la vía recomendada**: más barata (dos llamadas y texto, sin capturas), con estado explícito y con cada tarea visible en la barra lateral del panel. El navegador sigue valiendo si tu app prefiere mirar la pantalla. |
6
+ | ChatGPT web (el chat) | **mcp.md** con túnel | ChatGPT web habla MCP por HTTP. Necesitas el túnel de Cloudflare: `node mcp/tunel.mjs --home <casa>` (lo cuenta mcp.md). La clave va en la URL. |
7
+ | Cualquier chat sin MCP ni navegador | **headless.md** | `ratacode headless "encargo"` hace el trabajo sin pantalla y deja el resultado en un fichero. |
8
+ | Cualquier agente que no sea de los anteriores | **mcp.md** (genérico) | Si tu agente habla MCP por stdio, usa la configuración genérica de mcp.md. |
9
+
10
+ ## Instalación (un comando)
11
+ ```bash
12
+ npm i -g ratacode
13
+ ```
14
+ Los avisos amarillos «allow-scripts» de npm 11 al instalar son normales y **no impiden que
15
+ funcione**. Alternativa, si quieres una versión concreta: el `.tgz` de la release de GitHub
16
+ (sin git ni cuenta de npm):
17
+
18
+ ```bash
19
+ npm i -g https://github.com/kittcat-lab/ratacode/releases/download/v0.2.0/ratacode-0.2.0.tgz
20
+ ```
21
+
22
+ Último recurso, si la descarga falla:
23
+ `git clone https://github.com/kittcat-lab/ratacode && cd ratacode && npm pack && npm i -g ./ratacode-0.2.0.tgz`.
24
+ Después, `ratacode` (necesita Windows y Node 24).
25
+
26
+ La web del producto, con el prompt listo para copiar: <https://kittcat.com/ratacode/>.
27
+
28
+ ## Dónde están los prompts
29
+ - **navegador.md** — para agentes con navegador (Claude Code, Codex, OpenClaw, Rowboat…)
30
+ - **headless.md** — para `ratacode headless "encargo"`
31
+ - **mcp.md** — para apps con MCP (Claude Code, Codex, OpenClaw, Rowboat, ChatGPT web con túnel, genérico)
32
+
33
+ ## Qué hace RATACODE
34
+ Una terminal de trabajo con IA con la cara de RATACODE, montada sobre un motor libre que no se toca. Los modelos baratos (B.AI: deepseek-v4.1-flash, glm-5.3-flash, qwen3.8-flash, hy3, mimo-v2.5) —o los tuyos, en local con Ollama o LM Studio— hacen el trabajo pesado. Tú planificas, revisas y cierras.
35
+
36
+ ## Cómo funciona el ciclo
37
+ 1. **Diagnóstico** — solo mirar, sin tocar ficheros.
38
+ 2. **Revisión** — comprueba los fallos que más pesen.
39
+ 3. **Arreglo** — de uno en uno, cambio mínimo, misma prueba antes/después.
40
+ 4. **Cierre** — lee el diff, repite la prueba, abre la app y lo ve.
41
+
42
+ **No arranques servidores. No publiques. Si falta algo, dilo.**
43
+
44
+ ## Las trampas que ya costaron
45
+ - **T2:** el espacio de trabajo ya viene puesto; no abras diálogos nativos.
46
+ - **T4:** no uses capturas; lee ficheros o usa `get_task_result`.
47
+ - **T11:** nunca leas `.credentials.yaml`, `.env` ni bóvedas.
48
+ - **T12:** las claves NO se le pasan al servidor MCP: están en RATACODE › Ajustes › Models y el servidor las lee de ahí. Si falta una, sale `Falta la clave de <proveedor>. Pégala en RATACODE › Ajustes › Models.`
49
+ - **T13:** si el tutor dice algo falso, corrígelo con la prueba.
50
+ - **T16:** `url.txt` se borra al arrancar y se escribe cuando el puerto contesta. Si no carga, espera 15 s y vuelve a leerla; si el puerto no escucha, arranca `ratacode` otra vez. El porqué de un cierre queda en `<casa>\ratacode.log`.
51
+ - **T17:** no termines el turno con la tarea en marcha: usa `run_task` con `esperar_segundos` o no pares hasta que `get_task_status` diga `completed`/`failed`. Por stdio, la tarea vive lo que vive el cliente.
52
+ - **T18:** un encargo grande, en sesión/chat nuevo: los encargos van en ficheros y no necesitan historial.
53
+
54
+ Elige el prompt que mejor encaje con tu app. Copia, pega, adapta y ejecuta.
@@ -0,0 +1,33 @@
1
+ # RATACODE
2
+
3
+ RATACODE corre en MI ordenador: una terminal de trabajo con IA, con modelos
4
+ baratos (o locales) y herramientas de verdad (ficheros, shell, búsqueda,
5
+ subagentes). Yo planifico y reviso; RATACODE hace el trabajo pesado. El panel es
6
+ la URL del recuadro de arriba: ábrela en tu navegador.
7
+
8
+ ## LO PRIMERO: cuánto trabajo descargas
9
+
10
+ Antes de nada, pregúntame: «¿qué porcentaje del trabajo quieres que descargue en
11
+ RATACODE?» (0-100 %) y trabaja según mi respuesta: 0 % = solo propones y revisas;
12
+ 50 % = reparto; 100 % = le mandas todo el trabajo pesado y tú solo revisas. Si no
13
+ contesto, empieza por 50 % y dímelo.
14
+
15
+ ## Cómo me mandas trabajo
16
+
17
+ Escribe el encargo EN LA CAJA del panel y pulsa Enter. Plantilla:
18
+
19
+ Soy [nombre], [rol]. Lee [fichero o carpeta].
20
+ LÍMITES: escribe SOLO en [carpeta]. No leas ficheros de credenciales.
21
+ TAREA: 1) ... 2) ...
22
+ Comprueba cada paso o marca SOSPECHA.
23
+ ENTREGA: [fichero con tope de líneas]. HAZLO sin pedir permiso.
24
+
25
+ ## Cómo vigilas (sin capturas)
26
+
27
+ No mires la pantalla (una captura gasta cuota): lee el fichero de sesión de la
28
+ casa —crece en cada turno— o espera la entrega EN UN FICHERO.
29
+
30
+ ## Reglas
31
+
32
+ No leas `.credentials.yaml` ni `.env`; sin clave, para y dilo. No arranques
33
+ servidores ni publiques. Encargo grande: chat nuevo y entrega en fichero.
@@ -0,0 +1,58 @@
1
+ # Headless: cómo manejar RATACODE sin navegador
2
+
3
+ RATACODE es una terminal de trabajo con IA con la cara de RATACODE, montada sobre un motor libre que no se toca. En modo headless no hay pantalla: mandas el encargo por terminal y el resultado llega a un fichero. Los modelos baratos —o los tuyos, en local— hacen el trabajo; tú planificas, revisas y cierras.
4
+
5
+ ## Cómo usarlo
6
+ ```sh
7
+ ratacode headless "tu encargo aquí"
8
+ ```
9
+ El resultado se escribe en un fichero que tú elijas dentro del encargo. `headless` hace el trabajo y termina.
10
+
11
+ ## Dónde está la URL (si la necesitas)
12
+ Lee `<casa>\url.txt`. La casa es la carpeta desde la que se arrancó `ratacode` (o `%USERPROFILE%\.ratacode` por defecto). En headless no la abres, pero si necesitas ver el estado, abre la URL en otro momento. **Ojo (T16):** ese fichero se escribe cuando el panel arranca y escucha, no en headless; si lo lees y no carga, espera 15 s y vuelve a leerlo, y mira `<casa>\ratacode.log` para saber por qué se cerró el motor.
13
+
14
+ ## Cómo escribir un encargo
15
+ Usa esta plantilla (funcionó a la primera):
16
+
17
+ ```
18
+ Soy [tu nombre], [tu rol]. Lee [fichero o carpeta].
19
+ LÍMITES: escribe SOLO en [carpeta]. [Lo que NO toques]. No leas ficheros de credenciales. Sin git, sin publicar.
20
+ TAREA:
21
+ 1) [Primer paso]
22
+ 2) [Segundo paso]
23
+ 3) ...
24
+ Comprueba cada paso o marca SOSPECHA.
25
+ ENTREGA: [fichero con tope de líneas].
26
+ HAZLO sin pedir permiso.
27
+ ```
28
+
29
+ **Después de enviar**, comprueba que el proceso terminó y que el fichero de entrega existe. Si no termina, mira por qué antes de repetir.
30
+
31
+ ## Cómo comprobar que llegó
32
+ - El proceso `ratacode headless` termina con código 0.
33
+ - El fichero de entrega existe y tiene contenido.
34
+ - Si hay error, el código de salida no es 0 y el stderr dice qué pasó.
35
+
36
+ ## Cómo vigilar sin capturas
37
+ No mires la pantalla. Lee el fichero de entrega directamente. Una captura gasta cuota; un fichero no. En headless no hay pantalla que mirar.
38
+
39
+ ## Trampas que ya costaron (tropiezos 2, 4, 6, 7, 11, 13, 16, 17, 18)
40
+
41
+ - **T2 · Espacio de trabajo:** arranca `ratacode headless` desde la carpeta de trabajo; el espacio ya viene puesto.
42
+ - **T4 · Capturas gastan cuota:** en headless no hay pantalla; pide la entrega en un fichero.
43
+ - **T6 · No aplica:** en headless no hay caja de chat.
44
+ - **T7 · No aplica:** en headless no hay caja de chat.
45
+ - **T11 · Credenciales:** nunca leas `.credentials.yaml`, `.env` ni bóvedas. Si falta una clave, para y dilo.
46
+ - **T13 · Tutor equivocado:** si el tutor dice algo falso, corrígelo con la prueba (fichero:línea); no obedezcas una premisa falsa.
47
+ - **T16 · La URL a medias y el cierre sin rastro:** `url.txt` se borra al arrancar el PANEL y se escribe cuando el puerto contesta; headless no lo toca. Si lo lees y no carga, espera 15 s y vuelve a leerlo. El motivo de un cierre del motor queda en `<casa>\ratacode.log` (código de salida y señal).
48
+ - **T17 · No aplica (y por eso headless es la salida de emergencia):** `ratacode headless` no termina su turno antes que la tarea: el proceso no sale hasta que el motor acaba, así que el fichero de entrega no se queda a medias. Si no puede volver a preguntar, pide la entrega en un fichero.
49
+ - **T18 · Un encargo grande, en sesión nueva:** cada `ratacode headless` es una sesión nueva del motor (no arrastra historial), que es justo lo que hay que hacer: los encargos van en ficheros y no necesitan historial. Lo que NO hay que hacer es encadenar encargos grandes en el mismo chat que los lanza.
50
+
51
+ ## El ciclo (diagnóstico → revisión → arreglo → cierre)
52
+
53
+ 1. **Diagnóstico** (tu sesión headless): solo mirar, sin tocar ficheros. Lee lo que te den, pasa pruebas, busca fallos y comprueba cada uno. Lo no comprobado, SOSPECHA.
54
+ 2. **Revisión** (tú): comprueba los fallos que más pesen. Marca falsos positivos.
55
+ 3. **Arreglo** (tu sesión headless): de uno en uno, cambio mínimo, misma prueba antes/después. Sin commit.
56
+ 4. **Cierre** (tú): lee el diff, repite la prueba, abre la app y lo ve. Commit solo si toca.
57
+
58
+ **No arranques servidores. No publiques. Si falta algo, dilo.**