xonecode 0.38.44 → 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.
Files changed (323) hide show
  1. package/dist/agent/cloudstudio/cloudstudioClient.d.ts +29 -0
  2. package/dist/agent/cloudstudio/cloudstudioMcp.d.ts +414 -0
  3. package/dist/agent/cloudstudio/conexionDeServidor.d.ts +37 -0
  4. package/dist/agent/cloudstudio/conexionDeServidor.js +63 -0
  5. package/dist/agent/cloudstudio/conexionDeServidor.js.map +1 -0
  6. package/dist/agent/cloudstudio/crearRama.d.ts +15 -0
  7. package/dist/agent/cloudstudio/crearRama.js +16 -0
  8. package/dist/agent/cloudstudio/crearRama.js.map +1 -0
  9. package/dist/agent/cloudstudio/descarga.d.ts +44 -0
  10. package/dist/agent/cloudstudio/manifiesto.d.ts +25 -0
  11. package/dist/agent/cloudstudio/ramaActiva.d.ts +24 -0
  12. package/dist/agent/cloudstudio/subida.d.ts +61 -0
  13. package/dist/agent/cloudstudio/subida.js +7 -1
  14. package/dist/agent/cloudstudio/subida.js.map +1 -1
  15. package/dist/agent/cloudstudio/validarTrasDescarga.d.ts +13 -0
  16. package/dist/agent/cloudstudio/zip.d.ts +13 -0
  17. package/dist/agent/conectores/conectoresEnDisco.d.ts +47 -0
  18. package/dist/agent/conectores/gestorJira.d.ts +50 -0
  19. package/dist/agent/conectores/gestorNotion.d.ts +45 -0
  20. package/dist/agent/conectores/proveedorDeConector.d.ts +43 -0
  21. package/dist/agent/conectores/servicioDeConectores.d.ts +112 -0
  22. package/dist/agent/config/authEnDisco.d.ts +43 -0
  23. package/dist/agent/config/catalogoModelos.d.ts +79 -0
  24. package/dist/agent/config/configEnDisco.d.ts +235 -0
  25. package/dist/agent/config/crearProyecto.d.ts +20 -0
  26. package/dist/agent/config/diagnosticoDeNodeEnMaquina.d.ts +44 -0
  27. package/dist/agent/config/ecoDeRazonamiento.d.ts +104 -0
  28. package/dist/agent/config/entorno.d.ts +83 -0
  29. package/dist/agent/config/fuentesEnRed.d.ts +12 -0
  30. package/dist/agent/config/gemini.d.ts +5 -0
  31. package/dist/agent/config/iconosEnRed.d.ts +10 -0
  32. package/dist/agent/config/identidadEnDisco.d.ts +27 -0
  33. package/dist/agent/config/modelos.d.ts +77 -0
  34. package/dist/agent/config/modelosDeMotor.d.ts +52 -0
  35. package/dist/agent/config/mudanzaEnDisco.d.ts +99 -0
  36. package/dist/agent/config/persona.d.ts +1 -0
  37. package/dist/agent/config/selectorEnMaquina.d.ts +35 -0
  38. package/dist/agent/config/settingsEnDisco.d.ts +206 -0
  39. package/dist/agent/config/versionEnDisco.d.ts +17 -0
  40. package/dist/agent/dispositivos/arranqueDeEmulador.d.ts +60 -0
  41. package/dist/agent/dispositivos/cajasDeMaqueta.d.ts +61 -0
  42. package/dist/agent/dispositivos/decodificarImagen.d.ts +21 -0
  43. package/dist/agent/dispositivos/descargaDeHerramientas.d.ts +44 -0
  44. package/dist/agent/dispositivos/dispositivosEnMaquina.d.ts +161 -0
  45. package/dist/agent/dispositivos/geometriaEnDisco.d.ts +17 -0
  46. package/dist/agent/dispositivos/hotswap.d.ts +194 -0
  47. package/dist/agent/dispositivos/instalacionEnMaquina.d.ts +156 -0
  48. package/dist/agent/dispositivos/juezVisual.d.ts +144 -0
  49. package/dist/agent/dispositivos/lanzamientoEnMaquina.d.ts +197 -0
  50. package/dist/agent/dispositivos/paqueteDelProyecto.d.ts +28 -0
  51. package/dist/agent/dispositivos/procesosEnMaquina.d.ts +154 -0
  52. package/dist/agent/dispositivos/recargaEnAparato.d.ts +30 -0
  53. package/dist/agent/dispositivos/sensorDeArranque.d.ts +42 -0
  54. package/dist/agent/exportarPdf.d.ts +72 -0
  55. package/dist/agent/grafo/aprendido.d.ts +28 -0
  56. package/dist/agent/grafo/arbolDeProyecto.d.ts +205 -0
  57. package/dist/agent/grafo/artefactosEnDisco.d.ts +35 -0
  58. package/dist/agent/grafo/atributosXone.d.ts +31 -0
  59. package/dist/agent/grafo/buscarIcono.d.ts +32 -0
  60. package/dist/agent/grafo/busquedaRegex.d.ts +56 -0
  61. package/dist/agent/grafo/codificacionDelProyecto.d.ts +7 -0
  62. package/dist/agent/grafo/compararCapturas.d.ts +22 -0
  63. package/dist/agent/grafo/copiarArtefacto.d.ts +64 -0
  64. package/dist/agent/grafo/criticaVisual.d.ts +60 -0
  65. package/dist/agent/grafo/describirImagen.d.ts +79 -0
  66. package/dist/agent/grafo/diferenciaDeCapturas.d.ts +33 -0
  67. package/dist/agent/grafo/ejecucionCancelable.d.ts +45 -0
  68. package/dist/agent/grafo/escriturasEnSerie.d.ts +31 -0
  69. package/dist/agent/grafo/excluirTools.d.ts +37 -0
  70. package/dist/agent/grafo/fuentesDeGoogle.d.ts +37 -0
  71. package/dist/agent/grafo/generarFondoSvg.d.ts +52 -0
  72. package/dist/agent/grafo/incorporarAdjunto.d.ts +98 -0
  73. package/dist/agent/grafo/lectorDeReferencias.d.ts +28 -0
  74. package/dist/agent/grafo/marcarCriteriosDelPlan.d.ts +47 -0
  75. package/dist/agent/grafo/memoriaDeProyecto.d.ts +15 -0
  76. package/dist/agent/grafo/navegacionXone.d.ts +60 -0
  77. package/dist/agent/grafo/opcionesDeFicheros.d.ts +23 -0
  78. package/dist/agent/grafo/perfiles.d.ts +225 -0
  79. package/dist/agent/grafo/proyecto.d.ts +450 -0
  80. package/dist/agent/grafo/skills.d.ts +181 -0
  81. package/dist/agent/grafo/traerDeLaMaquina.d.ts +60 -0
  82. package/dist/agent/grafo/unirSecciones.d.ts +20 -0
  83. package/dist/agent/grafo/validacionXone.d.ts +35 -0
  84. package/dist/agent/grafo/validarFicheroXone.d.ts +33 -0
  85. package/dist/agent/grafo/xoneAgent.d.ts +166 -0
  86. package/dist/agent/motores/motoresLocales.d.ts +87 -0
  87. package/dist/agent/motores/trueforge/capacidades.d.ts +183 -0
  88. package/dist/agent/motores/trueforge/convertirAP.d.ts +38 -0
  89. package/dist/agent/motores/trueforge/detencion.d.ts +70 -0
  90. package/dist/agent/motores/trueforge/esperas.d.ts +38 -0
  91. package/dist/agent/motores/trueforge/eventosTrueforge.d.ts +56 -0
  92. package/dist/agent/motores/trueforge/informesDeHijos.d.ts +48 -0
  93. package/dist/agent/motores/trueforge/medidaAutomatica.d.ts +37 -0
  94. package/dist/agent/motores/trueforge/memoriaDeEspecialistas.d.ts +60 -0
  95. package/dist/agent/motores/trueforge/memoriaTrueforge.d.ts +131 -0
  96. package/dist/agent/motores/trueforge/metricasTrueforge.d.ts +45 -0
  97. package/dist/agent/motores/trueforge/modeloExterno.d.ts +9 -0
  98. package/dist/agent/motores/trueforge/modeloLangchain.d.ts +69 -0
  99. package/dist/agent/motores/trueforge/notas.d.ts +48 -0
  100. package/dist/agent/motores/trueforge/proponerTareas.d.ts +30 -0
  101. package/dist/agent/motores/trueforge/recortes.d.ts +47 -0
  102. package/dist/agent/motores/trueforge/resumenSeguro.d.ts +33 -0
  103. package/dist/agent/motores/trueforge/sesionTrueforge.d.ts +273 -0
  104. package/dist/agent/motores/trueforge/skillsTrueforge.d.ts +16 -0
  105. package/dist/agent/motores/trueforge/toolsDeConectores.d.ts +36 -0
  106. package/dist/agent/motores/trueforge/toolsDeFichero.d.ts +146 -0
  107. package/dist/agent/motores/trueforge/toolsPropias.d.ts +38 -0
  108. package/dist/agent/motores/trueforge/traerDeStitch.d.ts +63 -0
  109. package/dist/agent/motores/trueforge/trueforge.d.ts +35 -0
  110. package/dist/agent/navegacion/estilosEnDisco.d.ts +41 -0
  111. package/dist/agent/navegacion/hechosEnDisco.d.ts +19 -0
  112. package/dist/agent/navegacion/indiceEnDisco.d.ts +50 -0
  113. package/dist/agent/navegacion/modeloDeProyecto.d.ts +86 -0
  114. package/dist/agent/planesEnDisco.d.ts +18 -0
  115. package/dist/agent/publicarPlan.d.ts +20 -0
  116. package/dist/agent/raizDelPaquete.d.ts +9 -0
  117. package/dist/agent/remoto/ngrokEnMaquina.d.ts +44 -0
  118. package/dist/agent/remoto/puenteWebSocket.d.ts +59 -0
  119. package/dist/agent/remoto/tunelNgrok.d.ts +31 -0
  120. package/dist/agent/renombrarSobre.d.ts +14 -0
  121. package/dist/agent/sesiones/adjuntosDeSesion.d.ts +64 -0
  122. package/dist/agent/sesiones/baseDeFichero.d.ts +9 -0
  123. package/dist/agent/sesiones/checkpointer.d.ts +146 -0
  124. package/dist/agent/sesiones/git.d.ts +66 -0
  125. package/dist/agent/sesiones/gitSync.d.ts +264 -0
  126. package/dist/agent/sesiones/memoriaDeHilo.d.ts +4 -0
  127. package/dist/agent/sesiones/modeloDelCambio.d.ts +7 -0
  128. package/dist/agent/sesiones/parcheEnTexto.d.ts +9 -0
  129. package/dist/agent/sesiones/sesionGit.d.ts +155 -0
  130. package/dist/agent/subagentes/actividadDeCodex.d.ts +8 -0
  131. package/dist/agent/subagentes/agentesEnDisco.d.ts +198 -0
  132. package/dist/agent/subagentes/consumoExterno.d.ts +83 -0
  133. package/dist/agent/subagentes/ejecutableEnWindows.d.ts +53 -0
  134. package/dist/agent/subagentes/escrituraDeCodex.d.ts +94 -0
  135. package/dist/agent/subagentes/escrituraDeOpencode.d.ts +67 -0
  136. package/dist/agent/subagentes/escrituraExterna.d.ts +419 -0
  137. package/dist/agent/subagentes/pluginDeSkills.d.ts +84 -0
  138. package/dist/agent/subagentes/subagenteCodex.d.ts +76 -0
  139. package/dist/agent/subagentes/subagenteExterno.d.ts +169 -0
  140. package/dist/agent/subagentes/subagenteOpencode.d.ts +126 -0
  141. package/dist/agent/tareas/aumentador.d.ts +99 -0
  142. package/dist/agent/tareas/juezDeTarea.d.ts +64 -0
  143. package/dist/agent/tareas/reflejoEnElGestor.d.ts +38 -0
  144. package/dist/agent/tareas/sondeoDelGestor.d.ts +49 -0
  145. package/dist/agent/tareas/tareasEnDisco.d.ts +141 -0
  146. package/dist/agent/trazaDeErroresEnDisco.d.ts +10 -0
  147. package/dist/agent/turno/depuracion.d.ts +1 -0
  148. package/dist/agent/turno/diagnosticoDeTools.d.ts +124 -0
  149. package/dist/agent/turno/ficherosDelProyecto.d.ts +10 -0
  150. package/dist/agent/turno/guionizado.d.ts +18 -0
  151. package/dist/agent/turno/informeDeTraza.d.ts +220 -0
  152. package/dist/agent/turno/inspectorDePrompt.d.ts +150 -0
  153. package/dist/agent/turno/instantanea.d.ts +16 -0
  154. package/dist/agent/turno/interrupts.d.ts +54 -0
  155. package/dist/agent/turno/juezDelTurnoConModelo.d.ts +26 -0
  156. package/dist/agent/turno/mensajes.d.ts +23 -0
  157. package/dist/agent/turno/normalizar.d.ts +15 -0
  158. package/dist/agent/turno/puente.d.ts +196 -0
  159. package/dist/agent/turno/registroDeFallos.d.ts +39 -0
  160. package/dist/agent/turno/resumenDeContexto.d.ts +269 -0
  161. package/dist/agent/turno/resumenDeTool.d.ts +33 -0
  162. package/dist/agent/turno/rubrica.d.ts +35 -0
  163. package/dist/agent/turno/sesionReal.d.ts +89 -0
  164. package/dist/agent/turno/textoDeTool.d.ts +19 -0
  165. package/dist/agent/turno/turnoReal.d.ts +210 -0
  166. package/dist/agent/turno/verificacion.d.ts +85 -0
  167. package/dist/agent/turno/verificador.d.ts +66 -0
  168. package/dist/bin.d.ts +2 -0
  169. package/dist/cli/acuseDeModelo.d.ts +18 -0
  170. package/dist/cli/aprobar.d.ts +162 -0
  171. package/dist/cli/config.d.ts +17 -0
  172. package/dist/cli/consola.d.ts +473 -0
  173. package/dist/cli/describe.d.ts +7 -0
  174. package/dist/cli/doctor.d.ts +8 -0
  175. package/dist/cli/fuentesDeDisco.d.ts +25 -0
  176. package/dist/cli/main.d.ts +291 -0
  177. package/dist/cli/markdown.d.ts +126 -0
  178. package/dist/cli/panel.d.ts +38 -0
  179. package/dist/cli/podar.d.ts +38 -0
  180. package/dist/cli/run.d.ts +30 -0
  181. package/dist/cli/spinner.d.ts +37 -0
  182. package/dist/cli/stdio.d.ts +94 -0
  183. package/dist/cli/tema.d.ts +68 -0
  184. package/dist/cli/tokens.d.ts +16 -0
  185. package/dist/cli/traza.d.ts +19 -0
  186. package/dist/cli/tui/app.d.ts +23 -0
  187. package/dist/cli/tui/aprobarTui.d.ts +46 -0
  188. package/dist/cli/tui/barra.d.ts +43 -0
  189. package/dist/cli/tui/correrTui.d.ts +119 -0
  190. package/dist/cli/tui/entrada.d.ts +14 -0
  191. package/dist/cli/tui/filas.d.ts +13 -0
  192. package/dist/cli/tui/logo.d.ts +20 -0
  193. package/dist/cli/tui/pielTui.d.ts +15 -0
  194. package/dist/cli/tui/raton.d.ts +68 -0
  195. package/dist/cli/tui/sidebar.d.ts +63 -0
  196. package/dist/cli/tui/store.d.ts +102 -0
  197. package/dist/cli/tui/tarjeta.d.ts +8 -0
  198. package/dist/cli/tui/temaInk.d.ts +67 -0
  199. package/dist/cli/tui/transcript.d.ts +32 -0
  200. package/dist/cli/verify.d.ts +9 -0
  201. package/dist/cli/wizardInicial.d.ts +59 -0
  202. package/dist/core/actos.d.ts +437 -0
  203. package/dist/core/adjuntos.d.ts +77 -0
  204. package/dist/core/agentes.d.ts +353 -0
  205. package/dist/core/analisisDeSesion.d.ts +63 -0
  206. package/dist/core/aprendido.d.ts +41 -0
  207. package/dist/core/artefactos.d.ts +74 -0
  208. package/dist/core/atributosXone.d.ts +53 -0
  209. package/dist/core/bitacora.d.ts +21 -0
  210. package/dist/core/cloudstudio.d.ts +168 -0
  211. package/dist/core/codificacion.d.ts +81 -0
  212. package/dist/core/comandoExterno.d.ts +49 -0
  213. package/dist/core/compararCapturas.d.ts +136 -0
  214. package/dist/core/conectores.d.ts +296 -0
  215. package/dist/core/config.d.ts +148 -0
  216. package/dist/core/contextos.d.ts +54 -0
  217. package/dist/core/convertirAP.d.ts +56 -0
  218. package/dist/core/copiaDeAvd.d.ts +44 -0
  219. package/dist/core/cssBienFormado.d.ts +22 -0
  220. package/dist/core/deps.d.ts +28 -0
  221. package/dist/core/descargas.d.ts +61 -0
  222. package/dist/core/descripcionDePantalla.d.ts +121 -0
  223. package/dist/core/descriptoresDeApp.d.ts +108 -0
  224. package/dist/core/diagnosticoDeNode.d.ts +51 -0
  225. package/dist/core/diff.d.ts +26 -0
  226. package/dist/core/diffDeColecciones.d.ts +54 -0
  227. package/dist/core/disenoVinculado.d.ts +17 -0
  228. package/dist/core/dispositivoDeSesion.d.ts +22 -0
  229. package/dist/core/dispositivoElegido.d.ts +17 -0
  230. package/dist/core/dispositivos.d.ts +469 -0
  231. package/dist/core/entrega.d.ts +341 -0
  232. package/dist/core/entrelazar.d.ts +48 -0
  233. package/dist/core/esfuerzo.d.ts +120 -0
  234. package/dist/core/esqueleto.d.ts +38 -0
  235. package/dist/core/estiloMedido.d.ts +70 -0
  236. package/dist/core/estilos.d.ts +76 -0
  237. package/dist/core/events.d.ts +218 -0
  238. package/dist/core/exportacion.d.ts +88 -0
  239. package/dist/core/fallos.d.ts +79 -0
  240. package/dist/core/fondosSvg.d.ts +115 -0
  241. package/dist/core/fotoDeColecciones.d.ts +45 -0
  242. package/dist/core/fuentes.d.ts +96 -0
  243. package/dist/core/geometriaDePantalla.d.ts +171 -0
  244. package/dist/core/gestorDeTareas.d.ts +295 -0
  245. package/dist/core/hechosDelProyecto.d.ts +70 -0
  246. package/dist/core/hotswap.d.ts +30 -0
  247. package/dist/core/iconos.d.ts +86 -0
  248. package/dist/core/identidadDeProveedor.d.ts +20 -0
  249. package/dist/core/idiomaDeLaRespuesta.d.ts +26 -0
  250. package/dist/core/imagenesDeDocumento.d.ts +40 -0
  251. package/dist/core/jsParaRhino.d.ts +3 -0
  252. package/dist/core/juezDelTurno.d.ts +95 -0
  253. package/dist/core/logDeDispositivo.d.ts +67 -0
  254. package/dist/core/memoria.d.ts +18 -0
  255. package/dist/core/metodoDeComparacionVisual.d.ts +20 -0
  256. package/dist/core/modelos.d.ts +198 -0
  257. package/dist/core/modoDeEscritura.d.ts +155 -0
  258. package/dist/core/motor.d.ts +43 -0
  259. package/dist/core/motoresLocales.d.ts +113 -0
  260. package/dist/core/mudanzaDeWorkspace.d.ts +112 -0
  261. package/dist/core/navegacion.d.ts +172 -0
  262. package/dist/core/notify.d.ts +77 -0
  263. package/dist/core/nucleoXone.d.ts +28 -0
  264. package/dist/core/panorama.d.ts +68 -0
  265. package/dist/core/paqueteDeSoporte.d.ts +100 -0
  266. package/dist/core/planDeSubida.d.ts +56 -0
  267. package/dist/core/planes.d.ts +53 -0
  268. package/dist/core/podaDeCheckpoint.d.ts +75 -0
  269. package/dist/core/ports.d.ts +1034 -0
  270. package/dist/core/puedeLanzarse.d.ts +181 -0
  271. package/dist/core/puertosDeAvd.d.ts +59 -0
  272. package/dist/core/recargaEnCaliente.d.ts +52 -0
  273. package/dist/core/referenciasDeImagen.d.ts +36 -0
  274. package/dist/core/remoto.d.ts +76 -0
  275. package/dist/core/repartoDeEncargo.d.ts +80 -0
  276. package/dist/core/rubrica.d.ts +78 -0
  277. package/dist/core/rutaVirtual.d.ts +29 -0
  278. package/dist/core/selectorDeCarpeta.d.ts +59 -0
  279. package/dist/core/serieDeEscrituras.d.ts +58 -0
  280. package/dist/core/settings.d.ts +421 -0
  281. package/dist/core/shellDeAgente.d.ts +177 -0
  282. package/dist/core/skills.d.ts +129 -0
  283. package/dist/core/stitch.d.ts +114 -0
  284. package/dist/core/tareas.d.ts +412 -0
  285. package/dist/core/tareasDelPlan.d.ts +123 -0
  286. package/dist/core/tareasEnElGestor.d.ts +117 -0
  287. package/dist/core/textos.d.ts +8 -0
  288. package/dist/core/topeAgotado.d.ts +55 -0
  289. package/dist/core/traerDeLaMaquina.d.ts +33 -0
  290. package/dist/core/trazaDeErrores.d.ts +83 -0
  291. package/dist/core/tunel.d.ts +45 -0
  292. package/dist/core/turno.d.ts +154 -0
  293. package/dist/core/validacionDeEscritura.d.ts +95 -0
  294. package/dist/core/verificacionDeSubida.d.ts +14 -0
  295. package/dist/core/version.d.ts +35 -0
  296. package/dist/core/xmlBienFormado.d.ts +23 -0
  297. package/dist/core/zipDeAdjunto.d.ts +28 -0
  298. package/dist/core/zipDeSkill.d.ts +74 -0
  299. package/dist/lib/tareaAutonoma.d.ts +36 -0
  300. package/dist/lib/tareaAutonoma.js +259 -0
  301. package/dist/lib/tareaAutonoma.js.map +1 -0
  302. package/dist/lib.d.ts +31 -0
  303. package/dist/lib.js +28 -0
  304. package/dist/lib.js.map +1 -0
  305. package/dist/vendor/hitl.d.ts +69 -0
  306. package/dist/vendor/skillLoaders/catalog.d.ts +27 -0
  307. package/dist/vendor/sqliteSaver.d.ts +22 -0
  308. package/dist/vendor/tokenTracking.d.ts +22 -0
  309. package/dist/web/servidor/arranque.d.ts +1372 -0
  310. package/dist/web/servidor/consolaDeTarea.d.ts +166 -0
  311. package/dist/web/servidor/consolaWeb.d.ts +142 -0
  312. package/dist/web/servidor/corredorDeTareas.d.ts +395 -0
  313. package/dist/web/servidor/datosDeCierre.d.ts +4 -0
  314. package/dist/web/servidor/interrupcion.d.ts +39 -0
  315. package/dist/web/servidor/pielWeb.d.ts +32 -0
  316. package/dist/web/servidor/puenteRemoto.d.ts +80 -0
  317. package/dist/web/servidor/servidor.d.ts +53 -0
  318. package/dist/web/servidor/sesiones.d.ts +342 -0
  319. package/dist/web/servidor/soporte.d.ts +65 -0
  320. package/dist/web/servidor/transporte.d.ts +2751 -0
  321. package/dist/web/servidor/vestibulo.d.ts +952 -0
  322. package/dist/web/servidor/visorOpenui.d.ts +33 -0
  323. package/package.json +9 -1
@@ -0,0 +1,35 @@
1
+ /**
2
+ * TODO lo que XOneCode usa de `@truefoundry/trueforge-core`, por un solo sitio.
3
+ *
4
+ * La librería es 0.x (fijada EXACTA a 0.2.1 en `package.json`) y no promete compatibilidad entre
5
+ * versiones. Con los imports repartidos por el motor, subirla obligaba a revisar cada fichero; aquí
6
+ * se revisa uno. Dos clases de cosas, y se separan a propósito:
7
+ *
8
+ * - Lo de la API PÚBLICA (`@truefoundry/trueforge-core/core`): el orquestador, los hilos, las
9
+ * capabilities, `ILLM`.
10
+ * - Lo que SOLO está en rutas profundas: los tipos de los fragmentos del modelo y el trazado mudo.
11
+ * El paquete los deja importar (`"./*"` en sus `exports`), pero no son su API: son lo primero
12
+ * que puede moverse en una versión nueva, y por eso viven aquí y en ningún otro sitio.
13
+ *
14
+ * El trazado mudo (`NOOP_AGENT_TRACING`) es NUESTRO y va con `satisfies` contra los tipos PÚBLICOS
15
+ * de la librería: si su interfaz cambia, el compilador lo dice aquí. Era una ruta profunda más, y la
16
+ * única que no era un tipo.
17
+ */
18
+ /**
19
+ * La versión de la librería con la que corre este motor, la MISMA que fija `package.json`
20
+ * (`frontera.test.ts` compara las dos, y contra la instalada). Viaja en la foto de memoria
21
+ * (`memoriaTrueforge.ts`) para que una migración futura sepa con qué `toSnapshot()` se escribió.
22
+ * Es una constante y no una lectura de su `package.json`: leerlo desde otro fichero sería una
23
+ * segunda puerta a la librería, y aquí subirla se revisa de todas formas.
24
+ */
25
+ export declare const VERSION_DE_TRUEFORGE = "0.2.1";
26
+ export { AgentThread, AgentThreadOrchestrator, EventType, ToolSet, askUserQuestion, contextCompaction, currentDateTime, dynamicSubAgents, openUI, toolResultResponse, } from "@truefoundry/trueforge-core/core";
27
+ export type { AgentTracing, ILLM, LLMCreateParams, LLMCreateParamsStreaming } from "@truefoundry/trueforge-core/core";
28
+ import type { AgentExecutionTrace, AgentLocalToolTrace, AgentRemoteMcpToolTrace } from "@truefoundry/trueforge-core/core";
29
+ export type { ExtendedChatCompletionChunk, RawAssistantMessageWithUsage } from "@truefoundry/trueforge-core/core/llm/LLMTypes";
30
+ export declare const NOOP_AGENT_TRACING: {
31
+ withInitSpan: <T>(operation: () => Promise<T>) => Promise<T>;
32
+ startRootSpan: () => AgentExecutionTrace;
33
+ withLocalToolSpan: <T>(_input: unknown, operation: (span: AgentLocalToolTrace) => Promise<T>) => Promise<T>;
34
+ withRemoteMcpToolSpan: <T>(_input: unknown, operation: (span: AgentRemoteMcpToolTrace) => Promise<T>) => Promise<T>;
35
+ };
@@ -0,0 +1,41 @@
1
+ import { type EstiloDeProp } from "../../core/estilos.js";
2
+ /** Lo poquito del modelo del linter que hace falta aquí. Declarado en vez de importado por la
3
+ * misma razón que `ModeloDelLinter`: no arrastrar sus tipos por medio harness. */
4
+ interface ModeloConEstilos {
5
+ app: {
6
+ attributes: Record<string, string>;
7
+ styles: Array<{
8
+ url: string;
9
+ }>;
10
+ };
11
+ colls: Array<{
12
+ name: string;
13
+ attributes?: Record<string, string>;
14
+ props?: Array<{
15
+ name: string;
16
+ type?: string;
17
+ attributes?: Record<string, string>;
18
+ }>;
19
+ groups?: Array<{
20
+ props?: Array<{
21
+ name: string;
22
+ type?: string;
23
+ attributes?: Record<string, string>;
24
+ }>;
25
+ }>;
26
+ }>;
27
+ cssFiles: Map<string, string>;
28
+ }
29
+ export type CargarEstilos = (coleccion: string, prop: string) => Promise<EstiloDeProp | undefined>;
30
+ /**
31
+ * El resolvedor de estilos de un proyecto, leyendo el disco con `xone-linter`.
32
+ *
33
+ * **No cachea**, por lo mismo que el índice de navegación: el agente escribe CSS dentro del
34
+ * turno, y una hoja vieja que afirma que una clase pone 14 cuando acaba de ponerse 18 es peor
35
+ * que no tener resolvedor — es una respuesta con autoridad y equivocada.
36
+ *
37
+ * Devuelve `undefined` cuando la colección o el prop no existen: eso NO es un fallo, es un dato,
38
+ * y quien llama dice cómo seguir.
39
+ */
40
+ export declare function estilosEnDisco(cargarModelo: () => Promise<ModeloConEstilos>): CargarEstilos;
41
+ export {};
@@ -0,0 +1,19 @@
1
+ import { type HechosDelProyecto } from "../../core/hechosDelProyecto.js";
2
+ import type { CargarIndice } from "./indiceEnDisco.js";
3
+ /**
4
+ * Los hechos del proyecto, leyendo el disco, **y tolerando que no se puedan leer**.
5
+ *
6
+ * Vive aquí y no dentro del turno por el patrón de fallo que este repo lleva contado nueve
7
+ * veces: una composición de producción escondida en un cierre que todos los tests doblan es una
8
+ * regla escrita, no probada. Aquí la costura está fuera y tiene su test.
9
+ *
10
+ * **Un fallo NO tumba el turno, y eso es la decisión.** Construir el índice toca disco y entra
11
+ * en la librería del linter: una carpeta que no es un proyecto XOne, un `.xne` ilegible o un
12
+ * fallo de la librería devuelven `undefined`, y entonces el turno sale exactamente como salía
13
+ * antes de que esto existiera. Adelantar hechos es una OPTIMIZACIÓN —abarata enterarse—, no una
14
+ * capacidad, así que no puede ser lo que impida trabajar. Es el mismo trato que el verificador
15
+ * le da a que falte el binario: se sigue, y lo que falta se nota en el precio, no en un error.
16
+ *
17
+ * Se llama POR TURNO y no al abrir la sesión, a propósito: ver `core/hechosDelProyecto.ts`.
18
+ */
19
+ export declare function hechosDelProyectoDe(cargarIndice: CargarIndice, ficheros: ReadonlySet<string>): Promise<HechosDelProyecto | undefined>;
@@ -0,0 +1,50 @@
1
+ import { type IndiceDeNavegacion, type ModeloDeNavegacion } from "../../core/navegacion.js";
2
+ import { type CargarEstilos } from "./estilosEnDisco.js";
3
+ /**
4
+ * El índice de navegación de un proyecto de verdad, leyendo el disco con `xone-linter`.
5
+ *
6
+ * **Se apoya en la librería y no reescribe su semántica**, y eso es una decisión medida: el
7
+ * linter ya parsea `.xne`, ya DECODIFICA la codificación del fichero (los `.xne` en
8
+ * ISO-8859-15 son reales, y su `XmlParser` lee la declaración en latin1 antes de pasar por
9
+ * `iconv` para no romper bytes) y su `CrossReferenceRule` ya define qué significa `mapcol`,
10
+ * `mapfld`, `linkedfield`, `contents src` e `inherits`. Reescribir eso aquí sería un SEGUNDO
11
+ * sitio donde se decide lo mismo, y el día que divergieran el linter diría una cosa y el
12
+ * agente otra sobre el mismo proyecto.
13
+ *
14
+ * Entra como LIBRERÍA y no como el binario `xone-simulator` que usa el verificador: así
15
+ * `npm test` puede probar esto con un proyecto de mentira en un temporal, sin binario
16
+ * instalado, que es el invariante que sostiene todo el diseño de puertos. El precio es que
17
+ * hay dos copias del linter en juego —la fijada en `node_modules` y la que el usuario tenga
18
+ * en el PATH— y conviene que no se separen de major.
19
+ *
20
+ * **No cachea, a propósito.** Medido sobre un proyecto real de 41 colecciones: cargarlo entero
21
+ * cuesta unas decenas de milisegundos, contra los segundos de una llamada al modelo. Rehacerlo
22
+ * en cada consulta sale gratis y quita de en medio la pregunta de cuándo invalidarlo — un
23
+ * índice viejo que dice que un campo existe cuando el agente acaba de borrarlo es peor que no
24
+ * tener índice: es una respuesta con autoridad y equivocada.
25
+ */
26
+ export type CargarIndice = (ficheros: ReadonlySet<string>) => Promise<IndiceDeNavegacion>;
27
+ /**
28
+ * Devuelve el cargador del índice de una raíz. La raíz se fija al crearlo y NO entra por
29
+ * parámetro en cada consulta: si el modelo pudiera decir sobre qué proyecto preguntar,
30
+ * tendríamos una tool que lee cualquier carpeta de la máquina.
31
+ */
32
+ export declare function indiceEnDisco(raiz: string): CargarIndice;
33
+ /**
34
+ * El MODELO de navegación de una raíz, ya traducido y filtrado: lo que el índice consulta y lo
35
+ * que la pestaña Colecciones fotografía (`core/fotoDeColecciones.ts`). Un solo cargador para
36
+ * los dos, así que lo que ve la persona y lo que ve el agente salen de la misma lectura.
37
+ */
38
+ export declare function modeloEnDisco(raiz: string): (ficheros: ReadonlySet<string>) => Promise<ModeloDeNavegacion>;
39
+ /**
40
+ * El resolvedor de ESTILOS de una raíz, sobre el mismo `XoneProject`.
41
+ *
42
+ * Vive aquí y no en `estilosEnDisco.ts` para que el import profundo de `XoneProject` —con su
43
+ * motivo medido escrito arriba— esté en UN solo sitio. `estilosEnDisco` recibe el modelo ya
44
+ * cargado y no sabe de dónde sale, que es lo que lo deja probable sin proyecto en disco.
45
+ *
46
+ * **No cachea**, por lo mismo que el índice: el agente escribe CSS dentro del turno, y una hoja
47
+ * vieja que afirma que una clase pone 14 cuando acaba de ponerse 18 es una respuesta con
48
+ * autoridad y equivocada.
49
+ */
50
+ export declare function estilosDeDisco(raiz: string): CargarEstilos;
@@ -0,0 +1,86 @@
1
+ import type { ModeloDeNavegacion } from "../../core/navegacion.js";
2
+ /**
3
+ * De lo que `xone-linter` sabe del proyecto a lo que el índice necesita.
4
+ *
5
+ * **Por qué se traduce en vez de usar su modelo tal cual.** Dos razones, y la segunda es la
6
+ * que importa. La primera: su `XoneProjectModel` trae el proyecto entero —conexiones,
7
+ * estilos, imágenes, fuentes, el runtime— y atar `core/navegacion.ts` a esa forma haría que
8
+ * un cambio suyo llegara hasta el núcleo puro. La segunda: **sus rutas son ABSOLUTAS de esta
9
+ * máquina** (`/Users/…/AppDemo/Clientes.xne`), y de aquí sale texto que va al modelo y de ahí
10
+ * al cable. Traducir a ruta virtual no es higiene: es la misma regla que `sinRutas`.
11
+ *
12
+ * **Y las guardas se REAPLICAN aquí.** Una tool de LangChain que añade xonecode NO pasa por
13
+ * el middleware de permisos —la lección que ya pagó `busquedaRegex`—, así que lo que este
14
+ * adaptador devuelve pasa por `puedeLeerRuta` y por `esVistaAplanada` antes de existir. Se
15
+ * filtra en la FUENTE y no al pintar: lo que no se puede enseñar, mejor que no llegue a estar
16
+ * en el índice.
17
+ *
18
+ * Lo que este módulo NO hace es leer disco por su cuenta ni aceptar rutas del modelo: recibe
19
+ * el modelo ya cargado y la raíz, y de ahí no se mueve.
20
+ */
21
+ /** La forma de `xone-linter` que se usa, declarada aquí y mínima. Su `XoneProjectModel` trae
22
+ * mucho más; nombrar solo esto es lo que deja ver de un vistazo de qué dependemos. */
23
+ export interface ModeloDelLinter {
24
+ colls?: readonly CollDelLinter[];
25
+ /** Ruta RELATIVA del `.js` -> su contenido. Lo carga el linter. */
26
+ jsFiles?: ReadonlyMap<string, string>;
27
+ app?: {
28
+ entryPoints?: readonly string[];
29
+ loginColls?: readonly string[];
30
+ styles?: readonly {
31
+ url?: string;
32
+ }[];
33
+ connections?: readonly {
34
+ name?: string;
35
+ }[];
36
+ };
37
+ }
38
+ interface CollDelLinter {
39
+ name?: string;
40
+ attributes?: Record<string, string>;
41
+ location?: {
42
+ file?: string;
43
+ };
44
+ props?: readonly {
45
+ name?: string;
46
+ type?: string;
47
+ attributes?: Record<string, string>;
48
+ inlineEvents?: readonly {
49
+ name?: string;
50
+ script?: string;
51
+ }[];
52
+ }[];
53
+ contents?: readonly {
54
+ src?: string;
55
+ }[];
56
+ events?: readonly EventoDelLinter[];
57
+ nodes?: readonly EventoDelLinter[];
58
+ connections?: readonly {
59
+ name?: string;
60
+ }[];
61
+ }
62
+ interface EventoDelLinter {
63
+ name?: string;
64
+ triggerProp?: string;
65
+ actions?: readonly {
66
+ script?: string;
67
+ value?: string;
68
+ }[];
69
+ }
70
+ /**
71
+ * La ruta VIRTUAL de una absoluta del proyecto, o `undefined` si se sale de él.
72
+ *
73
+ * Lexical y no `realpath`: este módulo es la traducción, no la barrera del disco — quien
74
+ * necesite cerrar los enlaces simbólicos lo hace donde se abre el fichero. Aquí lo que se
75
+ * impide es que una ruta de FUERA se presente como si fuera del proyecto.
76
+ */
77
+ export declare function rutaVirtualDelProyecto(raiz: string, absoluta: string): string | undefined;
78
+ /**
79
+ * Traduce el modelo del linter al nuestro, filtrando lo que no se puede enseñar.
80
+ *
81
+ * `ficheros` son las rutas virtuales del proyecto, las mismas que ve el agente: hacen falta
82
+ * para reconocer una vista aplanada (`X.xml` con un `X.xne` al lado), que es una regla que
83
+ * depende del conjunto y no de la ruta sola.
84
+ */
85
+ export declare function modeloDeNavegacion(delLinter: ModeloDelLinter, raiz: string, ficheros: ReadonlySet<string>): ModeloDeNavegacion;
86
+ export {};
@@ -0,0 +1,18 @@
1
+ import { type TareasDelPlan } from "../core/tareasDelPlan.js";
2
+ /** Cuánto se lee de un fichero de plan. Uno real ronda los 10-15 KB. */
3
+ export declare const TOPE_DE_FICHERO_DE_PLAN: number;
4
+ export interface PlanEnDisco {
5
+ nombre: string;
6
+ /** Cuáles de `PLAN.md`, `TASKS.md` y `CONTEXT.md` tiene: un plan puede ir a medias. */
7
+ ficheros: string[];
8
+ /** Las tareas de su `TASKS.md`, si lo tiene. */
9
+ tareas?: TareasDelPlan;
10
+ /** El texto de su `PLAN.md`, si lo tiene, acotado. */
11
+ plan?: {
12
+ texto: string;
13
+ recortado: boolean;
14
+ };
15
+ /** Cuándo se tocó por última vez algo suyo, en milisegundos: para ordenar, lo reciente arriba. */
16
+ modificado: number;
17
+ }
18
+ export declare function planesDelProyecto(raiz: string): PlanEnDisco[];
@@ -0,0 +1,20 @@
1
+ export interface PlanPublicado {
2
+ /** Relativa a la raíz, que es como se enseña y como entra en git. */
3
+ ruta: string;
4
+ /** Qué se copió, por nombre relativo a la carpeta del plan. */
5
+ ficheros: string[];
6
+ }
7
+ /**
8
+ * Copia `<raiz>/.xonecode/planes/<nombre>` a `<raiz>/doc/planes/<nombre>`.
9
+ *
10
+ * Devuelve `{error}` en vez de lanzar, como las guardas del backend: el llamador es un
11
+ * comando de consola y lo que tiene que hacer con un no es decirlo, no reventar.
12
+ */
13
+ export declare function publicarPlan(opciones: {
14
+ raiz: string;
15
+ nombre: string;
16
+ }): PlanPublicado | {
17
+ error: string;
18
+ };
19
+ /** Los planes que hay en el proyecto, por nombre. Vacío si nadie ha planificado. */
20
+ export declare function planesDelProyecto(raiz: string): string[];
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Sube desde `desde` hasta la primera carpeta con un `package.json`, o `undefined`.
3
+ *
4
+ * Separada de `raizDelPaquete` para poder probar las dos ramas: sin esto, el caso «no hay
5
+ * ninguna» solo se podría provocar moviendo el repo.
6
+ */
7
+ export declare function buscarRaizDelPaquete(desde: string): string | undefined;
8
+ /** La raíz del paquete. Lanza si no la hay: ver la cabecera. */
9
+ export declare function raizDelPaquete(desde?: string): string;
@@ -0,0 +1,44 @@
1
+ /** Lo que se usa del SDK. `forward` abre el túnel; el resto de su API no hace falta. */
2
+ export interface SdkDeNgrok {
3
+ forward(config: {
4
+ addr: string;
5
+ authtoken?: string;
6
+ domain?: string;
7
+ onStatusChange?: (estado: string) => void;
8
+ }): Promise<{
9
+ url(): string | null;
10
+ close(): Promise<void>;
11
+ }>;
12
+ }
13
+ /** El SDK de verdad, o `undefined` si su binario nativo no carga en esta plataforma. Por `import()`: solo se carga al usarlo. */
14
+ export declare function cargarSdkReal(): Promise<SdkDeNgrok | undefined>;
15
+ /** Donde Ajustes guarda el authtoken: un fichero NUESTRO, 0600, nunca el proyecto. */
16
+ export declare const rutaDeAuthtoken: (casa: string) => string;
17
+ export interface DependenciasDeNgrok {
18
+ cargarSdk?: () => Promise<SdkDeNgrok | undefined>;
19
+ entorno?: Record<string, string | undefined>;
20
+ casa?: string;
21
+ plataforma?: string;
22
+ /** Lee un fichero de texto; lanza si no se puede. */
23
+ leer?: (ruta: string) => string;
24
+ /** Escribe el fichero del authtoken. */
25
+ escribir?: (ruta: string, contenido: string) => void;
26
+ }
27
+ /** El authtoken que se usará, por el orden de la cabecera, o `undefined` si no hay ninguno. */
28
+ export declare function authtokenDeNgrok(deps?: DependenciasDeNgrok): string | undefined;
29
+ export interface MedidaDeNgrok {
30
+ instalado: boolean;
31
+ cuenta: boolean;
32
+ }
33
+ export declare function medirNgrok(deps?: DependenciasDeNgrok): Promise<MedidaDeNgrok>;
34
+ export type ResultadoDeGuardarAuthtoken = {
35
+ ok: true;
36
+ } | {
37
+ ok: false;
38
+ motivo: string;
39
+ };
40
+ /**
41
+ * Guarda el authtoken en `~/.xonecode/ngrok.json` (0600). Ya no pasa por `ngrok config add-authtoken`, así que el token no
42
+ * aparece en la línea de órdenes de ningún proceso. Un fallo devuelve un texto FIJO.
43
+ */
44
+ export declare function guardarAuthtoken(token: string, deps?: DependenciasDeNgrok): Promise<ResultadoDeGuardarAuthtoken>;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * El puente REAL de la sesión remota. Es el ÚNICO fichero que nombra `@xone/xonecode-remoto`,
3
+ * y lo carga con `import()` dinámico de un nombre en variable: el paquete viaja DENTRO de xonecode
4
+ * (`vendor/xonecode-remoto/` + `bundleDependencies`), pero se carga perezoso, así que con la sesión
5
+ * apagada no se toca, y `npm test` no lo necesita (usa `PuenteRemotoEnMemoria`).
6
+ */
7
+ import type { PuenteRemotoPort } from "../../core/ports.js";
8
+ export declare const NOMBRE_DEL_PAQUETE = "@xone/xonecode-remoto";
9
+ /** La parte del paquete que se usa aquí (su API real tiene más). */
10
+ export interface ModuloRemoto {
11
+ VERSION_DEL_PROTOCOLO: number;
12
+ generarCredenciales(): {
13
+ sala: string;
14
+ secreto: string;
15
+ };
16
+ urlDeSesion(baseHttp: string, sala: string, secreto: string): string;
17
+ baseHttpDe(servidorWs: string): string;
18
+ crearCanal(o: {
19
+ secreto: string;
20
+ sala: string;
21
+ rol: "anfitrion";
22
+ }): Promise<{
23
+ cifrar(m: unknown): Promise<string>;
24
+ descifrar(carga: string): Promise<unknown>;
25
+ }>;
26
+ }
27
+ /** `undefined` = el paquete no está instalado: quien llama lo dice, aquí no se propaga el error. */
28
+ export declare function cargarModuloRemoto(importar?: (nombre: string) => Promise<unknown>): Promise<ModuloRemoto | undefined>;
29
+ /**
30
+ * La subruta del paquete con el PUENTE (el relé que `xonecode-server` corre en la nube), para la
31
+ * vía «túnel local»: xonecode lo arranca en loopback y ngrok lo publica (`tunelNgrok.ts`). Vive
32
+ * aquí para que el nombre del paquete siga en UN fichero.
33
+ */
34
+ export declare const NOMBRE_DEL_SERVIDOR = "@xone/xonecode-remoto/servidor";
35
+ /** La parte de `@xone/xonecode-remoto/servidor` que se usa. */
36
+ export interface ModuloServidorRemoto {
37
+ arrancarServidor(o: {
38
+ puerto: number;
39
+ host?: string;
40
+ }): Promise<{
41
+ urlHttp: string;
42
+ urlWs: string;
43
+ cerrar(): Promise<void>;
44
+ }>;
45
+ }
46
+ /**
47
+ * `undefined` = el paquete no está, o es una versión sin el puente (sin la subruta, o sin
48
+ * `arrancarServidor`): quien llama lo dice con su texto fijo.
49
+ */
50
+ export declare function cargarServidorRemoto(importar?: (nombre: string) => Promise<unknown>): Promise<ModuloServidorRemoto | undefined>;
51
+ /**
52
+ * Lo que `cerrar` espera, como mucho, a que el relé cierre el socket tras el «cerrar». Sin tope,
53
+ * un relé que no contesta colgaría el apagado; con él, lo peor es el comportamiento de antes.
54
+ */
55
+ export declare const TOPE_DE_CIERRE_MS = 2000;
56
+ export declare function crearPuenteWebSocket(modulo: ModuloRemoto, opciones?: {
57
+ esperasMs?: readonly number[];
58
+ topeDeCierreMs?: number;
59
+ }): PuenteRemotoPort;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * El túnel REAL de la vía «ngrok» de la sesión remota: arranca el puente del paquete en un puerto libre de loopback y abre
3
+ * el túnel con el SDK de ngrok (`@ngrok/ngrok`, que viene con xonecode) hacia él. Entra en el servidor por opción (un
4
+ * `TunelPort`), como el puente: ni `core/` ni `web/` importan este fichero.
5
+ *
6
+ * Reglas, todas por lo mismo —nada de la máquina cruza el cable—:
7
+ * - **Un fallo es un texto de `MOTIVOS_DEL_TUNEL`**, clasificado por el CÓDIGO `ERR_NGROK_xxx` que el SDK pone en el error
8
+ * (`errorCode`). El mensaje del error se queda aquí: puede llevar el correo de la cuenta o el token.
9
+ * - **El túnel vive dentro de este proceso**: no hay programa `ngrok` que lanzar, ni log que leer, ni grupo que matar, y
10
+ * muere con el proceso —se acabó el ngrok huérfano tras un cierre en seco que había con el programa—.
11
+ * - **Una pérdida de conexión no es una caída todavía**: el SDK reconecta solo (`onStatusChange`: `closed` y luego
12
+ * `connected`). Solo si no ha vuelto en `ESPERA_DE_RECONEXION_MS` se da el túnel por caído y se avisa.
13
+ * - **Cerrar: el túnel PRIMERO y luego el puente**, para que el móvil no vea un puente vivo detrás de un túnel ya muerto ni
14
+ * al revés un túnel que apunta a nada.
15
+ */
16
+ import type { TunelPort } from "../../core/ports.js";
17
+ import { type SdkDeNgrok } from "./ngrokEnMaquina.js";
18
+ import { type ModuloServidorRemoto } from "./puenteWebSocket.js";
19
+ /** Lo que se espera a que ngrok dé la dirección pública. */
20
+ export declare const TOPE_DE_TUNEL_MS = 30000;
21
+ /** Lo que se espera a que el SDK reconecte tras perder la conexión, antes de dar el túnel por caído. */
22
+ export declare const ESPERA_DE_RECONEXION_MS = 30000;
23
+ export interface DependenciasDelTunel {
24
+ cargarServidor?: () => Promise<ModuloServidorRemoto | undefined>;
25
+ cargarSdk?: () => Promise<SdkDeNgrok | undefined>;
26
+ /** El authtoken que se usará, o `undefined` si no hay cuenta. */
27
+ authtoken?: () => string | undefined;
28
+ topeMs?: number;
29
+ esperaDeReconexionMs?: number;
30
+ }
31
+ export declare function crearTunelNgrok(deps?: DependenciasDelTunel): TunelPort;
@@ -0,0 +1,14 @@
1
+ /** Esperas entre intentos, en milisegundos: crecen y suman algo más de un segundo. */
2
+ export declare const ESPERAS_DE_RENOMBRADO_MS: readonly number[];
3
+ export interface OpcionesDeRenombrado {
4
+ /** Inyectable para los tests; por omisión `process.platform`. */
5
+ plataforma?: NodeJS.Platform;
6
+ /** Cómo esperar entre intentos (síncrona en `renombrarSobreSync`). */
7
+ dormir?: (ms: number) => void | Promise<void>;
8
+ /** El rename de verdad; inyectable para simular el bloqueo. */
9
+ rename?: (origen: string, destino: string) => void | Promise<void>;
10
+ }
11
+ /** `renameSync` que, en Windows, aguanta el bloqueo pasajero de un antivirus o un indexador. */
12
+ export declare function renombrarSobreSync(origen: string, destino: string, opciones?: OpcionesDeRenombrado): void;
13
+ /** La versión asíncrona, para quien ya escribe con `node:fs/promises`. */
14
+ export declare function renombrarSobre(origen: string, destino: string, opciones?: OpcionesDeRenombrado): Promise<void>;
@@ -0,0 +1,64 @@
1
+ import { type AdjuntoNombrable } from "../../core/adjuntos.js";
2
+ /** Bytes que se aceptan por adjunto y por sesión. Mismos valores que `TOPE_DE_ADJUNTO` /
3
+ * `TOPE_DE_ADJUNTOS_POR_TAREA` de `tareasEnDisco.ts`: es la misma regla, aplicada a otra cola. */
4
+ export declare const TOPE_DE_ADJUNTO_DE_SESION = 20000000;
5
+ export declare const TOPE_DE_ADJUNTOS_POR_SESION = 50000000;
6
+ /** Los topes de `guardarAdjuntoDeSesion`, inyectables para probarlos sin escribir megabytes. */
7
+ export interface TopesDeAdjuntosDeSesion {
8
+ porFichero: number;
9
+ porSesion: number;
10
+ }
11
+ /**
12
+ * Guarda un adjunto anexado en el chat de la sesión `id`, dentro del proyecto `raiz`.
13
+ *
14
+ * Mismo orden que `tareasEnDisco.ts#guardarAdjunto`: primero lo que se sabe SIN tocar disco (el
15
+ * nombre, el tamaño del propio fichero), luego la carpeta —comprobada, no creada— y solo con
16
+ * ella en la mano el tope por sesión (que necesita leer lo que ya hay) y la escritura.
17
+ *
18
+ * **NUNCA sobrescribe** (Ronda de arreglo 1/5, IXCODE-7): la carpeta es por SESIÓN y sobrevive
19
+ * a que el compositor vacíe sus fichas al enviar, así que dos turnos que suban el mismo nombre
20
+ * —un `pegado-1.png` es el caso típico— pisarían en silencio el fichero del turno anterior sin
21
+ * este paso. `nombreLibreEn` decide el nombre FINAL, que puede llevar sufijo; se devuelve en
22
+ * `{ok:true, nombre}` para que quien llama (la ruta HTTP, y con ella la ficha del compositor)
23
+ * sepa con qué nombre quedó de verdad.
24
+ *
25
+ * **Las cuatro llamadas de disco van en un `try`**: `mkdirSync` (un `EACCES` de permisos),
26
+ * `readdirSync`/`statSync` al sumar lo que ya hay (un `ENOSPC`, o un enlace COLGANTE dentro de
27
+ * `adjuntos/` — `statSync` lo sigue y `ENOENT` si el destino no existe) y `writeFileSync`. Un
28
+ * rechazo de guarda se DEVUELVE, nunca se lanza: sin este `try`, cualquiera de esos errores se
29
+ * llevaba por delante al llamador (`POST /adjunto`), que no los esperaba.
30
+ */
31
+ export declare function guardarAdjuntoDeSesion(raiz: string, id: string, nombre: string, datos: Buffer, topes?: TopesDeAdjuntosDeSesion): {
32
+ ok: true;
33
+ nombre: string;
34
+ extraidos?: string[];
35
+ sinExtraer?: string;
36
+ } | {
37
+ ok: false;
38
+ motivo: string;
39
+ };
40
+ /**
41
+ * Lo que hay en la carpeta de adjuntos de la sesión `id`, medido del DISCO.
42
+ *
43
+ * Ordenado por nombre, y solo ficheros LLANOS con nombre aceptable: una carpeta o un enlace ahí
44
+ * no es un adjunto, y `readdirSync` los daría igual. Con `nombres`, filtra a esa lista — en su
45
+ * mismo ORDEN, omitiendo los que no estén — para poder pedir «los adjuntos DE ESTE MENSAJE» sin
46
+ * enseñar los de mensajes anteriores de la misma sesión.
47
+ */
48
+ export declare function listarAdjuntosDeSesion(raiz: string, id: string, nombres?: readonly string[]): AdjuntoNombrable[];
49
+ /**
50
+ * Copia unos adjuntos de la sesión `id` a otra carpeta —la de una TAREA—, con el árbol extraído de
51
+ * cada `.zip` si lo hay. Lo usa encolar una propuesta de tareas encadenadas: cada tarea se lleva SUS
52
+ * diseños y nada más, y se copian ANTES de guardar la tarea, porque el corredor puede arrancarla en
53
+ * el acto.
54
+ *
55
+ * Las guardas son las de leer: la carpeta de la sesión por `carpetaComprobada`, cada nombre por
56
+ * `nombreDeAdjuntoAceptable`, y solo ficheros y carpetas de verdad —un enlace no se sigue ni se
57
+ * copia—. El destino lo da quien llama, ya comprobado (`TareasEnDisco.carpetaDeAdjuntos`).
58
+ * Devuelve qué se copió y qué no estaba: un nombre que el agente escribió mal no tumba el encolado,
59
+ * se DICE.
60
+ */
61
+ export declare function copiarAdjuntosDeSesion(raiz: string, id: string, nombres: readonly string[], destino: string): {
62
+ copiados: string[];
63
+ faltan: string[];
64
+ };
@@ -0,0 +1,9 @@
1
+ export type BaseDeComparacion = "sesion" | "commit";
2
+ export interface BaseLeida {
3
+ ruta: string;
4
+ base: BaseDeComparacion;
5
+ texto?: string;
6
+ vacio?: true;
7
+ sinBase?: string;
8
+ }
9
+ export declare function baseDeFichero(raiz: string, sesion: string | undefined, ruta: string, base: BaseDeComparacion): Promise<BaseLeida>;