xonecode 0.38.41 → 0.39.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/web/dist/assets/{EditorDeFichero-B5qtmfKO.js → EditorDeFichero-BeWDctgN.js} +1 -1
- package/apps/web/dist/assets/{index-C6XoIOQg.js → index-B-6cDRAV.js} +20 -20
- package/apps/web/dist/assets/{php-I6JfbNBQ.js → php-D3QdOnb8.js} +1 -1
- package/apps/web/dist/assets/{ruby-DlqXDLOX.js → ruby-DDAcW-Z2.js} +1 -1
- package/apps/web/dist/index.html +1 -1
- package/dist/agent/cloudstudio/cloudstudioClient.d.ts +29 -0
- package/dist/agent/cloudstudio/cloudstudioMcp.d.ts +414 -0
- package/dist/agent/cloudstudio/conexionDeServidor.d.ts +37 -0
- package/dist/agent/cloudstudio/conexionDeServidor.js +63 -0
- package/dist/agent/cloudstudio/conexionDeServidor.js.map +1 -0
- package/dist/agent/cloudstudio/crearRama.d.ts +15 -0
- package/dist/agent/cloudstudio/crearRama.js +16 -0
- package/dist/agent/cloudstudio/crearRama.js.map +1 -0
- package/dist/agent/cloudstudio/descarga.d.ts +44 -0
- package/dist/agent/cloudstudio/manifiesto.d.ts +25 -0
- package/dist/agent/cloudstudio/ramaActiva.d.ts +24 -0
- package/dist/agent/cloudstudio/subida.d.ts +61 -0
- package/dist/agent/cloudstudio/subida.js +7 -1
- package/dist/agent/cloudstudio/subida.js.map +1 -1
- package/dist/agent/cloudstudio/validarTrasDescarga.d.ts +13 -0
- package/dist/agent/cloudstudio/zip.d.ts +13 -0
- package/dist/agent/conectores/conectoresEnDisco.d.ts +47 -0
- package/dist/agent/conectores/gestorJira.d.ts +50 -0
- package/dist/agent/conectores/gestorNotion.d.ts +45 -0
- package/dist/agent/conectores/proveedorDeConector.d.ts +43 -0
- package/dist/agent/conectores/servicioDeConectores.d.ts +112 -0
- package/dist/agent/config/authEnDisco.d.ts +43 -0
- package/dist/agent/config/catalogoModelos.d.ts +79 -0
- package/dist/agent/config/configEnDisco.d.ts +235 -0
- package/dist/agent/config/crearProyecto.d.ts +20 -0
- package/dist/agent/config/diagnosticoDeNodeEnMaquina.d.ts +44 -0
- package/dist/agent/config/ecoDeRazonamiento.d.ts +104 -0
- package/dist/agent/config/entorno.d.ts +83 -0
- package/dist/agent/config/fuentesEnRed.d.ts +12 -0
- package/dist/agent/config/gemini.d.ts +5 -0
- package/dist/agent/config/iconosEnRed.d.ts +10 -0
- package/dist/agent/config/identidadEnDisco.d.ts +27 -0
- package/dist/agent/config/modelos.d.ts +77 -0
- package/dist/agent/config/modelosDeMotor.d.ts +52 -0
- package/dist/agent/config/mudanzaEnDisco.d.ts +99 -0
- package/dist/agent/config/persona.d.ts +1 -0
- package/dist/agent/config/selectorEnMaquina.d.ts +35 -0
- package/dist/agent/config/settingsEnDisco.d.ts +206 -0
- package/dist/agent/config/versionEnDisco.d.ts +17 -0
- package/dist/agent/dispositivos/arranqueDeEmulador.d.ts +60 -0
- package/dist/agent/dispositivos/cajasDeMaqueta.d.ts +61 -0
- package/dist/agent/dispositivos/decodificarImagen.d.ts +21 -0
- package/dist/agent/dispositivos/descargaDeHerramientas.d.ts +44 -0
- package/dist/agent/dispositivos/dispositivosEnMaquina.d.ts +161 -0
- package/dist/agent/dispositivos/geometriaEnDisco.d.ts +17 -0
- package/dist/agent/dispositivos/hotswap.d.ts +194 -0
- package/dist/agent/dispositivos/instalacionEnMaquina.d.ts +156 -0
- package/dist/agent/dispositivos/juezVisual.d.ts +144 -0
- package/dist/agent/dispositivos/lanzamientoEnMaquina.d.ts +197 -0
- package/dist/agent/dispositivos/paqueteDelProyecto.d.ts +28 -0
- package/dist/agent/dispositivos/procesosEnMaquina.d.ts +154 -0
- package/dist/agent/dispositivos/recargaEnAparato.d.ts +30 -0
- package/dist/agent/dispositivos/sensorDeArranque.d.ts +42 -0
- package/dist/agent/exportarPdf.d.ts +72 -0
- package/dist/agent/grafo/aprendido.d.ts +28 -0
- package/dist/agent/grafo/arbolDeProyecto.d.ts +205 -0
- package/dist/agent/grafo/artefactosEnDisco.d.ts +35 -0
- package/dist/agent/grafo/atributosXone.d.ts +31 -0
- package/dist/agent/grafo/buscarIcono.d.ts +32 -0
- package/dist/agent/grafo/busquedaRegex.d.ts +56 -0
- package/dist/agent/grafo/codificacionDelProyecto.d.ts +7 -0
- package/dist/agent/grafo/compararCapturas.d.ts +22 -0
- package/dist/agent/grafo/copiarArtefacto.d.ts +64 -0
- package/dist/agent/grafo/criticaVisual.d.ts +60 -0
- package/dist/agent/grafo/describirImagen.d.ts +79 -0
- package/dist/agent/grafo/diferenciaDeCapturas.d.ts +33 -0
- package/dist/agent/grafo/ejecucionCancelable.d.ts +45 -0
- package/dist/agent/grafo/escriturasEnSerie.d.ts +31 -0
- package/dist/agent/grafo/excluirTools.d.ts +37 -0
- package/dist/agent/grafo/fuentesDeGoogle.d.ts +37 -0
- package/dist/agent/grafo/generarFondoSvg.d.ts +52 -0
- package/dist/agent/grafo/incorporarAdjunto.d.ts +98 -0
- package/dist/agent/grafo/lectorDeReferencias.d.ts +28 -0
- package/dist/agent/grafo/marcarCriteriosDelPlan.d.ts +47 -0
- package/dist/agent/grafo/memoriaDeProyecto.d.ts +15 -0
- package/dist/agent/grafo/navegacionXone.d.ts +60 -0
- package/dist/agent/grafo/opcionesDeFicheros.d.ts +23 -0
- package/dist/agent/grafo/perfiles.d.ts +225 -0
- package/dist/agent/grafo/proyecto.d.ts +450 -0
- package/dist/agent/grafo/skills.d.ts +181 -0
- package/dist/agent/grafo/traerDeLaMaquina.d.ts +60 -0
- package/dist/agent/grafo/unirSecciones.d.ts +20 -0
- package/dist/agent/grafo/validacionXone.d.ts +35 -0
- package/dist/agent/grafo/validarFicheroXone.d.ts +33 -0
- package/dist/agent/grafo/xoneAgent.d.ts +166 -0
- package/dist/agent/motores/motoresLocales.d.ts +87 -0
- package/dist/agent/motores/trueforge/capacidades.d.ts +183 -0
- package/dist/agent/motores/trueforge/convertirAP.d.ts +38 -0
- package/dist/agent/motores/trueforge/detencion.d.ts +70 -0
- package/dist/agent/motores/trueforge/esperas.d.ts +38 -0
- package/dist/agent/motores/trueforge/eventosTrueforge.d.ts +56 -0
- package/dist/agent/motores/trueforge/informesDeHijos.d.ts +48 -0
- package/dist/agent/motores/trueforge/medidaAutomatica.d.ts +37 -0
- package/dist/agent/motores/trueforge/medidaAutomatica.js +4 -2
- package/dist/agent/motores/trueforge/medidaAutomatica.js.map +1 -1
- package/dist/agent/motores/trueforge/memoriaDeEspecialistas.d.ts +60 -0
- package/dist/agent/motores/trueforge/memoriaTrueforge.d.ts +131 -0
- package/dist/agent/motores/trueforge/metricasTrueforge.d.ts +45 -0
- package/dist/agent/motores/trueforge/modeloExterno.d.ts +9 -0
- package/dist/agent/motores/trueforge/modeloLangchain.d.ts +69 -0
- package/dist/agent/motores/trueforge/notas.d.ts +48 -0
- package/dist/agent/motores/trueforge/proponerTareas.d.ts +30 -0
- package/dist/agent/motores/trueforge/recortes.d.ts +47 -0
- package/dist/agent/motores/trueforge/resumenSeguro.d.ts +33 -0
- package/dist/agent/motores/trueforge/sesionTrueforge.d.ts +273 -0
- package/dist/agent/motores/trueforge/sesionTrueforge.js +32 -15
- package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -1
- package/dist/agent/motores/trueforge/skillsTrueforge.d.ts +16 -0
- package/dist/agent/motores/trueforge/toolsDeConectores.d.ts +36 -0
- package/dist/agent/motores/trueforge/toolsDeFichero.d.ts +146 -0
- package/dist/agent/motores/trueforge/toolsPropias.d.ts +38 -0
- package/dist/agent/motores/trueforge/traerDeStitch.d.ts +63 -0
- package/dist/agent/motores/trueforge/trueforge.d.ts +35 -0
- package/dist/agent/navegacion/estilosEnDisco.d.ts +41 -0
- package/dist/agent/navegacion/hechosEnDisco.d.ts +19 -0
- package/dist/agent/navegacion/indiceEnDisco.d.ts +50 -0
- package/dist/agent/navegacion/modeloDeProyecto.d.ts +86 -0
- package/dist/agent/planesEnDisco.d.ts +18 -0
- package/dist/agent/publicarPlan.d.ts +20 -0
- package/dist/agent/raizDelPaquete.d.ts +9 -0
- package/dist/agent/remoto/ngrokEnMaquina.d.ts +44 -0
- package/dist/agent/remoto/puenteWebSocket.d.ts +59 -0
- package/dist/agent/remoto/tunelNgrok.d.ts +31 -0
- package/dist/agent/renombrarSobre.d.ts +14 -0
- package/dist/agent/sesiones/adjuntosDeSesion.d.ts +64 -0
- package/dist/agent/sesiones/baseDeFichero.d.ts +9 -0
- package/dist/agent/sesiones/checkpointer.d.ts +146 -0
- package/dist/agent/sesiones/git.d.ts +66 -0
- package/dist/agent/sesiones/gitSync.d.ts +264 -0
- package/dist/agent/sesiones/memoriaDeHilo.d.ts +4 -0
- package/dist/agent/sesiones/modeloDelCambio.d.ts +7 -0
- package/dist/agent/sesiones/parcheEnTexto.d.ts +9 -0
- package/dist/agent/sesiones/sesionGit.d.ts +155 -0
- package/dist/agent/subagentes/actividadDeCodex.d.ts +8 -0
- package/dist/agent/subagentes/agentesEnDisco.d.ts +198 -0
- package/dist/agent/subagentes/consumoExterno.d.ts +83 -0
- package/dist/agent/subagentes/ejecutableEnWindows.d.ts +53 -0
- package/dist/agent/subagentes/escrituraDeCodex.d.ts +94 -0
- package/dist/agent/subagentes/escrituraDeOpencode.d.ts +67 -0
- package/dist/agent/subagentes/escrituraExterna.d.ts +419 -0
- package/dist/agent/subagentes/pluginDeSkills.d.ts +84 -0
- package/dist/agent/subagentes/subagenteCodex.d.ts +76 -0
- package/dist/agent/subagentes/subagenteExterno.d.ts +169 -0
- package/dist/agent/subagentes/subagenteOpencode.d.ts +126 -0
- package/dist/agent/tareas/aumentador.d.ts +99 -0
- package/dist/agent/tareas/juezDeTarea.d.ts +64 -0
- package/dist/agent/tareas/reflejoEnElGestor.d.ts +38 -0
- package/dist/agent/tareas/sondeoDelGestor.d.ts +49 -0
- package/dist/agent/tareas/tareasEnDisco.d.ts +141 -0
- package/dist/agent/trazaDeErroresEnDisco.d.ts +10 -0
- package/dist/agent/turno/depuracion.d.ts +1 -0
- package/dist/agent/turno/diagnosticoDeTools.d.ts +124 -0
- package/dist/agent/turno/ficherosDelProyecto.d.ts +10 -0
- package/dist/agent/turno/guionizado.d.ts +18 -0
- package/dist/agent/turno/informeDeTraza.d.ts +220 -0
- package/dist/agent/turno/inspectorDePrompt.d.ts +150 -0
- package/dist/agent/turno/instantanea.d.ts +16 -0
- package/dist/agent/turno/interrupts.d.ts +54 -0
- package/dist/agent/turno/juezDelTurnoConModelo.d.ts +26 -0
- package/dist/agent/turno/mensajes.d.ts +23 -0
- package/dist/agent/turno/normalizar.d.ts +15 -0
- package/dist/agent/turno/puente.d.ts +196 -0
- package/dist/agent/turno/registroDeFallos.d.ts +39 -0
- package/dist/agent/turno/resumenDeContexto.d.ts +269 -0
- package/dist/agent/turno/resumenDeTool.d.ts +33 -0
- package/dist/agent/turno/rubrica.d.ts +35 -0
- package/dist/agent/turno/sesionReal.d.ts +89 -0
- package/dist/agent/turno/textoDeTool.d.ts +19 -0
- package/dist/agent/turno/turnoReal.d.ts +210 -0
- package/dist/agent/turno/verificacion.d.ts +85 -0
- package/dist/agent/turno/verificador.d.ts +66 -0
- package/dist/bin.d.ts +2 -0
- package/dist/cli/acuseDeModelo.d.ts +18 -0
- package/dist/cli/aprobar.d.ts +162 -0
- package/dist/cli/config.d.ts +17 -0
- package/dist/cli/consola.d.ts +473 -0
- package/dist/cli/describe.d.ts +7 -0
- package/dist/cli/doctor.d.ts +8 -0
- package/dist/cli/fuentesDeDisco.d.ts +25 -0
- package/dist/cli/main.d.ts +291 -0
- package/dist/cli/markdown.d.ts +126 -0
- package/dist/cli/panel.d.ts +38 -0
- package/dist/cli/podar.d.ts +38 -0
- package/dist/cli/run.d.ts +30 -0
- package/dist/cli/spinner.d.ts +37 -0
- package/dist/cli/stdio.d.ts +94 -0
- package/dist/cli/tema.d.ts +68 -0
- package/dist/cli/tokens.d.ts +16 -0
- package/dist/cli/traza.d.ts +19 -0
- package/dist/cli/tui/app.d.ts +23 -0
- package/dist/cli/tui/aprobarTui.d.ts +46 -0
- package/dist/cli/tui/barra.d.ts +43 -0
- package/dist/cli/tui/correrTui.d.ts +119 -0
- package/dist/cli/tui/entrada.d.ts +14 -0
- package/dist/cli/tui/filas.d.ts +13 -0
- package/dist/cli/tui/logo.d.ts +20 -0
- package/dist/cli/tui/pielTui.d.ts +15 -0
- package/dist/cli/tui/raton.d.ts +68 -0
- package/dist/cli/tui/sidebar.d.ts +63 -0
- package/dist/cli/tui/store.d.ts +102 -0
- package/dist/cli/tui/tarjeta.d.ts +8 -0
- package/dist/cli/tui/temaInk.d.ts +67 -0
- package/dist/cli/tui/transcript.d.ts +32 -0
- package/dist/cli/verify.d.ts +9 -0
- package/dist/cli/wizardInicial.d.ts +59 -0
- package/dist/core/actos.d.ts +437 -0
- package/dist/core/adjuntos.d.ts +77 -0
- package/dist/core/agentes.d.ts +353 -0
- package/dist/core/analisisDeSesion.d.ts +63 -0
- package/dist/core/aprendido.d.ts +41 -0
- package/dist/core/artefactos.d.ts +74 -0
- package/dist/core/atributosXone.d.ts +53 -0
- package/dist/core/bitacora.d.ts +21 -0
- package/dist/core/cloudstudio.d.ts +168 -0
- package/dist/core/codificacion.d.ts +81 -0
- package/dist/core/comandoExterno.d.ts +49 -0
- package/dist/core/compararCapturas.d.ts +136 -0
- package/dist/core/conectores.d.ts +296 -0
- package/dist/core/config.d.ts +148 -0
- package/dist/core/contextos.d.ts +54 -0
- package/dist/core/convertirAP.d.ts +56 -0
- package/dist/core/copiaDeAvd.d.ts +44 -0
- package/dist/core/cssBienFormado.d.ts +22 -0
- package/dist/core/deps.d.ts +28 -0
- package/dist/core/descargas.d.ts +61 -0
- package/dist/core/descripcionDePantalla.d.ts +121 -0
- package/dist/core/descriptoresDeApp.d.ts +108 -0
- package/dist/core/diagnosticoDeNode.d.ts +51 -0
- package/dist/core/diff.d.ts +26 -0
- package/dist/core/diffDeColecciones.d.ts +54 -0
- package/dist/core/disenoVinculado.d.ts +17 -0
- package/dist/core/dispositivoDeSesion.d.ts +22 -0
- package/dist/core/dispositivoElegido.d.ts +17 -0
- package/dist/core/dispositivos.d.ts +469 -0
- package/dist/core/entrega.d.ts +341 -0
- package/dist/core/entrelazar.d.ts +48 -0
- package/dist/core/esfuerzo.d.ts +120 -0
- package/dist/core/esqueleto.d.ts +38 -0
- package/dist/core/estiloMedido.d.ts +70 -0
- package/dist/core/estilos.d.ts +76 -0
- package/dist/core/events.d.ts +218 -0
- package/dist/core/exportacion.d.ts +88 -0
- package/dist/core/fallos.d.ts +79 -0
- package/dist/core/fondosSvg.d.ts +115 -0
- package/dist/core/fotoDeColecciones.d.ts +45 -0
- package/dist/core/fuentes.d.ts +96 -0
- package/dist/core/geometriaDePantalla.d.ts +171 -0
- package/dist/core/gestorDeTareas.d.ts +295 -0
- package/dist/core/hechosDelProyecto.d.ts +70 -0
- package/dist/core/hotswap.d.ts +30 -0
- package/dist/core/iconos.d.ts +86 -0
- package/dist/core/identidadDeProveedor.d.ts +20 -0
- package/dist/core/idiomaDeLaRespuesta.d.ts +26 -0
- package/dist/core/imagenesDeDocumento.d.ts +40 -0
- package/dist/core/jsParaRhino.d.ts +3 -0
- package/dist/core/juezDelTurno.d.ts +95 -0
- package/dist/core/logDeDispositivo.d.ts +67 -0
- package/dist/core/memoria.d.ts +18 -0
- package/dist/core/metodoDeComparacionVisual.d.ts +20 -0
- package/dist/core/modelos.d.ts +198 -0
- package/dist/core/modoDeEscritura.d.ts +155 -0
- package/dist/core/motor.d.ts +43 -0
- package/dist/core/motoresLocales.d.ts +113 -0
- package/dist/core/mudanzaDeWorkspace.d.ts +112 -0
- package/dist/core/navegacion.d.ts +172 -0
- package/dist/core/notify.d.ts +77 -0
- package/dist/core/nucleoXone.d.ts +28 -0
- package/dist/core/panorama.d.ts +68 -0
- package/dist/core/paqueteDeSoporte.d.ts +100 -0
- package/dist/core/planDeSubida.d.ts +56 -0
- package/dist/core/planes.d.ts +53 -0
- package/dist/core/podaDeCheckpoint.d.ts +75 -0
- package/dist/core/ports.d.ts +1034 -0
- package/dist/core/puedeLanzarse.d.ts +181 -0
- package/dist/core/puertosDeAvd.d.ts +59 -0
- package/dist/core/recargaEnCaliente.d.ts +52 -0
- package/dist/core/referenciasDeImagen.d.ts +36 -0
- package/dist/core/remoto.d.ts +76 -0
- package/dist/core/repartoDeEncargo.d.ts +80 -0
- package/dist/core/rubrica.d.ts +78 -0
- package/dist/core/rutaVirtual.d.ts +29 -0
- package/dist/core/selectorDeCarpeta.d.ts +59 -0
- package/dist/core/serieDeEscrituras.d.ts +58 -0
- package/dist/core/settings.d.ts +421 -0
- package/dist/core/shellDeAgente.d.ts +177 -0
- package/dist/core/skills.d.ts +129 -0
- package/dist/core/stitch.d.ts +114 -0
- package/dist/core/tareas.d.ts +412 -0
- package/dist/core/tareasDelPlan.d.ts +123 -0
- package/dist/core/tareasEnElGestor.d.ts +117 -0
- package/dist/core/textos.d.ts +8 -0
- package/dist/core/topeAgotado.d.ts +55 -0
- package/dist/core/traerDeLaMaquina.d.ts +33 -0
- package/dist/core/trazaDeErrores.d.ts +83 -0
- package/dist/core/tunel.d.ts +45 -0
- package/dist/core/turno.d.ts +154 -0
- package/dist/core/validacionDeEscritura.d.ts +95 -0
- package/dist/core/verificacionDeSubida.d.ts +14 -0
- package/dist/core/version.d.ts +35 -0
- package/dist/core/xmlBienFormado.d.ts +23 -0
- package/dist/core/zipDeAdjunto.d.ts +28 -0
- package/dist/core/zipDeSkill.d.ts +74 -0
- package/dist/lib/tareaAutonoma.d.ts +36 -0
- package/dist/lib/tareaAutonoma.js +259 -0
- package/dist/lib/tareaAutonoma.js.map +1 -0
- package/dist/lib.d.ts +31 -0
- package/dist/lib.js +28 -0
- package/dist/lib.js.map +1 -0
- package/dist/vendor/hitl.d.ts +69 -0
- package/dist/vendor/skillLoaders/catalog.d.ts +27 -0
- package/dist/vendor/sqliteSaver.d.ts +22 -0
- package/dist/vendor/tokenTracking.d.ts +22 -0
- package/dist/web/servidor/arranque.d.ts +1372 -0
- package/dist/web/servidor/consolaDeTarea.d.ts +166 -0
- package/dist/web/servidor/consolaWeb.d.ts +142 -0
- package/dist/web/servidor/corredorDeTareas.d.ts +395 -0
- package/dist/web/servidor/datosDeCierre.d.ts +4 -0
- package/dist/web/servidor/interrupcion.d.ts +39 -0
- package/dist/web/servidor/pielWeb.d.ts +32 -0
- package/dist/web/servidor/puenteRemoto.d.ts +80 -0
- package/dist/web/servidor/servidor.d.ts +53 -0
- package/dist/web/servidor/sesiones.d.ts +342 -0
- package/dist/web/servidor/soporte.d.ts +65 -0
- package/dist/web/servidor/soporte.js +2 -0
- package/dist/web/servidor/soporte.js.map +1 -1
- package/dist/web/servidor/transporte.d.ts +2751 -0
- package/dist/web/servidor/vestibulo.d.ts +952 -0
- package/dist/web/servidor/visorOpenui.d.ts +33 -0
- package/package.json +9 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Una nota escrita mientras el agente trabaja (IXCODE-4), con UN dueño.
|
|
3
|
+
*
|
|
4
|
+
* Se entregaba a CADA hilo como encargo, y eso se midió con una prueba real (MyAllXOne): «y créame
|
|
5
|
+
* un diagrama» llegó al analista, que lo dibujó, y al volver el orquestador la recibió igual de
|
|
6
|
+
* nueva y se lo encargó otra vez a `designer-xone` — el diagrama, dos veces. La regla ahora:
|
|
7
|
+
*
|
|
8
|
+
* - **Si trabaja UN solo hijo, la nota es suya**: la incorpora si le cabe en el encargo, y si no, la
|
|
9
|
+
* devuelve como pendiente (`textoDeNotaParaHijo`).
|
|
10
|
+
* - **Con VARIOS en paralelo no es de ninguno**: dársela a uno sería una carrera, y a todos es el
|
|
11
|
+
* bug de arriba. La decide el raíz al volver, como encargo.
|
|
12
|
+
* - **Sin hijos trabajando, es del raíz**, que es quien planifica.
|
|
13
|
+
* - **El raíz la ve SIEMPRE**, y si ya tenía dueño la ve como INFORMACIÓN: a quién se le pasó y que
|
|
14
|
+
* no la vuelva a encargar (`textoDeNotaYaEntregada`).
|
|
15
|
+
* - Un hijo nacido cuando la nota ya tiene dueño —o ya la vio el raíz— no la recibe: el raíz la
|
|
16
|
+
* tiene en cuenta al delegar.
|
|
17
|
+
*
|
|
18
|
+
* «Trabajan a la vez» = los hijos nacidos de la última llamada del raíz: mientras un hijo vive, el
|
|
19
|
+
* raíz espera su resultado y no llama al modelo (`detencion.ts#hijosVivos`). Un hijo EXTERNO no
|
|
20
|
+
* pasa por los procesadores, así que nunca se la queda: la recoge el raíz.
|
|
21
|
+
*/
|
|
22
|
+
export interface Nota {
|
|
23
|
+
texto: string;
|
|
24
|
+
/** `thread_id` de quien se la quedó como encargo. Ausente: todavía de nadie. */
|
|
25
|
+
duenio?: string;
|
|
26
|
+
vistaPorElRaiz: boolean;
|
|
27
|
+
}
|
|
28
|
+
export declare function crearNota(texto: string): Nota;
|
|
29
|
+
/** Lo que hace falta saber del árbol en el momento de entregar. */
|
|
30
|
+
export interface ContextoDeEntrega {
|
|
31
|
+
hiloRaiz: string;
|
|
32
|
+
/** Cuántos hijos trabajan a la vez ahora mismo. */
|
|
33
|
+
hijosVivos: number;
|
|
34
|
+
/** El nombre con que el raíz conoce a un hilo hijo (su especialista). */
|
|
35
|
+
nombreDe: (threadId: string) => string;
|
|
36
|
+
}
|
|
37
|
+
/** Para el raíz: lo que la persona le dijo. */
|
|
38
|
+
export declare function textoDeNota(texto: string): string;
|
|
39
|
+
/** Para un hijo: su interlocutor normal es quien le delegó, así que se dice que viene de fuera, y
|
|
40
|
+
* se le da la salida si no es de su encargo. */
|
|
41
|
+
export declare function textoDeNotaParaHijo(texto: string): string;
|
|
42
|
+
/** Para el raíz, cuando la nota ya se la quedó un hijo. */
|
|
43
|
+
export declare function textoDeNotaYaEntregada(texto: string, quien: string): string;
|
|
44
|
+
/** Los textos que se le meten a ESE hilo antes de su llamada, marcando lo entregado. */
|
|
45
|
+
export declare function entregarNotas(notas: readonly Nota[], threadId: string, ctx: ContextoDeEntrega): string[];
|
|
46
|
+
/** Lo que NADIE se quedó, para mandarlo como el turno siguiente. `undefined` si no queda ninguna —
|
|
47
|
+
* así el llamador no confunde "sin sobrantes" con una cadena vacía. */
|
|
48
|
+
export declare function sobrantes(notas: readonly Nota[]): string | undefined;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { NOMBRE_PROPONER_TAREAS, type PropuestaDeTareas } from "../../../core/repartoDeEncargo.js";
|
|
3
|
+
export { NOMBRE_PROPONER_TAREAS };
|
|
4
|
+
export declare function crearProponerTareas(proponer: (p: PropuestaDeTareas) => void): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
|
|
5
|
+
motivo: z.ZodString;
|
|
6
|
+
tareas: z.ZodArray<z.ZodObject<{
|
|
7
|
+
titulo: z.ZodString;
|
|
8
|
+
peticion: z.ZodString;
|
|
9
|
+
adjuntos: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
10
|
+
}, z.core.$strip>>;
|
|
11
|
+
}, z.core.$strip>, {
|
|
12
|
+
motivo: string;
|
|
13
|
+
tareas: {
|
|
14
|
+
titulo: string;
|
|
15
|
+
peticion: string;
|
|
16
|
+
adjuntos?: string[] | undefined;
|
|
17
|
+
}[];
|
|
18
|
+
}, {
|
|
19
|
+
motivo: string;
|
|
20
|
+
tareas: {
|
|
21
|
+
titulo: string;
|
|
22
|
+
peticion: string;
|
|
23
|
+
adjuntos?: string[] | undefined;
|
|
24
|
+
}[];
|
|
25
|
+
}, string, unknown, "proponer_tareas">;
|
|
26
|
+
/**
|
|
27
|
+
* Lo que el raíz sabe de `proponer_tareas`, solo cuando la tiene. Preguntar ANTES es petición de la persona: la tarea no
|
|
28
|
+
* verá esta conversación, así que lo que falte en su encargo lo adivinaría.
|
|
29
|
+
*/
|
|
30
|
+
export declare const REPARTIR_EN_TAREAS: string;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** Por encima de esto `ls`/`glob`/`grep` se truncan (el `truncateIfTooLong` de deepagents). */
|
|
2
|
+
export declare const CARACTERES_ANTES_DE_TRUNCAR = 80000;
|
|
3
|
+
export declare const AVISO_DE_TRUNCADO = "\n... [resultados truncados: afina el patr\u00F3n o la ruta]";
|
|
4
|
+
/** Por encima de esto un resultado de `execute` o de una tool propia se desaloja del contexto. */
|
|
5
|
+
export declare const CARACTERES_ANTES_DE_DESALOJAR: number;
|
|
6
|
+
export declare const MAXIMO_DE_COINCIDENCIAS: 100;
|
|
7
|
+
export declare function truncarSiLargo(texto: string): string;
|
|
8
|
+
/** Cabeza y cola numeradas, con cuántas líneas se saltan en medio (`createContentPreview`). */
|
|
9
|
+
export declare function vistaPrevia(texto: string, cabeza?: number, cola?: number): string;
|
|
10
|
+
/** Lo que hace falta del backend para desalojar: escribir en la ruta virtual. */
|
|
11
|
+
export interface EscritorDeDesalojo {
|
|
12
|
+
write(ruta: string, contenido: string): unknown;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* El texto que VE el modelo: el mismo si cabe, o la ruta donde quedó y un extracto si no. Si no
|
|
16
|
+
* se puede guardar —sin carpeta de artefactos no hay dónde colgar `/large_tool_results/`, y la
|
|
17
|
+
* guarda del proyecto lo rechaza, como debe— se dice y va el extracto igual: meter el resultado
|
|
18
|
+
* entero es justo lo que esto evita.
|
|
19
|
+
*/
|
|
20
|
+
export declare function desalojarSiGrande(texto: string, backend: EscritorDeDesalojo, forzar?: boolean): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* **El presupuesto de un PASO**, que el recorte de arriba no ve: cada resultado se mira solo, así
|
|
23
|
+
* que cinco `execute` en paralelo de 20.000 caracteres pasan uno a uno y juntos meten 100.000 en
|
|
24
|
+
* el contexto. Es la regla del `largeToolResponse` de TrueForge, con su umbral (10.000 tokens),
|
|
25
|
+
* portada y no montada: con los dos puestos la misma salida se procesaría dos veces.
|
|
26
|
+
*/
|
|
27
|
+
export declare const CARACTERES_DEL_PASO: number;
|
|
28
|
+
/** Un error que haya que recortar se TRUNCA a esto en vez de desalojarse: ahí no hay nada que releer. */
|
|
29
|
+
export declare const CARACTERES_DE_UN_ERROR = 500;
|
|
30
|
+
/** Lo que se usa de un resultado de tool de TrueForge dentro de un `toolResponseProcessor`. */
|
|
31
|
+
export interface ResultadoDelPaso {
|
|
32
|
+
message: {
|
|
33
|
+
content: unknown;
|
|
34
|
+
};
|
|
35
|
+
failure?: unknown;
|
|
36
|
+
isStructuredContent?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Los resultados de UN paso, dentro del presupuesto: un error ENORME se trunca, y mientras el
|
|
40
|
+
* total se pase se desalojan los mayores primero. Modifica los resultados, que es el contrato del
|
|
41
|
+
* procesador de la librería; no quita ninguno (la librería lanza si falta uno).
|
|
42
|
+
*/
|
|
43
|
+
export declare function recortarPaso(resultados: ResultadoDelPaso[], backend: EscritorDeDesalojo): Promise<void>;
|
|
44
|
+
/** El procesador que TrueForge llama con todos los resultados de un paso. */
|
|
45
|
+
export declare function presupuestoDelPaso(backend: EscritorDeDesalojo): {
|
|
46
|
+
process: (resultados: ResultadoDelPaso[]) => Promise<{}>;
|
|
47
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Un resumen de contexto VACÍO no puede sustituir a la conversación.
|
|
3
|
+
*
|
|
4
|
+
* La compactación de TrueForge (`ContextCompaction.mjs`) pide un resumen al modelo y **sustituye el
|
|
5
|
+
* contexto ENTERO** por su respuesta, sin comprobar que no venga vacía. Con una vacía el raíz se
|
|
6
|
+
* queda sin el encargo: en una sesión real el contexto acabó siendo `[{assistant: ""}, «resumen
|
|
7
|
+
* hecho»]`, y el agente contestó «no tengo ningún encargo» con el encargo a tres mensajes de
|
|
8
|
+
* distancia. Peor, la memoria del hilo quedó así, y reenviar el mensaje no lo arreglaba.
|
|
9
|
+
*
|
|
10
|
+
* Aquí se envuelve el modelo SOLO para esa llamada: una respuesta vacía se reintenta una vez, y si
|
|
11
|
+
* sigue vacía se sustituye por los mensajes de la persona, tal como llegaron al resumen. No mejora
|
|
12
|
+
* un resumen malo; evita que el encargo se pierda.
|
|
13
|
+
*
|
|
14
|
+
* **Límite declarado**: los mensajes se recuperan del texto que la librería le da al modelo
|
|
15
|
+
* (`<n><user>:…`), un formato suyo. Si cambia, el rescate devuelve un aviso sin mensajes en vez de
|
|
16
|
+
* lanzar, y el test de este fichero lo delata.
|
|
17
|
+
*/
|
|
18
|
+
export interface RespuestaDeResumen {
|
|
19
|
+
output: {
|
|
20
|
+
content?: unknown;
|
|
21
|
+
[k: string]: unknown;
|
|
22
|
+
};
|
|
23
|
+
[k: string]: unknown;
|
|
24
|
+
}
|
|
25
|
+
export interface ClienteDeResumen {
|
|
26
|
+
createNonStream: (cuerpo: never) => Promise<never>;
|
|
27
|
+
[k: string]: unknown;
|
|
28
|
+
}
|
|
29
|
+
/** Los mensajes de la persona del texto que la compactación le pasa al modelo, en orden. */
|
|
30
|
+
export declare function mensajesDeLaPersona(candidato: string): string[];
|
|
31
|
+
export declare function resumenDeRescate(candidato: string): string;
|
|
32
|
+
/** El cliente con la compactación protegida. Todo lo demás del cliente pasa igual. */
|
|
33
|
+
export declare function conResumenSeguro<T extends ClienteDeResumen>(cliente: T, avisar?: (texto: string) => void): T;
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import type { PendienteDeAprobacion } from "../../../core/events.js";
|
|
2
|
+
import type { IconosPort, FuentesPort, ConectoresPort, ModelosPort, SkillInfo, SubagenteExternoPort, VerifierPort } from "../../../core/ports.js";
|
|
3
|
+
import { opcionesDeSubagenteExterno } from "../../subagentes/escrituraExterna.js";
|
|
4
|
+
import type { LineaDeDiff } from "../../../core/diff.js";
|
|
5
|
+
import { type Decision } from "../../../vendor/hitl.js";
|
|
6
|
+
import { bloqueDeAprendido } from "../../../core/aprendido.js";
|
|
7
|
+
import { type Agente } from "../../../core/agentes.js";
|
|
8
|
+
import type { SesionReal } from "../../turno/sesionReal.js";
|
|
9
|
+
import { type HechosDelTurno, type VeredictoDelTurno } from "../../../core/juezDelTurno.js";
|
|
10
|
+
import type { Entorno } from "../../config/entorno.js";
|
|
11
|
+
import { type DiagnosticoDeTools } from "../../turno/diagnosticoDeTools.js";
|
|
12
|
+
import { type CargarIndice } from "../../navegacion/indiceEnDisco.js";
|
|
13
|
+
/**
|
|
14
|
+
* Cuando quien MAQUETA es un hijo de Claude Code con ejecución, el bucle lo hace ÉL: despliega, captura, compara con la
|
|
15
|
+
* maqueta y corrige (`textoDeTrabajoSinLlamar`). Medido en Maset: el orquestador, con `BUCLE_DE_CALIDAD`, volvía a pasar el
|
|
16
|
+
* crítico y le encargaba otra vuelta —y otra al diseñador por un SVG—, y cada vuelta era un Claude Code NUEVO que releía
|
|
17
|
+
* todo: unos quince minutos cada una, con las piezas ya bien. Dos bucles uno encima de otro.
|
|
18
|
+
*/
|
|
19
|
+
export declare function textoDeMaquetadorExterno(nombres: readonly string[]): string;
|
|
20
|
+
/**
|
|
21
|
+
* Lo que el orquestador tiene que saber para DELEGAR en ESTE motor. Su prompt es el de siempre
|
|
22
|
+
* (`promptOrquestador`), que habla de `task` y de la ficha que va en su descripción: aquí la
|
|
23
|
+
* delegación es `create_sub_agent` y no tiene descripción por especialista, así que se traduce
|
|
24
|
+
* el nombre de la tool y las fichas van escritas aquí, con la MISMA función que deepagents.
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* **El idioma de la SALIDA, dicho desde código**, al raíz y a cada especialista. Visto en la consola web (MyAllXOne):
|
|
28
|
+
* el texto entre herramientas salía en inglés («Let me call…») con la persona escribiendo en español: nuestros prompts
|
|
29
|
+
* están en español pero ninguno lo decía, y hay piezas internas en inglés que tiran de él (la identidad que añade
|
|
30
|
+
* TrueForge, las descripciones de las tools, la costumbre de DeepSeek de razonar en inglés).
|
|
31
|
+
*
|
|
32
|
+
* **Lo que importa es lo que LEE la persona, en SU idioma** (decisión suya): las respuestas, lo que se dice entre
|
|
33
|
+
* herramientas y lo que se entrega. El razonamiento queda libre. Y no es «español» a fuego, es el idioma del usuario: el
|
|
34
|
+
* raíz lo lee de su mensaje; un hijo no lo ve, así que sigue el de su encargo, que el raíz escribe en ese idioma.
|
|
35
|
+
*/
|
|
36
|
+
export declare const IDIOMA_DE_LA_RESPUESTA: string;
|
|
37
|
+
/** Lo mismo para un ESPECIALISTA, que no ve el mensaje del usuario: sigue el idioma de su encargo. */
|
|
38
|
+
export declare const IDIOMA_DEL_ESPECIALISTA: string;
|
|
39
|
+
/**
|
|
40
|
+
* **Al desarrollador no se le cuenta la MAQUINARIA**, solo al raíz, que es quien le habla. Visto en la consola web: al
|
|
41
|
+
* saludar, el raíz explicaba que tenía «la foto del proyecto», que no la iba a «re-escanear», que el especialista lo
|
|
42
|
+
* llevaría «dentro del HANDOFF DE ANÁLISIS» y que usaría `xone_navegacion`. Es cómo trabaja el harness por dentro, no
|
|
43
|
+
* algo que le sirva a quien pide: petición suya. A los hijos no va, porque le hablan al raíz y no a la persona.
|
|
44
|
+
*/
|
|
45
|
+
export declare const SIN_HABLAR_DEL_HARNESS: string;
|
|
46
|
+
/** Lo que recibe el agente en modo autónomo cuando pregunta sin marcar ninguna opción como recomendada. */
|
|
47
|
+
/**
|
|
48
|
+
* Al raíz de una TAREA DE FONDO (`trabajoSinPersona`). Preguntar no está prohibido —la pregunta se contesta sola con su
|
|
49
|
+
* recomendada, y pasado el tope aparca la tarea—, pero cada una es una parada: se le pide decidir antes. Y como nadie
|
|
50
|
+
* ha visto el trabajo, la respuesta final es lo que la persona leerá: un resumen con lo que decidió sin preguntar.
|
|
51
|
+
*/
|
|
52
|
+
export declare const TRABAJO_SIN_PERSONA: string;
|
|
53
|
+
/**
|
|
54
|
+
* Lo aprendido, para el ORQUESTADOR: lo que hay apuntado y cuándo apuntar él. Le toca sobre todo lo que le cuente un
|
|
55
|
+
* hijo de motor externo en su apartado «Aprendido:» (ese hijo no tiene la tool).
|
|
56
|
+
*/
|
|
57
|
+
export declare function textoDeAprendidoDelRaiz(lista: Parameters<typeof bloqueDeAprendido>[0]): string;
|
|
58
|
+
/**
|
|
59
|
+
* La respuesta a una pregunta del agente cuando nadie la contesta y tenía opción recomendada. No es la opción a secas:
|
|
60
|
+
* medido en Maset, con solo «Opción A (Recommended)» el agente cerraba diciendo «lo decidiste tú», como si la hubiera
|
|
61
|
+
* elegido la persona. Es SU recomendación aplicada, y así tiene que contarla.
|
|
62
|
+
*/
|
|
63
|
+
export declare function respuestaAutonomaRecomendada(elegida: string): string;
|
|
64
|
+
export declare const RESPUESTA_AUTONOMA_SIN_RECOMENDADA = "Modo aut\u00F3nomo: no hay nadie a quien preguntar. Decide t\u00FA con lo que dicen el encargo y el plan, sigue, y di en tu respuesta final qu\u00E9 elegiste y por qu\u00E9.";
|
|
65
|
+
/** Un comando que saca una captura de pantalla del aparato. */
|
|
66
|
+
export declare const COMANDO_DE_CAPTURA: RegExp;
|
|
67
|
+
/** Con cuántas capturas de UN encargo se le avisa a quien ejecuta. */
|
|
68
|
+
export declare const UMBRALES_DE_CAPTURAS: readonly [2, 4];
|
|
69
|
+
/**
|
|
70
|
+
* El aviso de capturas. El prompt del conductor ya decía que una captura «no es una herramienta de diagnóstico», y una
|
|
71
|
+
* comprobación de una pasada real sacó 18 —61 ficheros y 92 pares casi iguales en total—, casi todas para mirar valores
|
|
72
|
+
* y excepciones que `getText`/`getFields` y el log contestan sin mirar nada. Un texto no es un contador.
|
|
73
|
+
*/
|
|
74
|
+
export declare function textoDeCapturas(capturas: number): string;
|
|
75
|
+
/** Con cuántas comprobaciones seguidas se le avisa a quien lleva un lazo. El primero es el «tres vueltas» del prompt. */
|
|
76
|
+
export declare const UMBRALES_DE_VUELTAS: readonly [3, 5];
|
|
77
|
+
/**
|
|
78
|
+
* El aviso: no dice «para», dice «cambia de procedimiento». La misma familia de fallo se vio arreglada de cinco
|
|
79
|
+
* maneras (un control que falta, y al arreglarlo, otro): lo que hay que hacer es aislar la causa una vez y aplicarla
|
|
80
|
+
* a todos los sitios, no reescribir otra vez.
|
|
81
|
+
*/
|
|
82
|
+
export declare function textoDeVueltas(vueltas: number): string;
|
|
83
|
+
/**
|
|
84
|
+
* Lo que se le cuenta a quien ESPERÓ a otros especialistas, al soltarse: a quién esperó y qué hay en el disco.
|
|
85
|
+
* Solo NOMBRES —los recursos de `icons/` y los `ASSETS.md`/`TASKS.md` del plan—, nunca su contenido: es lo que dejó
|
|
86
|
+
* el otro, que no viaja por ningún canal más que el disco. Sin recursos que nombrar, un aviso corto.
|
|
87
|
+
*/
|
|
88
|
+
export declare function textoDeLoQueDejaronLosEsperados(raiz: string, esperadas: readonly string[]): string;
|
|
89
|
+
/**
|
|
90
|
+
* Lo que se le dice a quien puede llamar a otros. Cada llamada de estas es un hilo nuevo que solo sabe lo que le
|
|
91
|
+
* escribas (aunque recuerde sus encargos anteriores de la sesión), y lo que te devuelve es lo que vio, no un
|
|
92
|
+
* veredicto: decidir si lo que escribiste funciona sigue siendo cosa tuya, con lo que ese hijo te traiga.
|
|
93
|
+
*/
|
|
94
|
+
export declare function textoDelBucle(llama: readonly string[], opciones?: {
|
|
95
|
+
conCritica?: boolean;
|
|
96
|
+
conFuentes?: boolean;
|
|
97
|
+
}): string;
|
|
98
|
+
export declare function notaDeDelegacion(agentes: readonly Agente[], opciones?: {
|
|
99
|
+
conIconos?: boolean;
|
|
100
|
+
conFuentes?: boolean;
|
|
101
|
+
conComparacion?: boolean;
|
|
102
|
+
conMemoria?: boolean;
|
|
103
|
+
conBucle?: boolean;
|
|
104
|
+
conEsperas?: boolean;
|
|
105
|
+
}): string;
|
|
106
|
+
/**
|
|
107
|
+
* La frase de las tools que TIENE, sacada de los nombres que de verdad se le montan: escrita a
|
|
108
|
+
* mano se quedaba vieja en cuanto se añadía una —la nota decía cuatro y el modelo veía seis—.
|
|
109
|
+
*/
|
|
110
|
+
/**
|
|
111
|
+
* CUÁNDO usar el índice de atributos, junto a la lista de tools y solo a quien la tiene. Medido en calc13: con la tool
|
|
112
|
+
* montada y descrita, el consultor la consultó 9 veces y el desarrollador —quien escribe los atributos— ninguna, con 13
|
|
113
|
+
* lecturas de la skill: su prompt solo la nombraba en la lista, y el `SKILL.md` le manda a las referencias. No va en el
|
|
114
|
+
* `SKILL.md` porque ese llega también a los motores externos, que no tienen la tool.
|
|
115
|
+
*/
|
|
116
|
+
export declare const USO_DE_XONE_ATRIBUTOS: string;
|
|
117
|
+
/**
|
|
118
|
+
* CUÁNDO convertir las medidas de una maqueta, por lo mismo que `USO_DE_XONE_ATRIBUTOS`: una tool nombrada solo en la
|
|
119
|
+
* lista no se usa. Medido en Maset: con la regla en la skill, el desarrollador copió los px de la maqueta como `p` y los
|
|
120
|
+
* iconos salieron unas 2,6 veces más pequeños.
|
|
121
|
+
*/
|
|
122
|
+
export declare const USO_DE_CONVERTIR_A_P: string;
|
|
123
|
+
export declare function notaDeTools(nombres: readonly string[], limite: string): string;
|
|
124
|
+
/**
|
|
125
|
+
* La pregunta del orquestador, como TEXTO del chat: la pregunta y sus opciones numeradas. Se pinta
|
|
126
|
+
* en la respuesta y no en un diálogo, a propósito: así llega igual a la web, a la TUI y al terminal
|
|
127
|
+
* sin tocar ninguna piel, y la persona contesta como contesta siempre, escribiendo.
|
|
128
|
+
*/
|
|
129
|
+
export declare function textoDePregunta(args: Record<string, unknown>): string;
|
|
130
|
+
/**
|
|
131
|
+
* La pregunta y sus opciones como DATO (`events.ts#consulta`), de los argumentos que mandó el
|
|
132
|
+
* modelo: una sola lectura para el texto, la tarjeta y la respuesta, o las tres divergirían.
|
|
133
|
+
*/
|
|
134
|
+
export declare function consultaDe(args: Record<string, unknown>): {
|
|
135
|
+
pregunta: string;
|
|
136
|
+
opciones: string[];
|
|
137
|
+
};
|
|
138
|
+
/** Lo que escribió la persona, como respuesta: un número de opción se traduce a su texto. */
|
|
139
|
+
export declare function respuestaAPregunta(args: Record<string, unknown>, escrito: string): string;
|
|
140
|
+
/**
|
|
141
|
+
* El tope de llamadas del ORQUESTADOR en un turno. deepagents no le pone ninguno —no puede quedarse
|
|
142
|
+
* a medias— y TrueForge exige un número (su omisión, 25, es la del core); 100 es la omisión de su
|
|
143
|
+
* propio `AgentSpec`. Es POR TURNO porque el raíz se rehace desde su foto al acabar cada uno.
|
|
144
|
+
*/
|
|
145
|
+
export declare const LIMITE_DE_LLAMADAS_DEL_RAIZ = 100;
|
|
146
|
+
export interface OpcionesDeSesionTrueforge {
|
|
147
|
+
raiz: string;
|
|
148
|
+
modelos: ModelosPort;
|
|
149
|
+
entorno: Entorno;
|
|
150
|
+
/**
|
|
151
|
+
* El catálogo de skills de la sesión. OBLIGATORIO: sin él cada especialista se quedaría sin
|
|
152
|
+
* el anuncio de las suyas y trabajaría como si no las tuviera, sin un error que leer — el
|
|
153
|
+
* patrón de fallo del campo opcional.
|
|
154
|
+
*/
|
|
155
|
+
skills: readonly SkillInfo[];
|
|
156
|
+
pedirAprobacion?: (pendientes: PendienteDeAprobacion[], ficheros: Map<string, string>, diffs: Map<string, LineaDeDiff[]>) => Promise<Map<string, Decision>>;
|
|
157
|
+
/** El modo autónomo de la sesión, leído en CADA ronda (`core/modoDeEscritura.ts`). */
|
|
158
|
+
sinAprobacion?: () => boolean;
|
|
159
|
+
/** La carpeta de artefactos de la sesión (lo que el agente ve como `/artefactos/`). */
|
|
160
|
+
artefactos?: string;
|
|
161
|
+
/**
|
|
162
|
+
* La carpeta de los ADJUNTOS — lo que el agente ve como `/adjuntos/`, de solo lectura
|
|
163
|
+
* (`core/adjuntos.ts`, `agent/grafo/proyecto.ts#backendConAdjuntos`). Ausente es «no hay»
|
|
164
|
+
* y `/adjuntos/` no se monta; una cadena vacía montaría el cwd del proceso.
|
|
165
|
+
*
|
|
166
|
+
* **Antes de IXCODE-7 este motor no recibía este dato en absoluto**: una tarea con
|
|
167
|
+
* adjuntos corría en TrueForge sin `/adjuntos/` montada, mudo — los tests de la pieza
|
|
168
|
+
* pasaban igual porque la composición vivía en `montarBackend`, que ningún test doblaba.
|
|
169
|
+
*/
|
|
170
|
+
adjuntos?: string;
|
|
171
|
+
/** De dónde salen los iconos (IXCODE-18). Ausente = `buscar_icono` no se monta. */
|
|
172
|
+
iconos?: IconosPort;
|
|
173
|
+
/** De dónde salen las fuentes (Google Fonts). Ausente = `buscar_fuente`/`traer_fuente` no se montan. */
|
|
174
|
+
fuentes?: FuentesPort;
|
|
175
|
+
/**
|
|
176
|
+
* El raíz puede PROPONER repartir un encargo grande en tareas de fondo encadenadas (`proponer_tareas`,
|
|
177
|
+
* `core/repartoDeEncargo.ts`). Solo una sesión de PERSONA de la web, que es la que tiene la cola de tareas y la
|
|
178
|
+
* tarjeta para encolarlas: nunca una consola de tarea (encadenaría trabajo sin nadie), ni el terminal, `run` o los
|
|
179
|
+
* evals. Ausente es no.
|
|
180
|
+
*/
|
|
181
|
+
puedeProponerTareas?: boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Una TAREA DE FONDO: nadie delante. El raíz resuelve sus dudas solo, como en modo autónomo (la opción recomendada, o
|
|
184
|
+
* «decide tú»), con el mismo tope por turno, y su prompt le pide cerrar con un resumen (`TRABAJO_SIN_PERSONA`).
|
|
185
|
+
* Medido en Maset: cada duda paraba la tarea a preguntar, y la persona contestaba «Continúa donde lo dejaste».
|
|
186
|
+
*/
|
|
187
|
+
trabajoSinPersona?: boolean;
|
|
188
|
+
/**
|
|
189
|
+
* Los conectores MCP del proyecto (Stitch…). El MISMO servicio de Ajustes, que solo tiene la
|
|
190
|
+
* web: ausente —el terminal, `run`, los evals— es que ningún agente recibe sus tools.
|
|
191
|
+
*/
|
|
192
|
+
conectores?: ConectoresPort;
|
|
193
|
+
hilo?: string;
|
|
194
|
+
/**
|
|
195
|
+
* El índice de `xone_navegacion`. Solo para doblarlo en un test: ausente es el REAL, sobre la
|
|
196
|
+
* raíz (`indiceEnDisco`), y la omisión vive aquí y no en quien llama por el patrón de fallo de
|
|
197
|
+
* siempre — compuesta en un cierre que los tests doblan, la tool quedaría escrita y sin montar.
|
|
198
|
+
*/
|
|
199
|
+
navegacion?: CargarIndice;
|
|
200
|
+
/**
|
|
201
|
+
* El simulador. Entra por parámetro, como en deepagents, para que `npm test` siga sin él; en
|
|
202
|
+
* producción lo pasa `abrirSesionReal`, que es quien lo recibe de todas las pieles.
|
|
203
|
+
*/
|
|
204
|
+
verifier?: VerifierPort;
|
|
205
|
+
/** Solo para doblar la traza en un test; ausente es la real (`crearDiagnosticoDeTools`). */
|
|
206
|
+
diagnostico?: DiagnosticoDeTools;
|
|
207
|
+
/** Tope de rondas de aprobación con alguien delante (el de la consola). */
|
|
208
|
+
topeDeRondas?: number;
|
|
209
|
+
/**
|
|
210
|
+
* Que cada especialista recuerde sus encargos anteriores de la sesión (`memoriaDeEspecialistas.ts`).
|
|
211
|
+
* Por omisión SÍ; `XONECODE_SIN_MEMORIA_DE_ESPECIALISTAS=1` lo apaga, para comparar una pasada con y sin ella.
|
|
212
|
+
*/
|
|
213
|
+
memoriaDeEspecialistas?: boolean;
|
|
214
|
+
/**
|
|
215
|
+
* El BUCLE del desarrollador: quien escribe puede llamar por su cuenta a los especialistas que su `.md`
|
|
216
|
+
* declara en `llama` (hoy `device-controller`), y así prueba lo que escribe sin pasar por el orquestador.
|
|
217
|
+
* Apagado por omisión: `XONECODE_BUCLE_DEL_DEVELOPER=1` lo enciende, para compararlo con una pasada sin él.
|
|
218
|
+
*/
|
|
219
|
+
bucleDelDesarrollador?: boolean;
|
|
220
|
+
/**
|
|
221
|
+
* Que un hijo espere al fin de los que su `.md` declara en `espera` cuando el orquestador los lanza a la vez
|
|
222
|
+
* (`esperas.ts`). Por omisión SÍ: es una regla de coherencia, no una palanca de coste.
|
|
223
|
+
*/
|
|
224
|
+
esperasEntreHijos?: boolean;
|
|
225
|
+
/**
|
|
226
|
+
* El crítico VISUAL y el JUEZ del turno, los MISMOS puertos que deepagents
|
|
227
|
+
* (`turnoReal.ts#abrirSesionReal`): llaman a un modelo, así que entran por parámetro y
|
|
228
|
+
* `npm test` no pregunta a nadie. Ausente es «esta ejecución no tiene», nunca «está bien».
|
|
229
|
+
*/
|
|
230
|
+
criticaVisual?: (captura: {
|
|
231
|
+
base64: string;
|
|
232
|
+
mime: string;
|
|
233
|
+
}, pantalla: string) => Promise<{
|
|
234
|
+
veredicto: string;
|
|
235
|
+
observaciones: string[];
|
|
236
|
+
}>;
|
|
237
|
+
juezDelTurno?: (caso: {
|
|
238
|
+
objetivo: string;
|
|
239
|
+
respuesta: string;
|
|
240
|
+
hechos: HechosDelTurno;
|
|
241
|
+
}) => Promise<VeredictoDelTurno>;
|
|
242
|
+
/**
|
|
243
|
+
* La FÁBRICA del puerto de los motores externos (Claude Code, Codex, OpenCode), no el puerto:
|
|
244
|
+
* así un test recibe las opciones que la sesión COMPONE —política, modo, cola, consumo— y las
|
|
245
|
+
* comprueba una a una. Ausente es la real (`crearSubagenteExterno`), y la omisión vive aquí por
|
|
246
|
+
* el patrón de fallo de siempre: compuesta en un cierre que los tests doblan, quedaría escrita.
|
|
247
|
+
*/
|
|
248
|
+
subagenteExterno?: (opciones: ReturnType<typeof opcionesDeSubagenteExterno>) => SubagenteExternoPort;
|
|
249
|
+
/**
|
|
250
|
+
* ¿Las dos trazas opt-in van encendidas sin variable de entorno? Resuelto por quien LLAMA,
|
|
251
|
+
* igual que en deepagents (`turnoReal.ts#abrirSesionReal`) — ver ahí el porqué de que
|
|
252
|
+
* ausente se comporte exactamente como hoy.
|
|
253
|
+
*/
|
|
254
|
+
depurar?: boolean;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* ¿Cambió algún fichero del proyecto (fuera de `.xonecode/`) después de `desde`? Por la hora de modificación del disco,
|
|
258
|
+
* que es lo que vale para los dos motores: un hijo de Claude Code escribe con sus tools y no pasa por las nuestras. Lo
|
|
259
|
+
* que no se puede mirar no cuenta como cambio.
|
|
260
|
+
*/
|
|
261
|
+
export declare function cambioDespuesDe(raiz: string, desde: number): boolean;
|
|
262
|
+
/**
|
|
263
|
+
* `agregarNota` no vive todavía en `SesionReal` (IXCODE-4, Task 6 se la añade ahí como opcional,
|
|
264
|
+
* compartida con deepagents): se ensancha el tipo de retorno AQUÍ, en vez de esperar a esa task,
|
|
265
|
+
* porque una sesión sin ella tipado como `SesionReal` a secas dejaría `s.agregarNota(...)` en
|
|
266
|
+
* rojo bajo `tsc --noEmit` desde este mismo commit. Sigue siendo un `SesionReal` válido en
|
|
267
|
+
* cualquier sitio que lo espere (`turnoReal.ts#abrirSesionReal`), por ser una intersección.
|
|
268
|
+
*/
|
|
269
|
+
export declare function abrirSesionTrueforge(opciones: OpcionesDeSesionTrueforge): Promise<SesionReal & {
|
|
270
|
+
agregarNota(texto: string): void;
|
|
271
|
+
detener(texto: string): void;
|
|
272
|
+
readonly llamadasTiradasPorDetener: number;
|
|
273
|
+
}>;
|
|
@@ -69,7 +69,7 @@ import { leerTareasDelPlan, RUTA_DE_TASKS } from "../../../core/tareasDelPlan.js
|
|
|
69
69
|
import { casanConTitulo, esDeLaMaqueta } from "../../../core/stitch.js";
|
|
70
70
|
import { recibeConectores } from "../../../core/conectores.js";
|
|
71
71
|
import { crearConvertirAP, NOMBRE_CONVERTIR_A_P, recibeConvertirAP } from "./convertirAP.js";
|
|
72
|
-
import { buscarMaqueta, medirContraMaqueta, resumenDeMedida, textoDeMedidaAutomatica, ultimaCaptura } from "./medidaAutomatica.js";
|
|
72
|
+
import { buscarMaqueta, medirContraMaqueta, RONDAS_VISUALES, resumenDeMedida, textoDeMedidaAutomatica, ultimaCaptura } from "./medidaAutomatica.js";
|
|
73
73
|
import { anotarEscritura, capacidadDeInformesDeHijos, esEscrituraBinaria, escrituraConExito, textoDelInforme } from "./informesDeHijos.js";
|
|
74
74
|
import { crearDiagnosticoDeTools } from "../../turno/diagnosticoDeTools.js";
|
|
75
75
|
import { encenderTrazaDeErrores } from "../../trazaDeErroresEnDisco.js";
|
|
@@ -145,6 +145,10 @@ export function textoDeMaquetadorExterno(nombres) {
|
|
|
145
145
|
"diferencias de detalle van en tu resumen final, no en otra vuelta: cada vuelta suya empieza de cero. Si un recurso del",
|
|
146
146
|
"diseñador está mal (proporción, color, un icono equivocado), díselo a él y que lo corrija en esa misma vuelta: puede escribir en",
|
|
147
147
|
"`icons/`, y otra ronda diseñador → desarrollador cuesta dos arranques.",
|
|
148
|
+
"En su encargo NO nombres herramientas de xonecode (`comparar_capturas`, `xone_critica_visual`, `describe_image`,",
|
|
149
|
+
"`device-controller`…): corre en otro proceso y no las tiene, así que las busca o te devuelve que no pudo usarlas. El criterio",
|
|
150
|
+
"visual se lo das como QUÉ tiene que coincidir con la maqueta (su ruta), que él compara mirando la maqueta y su captura; esas",
|
|
151
|
+
"herramientas las pasas TÚ a su vuelta.",
|
|
148
152
|
].join("\n");
|
|
149
153
|
}
|
|
150
154
|
/**
|
|
@@ -325,7 +329,7 @@ export function textoDelBucle(llama, opciones = {}) {
|
|
|
325
329
|
" 14`, display 14»). El de pruebas los hace, lee el log con `xone-log-android --app` y te devuelve cada caso: pasa o falla",
|
|
326
330
|
" con lo que salió. SIN capturas. Corrige todos los fallos juntos y repite solo los que fallaron.",
|
|
327
331
|
"- VISUAL, solo cuando lo funcional pasa: UNA captura por ronda. Con ella el harness te trae la medida contra la maqueta;",
|
|
328
|
-
|
|
332
|
+
` pasa el crítico, arregla TODAS las diferencias en la misma ronda y solo entonces pide otra captura. ${String(RONDAS_VISUALES)} rondas como mucho.`,
|
|
329
333
|
"- Una pantalla que se parece a la maqueta con datos de ejemplo fijos NO está terminada: la lógica tiene que funcionar.",
|
|
330
334
|
"Lo que te devuelva es lo que ha visto, no un permiso para dar el trabajo por bueno: si dice que la app se cae, se cae.",
|
|
331
335
|
"EMPIEZA POR LO MÍNIMO: no escribas la pantalla entera de una vez. Primero la versión más pequeña que se pueda VER y PULSAR",
|
|
@@ -362,11 +366,11 @@ export function textoDelBucle(llama, opciones = {}) {
|
|
|
362
366
|
"Lo que XOne NO puede reproducir no cuenta y no lo persigas: el desenfoque de fondo y las animaciones; una sombra o un",
|
|
363
367
|
"degradado se aproximan con un SVG. La TIPOGRAFÍA del diseño sí: si la maqueta declara una fuente, sus .ttf van a `fonts/`",
|
|
364
368
|
"(pídeselos a designer-xone con los recursos, o tráelos tú con `buscar_fuente`/`traer_fuente`) y se usa con `fontname`;",
|
|
365
|
-
|
|
369
|
+
`para verla en el aparato hay que DESPLEGAR entero. Tienes ${String(RONDAS_VISUALES)} vueltas de corregir y volver a comprobar para`,
|
|
366
370
|
]
|
|
367
371
|
: [
|
|
368
372
|
"Lo que XOne NO puede reproducir no cuenta y no lo persigas: las tipografías del diseño (no hay .ttf), el desenfoque de fondo y",
|
|
369
|
-
|
|
373
|
+
`las animaciones; una sombra o un degradado se aproximan con un SVG. Tienes ${String(RONDAS_VISUALES)} vueltas de corregir y volver a comprobar para`,
|
|
370
374
|
]),
|
|
371
375
|
"llegar; si al agotarlas algo",
|
|
372
376
|
"sigue sin cumplirse, devuelve el trabajo diciendo QUÉ falta, con lo que midieron el crítico y la medida tal cual. Devolver antes",
|
|
@@ -377,6 +381,10 @@ export function textoDelBucle(llama, opciones = {}) {
|
|
|
377
381
|
export function notaDeDelegacion(agentes, opciones = {}) {
|
|
378
382
|
if (agentes.length === 0)
|
|
379
383
|
return "";
|
|
384
|
+
const externos = agentes.filter((a) => a.motor === "claude-code" && a.ejecucion === true && !a.soloLectura).map((a) => a.nombre);
|
|
385
|
+
// Medido en Maset: con el desarrollador en Claude Code, el orquestador copiaba `comparar_capturas` y el crítico en el
|
|
386
|
+
// criterio de su encargo, y el hijo, que no los tiene, volvía diciendo que no pudo usarlos. Su criterio va sin tools.
|
|
387
|
+
const desarrolladorExterno = externos.includes("developer-xone");
|
|
380
388
|
return [
|
|
381
389
|
"NOTA DEL HARNESS: en este entorno NO existe la tool `task`. Se delega con `create_sub_agent`:",
|
|
382
390
|
"`name` es EXACTAMENTE el nombre del especialista y `input` el encargo, autosuficiente —el",
|
|
@@ -385,10 +393,7 @@ export function notaDeDelegacion(agentes, opciones = {}) {
|
|
|
385
393
|
...agentes.map((a) => `- ${a.nombre}: ${fichaDeAgente(a, opciones)}`),
|
|
386
394
|
...(opciones.conComparacion === true ? ["", BUCLE_DE_CALIDAD] : []),
|
|
387
395
|
// Si quien maqueta corre en Claude Code con su shell, el bucle es SUYO: el orquestador no lo repite encima.
|
|
388
|
-
...(()
|
|
389
|
-
const externos = agentes.filter((a) => a.motor === "claude-code" && a.ejecucion === true && !a.soloLectura).map((a) => a.nombre);
|
|
390
|
-
return opciones.conComparacion === true && externos.length > 0 ? ["", textoDeMaquetadorExterno(externos)] : [];
|
|
391
|
-
})(),
|
|
396
|
+
...(opciones.conComparacion === true && externos.length > 0 ? ["", textoDeMaquetadorExterno(externos)] : []),
|
|
392
397
|
...(opciones.conEsperas === true
|
|
393
398
|
? [
|
|
394
399
|
"",
|
|
@@ -401,16 +406,28 @@ export function notaDeDelegacion(agentes, opciones = {}) {
|
|
|
401
406
|
...(opciones.conBucle === true
|
|
402
407
|
? [
|
|
403
408
|
"",
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
+
...(desarrolladorExterno
|
|
410
|
+
? [
|
|
411
|
+
"BUCLE DEL DESARROLLADOR: developer-xone prueba lo que escribe él mismo con su shell (despliega, toca, captura y lee el",
|
|
412
|
+
"log), maqueta y arregla lo visual él mismo —designer-xone solo le hace iconos y fondos SVG—, y corrige hasta cumplir el CRITERIO DE ACEPTACIÓN que le des. Por eso",
|
|
413
|
+
"cada encargo a developer-xone lleva el CRITERIO ESCRITO y COMPROBABLE: qué casillas del plan tiene que dejar comprobadas, qué",
|
|
414
|
+
"tiene que hacer la app, y, si hay diseño, que su captura coincida con la maqueta (di su ruta): ninguna pieza que falte,",
|
|
415
|
+
"el mismo encaje en la pantalla, y sin diferencias de forma ni de estructura. Escrito así, sin nombres de herramientas. No se puede pedir",
|
|
416
|
+
]
|
|
417
|
+
: [
|
|
418
|
+
"BUCLE DEL DESARROLLADOR: developer-xone prueba lo que escribe él mismo, llamando a device-controller (despliega, toca y lee",
|
|
419
|
+
"el log), maqueta y arregla lo visual él mismo —designer-xone solo le hace iconos y fondos SVG—, y corrige hasta cumplir el CRITERIO DE ACEPTACIÓN que le des. Por eso",
|
|
420
|
+
"cada encargo a developer-xone lleva el CRITERIO ESCRITO y MEDIBLE: qué casillas del plan tiene que dejar comprobadas, qué",
|
|
421
|
+
"tiene que hacer la app, y, si hay diseño, que la distancia de `comparar_capturas` quede por debajo del 10 % en vertical y en",
|
|
422
|
+
"horizontal, que ENCAJE en la pantalla (cada borde a un 3 % o menos del de la maqueta) y que el crítico no señale diferencias de forma o de estructura (di dónde está la maqueta). No se puede pedir",
|
|
423
|
+
]),
|
|
409
424
|
opciones.conFuentes === true
|
|
410
425
|
? "lo que XOne no reproduce —el desenfoque de fondo, las animaciones—; la tipografía del diseño sí (sus .ttf a `fonts/`). Sin criterio, devolverá el"
|
|
411
426
|
: "lo que XOne no reproduce —las tipografías del diseño, el desenfoque de fondo, las animaciones—. Sin criterio, devolverá el",
|
|
412
|
-
"trabajo en cuanto funcione. No le encargues a device-controller comprobar SU",
|
|
413
|
-
|
|
427
|
+
desarrolladorExterno ? "trabajo en cuanto funcione." : "trabajo en cuanto funcione. No le encargues a device-controller comprobar SU",
|
|
428
|
+
desarrolladorExterno
|
|
429
|
+
? "No le encargues a designer-xone lo visual de su pantalla (designer-xone no puede tocar un `.xne` ni el CSS): llama tú al diseñador"
|
|
430
|
+
: "trabajo, ni a designer-xone lo visual de su pantalla (designer-xone no puede tocar un `.xne` ni el CSS): llama tú al diseñador",
|
|
414
431
|
"para los RECURSOS que la pantalla necesite, antes del desarrollador. Lo que developer-xone te devuelva es lo que él vio y midió, no un veredicto: el juicio final es tuyo y del arnés.",
|
|
415
432
|
]
|
|
416
433
|
: []),
|