xonecode 0.8.46 → 0.11.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 (147) hide show
  1. package/THIRD_PARTY_NOTICES.md +56 -0
  2. package/apps/web/dist/assets/index-BAyybSz-.css +1 -0
  3. package/apps/web/dist/assets/index-BNCMVjWv.js +485 -0
  4. package/apps/web/dist/assets/{php-Bx1jVads.js → php-DPbDT8rX.js} +1 -1
  5. package/apps/web/dist/assets/{ruby-L0I9KR6K.js → ruby-Bfvws9R8.js} +1 -1
  6. package/apps/web/dist/index.html +2 -2
  7. package/apps/web/dist/openui/visor.css +1 -0
  8. package/apps/web/dist/openui/visor.js +9113 -0
  9. package/dist/agent/exportarPdf.js +5 -1
  10. package/dist/agent/exportarPdf.js.map +1 -1
  11. package/dist/agent/grafo/arbolDeProyecto.js +67 -2
  12. package/dist/agent/grafo/arbolDeProyecto.js.map +1 -1
  13. package/dist/agent/grafo/memoriaDeProyecto.js +3 -2
  14. package/dist/agent/grafo/memoriaDeProyecto.js.map +1 -1
  15. package/dist/agent/grafo/navegacionXone.js +8 -3
  16. package/dist/agent/grafo/navegacionXone.js.map +1 -1
  17. package/dist/agent/grafo/opcionesDeFicheros.js +24 -0
  18. package/dist/agent/grafo/opcionesDeFicheros.js.map +1 -0
  19. package/dist/agent/grafo/perfiles.js +1 -1
  20. package/dist/agent/grafo/perfiles.js.map +1 -1
  21. package/dist/agent/grafo/proyecto.js +31 -15
  22. package/dist/agent/grafo/proyecto.js.map +1 -1
  23. package/dist/agent/grafo/unirSecciones.js +128 -0
  24. package/dist/agent/grafo/unirSecciones.js.map +1 -0
  25. package/dist/agent/grafo/xoneAgent.js +56 -51
  26. package/dist/agent/grafo/xoneAgent.js.map +1 -1
  27. package/dist/agent/motores/trueforge/capacidades.js +179 -0
  28. package/dist/agent/motores/trueforge/capacidades.js.map +1 -0
  29. package/dist/agent/motores/trueforge/eventosTrueforge.js +143 -0
  30. package/dist/agent/motores/trueforge/eventosTrueforge.js.map +1 -0
  31. package/dist/agent/motores/trueforge/memoriaTrueforge.js +336 -0
  32. package/dist/agent/motores/trueforge/memoriaTrueforge.js.map +1 -0
  33. package/dist/agent/motores/trueforge/metricasTrueforge.js +55 -0
  34. package/dist/agent/motores/trueforge/metricasTrueforge.js.map +1 -0
  35. package/dist/agent/motores/trueforge/modeloExterno.js +46 -0
  36. package/dist/agent/motores/trueforge/modeloExterno.js.map +1 -0
  37. package/dist/agent/motores/trueforge/modeloLangchain.js +152 -0
  38. package/dist/agent/motores/trueforge/modeloLangchain.js.map +1 -0
  39. package/dist/agent/motores/trueforge/recortes.js +121 -0
  40. package/dist/agent/motores/trueforge/recortes.js.map +1 -0
  41. package/dist/agent/motores/trueforge/sesionTrueforge.js +1062 -0
  42. package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -0
  43. package/dist/agent/motores/trueforge/skillsTrueforge.js +14 -0
  44. package/dist/agent/motores/trueforge/skillsTrueforge.js.map +1 -0
  45. package/dist/agent/motores/trueforge/toolsDeFichero.js +265 -0
  46. package/dist/agent/motores/trueforge/toolsDeFichero.js.map +1 -0
  47. package/dist/agent/motores/trueforge/toolsPropias.js +65 -0
  48. package/dist/agent/motores/trueforge/toolsPropias.js.map +1 -0
  49. package/dist/agent/motores/trueforge/trueforge.js +45 -0
  50. package/dist/agent/motores/trueforge/trueforge.js.map +1 -0
  51. package/dist/agent/navegacion/indiceEnDisco.js +10 -1
  52. package/dist/agent/navegacion/indiceEnDisco.js.map +1 -1
  53. package/dist/agent/planesEnDisco.js +64 -0
  54. package/dist/agent/planesEnDisco.js.map +1 -0
  55. package/dist/agent/sesiones/memoriaDeHilo.js +24 -0
  56. package/dist/agent/sesiones/memoriaDeHilo.js.map +1 -0
  57. package/dist/agent/sesiones/modeloDelCambio.js +70 -0
  58. package/dist/agent/sesiones/modeloDelCambio.js.map +1 -0
  59. package/dist/agent/sesiones/sesionGit.js +14 -0
  60. package/dist/agent/sesiones/sesionGit.js.map +1 -1
  61. package/dist/agent/subagentes/actividadDeCodex.js +60 -0
  62. package/dist/agent/subagentes/actividadDeCodex.js.map +1 -0
  63. package/dist/agent/subagentes/agentesEnDisco.js +95 -5
  64. package/dist/agent/subagentes/agentesEnDisco.js.map +1 -1
  65. package/dist/agent/subagentes/escrituraExterna.js +10 -2
  66. package/dist/agent/subagentes/escrituraExterna.js.map +1 -1
  67. package/dist/agent/subagentes/subagenteCodex.js +20 -0
  68. package/dist/agent/subagentes/subagenteCodex.js.map +1 -1
  69. package/dist/agent/subagentes/subagenteExterno.js +269 -202
  70. package/dist/agent/subagentes/subagenteExterno.js.map +1 -1
  71. package/dist/agent/subagentes/subagenteOpencode.js +19 -2
  72. package/dist/agent/subagentes/subagenteOpencode.js.map +1 -1
  73. package/dist/agent/turno/diagnosticoDeTools.js +3 -0
  74. package/dist/agent/turno/diagnosticoDeTools.js.map +1 -1
  75. package/dist/agent/turno/ficherosDelProyecto.js +62 -0
  76. package/dist/agent/turno/ficherosDelProyecto.js.map +1 -0
  77. package/dist/agent/turno/informeDeTraza.js +28 -1
  78. package/dist/agent/turno/informeDeTraza.js.map +1 -1
  79. package/dist/agent/turno/puente.js +17 -1
  80. package/dist/agent/turno/puente.js.map +1 -1
  81. package/dist/agent/turno/resumenDeContexto.js +17 -4
  82. package/dist/agent/turno/resumenDeContexto.js.map +1 -1
  83. package/dist/agent/turno/resumenDeTool.js +3 -0
  84. package/dist/agent/turno/resumenDeTool.js.map +1 -1
  85. package/dist/agent/turno/sesionReal.js +2 -0
  86. package/dist/agent/turno/sesionReal.js.map +1 -0
  87. package/dist/agent/turno/turnoReal.js +55 -164
  88. package/dist/agent/turno/turnoReal.js.map +1 -1
  89. package/dist/agent/turno/verificacion.js +142 -0
  90. package/dist/agent/turno/verificacion.js.map +1 -0
  91. package/dist/cli/config.js +19 -0
  92. package/dist/cli/config.js.map +1 -1
  93. package/dist/cli/consola.js.map +1 -1
  94. package/dist/cli/main.js +35 -2
  95. package/dist/cli/main.js.map +1 -1
  96. package/dist/cli/tui/correrTui.js +1 -1
  97. package/dist/cli/tui/correrTui.js.map +1 -1
  98. package/dist/cli/tui/transcript.js +9 -0
  99. package/dist/cli/tui/transcript.js.map +1 -1
  100. package/dist/core/actos.js.map +1 -1
  101. package/dist/core/agentes.js +17 -0
  102. package/dist/core/agentes.js.map +1 -1
  103. package/dist/core/artefactos.js +22 -0
  104. package/dist/core/artefactos.js.map +1 -1
  105. package/dist/core/config.js +13 -0
  106. package/dist/core/config.js.map +1 -1
  107. package/dist/core/diffDeColecciones.js +84 -0
  108. package/dist/core/diffDeColecciones.js.map +1 -0
  109. package/dist/core/exportacion.js +6 -1
  110. package/dist/core/exportacion.js.map +1 -1
  111. package/dist/core/fotoDeColecciones.js +48 -0
  112. package/dist/core/fotoDeColecciones.js.map +1 -0
  113. package/dist/core/imagenesDeDocumento.js +88 -0
  114. package/dist/core/imagenesDeDocumento.js.map +1 -0
  115. package/dist/core/memoria.js +24 -0
  116. package/dist/core/memoria.js.map +1 -0
  117. package/dist/core/motor.js +41 -0
  118. package/dist/core/motor.js.map +1 -0
  119. package/dist/core/navegacion.js.map +1 -1
  120. package/dist/core/notify.js +23 -5
  121. package/dist/core/notify.js.map +1 -1
  122. package/dist/core/ports.js.map +1 -1
  123. package/dist/core/serieDeEscrituras.js +13 -0
  124. package/dist/core/serieDeEscrituras.js.map +1 -1
  125. package/dist/core/settings.js +17 -1
  126. package/dist/core/settings.js.map +1 -1
  127. package/dist/core/tareasDelPlan.js +103 -0
  128. package/dist/core/tareasDelPlan.js.map +1 -0
  129. package/dist/core/trazaDeErrores.js +42 -3
  130. package/dist/core/trazaDeErrores.js.map +1 -1
  131. package/dist/core/turno.js +44 -4
  132. package/dist/core/turno.js.map +1 -1
  133. package/dist/web/servidor/arranque.js +204 -5
  134. package/dist/web/servidor/arranque.js.map +1 -1
  135. package/dist/web/servidor/pielWeb.js +69 -4
  136. package/dist/web/servidor/pielWeb.js.map +1 -1
  137. package/dist/web/servidor/sesiones.js +11 -0
  138. package/dist/web/servidor/sesiones.js.map +1 -1
  139. package/dist/web/servidor/transporte.js.map +1 -1
  140. package/dist/web/servidor/vestibulo.js +23 -2
  141. package/dist/web/servidor/vestibulo.js.map +1 -1
  142. package/dist/web/servidor/visorOpenui.js +63 -0
  143. package/dist/web/servidor/visorOpenui.js.map +1 -0
  144. package/package.json +7 -2
  145. package/skills/openui-builder/SKILL.md +48 -0
  146. package/apps/web/dist/assets/index-GRwyotMV.js +0 -478
  147. package/apps/web/dist/assets/index-_cBVqq54.css +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unirSecciones.js","sourceRoot":"","sources":["../../../src/agent/grafo/unirSecciones.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,21 @@
1
1
  import { createDeepAgent, createFilesystemMiddleware } from "deepagents";
2
2
  import { MAPA_DEL_PROYECTO, fichaDeAgente, promptDeAgente, repartirSkills } from "../../core/agentes.js";
3
+ import { REGLA_DE_ESCRITURAS_EN_PARALELO } from "../../core/serieDeEscrituras.js";
3
4
  import { RunnableLambda } from "@langchain/core/runnables";
4
5
  import { AIMessage } from "@langchain/core/messages";
5
6
  import { MemorySaver } from "@langchain/langgraph";
6
7
  import { backendDeAgente, entornoDeLaShellDelProyecto } from "./proyecto.js";
7
8
  import { permisosDe, hitlDe, montajeDeFicheros, presupuestoDeLlamadas, puedeEjecutar } from "./perfiles.js";
8
9
  import { crearBusquedaRegex } from "./busquedaRegex.js";
10
+ import { OPCIONES_BUSQUEDA_FICHEROS } from "./opcionesDeFicheros.js";
9
11
  import { crearNavegacionXone } from "./navegacionXone.js";
10
12
  import { crearCopiarArtefacto } from "./copiarArtefacto.js";
13
+ import { crearUnirSecciones } from "./unirSecciones.js";
11
14
  import { estilosDeDisco, indiceEnDisco } from "../navegacion/indiceEnDisco.js";
12
15
  import { readFileSync } from "node:fs";
13
16
  import { join } from "node:path";
14
17
  import { crearCriticaVisual } from "./criticaVisual.js";
18
+ import { textoDeFalloExterno } from "../subagentes/subagenteExterno.js";
15
19
  import { crearTraerDeLaMaquina } from "./traerDeLaMaquina.js";
16
20
  import { invocarVisualConModelos } from "../dispositivos/juezVisual.js";
17
21
  import { inventarioDelProyecto } from "../subagentes/escrituraExterna.js";
@@ -205,11 +209,13 @@ export const DESCRIPCIONES_FICHEROS = {
205
209
  "escrito fuera de ella acaba dentro de la app XOne del usuario. La ruta",
206
210
  "`/MEMORIA_PROYECTO.md` es exclusivamente",
207
211
  "para hechos confirmados, decisiones y pendientes útiles; no guardes transcripciones ni secretos.",
212
+ REGLA_DE_ESCRITURAS_EN_PARALELO,
208
213
  ].join(" "),
209
214
  edit_file: [
210
215
  "Modifica un fichero existente del proyecto en una ruta absoluta.",
211
216
  "No modifiques `/skills`: son instrucciones de solo lectura. Para actualizar la memoria",
212
217
  "usa solo `/MEMORIA_PROYECTO.md` y conserva su contenido útil.",
218
+ REGLA_DE_ESCRITURAS_EN_PARALELO,
213
219
  ].join(" "),
214
220
  grep: [
215
221
  "Busca texto LITERAL (no regex) de forma progresiva para ahorrar contexto.",
@@ -222,29 +228,8 @@ export const DESCRIPCIONES_FICHEROS = {
222
228
  "Varias búsquedas independientes van en el MISMO mensaje, igual que las lecturas.",
223
229
  ].join(" "),
224
230
  };
225
- /**
226
- * Presupuesto de las herramientas de ficheros.
227
- *
228
- * DeepAgents 1.13 incorpora `max_count` y `output_mode` en `grep`. El valor por
229
- * defecto de la librería (1.000) sigue siendo demasiado generoso para un agente
230
- * que explora proyectos XOne: 100 resultados bastan para localizar candidatos y
231
- * el modelo puede subirlo explícitamente en una búsqueda excepcional.
232
- *
233
- * A partir de 6k tokens la salida se conserva bajo `/large_tool_results/` y se
234
- * sustituye por una referencia paginable. Así una lectura o búsqueda accidental
235
- * no consume toda la ventana antes de que actúe el resumen de conversación.
236
- *
237
- * **Esa carpeta se monta FUERA del proyecto** (`core/descargas.ts`,
238
- * `agent/grafo/proyecto.ts#backendConDescargas`), y hasta el 10-09-2026 no: la escribe la librería
239
- * llamando al backend directamente, esa ruta no estaba montada en ninguna parte y caía en el
240
- * `FilesystemBackend` de la raíz. Medido en el AppDemo real del usuario, 26 KB de salida
241
- * cruda de una tool dentro de la app XOne y commiteados. Bajar este tope no era el arreglo:
242
- * el desalojo es la función, el fallo era el sitio.
243
- */
244
- export const OPCIONES_BUSQUEDA_FICHEROS = {
245
- grepMaxCount: 100,
246
- toolTokenLimitBeforeEvict: 6_000,
247
- };
231
+ // Vive en su propio módulo para que el motor TrueForge la lea sin arrastrar el grafo entero.
232
+ export { OPCIONES_BUSQUEDA_FICHEROS } from "./opcionesDeFicheros.js";
248
233
  /**
249
234
  * El agente real.
250
235
  *
@@ -341,40 +326,57 @@ export async function construirAgente(opciones) {
341
326
  externos.push({
342
327
  name: agente.nombre,
343
328
  description: fichaDeAgente(agente),
344
- runnable: RunnableLambda.from(async (entrada) => {
329
+ runnable: RunnableLambda.from(async (entrada, config) => {
345
330
  // La tarea es el último mensaje que le pasa el orquestador. El hijo no comparte
346
331
  // transcript —es un proceso aparte, con su propia sesión—, así que lo que no venga
347
332
  // en esa descripción no existe para él: es la misma regla del handoff que el prompt
348
333
  // del orquestador ya impone entre especialistas.
349
334
  const ultimo = entrada.messages?.at(-1);
350
335
  const tarea = typeof ultimo?.content === "string" ? ultimo.content : String(ultimo?.content ?? "");
351
- const texto = await opciones.subagenteExterno.correr({
352
- motor,
353
- cwd: opciones.raiz,
354
- /**
355
- * Sus instrucciones MÁS el inventario del proyecto. Ese añadido no es un lujo: un
356
- * hijo de Claude Code no tiene ninguna herramienta para listar carpetas —medido—,
357
- * así que sin él lee a ciegas nombres inventados y concluye que el proyecto está
358
- * vacío. Se le dice lo que el harness ya sabe, que es el patrón de `/adjuntos/`.
359
- */
360
- instrucciones: `${promptDeAgente(agente, repartirSkills(agente, catalogoDeSkills))}\n\n${inventarioDelProyecto(opciones.ficheros)}`,
361
- tarea,
362
- // El modelo del producto que pida su `.md`, si pide alguno. Ausente = el que el
363
- // agente externo use por su cuenta, que es lo de siempre.
364
- ...(agente.modelo === undefined ? {} : { modelo: agente.modelo }),
365
- /**
366
- * Lo que diga su `.md`, y nada más. Es la PRIMERA de dos puertas: con esto en
367
- * cierto, cada escritura pasa además por la política de la sesión y por las
368
- * guardas de ruta (`agent/subagentes/escrituraExterna.ts`). Un agente de solo lectura no
369
- * llega a preguntar.
370
- */
371
- permitirEscritura: !agente.soloLectura,
372
- // Para poder decir QUIÉN pide la escritura en la petición de aprobación: la tool
373
- // es la misma para todos los especialistas, así que sin esto el diff diría
374
- // «alguien quiere escribir». Es el papel del `[dev]` que `hitlDe` mete en la
375
- // descripción de un interrupt del grafo.
376
- agente: agente.nombre,
377
- });
336
+ /**
337
+ * Un motor que FALLA se DEVUELVE como la respuesta del hijo, y saneado
338
+ * (`textoDeFalloExterno`): lanzado, el `ToolNode` de LangChain lo convertía en un
339
+ * `ToolMessage` con el `error.message` CRUDO —la ruta de la máquina incluida— que lee el
340
+ * modelo, sale en el chat y se guarda. La cancelación sí se relanza: no hay respuesta que dar.
341
+ */
342
+ let texto;
343
+ try {
344
+ texto = await opciones.subagenteExterno.correr({
345
+ motor,
346
+ cwd: opciones.raiz,
347
+ /**
348
+ * Sus instrucciones MÁS el inventario del proyecto. Ese añadido no es un lujo: un
349
+ * hijo de Claude Code no tiene ninguna herramienta para listar carpetas —medido—,
350
+ * así que sin él lee a ciegas nombres inventados y concluye que el proyecto está
351
+ * vacío. Se le dice lo que el harness ya sabe, que es el patrón de `/adjuntos/`.
352
+ */
353
+ instrucciones: `${promptDeAgente(agente, repartirSkills(agente, catalogoDeSkills))}\n\n${inventarioDelProyecto(opciones.ficheros)}`,
354
+ tarea,
355
+ // El modelo del producto que pida su `.md`, si pide alguno. Ausente = el que el
356
+ // agente externo use por su cuenta, que es lo de siempre.
357
+ ...(agente.modelo === undefined ? {} : { modelo: agente.modelo }),
358
+ /**
359
+ * Lo que diga su `.md`, y nada más. Es la PRIMERA de dos puertas: con esto en
360
+ * cierto, cada escritura pasa además por la política de la sesión y por las
361
+ * guardas de ruta (`agent/subagentes/escrituraExterna.ts`). Un agente de solo lectura no
362
+ * llega a preguntar.
363
+ */
364
+ permitirEscritura: !agente.soloLectura,
365
+ // Para poder decir QUIÉN pide la escritura en la petición de aprobación: la tool
366
+ // es la misma para todos los especialistas, así que sin esto el diff diría
367
+ // «alguien quiere escribir». Es el papel del `[dev]` que `hitlDe` mete en la
368
+ // descripción de un interrupt del grafo.
369
+ agente: agente.nombre,
370
+ // La cancelación del turno, si la librería la propaga hasta aquí: con ella, Parar MATA
371
+ // al hijo en vez de dejarlo escribiendo con el turno cerrado. Sin ella, lo de antes.
372
+ ...(config?.signal === undefined ? {} : { senal: config.signal }),
373
+ });
374
+ }
375
+ catch (error) {
376
+ if (config?.signal?.aborted === true)
377
+ throw error;
378
+ texto = textoDeFalloExterno(motor, error);
379
+ }
378
380
  return { messages: [new AIMessage(texto)] };
379
381
  }),
380
382
  });
@@ -431,6 +433,9 @@ export async function construirAgente(opciones) {
431
433
  perfil,
432
434
  })]
433
435
  : []),
436
+ // Y unir un documento escrito por secciones (`unirSecciones.ts`), con la misma condición de
437
+ // DATO: escribe sin aprobación, así que solo a quien tiene carpetas abiertas con `escribeEn`.
438
+ ...((perfil.escribeEn ?? []).length > 0 ? [crearUnirSecciones({ raiz: opciones.raiz, perfil })] : []),
434
439
  ],
435
440
  //
436
441
  // Las tools de fichero las monta el `FilesystemMiddleware` a partir del backend, y
@@ -1 +1 @@
1
- {"version":3,"file":"xoneAgent.js","sourceRoot":"","sources":["../../../src/agent/grafo/xoneAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xoneAgent.js","sourceRoot":"","sources":["../../../src/agent/grafo/xoneAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Las CAPACIDADES del motor TrueForge: su sistema de plugins (`AgentCapability`), una pieza por
3
+ * responsabilidad —ficheros, tools propias, ejecución, recortes, fecha, instrucciones—.
4
+ *
5
+ * Antes se componían a mano dentro de `abrirSesionTrueforge`, y la nota de «qué tools tienes» de
6
+ * cada hijo se mantenía aparte con una lista escrita: cada tool nueva había que añadirla en dos
7
+ * sitios, y la vez que no se hizo el hijo leía cuatro nombres y veía seis. Aquí **cada pieza
8
+ * declara las tools que añade**, y la nota sale de esa lista (`toolsDe`): hay un solo sitio.
9
+ *
10
+ * Y **qué piezas lleva cada especialista lo decide una función** (`capacidadesDelEspecialista`)
11
+ * sobre lo que declara su `.md`, con la misma partición que deepagents. Es lo que deja probar el
12
+ * reparto sin levantar un hilo.
13
+ */
14
+ import { NOOP_AGENT_TRACING, ToolSet, currentDateTime, openUI } from "./trueforge.js";
15
+ import { permisosDe } from "../../grafo/perfiles.js";
16
+ import { fuenteDeEjecucion, fuenteDeFicheros, TOOLS_DE_FICHERO, TOOLS_DE_LECTURA, TOOLS_QUE_ESCRIBEN, } from "./toolsDeFichero.js";
17
+ import { fuenteDeLangchain } from "./toolsPropias.js";
18
+ import { presupuestoDelPaso } from "./recortes.js";
19
+ /** Las tools que NO piden aprobación: las de lectura, las propias y la shell del conductor. */
20
+ export const SIN_APROBACION = { enableTools: ["@all"], disableTools: [], preloadTools: [], requireApprovalForTools: [] };
21
+ /** Las que escriben PARAN el turno hasta que alguien decida, como el HITL de deepagents. */
22
+ export const CON_APROBACION = { enableTools: ["@all"], disableTools: [], preloadTools: [], requireApprovalForTools: [...TOOLS_QUE_ESCRIBEN] };
23
+ /** Las tools de FICHERO sobre nuestro backend, acotadas por `reglas`. */
24
+ export function capacidadDeFicheros(opciones) {
25
+ return {
26
+ nombre: "ficheros",
27
+ tools: opciones.tools,
28
+ capability: {
29
+ systemToolSets: [
30
+ new ToolSet({
31
+ source: fuenteDeFicheros({ backend: opciones.backend, reglas: opciones.reglas, tools: opciones.tools }),
32
+ selectors: opciones.conAprobacion ? CON_APROBACION : SIN_APROBACION,
33
+ preload: true,
34
+ }),
35
+ ],
36
+ },
37
+ };
38
+ }
39
+ /** Las tools propias de xonecode (`xone_navegacion`, `regex_search`…), adaptadas. */
40
+ export function capacidadDePropias(tools, backend) {
41
+ return {
42
+ nombre: "propias",
43
+ tools: tools.map((t) => t.name),
44
+ capability: {
45
+ systemToolSets: [new ToolSet({ source: fuenteDeLangchain(tools, backend), selectors: SIN_APROBACION, preload: true })],
46
+ },
47
+ };
48
+ }
49
+ /** `execute`: la shell del que la declara en su `.md`, y de nadie más. */
50
+ export function capacidadDeEjecucion(conShell) {
51
+ return {
52
+ nombre: "ejecucion",
53
+ tools: ["execute"],
54
+ capability: { systemToolSets: [new ToolSet({ source: fuenteDeEjecucion(conShell), selectors: SIN_APROBACION, preload: true })] },
55
+ };
56
+ }
57
+ /**
58
+ * El presupuesto de un PASO entero (`recortes.ts#recortarPaso`), que el recorte por resultado no
59
+ * ve: varias respuestas en paralelo que caben solas pero no juntas. No añade tools.
60
+ */
61
+ export function capacidadDeRecortes(backend) {
62
+ return { nombre: "recortes", tools: [], capability: { toolResponseProcessors: [presupuestoDelPaso(backend)] } };
63
+ }
64
+ /**
65
+ * `get_current_datetime` de la librería: la fecha en UTC, para que «hoy» o «hace tres días» no se
66
+ * lo invente el modelo. No da la zona horaria local, y no se le atribuye.
67
+ */
68
+ export function capacidadDeFecha() {
69
+ return { nombre: "fecha", tools: ["get_current_datetime"], capability: currentDateTime({ tracing: NOOP_AGENT_TRACING }) };
70
+ }
71
+ /**
72
+ * Lo que OpenUI tiene que saber de ESTE harness, y que su prompt no dice. Va en CÓDIGO —en el
73
+ * prompt de quien tiene la skill `openui-builder`— porque vale para cualquier usuario y el modelo
74
+ * no siempre abre un `SKILL.md` (la lección medida de `artifacts-builder`, ver `agentesEnDisco.ts`):
75
+ * el prompt de la librería le pide que emita el bloque en su RESPUESTA, y la de un especialista
76
+ * la lee el orquestador. Y «elige UNO» porque se midió lo contrario: un turno real escribió el
77
+ * mismo panel en `.html` y en `.openui`, pagando el caro además del barato. Lo demás —cuándo usarlo
78
+ * y cómo no fallar— vive en la skill, que el usuario puede copiar y editar como cualquier otra.
79
+ */
80
+ export const REGLAS_DE_OPENUI = [
81
+ "OpenUI en xonecode: el programa NO va en tu respuesta —la lee el orquestador, no una persona—. Escríbelo con `write_file` en `/artefactos/<nombre>.openui` (con su valla ```openui o sin ella); así se anuncia y se ve en la pestaña Artefactos.",
82
+ "- Se ve en un iframe SIN RED: hornea los datos literales (no hay `Query()` ni `Mutation()`), sin imágenes de fuera, y las acciones no hacen nada.",
83
+ "- Elige UNO: o este `.openui` o un HTML de `artifacts-builder`, nunca el mismo artefacto en los dos formatos.",
84
+ "- Cuándo usarlo y los fallos que evitar: la skill `openui-builder`.",
85
+ ].join("\n");
86
+ /** El nombre de la skill que TRAE OpenUI: quien la tiene recibe la tool que la skill necesita. */
87
+ export { SKILL_DE_OPENUI } from "../../../core/agentes.js";
88
+ import { SKILL_DE_OPENUI } from "../../../core/agentes.js";
89
+ /**
90
+ * OpenUI para quien tiene la skill `openui-builder`: la tool de la librería que carga sus
91
+ * instrucciones BAJO DEMANDA (unos 5.000 tokens que no viajan en cada llamada) y, al lado, las
92
+ * reglas del harness. **La skill explica y esto monta lo que la skill necesita**, igual que un
93
+ * builder del usuario: lo decide la skill que declara su `.md`, no el nombre de otra skill.
94
+ */
95
+ export function capacidadDeOpenui() {
96
+ const base = openUI({ preload: false, tracing: NOOP_AGENT_TRACING });
97
+ return {
98
+ nombre: "openui",
99
+ tools: ["get_openui_instructions"],
100
+ capability: {
101
+ ...base,
102
+ instructionBuilders: [
103
+ ...(base.instructionBuilders ?? []),
104
+ (b) => void b.addSection("openui-en-xonecode", REGLAS_DE_OPENUI, true),
105
+ ],
106
+ },
107
+ };
108
+ }
109
+ /**
110
+ * Las instrucciones de un HIJO en su prompt de SISTEMA. La librería IGNORA el `instruction` de un
111
+ * hijo (`buildInstruction`, `!this.parent`): a su sistema solo llegan los `instructionBuilders`.
112
+ * En el primer mensaje, una compactación —que sustituye el contexto entero— se las llevaría.
113
+ */
114
+ export function capacidadDeInstrucciones(texto) {
115
+ return {
116
+ nombre: "instrucciones",
117
+ tools: [],
118
+ capability: {
119
+ instructionBuilders: [(b) => void b.addSection("especialista", texto, true)],
120
+ },
121
+ };
122
+ }
123
+ /** Las tools que suman unas piezas, en orden: de aquí sale la nota del hijo. */
124
+ export function toolsDe(capacidades) {
125
+ return capacidades.flatMap((c) => [...c.tools]);
126
+ }
127
+ /** Las `AgentCapability` que recibe TrueForge. */
128
+ export function capabilitiesDe(capacidades) {
129
+ return capacidades.map((c) => c.capability);
130
+ }
131
+ /**
132
+ * Qué CLASE de especialista es, por lo que declara su `.md` — la partición de deepagents
133
+ * (`perfiles.ts#toolsDe` y `montajeDeFicheros`):
134
+ * - quien EJECUTA: lectura + `execute`, y nada de escribir (la shell no pasa por los permisos,
135
+ * así que el camino normal de tocar el proyecto sigue siendo el de la aprobación);
136
+ * - quien solo lee: las seis SIN aprobación, porque `permisosDe` lo confina a lo que no es el
137
+ * proyecto —`/artefactos/` y `/planes/`, que es donde el analista deja su plan—: en deepagents
138
+ * `hitlDe` le devuelve `{}` por lo mismo;
139
+ * - el resto: las seis, con `write_file`/`edit_file` pidiendo aprobación y `permisosDe` acotando
140
+ * (`escribeEn` incluido).
141
+ */
142
+ export function clasesDeTools(agente) {
143
+ if (agente.ejecucion === true)
144
+ return "ejecuta";
145
+ return agente.soloLectura ? "lee" : "escribe";
146
+ }
147
+ /**
148
+ * Las piezas de un especialista —o del hijo genérico, si el nombre no es de ninguno—, sin sus
149
+ * instrucciones: esas se escriben con la lista de tools que salga de aquí.
150
+ */
151
+ export function capacidadesDelEspecialista(agente, nombrePedido, deps) {
152
+ // Un nombre inventado da un hijo de SOLO LECTURA sin shell: no tumba el turno ni se lleva la escritura.
153
+ if (agente === undefined) {
154
+ return [
155
+ capacidadDeFicheros({ backend: deps.backend, reglas: permisosDe({ nombre: nombrePedido, soloLectura: true }), tools: TOOLS_DE_LECTURA, conAprobacion: false }),
156
+ capacidadDeRecortes(deps.backend),
157
+ capacidadDeFecha(),
158
+ ];
159
+ }
160
+ const clase = clasesDeTools(agente);
161
+ const reglas = permisosDe(agente);
162
+ const propias = deps.propias(agente);
163
+ return [
164
+ capacidadDeFicheros({
165
+ backend: deps.backend,
166
+ reglas,
167
+ tools: clase === "ejecuta" ? TOOLS_DE_LECTURA : TOOLS_DE_FICHERO,
168
+ conAprobacion: clase === "escribe",
169
+ }),
170
+ ...(propias.length > 0 ? [capacidadDePropias(propias, deps.backend)] : []),
171
+ ...(clase === "ejecuta" ? [capacidadDeEjecucion(deps.conShell())] : []),
172
+ capacidadDeRecortes(deps.backend),
173
+ capacidadDeFecha(),
174
+ // OpenUI lo trae su skill: quien la declara recibe la tool. Solo en nuestro motor —un hijo
175
+ // externo no pasa por estas capabilities, y la skill le dice que sin la tool no lo use—.
176
+ ...(agente.skills.includes(SKILL_DE_OPENUI) ? [capacidadDeOpenui()] : []),
177
+ ];
178
+ }
179
+ //# sourceMappingURL=capacidades.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capacidades.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/capacidades.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ import { detalleDe } from "../../turno/resumenDeTool.js";
2
+ const HILO_RAIZ = "main";
3
+ /** Las tool calls de un mensaje completo del asistente: nombre y argumentos. */
4
+ function llamadasDe(mensaje) {
5
+ const tc = mensaje?.tool_calls;
6
+ if (!Array.isArray(tc))
7
+ return [];
8
+ return tc.flatMap((t) => {
9
+ const nombre = t.function?.name;
10
+ if (typeof nombre !== "string")
11
+ return [];
12
+ let args = {};
13
+ try {
14
+ args = JSON.parse(t.function?.arguments ?? "{}");
15
+ }
16
+ catch {
17
+ args = {};
18
+ }
19
+ return [{ nombre, args }];
20
+ });
21
+ }
22
+ /** Cómo dice TrueForge que un hilo agotó su tope de llamadas, en el `error` de su `agent.done`. */
23
+ const TOPE_AGOTADO = /iteration limit of (\d+)/;
24
+ /**
25
+ * El tope que agotó un hilo, si ESTE evento es ese corte; `undefined` si no. Vale para el raíz y
26
+ * para cualquier hijo, y existe para la traza: sin él, un especialista cortado por el tope era
27
+ * indistinguible de uno que terminó —medido: la traza decía «cortes: 0» con un documentador que
28
+ * se quedó en exactamente 30 llamadas a mitad de un manual—.
29
+ */
30
+ export function topeAgotadoDe(evento) {
31
+ const e = evento;
32
+ if (e?.type !== "internal.agent.done" || e.status !== "error" || typeof e.error !== "string")
33
+ return undefined;
34
+ const tope = TOPE_AGOTADO.exec(e.error);
35
+ return tope === null ? undefined : Number(tope[1]);
36
+ }
37
+ /**
38
+ * De quién es lo que llega por un hilo. El raíz es el orquestador; cualquier otro, un
39
+ * especialista, con su nombre solo si la sesión lo conoce — sin resolutor, o con un hilo que no
40
+ * sabe, el nombre se CALLA en vez de rellenarse con el id del hilo.
41
+ */
42
+ function origenDelHilo(hilo, especialistaDe) {
43
+ if (hilo === HILO_RAIZ)
44
+ return { rol: "orquestador" };
45
+ const nombre = especialistaDe?.(hilo);
46
+ return nombre === undefined ? { rol: "especialista" } : { rol: "especialista", nombre };
47
+ }
48
+ /**
49
+ * Un evento de TrueForge → cero o más eventos de dominio, y el uso si trae una llamada al modelo
50
+ * terminada (para que quien corre el turno lo sume al contador).
51
+ */
52
+ export function traducirEvento(evento, especialistaDe, pensamientos) {
53
+ const e = (evento ?? {});
54
+ const hilo = e.thread_id ?? HILO_RAIZ;
55
+ const delRaiz = hilo === HILO_RAIZ;
56
+ switch (e.type) {
57
+ case "model.message.delta": {
58
+ const pensado = typeof e.reasoning_content === "string" ? e.reasoning_content : "";
59
+ if (!delRaiz) {
60
+ // Sin colchón no hay dónde juntarlo, y a trozos se mezclaría: se calla, como antes.
61
+ if (pensado !== "" && pensamientos !== undefined)
62
+ pensamientos.set(hilo, (pensamientos.get(hilo) ?? "") + pensado);
63
+ return { eventos: [] };
64
+ }
65
+ const salida = [];
66
+ if (pensado !== "") {
67
+ salida.push({
68
+ tipo: "razonamiento",
69
+ texto: pensado,
70
+ ...(e.id === undefined ? {} : { msgId: e.id }),
71
+ origen: { rol: "orquestador" },
72
+ });
73
+ }
74
+ if (typeof e.content === "string" && e.content !== "") {
75
+ salida.push({ tipo: "token", texto: e.content, ...(e.id === undefined ? {} : { msgId: e.id }) });
76
+ }
77
+ return { eventos: salida };
78
+ }
79
+ case "internal.agent.context.append": {
80
+ // El mensaje COMPLETO del asistente: de aquí salen sus tools —con los argumentos ya
81
+ // enteros, no a trozos— y el uso de la llamada.
82
+ const salidas = Array.isArray(e.output) ? e.output : [];
83
+ const eventos = [];
84
+ let uso;
85
+ const origen = origenDelHilo(hilo, especialistaDe);
86
+ // Lo que el hijo pensó para ESTE mensaje, entero y antes de las tools que decidió.
87
+ const pensado = pensamientos?.get(hilo);
88
+ if (pensado !== undefined) {
89
+ pensamientos.delete(hilo);
90
+ if (pensado.trim() !== "")
91
+ eventos.push({ tipo: "razonamiento", texto: pensado, origen });
92
+ }
93
+ for (const m of salidas) {
94
+ for (const { nombre, args } of llamadasDe(m)) {
95
+ const detalle = detalleDe(nombre, args);
96
+ eventos.push({ tipo: "tool", nombre, ...(detalle === undefined ? {} : { detalle }), origen });
97
+ }
98
+ const u = m?.usage;
99
+ if (u !== undefined) {
100
+ uso = {
101
+ input: (uso?.input ?? 0) + (u.input_tokens ?? 0),
102
+ output: (uso?.output ?? 0) + (u.output_tokens ?? 0),
103
+ cache: (uso?.cache ?? 0) + (u.cache_read_tokens ?? 0),
104
+ };
105
+ }
106
+ }
107
+ return { eventos, ...(uso === undefined ? {} : { uso }) };
108
+ }
109
+ case "agent.context.overwrite": {
110
+ // La compactación: una llamada al modelo que también se paga. Su uso viene en el evento y
111
+ // no en un mensaje del contexto, así que sin esto el resumen sería gratis en el contador.
112
+ const u = e.usage;
113
+ if (u === undefined)
114
+ return { eventos: [] };
115
+ return { eventos: [], uso: { input: u.input_tokens ?? 0, output: u.output_tokens ?? 0, cache: u.cache_read_tokens ?? 0 } };
116
+ }
117
+ case "internal.agent.done": {
118
+ // Un subagente que falla lo dice su padre, que recibe el error como respuesta de tool.
119
+ // El RAÍZ que falla se dice aquí: un turno que se rompe no puede cerrar en silencio.
120
+ if (!delRaiz || e.status !== "error")
121
+ return { eventos: [] };
122
+ const detalle = typeof e.error === "string" ? e.error : "error del motor";
123
+ // El TOPE de llamadas no es un fallo del motor: es un corte, y se dice como tal — con cuántas
124
+ // y con lo que se puede hacer. Sin esto se leía «el motor falló» con el texto en inglés.
125
+ const tope = TOPE_AGOTADO.exec(detalle);
126
+ if (tope !== null) {
127
+ return {
128
+ eventos: [
129
+ {
130
+ tipo: "aviso",
131
+ texto: `⚠ el orquestador agotó su tope de ${tope[1]} llamadas en este turno: lo hecho hasta aquí se queda como está; pide que siga si hace falta`,
132
+ severidad: "grave",
133
+ },
134
+ ],
135
+ };
136
+ }
137
+ return { eventos: [{ tipo: "aviso", texto: `⚠ el motor TrueForge falló: ${detalle}`, severidad: "grave" }] };
138
+ }
139
+ default:
140
+ return { eventos: [] };
141
+ }
142
+ }
143
+ //# sourceMappingURL=eventosTrueforge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventosTrueforge.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/eventosTrueforge.ts"],"names":[],"mappings":"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"}