theus-cli-linux-arm64 1.2.1 → 1.3.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 +15 -0
- package/RELEASE.json +6 -6
- package/bin/theus +0 -0
- package/package.json +1 -1
- package/vendor/chrome-extension/README.md +142 -0
- package/vendor/chrome-extension/background.js +540 -0
- package/vendor/chrome-extension/cdp-core.js +400 -0
- package/vendor/chrome-extension/cdp-core.test.ts +321 -0
- package/vendor/chrome-extension/cdp.js +672 -0
- package/vendor/chrome-extension/icons/icon128.png +0 -0
- package/vendor/chrome-extension/icons/icon16.png +0 -0
- package/vendor/chrome-extension/icons/icon32.png +0 -0
- package/vendor/chrome-extension/icons/icon48.png +0 -0
- package/vendor/chrome-extension/manifest.json +36 -0
- package/vendor/chrome-extension/popup.html +78 -0
- package/vendor/chrome-extension/popup.js +47 -0
- package/vendor/chrome-extension/recorder.js +316 -0
- package/vendor/higiene-motor/PARCHES.md +244 -0
- package/vendor/higiene-motor/audit_dir.py +166 -0
- package/vendor/higiene-motor/audit_lib.py +333 -0
- package/vendor/higiene-motor/audit_website.py +635 -0
- package/vendor/higiene-motor/av_meta.py +498 -0
- package/vendor/higiene-motor/check_staged.py +71 -0
- package/vendor/higiene-motor/clean_ctrlregen.py +212 -0
- package/vendor/higiene-motor/clean_file.py +237 -0
- package/vendor/higiene-motor/clean_image.py +218 -0
- package/vendor/higiene-motor/clean_staged.py +143 -0
- package/vendor/higiene-motor/clean_text.py +108 -0
- package/vendor/higiene-motor/common.py +486 -0
- package/vendor/higiene-motor/container_meta.py +2522 -0
- package/vendor/higiene-motor/detect_gumbel.py +308 -0
- package/vendor/higiene-motor/detect_text_watermark.py +613 -0
- package/vendor/higiene-motor/format_dispatch.py +157 -0
- package/vendor/higiene-motor/hook_written_file.py +253 -0
- package/vendor/higiene-motor/image_meta.py +2171 -0
- package/vendor/higiene-motor/inspect_file.py +138 -0
- package/vendor/higiene-motor/inspect_image.py +72 -0
- package/vendor/higiene-motor/inspect_text.py +86 -0
- package/vendor/higiene-motor/markdiffusion_harness.py +533 -0
- package/vendor/higiene-motor/rewrite_text.py +737 -0
- package/vendor/higiene-motor/score_stylometry.py +460 -0
- package/vendor/higiene-motor/score_synthid.py +165 -0
- package/vendor/higiene-motor/server.py +1059 -0
- package/vendor/higiene-motor/synthid_score_server.py +176 -0
- package/vendor/higiene-motor/text_detectors.py +433 -0
- package/vendor/higiene-motor/text_unicode.py +730 -0
- package/vendor/theus-arsenal/.arsenal-nombres-ola2.json +0 -6
- package/vendor/theus-arsenal/.arsenal-nombres-ola3.json +0 -72
- package/vendor/theus-arsenal/.mailmap +0 -2
- package/vendor/theus-arsenal/.theus-plugin/marketplace.json +0 -25
- package/vendor/theus-arsenal/.theus-plugin/plugin.json +0 -20
- package/vendor/theus-arsenal/AUTHORS.md +0 -8
- package/vendor/theus-arsenal/CLEANROOM_REPLACEMENT_PLAN.md +0 -11
- package/vendor/theus-arsenal/LICENSE +0 -26
- package/vendor/theus-arsenal/PROVENANCE.md +0 -9
- package/vendor/theus-arsenal/README.md +0 -41
- package/vendor/theus-arsenal/THIRD_PARTY.md +0 -80
- package/vendor/theus-arsenal/agents/actualizador-docs.md +0 -123
- package/vendor/theus-arsenal/agents/analista-comentarios.md +0 -53
- package/vendor/theus-arsenal/agents/analista-conversaciones.md +0 -60
- package/vendor/theus-arsenal/agents/analista-tests-pr.md +0 -53
- package/vendor/theus-arsenal/agents/analista-tipos.md +0 -49
- package/vendor/theus-arsenal/agents/arquitecto-accesibilidad.md +0 -148
- package/vendor/theus-arsenal/agents/arquitecto-codigo.md +0 -79
- package/vendor/theus-arsenal/agents/arquitecto-homelab.md +0 -90
- package/vendor/theus-arsenal/agents/arquitecto-redes.md +0 -116
- package/vendor/theus-arsenal/agents/arquitecto-sistemas.md +0 -219
- package/vendor/theus-arsenal/agents/bifurcador-opensource.md +0 -206
- package/vendor/theus-arsenal/agents/cazador-fallos-silenciosos.md +0 -58
- package/vendor/theus-arsenal/agents/consultor-documentacion.md +0 -76
- package/vendor/theus-arsenal/agents/diagnosticador-redes.md +0 -135
- package/vendor/theus-arsenal/agents/ejecutor-e2e.md +0 -96
- package/vendor/theus-arsenal/agents/empaquetador-opensource.md +0 -257
- package/vendor/theus-arsenal/agents/escaner-secretos.md +0 -196
- package/vendor/theus-arsenal/agents/especialista-seo.md +0 -70
- package/vendor/theus-arsenal/agents/estratega-marketing.md +0 -158
- package/vendor/theus-arsenal/agents/evaluador-agentes.md +0 -214
- package/vendor/theus-arsenal/agents/evaluador-harness.md +0 -217
- package/vendor/theus-arsenal/agents/explorador-codigo.md +0 -79
- package/vendor/theus-arsenal/agents/extractor-specs.md +0 -214
- package/vendor/theus-arsenal/agents/generador-harness.md +0 -139
- package/vendor/theus-arsenal/agents/guia-tdd.md +0 -99
- package/vendor/theus-arsenal/agents/jefe-de-gabinete.md +0 -162
- package/vendor/theus-arsenal/agents/limpiador-refactors.md +0 -93
- package/vendor/theus-arsenal/agents/optimizador-rendimiento.md +0 -454
- package/vendor/theus-arsenal/agents/planificador-harness.md +0 -107
- package/vendor/theus-arsenal/agents/planificador.md +0 -221
- package/vendor/theus-arsenal/agents/resolutor-apps-harmonyos.md +0 -181
- package/vendor/theus-arsenal/agents/resolutor-builds-cpp.md +0 -98
- package/vendor/theus-arsenal/agents/resolutor-builds-dart.md +0 -209
- package/vendor/theus-arsenal/agents/resolutor-builds-django.md +0 -253
- package/vendor/theus-arsenal/agents/resolutor-builds-go.md +0 -102
- package/vendor/theus-arsenal/agents/resolutor-builds-java.md +0 -274
- package/vendor/theus-arsenal/agents/resolutor-builds-kotlin.md +0 -128
- package/vendor/theus-arsenal/agents/resolutor-builds-pytorch.md +0 -128
- package/vendor/theus-arsenal/agents/resolutor-builds-react.md +0 -214
- package/vendor/theus-arsenal/agents/resolutor-builds-rust.md +0 -156
- package/vendor/theus-arsenal/agents/resolutor-builds-swift.md +0 -169
- package/vendor/theus-arsenal/agents/resolutor-builds.md +0 -122
- package/vendor/theus-arsenal/agents/revisor-bd.md +0 -97
- package/vendor/theus-arsenal/agents/revisor-codigo.md +0 -291
- package/vendor/theus-arsenal/agents/revisor-config-red.md +0 -116
- package/vendor/theus-arsenal/agents/revisor-cpp.md +0 -80
- package/vendor/theus-arsenal/agents/revisor-csharp.md +0 -109
- package/vendor/theus-arsenal/agents/revisor-django.md +0 -168
- package/vendor/theus-arsenal/agents/revisor-fastapi.md +0 -82
- package/vendor/theus-arsenal/agents/revisor-flutter.md +0 -251
- package/vendor/theus-arsenal/agents/revisor-go.md +0 -84
- package/vendor/theus-arsenal/agents/revisor-java.md +0 -192
- package/vendor/theus-arsenal/agents/revisor-kotlin.md +0 -171
- package/vendor/theus-arsenal/agents/revisor-ml.md +0 -159
- package/vendor/theus-arsenal/agents/revisor-php.md +0 -108
- package/vendor/theus-arsenal/agents/revisor-python.md +0 -106
- package/vendor/theus-arsenal/agents/revisor-react.md +0 -166
- package/vendor/theus-arsenal/agents/revisor-rust.md +0 -102
- package/vendor/theus-arsenal/agents/revisor-seguridad.md +0 -116
- package/vendor/theus-arsenal/agents/revisor-software-clinico.md +0 -95
- package/vendor/theus-arsenal/agents/revisor-swift.md +0 -115
- package/vendor/theus-arsenal/agents/revisor-typescript.md +0 -123
- package/vendor/theus-arsenal/agents/revisor-vue.md +0 -205
- package/vendor/theus-arsenal/agents/simplificador-codigo.md +0 -55
- package/vendor/theus-arsenal/commands/actualizar-docs.md +0 -88
- package/vendor/theus-arsenal/commands/actualizar-mapas-codigo.md +0 -78
- package/vendor/theus-arsenal/commands/aprender-evaluar.md +0 -109
- package/vendor/theus-arsenal/commands/aprender.md +0 -74
- package/vendor/theus-arsenal/commands/arreglar-build.md +0 -66
- package/vendor/theus-arsenal/commands/bucle-multiperspectiva.md +0 -153
- package/vendor/theus-arsenal/commands/build-cpp.md +0 -173
- package/vendor/theus-arsenal/commands/build-flutter.md +0 -164
- package/vendor/theus-arsenal/commands/build-go.md +0 -183
- package/vendor/theus-arsenal/commands/build-gradle.md +0 -75
- package/vendor/theus-arsenal/commands/build-kotlin.md +0 -176
- package/vendor/theus-arsenal/commands/build-react.md +0 -187
- package/vendor/theus-arsenal/commands/build-rust.md +0 -187
- package/vendor/theus-arsenal/commands/campana-marketing.md +0 -125
- package/vendor/theus-arsenal/commands/checkpoint.md +0 -78
- package/vendor/theus-arsenal/commands/cobertura-tests.md +0 -73
- package/vendor/theus-arsenal/commands/configurar-gestor-paquetes.md +0 -86
- package/vendor/theus-arsenal/commands/consulta.md +0 -164
- package/vendor/theus-arsenal/commands/control-calidad.md +0 -50
- package/vendor/theus-arsenal/commands/crear-skill.md +0 -77
- package/vendor/theus-arsenal/commands/enrutar-modelo.md +0 -30
- package/vendor/theus-arsenal/commands/epica-desbloquear.md +0 -17
- package/vendor/theus-arsenal/commands/epica-descomponer.md +0 -22
- package/vendor/theus-arsenal/commands/epica-publicar.md +0 -21
- package/vendor/theus-arsenal/commands/epica-reclamar.md +0 -25
- package/vendor/theus-arsenal/commands/epica-revisar.md +0 -22
- package/vendor/theus-arsenal/commands/epica-sincronizar.md +0 -21
- package/vendor/theus-arsenal/commands/epica-validar.md +0 -21
- package/vendor/theus-arsenal/commands/evolucionar.md +0 -176
- package/vendor/theus-arsenal/commands/funcionalidad.md +0 -49
- package/vendor/theus-arsenal/commands/guardar-sesion.md +0 -278
- package/vendor/theus-arsenal/commands/harness-build.md +0 -111
- package/vendor/theus-arsenal/commands/harness-diseno.md +0 -46
- package/vendor/theus-arsenal/commands/informe-costos.md +0 -90
- package/vendor/theus-arsenal/commands/iniciar-bucle.md +0 -36
- package/vendor/theus-arsenal/commands/instintos-estado.md +0 -53
- package/vendor/theus-arsenal/commands/instintos-exportar.md +0 -69
- package/vendor/theus-arsenal/commands/instintos-importar.md +0 -120
- package/vendor/theus-arsenal/commands/lienzo-planes.md +0 -48
- package/vendor/theus-arsenal/commands/limpiar-refactor.md +0 -84
- package/vendor/theus-arsenal/commands/modo-seguro.md +0 -96
- package/vendor/theus-arsenal/commands/orq-agregar-funcionalidad.md +0 -36
- package/vendor/theus-arsenal/commands/orq-cambiar-funcionalidad.md +0 -38
- package/vendor/theus-arsenal/commands/orq-construir-mvp.md +0 -36
- package/vendor/theus-arsenal/commands/orq-corregir-defecto.md +0 -40
- package/vendor/theus-arsenal/commands/orq-refinar-codigo.md +0 -44
- package/vendor/theus-arsenal/commands/orq-revisar.md +0 -135
- package/vendor/theus-arsenal/commands/plan-prd.md +0 -160
- package/vendor/theus-arsenal/commands/plan.md +0 -198
- package/vendor/theus-arsenal/commands/podar.md +0 -31
- package/vendor/theus-arsenal/commands/pr.md +0 -181
- package/vendor/theus-arsenal/commands/promover.md +0 -41
- package/vendor/theus-arsenal/commands/proyectos.md +0 -33
- package/vendor/theus-arsenal/commands/prp-commit.md +0 -112
- package/vendor/theus-arsenal/commands/prp-implementar.md +0 -385
- package/vendor/theus-arsenal/commands/prp-planificar.md +0 -501
- package/vendor/theus-arsenal/commands/reanudar-sesion.md +0 -160
- package/vendor/theus-arsenal/commands/revisar-codigo.md +0 -289
- package/vendor/theus-arsenal/commands/revisar-cpp.md +0 -132
- package/vendor/theus-arsenal/commands/revisar-fastapi.md +0 -39
- package/vendor/theus-arsenal/commands/revisar-flutter.md +0 -115
- package/vendor/theus-arsenal/commands/revisar-go.md +0 -148
- package/vendor/theus-arsenal/commands/revisar-kotlin.md +0 -140
- package/vendor/theus-arsenal/commands/revisar-pr.md +0 -37
- package/vendor/theus-arsenal/commands/revisar-python.md +0 -297
- package/vendor/theus-arsenal/commands/revisar-react.md +0 -170
- package/vendor/theus-arsenal/commands/revisar-rust.md +0 -142
- package/vendor/theus-arsenal/commands/revisar-vue.md +0 -174
- package/vendor/theus-arsenal/commands/salud-skills.md +0 -52
- package/vendor/theus-arsenal/commands/sesiones.md +0 -345
- package/vendor/theus-arsenal/commands/test-cpp.md +0 -252
- package/vendor/theus-arsenal/commands/test-flutter.md +0 -143
- package/vendor/theus-arsenal/commands/test-go.md +0 -268
- package/vendor/theus-arsenal/commands/test-kotlin.md +0 -312
- package/vendor/theus-arsenal/commands/test-react.md +0 -265
- package/vendor/theus-arsenal/commands/test-rust.md +0 -309
- package/vendor/theus-arsenal/commands/vigilancia-canary.md +0 -43
- package/vendor/theus-arsenal/hooks/hooks.json +0 -274
- package/vendor/theus-arsenal/package.json +0 -6
- package/vendor/theus-arsenal/rules/angular/coding-style.md +0 -182
- package/vendor/theus-arsenal/rules/angular/hooks.md +0 -25
- package/vendor/theus-arsenal/rules/angular/patterns.md +0 -249
- package/vendor/theus-arsenal/rules/angular/security.md +0 -87
- package/vendor/theus-arsenal/rules/angular/testing.md +0 -164
- package/vendor/theus-arsenal/rules/arkts/coding-style.md +0 -153
- package/vendor/theus-arsenal/rules/arkts/hooks.md +0 -80
- package/vendor/theus-arsenal/rules/arkts/patterns.md +0 -236
- package/vendor/theus-arsenal/rules/arkts/security.md +0 -141
- package/vendor/theus-arsenal/rules/arkts/testing.md +0 -126
- package/vendor/theus-arsenal/rules/common/agents.md +0 -49
- package/vendor/theus-arsenal/rules/common/code-review.md +0 -123
- package/vendor/theus-arsenal/rules/common/coding-style.md +0 -90
- package/vendor/theus-arsenal/rules/common/development-workflow.md +0 -44
- package/vendor/theus-arsenal/rules/common/git-workflow.md +0 -24
- package/vendor/theus-arsenal/rules/common/hooks.md +0 -32
- package/vendor/theus-arsenal/rules/common/patterns.md +0 -31
- package/vendor/theus-arsenal/rules/common/performance.md +0 -53
- package/vendor/theus-arsenal/rules/common/security.md +0 -29
- package/vendor/theus-arsenal/rules/common/testing.md +0 -57
- package/vendor/theus-arsenal/rules/cpp/coding-style.md +0 -44
- package/vendor/theus-arsenal/rules/cpp/hooks.md +0 -39
- package/vendor/theus-arsenal/rules/cpp/patterns.md +0 -51
- package/vendor/theus-arsenal/rules/cpp/security.md +0 -51
- package/vendor/theus-arsenal/rules/cpp/testing.md +0 -44
- package/vendor/theus-arsenal/rules/csharp/coding-style.md +0 -72
- package/vendor/theus-arsenal/rules/csharp/hooks.md +0 -25
- package/vendor/theus-arsenal/rules/csharp/patterns.md +0 -50
- package/vendor/theus-arsenal/rules/csharp/security.md +0 -58
- package/vendor/theus-arsenal/rules/csharp/testing.md +0 -50
- package/vendor/theus-arsenal/rules/dart/coding-style.md +0 -159
- package/vendor/theus-arsenal/rules/dart/hooks.md +0 -68
- package/vendor/theus-arsenal/rules/dart/patterns.md +0 -261
- package/vendor/theus-arsenal/rules/dart/security.md +0 -135
- package/vendor/theus-arsenal/rules/dart/testing.md +0 -215
- package/vendor/theus-arsenal/rules/fsharp/coding-style.md +0 -112
- package/vendor/theus-arsenal/rules/fsharp/hooks.md +0 -26
- package/vendor/theus-arsenal/rules/fsharp/patterns.md +0 -111
- package/vendor/theus-arsenal/rules/fsharp/security.md +0 -76
- package/vendor/theus-arsenal/rules/fsharp/testing.md +0 -62
- package/vendor/theus-arsenal/rules/golang/coding-style.md +0 -32
- package/vendor/theus-arsenal/rules/golang/hooks.md +0 -17
- package/vendor/theus-arsenal/rules/golang/patterns.md +0 -45
- package/vendor/theus-arsenal/rules/golang/security.md +0 -34
- package/vendor/theus-arsenal/rules/golang/testing.md +0 -31
- package/vendor/theus-arsenal/rules/java/coding-style.md +0 -114
- package/vendor/theus-arsenal/rules/java/hooks.md +0 -18
- package/vendor/theus-arsenal/rules/java/patterns.md +0 -147
- package/vendor/theus-arsenal/rules/java/security.md +0 -101
- package/vendor/theus-arsenal/rules/java/testing.md +0 -133
- package/vendor/theus-arsenal/rules/kotlin/coding-style.md +0 -86
- package/vendor/theus-arsenal/rules/kotlin/hooks.md +0 -17
- package/vendor/theus-arsenal/rules/kotlin/patterns.md +0 -146
- package/vendor/theus-arsenal/rules/kotlin/security.md +0 -82
- package/vendor/theus-arsenal/rules/kotlin/testing.md +0 -128
- package/vendor/theus-arsenal/rules/nuxt/coding-style.md +0 -47
- package/vendor/theus-arsenal/rules/nuxt/hooks.md +0 -39
- package/vendor/theus-arsenal/rules/nuxt/patterns.md +0 -54
- package/vendor/theus-arsenal/rules/nuxt/security.md +0 -48
- package/vendor/theus-arsenal/rules/nuxt/testing.md +0 -49
- package/vendor/theus-arsenal/rules/php/coding-style.md +0 -40
- package/vendor/theus-arsenal/rules/php/hooks.md +0 -24
- package/vendor/theus-arsenal/rules/php/patterns.md +0 -33
- package/vendor/theus-arsenal/rules/php/security.md +0 -37
- package/vendor/theus-arsenal/rules/php/testing.md +0 -38
- package/vendor/theus-arsenal/rules/python/coding-style.md +0 -42
- package/vendor/theus-arsenal/rules/python/fastapi.md +0 -58
- package/vendor/theus-arsenal/rules/python/hooks.md +0 -19
- package/vendor/theus-arsenal/rules/python/patterns.md +0 -39
- package/vendor/theus-arsenal/rules/python/security.md +0 -30
- package/vendor/theus-arsenal/rules/python/testing.md +0 -38
- package/vendor/theus-arsenal/rules/react/coding-style.md +0 -109
- package/vendor/theus-arsenal/rules/react/hooks.md +0 -187
- package/vendor/theus-arsenal/rules/react/patterns.md +0 -194
- package/vendor/theus-arsenal/rules/react/security.md +0 -180
- package/vendor/theus-arsenal/rules/react/testing.md +0 -208
- package/vendor/theus-arsenal/rules/react-native/accessibility.md +0 -55
- package/vendor/theus-arsenal/rules/react-native/coding-style.md +0 -71
- package/vendor/theus-arsenal/rules/react-native/hooks.md +0 -28
- package/vendor/theus-arsenal/rules/react-native/patterns.md +0 -88
- package/vendor/theus-arsenal/rules/react-native/performance.md +0 -45
- package/vendor/theus-arsenal/rules/react-native/production-readiness.md +0 -51
- package/vendor/theus-arsenal/rules/react-native/security.md +0 -43
- package/vendor/theus-arsenal/rules/react-native/testing.md +0 -52
- package/vendor/theus-arsenal/rules/ruby/coding-style.md +0 -46
- package/vendor/theus-arsenal/rules/ruby/hooks.md +0 -37
- package/vendor/theus-arsenal/rules/ruby/patterns.md +0 -44
- package/vendor/theus-arsenal/rules/ruby/security.md +0 -51
- package/vendor/theus-arsenal/rules/ruby/testing.md +0 -51
- package/vendor/theus-arsenal/rules/rust/coding-style.md +0 -151
- package/vendor/theus-arsenal/rules/rust/hooks.md +0 -16
- package/vendor/theus-arsenal/rules/rust/patterns.md +0 -168
- package/vendor/theus-arsenal/rules/rust/security.md +0 -141
- package/vendor/theus-arsenal/rules/rust/testing.md +0 -154
- package/vendor/theus-arsenal/rules/swift/coding-style.md +0 -47
- package/vendor/theus-arsenal/rules/swift/hooks.md +0 -20
- package/vendor/theus-arsenal/rules/swift/patterns.md +0 -66
- package/vendor/theus-arsenal/rules/swift/security.md +0 -33
- package/vendor/theus-arsenal/rules/swift/testing.md +0 -45
- package/vendor/theus-arsenal/rules/typescript/coding-style.md +0 -199
- package/vendor/theus-arsenal/rules/typescript/hooks.md +0 -22
- package/vendor/theus-arsenal/rules/typescript/patterns.md +0 -52
- package/vendor/theus-arsenal/rules/typescript/security.md +0 -28
- package/vendor/theus-arsenal/rules/typescript/testing.md +0 -18
- package/vendor/theus-arsenal/rules/vue/coding-style.md +0 -54
- package/vendor/theus-arsenal/rules/vue/hooks.md +0 -45
- package/vendor/theus-arsenal/rules/vue/patterns.md +0 -56
- package/vendor/theus-arsenal/rules/vue/security.md +0 -46
- package/vendor/theus-arsenal/rules/vue/testing.md +0 -53
- package/vendor/theus-arsenal/rules/web/coding-style.md +0 -108
- package/vendor/theus-arsenal/rules/web/design-quality.md +0 -75
- package/vendor/theus-arsenal/rules/web/hooks.md +0 -141
- package/vendor/theus-arsenal/rules/web/patterns.md +0 -91
- package/vendor/theus-arsenal/rules/web/performance.md +0 -76
- package/vendor/theus-arsenal/rules/web/security.md +0 -69
- package/vendor/theus-arsenal/rules/web/testing.md +0 -67
- package/vendor/theus-arsenal/scripts/hooks/bash-hook-dispatcher.js +0 -192
- package/vendor/theus-arsenal/scripts/hooks/block-no-verify.js +0 -556
- package/vendor/theus-arsenal/scripts/hooks/check-console-log.js +0 -92
- package/vendor/theus-arsenal/scripts/hooks/check-hook-enabled.js +0 -16
- package/vendor/theus-arsenal/scripts/hooks/config-protection.js +0 -171
- package/vendor/theus-arsenal/scripts/hooks/design-quality-check.js +0 -132
- package/vendor/theus-arsenal/scripts/hooks/doc-file-warning.js +0 -110
- package/vendor/theus-arsenal/scripts/hooks/modo-seguro.js +0 -158
- package/vendor/theus-arsenal/scripts/hooks/notificacion-escritorio.js +0 -208
- package/vendor/theus-arsenal/scripts/hooks/plugin-hook-bootstrap.js +0 -280
- package/vendor/theus-arsenal/scripts/hooks/post-bash-command-log.js +0 -87
- package/vendor/theus-arsenal/scripts/hooks/post-bash-dispatcher.js +0 -24
- package/vendor/theus-arsenal/scripts/hooks/post-bash-pr-created.js +0 -60
- package/vendor/theus-arsenal/scripts/hooks/post-edit-accumulator.js +0 -94
- package/vendor/theus-arsenal/scripts/hooks/post-edit-console-warn.js +0 -54
- package/vendor/theus-arsenal/scripts/hooks/post-edit-format.js +0 -110
- package/vendor/theus-arsenal/scripts/hooks/post-edit-typecheck.js +0 -98
- package/vendor/theus-arsenal/scripts/hooks/pre-bash-commit-quality.js +0 -447
- package/vendor/theus-arsenal/scripts/hooks/pre-bash-dev-server-block.js +0 -232
- package/vendor/theus-arsenal/scripts/hooks/pre-bash-dispatcher.js +0 -27
- package/vendor/theus-arsenal/scripts/hooks/pre-compact.js +0 -101
- package/vendor/theus-arsenal/scripts/hooks/pretooluse-visible-output.js +0 -49
- package/vendor/theus-arsenal/scripts/hooks/quality-gate.js +0 -168
- package/vendor/theus-arsenal/scripts/hooks/run-with-flags.js +0 -271
- package/vendor/theus-arsenal/scripts/hooks/salud-mcp.js +0 -749
- package/vendor/theus-arsenal/scripts/hooks/seguimiento-costos.js +0 -161
- package/vendor/theus-arsenal/scripts/hooks/session-end.js +0 -340
- package/vendor/theus-arsenal/scripts/hooks/session-start.js +0 -906
- package/vendor/theus-arsenal/scripts/hooks/stop-format-typecheck.js +0 -263
- package/vendor/theus-arsenal/scripts/hooks/suggest-compact.js +0 -286
- package/vendor/theus-arsenal/scripts/hooks/theus-context-monitor.js +0 -289
- package/vendor/theus-arsenal/scripts/hooks/verificacion-factual.js +0 -1278
- package/vendor/theus-arsenal/scripts/lib/agent-data-home.js +0 -96
- package/vendor/theus-arsenal/scripts/lib/cost-estimate.js +0 -66
- package/vendor/theus-arsenal/scripts/lib/hook-flags.js +0 -79
- package/vendor/theus-arsenal/scripts/lib/llm-summary.js +0 -185
- package/vendor/theus-arsenal/scripts/lib/loopback-guard.js +0 -54
- package/vendor/theus-arsenal/scripts/lib/observer-sessions.js +0 -237
- package/vendor/theus-arsenal/scripts/lib/package-manager.d.ts +0 -120
- package/vendor/theus-arsenal/scripts/lib/package-manager.js +0 -434
- package/vendor/theus-arsenal/scripts/lib/path-safety.js +0 -86
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/markdown.js +0 -285
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/sdk.js +0 -238
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/server.js +0 -534
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/sessions.js +0 -274
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/ui.js +0 -546
- package/vendor/theus-arsenal/scripts/lib/project-detect.js +0 -451
- package/vendor/theus-arsenal/scripts/lib/resolve-formatter.js +0 -193
- package/vendor/theus-arsenal/scripts/lib/resolve-theus-root.js +0 -101
- package/vendor/theus-arsenal/scripts/lib/session-aliases.d.ts +0 -138
- package/vendor/theus-arsenal/scripts/lib/session-aliases.js +0 -483
- package/vendor/theus-arsenal/scripts/lib/session-bridge.js +0 -155
- package/vendor/theus-arsenal/scripts/lib/session-manager.d.ts +0 -137
- package/vendor/theus-arsenal/scripts/lib/session-manager.js +0 -555
- package/vendor/theus-arsenal/scripts/lib/shell-split.js +0 -86
- package/vendor/theus-arsenal/scripts/lib/shell-substitution.js +0 -501
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/dashboard.js +0 -414
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/health.js +0 -285
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/index.js +0 -22
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/provenance.js +0 -200
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/tracker.js +0 -157
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/versioning.js +0 -246
- package/vendor/theus-arsenal/scripts/lib/transcript-context.js +0 -232
- package/vendor/theus-arsenal/scripts/lib/utils.d.ts +0 -205
- package/vendor/theus-arsenal/scripts/lib/utils.js +0 -658
- package/vendor/theus-arsenal/scripts/plan-canvas.js +0 -341
- package/vendor/theus-arsenal/scripts/setup-package-manager.js +0 -46
- package/vendor/theus-arsenal/scripts/skills-health.js +0 -143
- package/vendor/theus-arsenal/skills/a11y-frontend/SKILL.md +0 -444
- package/vendor/theus-arsenal/skills/accesibilidad/SKILL.md +0 -144
- package/vendor/theus-arsenal/skills/acelerador-throughput-datos/SKILL.md +0 -72
- package/vendor/theus-arsenal/skills/agente-scraper-datos/SKILL.md +0 -771
- package/vendor/theus-arsenal/skills/analisis-plataformas-competencia/SKILL.md +0 -137
- package/vendor/theus-arsenal/skills/api-x/SKILL.md +0 -233
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/SKILL.md +0 -335
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/observer-loop.sh +0 -374
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/observer.md +0 -188
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/session-guardian.sh +0 -153
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/start-observer.sh +0 -253
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/config.json +0 -8
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/hooks/observe.sh +0 -594
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/detect-project.sh +0 -325
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/instinct-cli.py +0 -1918
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/lib/arsenal-dir.sh +0 -23
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/test_parse_instinct.py +0 -1420
- package/vendor/theus-arsenal/skills/arquitectura-hexagonal/SKILL.md +0 -275
- package/vendor/theus-arsenal/skills/arquitectura-limpia-android/SKILL.md +0 -340
- package/vendor/theus-arsenal/skills/arquitectura-pipelines-recomendacion/SKILL.md +0 -112
- package/vendor/theus-arsenal/skills/atlas-datos-prediccion/SKILL.md +0 -53
- package/vendor/theus-arsenal/skills/auditoria-arquitectura-agentes/SKILL.md +0 -257
- package/vendor/theus-arsenal/skills/auditoria-produccion/SKILL.md +0 -180
- package/vendor/theus-arsenal/skills/auditoria-rutas-clic/SKILL.md +0 -243
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/SKILL.md +0 -180
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/examples/high-score-example.md +0 -89
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/examples/low-score-example.md +0 -87
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/references/evaluation-criteria.md +0 -71
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/references/hook-integration.md +0 -90
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/scripts/evaluate.py +0 -409
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/templates/evaluation-report.md +0 -86
- package/vendor/theus-arsenal/skills/automatizacion-ssh-netmiko/SKILL.md +0 -176
- package/vendor/theus-arsenal/skills/base-datos-pubmed/SKILL.md +0 -174
- package/vendor/theus-arsenal/skills/base-datos-uspto/SKILL.md +0 -173
- package/vendor/theus-arsenal/skills/benchmark/SKILL.md +0 -92
- package/vendor/theus-arsenal/skills/bitacora-crecimiento/SKILL.md +0 -120
- package/vendor/theus-arsenal/skills/bucle-verificacion/SKILL.md +0 -125
- package/vendor/theus-arsenal/skills/buscar-primero/SKILL.md +0 -184
- package/vendor/theus-arsenal/skills/busqueda-exa/SKILL.md +0 -111
- package/vendor/theus-arsenal/skills/cache-por-hash/SKILL.md +0 -160
- package/vendor/theus-arsenal/skills/campana-marketing/SKILL.md +0 -118
- package/vendor/theus-arsenal/skills/capacidad-producto/SKILL.md +0 -138
- package/vendor/theus-arsenal/skills/cazador-vulnerabilidades/SKILL.md +0 -104
- package/vendor/theus-arsenal/skills/compactacion-estrategica/SKILL.md +0 -115
- package/vendor/theus-arsenal/skills/comparador-baskets-prediccion/SKILL.md +0 -69
- package/vendor/theus-arsenal/skills/compras-energia/SKILL.md +0 -206
- package/vendor/theus-arsenal/skills/concurrencia-swift-6-2/SKILL.md +0 -224
- package/vendor/theus-arsenal/skills/consejo/SKILL.md +0 -201
- package/vendor/theus-arsenal/skills/construccion-harness-agentes/SKILL.md +0 -78
- package/vendor/theus-arsenal/skills/constructor-conectores/SKILL.md +0 -119
- package/vendor/theus-arsenal/skills/constructor-equipos/SKILL.md +0 -169
- package/vendor/theus-arsenal/skills/consulta-documentacion/SKILL.md +0 -92
- package/vendor/theus-arsenal/skills/consultas-genomicas-gget/SKILL.md +0 -170
- package/vendor/theus-arsenal/skills/contacto-inversores/SKILL.md +0 -95
- package/vendor/theus-arsenal/skills/corrutinas-flows-kotlin/SKILL.md +0 -284
- package/vendor/theus-arsenal/skills/creacion-video-remotion/SKILL.md +0 -46
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/3d.md +0 -86
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/animations.md +0 -29
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/charts-bar-chart.tsx +0 -173
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/text-animations-typewriter.tsx +0 -100
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/text-animations-word-highlight.tsx +0 -108
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets.md +0 -78
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/audio.md +0 -172
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/calculate-metadata.md +0 -104
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/can-decode.md +0 -75
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/charts.md +0 -58
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/compositions.md +0 -146
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/display-captions.md +0 -126
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/extract-frames.md +0 -229
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/fonts.md +0 -152
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-audio-duration.md +0 -58
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-video-dimensions.md +0 -68
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-video-duration.md +0 -58
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/gifs.md +0 -138
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/images.md +0 -130
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/import-srt-captions.md +0 -67
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/lottie.md +0 -67
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/measuring-dom-nodes.md +0 -34
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/measuring-text.md +0 -143
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/sequencing.md +0 -106
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/tailwind.md +0 -11
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/text-animations.md +0 -20
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/timing.md +0 -179
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/transcribe-captions.md +0 -19
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/transitions.md +0 -122
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/trimming.md +0 -52
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/videos.md +0 -171
- package/vendor/theus-arsenal/skills/cumplimiento-aduanero/SKILL.md +0 -270
- package/vendor/theus-arsenal/skills/cumplimiento-hipaa/SKILL.md +0 -78
- package/vendor/theus-arsenal/skills/datos-sensibles-salud/SKILL.md +0 -149
- package/vendor/theus-arsenal/skills/decimales-tokens-evm/SKILL.md +0 -128
- package/vendor/theus-arsenal/skills/decisiones-arquitectura/SKILL.md +0 -206
- package/vendor/theus-arsenal/skills/demos-ui/SKILL.md +0 -469
- package/vendor/theus-arsenal/skills/desarrollo-por-intencion/SKILL.md +0 -369
- package/vendor/theus-arsenal/skills/descubrimiento-marca/SKILL.md +0 -149
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/10_proposito-porque.md +0 -42
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/20_posicionamiento.md +0 -47
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/30_audiencia-nicho.md +0 -53
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/40_personalidad-arquetipo.md +0 -61
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/50_voz-tono.md +0 -62
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/60_narrativa-historia.md +0 -54
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/70_tension-fundador.md +0 -50
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/90_SINTESIS.md +0 -133
- package/vendor/theus-arsenal/skills/descubrimiento-plugins-laravel/SKILL.md +0 -230
- package/vendor/theus-arsenal/skills/destilado-reglas/SKILL.md +0 -263
- package/vendor/theus-arsenal/skills/destilado-reglas/scripts/scan-rules.sh +0 -58
- package/vendor/theus-arsenal/skills/destilado-reglas/scripts/scan-skills.sh +0 -129
- package/vendor/theus-arsenal/skills/diagnostico-bgp/SKILL.md +0 -170
- package/vendor/theus-arsenal/skills/direccion-estetica/SKILL.md +0 -220
- package/vendor/theus-arsenal/skills/direccion-estetica/references/taxonomia-generos.md +0 -89
- package/vendor/theus-arsenal/skills/diseno-api/SKILL.md +0 -522
- package/vendor/theus-arsenal/skills/diseno-liquid-glass/SKILL.md +0 -282
- package/vendor/theus-arsenal/skills/e2e-escritorio-windows/SKILL.md +0 -879
- package/vendor/theus-arsenal/skills/edicion-video/SKILL.md +0 -289
- package/vendor/theus-arsenal/skills/enfoque-producto/SKILL.md +0 -91
- package/vendor/theus-arsenal/skills/entornos-flox/SKILL.md +0 -493
- package/vendor/theus-arsenal/skills/estandares-codigo/SKILL.md +0 -548
- package/vendor/theus-arsenal/skills/estandares-cpp/SKILL.md +0 -727
- package/vendor/theus-arsenal/skills/estandares-java/SKILL.md +0 -389
- package/vendor/theus-arsenal/skills/estilo-legado/SKILL.md +0 -149
- package/vendor/theus-arsenal/skills/estructura-informes-competencia/SKILL.md +0 -95
- package/vendor/theus-arsenal/skills/evaluacion-academica/SKILL.md +0 -165
- package/vendor/theus-arsenal/skills/explorador-skills/SKILL.md +0 -129
- package/vendor/theus-arsenal/skills/flujo-git/SKILL.md +0 -714
- package/vendor/theus-arsenal/skills/flujo-ingenieria-ml/SKILL.md +0 -343
- package/vendor/theus-arsenal/skills/flujo-tdd/SKILL.md +0 -584
- package/vendor/theus-arsenal/skills/forja-personas/SKILL.md +0 -298
- package/vendor/theus-arsenal/skills/forja-personas/gacha.py +0 -224
- package/vendor/theus-arsenal/skills/forja-personas/gacha.sh +0 -5
- package/vendor/theus-arsenal/skills/forja-personas/references/avatar-style.md +0 -123
- package/vendor/theus-arsenal/skills/forja-personas/references/boundary-rules.md +0 -53
- package/vendor/theus-arsenal/skills/forja-personas/references/error-handling.md +0 -53
- package/vendor/theus-arsenal/skills/forja-personas/references/identity-tension.md +0 -48
- package/vendor/theus-arsenal/skills/forja-personas/references/naming-system.md +0 -39
- package/vendor/theus-arsenal/skills/forja-personas/references/output-template.md +0 -166
- package/vendor/theus-arsenal/skills/fundamentos-animacion/SKILL.md +0 -296
- package/vendor/theus-arsenal/skills/generacion-iconos-ios/SKILL.md +0 -156
- package/vendor/theus-arsenal/skills/generacion-iconos-ios/scripts/generate_icons.swift +0 -258
- package/vendor/theus-arsenal/skills/generacion-iconos-ios/scripts/iconify_gen.sh +0 -235
- package/vendor/theus-arsenal/skills/gestion-excepciones-logisticas/SKILL.md +0 -208
- package/vendor/theus-arsenal/skills/gestion-transportistas/SKILL.md +0 -204
- package/vendor/theus-arsenal/skills/guia-adopcion-ml/SKILL.md +0 -64
- package/vendor/theus-arsenal/skills/harness-agente-autonomo/SKILL.md +0 -252
- package/vendor/theus-arsenal/skills/harness-eval-clinico/SKILL.md +0 -212
- package/vendor/theus-arsenal/skills/harness-evaluacion/SKILL.md +0 -296
- package/vendor/theus-arsenal/skills/harness-generador-evaluador/SKILL.md +0 -254
- package/vendor/theus-arsenal/skills/homelab-diseno-red/SKILL.md +0 -120
- package/vendor/theus-arsenal/skills/homelab-dns-pihole/SKILL.md +0 -264
- package/vendor/theus-arsenal/skills/homelab-preparacion-red/SKILL.md +0 -144
- package/vendor/theus-arsenal/skills/homelab-segmentacion-vlan/SKILL.md +0 -307
- package/vendor/theus-arsenal/skills/homelab-vpn-wireguard/SKILL.md +0 -299
- package/vendor/theus-arsenal/skills/ingenieria-agentica/SKILL.md +0 -96
- package/vendor/theus-arsenal/skills/inspeccion-animaciones-blender/SKILL.md +0 -164
- package/vendor/theus-arsenal/skills/instaladores-python/SKILL.md +0 -820
- package/vendor/theus-arsenal/skills/integracion-jira/SKILL.md +0 -307
- package/vendor/theus-arsenal/skills/inteligencia-leads/SKILL.md +0 -312
- package/vendor/theus-arsenal/skills/inteligencia-leads/agents/agente-enriquecimiento.md +0 -87
- package/vendor/theus-arsenal/skills/inteligencia-leads/agents/mapeador-mutuos.md +0 -76
- package/vendor/theus-arsenal/skills/inteligencia-leads/agents/puntuador-senales.md +0 -60
- package/vendor/theus-arsenal/skills/inteligencia-leads/agents/redactor-outreach.md +0 -102
- package/vendor/theus-arsenal/skills/inteligencia-mercados-prediccion/SKILL.md +0 -53
- package/vendor/theus-arsenal/skills/introspeccion-agente/SKILL.md +0 -150
- package/vendor/theus-arsenal/skills/inventario-skills/SKILL.md +0 -194
- package/vendor/theus-arsenal/skills/inventario-skills/scripts/quick-diff.sh +0 -87
- package/vendor/theus-arsenal/skills/inventario-skills/scripts/save-results.sh +0 -57
- package/vendor/theus-arsenal/skills/inventario-skills/scripts/scan.sh +0 -170
- package/vendor/theus-arsenal/skills/investigacion-mercado/SKILL.md +0 -87
- package/vendor/theus-arsenal/skills/investigacion-oraculos-prediccion/SKILL.md +0 -59
- package/vendor/theus-arsenal/skills/investigacion-profunda/SKILL.md +0 -161
- package/vendor/theus-arsenal/skills/keccak256-nodejs/SKILL.md +0 -100
- package/vendor/theus-arsenal/skills/libro-decisiones-recursivo/SKILL.md +0 -82
- package/vendor/theus-arsenal/skills/lienzo-planes/SKILL.md +0 -111
- package/vendor/theus-arsenal/skills/limpieza-configuracion/SKILL.md +0 -116
- package/vendor/theus-arsenal/skills/logistica-inversa-devoluciones/SKILL.md +0 -241
- package/vendor/theus-arsenal/skills/manejo-errores/SKILL.md +0 -375
- package/vendor/theus-arsenal/skills/materiales-inversores/SKILL.md +0 -101
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/SKILL.md +0 -170
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/forget.mjs +0 -44
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/info.mjs +0 -24
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/init.mjs +0 -152
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/list.mjs +0 -40
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/migrate.mjs +0 -214
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/resume.mjs +0 -36
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/save.mjs +0 -210
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/shared.mjs +0 -402
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/hooks/session-start.mjs +0 -238
- package/vendor/theus-arsenal/skills/metodologia-benchmarks/SKILL.md +0 -131
- package/vendor/theus-arsenal/skills/migraciones-bd/SKILL.md +0 -430
- package/vendor/theus-arsenal/skills/modelos-fundacionales-en-dispositivo/SKILL.md +0 -244
- package/vendor/theus-arsenal/skills/modo-seguro/SKILL.md +0 -86
- package/vendor/theus-arsenal/skills/motion-avanzado/SKILL.md +0 -592
- package/vendor/theus-arsenal/skills/motor-de-contenido/SKILL.md +0 -136
- package/vendor/theus-arsenal/skills/no-conformidades-calidad/SKILL.md +0 -249
- package/vendor/theus-arsenal/skills/onboarding-codigo/SKILL.md +0 -244
- package/vendor/theus-arsenal/skills/operaciones-agentes-empresariales/SKILL.md +0 -51
- package/vendor/theus-arsenal/skills/operaciones-conocimiento/SKILL.md +0 -159
- package/vendor/theus-arsenal/skills/operaciones-correo/SKILL.md +0 -123
- package/vendor/theus-arsenal/skills/operaciones-facturacion/SKILL.md +0 -142
- package/vendor/theus-arsenal/skills/operaciones-flujo-proyectos/SKILL.md +0 -110
- package/vendor/theus-arsenal/skills/operaciones-github/SKILL.md +0 -143
- package/vendor/theus-arsenal/skills/operaciones-google-workspace/SKILL.md +0 -100
- package/vendor/theus-arsenal/skills/operaciones-investigacion/SKILL.md +0 -124
- package/vendor/theus-arsenal/skills/operaciones-mensajes/SKILL.md +0 -103
- package/vendor/theus-arsenal/skills/operaciones-terminal/SKILL.md +0 -110
- package/vendor/theus-arsenal/skills/optimizacion-benchmark/SKILL.md +0 -70
- package/vendor/theus-arsenal/skills/optimizacion-costos-llm/SKILL.md +0 -182
- package/vendor/theus-arsenal/skills/optimizador-conexiones/SKILL.md +0 -191
- package/vendor/theus-arsenal/skills/optimizador-paralelismo/SKILL.md +0 -75
- package/vendor/theus-arsenal/skills/optimizador-prompts/SKILL.md +0 -374
- package/vendor/theus-arsenal/skills/orq-agregar-funcionalidad/SKILL.md +0 -37
- package/vendor/theus-arsenal/skills/orq-cambiar-funcionalidad/SKILL.md +0 -36
- package/vendor/theus-arsenal/skills/orq-construir-mvp/SKILL.md +0 -38
- package/vendor/theus-arsenal/skills/orq-corregir-defecto/SKILL.md +0 -36
- package/vendor/theus-arsenal/skills/orq-pipeline/SKILL.md +0 -134
- package/vendor/theus-arsenal/skills/orq-refinar-codigo/SKILL.md +0 -49
- package/vendor/theus-arsenal/skills/orquestacion-equipos-agentes/SKILL.md +0 -117
- package/vendor/theus-arsenal/skills/pagos-agentes-x402/SKILL.md +0 -237
- package/vendor/theus-arsenal/skills/patrones-angular/SKILL.md +0 -153
- package/vendor/theus-arsenal/skills/patrones-angular/references/angular-animations.md +0 -160
- package/vendor/theus-arsenal/skills/patrones-angular/references/angular-aria.md +0 -410
- package/vendor/theus-arsenal/skills/patrones-angular/references/cli.md +0 -86
- package/vendor/theus-arsenal/skills/patrones-angular/references/component-harnesses.md +0 -59
- package/vendor/theus-arsenal/skills/patrones-angular/references/component-styling.md +0 -91
- package/vendor/theus-arsenal/skills/patrones-angular/references/components.md +0 -117
- package/vendor/theus-arsenal/skills/patrones-angular/references/creating-services.md +0 -97
- package/vendor/theus-arsenal/skills/patrones-angular/references/data-resolvers.md +0 -69
- package/vendor/theus-arsenal/skills/patrones-angular/references/define-routes.md +0 -67
- package/vendor/theus-arsenal/skills/patrones-angular/references/defining-providers.md +0 -72
- package/vendor/theus-arsenal/skills/patrones-angular/references/di-fundamentals.md +0 -120
- package/vendor/theus-arsenal/skills/patrones-angular/references/e2e-testing.md +0 -56
- package/vendor/theus-arsenal/skills/patrones-angular/references/effects.md +0 -83
- package/vendor/theus-arsenal/skills/patrones-angular/references/hierarchical-injectors.md +0 -43
- package/vendor/theus-arsenal/skills/patrones-angular/references/host-elements.md +0 -80
- package/vendor/theus-arsenal/skills/patrones-angular/references/injection-context.md +0 -63
- package/vendor/theus-arsenal/skills/patrones-angular/references/inputs.md +0 -101
- package/vendor/theus-arsenal/skills/patrones-angular/references/linked-signal.md +0 -59
- package/vendor/theus-arsenal/skills/patrones-angular/references/loading-strategies.md +0 -61
- package/vendor/theus-arsenal/skills/patrones-angular/references/mcp.md +0 -67
- package/vendor/theus-arsenal/skills/patrones-angular/references/navigate-to-routes.md +0 -69
- package/vendor/theus-arsenal/skills/patrones-angular/references/outputs.md +0 -86
- package/vendor/theus-arsenal/skills/patrones-angular/references/reactive-forms.md +0 -122
- package/vendor/theus-arsenal/skills/patrones-angular/references/rendering-strategies.md +0 -44
- package/vendor/theus-arsenal/skills/patrones-angular/references/resource.md +0 -77
- package/vendor/theus-arsenal/skills/patrones-angular/references/route-animations.md +0 -56
- package/vendor/theus-arsenal/skills/patrones-angular/references/route-guards.md +0 -52
- package/vendor/theus-arsenal/skills/patrones-angular/references/router-lifecycle.md +0 -45
- package/vendor/theus-arsenal/skills/patrones-angular/references/router-testing.md +0 -87
- package/vendor/theus-arsenal/skills/patrones-angular/references/show-routes-with-outlets.md +0 -68
- package/vendor/theus-arsenal/skills/patrones-angular/references/signal-forms.md +0 -795
- package/vendor/theus-arsenal/skills/patrones-angular/references/signals-overview.md +0 -94
- package/vendor/theus-arsenal/skills/patrones-angular/references/tailwind-css.md +0 -69
- package/vendor/theus-arsenal/skills/patrones-angular/references/template-driven-forms.md +0 -114
- package/vendor/theus-arsenal/skills/patrones-angular/references/testing-fundamentals.md +0 -65
- package/vendor/theus-arsenal/skills/patrones-animacion/SKILL.md +0 -432
- package/vendor/theus-arsenal/skills/patrones-backend/SKILL.md +0 -560
- package/vendor/theus-arsenal/skills/patrones-cdss-clinico/SKILL.md +0 -249
- package/vendor/theus-arsenal/skills/patrones-cisco-ios/SKILL.md +0 -148
- package/vendor/theus-arsenal/skills/patrones-clickhouse/SKILL.md +0 -443
- package/vendor/theus-arsenal/skills/patrones-compose-multiplatform/SKILL.md +0 -298
- package/vendor/theus-arsenal/skills/patrones-dart-flutter/SKILL.md +0 -566
- package/vendor/theus-arsenal/skills/patrones-despliegue/SKILL.md +0 -426
- package/vendor/theus-arsenal/skills/patrones-django/SKILL.md +0 -739
- package/vendor/theus-arsenal/skills/patrones-django-celery/SKILL.md +0 -456
- package/vendor/theus-arsenal/skills/patrones-docker/SKILL.md +0 -363
- package/vendor/theus-arsenal/skills/patrones-dotnet/SKILL.md +0 -321
- package/vendor/theus-arsenal/skills/patrones-emr-clinico/SKILL.md +0 -168
- package/vendor/theus-arsenal/skills/patrones-fastapi/SKILL.md +0 -513
- package/vendor/theus-arsenal/skills/patrones-frontend/SKILL.md +0 -655
- package/vendor/theus-arsenal/skills/patrones-go/SKILL.md +0 -674
- package/vendor/theus-arsenal/skills/patrones-jpa/SKILL.md +0 -156
- package/vendor/theus-arsenal/skills/patrones-kotlin/SKILL.md +0 -717
- package/vendor/theus-arsenal/skills/patrones-kotlin-exposed/SKILL.md +0 -724
- package/vendor/theus-arsenal/skills/patrones-kotlin-ktor/SKILL.md +0 -694
- package/vendor/theus-arsenal/skills/patrones-kubernetes/SKILL.md +0 -754
- package/vendor/theus-arsenal/skills/patrones-laravel/SKILL.md +0 -414
- package/vendor/theus-arsenal/skills/patrones-mcp/SKILL.md +0 -66
- package/vendor/theus-arsenal/skills/patrones-mysql/SKILL.md +0 -420
- package/vendor/theus-arsenal/skills/patrones-nestjs/SKILL.md +0 -229
- package/vendor/theus-arsenal/skills/patrones-nextjs/SKILL.md +0 -56
- package/vendor/theus-arsenal/skills/patrones-nuxt4/SKILL.md +0 -99
- package/vendor/theus-arsenal/skills/patrones-perl/SKILL.md +0 -508
- package/vendor/theus-arsenal/skills/patrones-postgres/SKILL.md +0 -141
- package/vendor/theus-arsenal/skills/patrones-prisma/SKILL.md +0 -399
- package/vendor/theus-arsenal/skills/patrones-python/SKILL.md +0 -750
- package/vendor/theus-arsenal/skills/patrones-pytorch/SKILL.md +0 -400
- package/vendor/theus-arsenal/skills/patrones-quarkus/SKILL.md +0 -729
- package/vendor/theus-arsenal/skills/patrones-react/SKILL.md +0 -339
- package/vendor/theus-arsenal/skills/patrones-react-native/SKILL.md +0 -325
- package/vendor/theus-arsenal/skills/patrones-redis/SKILL.md +0 -401
- package/vendor/theus-arsenal/skills/patrones-rust/SKILL.md +0 -504
- package/vendor/theus-arsenal/skills/patrones-springboot/SKILL.md +0 -314
- package/vendor/theus-arsenal/skills/patrones-swiftui/SKILL.md +0 -261
- package/vendor/theus-arsenal/skills/patrones-tinystruct/SKILL.md +0 -281
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/architecture.md +0 -90
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/data-handling.md +0 -60
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/database.md +0 -99
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/routing.md +0 -64
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/system-usage.md +0 -97
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/testing.md +0 -72
- package/vendor/theus-arsenal/skills/patrones-vite/SKILL.md +0 -449
- package/vendor/theus-arsenal/skills/patrones-vue/SKILL.md +0 -469
- package/vendor/theus-arsenal/skills/persistencia-actores-swift/SKILL.md +0 -148
- package/vendor/theus-arsenal/skills/pipeline-opensource/SKILL.md +0 -254
- package/vendor/theus-arsenal/skills/planificacion-demanda-inventario/SKILL.md +0 -236
- package/vendor/theus-arsenal/skills/planificador-trades-prediccion/SKILL.md +0 -60
- package/vendor/theus-arsenal/skills/plano-tecnico/SKILL.md +0 -102
- package/vendor/theus-arsenal/skills/presentaciones-html/SKILL.md +0 -189
- package/vendor/theus-arsenal/skills/presentaciones-html/STYLE_PRESETS.md +0 -330
- package/vendor/theus-arsenal/skills/presentaciones-html/animation-patterns.md +0 -122
- package/vendor/theus-arsenal/skills/presentaciones-html/html-template.md +0 -419
- package/vendor/theus-arsenal/skills/presentaciones-html/scripts/export-pdf.sh +0 -418
- package/vendor/theus-arsenal/skills/presentaciones-html/scripts/extract-pptx.py +0 -96
- package/vendor/theus-arsenal/skills/presentaciones-html/viewport-base.css +0 -153
- package/vendor/theus-arsenal/skills/presupuesto-contexto/SKILL.md +0 -263
- package/vendor/theus-arsenal/skills/procesamiento-documentos-nutrient/SKILL.md +0 -168
- package/vendor/theus-arsenal/skills/programacion-produccion/SKILL.md +0 -220
- package/vendor/theus-arsenal/skills/publicacion-cruzada/SKILL.md +0 -117
- package/vendor/theus-arsenal/skills/publicador-social/SKILL.md +0 -121
- package/vendor/theus-arsenal/skills/puerta-de-entrega/SKILL.md +0 -164
- package/vendor/theus-arsenal/skills/puerta-de-entrega/hooks/puerta-entrega.py +0 -242
- package/vendor/theus-arsenal/skills/pulir-interfaces/SKILL.md +0 -126
- package/vendor/theus-arsenal/skills/qa-navegador/SKILL.md +0 -103
- package/vendor/theus-arsenal/skills/ranking-grafo-social/SKILL.md +0 -153
- package/vendor/theus-arsenal/skills/recuperacion-iterativa/SKILL.md +0 -236
- package/vendor/theus-arsenal/skills/redaccion-articulos/SKILL.md +0 -81
- package/vendor/theus-arsenal/skills/regex-vs-llm/SKILL.md +0 -221
- package/vendor/theus-arsenal/skills/regresion-codigo-ia/SKILL.md +0 -388
- package/vendor/theus-arsenal/skills/rendimiento-react/SKILL.md +0 -567
- package/vendor/theus-arsenal/skills/revision-codigo-flutter-dart/SKILL.md +0 -442
- package/vendor/theus-arsenal/skills/revision-literatura-cientifica/SKILL.md +0 -191
- package/vendor/theus-arsenal/skills/revision-multiperspectiva/SKILL.md +0 -302
- package/vendor/theus-arsenal/skills/revision-riesgo-prediccion/SKILL.md +0 -56
- package/vendor/theus-arsenal/skills/revision-seguridad/SKILL.md +0 -505
- package/vendor/theus-arsenal/skills/revision-seguridad/cloud-infrastructure-security.md +0 -361
- package/vendor/theus-arsenal/skills/runtime-bun/SKILL.md +0 -83
- package/vendor/theus-arsenal/skills/salud-codigo-codescene/SKILL.md +0 -163
- package/vendor/theus-arsenal/skills/salud-interfaces-red/SKILL.md +0 -143
- package/vendor/theus-arsenal/skills/seguimiento-costos/SKILL.md +0 -122
- package/vendor/theus-arsenal/skills/seguridad-agentes-trading/SKILL.md +0 -145
- package/vendor/theus-arsenal/skills/seguridad-amm-defi/SKILL.md +0 -166
- package/vendor/theus-arsenal/skills/seguridad-django/SKILL.md +0 -648
- package/vendor/theus-arsenal/skills/seguridad-laravel/SKILL.md +0 -945
- package/vendor/theus-arsenal/skills/seguridad-perl/SKILL.md +0 -507
- package/vendor/theus-arsenal/skills/seguridad-quarkus/SKILL.md +0 -474
- package/vendor/theus-arsenal/skills/seguridad-springboot/SKILL.md +0 -279
- package/vendor/theus-arsenal/skills/seo/SKILL.md +0 -166
- package/vendor/theus-arsenal/skills/sistema-diseno/SKILL.md +0 -81
- package/vendor/theus-arsenal/skills/sistema-operativo-agentico/SKILL.md +0 -375
- package/vendor/theus-arsenal/skills/sistemas-latencia-critica/SKILL.md +0 -65
- package/vendor/theus-arsenal/skills/tdd-django/SKILL.md +0 -735
- package/vendor/theus-arsenal/skills/tdd-laravel/SKILL.md +0 -673
- package/vendor/theus-arsenal/skills/tdd-quarkus/SKILL.md +0 -817
- package/vendor/theus-arsenal/skills/tdd-springboot/SKILL.md +0 -165
- package/vendor/theus-arsenal/skills/testing-cpp/SKILL.md +0 -328
- package/vendor/theus-arsenal/skills/testing-csharp/SKILL.md +0 -321
- package/vendor/theus-arsenal/skills/testing-e2e/SKILL.md +0 -325
- package/vendor/theus-arsenal/skills/testing-go/SKILL.md +0 -719
- package/vendor/theus-arsenal/skills/testing-kotlin/SKILL.md +0 -829
- package/vendor/theus-arsenal/skills/testing-perl/SKILL.md +0 -479
- package/vendor/theus-arsenal/skills/testing-protocolos-di-swift/SKILL.md +0 -196
- package/vendor/theus-arsenal/skills/testing-python/SKILL.md +0 -815
- package/vendor/theus-arsenal/skills/testing-react/SKILL.md +0 -421
- package/vendor/theus-arsenal/skills/testing-rust/SKILL.md +0 -506
- package/vendor/theus-arsenal/skills/tours-de-codigo/SKILL.md +0 -252
- package/vendor/theus-arsenal/skills/traduccion-documentos-visado/SKILL.md +0 -121
- package/vendor/theus-arsenal/skills/ui-a-vue/SKILL.md +0 -141
- package/vendor/theus-arsenal/skills/validacion-config-red/SKILL.md +0 -211
- package/vendor/theus-arsenal/skills/verificacion-django/SKILL.md +0 -470
- package/vendor/theus-arsenal/skills/verificacion-factual/SKILL.md +0 -142
- package/vendor/theus-arsenal/skills/verificacion-laravel/SKILL.md +0 -184
- package/vendor/theus-arsenal/skills/verificacion-quarkus/SKILL.md +0 -485
- package/vendor/theus-arsenal/skills/verificacion-springboot/SKILL.md +0 -237
- package/vendor/theus-arsenal/skills/videodb/SKILL.md +0 -374
- package/vendor/theus-arsenal/skills/videodb/reference/api-reference.md +0 -550
- package/vendor/theus-arsenal/skills/videodb/reference/capture-reference.md +0 -407
- package/vendor/theus-arsenal/skills/videodb/reference/capture.md +0 -101
- package/vendor/theus-arsenal/skills/videodb/reference/editor.md +0 -443
- package/vendor/theus-arsenal/skills/videodb/reference/generative.md +0 -331
- package/vendor/theus-arsenal/skills/videodb/reference/rtstream-reference.md +0 -564
- package/vendor/theus-arsenal/skills/videodb/reference/rtstream.md +0 -65
- package/vendor/theus-arsenal/skills/videodb/reference/search.md +0 -230
- package/vendor/theus-arsenal/skills/videodb/reference/streaming.md +0 -406
- package/vendor/theus-arsenal/skills/videodb/reference/use-cases.md +0 -118
- package/vendor/theus-arsenal/skills/videodb/scripts/ws_listener.py +0 -279
- package/vendor/theus-arsenal/skills/videos-manim/SKILL.md +0 -91
- package/vendor/theus-arsenal/skills/videos-manim/assets/network_graph_scene.py +0 -52
- package/vendor/theus-arsenal/skills/vigilancia-canary/SKILL.md +0 -108
- package/vendor/theus-arsenal/skills/voz-de-marca/SKILL.md +0 -106
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: salud-interfaces-red
|
|
3
|
-
description: Diagnostica errores de interfaz, descartes, CRCs, desajustes de dúplex, flapping, problemas
|
|
4
|
-
de negociación de velocidad y tendencias de contadores en routers, switches y hosts Linux.
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Salud de interfaces de red
|
|
8
|
-
|
|
9
|
-
Usa esta skill cuando un síntoma de red pueda deberse a un enlace físico, un puerto de switch, un cable, un transceptor, una configuración de dúplex o una interfaz congestionada.
|
|
10
|
-
|
|
11
|
-
## Cuándo usarla
|
|
12
|
-
|
|
13
|
-
- Un host o VLAN presenta pérdida de paquetes, picos de latencia o alcanzabilidad intermitente.
|
|
14
|
-
- Una interfaz de switch o router muestra CRCs, runts, giants, descartes, resets o flaps.
|
|
15
|
-
- Necesitas comparar ambos extremos de un enlace antes de reemplazar hardware.
|
|
16
|
-
- Una ventana de cambio requiere evidencia de contadores antes/después.
|
|
17
|
-
- El monitoreo reporta crecimiento de `ifInErrors`, `ifOutErrors` o `ifOutDiscards`.
|
|
18
|
-
|
|
19
|
-
## Cómo funciona
|
|
20
|
-
|
|
21
|
-
Los contadores de interfaz son evidencia, pero la tendencia importa más que el número absoluto. Captura una línea base, espera un intervalo de medición, captura de nuevo y compara los incrementos.
|
|
22
|
-
|
|
23
|
-
```text
|
|
24
|
-
show interfaces <interfaz>
|
|
25
|
-
show interfaces <interfaz> status
|
|
26
|
-
show logging | include <interfaz>|changed state|line protocol
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
En hosts Linux:
|
|
30
|
-
|
|
31
|
-
```text
|
|
32
|
-
ip -s link show <interfaz>
|
|
33
|
-
ethtool <interfaz>
|
|
34
|
-
ethtool -S <interfaz>
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Referencia de contadores
|
|
38
|
-
|
|
39
|
-
| Contador | Significado | Causa común |
|
|
40
|
-
| --- | --- | --- |
|
|
41
|
-
| CRC | Falla el checksum de la trama recibida | Cable dañado, fibra sucia, óptico defectuoso, desajuste de dúplex |
|
|
42
|
-
| input errors | Errores agregados del lado de recepción | Revisa los subcontadores antes de concluir |
|
|
43
|
-
| runts | Tramas por debajo del tamaño mínimo Ethernet | Desajuste de dúplex, dominio de colisión, NIC defectuosa |
|
|
44
|
-
| giants | Tramas mayores al MTU esperado | Desajuste de MTU o frontera de jumbo frames |
|
|
45
|
-
| input drops | El dispositivo no pudo aceptar paquetes entrantes | Ráfagas, sobresuscripción, ruta de CPU, presión de colas |
|
|
46
|
-
| output drops | La cola de salida descartó paquetes | Congestión, política de QoS, uplink subdimensionado |
|
|
47
|
-
| resets | Reinicio de hardware de la interfaz | Flapping, keepalive, driver, óptico, alimentación |
|
|
48
|
-
| collisions | Contador de colisiones Ethernet | Half duplex o desajuste de negociación |
|
|
49
|
-
|
|
50
|
-
## Flujo de diagnóstico
|
|
51
|
-
|
|
52
|
-
### CRCs o errores de entrada
|
|
53
|
-
|
|
54
|
-
1. Confirma que los contadores están incrementando, no que son solo históricos.
|
|
55
|
-
2. Revisa ambos extremos del enlace. Los errores del lado de recepción suelen apuntar a la señal que llega a ese lado, no necesariamente al puerto que reporta el error.
|
|
56
|
-
3. Reemplaza el patch cord o limpia/reemplaza la fibra y los ópticos.
|
|
57
|
-
4. Confirma que velocidad y dúplex coincidan en ambos lados.
|
|
58
|
-
5. Revisa los logs en busca de eventos de flap cerca del mismo timestamp.
|
|
59
|
-
|
|
60
|
-
### Descartes (drops)
|
|
61
|
-
|
|
62
|
-
1. Separa los descartes de entrada de los de salida.
|
|
63
|
-
2. Compara la tasa de la interfaz contra su capacidad.
|
|
64
|
-
3. Revisa la política de QoS, los contadores de colas y si el enlace es un uplink sobresuscrito.
|
|
65
|
-
4. Trata el ajuste de colas como secundario. Primero demuestra si el enlace está congestionado.
|
|
66
|
-
|
|
67
|
-
### Dúplex y velocidad
|
|
68
|
-
|
|
69
|
-
Prefiere la autonegociación en enlaces Ethernet modernos cuando ambos lados la soportan. Si un lado debe ser fijo, configura ambos lados explícitamente y documenta el motivo. Nunca mezcles velocidad/dúplex fijos en un lado con auto en el otro.
|
|
70
|
-
|
|
71
|
-
```text
|
|
72
|
-
show interfaces <interfaz> | include duplex|speed
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## Ejemplo de parser seguro
|
|
76
|
-
|
|
77
|
-
Corta cada bloque de interfaz desde un encabezado hasta el siguiente. No uses una ventana de caracteres arbitraria; los bloques de interfaz grandes pueden hacer que se pierdan contadores o se asignen al puerto equivocado.
|
|
78
|
-
|
|
79
|
-
```python
|
|
80
|
-
import re
|
|
81
|
-
from typing import Any
|
|
82
|
-
|
|
83
|
-
HEADER_RE = re.compile(
|
|
84
|
-
r"^(?P<name>\S+) is (?P<status>(?:administratively )?down|up), "
|
|
85
|
-
r"line protocol is (?P<protocol>up|down)",
|
|
86
|
-
re.I | re.M,
|
|
87
|
-
)
|
|
88
|
-
ERROR_RE = re.compile(r"(?P<input>\d+) input errors, (?P<crc>\d+) CRC", re.I)
|
|
89
|
-
DROP_RE = re.compile(r"(?P<output>\d+) output errors", re.I)
|
|
90
|
-
DUPLEX_RE = re.compile(r"(?P<duplex>Full|Half|Auto)-duplex,\s+(?P<speed>[^,]+)", re.I)
|
|
91
|
-
|
|
92
|
-
def parse_show_interfaces(raw: str) -> list[dict[str, Any]]:
|
|
93
|
-
headers = list(HEADER_RE.finditer(raw))
|
|
94
|
-
interfaces = []
|
|
95
|
-
for index, header in enumerate(headers):
|
|
96
|
-
end = headers[index + 1].start() if index + 1 < len(headers) else len(raw)
|
|
97
|
-
block = raw[header.start():end]
|
|
98
|
-
errors = ERROR_RE.search(block)
|
|
99
|
-
drops = DROP_RE.search(block)
|
|
100
|
-
duplex = DUPLEX_RE.search(block)
|
|
101
|
-
interfaces.append({
|
|
102
|
-
"name": header.group("name"),
|
|
103
|
-
"status": header.group("status"),
|
|
104
|
-
"protocol": header.group("protocol"),
|
|
105
|
-
"duplex": duplex.group("duplex") if duplex else "desconocido",
|
|
106
|
-
"speed": duplex.group("speed").strip() if duplex else "desconocido",
|
|
107
|
-
"input_errors": int(errors.group("input")) if errors else 0,
|
|
108
|
-
"crc_errors": int(errors.group("crc")) if errors else 0,
|
|
109
|
-
"output_errors": int(drops.group("output")) if drops else 0,
|
|
110
|
-
})
|
|
111
|
-
return interfaces
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
## Ejemplos
|
|
115
|
-
|
|
116
|
-
### CRCs en un puerto de switch
|
|
117
|
-
|
|
118
|
-
1. Captura los contadores en el puerto local.
|
|
119
|
-
2. Captura los contadores en el puerto remoto conectado.
|
|
120
|
-
3. Reemplaza el cable o el óptico antes de tocar reglas de ruteo o firewall.
|
|
121
|
-
4. Limpia los contadores solo después de registrar la línea base.
|
|
122
|
-
5. Vuelve a revisar tras un intervalo fijo.
|
|
123
|
-
|
|
124
|
-
### Internet lento pero la LAN está bien
|
|
125
|
-
|
|
126
|
-
1. Revisa descartes/errores en la interfaz WAN.
|
|
127
|
-
2. Revisa la utilización del uplink LAN y sus descartes de salida.
|
|
128
|
-
3. Revisa la CPU del gateway si el enlace WAN está limpio pero el throughput sigue bajo.
|
|
129
|
-
4. Compara pruebas cableadas e inalámbricas antes de culpar al servicio upstream.
|
|
130
|
-
|
|
131
|
-
## Antipatrones a evitar
|
|
132
|
-
|
|
133
|
-
- Limpiar contadores antes de guardar una línea base.
|
|
134
|
-
- Mirar solo un lado del enlace.
|
|
135
|
-
- Asumir que todos los CRCs históricos son problemas activos sin una ventana temporal.
|
|
136
|
-
- Mezclar autonegociación en un lado con velocidad/dúplex fijos en el otro.
|
|
137
|
-
- Tratar los descartes de salida como un problema de cableado antes de revisar la congestión.
|
|
138
|
-
|
|
139
|
-
## Skills relacionadas
|
|
140
|
-
|
|
141
|
-
- Agente: `diagnosticador-redes`
|
|
142
|
-
- Skill: `validacion-config-red`
|
|
143
|
-
- Skill: `homelab-diseno-red`
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: seguimiento-costos
|
|
3
|
-
description: Rastrea y reporta el uso de tokens, el gasto y los presupuestos del agente a partir
|
|
4
|
-
del registro local de métricas del arsenal. Úsala cuando el usuario pregunte por costos, gasto,
|
|
5
|
-
uso, tokens, presupuestos o desgloses de costo por modelo, sesión o fecha.
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Seguimiento de costos
|
|
9
|
-
|
|
10
|
-
Usa esta skill para analizar el historial local de costos y uso del agente a partir
|
|
11
|
-
del registro de métricas que escribe el rastreador de costos del arsenal en el
|
|
12
|
-
evento `Stop`.
|
|
13
|
-
|
|
14
|
-
> **Disponibilidad de los datos:** el hook rastreador del arsenal
|
|
15
|
-
> (`scripts/hooks/seguimiento-costos.js`, registrado en el evento `Stop` de
|
|
16
|
-
> `hooks.json`) escribe este registro tras cada respuesta del asistente. La skill
|
|
17
|
-
> también funciona con cualquier otro proceso que escriba el archivo con el
|
|
18
|
-
> esquema descrito. Si el archivo no existe todavía (ninguna sesión ha finalizado
|
|
19
|
-
> con el arsenal activo), indícalo y no inventes datos.
|
|
20
|
-
|
|
21
|
-
## Dónde viven los datos
|
|
22
|
-
|
|
23
|
-
El rastreador añade un objeto JSON por cada cierre de sesión a
|
|
24
|
-
`~/.theus/arsenal/metrics/costs.jsonl`. Cada fila es una **instantánea acumulada
|
|
25
|
-
de esa sesión**, así que para totalizar el gasto se toma la **última fila por
|
|
26
|
-
`session_id`** y se suma entre sesiones — sumar todas las filas contaría el gasto
|
|
27
|
-
varias veces.
|
|
28
|
-
|
|
29
|
-
Esquema de cada fila:
|
|
30
|
-
|
|
31
|
-
| Campo | Significado |
|
|
32
|
-
| --- | --- |
|
|
33
|
-
| `timestamp` | Marca de tiempo ISO de la instantánea |
|
|
34
|
-
| `session_id` | Identificador de la sesión del agente |
|
|
35
|
-
| `transcript_path` | Ruta a la transcripción de la sesión |
|
|
36
|
-
| `model` | Modelo usado |
|
|
37
|
-
| `input_tokens` / `output_tokens` | Conteos de tokens |
|
|
38
|
-
| `cache_write_tokens` / `cache_read_tokens` | Tokens de caché de prompts |
|
|
39
|
-
| `estimated_cost_usd` | Costo acumulado precalculado de la sesión, en USD |
|
|
40
|
-
|
|
41
|
-
Prefiere `estimated_cost_usd` antes que recalcular precios a mano — los precios
|
|
42
|
-
por modelo y por caché cambian, y el rastreador es la fuente de verdad.
|
|
43
|
-
|
|
44
|
-
## Cuándo usarla
|
|
45
|
-
|
|
46
|
-
- El usuario pregunta "¿cuánto he gastado?", "¿cuánto costó esta sesión?" o
|
|
47
|
-
"¿cuál es mi uso de tokens?"
|
|
48
|
-
- El usuario menciona presupuestos, límites de gasto, sobrecostos o controles de costo.
|
|
49
|
-
- El usuario quiere un desglose por modelo, sesión o fecha, o una exportación CSV.
|
|
50
|
-
|
|
51
|
-
## Cómo se alimenta el registro
|
|
52
|
-
|
|
53
|
-
El registro lo escribe el hook `scripts/hooks/seguimiento-costos.js` del
|
|
54
|
-
arsenal, registrado en el evento `Stop` de `hooks.json` con el contrato real de
|
|
55
|
-
hooks de Theus: `matcher` de cadena (`"*"` para todas las respuestas) y un
|
|
56
|
-
comando que recibe por **stdin un JSON** con `session_id`, `transcript_path` y
|
|
57
|
-
`cwd`. Como `Stop` se dispara tras cada respuesta del asistente (no una vez por
|
|
58
|
-
sesión), cada fila es el acumulado de la sesión hasta ese momento.
|
|
59
|
-
|
|
60
|
-
El registro ya viene declarado en el `hooks.json` del plugin (id
|
|
61
|
-
`stop-seguimiento-costos`); no lo registres de nuevo. Cualquier otro rastreador
|
|
62
|
-
que respete el esquema de fila de arriba y escriba en
|
|
63
|
-
`~/.theus/arsenal/metrics/costs.jsonl` es igualmente compatible con esta skill y
|
|
64
|
-
con el comando `/informe-costos`.
|
|
65
|
-
|
|
66
|
-
## Cómo funciona
|
|
67
|
-
|
|
68
|
-
Primero verifica que el registro exista (usa `node`, no `sqlite3` — el rastreador
|
|
69
|
-
escribe JSONL y `node` es multiplataforma):
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
node -e 'const fs=require("fs"),os=require("os"),p=require("path");const f=p.join(os.homedir(),".theus","arsenal","metrics","costs.jsonl");console.log(fs.existsSync(f)?"registro de costos encontrado":"registro de costos no encontrado: "+f)'
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
Si el registro no existe, no fabriques datos de uso. Dile al usuario que el
|
|
76
|
-
seguimiento de costos se llena después de que termine la primera sesión con un
|
|
77
|
-
rastreador de costos activo en el evento `Stop`.
|
|
78
|
-
|
|
79
|
-
## Ejemplo — resumen, por modelo, últimos 7 días
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
node -e '
|
|
83
|
-
const fs=require("fs"),os=require("os"),path=require("path");
|
|
84
|
-
const f=path.join(os.homedir(),".theus","arsenal","metrics","costs.jsonl");
|
|
85
|
-
if(!fs.existsSync(f)){console.log("registro de costos no encontrado: "+f);process.exit(0);}
|
|
86
|
-
const rows=fs.readFileSync(f,"utf8").split(/\r?\n/).filter(Boolean).map(l=>{try{return JSON.parse(l)}catch{return null}}).filter(Boolean);
|
|
87
|
-
const bySession=new Map();
|
|
88
|
-
for(const r of rows){const k=r.session_id||r.transcript_path||r.timestamp;const p=bySession.get(k);if(!p||String(r.timestamp)>String(p.timestamp))bySession.set(k,r);}
|
|
89
|
-
const latest=[...bySession.values()];
|
|
90
|
-
const cost=r=>Number(r.estimated_cost_usd)||0, day=r=>String(r.timestamp||"").slice(0,10), sum=a=>a.reduce((s,r)=>s+cost(r),0), f4=n=>"$"+n.toFixed(4);
|
|
91
|
-
const today=new Date().toISOString().slice(0,10), yest=new Date(Date.now()-864e5).toISOString().slice(0,10);
|
|
92
|
-
console.log("hoy: "+f4(sum(latest.filter(r=>day(r)===today)))+" | ayer: "+f4(sum(latest.filter(r=>day(r)===yest)))+" | total: "+f4(sum(latest))+" ("+latest.length+" sesiones)");
|
|
93
|
-
const m=new Map();for(const r of latest){const k=r.model||"(desconocido)";m.set(k,(m.get(k)||0)+cost(r));}
|
|
94
|
-
console.log("por modelo:");[...m.entries()].sort((a,b)=>b[1]-a[1]).forEach(([k,v])=>console.log(" "+f4(v)+" "+k));
|
|
95
|
-
'
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
Para un detalle por sesión o una exportación CSV, itera el mismo conjunto
|
|
99
|
-
`latest` (o las filas crudas para el CSV) e imprime los campos necesarios.
|
|
100
|
-
|
|
101
|
-
## Guía para reportar
|
|
102
|
-
|
|
103
|
-
Al presentar datos de costos, incluye el gasto de hoy frente al de ayer, el total
|
|
104
|
-
entre todas las sesiones, el desglose por modelo y la cantidad de sesiones.
|
|
105
|
-
Formatea los montos menores a un dólar con cuatro decimales y los mayores con dos.
|
|
106
|
-
|
|
107
|
-
## Antipatrones
|
|
108
|
-
|
|
109
|
-
- No sumes todas las filas — son acumuladas por sesión; reduce primero a la
|
|
110
|
-
última fila por `session_id`.
|
|
111
|
-
- No estimes costos a partir de los tokens crudos cuando `estimated_cost_usd`
|
|
112
|
-
está presente.
|
|
113
|
-
- No asumas que el registro existe sin comprobarlo.
|
|
114
|
-
- No pongas precios de modelos codificados a mano en respuestas al usuario.
|
|
115
|
-
- No recomiendes instalar hooks o plugins sin revisar que ejecuten código arbitrario.
|
|
116
|
-
|
|
117
|
-
## Relacionados
|
|
118
|
-
|
|
119
|
-
- `/informe-costos` — informe en forma de comando sobre el mismo registro de métricas.
|
|
120
|
-
- `optimizacion-costos-llm` — patrones de enrutamiento de modelos y diseño de presupuestos.
|
|
121
|
-
- `presupuesto-contexto` — planificación de contexto y presupuesto de tokens.
|
|
122
|
-
- `compactacion-estrategica` — compactación de contexto para reducir gasto repetido de tokens.
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: seguridad-agentes-trading
|
|
3
|
-
description: Patrones de seguridad para agentes de trading autónomos con autoridad sobre wallets o transacciones. Cubre inyección de prompts, límites de gasto, simulación previa al envío, cortacircuitos, protección MEV y manejo de claves.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Seguridad de agentes de trading con LLM
|
|
7
|
-
|
|
8
|
-
Los agentes de trading autónomos tienen un modelo de amenazas más duro que las aplicaciones LLM normales: una inyección o una ruta de herramienta defectuosa puede convertirse directamente en pérdida de activos.
|
|
9
|
-
|
|
10
|
-
## Cuándo usarla
|
|
11
|
-
|
|
12
|
-
- Al construir un agente de IA que firma y envía transacciones.
|
|
13
|
-
- Al auditar un bot de trading o un asistente de ejecución on-chain.
|
|
14
|
-
- Al diseñar la gestión de claves de wallet para un agente.
|
|
15
|
-
- Al dar a un modelo acceso a colocación de órdenes, swaps u operaciones de tesorería.
|
|
16
|
-
|
|
17
|
-
## Cómo funciona
|
|
18
|
-
|
|
19
|
-
Superpone las defensas. Ningún control aislado es suficiente. Trata la higiene de prompts, la política de gasto, la simulación, los límites de ejecución y el aislamiento de wallets como controles independientes.
|
|
20
|
-
|
|
21
|
-
## Ejemplos
|
|
22
|
-
|
|
23
|
-
### Trata la inyección de prompts como un ataque financiero
|
|
24
|
-
|
|
25
|
-
```python
|
|
26
|
-
import re
|
|
27
|
-
|
|
28
|
-
# Los patrones se mantienen en inglés: detectan payloads de inyección típicos
|
|
29
|
-
INJECTION_PATTERNS = [
|
|
30
|
-
r'ignore (previous|all) instructions',
|
|
31
|
-
r'new (task|directive|instruction)',
|
|
32
|
-
r'system prompt',
|
|
33
|
-
r'send .{0,50} to 0x[0-9a-fA-F]{40}',
|
|
34
|
-
r'transfer .{0,50} to',
|
|
35
|
-
r'approve .{0,50} for',
|
|
36
|
-
]
|
|
37
|
-
|
|
38
|
-
def sanitize_onchain_data(text: str) -> str:
|
|
39
|
-
for pattern in INJECTION_PATTERNS:
|
|
40
|
-
if re.search(pattern, text, re.IGNORECASE):
|
|
41
|
-
raise ValueError(f"Posible inyección de prompt: {text[:100]}")
|
|
42
|
-
return text
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
No inyectes a ciegas nombres de tokens, etiquetas de pares, webhooks ni feeds sociales en un prompt con capacidad de ejecución.
|
|
46
|
-
|
|
47
|
-
### Límites de gasto estrictos
|
|
48
|
-
|
|
49
|
-
```python
|
|
50
|
-
from decimal import Decimal
|
|
51
|
-
|
|
52
|
-
MAX_SINGLE_TX_USD = Decimal("500")
|
|
53
|
-
MAX_DAILY_SPEND_USD = Decimal("2000")
|
|
54
|
-
|
|
55
|
-
class SpendLimitError(Exception):
|
|
56
|
-
pass
|
|
57
|
-
|
|
58
|
-
class SpendLimitGuard:
|
|
59
|
-
def check_and_record(self, usd_amount: Decimal) -> None:
|
|
60
|
-
if usd_amount > MAX_SINGLE_TX_USD:
|
|
61
|
-
raise SpendLimitError(f"La tx individual ${usd_amount} excede el máximo ${MAX_SINGLE_TX_USD}")
|
|
62
|
-
|
|
63
|
-
daily = self._get_24h_spend()
|
|
64
|
-
if daily + usd_amount > MAX_DAILY_SPEND_USD:
|
|
65
|
-
raise SpendLimitError(f"Límite diario: ${daily} + ${usd_amount} > ${MAX_DAILY_SPEND_USD}")
|
|
66
|
-
|
|
67
|
-
self._record_spend(usd_amount)
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### Simula antes de enviar
|
|
71
|
-
|
|
72
|
-
```python
|
|
73
|
-
class SlippageError(Exception):
|
|
74
|
-
pass
|
|
75
|
-
|
|
76
|
-
async def safe_execute(self, tx: dict, expected_min_out: int | None = None) -> str:
|
|
77
|
-
sim_result = await self.w3.eth.call(tx)
|
|
78
|
-
|
|
79
|
-
if expected_min_out is None:
|
|
80
|
-
raise ValueError("min_amount_out es obligatorio antes de enviar")
|
|
81
|
-
|
|
82
|
-
actual_out = decode_uint256(sim_result)
|
|
83
|
-
if actual_out < expected_min_out:
|
|
84
|
-
raise SlippageError(f"Simulación: {actual_out} < {expected_min_out}")
|
|
85
|
-
|
|
86
|
-
signed = self.account.sign_transaction(tx)
|
|
87
|
-
return await self.w3.eth.send_raw_transaction(signed.raw_transaction)
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
### Cortacircuitos
|
|
91
|
-
|
|
92
|
-
```python
|
|
93
|
-
class TradingCircuitBreaker:
|
|
94
|
-
MAX_CONSECUTIVE_LOSSES = 3
|
|
95
|
-
MAX_HOURLY_LOSS_PCT = 0.05
|
|
96
|
-
|
|
97
|
-
def check(self, portfolio_value: float) -> None:
|
|
98
|
-
if self.consecutive_losses >= self.MAX_CONSECUTIVE_LOSSES:
|
|
99
|
-
self.halt("Demasiadas pérdidas consecutivas")
|
|
100
|
-
|
|
101
|
-
if self.hour_start_value <= 0:
|
|
102
|
-
self.halt("hour_start_value inválido")
|
|
103
|
-
return
|
|
104
|
-
|
|
105
|
-
hourly_pnl = (portfolio_value - self.hour_start_value) / self.hour_start_value
|
|
106
|
-
if hourly_pnl < -self.MAX_HOURLY_LOSS_PCT:
|
|
107
|
-
self.halt(f"PnL horario {hourly_pnl:.1%} por debajo del umbral")
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Aislamiento de wallets
|
|
111
|
-
|
|
112
|
-
```python
|
|
113
|
-
import os
|
|
114
|
-
from eth_account import Account
|
|
115
|
-
|
|
116
|
-
private_key = os.environ.get("TRADING_WALLET_PRIVATE_KEY")
|
|
117
|
-
if not private_key:
|
|
118
|
-
raise EnvironmentError("TRADING_WALLET_PRIVATE_KEY no está definida")
|
|
119
|
-
|
|
120
|
-
account = Account.from_key(private_key)
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
Usa una hot wallet dedicada con solo los fondos necesarios para la sesión. Nunca apuntes el agente a la wallet principal de tesorería.
|
|
124
|
-
|
|
125
|
-
### Protección MEV y de deadline
|
|
126
|
-
|
|
127
|
-
```python
|
|
128
|
-
import time
|
|
129
|
-
|
|
130
|
-
PRIVATE_RPC = "https://rpc.flashbots.net"
|
|
131
|
-
MAX_SLIPPAGE_BPS = {"stable": 10, "volatile": 50}
|
|
132
|
-
deadline = int(time.time()) + 60
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## Lista de verificación previa al despliegue
|
|
136
|
-
|
|
137
|
-
- Los datos externos se sanean antes de entrar al contexto del modelo.
|
|
138
|
-
- Los límites de gasto se aplican de forma independiente de la salida del modelo.
|
|
139
|
-
- Las transacciones se simulan antes del envío.
|
|
140
|
-
- `min_amount_out` es obligatorio.
|
|
141
|
-
- Los cortacircuitos detienen la operación ante drawdown o estado inválido.
|
|
142
|
-
- Las claves provienen del entorno o de un gestor de secretos, nunca del código ni de los logs.
|
|
143
|
-
- Se usa mempool privado o enrutamiento protegido cuando corresponde.
|
|
144
|
-
- El slippage y los deadlines se fijan por estrategia.
|
|
145
|
-
- Todas las decisiones del agente se registran para auditoría, no solo los envíos exitosos.
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: seguridad-amm-defi
|
|
3
|
-
description: Lista de verificación de seguridad para contratos AMM en Solidity, pools de liquidez
|
|
4
|
-
y flujos de swap. Cubre reentrada, orden CEI, ataques por donación o inflación, manipulación de
|
|
5
|
-
oráculos, slippage, controles de administración y aritmética de enteros.
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Seguridad de AMM en DeFi
|
|
9
|
-
|
|
10
|
-
Patrones críticos de vulnerabilidad e implementaciones endurecidas para contratos AMM en Solidity, vaults de LP y funciones de swap.
|
|
11
|
-
|
|
12
|
-
## Cuándo usarla
|
|
13
|
-
|
|
14
|
-
- Al escribir o auditar un contrato AMM o de pool de liquidez en Solidity
|
|
15
|
-
- Al implementar flujos de swap, deposit, withdraw, mint o burn que custodian saldos de tokens
|
|
16
|
-
- Al revisar cualquier contrato que use `token.balanceOf(address(this))` en la matemática de shares o reservas
|
|
17
|
-
- Al añadir setters de comisiones, pausas, actualizaciones de oráculo u otras funciones administrativas a un protocolo DeFi
|
|
18
|
-
|
|
19
|
-
## Cómo funciona
|
|
20
|
-
|
|
21
|
-
Úsala como una biblioteca de checklist más patrones. Revisa cada punto de entrada de usuario contra las categorías de abajo y prefiere los ejemplos endurecidos frente a variantes escritas a mano.
|
|
22
|
-
|
|
23
|
-
## Seguridad de ejecución
|
|
24
|
-
|
|
25
|
-
Los comandos de shell de esta skill son ejemplos de auditoría local. Ejecútalos solo en un checkout de confianza o en un sandbox desechable, y no insertes en comandos de shell nombres de contratos, rutas, URLs de RPC, llaves privadas ni flags provistos por terceros sin validar. Pregunta antes de instalar herramientas o de lanzar trabajos largos de fuzzing/análisis estático que puedan consumir recursos locales o de pago significativos.
|
|
26
|
-
|
|
27
|
-
Nunca incluyas secretos, llaves privadas, frases semilla, tokens de API ni credenciales de firma de mainnet en ejemplos de comandos, logs o informes.
|
|
28
|
-
|
|
29
|
-
## Ejemplos
|
|
30
|
-
|
|
31
|
-
### Reentrada: aplica el orden CEI
|
|
32
|
-
|
|
33
|
-
Vulnerable:
|
|
34
|
-
|
|
35
|
-
```solidity
|
|
36
|
-
function withdraw(uint256 amount) external {
|
|
37
|
-
require(balances[msg.sender] >= amount);
|
|
38
|
-
token.transfer(msg.sender, amount);
|
|
39
|
-
balances[msg.sender] -= amount;
|
|
40
|
-
}
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Seguro:
|
|
44
|
-
|
|
45
|
-
```solidity
|
|
46
|
-
import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
|
|
47
|
-
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
48
|
-
|
|
49
|
-
using SafeERC20 for IERC20;
|
|
50
|
-
|
|
51
|
-
function withdraw(uint256 amount) external nonReentrant {
|
|
52
|
-
require(balances[msg.sender] >= amount, "Insufficient");
|
|
53
|
-
balances[msg.sender] -= amount;
|
|
54
|
-
token.safeTransfer(msg.sender, amount);
|
|
55
|
-
}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
No escribas tu propio guard cuando existe una librería endurecida.
|
|
59
|
-
|
|
60
|
-
### Ataques por donación o inflación
|
|
61
|
-
|
|
62
|
-
Usar `token.balanceOf(address(this))` directamente en la matemática de shares permite que un atacante manipule el denominador enviando tokens al contrato fuera de la ruta prevista.
|
|
63
|
-
|
|
64
|
-
```solidity
|
|
65
|
-
// Vulnerable
|
|
66
|
-
function deposit(uint256 assets) external returns (uint256 shares) {
|
|
67
|
-
shares = (assets * totalShares) / token.balanceOf(address(this));
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
```solidity
|
|
72
|
-
// Seguro
|
|
73
|
-
uint256 private _totalAssets;
|
|
74
|
-
|
|
75
|
-
function deposit(uint256 assets) external nonReentrant returns (uint256 shares) {
|
|
76
|
-
uint256 balBefore = token.balanceOf(address(this));
|
|
77
|
-
token.safeTransferFrom(msg.sender, address(this), assets);
|
|
78
|
-
uint256 received = token.balanceOf(address(this)) - balBefore;
|
|
79
|
-
|
|
80
|
-
shares = totalShares == 0 ? received : (received * totalShares) / _totalAssets;
|
|
81
|
-
_totalAssets += received;
|
|
82
|
-
totalShares += shares;
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Lleva contabilidad interna y mide los tokens realmente recibidos.
|
|
87
|
-
|
|
88
|
-
### Manipulación de oráculos
|
|
89
|
-
|
|
90
|
-
Los precios spot son manipulables con flash loans. Prefiere TWAP.
|
|
91
|
-
|
|
92
|
-
```solidity
|
|
93
|
-
uint32[] memory secondsAgos = new uint32[](2);
|
|
94
|
-
secondsAgos[0] = 1800;
|
|
95
|
-
secondsAgos[1] = 0;
|
|
96
|
-
(int56[] memory tickCumulatives,) = IUniswapV3Pool(pool).observe(secondsAgos);
|
|
97
|
-
int24 twapTick = int24(
|
|
98
|
-
(tickCumulatives[1] - tickCumulatives[0]) / int56(uint56(30 minutes))
|
|
99
|
-
);
|
|
100
|
-
uint160 sqrtPriceX96 = TickMath.getSqrtRatioAtTick(twapTick);
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### Protección contra slippage
|
|
104
|
-
|
|
105
|
-
Cada ruta de swap necesita un slippage provisto por el llamador y un deadline.
|
|
106
|
-
|
|
107
|
-
```solidity
|
|
108
|
-
function swap(
|
|
109
|
-
uint256 amountIn,
|
|
110
|
-
uint256 amountOutMin,
|
|
111
|
-
uint256 deadline
|
|
112
|
-
) external returns (uint256 amountOut) {
|
|
113
|
-
require(block.timestamp <= deadline, "Expired");
|
|
114
|
-
amountOut = _calculateOut(amountIn);
|
|
115
|
-
require(amountOut >= amountOutMin, "Slippage exceeded");
|
|
116
|
-
_executeSwap(amountIn, amountOut);
|
|
117
|
-
}
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
### Aritmética segura de reservas
|
|
121
|
-
|
|
122
|
-
```solidity
|
|
123
|
-
import {FullMath} from "@uniswap/v3-core/contracts/libraries/FullMath.sol";
|
|
124
|
-
|
|
125
|
-
uint256 result = FullMath.mulDiv(a, b, c);
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
Para aritmética de reservas grandes, evita el `a * b / c` ingenuo cuando exista riesgo de overflow.
|
|
129
|
-
|
|
130
|
-
### Controles administrativos
|
|
131
|
-
|
|
132
|
-
```solidity
|
|
133
|
-
import {Ownable2Step} from "@openzeppelin/contracts/access/Ownable2Step.sol";
|
|
134
|
-
|
|
135
|
-
contract MyAMM is Ownable2Step {
|
|
136
|
-
function setFee(uint256 fee) external onlyOwner { ... }
|
|
137
|
-
function pause() external onlyOwner { ... }
|
|
138
|
-
}
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
Prefiere la aceptación explícita en la transferencia de propiedad y protege cada ruta privilegiada.
|
|
142
|
-
|
|
143
|
-
## Checklist de seguridad
|
|
144
|
-
|
|
145
|
-
- Los puntos de entrada expuestos a reentrada usan `nonReentrant`
|
|
146
|
-
- Se respeta el orden CEI (checks-effects-interactions)
|
|
147
|
-
- La matemática de shares no depende del `balanceOf(address(this))` crudo
|
|
148
|
-
- Las transferencias ERC-20 usan `SafeERC20`
|
|
149
|
-
- Los depósitos miden los tokens realmente recibidos
|
|
150
|
-
- Las lecturas de oráculo usan TWAP u otra fuente resistente a manipulación
|
|
151
|
-
- Los swaps exigen `amountOutMin` y `deadline`
|
|
152
|
-
- La aritmética de reservas sensible a overflow usa primitivas seguras como `mulDiv`
|
|
153
|
-
- Las funciones administrativas tienen control de acceso
|
|
154
|
-
- Existe una pausa de emergencia y está probada
|
|
155
|
-
- Se ejecutan análisis estático y fuzzing antes de producción
|
|
156
|
-
|
|
157
|
-
## Herramientas de auditoría
|
|
158
|
-
|
|
159
|
-
```bash
|
|
160
|
-
pip install slither-analyzer
|
|
161
|
-
slither . --exclude-dependencies
|
|
162
|
-
|
|
163
|
-
echidna-test . --contract TuAMM --config echidna.yaml
|
|
164
|
-
|
|
165
|
-
forge test --fuzz-runs 10000
|
|
166
|
-
```
|