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
@@ -0,0 +1,198 @@
1
+ # HERO — composición del modo (agent-plane) de RATACODE.
2
+ # La monta el selector de modos de DSH para UNA sesión; lo compartido (los registros,
3
+ # el sandbox, el modelo) vive en la composición del host.
4
+ #
5
+ # Las filas de herramientas están copiadas TAL CUAL del preset `standard` que trae DSH,
6
+ # porque dos de ellas NO tienen valor por defecto en su esquema y el cargador rechaza el
7
+ # modo AL APLICARLO si faltan (R3: «invalid config: - $.x missing required value»):
8
+ # · tool-fs-search necesita `sampleOverCapGlobResults` (standard/agent.cordis.yml:60-63)
9
+ # · tool-todo necesita `allowParallelInProgress` (standard/agent.cordis.yml:241-244)
10
+ #
11
+ # Compuesto por trabajo\R14\componer-modos.mjs. A partir de aquí, ESTE fichero manda.
12
+
13
+ # ── identidad: el oficio del modo ─────────────────────────────────────────
14
+ - id: persona
15
+ name: '@deepseek-ai/dsh-persona'
16
+ config:
17
+ prefix: >-
18
+ Eres HERO de RATACODE (no eres un asistente genérico). Tu oficio: implementar. Eres las MANOS de la
19
+ casa: escribes el código, creas y cambias ficheros y lanzas los comandos que hacen falta, siguiendo
20
+ el plan y dentro del espacio autorizado.
21
+
22
+ NO rediseñas por tu cuenta: si el plan no encaja con lo que encuentras, paras y lo dices — el diseño
23
+ es del ARQUITECTO y el plan del CAPATAZ. Un cambio no está hecho hasta que lo has abierto y lo has
24
+ visto funcionar; y si algo queda sin comprobar, lo dices.
25
+
26
+ NORMAS DE LA CASA (van con todos los modos): trabaja SOLO dentro del espacio autorizado; para salir de
27
+ él, para y pide permiso. Nunca enseñes claves, tokens ni secretos, y no leas ficheros de credenciales:
28
+ si falta una clave, para y dilo. Entiende el objetivo ANTES de tocar nada. Cambio mínimo: lo justo, sin
29
+ rehacer lo que ya funciona. No inventes datos: lo que no hayas comprobado es SOSPECHA, y «no lo sé» vale
30
+ más que un número inventado. Instalado no es funcionando: compruébalo abriéndolo y usándolo. Di claro los
31
+ errores y los bloqueos. Respeta tu rol: no hagas el oficio de otro modo. Al terminar entrega: qué hiciste,
32
+ qué encontraste, cómo lo comprobaste y qué queda pendiente.
33
+
34
+ Modelo: {{model}}. Directorio de trabajo: {{cwd}}.
35
+
36
+ - id: agent-instructions
37
+ name: '@deepseek-ai/dsh-agent-instructions'
38
+ config:
39
+ maxBytes: 65536
40
+
41
+ - id: tool-fs
42
+ name: '@deepseek-ai/dsh-tool-fs'
43
+
44
+ - id: tool-fs-search
45
+ name: '@deepseek-ai/dsh-tool-fs-search'
46
+ config:
47
+ sampleOverCapGlobResults: false
48
+
49
+ # ── terminal: este modo SÍ ejecuta cosas ─────────────────────────────────
50
+ - id: tool-bash
51
+ name: '@deepseek-ai/dsh-tool-bash'
52
+ disabled: !!js process.platform === 'win32'
53
+
54
+ - id: tool-pwsh
55
+ name: '@deepseek-ai/dsh-tool-pwsh'
56
+ disabled: !!js process.platform !== 'win32'
57
+
58
+ - id: tool-jobs
59
+ name: '@deepseek-ai/dsh-tool-jobs'
60
+
61
+ - id: skill-filesystem
62
+ name: '@deepseek-ai/dsh-skill-filesystem'
63
+
64
+ - id: tool-skill
65
+ name: '@deepseek-ai/dsh-tool-skill'
66
+
67
+ - id: command-goal
68
+ name: '@deepseek-ai/dsh-command-goal'
69
+
70
+ - id: tool-goal
71
+ name: '@deepseek-ai/dsh-tool-goal'
72
+
73
+ - id: planning
74
+ name: cordis:group
75
+ group: true
76
+ isolate:
77
+ planMode: true
78
+ config:
79
+ - id: plan-mode
80
+ name: '@deepseek-ai/dsh-plan-mode'
81
+ config:
82
+ section: |
83
+ You are in plan mode. Stay in plan mode until exit_plan_mode succeeds or the user switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
84
+
85
+ Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
86
+
87
+ The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed to keep the tool catalog unchanged. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
88
+
89
+ Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
90
+
91
+ Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
92
+
93
+ When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
94
+
95
+ - id: compaction
96
+ name: cordis:group
97
+ group: true
98
+ isolate:
99
+ compaction: true
100
+ toolResultPruner: true
101
+ config:
102
+ - id: compaction-basic
103
+ name: '@deepseek-ai/dsh-compaction-basic'
104
+
105
+ - id: command-compact
106
+ name: '@deepseek-ai/dsh-command-compact'
107
+
108
+ - id: tool-result-pruner
109
+ name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
110
+ config:
111
+ thresholdChars: 8192
112
+ headChars: 4096
113
+ tailChars: 1024
114
+
115
+ - id: delegation
116
+ name: cordis:group
117
+ group: true
118
+ isolate:
119
+ workflowEngine: true
120
+ config:
121
+ - id: tool-subagent-control
122
+ name: '@deepseek-ai/dsh-tool-subagent-control'
123
+
124
+ - id: tool-subagent-list-agents
125
+ name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
126
+
127
+ - id: tool-subagent
128
+ name: '@deepseek-ai/dsh-tool-subagent'
129
+ config:
130
+ provider: spawn
131
+ toolName: subagent
132
+ modelSelectionSettings: true
133
+ backgroundMode: continuable
134
+
135
+ # Fork omits model selection so provider/model stay equal to the parent and
136
+ # the inherited history remains eligible for KV Cache reuse. This preset
137
+ # keeps fork continuable; parent and child inherit the same messaging tool,
138
+ # while the parent id and return guidance follow the inherited history.
139
+ - id: tool-subagent-fork
140
+ name: '@deepseek-ai/dsh-tool-subagent'
141
+ config:
142
+ provider: fork
143
+ toolName: subagent_fork
144
+ backgroundMode: continuable
145
+
146
+ # Production dsh does not install these optional providers. Install the
147
+ # matching Bundle in this Profile and restart the Host, then copy this
148
+ # preset and remove `disabled` from the matching tool row. Host availability
149
+ # alone grants no tool.
150
+ - id: tool-subagent-codex
151
+ name: '@deepseek-ai/dsh-tool-subagent'
152
+ disabled: true
153
+ config:
154
+ provider: codex
155
+ toolName: subagent_codex
156
+ backgroundMode: one-shot
157
+ maxDepth: provider-managed
158
+
159
+ - id: tool-subagent-claude-code
160
+ name: '@deepseek-ai/dsh-tool-subagent'
161
+ disabled: true
162
+ config:
163
+ provider: claude-code
164
+ toolName: subagent_claude_code
165
+ backgroundMode: one-shot
166
+ maxDepth: provider-managed
167
+
168
+ - id: workflow-worker-thread
169
+ name: '@deepseek-ai/dsh-workflow-worker-thread'
170
+ config:
171
+ provider: spawn
172
+
173
+ - id: tool-workflow
174
+ name: '@deepseek-ai/dsh-tool-workflow'
175
+
176
+ - id: tool-ralph
177
+ disabled: true
178
+ name: '@deepseek-ai/dsh-tool-ralph'
179
+ config:
180
+ subagentProvider: spawn
181
+ maxRounds: 64
182
+
183
+ - id: tool-ask-user
184
+ name: '@deepseek-ai/dsh-tool-ask-user'
185
+
186
+ - id: tool-todo
187
+ name: '@deepseek-ai/dsh-tool-todo'
188
+ config:
189
+ allowParallelInProgress: true
190
+
191
+ - id: tool-web
192
+ name: '@deepseek-ai/dsh-tool-web'
193
+ config:
194
+ fetch: true
195
+ searchTimeoutMs: 60000
196
+
197
+ - id: present
198
+ name: '@deepseek-ai/dsh-tool-present'
@@ -0,0 +1,3 @@
1
+ name: "HERO"
2
+ description: "Las manos: implementa código, ficheros y comandos siguiendo el plan, dentro del espacio."
3
+ order: 4
@@ -0,0 +1,198 @@
1
+ # MODO-RATA — composición del modo (agent-plane) de RATACODE.
2
+ # La monta el selector de modos de DSH para UNA sesión; lo compartido (los registros,
3
+ # el sandbox, el modelo) vive en la composición del host.
4
+ #
5
+ # Las filas de herramientas están copiadas TAL CUAL del preset `standard` que trae DSH,
6
+ # porque dos de ellas NO tienen valor por defecto en su esquema y el cargador rechaza el
7
+ # modo AL APLICARLO si faltan (R3: «invalid config: - $.x missing required value»):
8
+ # · tool-fs-search necesita `sampleOverCapGlobResults` (standard/agent.cordis.yml:60-63)
9
+ # · tool-todo necesita `allowParallelInProgress` (standard/agent.cordis.yml:241-244)
10
+ #
11
+ # Compuesto por trabajo\R14\componer-modos.mjs. A partir de aquí, ESTE fichero manda.
12
+
13
+ # ── identidad: el oficio del modo ─────────────────────────────────────────
14
+ - id: persona
15
+ name: '@deepseek-ai/dsh-persona'
16
+ config:
17
+ prefix: >-
18
+ Eres MODO-RATA de RATACODE (no eres un asistente genérico): la rata de la casa, el modo de por
19
+ defecto. Tu oficio es el de todos y el de nadie: haces tareas normales sin especializarte, sin
20
+ complicar lo sencillo y sin montar ceremonia donde no hace falta.
21
+
22
+ Si la tarea pide un oficio concreto —arquitectura, plan, manos, un fallo, una revisión, un texto—
23
+ dilo en una línea y deja que la coja el modo que le toca (ARQUITECTO, CAPATAZ, HERO, TIRITA,
24
+ GEPETO, FARO) en vez de hacerlo tú a medias.
25
+
26
+ NORMAS DE LA CASA (van con todos los modos): trabaja SOLO dentro del espacio autorizado; para salir de
27
+ él, para y pide permiso. Nunca enseñes claves, tokens ni secretos, y no leas ficheros de credenciales:
28
+ si falta una clave, para y dilo. Entiende el objetivo ANTES de tocar nada. Cambio mínimo: lo justo, sin
29
+ rehacer lo que ya funciona. No inventes datos: lo que no hayas comprobado es SOSPECHA, y «no lo sé» vale
30
+ más que un número inventado. Instalado no es funcionando: compruébalo abriéndolo y usándolo. Di claro los
31
+ errores y los bloqueos. Respeta tu rol: no hagas el oficio de otro modo. Al terminar entrega: qué hiciste,
32
+ qué encontraste, cómo lo comprobaste y qué queda pendiente.
33
+
34
+ Modelo: {{model}}. Directorio de trabajo: {{cwd}}.
35
+
36
+ - id: agent-instructions
37
+ name: '@deepseek-ai/dsh-agent-instructions'
38
+ config:
39
+ maxBytes: 65536
40
+
41
+ - id: tool-fs
42
+ name: '@deepseek-ai/dsh-tool-fs'
43
+
44
+ - id: tool-fs-search
45
+ name: '@deepseek-ai/dsh-tool-fs-search'
46
+ config:
47
+ sampleOverCapGlobResults: false
48
+
49
+ # ── terminal: este modo SÍ ejecuta cosas ─────────────────────────────────
50
+ - id: tool-bash
51
+ name: '@deepseek-ai/dsh-tool-bash'
52
+ disabled: !!js process.platform === 'win32'
53
+
54
+ - id: tool-pwsh
55
+ name: '@deepseek-ai/dsh-tool-pwsh'
56
+ disabled: !!js process.platform !== 'win32'
57
+
58
+ - id: tool-jobs
59
+ name: '@deepseek-ai/dsh-tool-jobs'
60
+
61
+ - id: skill-filesystem
62
+ name: '@deepseek-ai/dsh-skill-filesystem'
63
+
64
+ - id: tool-skill
65
+ name: '@deepseek-ai/dsh-tool-skill'
66
+
67
+ - id: command-goal
68
+ name: '@deepseek-ai/dsh-command-goal'
69
+
70
+ - id: tool-goal
71
+ name: '@deepseek-ai/dsh-tool-goal'
72
+
73
+ - id: planning
74
+ name: cordis:group
75
+ group: true
76
+ isolate:
77
+ planMode: true
78
+ config:
79
+ - id: plan-mode
80
+ name: '@deepseek-ai/dsh-plan-mode'
81
+ config:
82
+ section: |
83
+ You are in plan mode. Stay in plan mode until exit_plan_mode succeeds or the user switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
84
+
85
+ Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
86
+
87
+ The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed to keep the tool catalog unchanged. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
88
+
89
+ Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
90
+
91
+ Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
92
+
93
+ When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
94
+
95
+ - id: compaction
96
+ name: cordis:group
97
+ group: true
98
+ isolate:
99
+ compaction: true
100
+ toolResultPruner: true
101
+ config:
102
+ - id: compaction-basic
103
+ name: '@deepseek-ai/dsh-compaction-basic'
104
+
105
+ - id: command-compact
106
+ name: '@deepseek-ai/dsh-command-compact'
107
+
108
+ - id: tool-result-pruner
109
+ name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
110
+ config:
111
+ thresholdChars: 8192
112
+ headChars: 4096
113
+ tailChars: 1024
114
+
115
+ - id: delegation
116
+ name: cordis:group
117
+ group: true
118
+ isolate:
119
+ workflowEngine: true
120
+ config:
121
+ - id: tool-subagent-control
122
+ name: '@deepseek-ai/dsh-tool-subagent-control'
123
+
124
+ - id: tool-subagent-list-agents
125
+ name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
126
+
127
+ - id: tool-subagent
128
+ name: '@deepseek-ai/dsh-tool-subagent'
129
+ config:
130
+ provider: spawn
131
+ toolName: subagent
132
+ modelSelectionSettings: true
133
+ backgroundMode: continuable
134
+
135
+ # Fork omits model selection so provider/model stay equal to the parent and
136
+ # the inherited history remains eligible for KV Cache reuse. This preset
137
+ # keeps fork continuable; parent and child inherit the same messaging tool,
138
+ # while the parent id and return guidance follow the inherited history.
139
+ - id: tool-subagent-fork
140
+ name: '@deepseek-ai/dsh-tool-subagent'
141
+ config:
142
+ provider: fork
143
+ toolName: subagent_fork
144
+ backgroundMode: continuable
145
+
146
+ # Production dsh does not install these optional providers. Install the
147
+ # matching Bundle in this Profile and restart the Host, then copy this
148
+ # preset and remove `disabled` from the matching tool row. Host availability
149
+ # alone grants no tool.
150
+ - id: tool-subagent-codex
151
+ name: '@deepseek-ai/dsh-tool-subagent'
152
+ disabled: true
153
+ config:
154
+ provider: codex
155
+ toolName: subagent_codex
156
+ backgroundMode: one-shot
157
+ maxDepth: provider-managed
158
+
159
+ - id: tool-subagent-claude-code
160
+ name: '@deepseek-ai/dsh-tool-subagent'
161
+ disabled: true
162
+ config:
163
+ provider: claude-code
164
+ toolName: subagent_claude_code
165
+ backgroundMode: one-shot
166
+ maxDepth: provider-managed
167
+
168
+ - id: workflow-worker-thread
169
+ name: '@deepseek-ai/dsh-workflow-worker-thread'
170
+ config:
171
+ provider: spawn
172
+
173
+ - id: tool-workflow
174
+ name: '@deepseek-ai/dsh-tool-workflow'
175
+
176
+ - id: tool-ralph
177
+ disabled: true
178
+ name: '@deepseek-ai/dsh-tool-ralph'
179
+ config:
180
+ subagentProvider: spawn
181
+ maxRounds: 64
182
+
183
+ - id: tool-ask-user
184
+ name: '@deepseek-ai/dsh-tool-ask-user'
185
+
186
+ - id: tool-todo
187
+ name: '@deepseek-ai/dsh-tool-todo'
188
+ config:
189
+ allowParallelInProgress: true
190
+
191
+ - id: tool-web
192
+ name: '@deepseek-ai/dsh-tool-web'
193
+ config:
194
+ fetch: true
195
+ searchTimeoutMs: 60000
196
+
197
+ - id: present
198
+ name: '@deepseek-ai/dsh-tool-present'
@@ -0,0 +1,3 @@
1
+ name: "MODO-RATA"
2
+ description: "El modo de por defecto: tareas normales, sin especialización y sin complicar lo sencillo."
3
+ order: 1
@@ -0,0 +1,213 @@
1
+ # NEX — composición del modo (agent-plane) de RATACODE.
2
+ # La monta el selector de modos de DSH para UNA sesión; lo compartido (los registros,
3
+ # el sandbox, el modelo) vive en la composición del host.
4
+ #
5
+ # Las filas de herramientas están copiadas TAL CUAL del preset `standard` que trae DSH,
6
+ # porque dos de ellas NO tienen valor por defecto en su esquema y el cargador rechaza el
7
+ # modo AL APLICARLO si faltan (R3: «invalid config: - $.x missing required value»):
8
+ # · tool-fs-search necesita `sampleOverCapGlobResults` (standard/agent.cordis.yml:60-63)
9
+ # · tool-todo necesita `allowParallelInProgress` (standard/agent.cordis.yml:241-244)
10
+ #
11
+ # Compuesto por trabajo\R14\componer-modos.mjs. A partir de aquí, ESTE fichero manda.
12
+
13
+ # ── identidad: el oficio del modo ─────────────────────────────────────────
14
+ - id: persona
15
+ name: '@deepseek-ai/dsh-persona'
16
+ config:
17
+ prefix: >-
18
+ Eres NEX de RATACODE (no eres un asistente genérico). Tu oficio: hacer y probar los modos y los
19
+ plugins de la casa. Lees y escribes la composición Cordis en la que corres: cada capacidad es una
20
+ fila de plugin, y un modo es una de esas composiciones montada para una sesión. Puedes montar una
21
+ fila, probarla y quitarla.
22
+
23
+ Trabajas sobre COPIA: nunca toques los modos que trae la instalación (no se editan ni se borran;
24
+ una actualización los pisa). Para cambiar algo, copia el modo a otro y edita la copia. Y cuidado:
25
+ un modo que escribas lo montarán otras sesiones — trátalo como dar acceso a la terminal, y di qué
26
+ ha cambiado.
27
+
28
+ NORMAS DE LA CASA (van con todos los modos): trabaja SOLO dentro del espacio autorizado; para salir de
29
+ él, para y pide permiso. Nunca enseñes claves, tokens ni secretos, y no leas ficheros de credenciales:
30
+ si falta una clave, para y dilo. Entiende el objetivo ANTES de tocar nada. Cambio mínimo: lo justo, sin
31
+ rehacer lo que ya funciona. No inventes datos: lo que no hayas comprobado es SOSPECHA, y «no lo sé» vale
32
+ más que un número inventado. Instalado no es funcionando: compruébalo abriéndolo y usándolo. Di claro los
33
+ errores y los bloqueos. Respeta tu rol: no hagas el oficio de otro modo. Al terminar entrega: qué hiciste,
34
+ qué encontraste, cómo lo comprobaste y qué queda pendiente.
35
+
36
+ Modelo: {{model}}. Directorio de trabajo: {{cwd}}.
37
+
38
+ - id: agent-instructions
39
+ name: '@deepseek-ai/dsh-agent-instructions'
40
+ config:
41
+ maxBytes: 65536
42
+
43
+ - id: tool-fs
44
+ name: '@deepseek-ai/dsh-tool-fs'
45
+
46
+ - id: tool-fs-search
47
+ name: '@deepseek-ai/dsh-tool-fs-search'
48
+ config:
49
+ sampleOverCapGlobResults: false
50
+
51
+ # ── terminal: este modo SÍ ejecuta cosas ─────────────────────────────────
52
+ - id: tool-bash
53
+ name: '@deepseek-ai/dsh-tool-bash'
54
+ disabled: !!js process.platform === 'win32'
55
+
56
+ - id: tool-pwsh
57
+ name: '@deepseek-ai/dsh-tool-pwsh'
58
+ disabled: !!js process.platform !== 'win32'
59
+
60
+ - id: tool-jobs
61
+ name: '@deepseek-ai/dsh-tool-jobs'
62
+
63
+ # Las skills de composición viajan CON este modo (igual que en el preset `cordis` de
64
+ # DSH): `baseUrl` es el directorio del propio modo, así que la ruta se resuelve esté
65
+ # donde esté instalado.
66
+ - id: skill-filesystem
67
+ name: '@deepseek-ai/dsh-skill-filesystem'
68
+ config:
69
+ customSkillDirs:
70
+ - !!js "process.getBuiltinModule('node:url').fileURLToPath(new URL('skills/', baseUrl))"
71
+
72
+ - id: tool-skill
73
+ name: '@deepseek-ai/dsh-tool-skill'
74
+
75
+ - id: command-goal
76
+ name: '@deepseek-ai/dsh-command-goal'
77
+
78
+ - id: tool-goal
79
+ name: '@deepseek-ai/dsh-tool-goal'
80
+
81
+ - id: planning
82
+ name: cordis:group
83
+ group: true
84
+ isolate:
85
+ planMode: true
86
+ config:
87
+ - id: plan-mode
88
+ name: '@deepseek-ai/dsh-plan-mode'
89
+ config:
90
+ section: |
91
+ You are in plan mode. Stay in plan mode until exit_plan_mode succeeds or the user switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
92
+
93
+ Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
94
+
95
+ The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed to keep the tool catalog unchanged. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
96
+
97
+ Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
98
+
99
+ Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
100
+
101
+ When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
102
+
103
+ - id: compaction
104
+ name: cordis:group
105
+ group: true
106
+ isolate:
107
+ compaction: true
108
+ toolResultPruner: true
109
+ config:
110
+ - id: compaction-basic
111
+ name: '@deepseek-ai/dsh-compaction-basic'
112
+
113
+ - id: command-compact
114
+ name: '@deepseek-ai/dsh-command-compact'
115
+
116
+ - id: tool-result-pruner
117
+ name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
118
+ config:
119
+ thresholdChars: 8192
120
+ headChars: 4096
121
+ tailChars: 1024
122
+
123
+ - id: delegation
124
+ name: cordis:group
125
+ group: true
126
+ isolate:
127
+ workflowEngine: true
128
+ config:
129
+ - id: tool-subagent-control
130
+ name: '@deepseek-ai/dsh-tool-subagent-control'
131
+
132
+ - id: tool-subagent-list-agents
133
+ name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
134
+
135
+ - id: tool-subagent
136
+ name: '@deepseek-ai/dsh-tool-subagent'
137
+ config:
138
+ provider: spawn
139
+ toolName: subagent
140
+ modelSelectionSettings: true
141
+ backgroundMode: continuable
142
+
143
+ # Fork omits model selection so provider/model stay equal to the parent and
144
+ # the inherited history remains eligible for KV Cache reuse. This preset
145
+ # keeps fork continuable; parent and child inherit the same messaging tool,
146
+ # while the parent id and return guidance follow the inherited history.
147
+ - id: tool-subagent-fork
148
+ name: '@deepseek-ai/dsh-tool-subagent'
149
+ config:
150
+ provider: fork
151
+ toolName: subagent_fork
152
+ backgroundMode: continuable
153
+
154
+ # Production dsh does not install these optional providers. Install the
155
+ # matching Bundle in this Profile and restart the Host, then copy this
156
+ # preset and remove `disabled` from the matching tool row. Host availability
157
+ # alone grants no tool.
158
+ - id: tool-subagent-codex
159
+ name: '@deepseek-ai/dsh-tool-subagent'
160
+ disabled: true
161
+ config:
162
+ provider: codex
163
+ toolName: subagent_codex
164
+ backgroundMode: one-shot
165
+ maxDepth: provider-managed
166
+
167
+ - id: tool-subagent-claude-code
168
+ name: '@deepseek-ai/dsh-tool-subagent'
169
+ disabled: true
170
+ config:
171
+ provider: claude-code
172
+ toolName: subagent_claude_code
173
+ backgroundMode: one-shot
174
+ maxDepth: provider-managed
175
+
176
+ - id: workflow-worker-thread
177
+ name: '@deepseek-ai/dsh-workflow-worker-thread'
178
+ config:
179
+ provider: spawn
180
+
181
+ - id: tool-workflow
182
+ name: '@deepseek-ai/dsh-tool-workflow'
183
+
184
+ - id: tool-ralph
185
+ disabled: true
186
+ name: '@deepseek-ai/dsh-tool-ralph'
187
+ config:
188
+ subagentProvider: spawn
189
+ maxRounds: 64
190
+
191
+ - id: tool-ask-user
192
+ name: '@deepseek-ai/dsh-tool-ask-user'
193
+
194
+ - id: tool-todo
195
+ name: '@deepseek-ai/dsh-tool-todo'
196
+ config:
197
+ allowParallelInProgress: true
198
+
199
+ - id: tool-web
200
+ name: '@deepseek-ai/dsh-tool-web'
201
+ config:
202
+ fetch: true
203
+ searchTimeoutMs: 60000
204
+
205
+ # ── el oficio de NEX: leer y escribir la composición en la que corre ──────
206
+ # `cordis_mount` evalúa JavaScript escrito por el modelo contra el runtime vivo, y
207
+ # una composición que escriba este modo la montarán otras sesiones: es un modo con
208
+ # el mismo poder que una terminal.
209
+ - id: tool-cordis
210
+ name: '@deepseek-ai/dsh-tool-cordis'
211
+
212
+ - id: present
213
+ name: '@deepseek-ai/dsh-tool-present'
@@ -0,0 +1,3 @@
1
+ name: "NEX"
2
+ description: "Hace y prueba los modos y los plugins de la casa: lee y escribe la composición en la que corre."
3
+ order: 9