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,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* La `Consola` con la que corre una tarea en background.
|
|
3
|
+
*
|
|
4
|
+
* **Aplica lo que escribe, y aparca lo que necesita a una persona.** Son dos cosas
|
|
5
|
+
* distintas y esa distinción es todo el fichero.
|
|
6
|
+
*
|
|
7
|
+
* **Por qué APLICA** (§0 del diseño, decisión del usuario): la aprobación no estaba por la
|
|
8
|
+
* propiedad del repo, estaba porque XOne ignora en silencio lo desconocido —un atributo
|
|
9
|
+
* inventado no da error sino un bug mudo— y el diff era el único momento en que alguien lo
|
|
10
|
+
* veía antes de que existiera. La autorización de una tarea es el acto de CREARLA: elegir
|
|
11
|
+
* un proyecto y escribir un encargo es decir «trabaja en esto sin preguntarme», y por eso
|
|
12
|
+
* no hay ningún interruptor nuevo que armar — sin tarea creada no hay escritura autónoma
|
|
13
|
+
* posible. El sitio que deja libre el modal lo ocupan el verificador del turno
|
|
14
|
+
* (`turnoReal.ts#conVerificacion`, que corre por este camino igual que por el de una
|
|
15
|
+
* persona — MEDIDO) y el juez de la entrega.
|
|
16
|
+
*
|
|
17
|
+
* **Y NO es el MODO DE ESCRITURA de una sesión** (`core/modoDeEscritura.ts`). Ese dice «el
|
|
18
|
+
* humano que está aquí ha decidido
|
|
19
|
+
* no pulsar» —lo calcula como `interactivo && !eof()`— y aquí no hay nadie aquí: con esta
|
|
20
|
+
* consola devuelve `false` siempre, así que reutilizarlo habría dejado a las tareas sin
|
|
21
|
+
* aplicar nada. Y al revés: la marca del `settings.json` de un proyecto offline no decide
|
|
22
|
+
* sobre las tareas de nadie. Dos autorizaciones distintas, con alcances distintos.
|
|
23
|
+
*
|
|
24
|
+
* **Lo autorizado se DICE**, por dos canales y con los NOMBRES: al transcript (que es lo que
|
|
25
|
+
* lee quien abre la sesión) y por `autorizado`, que el corredor guarda en la tarea. Una
|
|
26
|
+
* escritura que nadie aprueba no puede ser además muda — es la regla del evento `artefacto`
|
|
27
|
+
* y la del aviso de honestidad del modo autónomo, y aquí es el ÚNICO aviso que
|
|
28
|
+
* hay: el de `turnoReal.ts` sale solo por su rama `todoAutomatico`, que este camino no
|
|
29
|
+
* toma. Con los nombres y no un contador, porque un contador a secas es el aviso que enseña
|
|
30
|
+
* a ignorar los avisos.
|
|
31
|
+
*
|
|
32
|
+
* **Lo que se apunta es lo AUTORIZADO, no lo escrito, y de ahí sale el nombre.** La decisión
|
|
33
|
+
* se toma antes de que el backend escriba, así que una ruta que las guardas de ruta rechazan
|
|
34
|
+
* —`/artifacts/`, una vista aplanada, `/.env`— se apunta aquí y no aparece en el disco
|
|
35
|
+
* (medido en el test de este fichero: las cinco se siguen rechazando, unas por el backend y
|
|
36
|
+
* otras por `permisosDe`). En el transcript eso se ve como esta línea seguida de la línea de
|
|
37
|
+
* la tool marcada en ERROR, que es cómo quien lo lee recupera la verdad — y es la razón de
|
|
38
|
+
* que las guardas devuelvan `{error}` en vez de lanzar. Quien dice qué hay en el disco es
|
|
39
|
+
* git, y eso se lee en Revisión con la ref de la sesión. La misma imprecisión tiene
|
|
40
|
+
* `aplicadasSinPreguntar` en `turnoReal.ts`, y por el mismo motivo.
|
|
41
|
+
*
|
|
42
|
+
* **Lo que NO cambia: `preguntar` y `leerSecreto`.** Aplicar una escritura no es contestar
|
|
43
|
+
* por una persona. Hoy una consola de proyecto sin
|
|
44
|
+
* cliente enganchado rechaza toda aprobación en silencio —`consolaWeb.eof()` es
|
|
45
|
+
* `!transporte.conectado()`— y contesta cadena vacía a cada pregunta. Para una tarea
|
|
46
|
+
* autónoma eso es la peor combinación posible: el turno «acaba» y nadie se enteró de que
|
|
47
|
+
* nada se aplicó. Aquí lo que no puede resolverse sin una persona se APARCA con su motivo,
|
|
48
|
+
* que es lo único que hace que el estado «requiere atención» sea verdad.
|
|
49
|
+
*
|
|
50
|
+
* **`aparcar` FUE el único canal, y ya no lo es — son dos, y hacen dos cosas distintas.**
|
|
51
|
+
* Cuando esto se escribió, `EjecutorDeTurno` devolvía `Promise<void>` y `crearEjecutorReal`
|
|
52
|
+
* (`cli/main.ts`) tiraba el retorno de `sesion.turno`, así que el `cortadoPorTope` que sabe
|
|
53
|
+
* que quedaron escrituras sin aplicar no salía de ahí y una tarea que se topaba con una
|
|
54
|
+
* aprobación acababa marcada «terminada». Hoy ese canal existe: el ejecutor devuelve
|
|
55
|
+
* `ResultadoDeTurno | void` (`cli/consola.ts`), `main.ts` lo devuelve y `vestibulo.ts` lo
|
|
56
|
+
* reenvía, y `pendientes` es una de las tres condiciones de la entrega
|
|
57
|
+
* (`core/entrega.ts`). Los dos siguen haciendo falta y no se pisan: **`aparcar` es lo que
|
|
58
|
+
* pasa cuando el turno no puede seguir** —alguien tenía que decidir y no había nadie— y el
|
|
59
|
+
* RESULTADO es lo que el turno cuenta cuando sí acabó. Sin `aparcar`, un turno que se topa
|
|
60
|
+
* con una pregunta se remataría solo; sin el resultado, uno que acaba dejando escrituras
|
|
61
|
+
* colgando se daría por bueno.
|
|
62
|
+
*
|
|
63
|
+
* No se guarda el `interrupt` esperando una decisión: el proceso puede vivir días y morir
|
|
64
|
+
* en medio. La aprobación se retoma al abrir la sesión —`saldarAprobacionesHuerfanas` salda
|
|
65
|
+
* las llamadas colgadas diciendo la verdad, el modelo vuelve a proponer la escritura y ahí
|
|
66
|
+
* ya hay una persona delante—.
|
|
67
|
+
*
|
|
68
|
+
* **Una consola por TURNO.** El «se aparca una vez» de abajo vale por turno porque quien la
|
|
69
|
+
* monta (el corredor, en su `correrTarea`) construye una por turno. Reutilizarla para un
|
|
70
|
+
* segundo turno lo dejaría mudo.
|
|
71
|
+
*/
|
|
72
|
+
import type { Consola } from "../../cli/consola.js";
|
|
73
|
+
import type { Escribir } from "../../cli/stdio.js";
|
|
74
|
+
import type { Piel } from "../../core/turno.js";
|
|
75
|
+
import type { CatalogoModelosPort, Papel } from "../../core/ports.js";
|
|
76
|
+
/**
|
|
77
|
+
* El mensaje que acompaña al rechazo, hermano de `REJECT_MESSAGE` (`vendor/hitl.ts`).
|
|
78
|
+
*
|
|
79
|
+
* **Quién lo usa desde que las escrituras se aplican**: hoy, el corte de `preguntar` — y
|
|
80
|
+
* nada más. La otra rama, la pendiente que NO admite `approve`, es defensiva y **no se
|
|
81
|
+
* alcanza**: `decisionesPermitidas` viene del `reviewConfigs` del interrupt, y el único que
|
|
82
|
+
* los fija en este repo es `perfiles.ts`, que siempre pone `["approve", "reject"]`. Se deja
|
|
83
|
+
* puesta porque aprobar una pendiente que no admite `approve` sería inventarse una decisión
|
|
84
|
+
* que la librería no acepta, y la dirección de fallo ahí tiene que ser rechazar y aparcar
|
|
85
|
+
* —fail-closed— el día que alguien añada una tool que solo ofrezca rechazo. Dicho como
|
|
86
|
+
* defensiva y no como camino vivo a propósito: un comentario que da por ocurrido lo que no
|
|
87
|
+
* ocurre es la trampa que este repo ya ha pagado varias veces.
|
|
88
|
+
*
|
|
89
|
+
* Se copian sus tres cláusulas operativas —no se ejecutó, no lo reintentes, DILO en la
|
|
90
|
+
* respuesta final— porque su docblock describe exactamente el fallo que aquí más duele: un
|
|
91
|
+
* rechazo pelado deja al modelo rematar el turno como si la escritura hubiese quedado
|
|
92
|
+
* lista, y en una tarea de fondo el transcript es lo único que una persona leerá después.
|
|
93
|
+
*
|
|
94
|
+
* Lo que NO se copia es la atribución: el original dice «RECHAZADO por el usuario», y en
|
|
95
|
+
* una tarea de fondo ningún usuario rechazó nada. Ese detalle acabaría en la respuesta
|
|
96
|
+
* final contando un rechazo que nunca hubo, que es la misma clase de mentira que este
|
|
97
|
+
* fichero existe para evitar.
|
|
98
|
+
*/
|
|
99
|
+
export declare const MENSAJE_DE_RECHAZO_DE_TAREA: string;
|
|
100
|
+
/**
|
|
101
|
+
* Se pidió algo que solo una persona puede contestar, y no había ninguna.
|
|
102
|
+
*
|
|
103
|
+
* **Cortar el turno es la única salida honesta de `preguntar`.** No tiene valor de
|
|
104
|
+
* «rechazo»: devuelve una cadena, y cualquier cadena que se devuelva el agente la toma por
|
|
105
|
+
* la respuesta de un humano. La cadena vacía tampoco sirve — `cli/aprobar.ts` la documenta
|
|
106
|
+
* contada a mano: de sus 18 llamadores, 16 la leen como «cancela / usa el valor por
|
|
107
|
+
* omisión», y «usa el valor por omisión» es una decisión que aquí nadie ha tomado. Es
|
|
108
|
+
* además el error que este repo ya declara: «esa cadena vacía sola NO rechaza; aquí decía
|
|
109
|
+
* que sí y era falso».
|
|
110
|
+
*
|
|
111
|
+
* Cortar desde dentro no es un camino nuevo: es lo que hace el «sin humano» de `cli/run.ts`
|
|
112
|
+
* lanzando desde `pedirAprobacion`, y `turnoReal.ts` tiene un `catch` puesto para él.
|
|
113
|
+
* Medido: una excepción desde ahí sale por `sesion.turno` y llega a quien corre el turno.
|
|
114
|
+
* Con `aparcar` llamado ANTES de lanzar, el motivo bueno ya está escrito cuando el corredor
|
|
115
|
+
* recoja el error — y su `motivo ??=` conserva el primero.
|
|
116
|
+
*
|
|
117
|
+
* **La asimetría, dicha para que se encuentre en un `grep` y no en un turno que no cierra:**
|
|
118
|
+
* ese `catch` de `turnoReal.ts` envuelve SOLO la llamada a `pedirAprobacion`, no el cuerpo
|
|
119
|
+
* del bucle. Hoy da igual, y por eso no se ha ampliado: dentro de un turno de tarea las
|
|
120
|
+
* aprobaciones van por `aprobacionesTui`, así que la rama `pedirDecisiones` —la única que
|
|
121
|
+
* usa `Consola.preguntar` dentro del turno— no se toma nunca, y ampliar el `catch` sería
|
|
122
|
+
* código para una hipótesis. Pero si algún día un `preguntar` acaba DENTRO de un turno, la
|
|
123
|
+
* excepción de aquí se saltará ese `catch` y **ese turno se queda sin `piel.fin`**: sin
|
|
124
|
+
* línea de tiempo en stdio y sin plegarse en la web. Entonces hay que ampliarlo al cuerpo
|
|
125
|
+
* del bucle. La tarea sí queda aparcada y con su motivo en los dos casos, que es la
|
|
126
|
+
* propiedad que sostiene todo esto.
|
|
127
|
+
*/
|
|
128
|
+
export declare class ErrorDeTareaSinHumano extends Error {
|
|
129
|
+
constructor(motivo: string);
|
|
130
|
+
}
|
|
131
|
+
export declare function crearConsolaDeTarea(opciones: {
|
|
132
|
+
/** Aparca la tarea con este motivo. Se llama UNA vez por turno. */
|
|
133
|
+
aparcar: (motivo: string) => void;
|
|
134
|
+
/**
|
|
135
|
+
* Las escrituras que se acaban de AUTORIZAR sin que nadie las aprobara, con ruta relativa.
|
|
136
|
+
*
|
|
137
|
+
* «Autorizar» y no «aplicar»: esto se llama cuando se toma la decisión, y el backend
|
|
138
|
+
* puede rechazar la ruta después (ver la cabecera). El nombre del campo donde acaba
|
|
139
|
+
* (`Tarea.autorizadas`) dice lo mismo y por lo mismo.
|
|
140
|
+
*
|
|
141
|
+
* Se llama una vez por TANDA aprobada y no una por turno, al contrario que `aparcar`: un
|
|
142
|
+
* turno aplica en varias rondas de aprobación (medido: cuatro en un turno que insiste), y
|
|
143
|
+
* quedarse con la primera escondería los demás ficheros. Quien lo recoge —el corredor—
|
|
144
|
+
* los acumula y los guarda en la tarea.
|
|
145
|
+
*
|
|
146
|
+
* Opcional porque quien monta esta consola puede no tener dónde guardarlos; entonces lo
|
|
147
|
+
* autorizado se dice igualmente en el transcript, que es lo que no puede faltar.
|
|
148
|
+
*/
|
|
149
|
+
autorizado?: (ficheros: readonly string[]) => void;
|
|
150
|
+
escribir: Escribir;
|
|
151
|
+
/**
|
|
152
|
+
* La piel con la que el turno se pinta. Ausente y `crearEjecutorReal` cae en
|
|
153
|
+
* `crearPielStdio(escribir)`, que es texto de consola metido en actos `sistema`: la sesión
|
|
154
|
+
* de la tarea se guarda, pero degradada — sin actos de asistente, ni de razonamiento, ni
|
|
155
|
+
* las tarjetas de artefacto, o sea una pared de líneas grises donde debería leerse una
|
|
156
|
+
* conversación. Quien la monte debería pasarle la piel de la consola de PROYECTO, que es
|
|
157
|
+
* la que sabe hacer actos de verdad; entra por aquí y no se construye dentro porque esta
|
|
158
|
+
* capa no conoce el transporte de esa consola.
|
|
159
|
+
*/
|
|
160
|
+
piel?: () => Piel;
|
|
161
|
+
catalogoModelos: CatalogoModelosPort;
|
|
162
|
+
guardarModeloGlobal: (papel: Papel, id: string) => {
|
|
163
|
+
ruta: string;
|
|
164
|
+
id: string;
|
|
165
|
+
};
|
|
166
|
+
}): Consola;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { type MensajeAlCliente, type MensajeDelCliente, type Sumidero } from "./transporte.js";
|
|
2
|
+
import type { Acto, ConsumoDeTurno } from "../../core/actos.js";
|
|
3
|
+
import { type Consola } from "../../cli/consola.js";
|
|
4
|
+
import { type CatalogoModelosPort } from "../../core/ports.js";
|
|
5
|
+
export interface OpcionesDeConsolaWeb {
|
|
6
|
+
/** Inyectable para poder probar el vencimiento sin esperarlo de verdad. */
|
|
7
|
+
msDeEspera?: number;
|
|
8
|
+
/** El reloj con que se fechan los mensajes y las respuestas (IXCODE-24). Inyectable para los tests. */
|
|
9
|
+
ahora?: () => number;
|
|
10
|
+
catalogoModelos?: CatalogoModelosPort;
|
|
11
|
+
guardarModeloGlobal?: Consola["guardarModeloGlobal"];
|
|
12
|
+
/**
|
|
13
|
+
* Lo consumido ACUMULADO por la sesión, si consta. Entra por opción y no se lee de ningún
|
|
14
|
+
* cierre de aquí por el mismo motivo que los modelos: quien conoce la sesión es el
|
|
15
|
+
* vestíbulo, y este módulo no sabe de ninguna.
|
|
16
|
+
*
|
|
17
|
+
* La piel lo consulta al cerrar cada turno para estampar su DELTA en el acto `fin`, que es
|
|
18
|
+
* de donde una sesión reabierta saca sus totales. Ausente = no se persiste consumo y los
|
|
19
|
+
* `fin` salen sin él, que es «no consta».
|
|
20
|
+
*/
|
|
21
|
+
consumoAcumulado?: () => ConsumoDeTurno | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Si hay un turno en marcha, intenta apuntar el texto AHÍ en vez de encolarlo como línea
|
|
24
|
+
* nueva (IXCODE-4). `true` si lo consumió así — `recibir` no encola nada más—; `false` o
|
|
25
|
+
* ausente y `recibir` sigue el camino de hoy. Quien inyecta esto (`vestibulo.ts`) es quien
|
|
26
|
+
* sabe si hay turno en vuelo y tiene la sesión real; este módulo no sabe de ninguna.
|
|
27
|
+
*/
|
|
28
|
+
notaMientrasTrabaja?: (texto: string) => boolean;
|
|
29
|
+
/** El botón DETENER y replanificar (IXCODE-4), con el mismo contrato que `notaMientrasTrabaja`:
|
|
30
|
+
* `true` si se aplicó al turno en marcha; `false` o ausente y la prosa sigue como siempre. */
|
|
31
|
+
detenerMientrasTrabaja?: (texto: string) => boolean;
|
|
32
|
+
/**
|
|
33
|
+
* IXCODE-7: compone el texto con el inventario de los adjuntos del mensaje —
|
|
34
|
+
* `conAdjuntos(texto, listarAdjuntosDeSesion(raiz, idDeHilo, nombres), "mensaje")`—. Lo
|
|
35
|
+
* construye el vestíbulo, que es quien sabe la raíz del proyecto y el id de la sesión; este
|
|
36
|
+
* módulo no toca disco. Ausente = la prosa con adjuntos viaja tal cual, como hoy (y entonces
|
|
37
|
+
* NINGÚN nombre se afirma: sin poder comprobar el disco no hay nada que prometer).
|
|
38
|
+
*
|
|
39
|
+
* **Devuelve `adjuntos`, los nombres que DE VERDAD encontró** (`listarAdjuntosDeSesion` ya
|
|
40
|
+
* filtra a los que existen, en el orden pedido) — no los `nombres` que se le pasaron. Ronda
|
|
41
|
+
* de arreglo 1/5: un nombre bien formado que nunca se subió pasaba la lista blanca de forma
|
|
42
|
+
* (`nombreDeAdjuntoAceptable`) y el acto de usuario afirmaba un adjunto que el agente nunca
|
|
43
|
+
* vio, porque `listarAdjuntosDeSesion` no lo encontraba. El acto ahora se anota SOLO con lo
|
|
44
|
+
* que esta función confirmó.
|
|
45
|
+
*/
|
|
46
|
+
conAdjuntosDelMensaje?: (texto: string, nombres: readonly string[]) => {
|
|
47
|
+
texto: string;
|
|
48
|
+
adjuntos: string[];
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export interface ConsolaWeb {
|
|
52
|
+
/**
|
|
53
|
+
* Mete una línea en la cola del lazo SIN acto de usuario. Es para lo que dispara un
|
|
54
|
+
* control de la interfaz, no una persona: `recibir({clase:"prosa"})` anota un acto de
|
|
55
|
+
* usuario —y debe: el transcript se le debe a quien escribió la petición—, pero un botón
|
|
56
|
+
* no escribió nada.
|
|
57
|
+
*
|
|
58
|
+
* No es un mensaje del cable: el cliente manda la INTENCIÓN (`clase: "modelo"`) y es el
|
|
59
|
+
* servidor quien decide que aplicarla es reusar el manejador de `COMANDOS`.
|
|
60
|
+
*/
|
|
61
|
+
/** Dice si hay turno en vuelo. Lo llama el envoltorio del ejecutor (`vestibulo.ts`), que
|
|
62
|
+
* es el único que sabe cuándo empieza y cuándo acaba. */
|
|
63
|
+
/** `detenible`: el turno en marcha admite DETENER y replanificar (el botón se pinta). */
|
|
64
|
+
turno(activo: boolean, detenible?: boolean): void;
|
|
65
|
+
/**
|
|
66
|
+
* Encola una línea COMO COMANDO, que es como el servidor aplica `/modelo`, `/aprobacion` o
|
|
67
|
+
* `/sync` sin que nadie teclee la sintaxis.
|
|
68
|
+
*
|
|
69
|
+
* `sustituye` es la CLAVE de un control que refleja un ESTADO: si ya hay otra pendiente con
|
|
70
|
+
* la misma clave, aquélla se retira. Opcional a propósito — ver `LineaDeConsola`.
|
|
71
|
+
*/
|
|
72
|
+
encolar(linea: string, sustituye?: string): void;
|
|
73
|
+
consola: Consola;
|
|
74
|
+
/** Un mensaje del navegador, tal cual llega por `POST /accion`. */
|
|
75
|
+
recibir(mensaje: MensajeDelCliente): void;
|
|
76
|
+
/**
|
|
77
|
+
* La `respuesta` de un MÓVIL de la sesión remota. No es `recibir`: al móvil solo le llega una
|
|
78
|
+
* `pregunta` SIN `decision` (`core/remoto.ts#filtrarSalida`), así que su respuesta solo puede
|
|
79
|
+
* contestar una de ésas — nunca la subida con casillas ni «¿Vaciar la copia…?», que el
|
|
80
|
+
* escritorio tiene abiertas y el móvil no ha visto. `false` = no había ninguna que contestar
|
|
81
|
+
* y no se ha tocado nada.
|
|
82
|
+
*/
|
|
83
|
+
responderDesdeElMovil(texto: string): boolean;
|
|
84
|
+
/** El cliente abre el SSE; devuelve los actos con los que hay que reemitirle el transcript. */
|
|
85
|
+
conectar(enviar?: Sumidero): readonly Acto[];
|
|
86
|
+
/**
|
|
87
|
+
* Alguien MIRA lo que esta consola pinta sin ser su cliente: la vista en vivo de una tarea
|
|
88
|
+
* de fondo. Devuelve el transcript de ese instante, como `conectar`.
|
|
89
|
+
*
|
|
90
|
+
* **No es `conectar`, y esa es toda la razón de que exista.** `eof()` es
|
|
91
|
+
* `!transporte.conectado()`, así que un `conectar` de más le diría a esta consola que hay
|
|
92
|
+
* un humano al que preguntar — y en la consola de una tarea eso es falso por
|
|
93
|
+
* construcción: la vista es de solo lectura, no tiene compositor, y nadie puede contestar
|
|
94
|
+
* una pregunta ni aprobar una escritura desde ahí. Medido antes de escribirlo: con
|
|
95
|
+
* `conectar`, el `eof()` de la consola de una tarea pasaba de `true` a `false`. Ver
|
|
96
|
+
* `Transporte.mirar` para lo que un mirón recibe (solo el transcript) y lo que no.
|
|
97
|
+
*/
|
|
98
|
+
mirar(enviar: Sumidero): readonly Acto[];
|
|
99
|
+
/** Se va UN mirón, y los demás siguen. */
|
|
100
|
+
dejarDeMirar(enviar: Sumidero): void;
|
|
101
|
+
/** Se va UN cliente (el sumidero que se pasa) o todos (sin argumento). Ver `Transporte`. */
|
|
102
|
+
desconectar(enviar?: Sumidero): void;
|
|
103
|
+
/** El cable se muda a otra consola: suelta los sumideros sin dar por ido al humano. Ver
|
|
104
|
+
* `Transporte.soltar`, que es donde está la diferencia y por qué importa. */
|
|
105
|
+
soltar(enviar?: Sumidero): void;
|
|
106
|
+
/** Agota `lineas` (EOF) para que el lazo de `correrConsola` RETORNE, y corta el cliente. */
|
|
107
|
+
cerrar(): void;
|
|
108
|
+
actos(): readonly Acto[];
|
|
109
|
+
/**
|
|
110
|
+
* Cuántos actos del principio de `actos()` ya NO pueden cambiar: los de antes del último acto de
|
|
111
|
+
* la PIEL, que es el único que se sustituye (el cierre de una racha de tools, un parcial). Es lo
|
|
112
|
+
* que se puede volcar a disco A MITAD de turno sin escribir dos versiones del mismo acto ni
|
|
113
|
+
* desordenar el `.jsonl`.
|
|
114
|
+
*/
|
|
115
|
+
estables(): number;
|
|
116
|
+
/** Apunta un acto que no viene ni de la piel ni de un comando: lo que el SERVIDOR resolvió por un
|
|
117
|
+
* botón (una propuesta de tareas encolada o descartada). Se emite y entra en el transcript. */
|
|
118
|
+
anotar(acto: Acto): void;
|
|
119
|
+
eventosEmitidos(): readonly MensajeAlCliente[];
|
|
120
|
+
/**
|
|
121
|
+
* Las aprobaciones EN VUELO, y solo esas. Es el único sitio con contenido de fichero y
|
|
122
|
+
* diff, y se suelta en cuanto hay decisión: pasado ese momento nada de lo que el humano
|
|
123
|
+
* miró sigue en memoria, ni se persiste, ni se reemite al reconectar.
|
|
124
|
+
*/
|
|
125
|
+
mensajesDeAprobacion(): readonly MensajeAlCliente[];
|
|
126
|
+
/**
|
|
127
|
+
* ¿Hay una pregunta de TEXTO LIBRE esperando a alguien? Las que llevan una `decision` (la
|
|
128
|
+
* subida, «¿Vaciar la copia…?») no cuentan: son diálogos del escritorio, no una pregunta
|
|
129
|
+
* del hilo, y son las mismas que `responderDesdeElMovil` no contesta.
|
|
130
|
+
*/
|
|
131
|
+
hayPreguntaDeTextoPendiente(): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Se avisa cuando NACE o TERMINA una aprobación en vuelo, y cuando nace o termina una
|
|
134
|
+
* pregunta de texto libre (las de `decision` no avisan, por lo mismo que no cuentan arriba).
|
|
135
|
+
* Termina de cualquier forma: contestada, vencida o porque se fue el último cliente. El aviso
|
|
136
|
+
* no dice qué cambió: quien escucha vuelve a preguntar (`mensajesDeAprobacion`,
|
|
137
|
+
* `hayPreguntaDeTextoPendiente`), que en el instante del aviso ya dicen lo nuevo. Devuelve
|
|
138
|
+
* con qué darse de baja.
|
|
139
|
+
*/
|
|
140
|
+
alCambiarEspera(oyente: () => void): () => void;
|
|
141
|
+
}
|
|
142
|
+
export declare function crearConsolaWeb(opciones?: OpcionesDeConsolaWeb): ConsolaWeb;
|