theus-cli-linux-arm64 1.2.2 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -11
- 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
package/README.md
CHANGED
|
@@ -116,21 +116,60 @@ y sintetiza la respuesta.
|
|
|
116
116
|
|
|
117
117
|
En soles, IGV incluido. El plan anual cuesta diez mensualidades (dos meses gratis).
|
|
118
118
|
|
|
119
|
-
| Plan | Al mes | Incluye |
|
|
120
|
-
| --- | --- | --- |
|
|
121
|
-
| Free | S/ 0 | 25 créditos, sin tarjeta |
|
|
122
|
-
|
|
|
123
|
-
|
|
|
124
|
-
|
|
|
125
|
-
|
|
|
126
|
-
|
|
|
119
|
+
| Plan (en soles) | Al mes | Al año | Incluye |
|
|
120
|
+
| --- | --- | --- | --- |
|
|
121
|
+
| Free | S/ 0 | — | 25 créditos, sin tarjeta |
|
|
122
|
+
| Pro Code | S/ 113 | S/ 1.130 | 1.500 créditos |
|
|
123
|
+
| Studio AI | S/ 308 | S/ 3.080 | 5.000 créditos |
|
|
124
|
+
| Max Agent | S/ 776 | S/ 7.760 | 15.000 créditos, multi-agente (hasta 4 subtareas por petición), visión ampliada e Higiene |
|
|
125
|
+
| Omnipresente | S/ 1.049 | S/ 10.490 | 15.000 créditos + 300 imágenes + 1.320 créditos de vídeo, cada modalidad con su cuota propia |
|
|
126
|
+
| Omnipotente | S/ 1.946 | S/ 19.460 | 40.000 créditos + 300 imágenes + 1.320 créditos de vídeo + consola empresarial |
|
|
127
127
|
|
|
128
128
|
El plan Free da para una sesión de trabajo, no para el día a día. Cada plan
|
|
129
129
|
desbloquea lo del anterior y añade su tramo del catálogo.
|
|
130
130
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
131
|
+
**Es la misma escalera que en dólares, cobrada en soles, y con los mismos nombres.**
|
|
132
|
+
Desde el 29 de agosto de 2026 cada plan en soles trae exactamente la cuota y las
|
|
133
|
+
capacidades de su plan en dólares, y por eso se llama igual que él: es el mismo
|
|
134
|
+
producto en otra moneda. Los nombres antiguos del riel en soles —Impulso, Pro,
|
|
135
|
+
Power, Creativo y Empresa— quedaron retirados. El precio se deriva del precio en
|
|
136
|
+
dólares al tipo de cambio único del producto (S/ 3,90 por dólar), redondeado al sol
|
|
137
|
+
entero más cercano. En soles no se paga menos por lo mismo: se paga lo mismo en otra
|
|
138
|
+
moneda.
|
|
139
|
+
|
|
140
|
+
Como los dos rieles comparten nombre, arriba se dice la moneda: **Max Agent en
|
|
141
|
+
soles** son S/ 776 al mes con tarjeta peruana; Max Agent en dólares son USD 199 con
|
|
142
|
+
tarjeta internacional. Es el mismo plan y la misma cuota.
|
|
143
|
+
|
|
144
|
+
**El plan tope en soles se llama «Omnipotente» a secas.** En dólares se vende como
|
|
145
|
+
«Omnipotente + Atlas» porque incluye el bundle de la consola Atlas by Theus; el plan
|
|
146
|
+
en soles no entrega Atlas, así que tampoco lleva el sufijo. Es la única asimetría de
|
|
147
|
+
nombre de la escalera. Todo lo demás sí lo hereda.
|
|
148
|
+
|
|
149
|
+
**Si ya estás suscrito, tu precio no cambia.** El cobro recurrente en soles se funda
|
|
150
|
+
con un importe fijo que queda congelado en la pasarela, así que esta tabla se aplica
|
|
151
|
+
a las altas nuevas: mientras no te des de baja sigues pagando lo que aceptaste. La
|
|
152
|
+
cuota nueva sí la heredas. Y el cambio de nombre no te mueve de plan: es el mismo
|
|
153
|
+
plan, con el mismo identificador y la misma suscripción, solo que ahora se llama
|
|
154
|
+
como su equivalente en dólares.
|
|
155
|
+
|
|
156
|
+
Se paga en soles desde Perú con tarjeta peruana; también con Yape en los packs de
|
|
157
|
+
recarga prepago, que son un producto aparte de los planes y no cambiaron. Fuera de
|
|
158
|
+
Perú se paga la misma escalera en dólares con tarjeta internacional. Detalle,
|
|
159
|
+
precios anuales, packs y el precio vigente del gancho de fundador:
|
|
160
|
+
<https://theus.pe/precios>
|
|
161
|
+
|
|
162
|
+
## Higiene
|
|
163
|
+
|
|
164
|
+
Desde el escalón **Max Agent** hacia arriba —el mismo nombre en soles y en dólares,
|
|
165
|
+
y el mismo escalón que abre el multi-agente—, el CLI trae Higiene: encuentra y quita
|
|
166
|
+
las marcas invisibles que
|
|
167
|
+
arrastra el texto generado —caracteres de ancho cero, controles de dirección que
|
|
168
|
+
reordenan lo que ves sin cambiar lo que dice, caracteres de etiqueta, homóglifos— y
|
|
169
|
+
los metadatos de procedencia de tus imágenes y documentos. Corre entera en tu
|
|
170
|
+
máquina, no pasa por el servidor y no consume créditos. Se revisa o se limpia el
|
|
171
|
+
proyecto con `/higiene`. Ese corte lo aplica el propio CLI como cortesía comercial,
|
|
172
|
+
no el servidor: si no puede determinar tu plan, te deja pasar.
|
|
134
173
|
|
|
135
174
|
---
|
|
136
175
|
|
package/RELEASE.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "theus.native-release.v1",
|
|
3
3
|
"product": "Theus",
|
|
4
|
-
"version": "1.
|
|
5
|
-
"tag": "v1.
|
|
4
|
+
"version": "1.4.0",
|
|
5
|
+
"tag": "v1.4.0",
|
|
6
6
|
"target": "linux-arm64",
|
|
7
7
|
"compile_target": "bun-linux-arm64",
|
|
8
|
-
"commit": "
|
|
8
|
+
"commit": "f7f39cf8a95e0f8e581ec1e143edafdaa726b3e8",
|
|
9
9
|
"bun_version": "1.3.6",
|
|
10
|
-
"executable_sha256": "
|
|
11
|
-
"executable_bytes":
|
|
10
|
+
"executable_sha256": "61fbb60dd0431987b5376f8ff00fb813386eaa8023d9d8d8b025aa86f09242e1",
|
|
11
|
+
"executable_bytes": 103357276,
|
|
12
12
|
"format_verified": true,
|
|
13
13
|
"native_smoke": true,
|
|
14
14
|
"signed": null,
|
|
15
15
|
"notarized": null,
|
|
16
16
|
"publishable": true,
|
|
17
|
-
"finalized_at": "2026-08-
|
|
17
|
+
"finalized_at": "2026-08-30T06:06:23.321Z"
|
|
18
18
|
}
|
package/bin/theus
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
# Parches del motor de Higiene respecto del original
|
|
2
|
+
|
|
3
|
+
Este directorio es una **copia vendorizada** del motor de higiene de ficheros
|
|
4
|
+
(Python, biblioteca estándar pura) que vive en el árbol de referencia
|
|
5
|
+
`watermarks-remover-upstream/service/scripts/`. Los 28 ficheros `.py` de aquí
|
|
6
|
+
son ese motor, y **siete de ellos llevan parches**. El resto son copias byte a
|
|
7
|
+
byte.
|
|
8
|
+
|
|
9
|
+
El motivo de escribir esta lista: el día que se actualice el motor de origen,
|
|
10
|
+
la copia se rehará y estos parches hay que **reaplicarlos uno a uno**. Sin este
|
|
11
|
+
fichero se pierden en silencio y el CLI vuelve a los mismos tres fallos.
|
|
12
|
+
|
|
13
|
+
## Regla de oro
|
|
14
|
+
|
|
15
|
+
El motor **no se refactoriza aquí**. Cada parche es la mínima intervención que
|
|
16
|
+
arregla un fallo verificado en esta máquina, y lleva un comentario en el propio
|
|
17
|
+
código que empieza por `PARCHE Theus` para que se pueda encontrar con:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
grep -rn "PARCHE Theus" theuscode/vendor/higiene-motor/
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Entorno objetivo
|
|
24
|
+
|
|
25
|
+
**Python 3.9.** No es una elección: el `python3` de serie de macOS es 3.9.6
|
|
26
|
+
(verificado en esta máquina), el motor se invoca con el intérprete que haya y
|
|
27
|
+
Theus no embarca uno propio. Todo lo que sea sintaxis o API de 3.10+ revienta en
|
|
28
|
+
la máquina de un usuario que no tenga nada instalado — que es el caso normal.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Parche 1 · `container_meta.py` — falta `from __future__ import annotations`
|
|
33
|
+
|
|
34
|
+
**Fallo:** el fichero usa anotaciones `X | None` en firmas de nivel de módulo,
|
|
35
|
+
que en 3.9 se evalúan de verdad al importar. Sin el `__future__`, importar el
|
|
36
|
+
módulo aborta:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
File "container_meta.py", line 158, in <module>
|
|
40
|
+
def detect_container_format(path: Path, data: bytes | None = None) -> str:
|
|
41
|
+
TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`container_meta` es la tubería de PDF, DOCX, ODT, EPUB, SVG, HTML y Markdown —
|
|
45
|
+
o sea, media Higiene — y además lo importan `format_dispatch`, `inspect_file`,
|
|
46
|
+
`clean_file` y `server`. Con esto roto no arranca **nada** del motor.
|
|
47
|
+
|
|
48
|
+
**Parche:** `from __future__ import annotations` como primera sentencia tras el
|
|
49
|
+
docstring, exactamente igual que en los otros 27 ficheros.
|
|
50
|
+
|
|
51
|
+
**Cómo comprobar que sigue puesto:**
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
cd theuscode/vendor/higiene-motor && PYTHONPATH=. python3 -c "import container_meta"
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Ojo al reaplicar:** el árbol de referencia de esta máquina ya tiene el arreglo
|
|
58
|
+
metido a mano (mtime posterior al del resto de ficheros), así que un `diff`
|
|
59
|
+
contra él NO muestra este parche. Contra el origen de verdad sí. Los otros 27
|
|
60
|
+
ficheros lo traen de fábrica; la comprobación que vale es que **los 28** importen
|
|
61
|
+
en 3.9, no el diff.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Parche 2 · `audit_lib.py` y `rewrite_text.py` — APIs de 3.10+
|
|
66
|
+
|
|
67
|
+
### 2a · `zip(..., strict=False)` (audit_lib.py, dos veces)
|
|
68
|
+
|
|
69
|
+
`strict=` es parámetro de `zip()` desde **3.10**; en 3.9 es `TypeError`.
|
|
70
|
+
|
|
71
|
+
Se quita, sin más: `strict=False` era **el comportamiento por defecto** de
|
|
72
|
+
`zip()` de toda la vida (parar en la secuencia más corta), así que quitarlo es
|
|
73
|
+
equivalente exacto, no una degradación. Lo que no se puede hacer es cambiarlo por
|
|
74
|
+
`strict=True`, que sería otra semántica.
|
|
75
|
+
|
|
76
|
+
Aparece en el formateador de texto del informe (línea ~208) y en el generador de
|
|
77
|
+
SARIF (línea ~280). Son rutas de salida, no de análisis: el fallo no se veía al
|
|
78
|
+
importar, solo al pedir un informe.
|
|
79
|
+
|
|
80
|
+
### 2b · `itertools.pairwise` (rewrite_text.py, una vez)
|
|
81
|
+
|
|
82
|
+
`itertools.pairwise` es de **3.10**. Está dentro de `_bigrams()`, que alimenta la
|
|
83
|
+
divergencia léxica de la reescritura, así que no fallaba al importar sino al
|
|
84
|
+
usarlo — peor, porque pasa el arranque y muere en caliente.
|
|
85
|
+
|
|
86
|
+
Se sustituye por `zip(tokens, tokens[1:])`, que sobre una lista da exactamente
|
|
87
|
+
los mismos pares y en el mismo orden.
|
|
88
|
+
|
|
89
|
+
`import itertools` se deja en su sitio aunque quede sin uso: mantener el diff
|
|
90
|
+
mínimo vale más que ahorrar una línea, y ningún linter del repo mira este
|
|
91
|
+
directorio.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Parche 3 · `format_dispatch.py` — la tabla de extensiones de texto
|
|
96
|
+
|
|
97
|
+
**Fallo:** `TEXT_EXTS` tenía **trece** extensiones:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
.txt .text .css .js .py .rs .go .json .yaml .yml .toml .csv
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Ni `.ts` ni `.tsx`. Pasado sobre el repo del CLI de Theus, que está escrito
|
|
104
|
+
entero en TypeScript, clasificaba **271 de 275 ficheros como `unknown`** — y
|
|
105
|
+
`clean_file.py` se niega, con razón, a tocar un `unknown`. Una herramienta de
|
|
106
|
+
higiene de código que no reconoce el lenguaje del producto no mira dentro de
|
|
107
|
+
ningún fichero y siempre informa «limpio».
|
|
108
|
+
|
|
109
|
+
**Parche:** `TEXT_EXTS` pasa a **141 extensiones**, generadas como la unión de
|
|
110
|
+
`EXT_CODIGO` y `EXT_PROSA` de
|
|
111
|
+
`theuscode/services/higiene/clasificador.ts`, menos lo que ya reclaman
|
|
112
|
+
`IMAGE_EXTS`, `CONTAINER_EXTS` y `AV_EXTS` de este mismo fichero.
|
|
113
|
+
|
|
114
|
+
Se añade además `TEXT_NAMES` (28 entradas: `makefile`, `dockerfile`,
|
|
115
|
+
`jenkinsfile`, `.bashrc`, `.prettierrc`…), consultada por `classify()` **antes**
|
|
116
|
+
que la extensión, porque son ficheros de texto sin extensión que si no caían en
|
|
117
|
+
`unknown`. `classify_bytes()` no la usa: recibe un sufijo, no un nombre, y no
|
|
118
|
+
puede saber cómo se llama el fichero.
|
|
119
|
+
|
|
120
|
+
**Lo que a propósito NO se tocó:**
|
|
121
|
+
|
|
122
|
+
- `CONTAINER_EXTS` sigue como en el original. `clasificador.ts` incluye `.ods` y
|
|
123
|
+
`.odp`, pero `detect_container_format()` no sabe abrirlos: meterlos aquí los
|
|
124
|
+
enrutaría a una tubería que devuelve `unknown` y no ganaríamos nada.
|
|
125
|
+
- `AV_EXTS` (en `av_meta.py`) sigue con siete extensiones. `clasificador.ts`
|
|
126
|
+
lista trece — `.aac`, `.ogg`, `.opus`, `.webm`, `.mkv`, `.avi` de más — pero
|
|
127
|
+
el motor solo sabe leer ISOBMFF, WAV, MP3 y FLAC. Es una divergencia
|
|
128
|
+
**conocida y deliberada**: la parte nativa sabe que un `.webm` es audiovisual
|
|
129
|
+
y no lo trata como texto; el motor auxiliar simplemente no tiene nada que
|
|
130
|
+
decir sobre él.
|
|
131
|
+
- El orden de comprobación de `classify()`/`classify_bytes()`: imagen →
|
|
132
|
+
contenedor → texto → audiovisual. Por eso `.md`, `.html` y `.svg` siguen
|
|
133
|
+
yendo a la tubería de **contenedor** aunque `clasificador.ts` los llame prosa:
|
|
134
|
+
llevan portada y metadatos además del cuerpo textual y hay que mirarlos aparte.
|
|
135
|
+
|
|
136
|
+
**Invariante que hay que mantener:** `TEXT_EXTS` y `clasificador.ts` son la misma
|
|
137
|
+
decisión escrita dos veces. Si se toca una, hay que regenerar la otra, o se
|
|
138
|
+
pudren por separado y el enganche nativo y el motor auxiliar dejan de estar de
|
|
139
|
+
acuerdo sobre qué es texto.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Parche 4 · `common.py`, `clean_file.py`, `clean_image.py`, `clean_text.py` — el `.bak` preexistente destruía el original
|
|
144
|
+
|
|
145
|
+
**Fallo:** `backup_path()` conserva un `.bak` que ya estuviera al lado y
|
|
146
|
+
devuelve `created=False` (fallo #172: la segunda pasada de un enganche
|
|
147
|
+
auto-corrector respaldaba la salida ya limpiada encima del original). Conservarlo
|
|
148
|
+
es correcto; **quedarse ahí, no**. Ninguno de los tres llamadores miraba
|
|
149
|
+
`created`, y las consecuencias eran distintas y las dos malas:
|
|
150
|
+
|
|
151
|
+
- `clean_text.py` tiraba el valor de retorno entero. Con un `.bak` al lado, el
|
|
152
|
+
texto que se iba a sobrescribir no quedaba copiado en ninguna parte.
|
|
153
|
+
- `clean_file.py --in-place` y `clean_image.py --in-place` hacen `src = bak`:
|
|
154
|
+
limpian **desde** el respaldo. Con un `.bak` ajeno, lo que se limpiaba era el
|
|
155
|
+
fichero ajeno y el resultado se renombraba encima del original — sustitución
|
|
156
|
+
silenciosa del contenido, no solo pérdida. Reproducido: `p.png` (1x1, 70 B)
|
|
157
|
+
con un `p.png.bak` ajeno (2x2, 78 B) al lado salía de la pasada siendo el 2x2
|
|
158
|
+
limpiado, byte a byte, y el 1x1 no estaba en ningún sitio.
|
|
159
|
+
- `clean_image.py` además desempaquetaba mal: `bak = backup_path(...)` ataba la
|
|
160
|
+
**tupla** a `src`.
|
|
161
|
+
|
|
162
|
+
**Parche:**
|
|
163
|
+
|
|
164
|
+
1. `common.py` · `backup_path(src, unique=False) -> tuple[Path, bool]`. Con
|
|
165
|
+
`unique`, busca el primer nombre libre (`.bak`, `.bak.2`, `.bak.3`…) con tope
|
|
166
|
+
de 1.000; agotado devuelve `created=False` para que el llamador se niegue.
|
|
167
|
+
Espeja `respaldoUnico` de `services/higiene/io.ts`.
|
|
168
|
+
2. Los tres llamadores: si `created` es `False`, reintento con `unique=True`. Se
|
|
169
|
+
eligió **caer a nombre único, no abortar**: Higiene tiene que fallar abierto y
|
|
170
|
+
negarse a limpiar cada vez que hay un `.bak` al lado deja clavado justo el
|
|
171
|
+
bucle del que salió el #172. Así se cumplen las dos cosas — el `.bak` pristino
|
|
172
|
+
sigue intacto y el contenido actual va a `.bak.2`.
|
|
173
|
+
3. `clean_file.py` gana `finalize()`, que estampa en el JSON de las cuatro
|
|
174
|
+
tuberías (texto/imagen/av/contenedor) dos cosas que el consumidor no puede
|
|
175
|
+
deducir: `backup` (la ruta real; con un `.bak` previo es `.bak.2`) y `input`
|
|
176
|
+
corregido a la ruta que pidió el usuario, porque `--in-place` limpia desde el
|
|
177
|
+
sidecar y los sub-limpiadores devolvían su ruta.
|
|
178
|
+
|
|
179
|
+
**Invariante que hay que mantener:** el par «no se pisa un respaldo previo» +
|
|
180
|
+
«los bytes que se sobrescriben quedan copiados» solo se cumple con las dos
|
|
181
|
+
mitades. Un llamador nuevo de `backup_path()` que ignore `created` reabre el
|
|
182
|
+
fallo. La clave `backup` del JSON es lo que `services/higiene/motor.ts` lee para
|
|
183
|
+
que el informe del CLI no prometa un respaldo que no existe: si desaparece, el
|
|
184
|
+
CLI vuelve a deducir `${ruta}.bak` y a mentir.
|
|
185
|
+
|
|
186
|
+
**Cómo se comprueba:**
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
cd theuscode/vendor/higiene-motor
|
|
190
|
+
d=$(mktemp -d); printf 'ORIGINAL\n' > "$d/a.txt"; printf 'AJENO\n' > "$d/a.txt.bak"
|
|
191
|
+
python3 clean_file.py "$d/a.txt" --in-place --json | grep '"backup"'
|
|
192
|
+
grep -l ORIGINAL "$d"/* # el original tiene que seguir existiendo en algún fichero
|
|
193
|
+
cat "$d/a.txt.bak" # y el ajeno, intacto
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Verificación completa tras reaplicar
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
cd theuscode/vendor/higiene-motor
|
|
202
|
+
# 1) los 28 módulos importan en el Python de serie
|
|
203
|
+
for f in *.py; do PYTHONPATH=. python3 -c "import ${f%.py}" || echo "FALLA $f"; done
|
|
204
|
+
# 2) la tabla de texto reconoce TypeScript
|
|
205
|
+
PYTHONPATH=. python3 -c "from format_dispatch import TEXT_EXTS, TEXT_NAMES; \
|
|
206
|
+
assert '.ts' in TEXT_EXTS and '.tsx' in TEXT_EXTS; \
|
|
207
|
+
assert 'makefile' in TEXT_NAMES; print(len(TEXT_EXTS), len(TEXT_NAMES))"
|
|
208
|
+
# 3) el puente del CLI, que es quien lo usa de verdad
|
|
209
|
+
cd ../../.. && bun run theuscode/services/higiene/pruebaMotor.ts
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## Lo que NO se copió del origen
|
|
213
|
+
|
|
214
|
+
`bench_synthid_text.py` y los `requirements-*.txt` / `setup_*.sh` / `setup_*.ps1`.
|
|
215
|
+
Los primeros exigen `torch` y `transformers`; los segundos instalan esas
|
|
216
|
+
dependencias pesadas. Nada de Higiene los invoca: el motor vendorizado es
|
|
217
|
+
**biblioteca estándar pura** y ese es su rasgo de diseño más valioso, porque es
|
|
218
|
+
lo que permite ejecutarlo con el `python3` que el usuario ya tiene sin instalarle
|
|
219
|
+
nada.
|
|
220
|
+
|
|
221
|
+
Cuatro de los ficheros que sí se copiaron —`score_stylometry.py`,
|
|
222
|
+
`text_detectors.py`, `detect_text_watermark.py`, `markdiffusion_harness.py`— y
|
|
223
|
+
`score_synthid.py` **importan** en 3.9 sin dependencias, pero algunas de sus
|
|
224
|
+
funciones sí las piden en caliente. Se copian porque son la referencia de la capa
|
|
225
|
+
B; el puente del CLI (`services/higiene/motor.ts`) no los invoca.
|
|
226
|
+
|
|
227
|
+
## Herramientas externas opcionales
|
|
228
|
+
|
|
229
|
+
El motor no las necesita para arrancar, pero **sí cambian lo que puede afirmar**:
|
|
230
|
+
|
|
231
|
+
| Herramienta | Para qué | Sin ella |
|
|
232
|
+
| --- | --- | --- |
|
|
233
|
+
| `exiftool` | quitar metadatos de PDF e imágenes | limpieza de PDF «al mejor esfuerzo» |
|
|
234
|
+
| `qpdf` | reescritura estructural del PDF | los bytes de metadatos que `exiftool` libera siguen siendo recuperables |
|
|
235
|
+
| `ghostscript` (`gs`) | pasada profunda: metadatos dentro de imágenes incrustadas en el PDF | los metadatos de las imágenes incrustadas sobreviven |
|
|
236
|
+
| `c2patool` | leer manifiestos C2PA reales | **el motor no puede decir «limpio» de C2PA, solo «no concluyente»** |
|
|
237
|
+
|
|
238
|
+
La última fila es la importante y tiene función propia en el motor,
|
|
239
|
+
`c2patool_probe_note()` (`common.py:429`): `c2patool` sale con código distinto de
|
|
240
|
+
cero **tanto** si el fichero no tiene manifiesto **como** si el binario falló, así
|
|
241
|
+
que quien solo lea `has_manifest` no distingue «este fichero está limpio» de «la
|
|
242
|
+
sonda nunca corrió». Informar lo segundo como lo primero es la dirección
|
|
243
|
+
peligrosa. El puente respeta esa distinción: ver `c2paConcluyente` en
|
|
244
|
+
`services/higiene/motor.ts`.
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Aggregate AI-provenance audit over a directory tree.
|
|
3
|
+
|
|
4
|
+
Recursively inspects supported text/image/container files and emits one
|
|
5
|
+
summary plus a per-file finding list with confidence classifications.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import argparse
|
|
11
|
+
import os
|
|
12
|
+
import sys
|
|
13
|
+
from concurrent.futures import ThreadPoolExecutor
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
|
|
16
|
+
sys.path.insert(0, str(Path(__file__).resolve().parent))
|
|
17
|
+
|
|
18
|
+
from audit_lib import aggregate, format_sarif, print_human_report, scan_file
|
|
19
|
+
from common import EXIT_PARTIAL, MAX_INPUT_BYTES, emit_json, eprint
|
|
20
|
+
|
|
21
|
+
DEFAULT_SKIP_DIRS = {
|
|
22
|
+
".git",
|
|
23
|
+
".hg",
|
|
24
|
+
".svn",
|
|
25
|
+
"node_modules",
|
|
26
|
+
"__pycache__",
|
|
27
|
+
".venv",
|
|
28
|
+
"venv",
|
|
29
|
+
".tox",
|
|
30
|
+
".mypy_cache",
|
|
31
|
+
".pytest_cache",
|
|
32
|
+
"dist",
|
|
33
|
+
"build",
|
|
34
|
+
".next",
|
|
35
|
+
"target",
|
|
36
|
+
".cache",
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def walk_files(root: Path, skip_dirs: set[str]):
|
|
41
|
+
for dirpath, dirnames, filenames in os.walk(root):
|
|
42
|
+
dirnames[:] = sorted(d for d in dirnames if d not in skip_dirs and not d.startswith("."))
|
|
43
|
+
for fn in sorted(filenames):
|
|
44
|
+
path = Path(dirpath) / fn
|
|
45
|
+
if path.is_file():
|
|
46
|
+
yield path
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def _scan_worker(path: Path, check_stylometry: bool) -> tuple[dict | None, dict | None]:
|
|
50
|
+
try:
|
|
51
|
+
if path.stat().st_size > MAX_INPUT_BYTES:
|
|
52
|
+
return None, {"path": str(path), "reason": "too large"}
|
|
53
|
+
return scan_file(path, check_stylometry=check_stylometry), None
|
|
54
|
+
except Exception as e: # keep the audit going on one bad file
|
|
55
|
+
return None, {"path": str(path), "reason": str(e)}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def main() -> int:
|
|
59
|
+
p = argparse.ArgumentParser(description=__doc__)
|
|
60
|
+
p.add_argument("path", type=Path, help="Directory to audit recursively")
|
|
61
|
+
p.add_argument(
|
|
62
|
+
"--format",
|
|
63
|
+
choices=["human", "json", "sarif"],
|
|
64
|
+
default="human",
|
|
65
|
+
help="Output format (default: human)",
|
|
66
|
+
)
|
|
67
|
+
p.add_argument(
|
|
68
|
+
"--json", action="store_true", help="Emit a JSON report (alias for --format json)"
|
|
69
|
+
)
|
|
70
|
+
p.add_argument(
|
|
71
|
+
"--sarif",
|
|
72
|
+
action="store_true",
|
|
73
|
+
help="Emit an OASIS SARIF 2.1.0 report (alias for --format sarif)",
|
|
74
|
+
)
|
|
75
|
+
p.add_argument(
|
|
76
|
+
"-j",
|
|
77
|
+
"--jobs",
|
|
78
|
+
type=int,
|
|
79
|
+
default=min(32, (os.cpu_count() or 1) + 4),
|
|
80
|
+
help="Number of concurrent worker threads (default: CPU cores + 4)",
|
|
81
|
+
)
|
|
82
|
+
p.add_argument(
|
|
83
|
+
"--check-stylometry",
|
|
84
|
+
action="store_true",
|
|
85
|
+
help="Also evaluate text files for AI statistical & stylometric signals",
|
|
86
|
+
)
|
|
87
|
+
p.add_argument(
|
|
88
|
+
"--skip",
|
|
89
|
+
default="",
|
|
90
|
+
help="Comma-separated extra directory names to skip",
|
|
91
|
+
)
|
|
92
|
+
args = p.parse_args()
|
|
93
|
+
|
|
94
|
+
root = args.path
|
|
95
|
+
if not root.is_dir():
|
|
96
|
+
eprint(f"not a directory: {root}")
|
|
97
|
+
return 2
|
|
98
|
+
|
|
99
|
+
skip_dirs = set(DEFAULT_SKIP_DIRS)
|
|
100
|
+
for raw_part in args.skip.split(","):
|
|
101
|
+
part = raw_part.strip()
|
|
102
|
+
if part:
|
|
103
|
+
skip_dirs.add(part)
|
|
104
|
+
|
|
105
|
+
paths = list(walk_files(root, skip_dirs))
|
|
106
|
+
files: list[dict] = []
|
|
107
|
+
skipped: list[dict] = []
|
|
108
|
+
|
|
109
|
+
if args.jobs <= 1:
|
|
110
|
+
for path in paths:
|
|
111
|
+
f, s = _scan_worker(path, args.check_stylometry)
|
|
112
|
+
if f is not None:
|
|
113
|
+
files.append(f)
|
|
114
|
+
if s is not None:
|
|
115
|
+
skipped.append(s)
|
|
116
|
+
else:
|
|
117
|
+
with ThreadPoolExecutor(max_workers=args.jobs) as pool:
|
|
118
|
+
futures = [pool.submit(_scan_worker, p, args.check_stylometry) for p in paths]
|
|
119
|
+
for fut in futures:
|
|
120
|
+
f, s = fut.result()
|
|
121
|
+
if f is not None:
|
|
122
|
+
files.append(f)
|
|
123
|
+
if s is not None:
|
|
124
|
+
skipped.append(s)
|
|
125
|
+
|
|
126
|
+
files.sort(key=lambda x: str(x.get("path", "")))
|
|
127
|
+
skipped.sort(key=lambda x: str(x.get("path", "")))
|
|
128
|
+
|
|
129
|
+
summary = aggregate(files)
|
|
130
|
+
report = {
|
|
131
|
+
"root": str(root),
|
|
132
|
+
"files_scanned": len(files),
|
|
133
|
+
"files_skipped": skipped,
|
|
134
|
+
"summary": summary,
|
|
135
|
+
"files": files,
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
out_format = args.format
|
|
139
|
+
if args.json:
|
|
140
|
+
out_format = "json"
|
|
141
|
+
elif args.sarif:
|
|
142
|
+
out_format = "sarif"
|
|
143
|
+
|
|
144
|
+
if out_format == "json":
|
|
145
|
+
emit_json(report)
|
|
146
|
+
elif out_format == "sarif":
|
|
147
|
+
sarif_doc = format_sarif(report)
|
|
148
|
+
emit_json(sarif_doc)
|
|
149
|
+
else:
|
|
150
|
+
print_human_report(
|
|
151
|
+
files,
|
|
152
|
+
summary,
|
|
153
|
+
extra_header={
|
|
154
|
+
"Root": report["root"],
|
|
155
|
+
"Files skipped": str(len(skipped)),
|
|
156
|
+
},
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
# A partial scan (one or more files could not be scanned) is reported
|
|
160
|
+
# with a distinct code in every output format: incomplete audits are
|
|
161
|
+
# the more important CI signal and take precedence over actionable.
|
|
162
|
+
return EXIT_PARTIAL if skipped else (1 if summary["actionable_files"] else 0)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
if __name__ == "__main__":
|
|
166
|
+
raise SystemExit(main())
|