xonecode 0.2.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 +70 -10
- 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,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qué puede escribir un agente externo con motor **codex**, y quién lo autoriza.
|
|
3
|
+
*
|
|
4
|
+
* Este fichero es el gemelo de `escrituraExterna.ts` para el otro motor, y existe por la
|
|
5
|
+
* misma razón: las rutas que Codex propone son **absolutas** y van al disco directas, así
|
|
6
|
+
* que ninguna de las cuatro capas que protegen al proyecto por el camino de LangGraph
|
|
7
|
+
* —`permisosDe`, el `virtualMode`, las vistas aplanadas y las guardas de artefactos y
|
|
8
|
+
* descargas— las ve. Lo que NO se hace aquí es volver a escribir esas guardas: se llama a
|
|
9
|
+
* `veredictoDeRuta`, la misma función, porque un segundo sitio donde decidir sobre una ruta
|
|
10
|
+
* sería un segundo sitio donde el fail-closed puede dejar de estarlo.
|
|
11
|
+
*
|
|
12
|
+
* Lo propio de Codex es solo la FORMA, y está medida contra el binario real (codex-cli
|
|
13
|
+
* 0.152.1, 11-09-2026, tres ejecuciones):
|
|
14
|
+
*
|
|
15
|
+
* - **La palanca es `approvalPolicy`, no `sandbox`.** Con `sandbox: "workspace-write"` las
|
|
16
|
+
* escrituras dentro del cwd ocurren solas y no vuelven a xonecode — que es exactamente el
|
|
17
|
+
* motivo por el que `core/agentes.ts` rechazaba un `.md` de codex que pidiera escribir.
|
|
18
|
+
* Con `sandbox: "read-only"` + `approvalPolicy: "on-request"`, la denegación la sigue
|
|
19
|
+
* poniendo la caja del sistema operativo y cada escritura llega como una PETICIÓN que
|
|
20
|
+
* contestamos nosotros: el mismo papel que el `ask` del hook `PreToolUse` en Claude Code.
|
|
21
|
+
* Medido: al contestar `accept` el fichero se escribe, y al contestar `decline` no queda
|
|
22
|
+
* fichero, el item queda `declined` y el turno SIGUE (el agente lo cuenta en su respuesta).
|
|
23
|
+
* Por eso el sandbox se queda en `read-only` SIEMPRE, también con la escritura concedida:
|
|
24
|
+
* no existe ningún modo en el que Codex escriba sin pasar por aquí.
|
|
25
|
+
*
|
|
26
|
+
* - **La petición no dice sobre QUÉ se decide.** `item/fileChange/requestApproval` trae
|
|
27
|
+
* `{threadId, turnId, itemId, startedAtMs, reason, grantRoot}` y nada más; los ficheros
|
|
28
|
+
* vienen ANTES, en el `item/started` cuyo `item.id` es ese `itemId`. De ahí que el
|
|
29
|
+
* adaptador lleve un registro de items: sin él no hay diff que enseñar, y sin diff no hay
|
|
30
|
+
* decisión que tomar.
|
|
31
|
+
*
|
|
32
|
+
* - **`add` y `update` no traen lo mismo en `diff`**: en `add` es el CONTENIDO entero
|
|
33
|
+
* (`"medido.\n"`), y en `update` un hunk unificado
|
|
34
|
+
* (`"@@ -1,3 +1,3 @@\n uno\n-dos\n+DOS\n tres\n"`). Por eso `cambioDe()` no sirve aquí
|
|
35
|
+
* —espera los argumentos de un `Write`/`Edit`— y hay una traducción propia a
|
|
36
|
+
* `LineaDeDiff[]`, que es lo único que las tres pieles saben pintar.
|
|
37
|
+
*/
|
|
38
|
+
import { decisionDeEscrituraExterna, veredictoDeEscriturasExternas, } from "./escrituraExterna.js";
|
|
39
|
+
/**
|
|
40
|
+
* El diff de un cambio, traducido a lo que pintan las pieles.
|
|
41
|
+
*
|
|
42
|
+
* Dos formas y no una, porque el binario manda dos (medido):
|
|
43
|
+
* - `add`: el contenido entero, sin cabeceras. Todo es línea AÑADIDA.
|
|
44
|
+
* - `update`: hunks unificados. Se tira la cabecera `@@ …@@` y la marca
|
|
45
|
+
* ``, que no son contenido del fichero; el primer carácter de
|
|
46
|
+
* lo demás dice el tipo.
|
|
47
|
+
*
|
|
48
|
+
* **Límite declarado**: con varios hunks, las líneas de uno y de otro salen seguidas, sin
|
|
49
|
+
* decir que en medio hay fichero que no cambia. Meter un separador exigiría inventar una
|
|
50
|
+
* línea que no está en el fichero, y `LineaDeDiff` no tiene forma de marcarla como tal.
|
|
51
|
+
*/
|
|
52
|
+
export function lineasDeCambioDeCodex(kind, diff) {
|
|
53
|
+
if (typeof diff !== "string" || diff === "")
|
|
54
|
+
return [];
|
|
55
|
+
const crudas = diff.split("\n");
|
|
56
|
+
// El salto final de un texto normal no es una línea vacía — la misma regla que
|
|
57
|
+
// `core/diff.ts#lineasDe`, y por lo mismo: si no, todo diff acabaría con una línea de más.
|
|
58
|
+
if (crudas.length > 0 && crudas[crudas.length - 1] === "")
|
|
59
|
+
crudas.pop();
|
|
60
|
+
if (kind === "add")
|
|
61
|
+
return crudas.map((texto) => ({ tipo: "anadido", texto }));
|
|
62
|
+
const salida = [];
|
|
63
|
+
for (const linea of crudas) {
|
|
64
|
+
if (linea.startsWith("@@"))
|
|
65
|
+
continue;
|
|
66
|
+
if (linea.startsWith("\\"))
|
|
67
|
+
continue;
|
|
68
|
+
if (linea.startsWith("-"))
|
|
69
|
+
salida.push({ tipo: "quitado", texto: linea.slice(1) });
|
|
70
|
+
else if (linea.startsWith("+"))
|
|
71
|
+
salida.push({ tipo: "anadido", texto: linea.slice(1) });
|
|
72
|
+
// Una línea de contexto llega con un espacio delante; una vacía llega vacía de verdad,
|
|
73
|
+
// y entonces no hay prefijo que quitar.
|
|
74
|
+
else
|
|
75
|
+
salida.push({ tipo: "igual", texto: linea.startsWith(" ") ? linea.slice(1) : linea });
|
|
76
|
+
}
|
|
77
|
+
return salida;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Los cambios de un item, traducidos a escrituras propuestas y comprobados contra las guardas.
|
|
81
|
+
*
|
|
82
|
+
* Lo propio de Codex es solo esto: reconocer el `kind` y componer las líneas. Las guardas de
|
|
83
|
+
* ruta y la política son `escrituraExterna.ts`, compartidas con el otro motor que escribe por
|
|
84
|
+
* petición.
|
|
85
|
+
*
|
|
86
|
+
* **`delete` y `move_path` se deniegan, y está declarado.** En Claude Code esa escritura no
|
|
87
|
+
* existe —no hay tool de borrar ni de renombrar, así que las listas ni la nombran—, `cambioDe`
|
|
88
|
+
* no sabe componer su diff, y un renombrado son DOS destinos que habría que guardar por
|
|
89
|
+
* separado. Es la paridad conservadora entre motores, y se afloja el día que se mida.
|
|
90
|
+
*/
|
|
91
|
+
export function veredictoDeCambiosDeCodex(opciones) {
|
|
92
|
+
const traducidas = propuestasDeCambios(opciones.cambios);
|
|
93
|
+
if ("motivo" in traducidas)
|
|
94
|
+
return { admitidas: false, motivo: traducidas.motivo };
|
|
95
|
+
return veredictoDeEscriturasExternas({ ...opciones, propuestas: traducidas.propuestas });
|
|
96
|
+
}
|
|
97
|
+
/** Traduce los `changes` de Codex, o dice por qué no se puede. */
|
|
98
|
+
function propuestasDeCambios(cambios) {
|
|
99
|
+
if (!Array.isArray(cambios) || cambios.length === 0) {
|
|
100
|
+
return { motivo: "no dijiste qué ficheros cambiabas, y sin eso no hay nada que autorizar" };
|
|
101
|
+
}
|
|
102
|
+
const propuestas = [];
|
|
103
|
+
for (const crudo of cambios) {
|
|
104
|
+
const tipo = crudo?.kind?.type;
|
|
105
|
+
if (tipo === "delete") {
|
|
106
|
+
return {
|
|
107
|
+
motivo: "xonecode no autoriza que un agente externo BORRE ficheros del proyecto: solo crear y modificar. " +
|
|
108
|
+
"Di qué habría que borrar y por qué.",
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
if (crudo?.kind?.move_path !== undefined && crudo.kind.move_path !== null) {
|
|
112
|
+
return {
|
|
113
|
+
motivo: "xonecode no autoriza que un agente externo RENOMBRE ni mueva ficheros del proyecto: solo crear y modificar.",
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
if (tipo !== "add" && tipo !== "update") {
|
|
117
|
+
// Lo que no se reconoce se deniega: es la misma regla que las tres listas de tools.
|
|
118
|
+
return { motivo: `xonecode no reconoce este tipo de cambio y no lo autoriza: ${String(tipo)}` };
|
|
119
|
+
}
|
|
120
|
+
propuestas.push({ ruta: crudo?.path, lineas: lineasDeCambioDeCodex(tipo, crudo?.diff) });
|
|
121
|
+
}
|
|
122
|
+
return { propuestas };
|
|
123
|
+
}
|
|
124
|
+
/** La decisión entera para Codex: traducir, y de ahí en adelante el camino compartido. */
|
|
125
|
+
export async function decisionDeEscrituraDeCodex(opciones) {
|
|
126
|
+
const traducidas = propuestasDeCambios(opciones.cambios);
|
|
127
|
+
if ("motivo" in traducidas) {
|
|
128
|
+
// La traducción falla ANTES de la política: preguntar por un borrado que se va a denegar
|
|
129
|
+
// igual sería sacar un modal cuyo único final posible es un rechazo.
|
|
130
|
+
return { concedida: false, motivo: traducidas.motivo };
|
|
131
|
+
}
|
|
132
|
+
return decisionDeEscrituraExterna({ ...opciones, propuestas: traducidas.propuestas });
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=escrituraDeCodex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escrituraDeCodex.js","sourceRoot":"","sources":["../../src/agent/escrituraDeCodex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qué puede escribir un agente externo con motor **opencode**, y quién lo autoriza.
|
|
3
|
+
*
|
|
4
|
+
* El tercer motor, y el que menos código propio necesita: su petición de permiso trae TODO en
|
|
5
|
+
* un solo mensaje. Medido contra el binario real (opencode 1.18.27, 11-09-2026):
|
|
6
|
+
*
|
|
7
|
+
* session/request_permission {
|
|
8
|
+
* toolCall: { toolCallId, title, kind: "edit", status, locations: [{path}],
|
|
9
|
+
* rawInput: {filepath, diff}, content: [{type:"diff", path, oldText, newText}] },
|
|
10
|
+
* options: [ {optionId:"once"}, {optionId:"always"}, {optionId:"reject"} ] }
|
|
11
|
+
*
|
|
12
|
+
* De ahí salen las dos cosas que hacen falta y nada más: la RUTA (absoluta, como en los otros
|
|
13
|
+
* dos motores) y el ANTES y el DESPUÉS. **`oldText`/`newText` entran directos en
|
|
14
|
+
* `core/diff.ts#diffDeLineas`**, que es la misma función que compone el diff de una aprobación
|
|
15
|
+
* del grafo — así que aquí no hay ni registro de items (como en Codex, cuya petición solo trae
|
|
16
|
+
* un `itemId`) ni parser de hunks. Es la forma más sencilla de las tres.
|
|
17
|
+
*
|
|
18
|
+
* Las guardas de ruta y la política NO se reescriben: son `escrituraExterna.ts`, compartidas.
|
|
19
|
+
* Y se reaplican aunque la configuración de opencode ya deniegue por su cuenta: esa capa es
|
|
20
|
+
* NUESTRA configuración, pero quien la aplica es él. La guarda de xonecode es código.
|
|
21
|
+
*/
|
|
22
|
+
import { diffDeLineas } from "../core/diff.js";
|
|
23
|
+
import { decisionDeEscrituraExterna, veredictoDeEscriturasExternas, } from "./escrituraExterna.js";
|
|
24
|
+
/**
|
|
25
|
+
* Las escrituras que propone un `toolCall`, o el motivo por el que no se puede decidir.
|
|
26
|
+
*
|
|
27
|
+
* **Solo `kind: "edit"`.** Lo que no sea una edición no tiene diff que componer, y decidir
|
|
28
|
+
* sobre una escritura sin poder enseñarla es justo lo que este camino existe para impedir —
|
|
29
|
+
* el mismo argumento por el que en Codex un `item/commandExecution/requestApproval` se deniega
|
|
30
|
+
* siempre. La configuración ya le quita `bash`, `webfetch` y `websearch`; esto es la segunda
|
|
31
|
+
* llave, por si esa capa fallara.
|
|
32
|
+
*
|
|
33
|
+
* Del `content` se leen los trozos `diff`, que es donde vienen el antes y el después. Si no
|
|
34
|
+
* hay ninguno se cae a `locations`, **y entonces se pregunta igual con el diff vacío**: decidir
|
|
35
|
+
* sin diff es peor que decidir con diff, pero escribir sin decisión es lo que esto evita.
|
|
36
|
+
*/
|
|
37
|
+
export function propuestasDeToolCall(toolCall) {
|
|
38
|
+
const kind = toolCall?.kind;
|
|
39
|
+
if (kind !== "edit") {
|
|
40
|
+
return {
|
|
41
|
+
motivo: `xonecode solo autoriza ediciones de fichero a un agente externo, y esto no lo es: ${String(kind)}`,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const propuestas = [];
|
|
45
|
+
if (Array.isArray(toolCall?.content)) {
|
|
46
|
+
for (const trozo of toolCall.content) {
|
|
47
|
+
if (trozo?.["type"] !== "diff")
|
|
48
|
+
continue;
|
|
49
|
+
const antes = typeof trozo["oldText"] === "string" ? trozo["oldText"] : "";
|
|
50
|
+
const despues = typeof trozo["newText"] === "string" ? trozo["newText"] : "";
|
|
51
|
+
propuestas.push({ ruta: trozo["path"], lineas: diffDeLineas(antes, despues) });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (propuestas.length === 0 && Array.isArray(toolCall?.locations)) {
|
|
55
|
+
for (const sitio of toolCall.locations) {
|
|
56
|
+
propuestas.push({ ruta: sitio?.["path"], lineas: [] });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (propuestas.length === 0) {
|
|
60
|
+
return { motivo: "no dijiste qué ficheros cambiabas, y sin eso no hay nada que autorizar" };
|
|
61
|
+
}
|
|
62
|
+
return { propuestas };
|
|
63
|
+
}
|
|
64
|
+
/** El veredicto de ruta de un `toolCall`, para poder probar la traducción aparte. */
|
|
65
|
+
export function veredictoDeToolCall(opciones) {
|
|
66
|
+
const traducidas = propuestasDeToolCall(opciones.toolCall);
|
|
67
|
+
if ("motivo" in traducidas)
|
|
68
|
+
return { admitidas: false, motivo: traducidas.motivo };
|
|
69
|
+
return veredictoDeEscriturasExternas({ ...opciones, propuestas: traducidas.propuestas });
|
|
70
|
+
}
|
|
71
|
+
/** La decisión entera: traducir, y de ahí en adelante el camino compartido con Codex. */
|
|
72
|
+
export async function decisionDeEscrituraDeOpencode(opciones) {
|
|
73
|
+
const traducidas = propuestasDeToolCall(opciones.toolCall);
|
|
74
|
+
// La traducción falla ANTES de la política: preguntar por algo que se va a denegar igual
|
|
75
|
+
// sería sacar un modal cuyo único final posible es un rechazo.
|
|
76
|
+
if ("motivo" in traducidas)
|
|
77
|
+
return { concedida: false, motivo: traducidas.motivo };
|
|
78
|
+
return decisionDeEscrituraExterna({ ...opciones, propuestas: traducidas.propuestas });
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=escrituraDeOpencode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escrituraDeOpencode.js","sourceRoot":"","sources":["../../src/agent/escrituraDeOpencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EACL,0BAA0B,EAG1B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAS/B;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAwC;IAC3E,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,CAAC;IAC5B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO;YACL,MAAM,EAAE,qFAAqF,MAAM,CAAC,IAAI,CAAC,EAAE;SAC5G,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAyC,EAAE,CAAC;YACvE,IAAI,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,MAAM;gBAAE,SAAS;YACzC,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,SAA2C,EAAE,CAAC;YACzE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,wEAAwE,EAAE,CAAC;IAC9F,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,mBAAmB,CAAC,QAMnC;IACC,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,QAAQ,IAAI,UAAU;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;IACnF,OAAO,6BAA6B,CAAC,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,QAOnD;IACC,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3D,yFAAyF;IACzF,+DAA+D;IAC/D,IAAI,QAAQ,IAAI,UAAU;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;IACnF,OAAO,0BAA0B,CAAC,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;AACxF,CAAC"}
|