theus-cli-linux-x64 1.2.2 → 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/RELEASE.json +6 -6
- package/bin/theus +0 -0
- package/package.json +1 -1
- 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,820 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: instaladores-python
|
|
3
|
-
description: Empaquetado comercial de Python para Windows — compilación extrema con Nuitka,
|
|
4
|
-
adelgazamiento del dist, análisis de huella de DLL y empaquetado con Inno Setup para
|
|
5
|
-
distribuir los instaladores más pequeños y de arranque más rápido. Solo para optimización
|
|
6
|
-
avanzada de tamaño/arranque, no para conversiones básicas de script a exe.
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Instaladores Python (grado comercial)
|
|
10
|
-
|
|
11
|
-
Actúa como **experto en despliegue comercial de Python**. El objetivo es el instalador de Windows **más pequeño, de arranque más rápido y más limpio**. El enfoque central es **"Nuitka en modo carpeta (dist) + empaquetado con Inno Setup"** — nada de builds de un solo archivo, nada de ventanas de consola parásitas.
|
|
12
|
-
|
|
13
|
-
## Cuándo usarla
|
|
14
|
-
|
|
15
|
-
Actívala cuando el usuario pida explícitamente empaquetado **avanzado** de Python u optimización de tamaño/arranque en Windows:
|
|
16
|
-
|
|
17
|
-
- Compilación extrema / de grado comercial con Nuitka, builds de tamaño mínimo o arranque más rápido
|
|
18
|
-
- Adelgazamiento de la carpeta `dist`, análisis de huella de DLL, trade-offs de tamaño 32 vs 64 bits
|
|
19
|
-
- Empaquetado con Inno Setup con metadatos completos y desinstalación limpia sin residuos
|
|
20
|
-
|
|
21
|
-
Esta skill apunta a optimización avanzada — no a la conversión básica "script a exe" de un solo archivo.
|
|
22
|
-
|
|
23
|
-
## Cómo funciona
|
|
24
|
-
|
|
25
|
-
1. **Confirmar los parámetros del build** — nombre de la app, versión, publicador, nombre del exe, directorios de origen/salida, icono. Nunca autocompletar; preguntar al usuario.
|
|
26
|
-
2. **Verificar el build de origen** — consola deshabilitada, LTO activado, runtime de VC++ presente.
|
|
27
|
-
3. **Compilar con Nuitka** usando la estrategia de exclusión de módulos y plugins de abajo.
|
|
28
|
-
4. **Adelgazar la carpeta `dist`** — eliminar símbolos de depuración, cachés, tests y docs, con salvaguardas para los metadatos requeridos en runtime.
|
|
29
|
-
5. **Analizar las DLL** para encontrar y recortar las dependencias más grandes.
|
|
30
|
-
6. **Empaquetar con Inno Setup** — compresión LZMA2 ultra, metadatos completos, desinstalación sin residuos y redistribuible de VC++ de la arquitectura correcta.
|
|
31
|
-
|
|
32
|
-
## Ejemplos
|
|
33
|
-
|
|
34
|
-
- "Empaqueta este proyecto PySide2 con Nuitka en el instalador comercial más pequeño posible" → ejecutar el flujo completo: recomendar 32 bits, excluir WebEngine/3D/Charts, adelgazar `dist`, empaquetar con Inno Setup.
|
|
35
|
-
- "Mi exe pesa 400 MB, ¿cómo lo reduzco a la mitad?" → analizar las DLL, cambiar a `opencv-python-headless`, eliminar `opengl32sw`, aplicar el adelgazamiento del `dist`.
|
|
36
|
-
- "Tras instalar no abre en un sistema limpio" → asegurar que el redistribuible de VC++ de la arquitectura correcta va incluido en el script de Inno Setup.
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## Filosofía central
|
|
41
|
-
|
|
42
|
-
Mantén siempre el esquema **"Nuitka en modo carpeta (dist) + Inno Setup"**. Rechaza la versión de un solo archivo y la ventana de consola.
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Caso de referencia real (app de escritorio PySide2 de producción, 323 MB, con OpenCV / Playwright)
|
|
47
|
-
|
|
48
|
-
### Resumen del proyecto
|
|
49
|
-
- **Tamaño total**: 323 MB
|
|
50
|
-
- **Dependencias principales**: PySide2 (22.52 MB), OpenCV (62.38 MB), Playwright (76.74 MB)
|
|
51
|
-
- **Python**: 3.8 (32 bits)
|
|
52
|
-
- **DLL**: 71 archivos, 93.23 MB en total
|
|
53
|
-
|
|
54
|
-
### Estrategias de optimización clave
|
|
55
|
-
1. OK: **Python de 32 bits** → tamaño reducido 20-30 %
|
|
56
|
-
2. OK: **Librería estándar comprimida** → 0.74 MB
|
|
57
|
-
3. OK: **Exclusión de módulos** → sin pytest/unittest/setuptools
|
|
58
|
-
4. OK: **Plugins de Qt recortados** → solo los necesarios
|
|
59
|
-
|
|
60
|
-
### Distribución del tamaño
|
|
61
|
-
|
|
62
|
-
| Componente | Tamaño | % | Sugerencia |
|
|
63
|
-
|------------|--------|---|-----------|
|
|
64
|
-
| playwright | 76.74 MB | 23.8 % | Eliminar si no es imprescindible |
|
|
65
|
-
| OpenCV | 62.38 MB | 19.3 % | Usar opencv-python-headless |
|
|
66
|
-
| PySide2 | 22.52 MB | 7.0 % | Excluir WebEngine/3D/Charts |
|
|
67
|
-
| Resto de dependencias | 161.36 MB | 49.9 % | - |
|
|
68
|
-
|
|
69
|
-
### Efecto esperado
|
|
70
|
-
|
|
71
|
-
| Tipo de proyecto | Nuitka sin optimizar | Optimizado | Medición del caso de referencia |
|
|
72
|
-
|------------------|----------------------|------------|-------------------------------|
|
|
73
|
-
| Tkinter + stdlib | 150-250 MB | **80-120 MB** | - |
|
|
74
|
-
| PyQt/PySide | 200-400 MB | **120-250 MB** | 323 MB (con OpenCV etc.) |
|
|
75
|
-
| Con numpy/pandas | 300-600 MB | **180-350 MB** | - |
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## Flujo central (ejecutar estrictamente)
|
|
80
|
-
|
|
81
|
-
Cuando el usuario pida empaquetar, sigue estos pasos:
|
|
82
|
-
|
|
83
|
-
**Paso 1: confirmación obligatoria de parámetros (PROHIBIDO usar valores por defecto)**
|
|
84
|
-
|
|
85
|
-
> **Regla importante: todos los parámetros siguientes deben confirmarse uno a uno con el usuario. Prohibido autocompletar o asumir valores.**
|
|
86
|
-
|
|
87
|
-
Hay que preguntar y confirmar (*esperar respuesta explícita antes de continuar*):
|
|
88
|
-
|
|
89
|
-
| Parámetro | Descripción | Ejemplo |
|
|
90
|
-
|-----------|-------------|---------|
|
|
91
|
-
| **Nombre de la app** | Nombre visible del software | `AnotadorRojo` |
|
|
92
|
-
| **Versión** | Versionado semántico | `1.0.0` |
|
|
93
|
-
| **Publicador/Empresa** | Publicador mostrado en el Panel de control | `MiEmpresa` |
|
|
94
|
-
| **Ejecutable principal** | Nombre del exe principal | `AnotadorRojo.exe` |
|
|
95
|
-
| **Ruta de origen** | Ruta absoluta de la carpeta dist de Nuitka | `D:\proyecto\dist` |
|
|
96
|
-
| **Ruta de salida** | Dónde generar el instalador | `D:\proyecto\output` |
|
|
97
|
-
| **Ruta del icono** | Archivo .ico (opcional, recomendado) | `D:\proyecto\icon.ico` |
|
|
98
|
-
| **URL del sitio** | Opcional, enlace en el Panel de control | `https://example.com` |
|
|
99
|
-
|
|
100
|
-
**Plantilla de pregunta:**
|
|
101
|
-
> "Necesito que confirmes uno a uno los siguientes parámetros de empaquetado:
|
|
102
|
-
> 1. Nombre de la app:
|
|
103
|
-
> 2. Versión:
|
|
104
|
-
> 3. Publicador/Empresa:
|
|
105
|
-
> 4. Ejecutable principal (p. ej. xxx.exe):
|
|
106
|
-
> 5. Ruta de origen (carpeta dist de Nuitka):
|
|
107
|
-
> 6. Ruta de salida (dónde guardar el instalador):
|
|
108
|
-
> 7. Ruta del icono (.ico, puede quedar vacío):
|
|
109
|
-
> 8. URL del sitio (puede quedar vacío):
|
|
110
|
-
>
|
|
111
|
-
> Responde cada uno, o 'omitir' para dejarlo vacío."
|
|
112
|
-
|
|
113
|
-
**Paso 2: verificación de calidad de la compilación (crítico)**
|
|
114
|
-
|
|
115
|
-
Antes de generar código, plantea esta **confirmación crítica** (Inno Setup es solo un empaquetador y no puede cambiar cómo se comporta el programa):
|
|
116
|
-
|
|
117
|
-
> "ATENCIÓN — **verificación de parámetros de compilación**:
|
|
118
|
-
> 1. **Sin consola**: confirma que la carpeta dist se compiló con `nuitka --windows-console-mode=disable` (si no, tras instalar seguirá apareciendo la ventana negra).
|
|
119
|
-
> 2. **Alto rendimiento**: confirma si se usó `--lto=yes` (si no, el arranque puede ser lento).
|
|
120
|
-
> 3. **Runtime**: asegúrate de que la carpeta dist incluye el runtime de VC++ necesario, para que funcione en sistemas limpios.
|
|
121
|
-
>
|
|
122
|
-
> **Si el origen está listo responde 'confirmado'; si no, recompila primero.**"
|
|
123
|
-
|
|
124
|
-
**Paso 3: generar el código**
|
|
125
|
-
Tras la confirmación, genera el script con **metadatos completos** y el **arreglo del icono de desinstalación**.
|
|
126
|
-
|
|
127
|
-
---
|
|
128
|
-
|
|
129
|
-
## Compilación extrema con Nuitka
|
|
130
|
-
|
|
131
|
-
### 1. Estrategia 32 bits vs 64 bits
|
|
132
|
-
|
|
133
|
-
**Por qué el caso de referencia usó Python de 32 bits:**
|
|
134
|
-
|
|
135
|
-
| Componente | 64 bits | 32 bits | Ahorro |
|
|
136
|
-
|------------|---------|---------|--------|
|
|
137
|
-
| python3x.dll | ~4.5 MB | ~3.8 MB | 15 % |
|
|
138
|
-
| Qt5Core.dll | ~8 MB | ~5 MB | 37 % |
|
|
139
|
-
| numpy | ~30 MB | ~20 MB | 33 % |
|
|
140
|
-
| **Total** | base | **-20~30 %** | - |
|
|
141
|
-
|
|
142
|
-
**Condiciones para recomendar 32 bits:**
|
|
143
|
-
- OK: el programa usa < 2 GB de memoria
|
|
144
|
-
- OK: no procesa archivos gigantes (< 2 GB)
|
|
145
|
-
- OK: el usuario objetivo tiene PCs de oficina normales
|
|
146
|
-
|
|
147
|
-
**Cómo compilar en 32 bits:**
|
|
148
|
-
```bash
|
|
149
|
-
# 1. Instalar Python de 32 bits (puede convivir con el de 64)
|
|
150
|
-
# Descarga: https://www.python.org/downloads/windows/
|
|
151
|
-
|
|
152
|
-
# 2. Instalar dependencias con el Python de 32 bits
|
|
153
|
-
py -3.12-32 -m pip install -r requirements.txt
|
|
154
|
-
|
|
155
|
-
# 3. Compilar con el Python de 32 bits
|
|
156
|
-
py -3.12-32 -m nuitka --standalone ...tus-parametros
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### 2. Lista de exclusión de módulos (verificada en el caso de referencia)
|
|
160
|
-
|
|
161
|
-
**Exclusiones seguras** (no se necesitan en runtime):
|
|
162
|
-
```
|
|
163
|
-
unittest,test,pytest,_pytest,doctest,pdb,pdbpp,
|
|
164
|
-
setuptools,pip,distutils,pkg_resources,
|
|
165
|
-
email.mime,http.server,xmlrpc,pydoc
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
**Efecto esperado**: ahorro de **30-50 MB**
|
|
169
|
-
|
|
170
|
-
### 3. Optimización específica por framework GUI
|
|
171
|
-
|
|
172
|
-
#### Tkinter extremo (recomendado, el más ligero)
|
|
173
|
-
```bash
|
|
174
|
-
nuitka --standalone --windows-console-mode=disable ^
|
|
175
|
-
--lto=yes ^
|
|
176
|
-
--jobs=8 ^
|
|
177
|
-
--enable-plugin=tk-inter ^
|
|
178
|
-
--enable-plugin=anti-bloat ^
|
|
179
|
-
--noinclude-pytest-mode=nofollow ^
|
|
180
|
-
--noinclude-setuptools-mode=nofollow ^
|
|
181
|
-
--nofollow-import-to=unittest,test,pytest,_pytest,doctest,pdb,pdbpp ^
|
|
182
|
-
--nofollow-import-to=setuptools,pip,distutils,pkg_resources ^
|
|
183
|
-
--nofollow-import-to=email.mime,http.server,xmlrpc,pydoc ^
|
|
184
|
-
--python-flag=no_docstrings ^
|
|
185
|
-
--output-dir=dist ^
|
|
186
|
-
--windows-icon-from-ico=icon.ico ^
|
|
187
|
-
--remove-output ^
|
|
188
|
-
main.py
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
**Tamaño esperado**: 80-120 MB (optimizado)
|
|
192
|
-
|
|
193
|
-
#### PyQt5 / PySide2
|
|
194
|
-
```bash
|
|
195
|
-
nuitka --standalone --windows-console-mode=disable ^
|
|
196
|
-
--lto=yes ^
|
|
197
|
-
--jobs=8 ^
|
|
198
|
-
--enable-plugin=pyqt5 ^
|
|
199
|
-
--enable-plugin=anti-bloat ^
|
|
200
|
-
--noinclude-pytest-mode=nofollow ^
|
|
201
|
-
--noinclude-setuptools-mode=nofollow ^
|
|
202
|
-
--nofollow-import-to=unittest,test,pytest,_pytest,doctest,pdb ^
|
|
203
|
-
--nofollow-import-to=setuptools,pip,distutils,pkg_resources ^
|
|
204
|
-
--nofollow-import-to=PyQt5.QtWebEngine,PyQt5.QtWebEngineWidgets ^
|
|
205
|
-
--nofollow-import-to=PyQt5.Qt3D,PyQt5.QtCharts ^
|
|
206
|
-
--python-flag=no_docstrings ^
|
|
207
|
-
--include-qt-plugins=sensible,styles,platforms ^
|
|
208
|
-
--output-dir=dist ^
|
|
209
|
-
--windows-icon-from-ico=icon.ico ^
|
|
210
|
-
--remove-output ^
|
|
211
|
-
main.py
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
**Tamaño esperado**: 120-250 MB (optimizado)
|
|
215
|
-
|
|
216
|
-
### 4. Script de compilación de un clic
|
|
217
|
-
|
|
218
|
-
**Guardar como `build_optimized.bat` (raíz del proyecto):**
|
|
219
|
-
|
|
220
|
-
```batch
|
|
221
|
-
@echo off
|
|
222
|
-
chcp 65001 >nul
|
|
223
|
-
setlocal enabledelayedexpansion
|
|
224
|
-
|
|
225
|
-
echo ========================================
|
|
226
|
-
echo Compilacion Nuitka con optimizacion extrema
|
|
227
|
-
echo ========================================
|
|
228
|
-
|
|
229
|
-
REM === Zona de configuracion (edita con tus valores reales) ===
|
|
230
|
-
set APP_NAME=TuApp
|
|
231
|
-
set MAIN_FILE=main.py
|
|
232
|
-
set ICON_FILE=icon.ico
|
|
233
|
-
|
|
234
|
-
REM === Deteccion automatica de nucleos de CPU ===
|
|
235
|
-
REM Usa la variable de entorno de Windows (wmic fue retirado en Win11 22H2+;
|
|
236
|
-
REM si no se detecta, --jobs=0 compilaria en un solo hilo)
|
|
237
|
-
set CPU_CORES=%NUMBER_OF_PROCESSORS%
|
|
238
|
-
if not defined CPU_CORES set CPU_CORES=4
|
|
239
|
-
set /a BUILD_JOBS=%CPU_CORES%
|
|
240
|
-
|
|
241
|
-
REM === Lista de exclusion de modulos verificada ===
|
|
242
|
-
set EXCLUDE_MODULES=unittest,test,pytest,_pytest,doctest,pdb,pdbpp
|
|
243
|
-
set EXCLUDE_MODULES=%EXCLUDE_MODULES%,setuptools,pip,distutils,pkg_resources
|
|
244
|
-
set EXCLUDE_MODULES=%EXCLUDE_MODULES%,email.mime,http.server,xmlrpc,pydoc
|
|
245
|
-
|
|
246
|
-
echo.
|
|
247
|
-
echo [1/4] Limpiando compilaciones anteriores...
|
|
248
|
-
if exist dist rd /s /q dist
|
|
249
|
-
if exist build rd /s /q build
|
|
250
|
-
|
|
251
|
-
echo.
|
|
252
|
-
echo [2/4] Compilando con Nuitka (estrategia de optimizacion aplicada)...
|
|
253
|
-
echo - Nucleos de CPU: %CPU_CORES% (usando %BUILD_JOBS% hilos)
|
|
254
|
-
echo - Modulos excluidos: %EXCLUDE_MODULES%
|
|
255
|
-
echo.
|
|
256
|
-
|
|
257
|
-
nuitka --standalone ^
|
|
258
|
-
--windows-console-mode=disable ^
|
|
259
|
-
--lto=yes ^
|
|
260
|
-
--jobs=%BUILD_JOBS% ^
|
|
261
|
-
--enable-plugin=anti-bloat ^
|
|
262
|
-
--enable-plugin=tk-inter ^
|
|
263
|
-
--noinclude-pytest-mode=nofollow ^
|
|
264
|
-
--noinclude-setuptools-mode=nofollow ^
|
|
265
|
-
--nofollow-import-to=%EXCLUDE_MODULES% ^
|
|
266
|
-
--python-flag=no_docstrings ^
|
|
267
|
-
--output-dir=dist ^
|
|
268
|
-
--windows-icon-from-ico=%ICON_FILE% ^
|
|
269
|
-
--remove-output ^
|
|
270
|
-
%MAIN_FILE%
|
|
271
|
-
|
|
272
|
-
if %errorlevel% neq 0 (
|
|
273
|
-
echo.
|
|
274
|
-
echo [ERROR] La compilacion fallo.
|
|
275
|
-
pause
|
|
276
|
-
exit /b 1
|
|
277
|
-
)
|
|
278
|
-
|
|
279
|
-
echo.
|
|
280
|
-
echo [3/4] Midiendo el resultado...
|
|
281
|
-
for /f %%a in ('powershell -NoProfile -Command "(Get-ChildItem -LiteralPath 'dist\%APP_NAME%.dist' -Recurse -File | Measure-Object -Property Length -Sum).Sum"') do set TOTAL_SIZE=%%a
|
|
282
|
-
set TOTAL_SIZE=%TOTAL_SIZE:,=%
|
|
283
|
-
set /a SIZE_MB=%TOTAL_SIZE% / 1048576
|
|
284
|
-
echo - Tamano tras compilar: %SIZE_MB% MB
|
|
285
|
-
|
|
286
|
-
echo.
|
|
287
|
-
echo [4/4] Ejecutando adelgazamiento del dist...
|
|
288
|
-
powershell -ExecutionPolicy Bypass -File slim_dist.ps1 -DistPath "dist\%APP_NAME%.dist"
|
|
289
|
-
|
|
290
|
-
echo.
|
|
291
|
-
echo ========================================
|
|
292
|
-
echo Compilacion terminada
|
|
293
|
-
echo ========================================
|
|
294
|
-
pause
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
### 5. Script de adelgazamiento del dist
|
|
298
|
-
|
|
299
|
-
**Guardar como `slim_dist.ps1` (junto a build_optimized.bat):**
|
|
300
|
-
|
|
301
|
-
```powershell
|
|
302
|
-
param(
|
|
303
|
-
[string]$DistPath
|
|
304
|
-
)
|
|
305
|
-
|
|
306
|
-
$ErrorActionPreference = "Continue" # No silenciar errores: un borrado fallido se muestra, evita falsos exitos
|
|
307
|
-
|
|
308
|
-
Write-Host "`n========================================" -ForegroundColor Cyan
|
|
309
|
-
Write-Host "Adelgazamiento del dist" -ForegroundColor Cyan
|
|
310
|
-
Write-Host "========================================" -ForegroundColor Cyan
|
|
311
|
-
|
|
312
|
-
if (-not (Test-Path $DistPath)) {
|
|
313
|
-
Write-Host "[ERROR] No existe el directorio: $DistPath" -ForegroundColor Red
|
|
314
|
-
exit 1
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
# Medir tamano inicial
|
|
318
|
-
$InitialSize = (Get-ChildItem -Path $DistPath -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1MB
|
|
319
|
-
Write-Host "`nTamano inicial: $([math]::Round($InitialSize, 2)) MB" -ForegroundColor Yellow
|
|
320
|
-
|
|
321
|
-
Write-Host "`n[Aplicando estrategia de limpieza...]" -ForegroundColor Green
|
|
322
|
-
|
|
323
|
-
# 1. Borrar simbolos de depuracion
|
|
324
|
-
Write-Host "`n[1/7] Borrando simbolos .pdb..." -ForegroundColor Green
|
|
325
|
-
$pdbFiles = Get-ChildItem -Path $DistPath -Recurse -Include *.pdb -File
|
|
326
|
-
$pdbSize = ($pdbFiles | Measure-Object -Property Length -Sum).Sum / 1MB
|
|
327
|
-
if ($pdbFiles.Count -gt 0) {
|
|
328
|
-
$pdbFiles | Remove-Item -Force
|
|
329
|
-
Write-Host " Borrados $($pdbFiles.Count) archivos, ahorro de $([math]::Round($pdbSize, 2)) MB"
|
|
330
|
-
} else {
|
|
331
|
-
Write-Host " Sin archivos .pdb (ya optimizado)" -ForegroundColor Gray
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
# 2. Borrar stubs de tipos
|
|
335
|
-
Write-Host "`n[2/7] Borrando stubs .pyi..." -ForegroundColor Green
|
|
336
|
-
$pyiFiles = Get-ChildItem -Path $DistPath -Recurse -Include *.pyi -File
|
|
337
|
-
$pyiSize = ($pyiFiles | Measure-Object -Property Length -Sum).Sum / 1MB
|
|
338
|
-
if ($pyiFiles.Count -gt 0) {
|
|
339
|
-
$pyiFiles | Remove-Item -Force
|
|
340
|
-
Write-Host " Borrados $($pyiFiles.Count) archivos, ahorro de $([math]::Round($pyiSize, 2)) MB"
|
|
341
|
-
} else {
|
|
342
|
-
Write-Host " Sin archivos .pyi (ya optimizado)" -ForegroundColor Gray
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
# 3. Borrar __pycache__
|
|
346
|
-
Write-Host "`n[3/7] Borrando caches __pycache__..." -ForegroundColor Green
|
|
347
|
-
$pycacheDirs = Get-ChildItem -Path $DistPath -Recurse -Directory -Filter "__pycache__"
|
|
348
|
-
$pycacheSize = 0
|
|
349
|
-
foreach ($dir in $pycacheDirs) {
|
|
350
|
-
$size = (Get-ChildItem -Path $dir.FullName -Recurse -File | Measure-Object -Property Length -Sum).Sum
|
|
351
|
-
$pycacheSize += $size
|
|
352
|
-
Remove-Item -Path $dir.FullName -Recurse -Force
|
|
353
|
-
}
|
|
354
|
-
if ($pycacheDirs.Count -gt 0) {
|
|
355
|
-
Write-Host " Borrados $($pycacheDirs.Count) directorios, ahorro de $([math]::Round($pycacheSize / 1MB, 2)) MB"
|
|
356
|
-
} else {
|
|
357
|
-
Write-Host " Sin __pycache__ (ya optimizado)" -ForegroundColor Gray
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
# 4. Borrar directorios de tests
|
|
361
|
-
Write-Host "`n[4/7] Borrando directorios test/tests..." -ForegroundColor Green
|
|
362
|
-
$testDirs = Get-ChildItem -Path $DistPath -Recurse -Directory | Where-Object { $_.Name -match '^tests?$' }
|
|
363
|
-
$testSize = 0
|
|
364
|
-
foreach ($dir in $testDirs) {
|
|
365
|
-
$size = (Get-ChildItem -Path $dir.FullName -Recurse -File | Measure-Object -Property Length -Sum).Sum
|
|
366
|
-
$testSize += $size
|
|
367
|
-
Remove-Item -Path $dir.FullName -Recurse -Force
|
|
368
|
-
}
|
|
369
|
-
if ($testDirs.Count -gt 0) {
|
|
370
|
-
Write-Host " Borrados $($testDirs.Count) directorios, ahorro de $([math]::Round($testSize / 1MB, 2)) MB"
|
|
371
|
-
} else {
|
|
372
|
-
Write-Host " Sin directorios de tests (ya optimizado)" -ForegroundColor Gray
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
# 5. Borrar documentacion y ejemplos
|
|
376
|
-
Write-Host "`n[5/7] Borrando directorios docs/examples..." -ForegroundColor Green
|
|
377
|
-
$docDirs = Get-ChildItem -Path $DistPath -Recurse -Directory | Where-Object { $_.Name -match '^(docs|examples|samples|demo)$' }
|
|
378
|
-
$docSize = 0
|
|
379
|
-
foreach ($dir in $docDirs) {
|
|
380
|
-
$size = (Get-ChildItem -Path $dir.FullName -Recurse -File | Measure-Object -Property Length -Sum).Sum
|
|
381
|
-
$docSize += $size
|
|
382
|
-
Remove-Item -Path $dir.FullName -Recurse -Force
|
|
383
|
-
}
|
|
384
|
-
if ($docDirs.Count -gt 0) {
|
|
385
|
-
Write-Host " Borrados $($docDirs.Count) directorios, ahorro de $([math]::Round($docSize / 1MB, 2)) MB"
|
|
386
|
-
} else {
|
|
387
|
-
Write-Host " Sin directorios de documentacion (ya optimizado)" -ForegroundColor Gray
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
# 6. Borrar archivos .pyc
|
|
391
|
-
Write-Host "`n[6/7] Borrando bytecode .pyc..." -ForegroundColor Green
|
|
392
|
-
$pycFiles = Get-ChildItem -Path $DistPath -Recurse -Include *.pyc -File
|
|
393
|
-
$pycSize = ($pycFiles | Measure-Object -Property Length -Sum).Sum / 1MB
|
|
394
|
-
if ($pycFiles.Count -gt 0) {
|
|
395
|
-
$pycFiles | Remove-Item -Force
|
|
396
|
-
Write-Host " Borrados $($pycFiles.Count) archivos, ahorro de $([math]::Round($pycSize, 2)) MB"
|
|
397
|
-
} else {
|
|
398
|
-
Write-Host " Sin archivos .pyc (ya optimizado)" -ForegroundColor Gray
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
# 7. Recortar metadatos .dist-info
|
|
402
|
-
Write-Host "`n[7/7] Recortando metadatos .dist-info..." -ForegroundColor Green
|
|
403
|
-
$distInfoDirs = Get-ChildItem -Path $DistPath -Recurse -Directory -Filter "*.dist-info"
|
|
404
|
-
$removedCount = 0
|
|
405
|
-
$removedSize = 0
|
|
406
|
-
foreach ($infoDir in $distInfoDirs) {
|
|
407
|
-
# Borrar solo archivos contables de la instalacion; conservar METADATA y entry_points.txt
|
|
408
|
-
# (los lee importlib.metadata en runtime; borrarlos rompe el descubrimiento de plugins)
|
|
409
|
-
$filesToRemove = @("RECORD", "INSTALLER", "direct_url.json")
|
|
410
|
-
foreach ($fileName in $filesToRemove) {
|
|
411
|
-
$file = Join-Path $infoDir.FullName $fileName
|
|
412
|
-
if (Test-Path $file) {
|
|
413
|
-
$size = (Get-Item $file).Length
|
|
414
|
-
$removedSize += $size
|
|
415
|
-
Remove-Item $file -Force
|
|
416
|
-
$removedCount++
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
if ($removedCount -gt 0) {
|
|
421
|
-
Write-Host " Borrados $removedCount archivos de metadatos, ahorro de $([math]::Round($removedSize / 1MB, 2)) MB"
|
|
422
|
-
} else {
|
|
423
|
-
Write-Host " Sin metadatos que limpiar (ya optimizado)" -ForegroundColor Gray
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
# Medir tamano final
|
|
427
|
-
$FinalSize = (Get-ChildItem -Path $DistPath -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1MB
|
|
428
|
-
$SavedSize = $InitialSize - $FinalSize
|
|
429
|
-
$SavedPercent = if ($InitialSize -gt 0) { ($SavedSize / $InitialSize) * 100 } else { 0 }
|
|
430
|
-
|
|
431
|
-
Write-Host "`n========================================" -ForegroundColor Cyan
|
|
432
|
-
Write-Host "Limpieza completada" -ForegroundColor Green
|
|
433
|
-
Write-Host "========================================" -ForegroundColor Cyan
|
|
434
|
-
Write-Host "Tamano inicial: $([math]::Round($InitialSize, 2)) MB" -ForegroundColor Yellow
|
|
435
|
-
Write-Host "Tamano final: $([math]::Round($FinalSize, 2)) MB" -ForegroundColor Green
|
|
436
|
-
Write-Host "Espacio ahorrado: $([math]::Round($SavedSize, 2)) MB ($([math]::Round($SavedPercent, 1))%)" -ForegroundColor Cyan
|
|
437
|
-
Write-Host "========================================`n" -ForegroundColor Cyan
|
|
438
|
-
|
|
439
|
-
Write-Host "[Referencia]" -ForegroundColor Yellow
|
|
440
|
-
Write-Host "Proyecto de referencia: 323 MB (incluye PyQt, OpenCV, Playwright y otras librerias pesadas)" -ForegroundColor Gray
|
|
441
|
-
Write-Host "Si tu proyecto es Tkinter puro + stdlib, el objetivo deberia estar en 80-150 MB" -ForegroundColor Gray
|
|
442
|
-
```
|
|
443
|
-
|
|
444
|
-
**Efecto esperado**: ahorro del **15-30 %** del tamaño
|
|
445
|
-
|
|
446
|
-
### 6. Herramienta de análisis de dependencias DLL
|
|
447
|
-
|
|
448
|
-
**Guardar como `analyze_dlls.py` (para encontrar a los que más pesan):**
|
|
449
|
-
|
|
450
|
-
```python
|
|
451
|
-
"""
|
|
452
|
-
Herramienta de analisis de dependencias DLL.
|
|
453
|
-
Ayuda a identificar los archivos mas pesados y sugiere optimizaciones.
|
|
454
|
-
"""
|
|
455
|
-
import sys
|
|
456
|
-
from pathlib import Path
|
|
457
|
-
|
|
458
|
-
def analyze_dlls(dist_path: str):
|
|
459
|
-
"""Analiza las dependencias DLL del directorio dist."""
|
|
460
|
-
dist_dir = Path(dist_path)
|
|
461
|
-
|
|
462
|
-
if not dist_dir.exists():
|
|
463
|
-
print(f"[ERROR] El directorio no existe: {dist_path}")
|
|
464
|
-
return
|
|
465
|
-
|
|
466
|
-
print("=" * 70)
|
|
467
|
-
print("Analisis de dependencias DLL")
|
|
468
|
-
print("=" * 70)
|
|
469
|
-
|
|
470
|
-
# Recolectar todas las DLL
|
|
471
|
-
dll_files = list(dist_dir.rglob("*.dll"))
|
|
472
|
-
|
|
473
|
-
if not dll_files:
|
|
474
|
-
print("\nNo se encontraron archivos DLL")
|
|
475
|
-
return
|
|
476
|
-
|
|
477
|
-
# Ordenar por tamano
|
|
478
|
-
dll_data = [(dll, dll.stat().st_size) for dll in dll_files]
|
|
479
|
-
dll_data.sort(key=lambda x: x[1], reverse=True)
|
|
480
|
-
|
|
481
|
-
total_size = sum(size for _, size in dll_data)
|
|
482
|
-
|
|
483
|
-
print(f"\nTotal de DLL: {len(dll_files)}")
|
|
484
|
-
print(f"Tamano total de DLL: {total_size / 1024 / 1024:.2f} MB\n")
|
|
485
|
-
|
|
486
|
-
# Comparativa con el proyecto de referencia
|
|
487
|
-
print("[Referencia] DLL del proyecto de referencia:")
|
|
488
|
-
print(" - Total: 71 archivos")
|
|
489
|
-
print(" - Tamano: 93.23 MB")
|
|
490
|
-
print(" - Los mayores: libopenblas (26.85 MB), opengl32sw (15.25 MB)\n")
|
|
491
|
-
|
|
492
|
-
# Analizar DLL mayores de 3 MB
|
|
493
|
-
large_dlls = [(dll, size) for dll, size in dll_data if size > 3 * 1024 * 1024]
|
|
494
|
-
|
|
495
|
-
if large_dlls:
|
|
496
|
-
print("=" * 70)
|
|
497
|
-
print("ATENCION: DLL mayores de 3 MB (foco principal)")
|
|
498
|
-
print("=" * 70)
|
|
499
|
-
|
|
500
|
-
for dll, size in large_dlls:
|
|
501
|
-
size_mb = size / 1024 / 1024
|
|
502
|
-
relative_path = dll.relative_to(dist_dir)
|
|
503
|
-
name_lower = dll.name.lower()
|
|
504
|
-
|
|
505
|
-
print(f"\n{size_mb:8.2f} MB {dll.name}")
|
|
506
|
-
print(f" Ubicacion: {relative_path.parent}")
|
|
507
|
-
|
|
508
|
-
# Sugerencias de optimizacion
|
|
509
|
-
suggestions = get_optimization_suggestion(name_lower)
|
|
510
|
-
if suggestions:
|
|
511
|
-
for suggestion in suggestions:
|
|
512
|
-
print(f" {suggestion}")
|
|
513
|
-
|
|
514
|
-
# Buscar DLL redundantes
|
|
515
|
-
print("\n" + "=" * 70)
|
|
516
|
-
print(" Chequeo de redundancia")
|
|
517
|
-
print("=" * 70)
|
|
518
|
-
|
|
519
|
-
# Versiones de depuracion
|
|
520
|
-
debug_dlls = [dll for dll, _ in dll_data if dll.stem.endswith('d')]
|
|
521
|
-
if debug_dlls:
|
|
522
|
-
print(f"\nATENCION: {len(debug_dlls)} DLL en version debug (se pueden borrar):")
|
|
523
|
-
for dll in debug_dlls:
|
|
524
|
-
print(f" - {dll.name}")
|
|
525
|
-
else:
|
|
526
|
-
print("\nOK: sin DLL de depuracion (ya optimizado)")
|
|
527
|
-
|
|
528
|
-
# VC++ Runtime
|
|
529
|
-
vc_runtimes = [dll for dll, _ in dll_data if 'vcruntime' in dll.name.lower() or 'msvcp' in dll.name.lower()]
|
|
530
|
-
if vc_runtimes:
|
|
531
|
-
print(f"\n[Runtime de VC++] Encontradas {len(vc_runtimes)}:")
|
|
532
|
-
for dll in vc_runtimes:
|
|
533
|
-
size_mb = dll.stat().st_size / 1024 / 1024
|
|
534
|
-
print(f" - {dll.name} ({size_mb:.2f} MB)")
|
|
535
|
-
print(" Son necesarias; el proyecto de referencia tambien las incluye")
|
|
536
|
-
|
|
537
|
-
# Listado completo
|
|
538
|
-
print("\n" + "=" * 70)
|
|
539
|
-
print(" Listado de DLL (por tamano, top 20)")
|
|
540
|
-
print("=" * 70)
|
|
541
|
-
print(f"\n{'Tamano (MB)':>11} {'Archivo':<30} Ubicacion")
|
|
542
|
-
print("-" * 70)
|
|
543
|
-
|
|
544
|
-
for dll, size in dll_data[:20]:
|
|
545
|
-
size_mb = size / 1024 / 1024
|
|
546
|
-
relative_path = dll.relative_to(dist_dir)
|
|
547
|
-
location = str(relative_path.parent) if relative_path.parent != Path('.') else "raiz"
|
|
548
|
-
print(f"{size_mb:11.2f} {dll.name:<30} {location}")
|
|
549
|
-
|
|
550
|
-
if len(dll_data) > 20:
|
|
551
|
-
remaining_size = sum(size for _, size in dll_data[20:]) / 1024 / 1024
|
|
552
|
-
print(f"... y {len(dll_data) - 20} DLL mas, {remaining_size:.2f} MB en total")
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
def get_optimization_suggestion(dll_name: str) -> list:
|
|
556
|
-
"""Devuelve sugerencias de optimizacion segun el nombre de la DLL."""
|
|
557
|
-
suggestions = []
|
|
558
|
-
|
|
559
|
-
if "openblas" in dll_name or "mkl" in dll_name:
|
|
560
|
-
suggestions.append("Libreria de calculo; en el caso de referencia libopenblas pesaba 26.85 MB")
|
|
561
|
-
suggestions.append("Si no necesitas computo de alto rendimiento, considera una version ligera")
|
|
562
|
-
|
|
563
|
-
elif "opencv" in dll_name or "ffmpeg" in dll_name:
|
|
564
|
-
suggestions.append("Relacionada con OpenCV; opencv_videoio_ffmpeg pesaba 18.48 MB en la referencia")
|
|
565
|
-
suggestions.append("Considera opencv-python-headless")
|
|
566
|
-
|
|
567
|
-
elif "qt5" in dll_name or "qt6" in dll_name or "pyside" in dll_name:
|
|
568
|
-
suggestions.append("Libreria Qt; Qt5Core pesaba 5.13 MB en la referencia")
|
|
569
|
-
suggestions.append("Excluye los modulos que no uses (WebEngine, 3D, Charts)")
|
|
570
|
-
|
|
571
|
-
elif "opengl" in dll_name and "sw" in dll_name:
|
|
572
|
-
suggestions.append("Renderizador OpenGL por software; la referencia conservaba 15.25 MB")
|
|
573
|
-
suggestions.append("Normalmente se puede borrar (usando renderizado por hardware)")
|
|
574
|
-
|
|
575
|
-
elif "d3dcompiler" in dll_name:
|
|
576
|
-
suggestions.append("Compilador de DirectX; 3.53 MB en la referencia")
|
|
577
|
-
|
|
578
|
-
elif "mfc140" in dll_name:
|
|
579
|
-
suggestions.append("Libreria MFC; 4.89 MB en la referencia")
|
|
580
|
-
|
|
581
|
-
return suggestions
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
if __name__ == "__main__":
|
|
585
|
-
if len(sys.argv) < 2:
|
|
586
|
-
print("Uso: python analyze_dlls.py <ruta-del-dist>")
|
|
587
|
-
print("Ejemplo: python analyze_dlls.py dist/main.dist")
|
|
588
|
-
sys.exit(1)
|
|
589
|
-
|
|
590
|
-
analyze_dlls(sys.argv[1])
|
|
591
|
-
```
|
|
592
|
-
|
|
593
|
-
**Uso:**
|
|
594
|
-
```bash
|
|
595
|
-
python analyze_dlls.py dist/TuApp.dist
|
|
596
|
-
```
|
|
597
|
-
|
|
598
|
-
---
|
|
599
|
-
|
|
600
|
-
## Flujo de optimización completo
|
|
601
|
-
|
|
602
|
-
### Paso 1: configurar el script de compilación
|
|
603
|
-
|
|
604
|
-
Edita `build_optimized.bat` y cambia estas 3 líneas:
|
|
605
|
-
|
|
606
|
-
```batch
|
|
607
|
-
set APP_NAME=TuApp REM Cambia por el nombre real
|
|
608
|
-
set MAIN_FILE=main.py REM Tu archivo principal
|
|
609
|
-
set ICON_FILE=icon.ico REM Tu icono
|
|
610
|
-
```
|
|
611
|
-
|
|
612
|
-
### Paso 2: compilar + adelgazar de un clic
|
|
613
|
-
|
|
614
|
-
```bash
|
|
615
|
-
# En la raiz del proyecto
|
|
616
|
-
build_optimized.bat
|
|
617
|
-
```
|
|
618
|
-
|
|
619
|
-
### Paso 3: analizar las DLL
|
|
620
|
-
|
|
621
|
-
```bash
|
|
622
|
-
python analyze_dlls.py dist/TuApp.dist
|
|
623
|
-
```
|
|
624
|
-
|
|
625
|
-
### Paso 4: optimizar según el análisis
|
|
626
|
-
|
|
627
|
-
**Si usas OpenCV** → cambia a la versión headless
|
|
628
|
-
```bash
|
|
629
|
-
pip uninstall opencv-python
|
|
630
|
-
pip install opencv-python-headless
|
|
631
|
-
```
|
|
632
|
-
|
|
633
|
-
**Si usas Qt** → excluye módulos innecesarios
|
|
634
|
-
```batch
|
|
635
|
-
REM Anadir al comando de compilacion
|
|
636
|
-
--nofollow-import-to=PyQt5.QtWebEngine,PyQt5.Qt3D,PyQt5.QtCharts
|
|
637
|
-
```
|
|
638
|
-
|
|
639
|
-
**Borrar el renderizador por software** (si no lo necesitas)
|
|
640
|
-
```powershell
|
|
641
|
-
# En el directorio dist
|
|
642
|
-
Remove-Item "opengl32sw.dll" -Force
|
|
643
|
-
```
|
|
644
|
-
|
|
645
|
-
---
|
|
646
|
-
|
|
647
|
-
## Gestión del runtime de VC++
|
|
648
|
-
|
|
649
|
-
### Opción 1: enlace estático (recomendado)
|
|
650
|
-
```bash
|
|
651
|
-
nuitka --static-libpython=yes ...
|
|
652
|
-
```
|
|
653
|
-
|
|
654
|
-
### Opción 2: incluir el instalador del runtime (recomendado para distribución comercial)
|
|
655
|
-
Añadir al script de Inno Setup:
|
|
656
|
-
|
|
657
|
-
```iss
|
|
658
|
-
; ATENCION: la arquitectura del runtime de VC++ debe coincidir con la del build de Python/Nuitka.
|
|
659
|
-
; Esta skill recomienda Python de 32 bits, por eso se incluye vc_redist.x86.exe por defecto;
|
|
660
|
-
; si compilas con Python de 64 bits, cambia ambas lineas a vc_redist.x64.exe.
|
|
661
|
-
[Files]
|
|
662
|
-
Source: "{#MySourceDir}\..\vc_redist.x86.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall
|
|
663
|
-
|
|
664
|
-
[Run]
|
|
665
|
-
Filename: "{tmp}\vc_redist.x86.exe"; Parameters: "/quiet /norestart"; StatusMsg: "Instalando el runtime..."; Flags: waituntilterminated
|
|
666
|
-
```
|
|
667
|
-
|
|
668
|
-
> Descarga: [Microsoft Visual C++ Redistributable](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist)
|
|
669
|
-
|
|
670
|
-
---
|
|
671
|
-
|
|
672
|
-
## Plantilla de script Inno Setup (versión comercial)
|
|
673
|
-
|
|
674
|
-
```iss
|
|
675
|
-
; =====================================================================
|
|
676
|
-
; Script de instalacion comercial para Python (Inno Setup 6.x)
|
|
677
|
-
; Caracteristicas: compresion LZMA2 extrema | metadatos completos |
|
|
678
|
-
; desinstalacion sin residuos
|
|
679
|
-
; =====================================================================
|
|
680
|
-
|
|
681
|
-
; --- 1. Definicion de parametros ---
|
|
682
|
-
#define MyAppName "{{APP_NAME}}"
|
|
683
|
-
#define MyAppVersion "{{APP_VERSION}}"
|
|
684
|
-
#define MyAppPublisher "{{PUBLISHER}}"
|
|
685
|
-
#define MyAppURL "{{APP_URL}}"
|
|
686
|
-
#define MyAppExeName "{{EXE_NAME}}"
|
|
687
|
-
#define MySourceDir "{{SOURCE_DIR}}"
|
|
688
|
-
#define MyOutputDir "{{OUTPUT_DIR}}"
|
|
689
|
-
;#define MyIconPath "{{ICON_PATH}}"
|
|
690
|
-
|
|
691
|
-
[Setup]
|
|
692
|
-
; --- Identidad ---
|
|
693
|
-
AppId={{GENERATE_RANDOM_GUID}}
|
|
694
|
-
AppName={#MyAppName}
|
|
695
|
-
AppVersion={#MyAppVersion}
|
|
696
|
-
AppPublisher={#MyAppPublisher}
|
|
697
|
-
AppPublisherURL={#MyAppURL}
|
|
698
|
-
AppSupportURL={#MyAppURL}
|
|
699
|
-
AppUpdatesURL={#MyAppURL}
|
|
700
|
-
|
|
701
|
-
; --- Ruta de instalacion y permisos ---
|
|
702
|
-
DefaultDirName={autopf}\{#MyAppName}
|
|
703
|
-
DefaultGroupName={#MyAppName}
|
|
704
|
-
DisableDirPage=no
|
|
705
|
-
DisableProgramGroupPage=no
|
|
706
|
-
PrivilegesRequired=admin
|
|
707
|
-
|
|
708
|
-
; --- Salida ---
|
|
709
|
-
OutputDir={#MyOutputDir}
|
|
710
|
-
OutputBaseFilename=Setup_{#MyAppName}_v{#MyAppVersion}
|
|
711
|
-
|
|
712
|
-
; --- Experiencia visual ---
|
|
713
|
-
WizardStyle=modern
|
|
714
|
-
#ifdef MyIconPath
|
|
715
|
-
SetupIconFile={#MyIconPath}
|
|
716
|
-
UninstallDisplayIcon={app}\{#MyAppExeName}
|
|
717
|
-
#endif
|
|
718
|
-
|
|
719
|
-
; --- Compresion (nucleo) ---
|
|
720
|
-
Compression=lzma2/ultra64
|
|
721
|
-
SolidCompression=yes
|
|
722
|
-
LZMAUseSeparateProcess=yes
|
|
723
|
-
|
|
724
|
-
; --- Arquitectura ---
|
|
725
|
-
; Nota: solo los builds de 64 bits necesitan el modo de instalacion de 64 bits.
|
|
726
|
-
; Esta skill recomienda Python de 32 bits — en builds de 32 bits deja esto comentado,
|
|
727
|
-
; para que la app se instale como 32 bits y coincida con el vc_redist.x86.exe incluido.
|
|
728
|
-
; Descomenta solo si compilas con Python de 64 bits.
|
|
729
|
-
;ArchitecturesInstallIn64BitMode=x64compatible
|
|
730
|
-
|
|
731
|
-
[Languages]
|
|
732
|
-
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
|
|
733
|
-
|
|
734
|
-
[Files]
|
|
735
|
-
Source: "{#MySourceDir}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
|
736
|
-
|
|
737
|
-
[UninstallDelete]
|
|
738
|
-
Type: filesandordirs; Name: "{app}\*"
|
|
739
|
-
|
|
740
|
-
[Icons]
|
|
741
|
-
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
|
742
|
-
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
|
743
|
-
Name: "{group}\Desinstalar {#MyAppName}"; Filename: "{uninstallexe}"
|
|
744
|
-
|
|
745
|
-
[Tasks]
|
|
746
|
-
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
|
747
|
-
|
|
748
|
-
[Run]
|
|
749
|
-
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#MyAppName}}"; Flags: nowait postinstall skipifsilent
|
|
750
|
-
```
|
|
751
|
-
|
|
752
|
-
---
|
|
753
|
-
|
|
754
|
-
## Placeholders
|
|
755
|
-
|
|
756
|
-
| Placeholder | Descripción | Ejemplo |
|
|
757
|
-
|-------------|-------------|---------|
|
|
758
|
-
| `{{APP_NAME}}` | Nombre visible del software | `AnotadorRojo` |
|
|
759
|
-
| `{{APP_VERSION}}` | Versión | `1.0.0` |
|
|
760
|
-
| `{{PUBLISHER}}` | Publicador/Empresa | `MiEmpresa` |
|
|
761
|
-
| `{{APP_URL}}` | URL del sitio | `https://example.com` |
|
|
762
|
-
| `{{EXE_NAME}}` | Nombre del ejecutable principal | `AnotadorRojo.exe` |
|
|
763
|
-
| `{{SOURCE_DIR}}` | Carpeta dist de Nuitka | `D:\proyecto\dist\AnotadorRojo.dist` |
|
|
764
|
-
| `{{OUTPUT_DIR}}` | Ruta de salida del instalador | `D:\proyecto\output` |
|
|
765
|
-
| `{{ICON_PATH}}` | Ruta del icono | `D:\proyecto\icon.ico` |
|
|
766
|
-
| `{{GENERATE_RANDOM_GUID}}` | **Generar un GUID único** | En Inno Setup: "Tools > Generate GUID" |
|
|
767
|
-
|
|
768
|
-
---
|
|
769
|
-
|
|
770
|
-
## Preguntas frecuentes
|
|
771
|
-
|
|
772
|
-
### P1: ¿Tras instalar, doble clic y no pasa nada?
|
|
773
|
-
1. Abre CMD y ejecuta el exe a mano para ver el error
|
|
774
|
-
2. Comprueba si falta el runtime de VC++
|
|
775
|
-
3. Comprueba que la compilación de Nuitka terminó bien
|
|
776
|
-
|
|
777
|
-
### P2: ¿El instalador pesa demasiado?
|
|
778
|
-
**Métodos de optimización:**
|
|
779
|
-
1. Compilar con Python de 32 bits (ahorra 20-30 %)
|
|
780
|
-
2. Aplicar la lista de exclusión de módulos
|
|
781
|
-
3. Activar el plugin anti-bloat
|
|
782
|
-
4. Ejecutar el script de adelgazamiento del dist
|
|
783
|
-
5. Analizar las DLL y eliminar los archivos grandes innecesarios
|
|
784
|
-
|
|
785
|
-
### P3: ¿Falsos positivos del antivirus?
|
|
786
|
-
**Soluciones:**
|
|
787
|
-
- Enviar el binario a los principales antivirus para solicitar whitelist
|
|
788
|
-
- Comprar un certificado de firma de código (p. ej. Sectigo, DigiCert)
|
|
789
|
-
- Evitar la compresión UPX
|
|
790
|
-
|
|
791
|
-
### P4: ¿Windows muestra "Windows protegió tu equipo"?
|
|
792
|
-
- Un certificado de firma EV obtiene confianza inmediata
|
|
793
|
-
- Los certificados normales ganan confianza gradualmente con el volumen de instalaciones
|
|
794
|
-
|
|
795
|
-
---
|
|
796
|
-
|
|
797
|
-
## Registro de problemas reales
|
|
798
|
-
|
|
799
|
-
- **Tras instalar, falta python3xx.dll**: usar obligatoriamente `--standalone` de Nuitka; confirmar que la dll está en el dist; no empaquetar la versión de un solo archivo.
|
|
800
|
-
- **Tras instalar, clic sin respuesta**: el arranque de la GUI puede bloquearse por dependencias pesadas; diferir sus imports al momento de uso (p. ej. al "exportar"); añadir logs para diagnosticar.
|
|
801
|
-
- **Nuitka + MinGW falla en rutas no ASCII**: copiar el código a un directorio ASCII antes de compilar; fijar `PYTHONIOENCODING=utf-8`.
|
|
802
|
-
- **Inno Setup avisa que `x64` está obsoleto (solo cuando un build de 64 bits necesita modo 64 bits)**: usar `ArchitecturesInstallIn64BitMode=x64compatible`; los builds de 32 bits no lo necesitan.
|
|
803
|
-
- **`--disable-console` está obsoleto**: usar `--windows-console-mode=disable`.
|
|
804
|
-
- **Aparece `_nuitka_temp.exe` en el dist**: excluirlo en la sección [Files].
|
|
805
|
-
|
|
806
|
-
---
|
|
807
|
-
|
|
808
|
-
## Efecto esperado de las optimizaciones
|
|
809
|
-
|
|
810
|
-
| Combinación | Reducción de tamaño | Mejora de arranque | Riesgo |
|
|
811
|
-
|-------------|--------------------|--------------------|--------|
|
|
812
|
-
| Compilación básica | base | base | ninguno |
|
|
813
|
-
| + `--lto=yes` | 5-10 % | 10-20 % | OK: ninguno |
|
|
814
|
-
| + anti-bloat | 15-25 % | - | OK: ninguno |
|
|
815
|
-
| + exclusión de módulos | 20-35 % | 5 % | OK: ninguno |
|
|
816
|
-
| + adelgazamiento del dist | 25-40 % | - | OK: ninguno |
|
|
817
|
-
| + compilación 32 bits | 40-60 % | - | OK: ninguno |
|
|
818
|
-
| **Todo combinado** | **45-65 %** | **15-25 %** | OK: **sin riesgo** |
|
|
819
|
-
|
|
820
|
-
> ATENCIÓN: **no se recomienda la compresión UPX** — aunque reduce más el tamaño, dispara con facilidad falsos positivos de los antivirus.
|