xonecode 0.5.1 → 0.6.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.
Files changed (262) hide show
  1. package/apps/web/dist/assets/index-DBZTodio.js +477 -0
  2. package/apps/web/dist/assets/{index-BB3SamhR.css → index-rqecK6s2.css} +1 -1
  3. package/apps/web/dist/assets/{php-D_2--9WK.js → php-BBij3Lhc.js} +1 -1
  4. package/apps/web/dist/assets/{ruby-DSHSDbk1.js → ruby-Dq2YEaLo.js} +1 -1
  5. package/apps/web/dist/index.html +2 -2
  6. package/dist/agent/cloudstudio/cloudstudioClient.js.map +1 -0
  7. package/dist/agent/{cloudstudioMcp.js → cloudstudio/cloudstudioMcp.js} +5 -5
  8. package/dist/agent/cloudstudio/cloudstudioMcp.js.map +1 -0
  9. package/dist/agent/{descarga.js → cloudstudio/descarga.js} +3 -3
  10. package/dist/agent/cloudstudio/descarga.js.map +1 -0
  11. package/dist/agent/cloudstudio/manifiesto.js.map +1 -0
  12. package/dist/agent/{subida.js → cloudstudio/subida.js} +3 -3
  13. package/dist/agent/cloudstudio/subida.js.map +1 -0
  14. package/dist/agent/{zip.js → cloudstudio/zip.js} +1 -1
  15. package/dist/agent/cloudstudio/zip.js.map +1 -0
  16. package/dist/agent/{authEnDisco.js → config/authEnDisco.js} +3 -3
  17. package/dist/agent/config/authEnDisco.js.map +1 -0
  18. package/dist/agent/{catalogoModelos.js → config/catalogoModelos.js} +2 -1
  19. package/dist/agent/config/catalogoModelos.js.map +1 -0
  20. package/dist/agent/{configEnDisco.js → config/configEnDisco.js} +6 -6
  21. package/dist/agent/config/configEnDisco.js.map +1 -0
  22. package/dist/agent/{crearProyecto.js → config/crearProyecto.js} +2 -2
  23. package/dist/agent/config/crearProyecto.js.map +1 -0
  24. package/dist/agent/config/entorno.js.map +1 -0
  25. package/dist/agent/config/gemini.js.map +1 -0
  26. package/dist/agent/{modelos.js → config/modelos.js} +17 -3
  27. package/dist/agent/config/modelos.js.map +1 -0
  28. package/dist/agent/{modelosDeMotor.js → config/modelosDeMotor.js} +1 -1
  29. package/dist/agent/config/modelosDeMotor.js.map +1 -0
  30. package/dist/agent/{persona.js → config/persona.js} +1 -1
  31. package/dist/agent/config/persona.js.map +1 -0
  32. package/dist/agent/{settingsEnDisco.js → config/settingsEnDisco.js} +2 -2
  33. package/dist/agent/config/settingsEnDisco.js.map +1 -0
  34. package/dist/agent/{versionEnDisco.js → config/versionEnDisco.js} +8 -4
  35. package/dist/agent/config/versionEnDisco.js.map +1 -0
  36. package/dist/agent/dispositivos/arranqueDeEmulador.js +146 -0
  37. package/dist/agent/dispositivos/arranqueDeEmulador.js.map +1 -0
  38. package/dist/agent/{dispositivosEnMaquina.js → dispositivos/dispositivosEnMaquina.js} +93 -6
  39. package/dist/agent/dispositivos/dispositivosEnMaquina.js.map +1 -0
  40. package/dist/agent/dispositivos/hotswap.js.map +1 -0
  41. package/dist/agent/dispositivos/instalacionEnMaquina.js.map +1 -0
  42. package/dist/agent/{lanzamientoEnMaquina.js → dispositivos/lanzamientoEnMaquina.js} +1 -1
  43. package/dist/agent/dispositivos/lanzamientoEnMaquina.js.map +1 -0
  44. package/dist/agent/{paqueteDelProyecto.js → dispositivos/paqueteDelProyecto.js} +5 -5
  45. package/dist/agent/dispositivos/paqueteDelProyecto.js.map +1 -0
  46. package/dist/agent/dispositivos/procesosEnMaquina.js.map +1 -0
  47. package/dist/agent/{arbolDeProyecto.js → grafo/arbolDeProyecto.js} +2 -2
  48. package/dist/agent/grafo/arbolDeProyecto.js.map +1 -0
  49. package/dist/agent/{artefactosEnDisco.js → grafo/artefactosEnDisco.js} +2 -2
  50. package/dist/agent/grafo/artefactosEnDisco.js.map +1 -0
  51. package/dist/agent/{busquedaRegex.js → grafo/busquedaRegex.js} +41 -1
  52. package/dist/agent/grafo/busquedaRegex.js.map +1 -0
  53. package/dist/agent/grafo/excluirTools.js +82 -0
  54. package/dist/agent/grafo/excluirTools.js.map +1 -0
  55. package/dist/agent/{memoriaDeProyecto.js → grafo/memoriaDeProyecto.js} +1 -1
  56. package/dist/agent/grafo/memoriaDeProyecto.js.map +1 -0
  57. package/dist/agent/grafo/navegacionXone.js +198 -0
  58. package/dist/agent/grafo/navegacionXone.js.map +1 -0
  59. package/dist/agent/{perfiles.js → grafo/perfiles.js} +51 -8
  60. package/dist/agent/grafo/perfiles.js.map +1 -0
  61. package/dist/agent/{proyecto.js → grafo/proyecto.js} +207 -24
  62. package/dist/agent/grafo/proyecto.js.map +1 -0
  63. package/dist/agent/grafo/skills.js +393 -0
  64. package/dist/agent/grafo/skills.js.map +1 -0
  65. package/dist/agent/{xoneAgent.js → grafo/xoneAgent.js} +196 -67
  66. package/dist/agent/grafo/xoneAgent.js.map +1 -0
  67. package/dist/agent/navegacion/indiceEnDisco.js +21 -0
  68. package/dist/agent/navegacion/indiceEnDisco.js.map +1 -0
  69. package/dist/agent/navegacion/modeloDeProyecto.js +228 -0
  70. package/dist/agent/navegacion/modeloDeProyecto.js.map +1 -0
  71. package/dist/agent/raizDelPaquete.js +56 -0
  72. package/dist/agent/raizDelPaquete.js.map +1 -0
  73. package/dist/agent/{checkpointer.js → sesiones/checkpointer.js} +1 -1
  74. package/dist/agent/sesiones/checkpointer.js.map +1 -0
  75. package/dist/agent/sesiones/git.js.map +1 -0
  76. package/dist/agent/{gitSync.js → sesiones/gitSync.js} +3 -3
  77. package/dist/agent/sesiones/gitSync.js.map +1 -0
  78. package/dist/agent/{sesionGit.js → sesiones/sesionGit.js} +2 -2
  79. package/dist/agent/sesiones/sesionGit.js.map +1 -0
  80. package/dist/agent/{agentesEnDisco.js → subagentes/agentesEnDisco.js} +304 -86
  81. package/dist/agent/subagentes/agentesEnDisco.js.map +1 -0
  82. package/dist/agent/subagentes/consumoExterno.js.map +1 -0
  83. package/dist/agent/subagentes/escrituraDeCodex.js.map +1 -0
  84. package/dist/agent/{escrituraDeOpencode.js → subagentes/escrituraDeOpencode.js} +1 -1
  85. package/dist/agent/subagentes/escrituraDeOpencode.js.map +1 -0
  86. package/dist/agent/{escrituraExterna.js → subagentes/escrituraExterna.js} +6 -6
  87. package/dist/agent/subagentes/escrituraExterna.js.map +1 -0
  88. package/dist/agent/subagentes/subagenteCodex.js.map +1 -0
  89. package/dist/agent/subagentes/subagenteExterno.js.map +1 -0
  90. package/dist/agent/subagentes/subagenteOpencode.js.map +1 -0
  91. package/dist/agent/{aumentador.js → tareas/aumentador.js} +2 -2
  92. package/dist/agent/tareas/aumentador.js.map +1 -0
  93. package/dist/agent/{juezDeTarea.js → tareas/juezDeTarea.js} +5 -5
  94. package/dist/agent/tareas/juezDeTarea.js.map +1 -0
  95. package/dist/agent/{tareasEnDisco.js → tareas/tareasEnDisco.js} +4 -4
  96. package/dist/agent/tareas/tareasEnDisco.js.map +1 -0
  97. package/dist/agent/turno/diagnosticoDeTools.js.map +1 -0
  98. package/dist/agent/{guionizado.js → turno/guionizado.js} +1 -1
  99. package/dist/agent/turno/guionizado.js.map +1 -0
  100. package/dist/agent/turno/informeDeTraza.js +222 -0
  101. package/dist/agent/turno/informeDeTraza.js.map +1 -0
  102. package/dist/agent/turno/inspectorDePrompt.js +205 -0
  103. package/dist/agent/turno/inspectorDePrompt.js.map +1 -0
  104. package/dist/agent/{instantanea.js → turno/instantanea.js} +7 -2
  105. package/dist/agent/turno/instantanea.js.map +1 -0
  106. package/dist/agent/{interrupts.js → turno/interrupts.js} +2 -2
  107. package/dist/agent/turno/interrupts.js.map +1 -0
  108. package/dist/agent/turno/mensajes.js.map +1 -0
  109. package/dist/agent/turno/normalizar.js.map +1 -0
  110. package/dist/agent/{puente.js → turno/puente.js} +47 -3
  111. package/dist/agent/turno/puente.js.map +1 -0
  112. package/dist/agent/turno/resumenDeContexto.js +176 -0
  113. package/dist/agent/turno/resumenDeContexto.js.map +1 -0
  114. package/dist/agent/{resumenDeTool.js → turno/resumenDeTool.js} +15 -0
  115. package/dist/agent/turno/resumenDeTool.js.map +1 -0
  116. package/dist/agent/turno/textoDeTool.js.map +1 -0
  117. package/dist/agent/{turnoReal.js → turno/turnoReal.js} +38 -14
  118. package/dist/agent/turno/turnoReal.js.map +1 -0
  119. package/dist/agent/turno/verificador.js.map +1 -0
  120. package/dist/cli/config.js +1 -1
  121. package/dist/cli/config.js.map +1 -1
  122. package/dist/cli/consola.js +9 -9
  123. package/dist/cli/consola.js.map +1 -1
  124. package/dist/cli/describe.js +2 -2
  125. package/dist/cli/describe.js.map +1 -1
  126. package/dist/cli/doctor.js +1 -1
  127. package/dist/cli/doctor.js.map +1 -1
  128. package/dist/cli/fuentesDeDisco.js +29 -0
  129. package/dist/cli/fuentesDeDisco.js.map +1 -0
  130. package/dist/cli/main.js +37 -28
  131. package/dist/cli/main.js.map +1 -1
  132. package/dist/cli/run.js +32 -10
  133. package/dist/cli/run.js.map +1 -1
  134. package/dist/cli/traza.js +48 -0
  135. package/dist/cli/traza.js.map +1 -0
  136. package/dist/cli/tui/correrTui.js +4 -4
  137. package/dist/cli/tui/correrTui.js.map +1 -1
  138. package/dist/cli/verify.js +1 -1
  139. package/dist/cli/verify.js.map +1 -1
  140. package/dist/core/actos.js +1 -1
  141. package/dist/core/adjuntos.js +2 -2
  142. package/dist/core/agentes.js +145 -7
  143. package/dist/core/agentes.js.map +1 -1
  144. package/dist/core/artefactos.js +4 -4
  145. package/dist/core/config.js +1 -1
  146. package/dist/core/contextos.js +12 -1
  147. package/dist/core/contextos.js.map +1 -1
  148. package/dist/core/descargas.js +1 -1
  149. package/dist/core/dispositivos.js +53 -3
  150. package/dist/core/dispositivos.js.map +1 -1
  151. package/dist/core/esqueleto.js +1 -1
  152. package/dist/core/modelos.js +16 -3
  153. package/dist/core/modelos.js.map +1 -1
  154. package/dist/core/navegacion.js +134 -0
  155. package/dist/core/navegacion.js.map +1 -0
  156. package/dist/core/notify.js +5 -0
  157. package/dist/core/notify.js.map +1 -1
  158. package/dist/core/planDeSubida.js +1 -1
  159. package/dist/core/settings.js +2 -2
  160. package/dist/core/shellDeAgente.js +99 -0
  161. package/dist/core/shellDeAgente.js.map +1 -0
  162. package/dist/core/skills.js +158 -0
  163. package/dist/core/skills.js.map +1 -0
  164. package/dist/core/zipDeSkill.js +107 -0
  165. package/dist/core/zipDeSkill.js.map +1 -0
  166. package/dist/web/servidor/arranque.js +531 -47
  167. package/dist/web/servidor/arranque.js.map +1 -1
  168. package/dist/web/servidor/corredorDeTareas.js +3 -3
  169. package/dist/web/servidor/corredorDeTareas.js.map +1 -1
  170. package/dist/web/servidor/sesiones.js +4 -4
  171. package/dist/web/servidor/transporte.js +1 -1
  172. package/dist/web/servidor/transporte.js.map +1 -1
  173. package/dist/web/servidor/vestibulo.js +7 -7
  174. package/dist/web/servidor/vestibulo.js.map +1 -1
  175. package/package.json +6 -4
  176. package/skills/archify/SKILL.md +25 -2
  177. package/skills/artifacts-builder/SKILL.md +23 -0
  178. package/skills/xone-hotswap/SKILL.md +74 -0
  179. package/skills/xone-hotswap/scripts/xone-arrancar-ios +85 -0
  180. package/skills/xone-hotswap/scripts/xone-desplegar-android +411 -0
  181. package/skills/xone-hotswap/scripts/xone-hotswap +171 -0
  182. package/skills/xone-hotswap/scripts/xone-log-android +102 -0
  183. package/skills/xone-hotswap/scripts/xone-reiniciar-android +104 -0
  184. package/apps/web/dist/assets/index-CFYAoHdw.js +0 -477
  185. package/dist/agent/agentesEnDisco.js.map +0 -1
  186. package/dist/agent/arbolDeProyecto.js.map +0 -1
  187. package/dist/agent/artefactosEnDisco.js.map +0 -1
  188. package/dist/agent/aumentador.js.map +0 -1
  189. package/dist/agent/authEnDisco.js.map +0 -1
  190. package/dist/agent/busquedaRegex.js.map +0 -1
  191. package/dist/agent/catalogoModelos.js.map +0 -1
  192. package/dist/agent/checkpointer.js.map +0 -1
  193. package/dist/agent/cloudstudioClient.js.map +0 -1
  194. package/dist/agent/cloudstudioMcp.js.map +0 -1
  195. package/dist/agent/configEnDisco.js.map +0 -1
  196. package/dist/agent/consumoExterno.js.map +0 -1
  197. package/dist/agent/crearProyecto.js.map +0 -1
  198. package/dist/agent/descarga.js.map +0 -1
  199. package/dist/agent/diagnosticoDeTools.js.map +0 -1
  200. package/dist/agent/dispositivosEnMaquina.js.map +0 -1
  201. package/dist/agent/entorno.js.map +0 -1
  202. package/dist/agent/escrituraDeCodex.js.map +0 -1
  203. package/dist/agent/escrituraDeOpencode.js.map +0 -1
  204. package/dist/agent/escrituraExterna.js.map +0 -1
  205. package/dist/agent/gemini.js.map +0 -1
  206. package/dist/agent/git.js.map +0 -1
  207. package/dist/agent/gitSync.js.map +0 -1
  208. package/dist/agent/guionizado.js.map +0 -1
  209. package/dist/agent/hotswap.js.map +0 -1
  210. package/dist/agent/instalacionEnMaquina.js.map +0 -1
  211. package/dist/agent/instantanea.js.map +0 -1
  212. package/dist/agent/interrupts.js.map +0 -1
  213. package/dist/agent/juezDeTarea.js.map +0 -1
  214. package/dist/agent/lanzamientoEnMaquina.js.map +0 -1
  215. package/dist/agent/manifiesto.js.map +0 -1
  216. package/dist/agent/memoriaDeProyecto.js.map +0 -1
  217. package/dist/agent/mensajes.js.map +0 -1
  218. package/dist/agent/modelos.js.map +0 -1
  219. package/dist/agent/modelosDeMotor.js.map +0 -1
  220. package/dist/agent/normalizar.js.map +0 -1
  221. package/dist/agent/paqueteDelProyecto.js.map +0 -1
  222. package/dist/agent/perfiles.js.map +0 -1
  223. package/dist/agent/persona.js.map +0 -1
  224. package/dist/agent/procesosEnMaquina.js.map +0 -1
  225. package/dist/agent/proyecto.js.map +0 -1
  226. package/dist/agent/puente.js.map +0 -1
  227. package/dist/agent/resumenDeContexto.js +0 -30
  228. package/dist/agent/resumenDeContexto.js.map +0 -1
  229. package/dist/agent/resumenDeTool.js.map +0 -1
  230. package/dist/agent/sesionGit.js.map +0 -1
  231. package/dist/agent/settingsEnDisco.js.map +0 -1
  232. package/dist/agent/skills.js +0 -65
  233. package/dist/agent/skills.js.map +0 -1
  234. package/dist/agent/subagenteCodex.js.map +0 -1
  235. package/dist/agent/subagenteExterno.js.map +0 -1
  236. package/dist/agent/subagenteOpencode.js.map +0 -1
  237. package/dist/agent/subida.js.map +0 -1
  238. package/dist/agent/tareasEnDisco.js.map +0 -1
  239. package/dist/agent/textoDeTool.js.map +0 -1
  240. package/dist/agent/turnoReal.js.map +0 -1
  241. package/dist/agent/verificador.js.map +0 -1
  242. package/dist/agent/versionEnDisco.js.map +0 -1
  243. package/dist/agent/xoneAgent.js.map +0 -1
  244. package/dist/agent/zip.js.map +0 -1
  245. /package/dist/agent/{cloudstudioClient.js → cloudstudio/cloudstudioClient.js} +0 -0
  246. /package/dist/agent/{manifiesto.js → cloudstudio/manifiesto.js} +0 -0
  247. /package/dist/agent/{entorno.js → config/entorno.js} +0 -0
  248. /package/dist/agent/{gemini.js → config/gemini.js} +0 -0
  249. /package/dist/agent/{hotswap.js → dispositivos/hotswap.js} +0 -0
  250. /package/dist/agent/{instalacionEnMaquina.js → dispositivos/instalacionEnMaquina.js} +0 -0
  251. /package/dist/agent/{procesosEnMaquina.js → dispositivos/procesosEnMaquina.js} +0 -0
  252. /package/dist/agent/{git.js → sesiones/git.js} +0 -0
  253. /package/dist/agent/{consumoExterno.js → subagentes/consumoExterno.js} +0 -0
  254. /package/dist/agent/{escrituraDeCodex.js → subagentes/escrituraDeCodex.js} +0 -0
  255. /package/dist/agent/{subagenteCodex.js → subagentes/subagenteCodex.js} +0 -0
  256. /package/dist/agent/{subagenteExterno.js → subagentes/subagenteExterno.js} +0 -0
  257. /package/dist/agent/{subagenteOpencode.js → subagentes/subagenteOpencode.js} +0 -0
  258. /package/dist/agent/{diagnosticoDeTools.js → turno/diagnosticoDeTools.js} +0 -0
  259. /package/dist/agent/{mensajes.js → turno/mensajes.js} +0 -0
  260. /package/dist/agent/{normalizar.js → turno/normalizar.js} +0 -0
  261. /package/dist/agent/{textoDeTool.js → turno/textoDeTool.js} +0 -0
  262. /package/dist/agent/{verificador.js → turno/verificador.js} +0 -0
@@ -16,12 +16,12 @@
16
16
  * proyectos; un «experto en esta app», solo en uno.
17
17
  */
18
18
  import { createHash } from "node:crypto";
19
- import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
19
+ import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, statSync, writeFileSync, } from "node:fs";
20
20
  import { homedir } from "node:os";
21
21
  import { join } from "node:path";
22
- import { escribirAgente, fusionarAgentes, leerAgente, } from "../core/agentes.js";
23
- import { segmentoSeguro } from "../core/settings.js";
24
- import { NOMBRE_CARPETA } from "./configEnDisco.js";
22
+ import { escribirAgente, fusionarAgentes, leerAgente, motivoDeNombreInaceptable, nombreSugerido, } from "../../core/agentes.js";
23
+ import { segmentoSeguro } from "../../core/settings.js";
24
+ import { NOMBRE_CARPETA } from "../config/configEnDisco.js";
25
25
  const CARPETA = "agentes";
26
26
  /** La carpeta de agentes de una raíz cualquiera. */
27
27
  export function rutaDeAgentes(base) {
@@ -56,10 +56,29 @@ export function leerCarpetaDeAgentes(carpeta, origen) {
56
56
  continue;
57
57
  }
58
58
  const r = leerAgente(nombre, contenido, origen);
59
- if ("error" in r)
59
+ if ("error" in r) {
60
60
  problemas.push(`${fichero}: ${r.error}`);
61
- else
62
- agentes.push(r.agente);
61
+ continue;
62
+ }
63
+ /**
64
+ * Un nombre que no es un slug se DICE y el agente se CARGA.
65
+ *
66
+ * Rechazarlo aquí haría desaparecer un subagente que funciona, que es lo contrario de lo
67
+ * que hace todo este módulo — y el usuario no tendría ni el nombre para buscarlo. Quien
68
+ * lo rechaza es el guardado (`arranque.ts#atenderAgente`), que es el único momento con
69
+ * alguien delante para arreglarlo. El aviso va por `problemas`, y ahí sí encaja: esto no
70
+ * es un estado del agente, es trabajo pendiente sobre su fichero.
71
+ *
72
+ * Y lleva el nombre que SÍ valdría, porque un aviso que no se puede obedecer no sirve:
73
+ * «renómbralo a `documentador`» se arregla en el mismo formulario donde se lee.
74
+ */
75
+ const malNombre = motivoDeNombreInaceptable(nombre);
76
+ if (malNombre !== undefined) {
77
+ const sugerido = nombreSugerido(nombre);
78
+ problemas.push(`${fichero}: el nombre ${malNombre}` +
79
+ (sugerido === undefined ? ". Renómbralo." : `. Renómbralo a \`${sugerido}\`.`));
80
+ }
81
+ agentes.push(r.agente);
63
82
  }
64
83
  return { agentes, problemas };
65
84
  }
@@ -82,11 +101,15 @@ export function cargarAgentes(raizDelProyecto) {
82
101
  const proyecto = raizDelProyecto === undefined
83
102
  ? { agentes: [], problemas: [] }
84
103
  : leerCarpetaDeAgentes(rutaDeAgentes(raizDelProyecto), "proyecto");
85
- // Los que se quedaron atrás se DICEN por el mismo canal que un `.md` roto, y por la misma
86
- // razón: quien lo tiene que arreglar está mirando la ventana de subagentes, y un agente
87
- // que se quedó en una versión anterior sin que nadie lo diga es exactamente el fallo que
88
- // esta tanda viene a cerrar. No se pisa: el mensaje dice qué hacer si lo quiere nuevo.
89
- const atrasados = desactualizados.map((n) => `${n}.md: no es el de serie y la versión de serie ha cambiado; se respeta el tuyo. Bórralo si quieres el nuevo.`);
104
+ // Los que se quedaron atrás NO van a `problemas`, y eso es un cambio medido: iban, y por
105
+ // el mismo canal que un `.md` que no carga, así que la consola pintaba en rojo y arriba del
106
+ // todo dos agentes que están perfectamente. Y su frase —«bórralo si quieres el nuevo»—
107
+ // mandaba a usar una escapatoria que no existe: borrar uno de serie no lo resiembra (la
108
+ // marca recuerda que se entregó), así que dejaba sin ninguno de los dos y para siempre.
109
+ // Ahora el estado viaja POR AGENTE (`marcarSemilla`) y se dice en su tarjeta, que es donde
110
+ // está el botón que lo arregla — `restaurarAgente`. `problemas` vuelve a significar solo
111
+ // «este fichero no se pudo cargar»; comprobado que nadie más lo lee (`turnoReal` y los
112
+ // evals se quedan con `.agentes`).
90
113
  // Y los renombrados, por el mismo canal y por la misma razón: el especialista cambia de
91
114
  // nombre (o se va con él), y enterarse por la lista sin que nadie lo explique es la clase de
92
115
  // sorpresa silenciosa que este módulo existe para no dar. El que se retiró se dice UNA vez
@@ -95,10 +118,33 @@ export function cargarAgentes(raizDelProyecto) {
95
118
  ? `${nombre}.md: se ha retirado —ese agente se llama ahora \`${ahoraSeLlama}\`— y el nuevo ya está sembrado.`
96
119
  : `${nombre}.md: ese agente se llama ahora \`${ahoraSeLlama}\`, y el tuyo se respeta. Bórralo si quieres quedarte solo con el de serie.`);
97
120
  return {
98
- agentes: fusionarAgentes(global.agentes, proyecto.agentes),
99
- problemas: [...renombrados, ...atrasados, ...global.problemas, ...proyecto.problemas],
121
+ agentes: marcarSemilla(fusionarAgentes(global.agentes, proyecto.agentes), desactualizados),
122
+ problemas: [...renombrados, ...global.problemas, ...proyecto.problemas],
100
123
  };
101
124
  }
125
+ /** ¿Es uno de los que trae xonecode? La guarda del `borrar`, y la lista de la pantalla. */
126
+ export function esDeSerie(nombre) {
127
+ return AGENTES_DE_SERIE.some((a) => a.nombre === nombre);
128
+ }
129
+ /**
130
+ * De quién es cada `.md`: ausente si lo escribió el usuario, `intacta`/`modificada` si es
131
+ * uno de los nuestros. Ver `AgenteCargado` para los tres estados y qué se hace con cada uno.
132
+ *
133
+ * Pura y exportada a propósito, no compuesta dentro de `cargarAgentes`: es el patrón de
134
+ * fallo de esta arquitectura —una regla que vive en un cierre que todos los tests doblan—, y
135
+ * la trampa de abajo es justo la que se queda sin probar así.
136
+ *
137
+ * **La regla es «de serie Y del GLOBAL», y el segundo requisito no es decorativo.** La
138
+ * siembra solo toca el global, así que un `docs.md` en `.xonecode/agentes/` DEL PROYECTO lo
139
+ * escribió el usuario aunque se llame igual que uno nuestro. Con `nombre ∈ AGENTES_DE_SERIE`
140
+ * a secas se quedaría sin botón de borrar —un fichero suyo que no puede borrar— y con un
141
+ * «Restaurar el de serie» que le pisaría el suyo con el global.
142
+ */
143
+ export function marcarSemilla(agentes, desactualizados) {
144
+ return agentes.map((a) => a.origen === "global" && esDeSerie(a.nombre)
145
+ ? { ...a, semilla: desactualizados.includes(a.nombre) ? "modificada" : "intacta" }
146
+ : a);
147
+ }
102
148
  /**
103
149
  * Escribe un agente.
104
150
  *
@@ -119,6 +165,94 @@ export function guardarAgente(base, agente) {
119
165
  mkdirSync(carpeta, { recursive: true });
120
166
  writeFileSync(join(carpeta, `${seguro}.md`), escribirAgente({ ...agente, nombre: seguro }), "utf8");
121
167
  }
168
+ /**
169
+ * Devuelve un agente de serie a como lo entregamos, pisando lo que el usuario tuviera.
170
+ *
171
+ * Es lo que ocupa el sitio del borrado en un agente sembrado, y existe porque el borrado
172
+ * NO hacía lo que la consola prometía: la marca recuerda que se entregó, así que
173
+ * `sembrarAgentes` no lo resiembra (ver «uno BORRADO no se resucita») — o sea que el
174
+ * «bórralo si quieres el nuevo» dejaba sin ninguno de los dos y para siempre.
175
+ *
176
+ * **No escribe la marca, y es deliberado.** La reanota la siembra siguiente, que corre ANTES
177
+ * de cualquier lectura —`cargarAgentes` la llama primero— y que ya sabe reconocer su propio
178
+ * hash. Escribirla aquí sería un segundo sitio donde decidir sobre la marca, y el único que
179
+ * podría resucitar un agente que el usuario borró a propósito: con una marca ilegible, este
180
+ * camino la reescribiría con una sola clave y las demás pasarían por «nunca entregadas».
181
+ *
182
+ * Devuelve si pudo, como `borrarAgente`: de algo que no es de serie no hay versión nuestra
183
+ * que poner, y la interfaz no puede decir «restaurado» de eso.
184
+ */
185
+ export function restaurarAgente(base, nombre) {
186
+ const agente = AGENTES_DE_SERIE.find((a) => a.nombre === nombre);
187
+ if (agente === undefined)
188
+ return false;
189
+ const carpeta = rutaDeAgentes(base);
190
+ mkdirSync(carpeta, { recursive: true });
191
+ writeFileSync(join(carpeta, `${agente.nombre}.md`), escribirAgente(agente), "utf8");
192
+ return true;
193
+ }
194
+ /**
195
+ * Renombra un subagente, escribiendo a la vez lo que se haya cambiado de él.
196
+ *
197
+ * **`renameSync` y LUEGO escribir**, nunca escribir y luego borrar: un fallo entre los dos
198
+ * pasos deja UN fichero —el renombrado, con el contenido de antes—, nunca dos con el mismo
199
+ * prompt ni cero. Al revés, una excepción entre el `write` y el `rm` deja los DOS, que es
200
+ * justo lo que el campo deshabilitado del formulario evitaba: dos subagentes con la misma
201
+ * descripción y ninguna forma de saber a cuál delega el orquestador.
202
+ *
203
+ * Las dos cosas en el mismo paso porque el formulario permite cambiar el nombre Y el resto en
204
+ * la misma pulsación; guardar solo una dejaría la pantalla mintiendo.
205
+ *
206
+ * **El destino ocupado es un NO**, sea de serie o del usuario: sin esta guarda, renombrar
207
+ * `advisor` a `docs` se llevaba por delante el `docs.md` sembrado —o el otro subagente— sin
208
+ * decir nada. Un caso especial para los de serie diría un motivo menos cierto.
209
+ *
210
+ * **Pero «existe» no es «es otro fichero», y eso está MEDIDO en una máquina de verdad.** APFS
211
+ * es insensible a mayúsculas, así que con un `Documentador.md` en disco el `existsSync` de
212
+ * `documentador.md` contesta SÍ —es el mismo fichero— y esta guarda rechazaba justo el arreglo
213
+ * que el aviso del cargador propone, que es el renombrado más común de todos. Se compara por
214
+ * INODO (`dev` + `ino`): si el destino ES el origen, no hay nada ocupado. En un sistema
215
+ * sensible a mayúsculas son dos ficheros con dos inodos, así que la comparación sigue diciendo
216
+ * la verdad ahí — y si el otro existe de verdad, se sigue rechazando.
217
+ *
218
+ * Que un de serie NO se pueda renombrar no se decide aquí: esto mueve un fichero, y la regla
219
+ * del producto vive donde ya vive la de que no se borra (`arranque.ts#atenderAgente`). Dos
220
+ * sitios donde decidir lo mismo es cómo uno de los dos se queda sin la regla.
221
+ */
222
+ export function renombrarAgente(base, viejo, agente) {
223
+ // Antes de mover nada: el nombre viene del cliente por HTTP, y `segmentoSeguro` LANZA en
224
+ // vez de limpiarlo — limpiarlo guardaría el agente con un nombre que nadie pidió.
225
+ const seguro = segmentoSeguro(agente.nombre, "nombre de agente");
226
+ const carpeta = rutaDeAgentes(base);
227
+ const origen = join(carpeta, `${segmentoSeguro(viejo, "nombre de agente")}.md`);
228
+ const destino = join(carpeta, `${seguro}.md`);
229
+ if (!existsSync(origen))
230
+ return "sin-origen";
231
+ if (existsSync(destino) && !elMismoFichero(origen, destino))
232
+ return "destino-ocupado";
233
+ renameSync(origen, destino);
234
+ writeFileSync(destino, escribirAgente({ ...agente, nombre: seguro }), "utf8");
235
+ return "hecho";
236
+ }
237
+ /**
238
+ * ¿Las dos rutas son el MISMO fichero? Por `dev` + `ino`, no por texto.
239
+ *
240
+ * Por texto no se puede: en un sistema insensible a mayúsculas `Documentador.md` y
241
+ * `documentador.md` son el mismo y sus nombres no se parecen bajo `===`; y comparar en
242
+ * minúsculas mentiría en un sistema sensible, donde sí son dos. El inodo contesta la pregunta
243
+ * de verdad en los dos. Lo que no se puede mirar se da por DISTINTO, que es el lado que no
244
+ * pisa nada.
245
+ */
246
+ function elMismoFichero(a, b) {
247
+ try {
248
+ const ea = statSync(a);
249
+ const eb = statSync(b);
250
+ return ea.dev === eb.dev && ea.ino === eb.ino;
251
+ }
252
+ catch {
253
+ return false;
254
+ }
255
+ }
122
256
  /** Borra uno. Devuelve si existía: la interfaz no puede decir «borrado» de algo que no estaba. */
123
257
  export function borrarAgente(base, nombre) {
124
258
  const ruta = join(rutaDeAgentes(base), `${segmentoSeguro(nombre, "nombre de agente")}.md`);
@@ -130,7 +264,7 @@ export function borrarAgente(base, nombre) {
130
264
  /**
131
265
  * Los especialistas de serie, sembrados en el GLOBAL.
132
266
  *
133
- * Dejan de ser un `Record` a fuego en `agent/perfiles.ts` y pasan a ser los mismos ficheros
267
+ * Dejan de ser un `Record` a fuego en `agent/grafo/perfiles.ts` y pasan a ser los mismos ficheros
134
268
  * que puede escribir el usuario. Lo pidió él, y además arregla algo que estaba señalado
135
269
  * como provisional en `xoneAgent.ts#promptDe` desde que se escribió: los prompts de los
136
270
  * especialistas vivían en código con un `nombre === "planner"` dentro para las
@@ -186,7 +320,37 @@ function escribirSemilla(carpeta, marca) {
186
320
  * hoy y sería una trampa mañana: borraría cualquier entrada rara que un fallo dejara en la
187
321
  * marca. Aquí solo se retira lo que consta que renombramos.
188
322
  */
189
- const RENOMBRADOS = { probador: "xone-device-tester" };
323
+ const RENOMBRADOS = {
324
+ // Los cinco de serie pasaron a `<rol>-xone`, en inglés. El sufijo no es decoración: estos
325
+ // nombres viajan como `subagent_type` a los motores externos, donde el hijo tiene sus
326
+ // propios agentes, y ahí es lo que los distingue.
327
+ docs: "consultant-xone",
328
+ planner: "analyst-xone",
329
+ dev: "developer-xone",
330
+ mockup: "designer-xone",
331
+ "xone-device-tester": "device-controller",
332
+ /**
333
+ * Y el de antes se ACTUALIZA, no se deja: apuntaba a `xone-device-tester`, que ya no es de
334
+ * serie, así que a quien conserve un `probador.md` afinado se le habría seguido diciendo
335
+ * que «ese agente se llama ahora `xone-device-tester`» — un nombre que no existe. Esto se
336
+ * lee de un solo salto, no como una cadena.
337
+ *
338
+ * Dos claves pueden apuntar al mismo nombre nuevo sin chocar: cada entrada se resuelve por
339
+ * separado contra el hash de SU fichero.
340
+ */
341
+ probador: "device-controller",
342
+ /**
343
+ * Y `tester-xone` se convirtió en `device-controller` cuando dejó de escribir pruebas para
344
+ * CONDUCIR el aparato: con `ejecucion: true` ya no es el que dice cómo se probaría, es el
345
+ * que lo hace. El nombre viejo describía lo que podía hacer cuando no tenía manos.
346
+ *
347
+ * **Se sale de la convención `<rol>-xone` a propósito**, y es decisión del usuario: lo que
348
+ * conduce no es propio de XOne —mañana es otro aparato con otra skill—, y el sufijo estaba
349
+ * para distinguir nuestros nombres de los agentes del hijo en un motor externo. Este no
350
+ * viaja a ninguno: con motor externo la ejecución no se concede (`puedeEjecutar`).
351
+ */
352
+ "tester-xone": "device-controller",
353
+ };
190
354
  /**
191
355
  * Siembra los agentes de serie, y ACTUALIZA los que nadie ha tocado.
192
356
  *
@@ -362,23 +526,25 @@ export function sembrarAgentes(base = homedir()) {
362
526
  * carpeta `/artefactos/`: lo que tiene que cumplirse va donde el modelo mira SIEMPRE, no en
363
527
  * una skill que hay que cargar.
364
528
  */
365
- const SKILLS_VISUALES = [
366
- "SKILLS VISUALES:",
367
- "- REGLA DE PRIORIDAD: para un diagrama, esquema, arquitectura, flujo, secuencia, datos o estados,",
368
- " usa solamente `archify`. No cargues ni uses `artifacts-builder` como sustituto.",
369
- "- Solo si, ADEMÁS del diagrama, el usuario pide un contenedor HTML interactivo, usa `artifacts-builder`",
370
- " después de decidir el diagrama con `archify`. No menciones jamás una tool que no tienes.",
371
- "- DÓNDE se guarda: `/artefactos/<nombre>.html`, y nunca en la raíz del proyecto ni dentro de",
372
- " `/skills`. `/artefactos/` es la carpeta de esta sesión: no es del proyecto, no pasa por",
373
- " aprobación, no entra en git y no sube a CloudStudio. Un diagrama escrito fuera de ella acaba",
374
- " dentro de la app XOne del usuario.",
375
- "- Si te piden un dashboard, informe, tabla o artefacto HTML interactivo, carga primero `artifacts-builder`.",
376
- "- DÓNDE se VE, y qué NO funciona ahí: la consola lo pinta en un iframe sin `allow-same-origin`.",
377
- " `localStorage`, `sessionStorage` e `indexedDB` LANZAN, y se llevan el resto de tu `<script>`:",
378
- " nada de interruptor de tema ni de recordar nada — el tema se resuelve con `matchMedia`, y ya.",
379
- " Y no se llega al origen de la consola, así que hornea los datos dentro del HTML.",
380
- "- Apóyate en el código real antes de dibujar: no inventes nombres, componentes ni flujos.",
381
- ].join("\n");
529
+ /**
530
+ * **Ya no existe, y su hueco se deja escrito a propósito.**
531
+ *
532
+ * Era un bloque de ~1.400 caracteres —cómo elegir entre `archify` y `artifacts-builder`, dónde
533
+ * se guarda un artefacto y qué no funciona dentro del iframe— que iba en el prompt de CUATRO
534
+ * especialistas y por tanto viajaba en cada una de sus llamadas, hablaran o no de diagramas. Se
535
+ * midió lo que costaba con `inspectorDePrompt`: en un turno normal, la cabecera es el 87 % de
536
+ * la petición.
537
+ *
538
+ * Nació de una lección buena: un turno leyó `archify/SKILL.md` y una referencia, se saltó
539
+ * `estilo.md` —donde estaba la regla— y escribió un artefacto con `localStorage` que se mató
540
+ * solo. Pero la conclusión correcta de eso no era «repítelo en todos los prompts», era
541
+ * **ponerlo en el fichero que sí se abre**: hoy la regla encabeza el cuerpo de
542
+ * `skills/archify/SKILL.md` y `skills/artifacts-builder/SKILL.md`.
543
+ *
544
+ * Y hay una segunda razón para no nombrar las skills aquí: `SkillsMiddleware` ya las anuncia
545
+ * con su descripción y su ruta, y nombrarlas otra vez —con instrucciones de uso— es lo que
546
+ * llevaba al especialista a cargarlas antes de saber si le hacían falta.
547
+ */
382
548
  /**
383
549
  * La memoria del proyecto, y quién la lee y la escribe.
384
550
  *
@@ -391,7 +557,7 @@ const MEMORIA_LEER = [
391
557
  "Para una tarea sobre este proyecto, lee una sola vez `/MEMORIA_PROYECTO.md` antes de inspeccionarlo.",
392
558
  "No la uses para preguntas generales de plataforma.",
393
559
  ].join(" ");
394
- const MEMORIA_LEER_CON_HANDOFF = "Lee `/MEMORIA_PROYECTO.md` solo si la tarea NO incluye un `HANDOFF DE PLANNER`. Con handoff, no la leas: sus hechos pertinentes ya vienen resumidos.";
560
+ const MEMORIA_LEER_CON_HANDOFF = "Lee `/MEMORIA_PROYECTO.md` solo si la tarea NO incluye un `HANDOFF DE ANÁLISIS`. Con handoff, no la leas: sus hechos pertinentes ya vienen resumidos.";
395
561
  const MEMORIA_ESCRIBIR = [
396
562
  "Al terminar trabajo relevante, actualiza esa memoria solo con hechos comprobados, decisiones aprobadas",
397
563
  "o pendientes útiles. Nunca copies transcripciones, salidas de tools, secretos ni ficheros completos.",
@@ -404,7 +570,7 @@ const RECONOCIMIENTO_PLANNER = [
404
570
  "- No repitas una lectura de la misma ruta y rango, ni hagas búsquedas genéricas como `function ` sin una hipótesis.",
405
571
  "- Cuando puedas identificar el propósito y los módulos principales con evidencia, deja de llamar tools y responde.",
406
572
  "- Solo amplía la exploración si el usuario pide detalle exhaustivo o si las evidencias son insuficientes o contradictorias; explica brevemente qué faltaba.",
407
- "- Si el resultado alimenta un diagrama o artefacto, termina con un `HANDOFF DE PLANNER` compacto:",
573
+ "- Si el resultado alimenta un diagrama o artefacto, termina con un `HANDOFF DE ANÁLISIS` compacto:",
408
574
  " propósito; nodos; aristas `origen → destino`; evidencia `ruta:líneas`; y lagunas. No incluyas transcript ni lecturas crudas.",
409
575
  ].join("\n");
410
576
  /**
@@ -434,105 +600,157 @@ const CONSULTA_ACOTADA_DOCS = [
434
600
  ].join("\n");
435
601
  const HANDOFF_MOCKUP = [
436
602
  "HANDOFF PARA DIAGRAMAS:",
437
- "- Si la descripción de tu tarea incluye `HANDOFF DE PLANNER`, ese bloque es tu evidencia de código real.",
603
+ "- Si la descripción de tu tarea incluye `HANDOFF DE ANÁLISIS`, ese bloque es tu evidencia de código real.",
438
604
  "- Úsalo como fuente para el diagrama y NO vuelvas a leer, buscar ni reconstruir las rutas ya documentadas.",
439
605
  "- Solo inspecciona un fichero si el handoff marca una laguna o dos evidencias se contradicen; explica cuál es la laguna.",
440
606
  ].join("\n");
441
607
  /**
442
- * El probador de dispositivos. Su conocimiento del protocolo NO va aquí: va en la skill
608
+ * El que CONDUCE el aparato. Su conocimiento del protocolo NO va aquí: va en la skill
443
609
  * `xone-hotswap`, que son 1.100 líneas de referencia sobre las dos plataformas y se cargan
444
- * solo cuando hacen falta. Aquí queda lo que tiene que saber SIEMPRE, que es qué puede y qué
445
- * no.
446
- *
447
- * **Y lo que hoy no puede es hablar con el dispositivo.** Este agente no tiene shell ni
448
- * cliente del servidor hotswap: las tools que lo harían son el paso siguiente. Decirlo aquí
449
- * —y decirlo en la `descripcion`, que es lo que el orquestador lee para delegar— es lo que
450
- * evita el peor botón muerto de todos: uno dentro del grafo, que pulsa el modelo y del que
451
- * se cree el resultado. Mientras tanto sirve para lo que puede: escribir el procedimiento
452
- * exacto y leer lo que vuelva.
453
- *
454
- * Los ejemplos del cuerpo son de Android (`adb`, `logcat`, `runSql`) porque es lo que hay
455
- * medido; no acotan el agente, que es de las dos plataformas. La que dice cuál tiene qué,
456
- * comando a comando, es la skill.
610
+ * solo cuando hacen falta. Y las reglas de método —por nombre y no por coordenadas, esperar
611
+ * a un control y no a un temporizador, un `result:false` es el resultado— tampoco: están en
612
+ * esa misma skill, y aquí se pagarían en cada llamada, dibuje o no.
613
+ *
614
+ * **Lo que queda es lo que la skill no puede saber: cómo es ESTA casa.** Dónde están sus
615
+ * ficheros cuando se mira el disco de verdad, dónde se deja lo que una persona va a ver, y
616
+ * qué hacer con un comando que no termina. Nada de eso es de XOne ni de Android: es del
617
+ * harness, y por eso vive en código y no en una skill que mañana se sustituye por otra.
618
+ *
619
+ * Este bloque vale para CUALQUIER agente con `ejecucion: true`, no solo para éste. Está
620
+ * escrito así a propósito: el día que haya un segundo, lo hereda sin copiarse.
457
621
  */
458
- const PROCEDIMIENTO_DE_PRUEBA = [
459
- "LO QUE PUEDES Y LO QUE NO, HOY:",
460
- "- NO tienes conexión con el dispositivo: no puedes lanzar adb, ni abrir el WebSocket del",
461
- " servidor hotswap, ni subir un fichero, ni capturar una pantalla. No lo intentes ni digas",
462
- " que lo has hecho.",
463
- "- puedes leer el proyecto, y con eso escribir el PROCEDIMIENTO exacto: los comandos en",
464
- " orden, con el nombre real de cada colección y de cada control, y qué tiene que valer cada",
465
- " comprobación para dar la prueba por pasada.",
466
- "- Y puedes LEER lo que te devuelvan: un volcado de `getAllElements`, un logcat, la salida de",
467
- " un `runSql`. Ahí diagnosticas.",
622
+ const EJECUCION_EN_LA_MAQUINA = [
623
+ "CONDUCES UN APARATO Y EJECUTAS COMANDOS EN ESTA MÁQUINA (`execute`).",
624
+ "",
625
+ "Los scripts de tus skills están EN EL PATH: se llaman por su nombre, sin ruta ninguna.",
626
+ "Los de `xone-hotswap` son `xone-reiniciar-android` (déjalo en estado conocido: es lo",
627
+ "primero que hay que probar si el canal no contesta), `xone-desplegar-android`,",
628
+ "`xone-hotswap`, `xone-log-android` (las excepciones del aparato, que es donde está el",
629
+ "porqué cuando algo no se pinta) y `xone-arrancar-ios`;",
630
+ "cualquiera con `--help` o sin argumentos te dice cómo se usa. Úsalos: hacen lo que te piden",
631
+ "y no hay que reescribirlos.",
632
+ "",
633
+ "`read_file`, `ls`, `glob` y `grep` ven rutas VIRTUALES —la raíz `/` es el proyecto—, así que",
634
+ "una ruta absoluta del disco no existe para ellas y no va a funcionar por mucho que la",
635
+ "reintentes. Para mirar un fichero de una skill usa `cat`, que sí ve el disco de verdad.",
636
+ "",
637
+ "CÓMO TRABAJAS, QUE ES LO QUE DECIDE SI ESTO SALE BARATO O CARO:",
638
+ "- UN comando, miras su salida, y entonces decides el siguiente. Nada de disparar diez a la",
639
+ " vez para ver cuál pega: la salida del primero cambia lo que hay que hacer después.",
640
+ "- Pero pide de una vez lo que sabes que vas a necesitar: lo caro no es lo que un comando",
641
+ " devuelve, es cada ida y vuelta, que reenvía toda la conversación. `xone-hotswap` acepta",
642
+ " varios comandos seguidos, y `xone-desplegar-android --captura` lanza Y captura en una.",
643
+ "- Si uno falla, cambia de hipótesis en vez de repetirlo. Dos intentos iguales dan lo mismo.",
644
+ "- No escribas ficheros sueltos en la raíz del proyecto: es la app del usuario. Lo que quieras",
645
+ " ENSEÑAR va a `$XONECODE_ARTEFACTOS`, y los scripts ya lo hacen por ti.",
646
+ "- Un comando que no termina cuelga el turno: arrancar un emulador no vuelve nunca, así que",
647
+ " mándalo al fondo (`… &`) y espera a una CONDICIÓN acotada, no a un número de segundos.",
468
648
  "",
469
- "CÓMO ESCRIBES UNA PRUEBA:",
470
- "- Un paso es una acción y su comprobación. Una acción sin comprobación no prueba nada.",
471
- "- Por NOMBRE de control, nunca por coordenadas.",
472
- "- Espera a un control (`waitForElement`), nunca a un número de segundos.",
473
- "- Di qué evidencia esperas de cada comprobación (`getText` devuelve X, `isVisible` true) en",
474
- " vez de «comprobar que se ve bien».",
475
- "- Si el proyecto no tiene el control que la prueba necesitaría, DILO: no inventes un nombre.",
649
+ "LO QUE CUENTAS:",
650
+ "- La salida literal de lo que corriste, no tu interpretación. Un comando que devuelve 0 no",
651
+ " dice que la app arrancara.",
652
+ "- Y no digas que hiciste un paso que no hiciste: si capturaste lo que ya había en pantalla",
653
+ " sin desplegar el proyecto, eso es lo que hay que contar.",
654
+ "- Si no pudiste comprobar algo, dilo en vez de deducirlo.",
476
655
  ].join("\n");
477
656
  /**
478
657
  * Los cinco. Nacieron como una mudanza de los textos que había en código; desde entonces
479
- * `docs` lleva además la consulta acotada, y `xone-device-tester` llegó con la documentación
480
- * del protocolo hotswap —con el nombre viejo, `probador`, ver `RENOMBRADOS`—. Cada regla que
658
+ * `docs` lleva además la consulta acotada, y el que conduce aparatos llegó con la documentación
659
+ * del protocolo hotswap y pasó por dos nombres más antes de `device-controller` (ver
660
+ * `RENOMBRADOS`). Cada regla que
481
661
  * se añade aquí se mide antes con los evals, porque un prompt más largo es coste en TODAS las
482
662
  * llamadas.
483
663
  */
484
664
  export const AGENTES_DE_SERIE = [
485
665
  {
486
- nombre: "docs",
666
+ nombre: "consultant-xone",
487
667
  descripcion: "Responde preguntas técnicas de la plataforma XOne (XML/.xne, JavaScript, CSS, " +
488
668
  "eventos, patrones). Puede leer el proyecto para no contradecir el código real. " +
489
669
  "No modifica nada.",
490
670
  motor: "modelo",
491
671
  soloLectura: true,
492
- skills: ["xone-development", "archify", "artifacts-builder"],
493
- instrucciones: `${SKILLS_VISUALES}\n\n${CONSULTA_ACOTADA_DOCS}`,
672
+ /**
673
+ * **Sin las visuales, y eso es una DECISIÓN de reparto, no un recorte a ciegas.**
674
+ *
675
+ * Cada skill asignada mete en su prompt de sistema el nombre, la descripción y la ruta que
676
+ * pone `SkillsMiddleware`, y la descripción de `archify` sola son ~700 caracteres de inglés
677
+ * sobre diagramas, ETL y Mermaid — en CADA llamada, dibuje o no. Este contesta preguntas de
678
+ * la plataforma; la regla del orquestador ya manda los diagramas a `designer-xone`, así que
679
+ * dárselas era pagar una capacidad que no le toca ejercer.
680
+ */
681
+ skills: ["xone-development"],
682
+ instrucciones: `${CONSULTA_ACOTADA_DOCS}`,
494
683
  origen: "semilla",
495
684
  },
496
685
  {
497
- nombre: "planner",
686
+ nombre: "analyst-xone",
498
687
  descripcion: "Inspecciona el proyecto real para anclar planes y diagnósticos: estructura, " +
499
688
  "colecciones y búsqueda de código. No modifica nada.",
500
689
  motor: "modelo",
501
690
  soloLectura: true,
502
691
  skills: ["xone-spec-builder", "xone-plan-builder", "archify", "artifacts-builder"],
503
- instrucciones: `${SKILLS_VISUALES}\n\n${RECONOCIMIENTO_PLANNER}\n\n${MEMORIA_LEER}`,
692
+ instrucciones: `${RECONOCIMIENTO_PLANNER}\n\n${MEMORIA_LEER}`,
504
693
  origen: "semilla",
505
694
  },
506
695
  {
507
- nombre: "dev",
696
+ nombre: "developer-xone",
508
697
  descripcion: "Desarrolla: crea y modifica colecciones, escribe scripts y edita ficheros. " +
509
698
  "Las modificaciones requieren aprobación humana.",
510
699
  motor: "modelo",
511
700
  soloLectura: false,
512
- skills: ["xone-development", "xone-debugging", "archify", "artifacts-builder"],
513
- instrucciones: `${SKILLS_VISUALES}\n\n${MEMORIA_LEER}\n\n${MEMORIA_ESCRIBIR}`,
701
+ // `artifacts-builder` se queda: escribe documentos e informes. `archify` no, que los
702
+ // diagramas son de `designer-xone` y su descripción son ~700 caracteres por llamada.
703
+ skills: ["xone-development", "xone-debugging", "artifacts-builder"],
704
+ instrucciones: `${MEMORIA_LEER}\n\n${MEMORIA_ESCRIBIR}`,
514
705
  origen: "semilla",
515
706
  },
516
707
  {
517
- nombre: "xone-device-tester",
518
- descripcion: "Pruebas en un dispositivo o emulador LOCAL —Android o iOS— sobre la app host XOne " +
519
- "instalada. Hoy NO se conecta al dispositivo: escribe el procedimiento de prueba con " +
520
- "los comandos y las comprobaciones exactas, y diagnostica los volcados de controles, " +
521
- "los log y las consultas que se le peguen. No modifica el proyecto.",
708
+ nombre: "device-controller",
709
+ descripcion: "CONDUCE un dispositivo o emulador LOCAL —Android o iOS— con la app host XOne " +
710
+ "instalada: despliega el proyecto en el aparato, lanza la app, captura la pantalla, " +
711
+ "lee el árbol de controles, pulsa y rellena, y consulta el log y la base de datos del " +
712
+ "dispositivo. Ejecuta comandos en esta máquina para conseguirlo. Delega en él " +
713
+ "«lánzalo», «sácame una captura», «pruébalo en el móvil». No edita ficheros del " +
714
+ "proyecto: para eso está developer-xone.",
522
715
  motor: "modelo",
523
- soloLectura: true,
716
+ /**
717
+ * **NO es de solo lectura, y decirlo importa por dos cosas distintas.**
718
+ *
719
+ * La primera es honestidad: tiene una shell, así que puede escribir el disco entero. Una
720
+ * pastilla verde de «solo lectura» sobre el único agente que alcanza la máquina es
721
+ * exactamente el tipo de etiqueta que enseña a no mirarlas.
722
+ *
723
+ * La segunda es que ese campo DECIDE EL MODELO: `rapido` para quien solo lee, `trabajo`
724
+ * para quien escribe. Conducir un aparato —leer un log, entender una excepción de Rhino,
725
+ * decidir el siguiente comando— no es trabajo de modelo barato, y medido con uno rápido se
726
+ * quedaba en bucles: probaba lo mismo dos veces, mezclaba rutas virtuales con reales y
727
+ * tardaba tres turnos en hacer lo que hace en uno. `soloLectura` se refería a los FICHEROS
728
+ * y aquí se estaba leyendo como «tarea sencilla», que es otra cosa.
729
+ *
730
+ * Lo que NO cambia: sigue sin `write_file` ni `edit_file` (`TOOLS_CON_EJECUCION`), para que
731
+ * el camino normal de tocar el proyecto siga siendo el que pasa por la aprobación y el diff.
732
+ */
733
+ soloLectura: false,
734
+ /**
735
+ * **El único de serie con ejecución**, y lo que concede no es «correr un comando»: una
736
+ * shell no pasa por `permisosDe` ni por el `virtualMode`, así que alcanza el disco
737
+ * entero. Se le da porque es lo único que contesta «lanza la app»: el canal del aparato
738
+ * es un WebSocket —`curl` no lo habla— y el despliegue es `adb` más una subida HTTP.
739
+ * Ninguna de las dos cosas se compone leyendo, y un prompt no las suple.
740
+ */
741
+ ejecucion: true,
524
742
  skills: ["xone-hotswap", "xone-debugging"],
525
- instrucciones: PROCEDIMIENTO_DE_PRUEBA,
743
+ instrucciones: EJECUCION_EN_LA_MAQUINA,
526
744
  origen: "semilla",
527
745
  },
528
746
  {
529
- nombre: "mockup",
747
+ nombre: "designer-xone",
530
748
  descripcion: "Trabajo visual: layouts, CSS y recursos. Las modificaciones requieren " +
531
749
  "aprobación humana.",
532
750
  motor: "modelo",
533
751
  soloLectura: false,
534
752
  skills: ["xone-development", "archify", "artifacts-builder"],
535
- instrucciones: `${SKILLS_VISUALES}\n\n${HANDOFF_MOCKUP}\n\n${MEMORIA_LEER_CON_HANDOFF}\n\n${MEMORIA_ESCRIBIR}`,
753
+ instrucciones: `${HANDOFF_MOCKUP}\n\n${MEMORIA_LEER_CON_HANDOFF}\n\n${MEMORIA_ESCRIBIR}`,
536
754
  origen: "semilla",
537
755
  },
538
756
  ];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentesEnDisco.js","sourceRoot":"","sources":["../../../src/agent/subagentes/agentesEnDisco.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumoExterno.js","sourceRoot":"","sources":["../../../src/agent/subagentes/consumoExterno.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrituraDeCodex.js","sourceRoot":"","sources":["../../../src/agent/subagentes/escrituraDeCodex.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@
19
19
  * Y se reaplican aunque la configuración de opencode ya deniegue por su cuenta: esa capa es
20
20
  * NUESTRA configuración, pero quien la aplica es él. La guarda de xonecode es código.
21
21
  */
22
- import { diffDeLineas } from "../core/diff.js";
22
+ import { diffDeLineas } from "../../core/diff.js";
23
23
  import { decisionDeEscrituraExterna, veredictoDeEscriturasExternas, } from "./escrituraExterna.js";
24
24
  /**
25
25
  * Las escrituras que propone un `toolCall`, o el motivo por el que no se puede decidir.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrituraDeOpencode.js","sourceRoot":"","sources":["../../../src/agent/subagentes/escrituraDeOpencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACL,0BAA0B,EAG1B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAS/B;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAwC;IAC3E,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,CAAC;IAC5B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO;YACL,MAAM,EAAE,qFAAqF,MAAM,CAAC,IAAI,CAAC,EAAE;SAC5G,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAyC,EAAE,CAAC;YACvE,IAAI,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,MAAM;gBAAE,SAAS;YACzC,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,SAA2C,EAAE,CAAC;YACzE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,wEAAwE,EAAE,CAAC;IAC9F,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,mBAAmB,CAAC,QAMnC;IACC,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,QAAQ,IAAI,UAAU;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;IACnF,OAAO,6BAA6B,CAAC,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,QAOnD;IACC,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3D,yFAAyF;IACzF,+DAA+D;IAC/D,IAAI,QAAQ,IAAI,UAAU;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;IACnF,OAAO,0BAA0B,CAAC,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;AACxF,CAAC"}