xonecode 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -7
- package/THIRD_PARTY_NOTICES.md +128 -0
- package/apps/web/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/apps/web/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/apps/web/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/apps/web/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/apps/web/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/apps/web/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/apps/web/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/apps/web/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/apps/web/dist/assets/c-BIGW1oBm.js +1 -0
- package/apps/web/dist/assets/cpp-DddhVWhK.js +1 -0
- package/apps/web/dist/assets/csharp-DSvCPggb.js +1 -0
- package/apps/web/dist/assets/css-CLj8gQPS.js +1 -0
- package/apps/web/dist/assets/go-C27-OAKa.js +1 -0
- package/apps/web/dist/assets/html-CfGypltT.js +1 -0
- package/apps/web/dist/assets/index-BB3SamhR.css +1 -0
- package/apps/web/dist/assets/index-CFYAoHdw.js +477 -0
- package/apps/web/dist/assets/ini-BEwlwnbL.js +1 -0
- package/apps/web/dist/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- package/apps/web/dist/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- package/apps/web/dist/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- package/apps/web/dist/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- package/apps/web/dist/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- package/apps/web/dist/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- package/apps/web/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- package/apps/web/dist/assets/java-CylS5w8V.js +1 -0
- package/apps/web/dist/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
- package/apps/web/dist/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
- package/apps/web/dist/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/apps/web/dist/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/apps/web/dist/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
- package/apps/web/dist/assets/kotlin-BdnUsdx6.js +1 -0
- package/apps/web/dist/assets/less-B1dDrJ26.js +1 -0
- package/apps/web/dist/assets/lua-BaeVxFsk.js +1 -0
- package/apps/web/dist/assets/markdown-Cvjx9yec.js +1 -0
- package/apps/web/dist/assets/mdx-Cmh6b_Ma.js +1 -0
- package/apps/web/dist/assets/php-D_2--9WK.js +1 -0
- package/apps/web/dist/assets/python-B6aJPvgy.js +1 -0
- package/apps/web/dist/assets/ruby-DSHSDbk1.js +1 -0
- package/apps/web/dist/assets/rust-B1yitclQ.js +1 -0
- package/apps/web/dist/assets/scss-D5BDwBP9.js +1 -0
- package/apps/web/dist/assets/sql-CRqJ_cUM.js +1 -0
- package/apps/web/dist/assets/swift-C2oV4EkX.js +1 -0
- package/apps/web/dist/assets/toml-vGWfd6FD.js +1 -0
- package/apps/web/dist/assets/xml-sdJ4AIDG.js +1 -0
- package/apps/web/dist/assets/yaml-Buea-lGh.js +1 -0
- package/apps/web/dist/iconos/xonecode.png +0 -0
- package/apps/web/dist/index.html +20 -0
- package/dist/agent/agentesEnDisco.js +539 -0
- package/dist/agent/agentesEnDisco.js.map +1 -0
- package/dist/agent/arbolDeProyecto.js +245 -0
- package/dist/agent/arbolDeProyecto.js.map +1 -0
- package/dist/agent/artefactosEnDisco.js +139 -0
- package/dist/agent/artefactosEnDisco.js.map +1 -0
- package/dist/agent/aumentador.js +175 -0
- package/dist/agent/aumentador.js.map +1 -0
- package/dist/agent/authEnDisco.js +76 -1
- package/dist/agent/authEnDisco.js.map +1 -1
- package/dist/agent/busquedaRegex.js +92 -0
- package/dist/agent/busquedaRegex.js.map +1 -0
- package/dist/agent/catalogoModelos.js +345 -0
- package/dist/agent/catalogoModelos.js.map +1 -0
- package/dist/agent/checkpointer.js +127 -0
- package/dist/agent/checkpointer.js.map +1 -0
- package/dist/agent/cloudstudioClient.js +194 -0
- package/dist/agent/cloudstudioClient.js.map +1 -0
- package/dist/agent/cloudstudioMcp.js +722 -0
- package/dist/agent/cloudstudioMcp.js.map +1 -0
- package/dist/agent/configEnDisco.js +309 -11
- package/dist/agent/configEnDisco.js.map +1 -1
- package/dist/agent/consumoExterno.js +99 -0
- package/dist/agent/consumoExterno.js.map +1 -0
- package/dist/agent/descarga.js +149 -0
- package/dist/agent/descarga.js.map +1 -0
- package/dist/agent/diagnosticoDeTools.js +51 -0
- package/dist/agent/diagnosticoDeTools.js.map +1 -0
- package/dist/agent/dispositivosEnMaquina.js +596 -0
- package/dist/agent/dispositivosEnMaquina.js.map +1 -0
- package/dist/agent/escrituraDeCodex.js +134 -0
- package/dist/agent/escrituraDeCodex.js.map +1 -0
- package/dist/agent/escrituraDeOpencode.js +80 -0
- package/dist/agent/escrituraDeOpencode.js.map +1 -0
- package/dist/agent/escrituraExterna.js +742 -0
- package/dist/agent/escrituraExterna.js.map +1 -0
- package/dist/agent/gemini.js +81 -0
- package/dist/agent/gemini.js.map +1 -0
- package/dist/agent/git.js +83 -0
- package/dist/agent/git.js.map +1 -0
- package/dist/agent/gitSync.js +441 -0
- package/dist/agent/gitSync.js.map +1 -0
- package/dist/agent/hotswap.js +448 -0
- package/dist/agent/hotswap.js.map +1 -0
- package/dist/agent/instalacionEnMaquina.js +252 -0
- package/dist/agent/instalacionEnMaquina.js.map +1 -0
- package/dist/agent/instantanea.js +7 -10
- package/dist/agent/instantanea.js.map +1 -1
- package/dist/agent/interrupts.js +11 -2
- package/dist/agent/interrupts.js.map +1 -1
- package/dist/agent/juezDeTarea.js +345 -0
- package/dist/agent/juezDeTarea.js.map +1 -0
- package/dist/agent/lanzamientoEnMaquina.js +377 -0
- package/dist/agent/lanzamientoEnMaquina.js.map +1 -0
- package/dist/agent/manifiesto.js +59 -0
- package/dist/agent/manifiesto.js.map +1 -0
- package/dist/agent/memoriaDeProyecto.js +60 -0
- package/dist/agent/memoriaDeProyecto.js.map +1 -0
- package/dist/agent/modelos.js +105 -17
- package/dist/agent/modelos.js.map +1 -1
- package/dist/agent/modelosDeMotor.js +204 -0
- package/dist/agent/modelosDeMotor.js.map +1 -0
- package/dist/agent/paqueteDelProyecto.js +181 -0
- package/dist/agent/paqueteDelProyecto.js.map +1 -0
- package/dist/agent/perfiles.js +92 -31
- package/dist/agent/perfiles.js.map +1 -1
- package/dist/agent/persona.js +40 -0
- package/dist/agent/persona.js.map +1 -0
- package/dist/agent/procesosEnMaquina.js +204 -0
- package/dist/agent/procesosEnMaquina.js.map +1 -0
- package/dist/agent/proyecto.js +311 -13
- package/dist/agent/proyecto.js.map +1 -1
- package/dist/agent/puente.js +63 -6
- package/dist/agent/puente.js.map +1 -1
- package/dist/agent/resumenDeContexto.js +30 -0
- package/dist/agent/resumenDeContexto.js.map +1 -0
- package/dist/agent/resumenDeTool.js +64 -18
- package/dist/agent/resumenDeTool.js.map +1 -1
- package/dist/agent/sesionGit.js +481 -0
- package/dist/agent/sesionGit.js.map +1 -0
- package/dist/agent/settingsEnDisco.js +189 -0
- package/dist/agent/settingsEnDisco.js.map +1 -0
- package/dist/agent/subagenteCodex.js +368 -0
- package/dist/agent/subagenteCodex.js.map +1 -0
- package/dist/agent/subagenteExterno.js +423 -0
- package/dist/agent/subagenteExterno.js.map +1 -0
- package/dist/agent/subagenteOpencode.js +389 -0
- package/dist/agent/subagenteOpencode.js.map +1 -0
- package/dist/agent/subida.js +202 -0
- package/dist/agent/subida.js.map +1 -0
- package/dist/agent/tareasEnDisco.js +466 -0
- package/dist/agent/tareasEnDisco.js.map +1 -0
- package/dist/agent/turnoReal.js +663 -50
- package/dist/agent/turnoReal.js.map +1 -1
- package/dist/agent/versionEnDisco.js +48 -0
- package/dist/agent/versionEnDisco.js.map +1 -0
- package/dist/agent/xoneAgent.js +290 -49
- package/dist/agent/xoneAgent.js.map +1 -1
- package/dist/agent/zip.js +52 -0
- package/dist/agent/zip.js.map +1 -0
- package/dist/cli/acuseDeModelo.js +30 -0
- package/dist/cli/acuseDeModelo.js.map +1 -0
- package/dist/cli/aprobar.js +55 -2
- package/dist/cli/aprobar.js.map +1 -1
- package/dist/cli/config.js +9 -13
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/consola.js +750 -19
- package/dist/cli/consola.js.map +1 -1
- package/dist/cli/main.js +740 -81
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/markdown.js +188 -2
- package/dist/cli/markdown.js.map +1 -1
- package/dist/cli/run.js +32 -4
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/stdio.js +46 -19
- package/dist/cli/stdio.js.map +1 -1
- package/dist/cli/tema.js +96 -8
- package/dist/cli/tema.js.map +1 -1
- package/dist/cli/tokens.js +29 -0
- package/dist/cli/tokens.js.map +1 -0
- package/dist/cli/tui/app.js +171 -0
- package/dist/cli/tui/app.js.map +1 -0
- package/dist/cli/tui/aprobarTui.js +80 -0
- package/dist/cli/tui/aprobarTui.js.map +1 -0
- package/dist/cli/tui/barra.js +37 -0
- package/dist/cli/tui/barra.js.map +1 -0
- package/dist/cli/tui/correrTui.js +478 -0
- package/dist/cli/tui/correrTui.js.map +1 -0
- package/dist/cli/tui/entrada.js +166 -0
- package/dist/cli/tui/entrada.js.map +1 -0
- package/dist/cli/tui/filas.js +24 -0
- package/dist/cli/tui/filas.js.map +1 -0
- package/dist/cli/tui/logo.js +49 -0
- package/dist/cli/tui/logo.js.map +1 -0
- package/dist/cli/tui/pielTui.js +14 -0
- package/dist/cli/tui/pielTui.js.map +1 -0
- package/dist/cli/tui/raton.js +126 -0
- package/dist/cli/tui/raton.js.map +1 -0
- package/dist/cli/tui/sidebar.js +86 -0
- package/dist/cli/tui/sidebar.js.map +1 -0
- package/dist/cli/tui/store.js +143 -0
- package/dist/cli/tui/store.js.map +1 -0
- package/dist/cli/tui/tarjeta.js +19 -0
- package/dist/cli/tui/tarjeta.js.map +1 -0
- package/dist/cli/tui/temaInk.js +114 -0
- package/dist/cli/tui/temaInk.js.map +1 -0
- package/dist/cli/tui/transcript.js +254 -0
- package/dist/cli/tui/transcript.js.map +1 -0
- package/dist/cli/wizardInicial.js +240 -0
- package/dist/cli/wizardInicial.js.map +1 -0
- package/dist/core/actos.js +113 -0
- package/dist/core/actos.js.map +1 -0
- package/dist/core/adjuntos.js +97 -0
- package/dist/core/adjuntos.js.map +1 -0
- package/dist/core/agentes.js +227 -0
- package/dist/core/agentes.js.map +1 -0
- package/dist/core/artefactos.js +149 -0
- package/dist/core/artefactos.js.map +1 -0
- package/dist/core/cloudstudio.js +7 -0
- package/dist/core/cloudstudio.js.map +1 -0
- package/dist/core/config.js +212 -5
- package/dist/core/config.js.map +1 -1
- package/dist/core/contextos.js +53 -1
- package/dist/core/contextos.js.map +1 -1
- package/dist/core/descargas.js +106 -0
- package/dist/core/descargas.js.map +1 -0
- package/dist/core/descriptoresDeApp.js +279 -0
- package/dist/core/descriptoresDeApp.js.map +1 -0
- package/dist/core/dispositivos.js +466 -0
- package/dist/core/dispositivos.js.map +1 -0
- package/dist/core/entrega.js +141 -0
- package/dist/core/entrega.js.map +1 -0
- package/dist/core/entrelazar.js +90 -0
- package/dist/core/entrelazar.js.map +1 -0
- package/dist/core/esqueleto.js +10 -0
- package/dist/core/esqueleto.js.map +1 -1
- package/dist/core/modelos.js +235 -3
- package/dist/core/modelos.js.map +1 -1
- package/dist/core/notify.js +27 -9
- package/dist/core/notify.js.map +1 -1
- package/dist/core/planDeSubida.js +127 -0
- package/dist/core/planDeSubida.js.map +1 -0
- package/dist/core/ports.js +189 -1
- package/dist/core/ports.js.map +1 -1
- package/dist/core/puedeLanzarse.js +239 -0
- package/dist/core/puedeLanzarse.js.map +1 -0
- package/dist/core/rutaVirtual.js +42 -0
- package/dist/core/rutaVirtual.js.map +1 -0
- package/dist/core/settings.js +246 -0
- package/dist/core/settings.js.map +1 -0
- package/dist/core/tareas.js +230 -0
- package/dist/core/tareas.js.map +1 -0
- package/dist/core/textos.js +36 -0
- package/dist/core/textos.js.map +1 -0
- package/dist/core/turno.js +56 -8
- package/dist/core/turno.js.map +1 -1
- package/dist/core/version.js +31 -0
- package/dist/core/version.js.map +1 -0
- package/dist/vendor/tokenTracking.js +22 -1
- package/dist/vendor/tokenTracking.js.map +1 -1
- package/dist/web/servidor/arranque.js +3964 -0
- package/dist/web/servidor/arranque.js.map +1 -0
- package/dist/web/servidor/consolaDeTarea.js +161 -0
- package/dist/web/servidor/consolaDeTarea.js.map +1 -0
- package/dist/web/servidor/consolaWeb.js +389 -0
- package/dist/web/servidor/consolaWeb.js.map +1 -0
- package/dist/web/servidor/corredorDeTareas.js +1119 -0
- package/dist/web/servidor/corredorDeTareas.js.map +1 -0
- package/dist/web/servidor/pielWeb.js +269 -0
- package/dist/web/servidor/pielWeb.js.map +1 -0
- package/dist/web/servidor/servidor.js +257 -0
- package/dist/web/servidor/servidor.js.map +1 -0
- package/dist/web/servidor/sesiones.js +440 -0
- package/dist/web/servidor/sesiones.js.map +1 -0
- package/dist/web/servidor/transporte.js +169 -0
- package/dist/web/servidor/transporte.js.map +1 -0
- package/dist/web/servidor/vestibulo.js +1276 -0
- package/dist/web/servidor/vestibulo.js.map +1 -0
- package/package.json +30 -8
- package/skills/archify/LICENSE +22 -0
- package/skills/archify/SKILL.md +109 -0
- package/skills/archify/THIRD_PARTY_NOTICES.md +56 -0
- package/skills/archify/assets/template.html +14787 -0
- package/skills/archify/bin/archify.mjs +1990 -0
- package/skills/archify/bin/open-artifact.mjs +86 -0
- package/skills/archify/bin/preview.mjs +648 -0
- package/skills/archify/bin/visual-check.mjs +829 -0
- package/skills/archify/brand-marks/README.md +31 -0
- package/skills/archify/brand-marks/catalog.json +131 -0
- package/skills/archify/delta/architecture-delta.mjs +1214 -0
- package/skills/archify/examples/agent-run.lifecycle.json +71 -0
- package/skills/archify/examples/agent-tool-call.workflow.json +94 -0
- package/skills/archify/examples/async-job-roundtrip.sequence.json +61 -0
- package/skills/archify/examples/brand-aware-delivery.architecture.json +47 -0
- package/skills/archify/examples/cache-miss-request.sequence.json +81 -0
- package/skills/archify/examples/checkout-platform.base.architecture.json +31 -0
- package/skills/archify/examples/checkout-platform.head.architecture.json +31 -0
- package/skills/archify/examples/dataflow-product-analytics.html +14898 -0
- package/skills/archify/examples/deployment-release.lifecycle.json +49 -0
- package/skills/archify/examples/event-stream.dataflow.json +57 -0
- package/skills/archify/examples/incident-response.workflow.json +64 -0
- package/skills/archify/examples/lifecycle-agent-run.html +14847 -0
- package/skills/archify/examples/product-analytics.dataflow.json +76 -0
- package/skills/archify/examples/production-deployment.architecture.json +71 -0
- package/skills/archify/examples/release-delivery.workflow.json +62 -0
- package/skills/archify/examples/sequence-cache-miss-request.html +14913 -0
- package/skills/archify/examples/web-app-rendered.html +14862 -0
- package/skills/archify/examples/web-app.architecture.json +46 -0
- package/skills/archify/examples/workflow-agent-tool-call-rendered.html +14904 -0
- package/skills/archify/migrations/workflow-v2.mjs +279 -0
- package/skills/archify/package.json +17 -0
- package/skills/archify/recipes/scenarios.mjs +391 -0
- package/skills/archify/references/authoring-contract.md +198 -0
- package/skills/archify/references/brand-marks.md +69 -0
- package/skills/archify/references/delivery-contract.md +116 -0
- package/skills/archify/references/viewer-runtime.md +45 -0
- package/skills/archify/renderers/architecture/grid.mjs +62 -0
- package/skills/archify/renderers/architecture/render-architecture.mjs +1078 -0
- package/skills/archify/renderers/dataflow/README.md +104 -0
- package/skills/archify/renderers/dataflow/render-dataflow.mjs +483 -0
- package/skills/archify/renderers/lifecycle/README.md +115 -0
- package/skills/archify/renderers/lifecycle/render-lifecycle.mjs +561 -0
- package/skills/archify/renderers/sequence/README.md +114 -0
- package/skills/archify/renderers/sequence/render-sequence.mjs +453 -0
- package/skills/archify/renderers/shared/brand-marks.mjs +563 -0
- package/skills/archify/renderers/shared/cli.mjs +218 -0
- package/skills/archify/renderers/shared/desktop-readability.mjs +26 -0
- package/skills/archify/renderers/shared/diagnostics.mjs +127 -0
- package/skills/archify/renderers/shared/engineering-profiles.mjs +157 -0
- package/skills/archify/renderers/shared/generated-brand-marks.mjs +2003 -0
- package/skills/archify/renderers/shared/generated-validators.mjs +13 -0
- package/skills/archify/renderers/shared/geometry.mjs +1423 -0
- package/skills/archify/renderers/shared/i18n.mjs +594 -0
- package/skills/archify/renderers/shared/layout-report.mjs +40 -0
- package/skills/archify/renderers/shared/legend.mjs +217 -0
- package/skills/archify/renderers/shared/output-path.mjs +321 -0
- package/skills/archify/renderers/shared/repository-evidence.mjs +235 -0
- package/skills/archify/renderers/shared/text-fit.mjs +49 -0
- package/skills/archify/renderers/shared/utils.mjs +232 -0
- package/skills/archify/renderers/shared/validator.mjs +86 -0
- package/skills/archify/renderers/workflow/README.md +223 -0
- package/skills/archify/renderers/workflow/render-workflow.mjs +35 -0
- package/skills/archify/renderers/workflow/workflow-compiler.mjs +4400 -0
- package/skills/archify/renderers/workflow/workflow-migration-geometry.mjs +144 -0
- package/skills/archify/schemas/README.md +211 -0
- package/skills/archify/schemas/architecture.schema.json +176 -0
- package/skills/archify/schemas/common.schema.json +115 -0
- package/skills/archify/schemas/dataflow.schema.json +243 -0
- package/skills/archify/schemas/lifecycle.schema.json +266 -0
- package/skills/archify/schemas/sequence.schema.json +223 -0
- package/skills/archify/schemas/workflow.schema.json +428 -0
- package/skills/archify/scripts/check-render-output.mjs +835 -0
- package/skills/archify/scripts/check-update.mjs +1667 -0
- package/skills/archify/scripts/render-examples.mjs +26 -0
- package/skills/archify/scripts/update-contract.mjs +182 -0
- package/skills/archify/skill-release.json +10 -0
- package/skills/artifacts-builder/SKILL.md +120 -0
- package/skills/artifacts-builder/reference/diagramas.md +123 -0
- package/skills/artifacts-builder/reference/estilo.md +123 -0
- package/skills/artifacts-builder/reference/exportar-pdf.md +56 -0
- package/skills/artifacts-builder/reference/graficas.md +22 -0
- package/skills/artifacts-builder/scripts/bundle_artifact.py +109 -0
- package/skills/artifacts-builder/scripts/validate_artifact.py +345 -0
- package/skills/xone-hotswap/SKILL.md +185 -0
- package/skills/xone-hotswap/references/comandos.md +706 -0
- package/skills/xone-hotswap/references/conexion-y-despliegue.md +226 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EJECUTAR un paso de una receta de instalación, con su salida en vivo.
|
|
3
|
+
*
|
|
4
|
+
* La receta (`core/dispositivos.ts`) se lee y se copia; esto es la fase que la EJECUTA, y
|
|
5
|
+
* solo para los pasos que se pueden cumplir. El criterio era «lo que no puede pedir
|
|
6
|
+
* ENTRADA», y **se afinó midiendo**: lo que descalifica un paso no es que pueda pedir una
|
|
7
|
+
* contraseña, es que pueda quedarse COLGADO pidiéndola.
|
|
8
|
+
*
|
|
9
|
+
* Medido el 10-09-2026, y con la forma EXACTA con que este módulo lanza (`detached: true` y
|
|
10
|
+
* los tres `stdio` en `pipe`): `sudo` lee la contraseña de `/dev/tty` y no de `stdin`, así que
|
|
11
|
+
* un hijo sin terminal de control **falla en 26 ms** con «a terminal is required to read the
|
|
12
|
+
* password». Lo que lo salva no es cerrar `stdin` —hace falta abierto para `sdkmanager`— sino
|
|
13
|
+
* no tener terminal de control, y con `detached` no lo hereda. O sea que el modo de fallo de un `brew` que
|
|
14
|
+
* pidiera contraseña no es un botón colgado —el miedo que dejó los pasos 1 y 2 sin botón—:
|
|
15
|
+
* es un botón que en dos segundos dice qué hace falta. Con eso:
|
|
16
|
+
*
|
|
17
|
+
* - **`brew` entra en la tabla**, y era el paso que faltaba: los pasos 2 y 3 necesitan
|
|
18
|
+
* `sdkmanager`, que es justo lo que instala el 1, así que en una máquina nueva la receta
|
|
19
|
+
* entera no tenía un solo botón vivo. Además, medido: `openjdk@17` es una fórmula y
|
|
20
|
+
* `android-commandlinetools` un Generic Artifact, así que ninguno instala fuera del
|
|
21
|
+
* prefijo de Homebrew y en la práctica no piden nada. Se le pasa `NONINTERACTIVE` y
|
|
22
|
+
* `HOMEBREW_NO_AUTO_UPDATE` para que tampoco pregunte ni se ponga a actualizarse.
|
|
23
|
+
* - **`sdkmanager` y `avdmanager` siguen**: lo único que preguntan son las licencias y el
|
|
24
|
+
* perfil de hardware, y las dos respuestas se alimentan por `stdin`.
|
|
25
|
+
* - **Lo que sigue fuera** son los `export` del `~/.zshrc` —escribir en la shell de alguien
|
|
26
|
+
* es lo único de esto que no sabríamos deshacer, y desde que dejaron de ser un paso ya no
|
|
27
|
+
* se ofrecen ni para copiar desde aquí: van en `Receta.aparte`— y los de la receta de iOS: un `sudo` escrito en
|
|
28
|
+
* el comando fallaría SIEMPRE, y `xcodebuild -downloadPlatform` pide autorización en una
|
|
29
|
+
* VENTANA del sistema, que no falla rápido ni se contesta por `stdin`.
|
|
30
|
+
*
|
|
31
|
+
* Y son justo los pasos LARGOS —2-3 GB—, que es donde un botón mudo se lee como que se ha
|
|
32
|
+
* colgado: de ahí que esto emita cada línea en cuanto sale, en vez de devolver al final.
|
|
33
|
+
*
|
|
34
|
+
* **Las rutas se resuelven AQUÍ y no viajan.** El hijo necesita `ANDROID_HOME` y `JAVA_HOME`,
|
|
35
|
+
* que son rutas de la máquina; van en su entorno, que no sale del host. Por el cable viaja
|
|
36
|
+
* el NOMBRE de la receta y el número del paso — nunca un comando ni un binario, que sería
|
|
37
|
+
* una shell abierta en la máquina del usuario.
|
|
38
|
+
*
|
|
39
|
+
* **Y se mata el GRUPO, no el hijo.** Medido: un padre que deja un nieto vivo (`brew` →
|
|
40
|
+
* `curl`, `sdkmanager` → `java`) sobrevive a `child.kill()` — el nieto seguía descargando
|
|
41
|
+
* después de cancelar. Con `detached: true` el hijo es líder de su grupo y `kill(-pid)` se
|
|
42
|
+
* lo lleva entero.
|
|
43
|
+
*
|
|
44
|
+
* **El coste de `detached`, declarado**: el hijo sale del grupo de procesos del servidor, así
|
|
45
|
+
* que un Ctrl-C en la consola web ya NO se lleva la descarga por delante — antes moría con el
|
|
46
|
+
* padre y ahora sigue. No se arregla aquí porque no es un fallo de este módulo: es que nadie
|
|
47
|
+
* cancela el trabajo en curso al apagar el servidor. Y el otro lado sería peor: sin
|
|
48
|
+
* `detached`, «Cancelar» dejaba el nieto descargando 3 GB sin forma de pararlo desde la
|
|
49
|
+
* ventana. Mientras eso no se cablee, la salida es `brew`/`sdkmanager` acabando solos, que es
|
|
50
|
+
* lo que harían en un terminal.
|
|
51
|
+
*/
|
|
52
|
+
import { join } from "node:path";
|
|
53
|
+
import { existsSync } from "node:fs";
|
|
54
|
+
import { homedir } from "node:os";
|
|
55
|
+
import { jdkDeLaMaquina, localizadorDeAndroid } from "./dispositivosEnMaquina.js";
|
|
56
|
+
import { crearEjecutor, lanzarReal, TOPE_DE_TRABAJO_MS, TOPE_SIN_SALIDA_MS, } from "./procesosEnMaquina.js";
|
|
57
|
+
/**
|
|
58
|
+
* Y esto se REEXPORTA: lo que este módulo exportaba antes de que existiera el ejecutor
|
|
59
|
+
* compartido lo sigue exportando, pero ahora hay UNA sola copia —el `spawn` con `detached`, los
|
|
60
|
+
* dos topes y el hijo—, y la comparten la receta y el lanzamiento en el dispositivo
|
|
61
|
+
* (`procesosEnMaquina.ts`). Un segundo `spawn` allí era un segundo sitio donde el `detached`
|
|
62
|
+
* podía dejar de estar.
|
|
63
|
+
*/
|
|
64
|
+
export { lanzarReal, TOPE_DE_TRABAJO_MS, TOPE_SIN_SALIDA_MS };
|
|
65
|
+
/** El paquete de la imagen del sistema, el mismo que nombra la receta. */
|
|
66
|
+
const IMAGEN = "system-images;android-35;google_apis;arm64-v8a";
|
|
67
|
+
/**
|
|
68
|
+
* Los pasos que xonecode lanza él. Tabla CERRADA y por `receta:paso`: lo que llega del
|
|
69
|
+
* cliente es un número, y un número que no esté aquí no lanza nada.
|
|
70
|
+
*
|
|
71
|
+
* Tiene que coincidir con lo que `core/dispositivos.ts` marca `ejecutable` — un paso con
|
|
72
|
+
* botón que no esté aquí es un botón muerto, y uno lanzable sin botón es una capacidad que
|
|
73
|
+
* nadie puede usar. Lo ata un test que compara las dos listas.
|
|
74
|
+
*/
|
|
75
|
+
export const PASOS_EJECUTABLES = new Map([
|
|
76
|
+
[
|
|
77
|
+
"android-emulador:1",
|
|
78
|
+
{
|
|
79
|
+
binario: "brew",
|
|
80
|
+
// Es el paso que INSTALA el SDK: exigirlo aquí era el círculo que lo dejaba sin botón.
|
|
81
|
+
conSdk: false,
|
|
82
|
+
invocaciones: [
|
|
83
|
+
{ args: ["install", "openjdk@17"], teclear: [] },
|
|
84
|
+
{ args: ["install", "--cask", "android-commandlinetools", "android-platform-tools"], teclear: [] },
|
|
85
|
+
],
|
|
86
|
+
// `NONINTERACTIVE` para que no pregunte nada, y sin auto-update para no gastar
|
|
87
|
+
// minutos actualizando Homebrew antes de instalar lo que se le pidió.
|
|
88
|
+
entornoExtra: { NONINTERACTIVE: "1", HOMEBREW_NO_AUTO_UPDATE: "1", HOMEBREW_NO_ENV_HINTS: "1" },
|
|
89
|
+
titulo: "Instalando el JDK y el SDK de línea de comandos",
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
[
|
|
93
|
+
// El 2 desde que los `export` de la shell dejaron de ser un paso: la tabla va por NÚMERO,
|
|
94
|
+
// así que renumerar la receta es renumerar esto — y el test que compara las dos listas
|
|
95
|
+
// en las dos direcciones es lo que hace que no se pueda quedar descolgada en silencio.
|
|
96
|
+
"android-emulador:2",
|
|
97
|
+
{
|
|
98
|
+
binario: "sdkmanager",
|
|
99
|
+
conSdk: true,
|
|
100
|
+
subcarpeta: join("cmdline-tools", "latest", "bin"),
|
|
101
|
+
invocaciones: [
|
|
102
|
+
{
|
|
103
|
+
// Las licencias PRIMERO y en su propio proceso: `sdkmanager --install` pregunta por
|
|
104
|
+
// las que falten y sin TTY se queda esperando. Aceptarlas es la decisión que el
|
|
105
|
+
// usuario tomó al pulsar, y se DICE en el log para que quede constancia.
|
|
106
|
+
args: ["--licenses"],
|
|
107
|
+
teclear: ["y\n"],
|
|
108
|
+
repetir: 100,
|
|
109
|
+
opcional: true,
|
|
110
|
+
anuncio: "Aceptando las licencias del SDK de Android (lo pediste al pulsar).",
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
// `platform-tools` va AQUÍ y no es un extra: **el emulador se niega a arrancar si la
|
|
114
|
+
// raíz del SDK no los tiene dentro**, y el cask `android-commandlinetools` no los
|
|
115
|
+
// trae. El porqué medido está en `core/dispositivos.ts`, donde el comando se ENSEÑA;
|
|
116
|
+
// esta es la copia que se LANZA, y por eso hay un test que compara las dos: la lista
|
|
117
|
+
// de paquetes está escrita dos veces y sin él podrían divergir en silencio, con el
|
|
118
|
+
// botón instalando una cosa y la ventana enseñando otra.
|
|
119
|
+
args: ["--install", "platform-tools", "emulator", "platforms;android-35", IMAGEN],
|
|
120
|
+
teclear: [],
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
titulo: "Descargando el emulador y la imagen del sistema",
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
[
|
|
127
|
+
"android-emulador:3",
|
|
128
|
+
{
|
|
129
|
+
binario: "avdmanager",
|
|
130
|
+
conSdk: true,
|
|
131
|
+
subcarpeta: join("cmdline-tools", "latest", "bin"),
|
|
132
|
+
invocaciones: [
|
|
133
|
+
// «Do you wish to create a custom hardware profile? [no]»: sin respuesta, cuelga.
|
|
134
|
+
{ args: ["create", "avd", "-n", "pixel8", "-k", IMAGEN, "-d", "pixel_8"], teclear: ["no\n"] },
|
|
135
|
+
],
|
|
136
|
+
titulo: "Creando el dispositivo virtual",
|
|
137
|
+
},
|
|
138
|
+
],
|
|
139
|
+
]);
|
|
140
|
+
/**
|
|
141
|
+
* Lanza el paso `numero` de la receta `receta`, y devuelve el trabajo en curso.
|
|
142
|
+
*
|
|
143
|
+
* Nunca lanza: todo lo que puede ir mal —el paso no es ejecutable, falta el SDK, el proceso
|
|
144
|
+
* no arranca— vuelve como un `ResultadoDeTrabajo` con su motivo de UNA línea. Quien lo llama
|
|
145
|
+
* está atendiendo una petición del navegador y no puede recibir una excepción por algo que
|
|
146
|
+
* es una respuesta.
|
|
147
|
+
*/
|
|
148
|
+
export function correrPasoDeReceta(receta, numero, deps = {}) {
|
|
149
|
+
const plataforma = deps.plataforma ?? process.platform;
|
|
150
|
+
const entorno = deps.entorno ?? process.env;
|
|
151
|
+
const home = deps.home ?? homedir();
|
|
152
|
+
const existe = deps.existe ?? existsSync;
|
|
153
|
+
const ahora = deps.ahora ?? (() => Date.now());
|
|
154
|
+
const t0 = ahora();
|
|
155
|
+
const decir = (linea) => deps.alSalirLinea?.(linea);
|
|
156
|
+
const paso = PASOS_EJECUTABLES.get(`${receta}:${numero}`);
|
|
157
|
+
if (paso === undefined) {
|
|
158
|
+
return {
|
|
159
|
+
titulo: "",
|
|
160
|
+
cancelar: () => { },
|
|
161
|
+
terminado: Promise.resolve({ estado: "fallo", motivo: "ese paso no se lanza desde aquí", ms: 0 }),
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
const { enPath, enSdk, raicesDeSdk } = localizadorDeAndroid({ plataforma, entorno, home, existe });
|
|
165
|
+
const fallar = (motivo) => ({
|
|
166
|
+
titulo: paso.titulo,
|
|
167
|
+
cancelar: () => { },
|
|
168
|
+
terminado: Promise.resolve({ estado: "fallo", motivo, ms: ahora() - t0 }),
|
|
169
|
+
});
|
|
170
|
+
// El entorno del hijo. Con SDK se le montan `ANDROID_HOME` y `JAVA_HOME` y se le añade el
|
|
171
|
+
// SDK al PATH: `avdmanager` llama a `sdkmanager` por su cuenta, y sin eso no se encuentran
|
|
172
|
+
// entre ellos. Sin SDK —el paso que lo instala— basta el entorno de siempre.
|
|
173
|
+
let binario;
|
|
174
|
+
let env = { ...entorno, ...paso.entornoExtra };
|
|
175
|
+
if (paso.conSdk) {
|
|
176
|
+
binario = enSdk(paso.binario, paso.subcarpeta ?? "");
|
|
177
|
+
const sdk = raicesDeSdk.find((raiz) => existe(raiz));
|
|
178
|
+
const jdk = jdkDeLaMaquina(entorno, existe);
|
|
179
|
+
if (binario === undefined || sdk === undefined || jdk === undefined) {
|
|
180
|
+
// Se dice QUÉ falta y dónde se arregla, no «no se pudo»: el paso 1 es el que lo instala.
|
|
181
|
+
const que = binario === undefined || sdk === undefined ? "el SDK de línea de comandos" : "el JDK";
|
|
182
|
+
return fallar(`falta ${que}: hazlo con el paso 1 y vuelve a mirar`);
|
|
183
|
+
}
|
|
184
|
+
env = {
|
|
185
|
+
...env,
|
|
186
|
+
ANDROID_HOME: sdk,
|
|
187
|
+
ANDROID_SDK_ROOT: sdk,
|
|
188
|
+
JAVA_HOME: jdk,
|
|
189
|
+
PATH: `${entorno.PATH ?? ""}:${join(sdk, "emulator")}:${join(sdk, "platform-tools")}`,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
binario = enPath(paso.binario);
|
|
194
|
+
if (binario === undefined) {
|
|
195
|
+
return fallar(`falta ${paso.binario}: instálalo y vuelve a mirar`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
let cancelado = false;
|
|
199
|
+
// El ejecutor es el MISMO de `procesosEnMaquina.ts`, que es el que usa también el lanzamiento
|
|
200
|
+
// en el dispositivo: los topes, el troceado por líneas y el `kill` del GRUPO viven una sola
|
|
201
|
+
// vez. `lanzar` y `matarGrupo` siguen siendo PUERTOS de este módulo, y entran por aquí.
|
|
202
|
+
const ejecutor = crearEjecutor({ lanzar: deps.lanzar, matarGrupo: deps.matarGrupo, entorno });
|
|
203
|
+
const terminado = (async () => {
|
|
204
|
+
let ultimo = { estado: "ok", ms: ahora() - t0 };
|
|
205
|
+
for (const invocacion of paso.invocaciones) {
|
|
206
|
+
if (cancelado)
|
|
207
|
+
return { estado: "cancelada", ms: ahora() - t0 };
|
|
208
|
+
if (invocacion.anuncio !== undefined)
|
|
209
|
+
decir(invocacion.anuncio);
|
|
210
|
+
// Se espera AQUÍ mismo, sin envolver la llamada en una función `async`: el ejecutor
|
|
211
|
+
// resuelve en el CIERRE del hijo, y un `await` de más metería un tick entre el proceso de
|
|
212
|
+
// las licencias y el de la descarga, que son los dos del paso 2 y van encadenados.
|
|
213
|
+
ultimo = unResultado(await ejecutor.correr(binario, invocacion.args, {
|
|
214
|
+
env,
|
|
215
|
+
teclear: invocacion.teclear,
|
|
216
|
+
repetir: invocacion.repetir,
|
|
217
|
+
alSalirLinea: decir,
|
|
218
|
+
}));
|
|
219
|
+
// Cancelada y colgada cortan siempre: no se sigue instalando lo que nadie espera.
|
|
220
|
+
if (ultimo.estado === "cancelada" || ultimo.estado === "colgada")
|
|
221
|
+
return ultimo;
|
|
222
|
+
// Un fallo corta el paso salvo que esa llamada sea opcional (las licencias).
|
|
223
|
+
if (ultimo.estado === "fallo" && invocacion.opcional !== true)
|
|
224
|
+
return ultimo;
|
|
225
|
+
}
|
|
226
|
+
return { estado: "ok", ms: ahora() - t0 };
|
|
227
|
+
})();
|
|
228
|
+
/**
|
|
229
|
+
* Lo que dijo el ejecutor, en el vocabulario de esta receta. El `ms` se mide desde que empezó
|
|
230
|
+
* el PASO, no desde que arrancó el proceso: lo que la ventana enseña es lo que lleva el paso.
|
|
231
|
+
*/
|
|
232
|
+
function unResultado(fin) {
|
|
233
|
+
const ms = ahora() - t0;
|
|
234
|
+
if (fin.estado !== "colgada") {
|
|
235
|
+
return { estado: fin.estado, ...(fin.estado === "fallo" ? { motivo: fin.motivo } : {}), ms };
|
|
236
|
+
}
|
|
237
|
+
// Los DOS topes salen con la frase del silencio, que es la que este módulo dice desde
|
|
238
|
+
// siempre: aquí el tope total es la red de seguridad de una descarga que habla, y no hay
|
|
239
|
+
// una medida que pida dos frases. El lanzamiento SÍ las distingue, y por eso el ejecutor
|
|
240
|
+
// devuelve la causa y no la frase.
|
|
241
|
+
return { estado: "colgada", motivo: `no dijo nada en ${Math.round(TOPE_SIN_SALIDA_MS / 60_000)} min`, ms };
|
|
242
|
+
}
|
|
243
|
+
return {
|
|
244
|
+
titulo: paso.titulo,
|
|
245
|
+
cancelar: () => {
|
|
246
|
+
cancelado = true;
|
|
247
|
+
ejecutor.cancelar();
|
|
248
|
+
},
|
|
249
|
+
terminado,
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=instalacionEnMaquina.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instalacionEnMaquina.js","sourceRoot":"","sources":["../../src/agent/instalacionEnMaquina.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
2
|
import { promisify } from "node:util";
|
|
3
3
|
import { createHash } from "node:crypto";
|
|
4
|
-
import {
|
|
5
|
-
import { tmpdir } from "node:os";
|
|
4
|
+
import { readFileSync, readdirSync, statSync, existsSync } from "node:fs";
|
|
6
5
|
import { join } from "node:path";
|
|
6
|
+
import { indicePrivado, claseDeCambio, sacarXonecodeDelIndice } from "./git.js";
|
|
7
7
|
const ejecutar = promisify(execFile);
|
|
8
|
-
/** Índice de git propio y temporal: ni toca el del usuario ni lo comparten dos sesiones. */
|
|
9
|
-
function indicePrivado() {
|
|
10
|
-
const dir = mkdtempSync(join(tmpdir(), "xonecode-idx-"));
|
|
11
|
-
return { ruta: join(dir, "git.index"), limpiar: () => rmSync(dir, { recursive: true, force: true }) };
|
|
12
|
-
}
|
|
13
|
-
const CLASE = { A: "nuevo", D: "borrado", M: "modificado", R: "modificado", C: "modificado" };
|
|
14
8
|
/**
|
|
15
9
|
* La foto por árbol de git.
|
|
16
10
|
*
|
|
@@ -24,12 +18,15 @@ const CLASE = { A: "nuevo", D: "borrado", M: "modificado", R: "modificado", C: "
|
|
|
24
18
|
*/
|
|
25
19
|
async function porArbol(raiz, prefijo) {
|
|
26
20
|
const escribirArbol = async () => {
|
|
27
|
-
const idx = indicePrivado();
|
|
21
|
+
const idx = indicePrivado("idx");
|
|
28
22
|
try {
|
|
29
23
|
await ejecutar("git", ["add", "-A", "--", "."], {
|
|
30
24
|
cwd: raiz,
|
|
31
25
|
env: { ...process.env, GIT_INDEX_FILE: idx.ruta },
|
|
32
26
|
});
|
|
27
|
+
// Y fuera `.xonecode`: en un proyecto offline no está ignorada, y desde que ahí vive
|
|
28
|
+
// el checkpointer eso serían 30 MB de blobs en `.git/objects` por cada foto.
|
|
29
|
+
await sacarXonecodeDelIndice(ejecutar, raiz, idx.ruta);
|
|
33
30
|
const { stdout } = await ejecutar("git", ["write-tree"], {
|
|
34
31
|
cwd: raiz,
|
|
35
32
|
env: { ...process.env, GIT_INDEX_FILE: idx.ruta },
|
|
@@ -55,7 +52,7 @@ async function porArbol(raiz, prefijo) {
|
|
|
55
52
|
.filter((l) => l.trim())
|
|
56
53
|
.map((l) => {
|
|
57
54
|
const [estado, ...resto] = l.split("\t");
|
|
58
|
-
return { ruta: recortar(resto[resto.length - 1].trim()), clase:
|
|
55
|
+
return { ruta: recortar(resto[resto.length - 1].trim()), clase: claseDeCambio(estado) };
|
|
59
56
|
});
|
|
60
57
|
},
|
|
61
58
|
async diff() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instantanea.js","sourceRoot":"","sources":["../../src/agent/instantanea.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"instantanea.js","sourceRoot":"","sources":["../../src/agent/instantanea.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/interrupts.js
CHANGED
|
@@ -19,13 +19,22 @@ export async function pendientesDe(agente, config) {
|
|
|
19
19
|
* El `origen` sale de la `description`, que es donde `hitlDe()` metió el nombre del perfil
|
|
20
20
|
* —`[dev] quiere escribir un fichero del proyecto`—: **el interrupt no dice de qué
|
|
21
21
|
* subagente viene**, y `dev` y `mockup` comparten `write_file`.
|
|
22
|
+
*
|
|
23
|
+
* **Y una vez extraído, el prefijo se QUITA de la descripción.** Las tres pieles pintan los
|
|
24
|
+
* dos campos, uno debajo del otro (`cli/aprobar.ts`, `cli/tui/aprobarTui.tsx`,
|
|
25
|
+
* `componentes/Aprobacion.tsx`), así que dejarlo decía lo mismo dos veces pegado: «[dev]
|
|
26
|
+
* quiere modificar un fichero del proyecto» y justo debajo «quién: dev». Se quita aquí y no
|
|
27
|
+
* en cada piel porque el dato es uno y el sitio donde vive es `origen` — tres recortes a
|
|
28
|
+
* mano son tres sitios donde divergir. Sin corchete no hay nada que quitar y la descripción
|
|
29
|
+
* se queda tal cual: es la de un interrupt que no pasó por `hitlDe` (el `Ejecutar <tool>`
|
|
30
|
+
* de reserva de `collectPending`), y ahí `origen` es el nombre de la tool.
|
|
22
31
|
*/
|
|
23
32
|
export function aPendiente(p) {
|
|
24
|
-
const m = /^\[([^\]]+)\]
|
|
33
|
+
const m = /^\[([^\]]+)\]\s*/.exec(p.description);
|
|
25
34
|
return {
|
|
26
35
|
id: p.id,
|
|
27
36
|
origen: m?.[1] ?? p.tool,
|
|
28
|
-
descripcion: p.description,
|
|
37
|
+
descripcion: m === null ? p.description : p.description.slice(m[0].length),
|
|
29
38
|
decisionesPermitidas: p.allowedDecisions,
|
|
30
39
|
};
|
|
31
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interrupts.js","sourceRoot":"","sources":["../../src/agent/interrupts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAwC,MAAM,mBAAmB,CAAC;AAEtG,OAAO,EAAE,YAAY,EAAoB,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAwC,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAe,EAAE,MAAe;IACjE,8DAA8D;IAC9D,MAAM,MAAM,GAAG,MAAO,MAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"interrupts.js","sourceRoot":"","sources":["../../src/agent/interrupts.ts"],"names":[],"mappings":"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"}
|