theus-cli-linux-arm64 0.2.84

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.
Files changed (742) hide show
  1. package/LICENSE +42 -0
  2. package/README.md +295 -0
  3. package/RELEASE.json +18 -0
  4. package/assets/brand-official/v1.0/logo/theus-lockup-negative-official.png +0 -0
  5. package/assets/brand-official/v1.0/logo/theus-lockup-primary-dark-official.png +0 -0
  6. package/assets/fonts/satoshi/satoshi-300.woff2 +0 -0
  7. package/assets/fonts/satoshi/satoshi-400.woff2 +0 -0
  8. package/assets/fonts/satoshi/satoshi-500.woff2 +0 -0
  9. package/assets/fonts/satoshi/satoshi-700.woff2 +0 -0
  10. package/assets/fonts/satoshi/satoshi-900.woff2 +0 -0
  11. package/assets/windows-store/Square150x150Logo.png +0 -0
  12. package/assets/windows-store/Square44x44Logo.png +0 -0
  13. package/assets/windows-store/StoreLogo.png +0 -0
  14. package/assets/windows-store/theus-store-icon-master.png +0 -0
  15. package/bin/theus +0 -0
  16. package/package.json +18 -0
  17. package/vendor/theus-arsenal/.arsenal-nombres-ola2.json +6 -0
  18. package/vendor/theus-arsenal/.arsenal-nombres-ola3.json +72 -0
  19. package/vendor/theus-arsenal/.mailmap +2 -0
  20. package/vendor/theus-arsenal/.theus-plugin/marketplace.json +25 -0
  21. package/vendor/theus-arsenal/.theus-plugin/plugin.json +20 -0
  22. package/vendor/theus-arsenal/AUTHORS.md +8 -0
  23. package/vendor/theus-arsenal/CLEANROOM_REPLACEMENT_PLAN.md +11 -0
  24. package/vendor/theus-arsenal/LICENSE +26 -0
  25. package/vendor/theus-arsenal/PROVENANCE.md +9 -0
  26. package/vendor/theus-arsenal/README.md +41 -0
  27. package/vendor/theus-arsenal/THIRD_PARTY.md +80 -0
  28. package/vendor/theus-arsenal/agents/actualizador-docs.md +123 -0
  29. package/vendor/theus-arsenal/agents/analista-comentarios.md +53 -0
  30. package/vendor/theus-arsenal/agents/analista-conversaciones.md +60 -0
  31. package/vendor/theus-arsenal/agents/analista-tests-pr.md +53 -0
  32. package/vendor/theus-arsenal/agents/analista-tipos.md +49 -0
  33. package/vendor/theus-arsenal/agents/arquitecto-accesibilidad.md +148 -0
  34. package/vendor/theus-arsenal/agents/arquitecto-codigo.md +79 -0
  35. package/vendor/theus-arsenal/agents/arquitecto-homelab.md +90 -0
  36. package/vendor/theus-arsenal/agents/arquitecto-redes.md +116 -0
  37. package/vendor/theus-arsenal/agents/arquitecto-sistemas.md +219 -0
  38. package/vendor/theus-arsenal/agents/bifurcador-opensource.md +206 -0
  39. package/vendor/theus-arsenal/agents/cazador-fallos-silenciosos.md +58 -0
  40. package/vendor/theus-arsenal/agents/consultor-documentacion.md +76 -0
  41. package/vendor/theus-arsenal/agents/diagnosticador-redes.md +135 -0
  42. package/vendor/theus-arsenal/agents/ejecutor-e2e.md +96 -0
  43. package/vendor/theus-arsenal/agents/empaquetador-opensource.md +257 -0
  44. package/vendor/theus-arsenal/agents/escaner-secretos.md +196 -0
  45. package/vendor/theus-arsenal/agents/especialista-seo.md +70 -0
  46. package/vendor/theus-arsenal/agents/estratega-marketing.md +158 -0
  47. package/vendor/theus-arsenal/agents/evaluador-agentes.md +214 -0
  48. package/vendor/theus-arsenal/agents/evaluador-harness.md +217 -0
  49. package/vendor/theus-arsenal/agents/explorador-codigo.md +79 -0
  50. package/vendor/theus-arsenal/agents/extractor-specs.md +214 -0
  51. package/vendor/theus-arsenal/agents/generador-harness.md +139 -0
  52. package/vendor/theus-arsenal/agents/guia-tdd.md +99 -0
  53. package/vendor/theus-arsenal/agents/jefe-de-gabinete.md +162 -0
  54. package/vendor/theus-arsenal/agents/limpiador-refactors.md +93 -0
  55. package/vendor/theus-arsenal/agents/optimizador-rendimiento.md +454 -0
  56. package/vendor/theus-arsenal/agents/planificador-harness.md +107 -0
  57. package/vendor/theus-arsenal/agents/planificador.md +221 -0
  58. package/vendor/theus-arsenal/agents/resolutor-apps-harmonyos.md +181 -0
  59. package/vendor/theus-arsenal/agents/resolutor-builds-cpp.md +98 -0
  60. package/vendor/theus-arsenal/agents/resolutor-builds-dart.md +209 -0
  61. package/vendor/theus-arsenal/agents/resolutor-builds-django.md +253 -0
  62. package/vendor/theus-arsenal/agents/resolutor-builds-go.md +102 -0
  63. package/vendor/theus-arsenal/agents/resolutor-builds-java.md +274 -0
  64. package/vendor/theus-arsenal/agents/resolutor-builds-kotlin.md +128 -0
  65. package/vendor/theus-arsenal/agents/resolutor-builds-pytorch.md +128 -0
  66. package/vendor/theus-arsenal/agents/resolutor-builds-react.md +214 -0
  67. package/vendor/theus-arsenal/agents/resolutor-builds-rust.md +156 -0
  68. package/vendor/theus-arsenal/agents/resolutor-builds-swift.md +169 -0
  69. package/vendor/theus-arsenal/agents/resolutor-builds.md +122 -0
  70. package/vendor/theus-arsenal/agents/revisor-bd.md +97 -0
  71. package/vendor/theus-arsenal/agents/revisor-codigo.md +291 -0
  72. package/vendor/theus-arsenal/agents/revisor-config-red.md +116 -0
  73. package/vendor/theus-arsenal/agents/revisor-cpp.md +80 -0
  74. package/vendor/theus-arsenal/agents/revisor-csharp.md +109 -0
  75. package/vendor/theus-arsenal/agents/revisor-django.md +168 -0
  76. package/vendor/theus-arsenal/agents/revisor-fastapi.md +82 -0
  77. package/vendor/theus-arsenal/agents/revisor-flutter.md +251 -0
  78. package/vendor/theus-arsenal/agents/revisor-go.md +84 -0
  79. package/vendor/theus-arsenal/agents/revisor-java.md +192 -0
  80. package/vendor/theus-arsenal/agents/revisor-kotlin.md +171 -0
  81. package/vendor/theus-arsenal/agents/revisor-ml.md +159 -0
  82. package/vendor/theus-arsenal/agents/revisor-php.md +108 -0
  83. package/vendor/theus-arsenal/agents/revisor-python.md +106 -0
  84. package/vendor/theus-arsenal/agents/revisor-react.md +166 -0
  85. package/vendor/theus-arsenal/agents/revisor-rust.md +102 -0
  86. package/vendor/theus-arsenal/agents/revisor-seguridad.md +116 -0
  87. package/vendor/theus-arsenal/agents/revisor-software-clinico.md +95 -0
  88. package/vendor/theus-arsenal/agents/revisor-swift.md +115 -0
  89. package/vendor/theus-arsenal/agents/revisor-typescript.md +123 -0
  90. package/vendor/theus-arsenal/agents/revisor-vue.md +205 -0
  91. package/vendor/theus-arsenal/agents/simplificador-codigo.md +55 -0
  92. package/vendor/theus-arsenal/commands/actualizar-docs.md +88 -0
  93. package/vendor/theus-arsenal/commands/actualizar-mapas-codigo.md +78 -0
  94. package/vendor/theus-arsenal/commands/aprender-evaluar.md +109 -0
  95. package/vendor/theus-arsenal/commands/aprender.md +74 -0
  96. package/vendor/theus-arsenal/commands/arreglar-build.md +66 -0
  97. package/vendor/theus-arsenal/commands/bucle-multiperspectiva.md +153 -0
  98. package/vendor/theus-arsenal/commands/build-cpp.md +173 -0
  99. package/vendor/theus-arsenal/commands/build-flutter.md +164 -0
  100. package/vendor/theus-arsenal/commands/build-go.md +183 -0
  101. package/vendor/theus-arsenal/commands/build-gradle.md +75 -0
  102. package/vendor/theus-arsenal/commands/build-kotlin.md +176 -0
  103. package/vendor/theus-arsenal/commands/build-react.md +187 -0
  104. package/vendor/theus-arsenal/commands/build-rust.md +187 -0
  105. package/vendor/theus-arsenal/commands/campana-marketing.md +125 -0
  106. package/vendor/theus-arsenal/commands/checkpoint.md +78 -0
  107. package/vendor/theus-arsenal/commands/cobertura-tests.md +73 -0
  108. package/vendor/theus-arsenal/commands/configurar-gestor-paquetes.md +86 -0
  109. package/vendor/theus-arsenal/commands/consulta.md +164 -0
  110. package/vendor/theus-arsenal/commands/control-calidad.md +50 -0
  111. package/vendor/theus-arsenal/commands/crear-skill.md +77 -0
  112. package/vendor/theus-arsenal/commands/enrutar-modelo.md +30 -0
  113. package/vendor/theus-arsenal/commands/epica-desbloquear.md +17 -0
  114. package/vendor/theus-arsenal/commands/epica-descomponer.md +22 -0
  115. package/vendor/theus-arsenal/commands/epica-publicar.md +21 -0
  116. package/vendor/theus-arsenal/commands/epica-reclamar.md +25 -0
  117. package/vendor/theus-arsenal/commands/epica-revisar.md +22 -0
  118. package/vendor/theus-arsenal/commands/epica-sincronizar.md +21 -0
  119. package/vendor/theus-arsenal/commands/epica-validar.md +21 -0
  120. package/vendor/theus-arsenal/commands/evolucionar.md +176 -0
  121. package/vendor/theus-arsenal/commands/funcionalidad.md +49 -0
  122. package/vendor/theus-arsenal/commands/guardar-sesion.md +278 -0
  123. package/vendor/theus-arsenal/commands/harness-build.md +111 -0
  124. package/vendor/theus-arsenal/commands/harness-diseno.md +46 -0
  125. package/vendor/theus-arsenal/commands/informe-costos.md +90 -0
  126. package/vendor/theus-arsenal/commands/iniciar-bucle.md +36 -0
  127. package/vendor/theus-arsenal/commands/instintos-estado.md +53 -0
  128. package/vendor/theus-arsenal/commands/instintos-exportar.md +69 -0
  129. package/vendor/theus-arsenal/commands/instintos-importar.md +120 -0
  130. package/vendor/theus-arsenal/commands/lienzo-planes.md +48 -0
  131. package/vendor/theus-arsenal/commands/limpiar-refactor.md +84 -0
  132. package/vendor/theus-arsenal/commands/modo-seguro.md +96 -0
  133. package/vendor/theus-arsenal/commands/orq-agregar-funcionalidad.md +36 -0
  134. package/vendor/theus-arsenal/commands/orq-cambiar-funcionalidad.md +38 -0
  135. package/vendor/theus-arsenal/commands/orq-construir-mvp.md +36 -0
  136. package/vendor/theus-arsenal/commands/orq-corregir-defecto.md +40 -0
  137. package/vendor/theus-arsenal/commands/orq-refinar-codigo.md +44 -0
  138. package/vendor/theus-arsenal/commands/orq-revisar.md +135 -0
  139. package/vendor/theus-arsenal/commands/plan-prd.md +160 -0
  140. package/vendor/theus-arsenal/commands/plan.md +198 -0
  141. package/vendor/theus-arsenal/commands/podar.md +31 -0
  142. package/vendor/theus-arsenal/commands/pr.md +181 -0
  143. package/vendor/theus-arsenal/commands/promover.md +41 -0
  144. package/vendor/theus-arsenal/commands/proyectos.md +33 -0
  145. package/vendor/theus-arsenal/commands/prp-commit.md +112 -0
  146. package/vendor/theus-arsenal/commands/prp-implementar.md +385 -0
  147. package/vendor/theus-arsenal/commands/prp-planificar.md +501 -0
  148. package/vendor/theus-arsenal/commands/reanudar-sesion.md +160 -0
  149. package/vendor/theus-arsenal/commands/revisar-codigo.md +289 -0
  150. package/vendor/theus-arsenal/commands/revisar-cpp.md +132 -0
  151. package/vendor/theus-arsenal/commands/revisar-fastapi.md +39 -0
  152. package/vendor/theus-arsenal/commands/revisar-flutter.md +115 -0
  153. package/vendor/theus-arsenal/commands/revisar-go.md +148 -0
  154. package/vendor/theus-arsenal/commands/revisar-kotlin.md +140 -0
  155. package/vendor/theus-arsenal/commands/revisar-pr.md +37 -0
  156. package/vendor/theus-arsenal/commands/revisar-python.md +297 -0
  157. package/vendor/theus-arsenal/commands/revisar-react.md +170 -0
  158. package/vendor/theus-arsenal/commands/revisar-rust.md +142 -0
  159. package/vendor/theus-arsenal/commands/revisar-vue.md +174 -0
  160. package/vendor/theus-arsenal/commands/salud-skills.md +52 -0
  161. package/vendor/theus-arsenal/commands/sesiones.md +345 -0
  162. package/vendor/theus-arsenal/commands/test-cpp.md +252 -0
  163. package/vendor/theus-arsenal/commands/test-flutter.md +143 -0
  164. package/vendor/theus-arsenal/commands/test-go.md +268 -0
  165. package/vendor/theus-arsenal/commands/test-kotlin.md +312 -0
  166. package/vendor/theus-arsenal/commands/test-react.md +265 -0
  167. package/vendor/theus-arsenal/commands/test-rust.md +309 -0
  168. package/vendor/theus-arsenal/commands/vigilancia-canary.md +43 -0
  169. package/vendor/theus-arsenal/hooks/hooks.json +274 -0
  170. package/vendor/theus-arsenal/package.json +6 -0
  171. package/vendor/theus-arsenal/rules/angular/coding-style.md +182 -0
  172. package/vendor/theus-arsenal/rules/angular/hooks.md +25 -0
  173. package/vendor/theus-arsenal/rules/angular/patterns.md +249 -0
  174. package/vendor/theus-arsenal/rules/angular/security.md +87 -0
  175. package/vendor/theus-arsenal/rules/angular/testing.md +164 -0
  176. package/vendor/theus-arsenal/rules/arkts/coding-style.md +153 -0
  177. package/vendor/theus-arsenal/rules/arkts/hooks.md +80 -0
  178. package/vendor/theus-arsenal/rules/arkts/patterns.md +236 -0
  179. package/vendor/theus-arsenal/rules/arkts/security.md +141 -0
  180. package/vendor/theus-arsenal/rules/arkts/testing.md +126 -0
  181. package/vendor/theus-arsenal/rules/common/agents.md +49 -0
  182. package/vendor/theus-arsenal/rules/common/code-review.md +123 -0
  183. package/vendor/theus-arsenal/rules/common/coding-style.md +90 -0
  184. package/vendor/theus-arsenal/rules/common/development-workflow.md +44 -0
  185. package/vendor/theus-arsenal/rules/common/git-workflow.md +24 -0
  186. package/vendor/theus-arsenal/rules/common/hooks.md +32 -0
  187. package/vendor/theus-arsenal/rules/common/patterns.md +31 -0
  188. package/vendor/theus-arsenal/rules/common/performance.md +53 -0
  189. package/vendor/theus-arsenal/rules/common/security.md +29 -0
  190. package/vendor/theus-arsenal/rules/common/testing.md +57 -0
  191. package/vendor/theus-arsenal/rules/cpp/coding-style.md +44 -0
  192. package/vendor/theus-arsenal/rules/cpp/hooks.md +39 -0
  193. package/vendor/theus-arsenal/rules/cpp/patterns.md +51 -0
  194. package/vendor/theus-arsenal/rules/cpp/security.md +51 -0
  195. package/vendor/theus-arsenal/rules/cpp/testing.md +44 -0
  196. package/vendor/theus-arsenal/rules/csharp/coding-style.md +72 -0
  197. package/vendor/theus-arsenal/rules/csharp/hooks.md +25 -0
  198. package/vendor/theus-arsenal/rules/csharp/patterns.md +50 -0
  199. package/vendor/theus-arsenal/rules/csharp/security.md +58 -0
  200. package/vendor/theus-arsenal/rules/csharp/testing.md +50 -0
  201. package/vendor/theus-arsenal/rules/dart/coding-style.md +159 -0
  202. package/vendor/theus-arsenal/rules/dart/hooks.md +68 -0
  203. package/vendor/theus-arsenal/rules/dart/patterns.md +261 -0
  204. package/vendor/theus-arsenal/rules/dart/security.md +135 -0
  205. package/vendor/theus-arsenal/rules/dart/testing.md +215 -0
  206. package/vendor/theus-arsenal/rules/fsharp/coding-style.md +112 -0
  207. package/vendor/theus-arsenal/rules/fsharp/hooks.md +26 -0
  208. package/vendor/theus-arsenal/rules/fsharp/patterns.md +111 -0
  209. package/vendor/theus-arsenal/rules/fsharp/security.md +76 -0
  210. package/vendor/theus-arsenal/rules/fsharp/testing.md +62 -0
  211. package/vendor/theus-arsenal/rules/golang/coding-style.md +32 -0
  212. package/vendor/theus-arsenal/rules/golang/hooks.md +17 -0
  213. package/vendor/theus-arsenal/rules/golang/patterns.md +45 -0
  214. package/vendor/theus-arsenal/rules/golang/security.md +34 -0
  215. package/vendor/theus-arsenal/rules/golang/testing.md +31 -0
  216. package/vendor/theus-arsenal/rules/java/coding-style.md +114 -0
  217. package/vendor/theus-arsenal/rules/java/hooks.md +18 -0
  218. package/vendor/theus-arsenal/rules/java/patterns.md +147 -0
  219. package/vendor/theus-arsenal/rules/java/security.md +101 -0
  220. package/vendor/theus-arsenal/rules/java/testing.md +133 -0
  221. package/vendor/theus-arsenal/rules/kotlin/coding-style.md +86 -0
  222. package/vendor/theus-arsenal/rules/kotlin/hooks.md +17 -0
  223. package/vendor/theus-arsenal/rules/kotlin/patterns.md +146 -0
  224. package/vendor/theus-arsenal/rules/kotlin/security.md +82 -0
  225. package/vendor/theus-arsenal/rules/kotlin/testing.md +128 -0
  226. package/vendor/theus-arsenal/rules/nuxt/coding-style.md +47 -0
  227. package/vendor/theus-arsenal/rules/nuxt/hooks.md +39 -0
  228. package/vendor/theus-arsenal/rules/nuxt/patterns.md +54 -0
  229. package/vendor/theus-arsenal/rules/nuxt/security.md +48 -0
  230. package/vendor/theus-arsenal/rules/nuxt/testing.md +49 -0
  231. package/vendor/theus-arsenal/rules/php/coding-style.md +40 -0
  232. package/vendor/theus-arsenal/rules/php/hooks.md +24 -0
  233. package/vendor/theus-arsenal/rules/php/patterns.md +33 -0
  234. package/vendor/theus-arsenal/rules/php/security.md +37 -0
  235. package/vendor/theus-arsenal/rules/php/testing.md +38 -0
  236. package/vendor/theus-arsenal/rules/python/coding-style.md +42 -0
  237. package/vendor/theus-arsenal/rules/python/fastapi.md +58 -0
  238. package/vendor/theus-arsenal/rules/python/hooks.md +19 -0
  239. package/vendor/theus-arsenal/rules/python/patterns.md +39 -0
  240. package/vendor/theus-arsenal/rules/python/security.md +30 -0
  241. package/vendor/theus-arsenal/rules/python/testing.md +38 -0
  242. package/vendor/theus-arsenal/rules/react/coding-style.md +109 -0
  243. package/vendor/theus-arsenal/rules/react/hooks.md +187 -0
  244. package/vendor/theus-arsenal/rules/react/patterns.md +194 -0
  245. package/vendor/theus-arsenal/rules/react/security.md +180 -0
  246. package/vendor/theus-arsenal/rules/react/testing.md +208 -0
  247. package/vendor/theus-arsenal/rules/react-native/accessibility.md +55 -0
  248. package/vendor/theus-arsenal/rules/react-native/coding-style.md +71 -0
  249. package/vendor/theus-arsenal/rules/react-native/hooks.md +28 -0
  250. package/vendor/theus-arsenal/rules/react-native/patterns.md +88 -0
  251. package/vendor/theus-arsenal/rules/react-native/performance.md +45 -0
  252. package/vendor/theus-arsenal/rules/react-native/production-readiness.md +51 -0
  253. package/vendor/theus-arsenal/rules/react-native/security.md +43 -0
  254. package/vendor/theus-arsenal/rules/react-native/testing.md +52 -0
  255. package/vendor/theus-arsenal/rules/ruby/coding-style.md +46 -0
  256. package/vendor/theus-arsenal/rules/ruby/hooks.md +37 -0
  257. package/vendor/theus-arsenal/rules/ruby/patterns.md +44 -0
  258. package/vendor/theus-arsenal/rules/ruby/security.md +51 -0
  259. package/vendor/theus-arsenal/rules/ruby/testing.md +51 -0
  260. package/vendor/theus-arsenal/rules/rust/coding-style.md +151 -0
  261. package/vendor/theus-arsenal/rules/rust/hooks.md +16 -0
  262. package/vendor/theus-arsenal/rules/rust/patterns.md +168 -0
  263. package/vendor/theus-arsenal/rules/rust/security.md +141 -0
  264. package/vendor/theus-arsenal/rules/rust/testing.md +154 -0
  265. package/vendor/theus-arsenal/rules/swift/coding-style.md +47 -0
  266. package/vendor/theus-arsenal/rules/swift/hooks.md +20 -0
  267. package/vendor/theus-arsenal/rules/swift/patterns.md +66 -0
  268. package/vendor/theus-arsenal/rules/swift/security.md +33 -0
  269. package/vendor/theus-arsenal/rules/swift/testing.md +45 -0
  270. package/vendor/theus-arsenal/rules/typescript/coding-style.md +199 -0
  271. package/vendor/theus-arsenal/rules/typescript/hooks.md +22 -0
  272. package/vendor/theus-arsenal/rules/typescript/patterns.md +52 -0
  273. package/vendor/theus-arsenal/rules/typescript/security.md +28 -0
  274. package/vendor/theus-arsenal/rules/typescript/testing.md +18 -0
  275. package/vendor/theus-arsenal/rules/vue/coding-style.md +54 -0
  276. package/vendor/theus-arsenal/rules/vue/hooks.md +45 -0
  277. package/vendor/theus-arsenal/rules/vue/patterns.md +56 -0
  278. package/vendor/theus-arsenal/rules/vue/security.md +46 -0
  279. package/vendor/theus-arsenal/rules/vue/testing.md +53 -0
  280. package/vendor/theus-arsenal/rules/web/coding-style.md +108 -0
  281. package/vendor/theus-arsenal/rules/web/design-quality.md +75 -0
  282. package/vendor/theus-arsenal/rules/web/hooks.md +141 -0
  283. package/vendor/theus-arsenal/rules/web/patterns.md +91 -0
  284. package/vendor/theus-arsenal/rules/web/performance.md +76 -0
  285. package/vendor/theus-arsenal/rules/web/security.md +69 -0
  286. package/vendor/theus-arsenal/rules/web/testing.md +67 -0
  287. package/vendor/theus-arsenal/scripts/hooks/bash-hook-dispatcher.js +192 -0
  288. package/vendor/theus-arsenal/scripts/hooks/block-no-verify.js +556 -0
  289. package/vendor/theus-arsenal/scripts/hooks/check-console-log.js +92 -0
  290. package/vendor/theus-arsenal/scripts/hooks/check-hook-enabled.js +16 -0
  291. package/vendor/theus-arsenal/scripts/hooks/config-protection.js +171 -0
  292. package/vendor/theus-arsenal/scripts/hooks/design-quality-check.js +132 -0
  293. package/vendor/theus-arsenal/scripts/hooks/doc-file-warning.js +110 -0
  294. package/vendor/theus-arsenal/scripts/hooks/modo-seguro.js +158 -0
  295. package/vendor/theus-arsenal/scripts/hooks/notificacion-escritorio.js +208 -0
  296. package/vendor/theus-arsenal/scripts/hooks/plugin-hook-bootstrap.js +280 -0
  297. package/vendor/theus-arsenal/scripts/hooks/post-bash-command-log.js +87 -0
  298. package/vendor/theus-arsenal/scripts/hooks/post-bash-dispatcher.js +24 -0
  299. package/vendor/theus-arsenal/scripts/hooks/post-bash-pr-created.js +60 -0
  300. package/vendor/theus-arsenal/scripts/hooks/post-edit-accumulator.js +94 -0
  301. package/vendor/theus-arsenal/scripts/hooks/post-edit-console-warn.js +54 -0
  302. package/vendor/theus-arsenal/scripts/hooks/post-edit-format.js +110 -0
  303. package/vendor/theus-arsenal/scripts/hooks/post-edit-typecheck.js +98 -0
  304. package/vendor/theus-arsenal/scripts/hooks/pre-bash-commit-quality.js +447 -0
  305. package/vendor/theus-arsenal/scripts/hooks/pre-bash-dev-server-block.js +232 -0
  306. package/vendor/theus-arsenal/scripts/hooks/pre-bash-dispatcher.js +27 -0
  307. package/vendor/theus-arsenal/scripts/hooks/pre-compact.js +101 -0
  308. package/vendor/theus-arsenal/scripts/hooks/pretooluse-visible-output.js +49 -0
  309. package/vendor/theus-arsenal/scripts/hooks/quality-gate.js +168 -0
  310. package/vendor/theus-arsenal/scripts/hooks/run-with-flags.js +271 -0
  311. package/vendor/theus-arsenal/scripts/hooks/salud-mcp.js +749 -0
  312. package/vendor/theus-arsenal/scripts/hooks/seguimiento-costos.js +161 -0
  313. package/vendor/theus-arsenal/scripts/hooks/session-end.js +340 -0
  314. package/vendor/theus-arsenal/scripts/hooks/session-start.js +906 -0
  315. package/vendor/theus-arsenal/scripts/hooks/stop-format-typecheck.js +263 -0
  316. package/vendor/theus-arsenal/scripts/hooks/suggest-compact.js +286 -0
  317. package/vendor/theus-arsenal/scripts/hooks/theus-context-monitor.js +289 -0
  318. package/vendor/theus-arsenal/scripts/hooks/verificacion-factual.js +1278 -0
  319. package/vendor/theus-arsenal/scripts/lib/agent-data-home.js +96 -0
  320. package/vendor/theus-arsenal/scripts/lib/cost-estimate.js +66 -0
  321. package/vendor/theus-arsenal/scripts/lib/hook-flags.js +79 -0
  322. package/vendor/theus-arsenal/scripts/lib/llm-summary.js +185 -0
  323. package/vendor/theus-arsenal/scripts/lib/loopback-guard.js +54 -0
  324. package/vendor/theus-arsenal/scripts/lib/observer-sessions.js +237 -0
  325. package/vendor/theus-arsenal/scripts/lib/package-manager.d.ts +120 -0
  326. package/vendor/theus-arsenal/scripts/lib/package-manager.js +434 -0
  327. package/vendor/theus-arsenal/scripts/lib/path-safety.js +86 -0
  328. package/vendor/theus-arsenal/scripts/lib/plan-canvas/markdown.js +285 -0
  329. package/vendor/theus-arsenal/scripts/lib/plan-canvas/sdk.js +238 -0
  330. package/vendor/theus-arsenal/scripts/lib/plan-canvas/server.js +534 -0
  331. package/vendor/theus-arsenal/scripts/lib/plan-canvas/sessions.js +274 -0
  332. package/vendor/theus-arsenal/scripts/lib/plan-canvas/ui.js +546 -0
  333. package/vendor/theus-arsenal/scripts/lib/project-detect.js +451 -0
  334. package/vendor/theus-arsenal/scripts/lib/resolve-formatter.js +193 -0
  335. package/vendor/theus-arsenal/scripts/lib/resolve-theus-root.js +101 -0
  336. package/vendor/theus-arsenal/scripts/lib/session-aliases.d.ts +138 -0
  337. package/vendor/theus-arsenal/scripts/lib/session-aliases.js +483 -0
  338. package/vendor/theus-arsenal/scripts/lib/session-bridge.js +155 -0
  339. package/vendor/theus-arsenal/scripts/lib/session-manager.d.ts +137 -0
  340. package/vendor/theus-arsenal/scripts/lib/session-manager.js +555 -0
  341. package/vendor/theus-arsenal/scripts/lib/shell-split.js +86 -0
  342. package/vendor/theus-arsenal/scripts/lib/shell-substitution.js +501 -0
  343. package/vendor/theus-arsenal/scripts/lib/skill-evolution/dashboard.js +414 -0
  344. package/vendor/theus-arsenal/scripts/lib/skill-evolution/health.js +285 -0
  345. package/vendor/theus-arsenal/scripts/lib/skill-evolution/index.js +22 -0
  346. package/vendor/theus-arsenal/scripts/lib/skill-evolution/provenance.js +200 -0
  347. package/vendor/theus-arsenal/scripts/lib/skill-evolution/tracker.js +157 -0
  348. package/vendor/theus-arsenal/scripts/lib/skill-evolution/versioning.js +246 -0
  349. package/vendor/theus-arsenal/scripts/lib/transcript-context.js +232 -0
  350. package/vendor/theus-arsenal/scripts/lib/utils.d.ts +205 -0
  351. package/vendor/theus-arsenal/scripts/lib/utils.js +658 -0
  352. package/vendor/theus-arsenal/scripts/plan-canvas.js +341 -0
  353. package/vendor/theus-arsenal/scripts/setup-package-manager.js +46 -0
  354. package/vendor/theus-arsenal/scripts/skills-health.js +143 -0
  355. package/vendor/theus-arsenal/skills/a11y-frontend/SKILL.md +444 -0
  356. package/vendor/theus-arsenal/skills/accesibilidad/SKILL.md +144 -0
  357. package/vendor/theus-arsenal/skills/acelerador-throughput-datos/SKILL.md +72 -0
  358. package/vendor/theus-arsenal/skills/agente-scraper-datos/SKILL.md +771 -0
  359. package/vendor/theus-arsenal/skills/analisis-plataformas-competencia/SKILL.md +137 -0
  360. package/vendor/theus-arsenal/skills/api-x/SKILL.md +233 -0
  361. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/SKILL.md +335 -0
  362. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/observer-loop.sh +374 -0
  363. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/observer.md +188 -0
  364. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/session-guardian.sh +153 -0
  365. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/start-observer.sh +253 -0
  366. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/config.json +8 -0
  367. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/hooks/observe.sh +594 -0
  368. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/detect-project.sh +325 -0
  369. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/instinct-cli.py +1918 -0
  370. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/lib/arsenal-dir.sh +23 -0
  371. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/test_parse_instinct.py +1420 -0
  372. package/vendor/theus-arsenal/skills/arquitectura-hexagonal/SKILL.md +275 -0
  373. package/vendor/theus-arsenal/skills/arquitectura-limpia-android/SKILL.md +340 -0
  374. package/vendor/theus-arsenal/skills/arquitectura-pipelines-recomendacion/SKILL.md +112 -0
  375. package/vendor/theus-arsenal/skills/atlas-datos-prediccion/SKILL.md +53 -0
  376. package/vendor/theus-arsenal/skills/auditoria-arquitectura-agentes/SKILL.md +257 -0
  377. package/vendor/theus-arsenal/skills/auditoria-produccion/SKILL.md +180 -0
  378. package/vendor/theus-arsenal/skills/auditoria-rutas-clic/SKILL.md +243 -0
  379. package/vendor/theus-arsenal/skills/autoevaluacion-agente/SKILL.md +180 -0
  380. package/vendor/theus-arsenal/skills/autoevaluacion-agente/examples/high-score-example.md +89 -0
  381. package/vendor/theus-arsenal/skills/autoevaluacion-agente/examples/low-score-example.md +87 -0
  382. package/vendor/theus-arsenal/skills/autoevaluacion-agente/references/evaluation-criteria.md +71 -0
  383. package/vendor/theus-arsenal/skills/autoevaluacion-agente/references/hook-integration.md +90 -0
  384. package/vendor/theus-arsenal/skills/autoevaluacion-agente/scripts/evaluate.py +409 -0
  385. package/vendor/theus-arsenal/skills/autoevaluacion-agente/templates/evaluation-report.md +86 -0
  386. package/vendor/theus-arsenal/skills/automatizacion-ssh-netmiko/SKILL.md +176 -0
  387. package/vendor/theus-arsenal/skills/base-datos-pubmed/SKILL.md +174 -0
  388. package/vendor/theus-arsenal/skills/base-datos-uspto/SKILL.md +173 -0
  389. package/vendor/theus-arsenal/skills/benchmark/SKILL.md +92 -0
  390. package/vendor/theus-arsenal/skills/bitacora-crecimiento/SKILL.md +120 -0
  391. package/vendor/theus-arsenal/skills/bucle-verificacion/SKILL.md +125 -0
  392. package/vendor/theus-arsenal/skills/buscar-primero/SKILL.md +184 -0
  393. package/vendor/theus-arsenal/skills/busqueda-exa/SKILL.md +111 -0
  394. package/vendor/theus-arsenal/skills/cache-por-hash/SKILL.md +160 -0
  395. package/vendor/theus-arsenal/skills/campana-marketing/SKILL.md +118 -0
  396. package/vendor/theus-arsenal/skills/capacidad-producto/SKILL.md +138 -0
  397. package/vendor/theus-arsenal/skills/cazador-vulnerabilidades/SKILL.md +104 -0
  398. package/vendor/theus-arsenal/skills/compactacion-estrategica/SKILL.md +115 -0
  399. package/vendor/theus-arsenal/skills/comparador-baskets-prediccion/SKILL.md +69 -0
  400. package/vendor/theus-arsenal/skills/compras-energia/SKILL.md +206 -0
  401. package/vendor/theus-arsenal/skills/concurrencia-swift-6-2/SKILL.md +224 -0
  402. package/vendor/theus-arsenal/skills/consejo/SKILL.md +201 -0
  403. package/vendor/theus-arsenal/skills/construccion-harness-agentes/SKILL.md +78 -0
  404. package/vendor/theus-arsenal/skills/constructor-conectores/SKILL.md +119 -0
  405. package/vendor/theus-arsenal/skills/constructor-equipos/SKILL.md +169 -0
  406. package/vendor/theus-arsenal/skills/consulta-documentacion/SKILL.md +92 -0
  407. package/vendor/theus-arsenal/skills/consultas-genomicas-gget/SKILL.md +170 -0
  408. package/vendor/theus-arsenal/skills/contacto-inversores/SKILL.md +95 -0
  409. package/vendor/theus-arsenal/skills/corrutinas-flows-kotlin/SKILL.md +284 -0
  410. package/vendor/theus-arsenal/skills/creacion-video-remotion/SKILL.md +46 -0
  411. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/3d.md +86 -0
  412. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/animations.md +29 -0
  413. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/charts-bar-chart.tsx +173 -0
  414. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/text-animations-typewriter.tsx +100 -0
  415. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/text-animations-word-highlight.tsx +108 -0
  416. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets.md +78 -0
  417. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/audio.md +172 -0
  418. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/calculate-metadata.md +104 -0
  419. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/can-decode.md +75 -0
  420. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/charts.md +58 -0
  421. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/compositions.md +146 -0
  422. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/display-captions.md +126 -0
  423. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/extract-frames.md +229 -0
  424. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/fonts.md +152 -0
  425. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-audio-duration.md +58 -0
  426. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-video-dimensions.md +68 -0
  427. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-video-duration.md +58 -0
  428. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/gifs.md +138 -0
  429. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/images.md +130 -0
  430. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/import-srt-captions.md +67 -0
  431. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/lottie.md +67 -0
  432. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/measuring-dom-nodes.md +34 -0
  433. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/measuring-text.md +143 -0
  434. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/sequencing.md +106 -0
  435. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/tailwind.md +11 -0
  436. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/text-animations.md +20 -0
  437. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/timing.md +179 -0
  438. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/transcribe-captions.md +19 -0
  439. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/transitions.md +122 -0
  440. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/trimming.md +52 -0
  441. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/videos.md +171 -0
  442. package/vendor/theus-arsenal/skills/cumplimiento-aduanero/SKILL.md +270 -0
  443. package/vendor/theus-arsenal/skills/cumplimiento-hipaa/SKILL.md +78 -0
  444. package/vendor/theus-arsenal/skills/datos-sensibles-salud/SKILL.md +149 -0
  445. package/vendor/theus-arsenal/skills/decimales-tokens-evm/SKILL.md +128 -0
  446. package/vendor/theus-arsenal/skills/decisiones-arquitectura/SKILL.md +206 -0
  447. package/vendor/theus-arsenal/skills/demos-ui/SKILL.md +469 -0
  448. package/vendor/theus-arsenal/skills/desarrollo-por-intencion/SKILL.md +369 -0
  449. package/vendor/theus-arsenal/skills/descubrimiento-marca/SKILL.md +149 -0
  450. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/10_proposito-porque.md +42 -0
  451. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/20_posicionamiento.md +47 -0
  452. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/30_audiencia-nicho.md +53 -0
  453. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/40_personalidad-arquetipo.md +61 -0
  454. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/50_voz-tono.md +62 -0
  455. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/60_narrativa-historia.md +54 -0
  456. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/70_tension-fundador.md +50 -0
  457. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/90_SINTESIS.md +133 -0
  458. package/vendor/theus-arsenal/skills/descubrimiento-plugins-laravel/SKILL.md +230 -0
  459. package/vendor/theus-arsenal/skills/destilado-reglas/SKILL.md +263 -0
  460. package/vendor/theus-arsenal/skills/destilado-reglas/scripts/scan-rules.sh +58 -0
  461. package/vendor/theus-arsenal/skills/destilado-reglas/scripts/scan-skills.sh +129 -0
  462. package/vendor/theus-arsenal/skills/diagnostico-bgp/SKILL.md +170 -0
  463. package/vendor/theus-arsenal/skills/direccion-estetica/SKILL.md +220 -0
  464. package/vendor/theus-arsenal/skills/direccion-estetica/references/taxonomia-generos.md +89 -0
  465. package/vendor/theus-arsenal/skills/diseno-api/SKILL.md +522 -0
  466. package/vendor/theus-arsenal/skills/diseno-liquid-glass/SKILL.md +282 -0
  467. package/vendor/theus-arsenal/skills/e2e-escritorio-windows/SKILL.md +879 -0
  468. package/vendor/theus-arsenal/skills/edicion-video/SKILL.md +289 -0
  469. package/vendor/theus-arsenal/skills/enfoque-producto/SKILL.md +91 -0
  470. package/vendor/theus-arsenal/skills/entornos-flox/SKILL.md +493 -0
  471. package/vendor/theus-arsenal/skills/estandares-codigo/SKILL.md +548 -0
  472. package/vendor/theus-arsenal/skills/estandares-cpp/SKILL.md +727 -0
  473. package/vendor/theus-arsenal/skills/estandares-java/SKILL.md +389 -0
  474. package/vendor/theus-arsenal/skills/estilo-legado/SKILL.md +149 -0
  475. package/vendor/theus-arsenal/skills/estructura-informes-competencia/SKILL.md +95 -0
  476. package/vendor/theus-arsenal/skills/evaluacion-academica/SKILL.md +165 -0
  477. package/vendor/theus-arsenal/skills/explorador-skills/SKILL.md +129 -0
  478. package/vendor/theus-arsenal/skills/flujo-git/SKILL.md +714 -0
  479. package/vendor/theus-arsenal/skills/flujo-ingenieria-ml/SKILL.md +343 -0
  480. package/vendor/theus-arsenal/skills/flujo-tdd/SKILL.md +584 -0
  481. package/vendor/theus-arsenal/skills/forja-personas/SKILL.md +298 -0
  482. package/vendor/theus-arsenal/skills/forja-personas/gacha.py +224 -0
  483. package/vendor/theus-arsenal/skills/forja-personas/gacha.sh +5 -0
  484. package/vendor/theus-arsenal/skills/forja-personas/references/avatar-style.md +123 -0
  485. package/vendor/theus-arsenal/skills/forja-personas/references/boundary-rules.md +53 -0
  486. package/vendor/theus-arsenal/skills/forja-personas/references/error-handling.md +53 -0
  487. package/vendor/theus-arsenal/skills/forja-personas/references/identity-tension.md +48 -0
  488. package/vendor/theus-arsenal/skills/forja-personas/references/naming-system.md +39 -0
  489. package/vendor/theus-arsenal/skills/forja-personas/references/output-template.md +166 -0
  490. package/vendor/theus-arsenal/skills/fundamentos-animacion/SKILL.md +296 -0
  491. package/vendor/theus-arsenal/skills/generacion-iconos-ios/SKILL.md +156 -0
  492. package/vendor/theus-arsenal/skills/generacion-iconos-ios/scripts/generate_icons.swift +258 -0
  493. package/vendor/theus-arsenal/skills/generacion-iconos-ios/scripts/iconify_gen.sh +235 -0
  494. package/vendor/theus-arsenal/skills/gestion-excepciones-logisticas/SKILL.md +208 -0
  495. package/vendor/theus-arsenal/skills/gestion-transportistas/SKILL.md +204 -0
  496. package/vendor/theus-arsenal/skills/guia-adopcion-ml/SKILL.md +64 -0
  497. package/vendor/theus-arsenal/skills/harness-agente-autonomo/SKILL.md +252 -0
  498. package/vendor/theus-arsenal/skills/harness-eval-clinico/SKILL.md +212 -0
  499. package/vendor/theus-arsenal/skills/harness-evaluacion/SKILL.md +296 -0
  500. package/vendor/theus-arsenal/skills/harness-generador-evaluador/SKILL.md +254 -0
  501. package/vendor/theus-arsenal/skills/homelab-diseno-red/SKILL.md +120 -0
  502. package/vendor/theus-arsenal/skills/homelab-dns-pihole/SKILL.md +264 -0
  503. package/vendor/theus-arsenal/skills/homelab-preparacion-red/SKILL.md +144 -0
  504. package/vendor/theus-arsenal/skills/homelab-segmentacion-vlan/SKILL.md +307 -0
  505. package/vendor/theus-arsenal/skills/homelab-vpn-wireguard/SKILL.md +299 -0
  506. package/vendor/theus-arsenal/skills/ingenieria-agentica/SKILL.md +96 -0
  507. package/vendor/theus-arsenal/skills/inspeccion-animaciones-blender/SKILL.md +164 -0
  508. package/vendor/theus-arsenal/skills/instaladores-python/SKILL.md +820 -0
  509. package/vendor/theus-arsenal/skills/integracion-jira/SKILL.md +307 -0
  510. package/vendor/theus-arsenal/skills/inteligencia-leads/SKILL.md +312 -0
  511. package/vendor/theus-arsenal/skills/inteligencia-leads/agents/agente-enriquecimiento.md +87 -0
  512. package/vendor/theus-arsenal/skills/inteligencia-leads/agents/mapeador-mutuos.md +76 -0
  513. package/vendor/theus-arsenal/skills/inteligencia-leads/agents/puntuador-senales.md +60 -0
  514. package/vendor/theus-arsenal/skills/inteligencia-leads/agents/redactor-outreach.md +102 -0
  515. package/vendor/theus-arsenal/skills/inteligencia-mercados-prediccion/SKILL.md +53 -0
  516. package/vendor/theus-arsenal/skills/introspeccion-agente/SKILL.md +150 -0
  517. package/vendor/theus-arsenal/skills/inventario-skills/SKILL.md +194 -0
  518. package/vendor/theus-arsenal/skills/inventario-skills/scripts/quick-diff.sh +87 -0
  519. package/vendor/theus-arsenal/skills/inventario-skills/scripts/save-results.sh +57 -0
  520. package/vendor/theus-arsenal/skills/inventario-skills/scripts/scan.sh +170 -0
  521. package/vendor/theus-arsenal/skills/investigacion-mercado/SKILL.md +87 -0
  522. package/vendor/theus-arsenal/skills/investigacion-oraculos-prediccion/SKILL.md +59 -0
  523. package/vendor/theus-arsenal/skills/investigacion-profunda/SKILL.md +161 -0
  524. package/vendor/theus-arsenal/skills/keccak256-nodejs/SKILL.md +100 -0
  525. package/vendor/theus-arsenal/skills/libro-decisiones-recursivo/SKILL.md +82 -0
  526. package/vendor/theus-arsenal/skills/lienzo-planes/SKILL.md +111 -0
  527. package/vendor/theus-arsenal/skills/limpieza-configuracion/SKILL.md +116 -0
  528. package/vendor/theus-arsenal/skills/logistica-inversa-devoluciones/SKILL.md +241 -0
  529. package/vendor/theus-arsenal/skills/manejo-errores/SKILL.md +375 -0
  530. package/vendor/theus-arsenal/skills/materiales-inversores/SKILL.md +101 -0
  531. package/vendor/theus-arsenal/skills/memoria-por-proyecto/SKILL.md +170 -0
  532. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/forget.mjs +44 -0
  533. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/info.mjs +24 -0
  534. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/init.mjs +152 -0
  535. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/list.mjs +40 -0
  536. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/migrate.mjs +214 -0
  537. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/resume.mjs +36 -0
  538. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/save.mjs +210 -0
  539. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/shared.mjs +402 -0
  540. package/vendor/theus-arsenal/skills/memoria-por-proyecto/hooks/session-start.mjs +238 -0
  541. package/vendor/theus-arsenal/skills/metodologia-benchmarks/SKILL.md +131 -0
  542. package/vendor/theus-arsenal/skills/migraciones-bd/SKILL.md +430 -0
  543. package/vendor/theus-arsenal/skills/modelos-fundacionales-en-dispositivo/SKILL.md +244 -0
  544. package/vendor/theus-arsenal/skills/modo-seguro/SKILL.md +86 -0
  545. package/vendor/theus-arsenal/skills/motion-avanzado/SKILL.md +592 -0
  546. package/vendor/theus-arsenal/skills/motor-de-contenido/SKILL.md +136 -0
  547. package/vendor/theus-arsenal/skills/no-conformidades-calidad/SKILL.md +249 -0
  548. package/vendor/theus-arsenal/skills/onboarding-codigo/SKILL.md +244 -0
  549. package/vendor/theus-arsenal/skills/operaciones-agentes-empresariales/SKILL.md +51 -0
  550. package/vendor/theus-arsenal/skills/operaciones-conocimiento/SKILL.md +159 -0
  551. package/vendor/theus-arsenal/skills/operaciones-correo/SKILL.md +123 -0
  552. package/vendor/theus-arsenal/skills/operaciones-facturacion/SKILL.md +142 -0
  553. package/vendor/theus-arsenal/skills/operaciones-flujo-proyectos/SKILL.md +110 -0
  554. package/vendor/theus-arsenal/skills/operaciones-github/SKILL.md +143 -0
  555. package/vendor/theus-arsenal/skills/operaciones-google-workspace/SKILL.md +100 -0
  556. package/vendor/theus-arsenal/skills/operaciones-investigacion/SKILL.md +124 -0
  557. package/vendor/theus-arsenal/skills/operaciones-mensajes/SKILL.md +103 -0
  558. package/vendor/theus-arsenal/skills/operaciones-terminal/SKILL.md +110 -0
  559. package/vendor/theus-arsenal/skills/optimizacion-benchmark/SKILL.md +70 -0
  560. package/vendor/theus-arsenal/skills/optimizacion-costos-llm/SKILL.md +182 -0
  561. package/vendor/theus-arsenal/skills/optimizador-conexiones/SKILL.md +191 -0
  562. package/vendor/theus-arsenal/skills/optimizador-paralelismo/SKILL.md +75 -0
  563. package/vendor/theus-arsenal/skills/optimizador-prompts/SKILL.md +374 -0
  564. package/vendor/theus-arsenal/skills/orq-agregar-funcionalidad/SKILL.md +37 -0
  565. package/vendor/theus-arsenal/skills/orq-cambiar-funcionalidad/SKILL.md +36 -0
  566. package/vendor/theus-arsenal/skills/orq-construir-mvp/SKILL.md +38 -0
  567. package/vendor/theus-arsenal/skills/orq-corregir-defecto/SKILL.md +36 -0
  568. package/vendor/theus-arsenal/skills/orq-pipeline/SKILL.md +134 -0
  569. package/vendor/theus-arsenal/skills/orq-refinar-codigo/SKILL.md +49 -0
  570. package/vendor/theus-arsenal/skills/orquestacion-equipos-agentes/SKILL.md +117 -0
  571. package/vendor/theus-arsenal/skills/pagos-agentes-x402/SKILL.md +237 -0
  572. package/vendor/theus-arsenal/skills/patrones-angular/SKILL.md +153 -0
  573. package/vendor/theus-arsenal/skills/patrones-angular/references/angular-animations.md +160 -0
  574. package/vendor/theus-arsenal/skills/patrones-angular/references/angular-aria.md +410 -0
  575. package/vendor/theus-arsenal/skills/patrones-angular/references/cli.md +86 -0
  576. package/vendor/theus-arsenal/skills/patrones-angular/references/component-harnesses.md +59 -0
  577. package/vendor/theus-arsenal/skills/patrones-angular/references/component-styling.md +91 -0
  578. package/vendor/theus-arsenal/skills/patrones-angular/references/components.md +117 -0
  579. package/vendor/theus-arsenal/skills/patrones-angular/references/creating-services.md +97 -0
  580. package/vendor/theus-arsenal/skills/patrones-angular/references/data-resolvers.md +69 -0
  581. package/vendor/theus-arsenal/skills/patrones-angular/references/define-routes.md +67 -0
  582. package/vendor/theus-arsenal/skills/patrones-angular/references/defining-providers.md +72 -0
  583. package/vendor/theus-arsenal/skills/patrones-angular/references/di-fundamentals.md +120 -0
  584. package/vendor/theus-arsenal/skills/patrones-angular/references/e2e-testing.md +56 -0
  585. package/vendor/theus-arsenal/skills/patrones-angular/references/effects.md +83 -0
  586. package/vendor/theus-arsenal/skills/patrones-angular/references/hierarchical-injectors.md +43 -0
  587. package/vendor/theus-arsenal/skills/patrones-angular/references/host-elements.md +80 -0
  588. package/vendor/theus-arsenal/skills/patrones-angular/references/injection-context.md +63 -0
  589. package/vendor/theus-arsenal/skills/patrones-angular/references/inputs.md +101 -0
  590. package/vendor/theus-arsenal/skills/patrones-angular/references/linked-signal.md +59 -0
  591. package/vendor/theus-arsenal/skills/patrones-angular/references/loading-strategies.md +61 -0
  592. package/vendor/theus-arsenal/skills/patrones-angular/references/mcp.md +67 -0
  593. package/vendor/theus-arsenal/skills/patrones-angular/references/navigate-to-routes.md +69 -0
  594. package/vendor/theus-arsenal/skills/patrones-angular/references/outputs.md +86 -0
  595. package/vendor/theus-arsenal/skills/patrones-angular/references/reactive-forms.md +122 -0
  596. package/vendor/theus-arsenal/skills/patrones-angular/references/rendering-strategies.md +44 -0
  597. package/vendor/theus-arsenal/skills/patrones-angular/references/resource.md +77 -0
  598. package/vendor/theus-arsenal/skills/patrones-angular/references/route-animations.md +56 -0
  599. package/vendor/theus-arsenal/skills/patrones-angular/references/route-guards.md +52 -0
  600. package/vendor/theus-arsenal/skills/patrones-angular/references/router-lifecycle.md +45 -0
  601. package/vendor/theus-arsenal/skills/patrones-angular/references/router-testing.md +87 -0
  602. package/vendor/theus-arsenal/skills/patrones-angular/references/show-routes-with-outlets.md +68 -0
  603. package/vendor/theus-arsenal/skills/patrones-angular/references/signal-forms.md +795 -0
  604. package/vendor/theus-arsenal/skills/patrones-angular/references/signals-overview.md +94 -0
  605. package/vendor/theus-arsenal/skills/patrones-angular/references/tailwind-css.md +69 -0
  606. package/vendor/theus-arsenal/skills/patrones-angular/references/template-driven-forms.md +114 -0
  607. package/vendor/theus-arsenal/skills/patrones-angular/references/testing-fundamentals.md +65 -0
  608. package/vendor/theus-arsenal/skills/patrones-animacion/SKILL.md +432 -0
  609. package/vendor/theus-arsenal/skills/patrones-backend/SKILL.md +560 -0
  610. package/vendor/theus-arsenal/skills/patrones-cdss-clinico/SKILL.md +249 -0
  611. package/vendor/theus-arsenal/skills/patrones-cisco-ios/SKILL.md +148 -0
  612. package/vendor/theus-arsenal/skills/patrones-clickhouse/SKILL.md +443 -0
  613. package/vendor/theus-arsenal/skills/patrones-compose-multiplatform/SKILL.md +298 -0
  614. package/vendor/theus-arsenal/skills/patrones-dart-flutter/SKILL.md +566 -0
  615. package/vendor/theus-arsenal/skills/patrones-despliegue/SKILL.md +426 -0
  616. package/vendor/theus-arsenal/skills/patrones-django/SKILL.md +739 -0
  617. package/vendor/theus-arsenal/skills/patrones-django-celery/SKILL.md +456 -0
  618. package/vendor/theus-arsenal/skills/patrones-docker/SKILL.md +363 -0
  619. package/vendor/theus-arsenal/skills/patrones-dotnet/SKILL.md +321 -0
  620. package/vendor/theus-arsenal/skills/patrones-emr-clinico/SKILL.md +168 -0
  621. package/vendor/theus-arsenal/skills/patrones-fastapi/SKILL.md +513 -0
  622. package/vendor/theus-arsenal/skills/patrones-frontend/SKILL.md +655 -0
  623. package/vendor/theus-arsenal/skills/patrones-go/SKILL.md +674 -0
  624. package/vendor/theus-arsenal/skills/patrones-jpa/SKILL.md +156 -0
  625. package/vendor/theus-arsenal/skills/patrones-kotlin/SKILL.md +717 -0
  626. package/vendor/theus-arsenal/skills/patrones-kotlin-exposed/SKILL.md +724 -0
  627. package/vendor/theus-arsenal/skills/patrones-kotlin-ktor/SKILL.md +694 -0
  628. package/vendor/theus-arsenal/skills/patrones-kubernetes/SKILL.md +754 -0
  629. package/vendor/theus-arsenal/skills/patrones-laravel/SKILL.md +414 -0
  630. package/vendor/theus-arsenal/skills/patrones-mcp/SKILL.md +66 -0
  631. package/vendor/theus-arsenal/skills/patrones-mysql/SKILL.md +420 -0
  632. package/vendor/theus-arsenal/skills/patrones-nestjs/SKILL.md +229 -0
  633. package/vendor/theus-arsenal/skills/patrones-nextjs/SKILL.md +56 -0
  634. package/vendor/theus-arsenal/skills/patrones-nuxt4/SKILL.md +99 -0
  635. package/vendor/theus-arsenal/skills/patrones-perl/SKILL.md +508 -0
  636. package/vendor/theus-arsenal/skills/patrones-postgres/SKILL.md +141 -0
  637. package/vendor/theus-arsenal/skills/patrones-prisma/SKILL.md +399 -0
  638. package/vendor/theus-arsenal/skills/patrones-python/SKILL.md +750 -0
  639. package/vendor/theus-arsenal/skills/patrones-pytorch/SKILL.md +400 -0
  640. package/vendor/theus-arsenal/skills/patrones-quarkus/SKILL.md +729 -0
  641. package/vendor/theus-arsenal/skills/patrones-react/SKILL.md +339 -0
  642. package/vendor/theus-arsenal/skills/patrones-react-native/SKILL.md +325 -0
  643. package/vendor/theus-arsenal/skills/patrones-redis/SKILL.md +401 -0
  644. package/vendor/theus-arsenal/skills/patrones-rust/SKILL.md +504 -0
  645. package/vendor/theus-arsenal/skills/patrones-springboot/SKILL.md +314 -0
  646. package/vendor/theus-arsenal/skills/patrones-swiftui/SKILL.md +261 -0
  647. package/vendor/theus-arsenal/skills/patrones-tinystruct/SKILL.md +281 -0
  648. package/vendor/theus-arsenal/skills/patrones-tinystruct/references/architecture.md +90 -0
  649. package/vendor/theus-arsenal/skills/patrones-tinystruct/references/data-handling.md +60 -0
  650. package/vendor/theus-arsenal/skills/patrones-tinystruct/references/database.md +99 -0
  651. package/vendor/theus-arsenal/skills/patrones-tinystruct/references/routing.md +64 -0
  652. package/vendor/theus-arsenal/skills/patrones-tinystruct/references/system-usage.md +97 -0
  653. package/vendor/theus-arsenal/skills/patrones-tinystruct/references/testing.md +72 -0
  654. package/vendor/theus-arsenal/skills/patrones-vite/SKILL.md +449 -0
  655. package/vendor/theus-arsenal/skills/patrones-vue/SKILL.md +469 -0
  656. package/vendor/theus-arsenal/skills/persistencia-actores-swift/SKILL.md +148 -0
  657. package/vendor/theus-arsenal/skills/pipeline-opensource/SKILL.md +254 -0
  658. package/vendor/theus-arsenal/skills/planificacion-demanda-inventario/SKILL.md +236 -0
  659. package/vendor/theus-arsenal/skills/planificador-trades-prediccion/SKILL.md +60 -0
  660. package/vendor/theus-arsenal/skills/plano-tecnico/SKILL.md +102 -0
  661. package/vendor/theus-arsenal/skills/presentaciones-html/SKILL.md +189 -0
  662. package/vendor/theus-arsenal/skills/presentaciones-html/STYLE_PRESETS.md +330 -0
  663. package/vendor/theus-arsenal/skills/presentaciones-html/animation-patterns.md +122 -0
  664. package/vendor/theus-arsenal/skills/presentaciones-html/html-template.md +419 -0
  665. package/vendor/theus-arsenal/skills/presentaciones-html/scripts/export-pdf.sh +418 -0
  666. package/vendor/theus-arsenal/skills/presentaciones-html/scripts/extract-pptx.py +96 -0
  667. package/vendor/theus-arsenal/skills/presentaciones-html/viewport-base.css +153 -0
  668. package/vendor/theus-arsenal/skills/presupuesto-contexto/SKILL.md +263 -0
  669. package/vendor/theus-arsenal/skills/procesamiento-documentos-nutrient/SKILL.md +168 -0
  670. package/vendor/theus-arsenal/skills/programacion-produccion/SKILL.md +220 -0
  671. package/vendor/theus-arsenal/skills/publicacion-cruzada/SKILL.md +117 -0
  672. package/vendor/theus-arsenal/skills/publicador-social/SKILL.md +121 -0
  673. package/vendor/theus-arsenal/skills/puerta-de-entrega/SKILL.md +164 -0
  674. package/vendor/theus-arsenal/skills/puerta-de-entrega/hooks/puerta-entrega.py +242 -0
  675. package/vendor/theus-arsenal/skills/pulir-interfaces/SKILL.md +126 -0
  676. package/vendor/theus-arsenal/skills/qa-navegador/SKILL.md +103 -0
  677. package/vendor/theus-arsenal/skills/ranking-grafo-social/SKILL.md +153 -0
  678. package/vendor/theus-arsenal/skills/recuperacion-iterativa/SKILL.md +236 -0
  679. package/vendor/theus-arsenal/skills/redaccion-articulos/SKILL.md +81 -0
  680. package/vendor/theus-arsenal/skills/regex-vs-llm/SKILL.md +221 -0
  681. package/vendor/theus-arsenal/skills/regresion-codigo-ia/SKILL.md +388 -0
  682. package/vendor/theus-arsenal/skills/rendimiento-react/SKILL.md +567 -0
  683. package/vendor/theus-arsenal/skills/revision-codigo-flutter-dart/SKILL.md +442 -0
  684. package/vendor/theus-arsenal/skills/revision-literatura-cientifica/SKILL.md +191 -0
  685. package/vendor/theus-arsenal/skills/revision-multiperspectiva/SKILL.md +302 -0
  686. package/vendor/theus-arsenal/skills/revision-riesgo-prediccion/SKILL.md +56 -0
  687. package/vendor/theus-arsenal/skills/revision-seguridad/SKILL.md +505 -0
  688. package/vendor/theus-arsenal/skills/revision-seguridad/cloud-infrastructure-security.md +361 -0
  689. package/vendor/theus-arsenal/skills/runtime-bun/SKILL.md +83 -0
  690. package/vendor/theus-arsenal/skills/salud-codigo-codescene/SKILL.md +163 -0
  691. package/vendor/theus-arsenal/skills/salud-interfaces-red/SKILL.md +143 -0
  692. package/vendor/theus-arsenal/skills/seguimiento-costos/SKILL.md +122 -0
  693. package/vendor/theus-arsenal/skills/seguridad-agentes-trading/SKILL.md +145 -0
  694. package/vendor/theus-arsenal/skills/seguridad-amm-defi/SKILL.md +166 -0
  695. package/vendor/theus-arsenal/skills/seguridad-django/SKILL.md +648 -0
  696. package/vendor/theus-arsenal/skills/seguridad-laravel/SKILL.md +945 -0
  697. package/vendor/theus-arsenal/skills/seguridad-perl/SKILL.md +507 -0
  698. package/vendor/theus-arsenal/skills/seguridad-quarkus/SKILL.md +474 -0
  699. package/vendor/theus-arsenal/skills/seguridad-springboot/SKILL.md +279 -0
  700. package/vendor/theus-arsenal/skills/seo/SKILL.md +166 -0
  701. package/vendor/theus-arsenal/skills/sistema-diseno/SKILL.md +81 -0
  702. package/vendor/theus-arsenal/skills/sistema-operativo-agentico/SKILL.md +375 -0
  703. package/vendor/theus-arsenal/skills/sistemas-latencia-critica/SKILL.md +65 -0
  704. package/vendor/theus-arsenal/skills/tdd-django/SKILL.md +735 -0
  705. package/vendor/theus-arsenal/skills/tdd-laravel/SKILL.md +673 -0
  706. package/vendor/theus-arsenal/skills/tdd-quarkus/SKILL.md +817 -0
  707. package/vendor/theus-arsenal/skills/tdd-springboot/SKILL.md +165 -0
  708. package/vendor/theus-arsenal/skills/testing-cpp/SKILL.md +328 -0
  709. package/vendor/theus-arsenal/skills/testing-csharp/SKILL.md +321 -0
  710. package/vendor/theus-arsenal/skills/testing-e2e/SKILL.md +325 -0
  711. package/vendor/theus-arsenal/skills/testing-go/SKILL.md +719 -0
  712. package/vendor/theus-arsenal/skills/testing-kotlin/SKILL.md +829 -0
  713. package/vendor/theus-arsenal/skills/testing-perl/SKILL.md +479 -0
  714. package/vendor/theus-arsenal/skills/testing-protocolos-di-swift/SKILL.md +196 -0
  715. package/vendor/theus-arsenal/skills/testing-python/SKILL.md +815 -0
  716. package/vendor/theus-arsenal/skills/testing-react/SKILL.md +421 -0
  717. package/vendor/theus-arsenal/skills/testing-rust/SKILL.md +506 -0
  718. package/vendor/theus-arsenal/skills/tours-de-codigo/SKILL.md +252 -0
  719. package/vendor/theus-arsenal/skills/traduccion-documentos-visado/SKILL.md +121 -0
  720. package/vendor/theus-arsenal/skills/ui-a-vue/SKILL.md +141 -0
  721. package/vendor/theus-arsenal/skills/validacion-config-red/SKILL.md +211 -0
  722. package/vendor/theus-arsenal/skills/verificacion-django/SKILL.md +470 -0
  723. package/vendor/theus-arsenal/skills/verificacion-factual/SKILL.md +142 -0
  724. package/vendor/theus-arsenal/skills/verificacion-laravel/SKILL.md +184 -0
  725. package/vendor/theus-arsenal/skills/verificacion-quarkus/SKILL.md +485 -0
  726. package/vendor/theus-arsenal/skills/verificacion-springboot/SKILL.md +237 -0
  727. package/vendor/theus-arsenal/skills/videodb/SKILL.md +374 -0
  728. package/vendor/theus-arsenal/skills/videodb/reference/api-reference.md +550 -0
  729. package/vendor/theus-arsenal/skills/videodb/reference/capture-reference.md +407 -0
  730. package/vendor/theus-arsenal/skills/videodb/reference/capture.md +101 -0
  731. package/vendor/theus-arsenal/skills/videodb/reference/editor.md +443 -0
  732. package/vendor/theus-arsenal/skills/videodb/reference/generative.md +331 -0
  733. package/vendor/theus-arsenal/skills/videodb/reference/rtstream-reference.md +564 -0
  734. package/vendor/theus-arsenal/skills/videodb/reference/rtstream.md +65 -0
  735. package/vendor/theus-arsenal/skills/videodb/reference/search.md +230 -0
  736. package/vendor/theus-arsenal/skills/videodb/reference/streaming.md +406 -0
  737. package/vendor/theus-arsenal/skills/videodb/reference/use-cases.md +118 -0
  738. package/vendor/theus-arsenal/skills/videodb/scripts/ws_listener.py +279 -0
  739. package/vendor/theus-arsenal/skills/videos-manim/SKILL.md +91 -0
  740. package/vendor/theus-arsenal/skills/videos-manim/assets/network_graph_scene.py +52 -0
  741. package/vendor/theus-arsenal/skills/vigilancia-canary/SKILL.md +108 -0
  742. package/vendor/theus-arsenal/skills/voz-de-marca/SKILL.md +106 -0
@@ -0,0 +1,261 @@
1
+ ---
2
+ paths:
3
+ - "**/*.dart"
4
+ - "**/pubspec.yaml"
5
+ ---
6
+ # Patrones de Dart/Flutter
7
+
8
+ > Este archivo extiende [common/patterns.md](../common/patterns.md) con contenido específico de Dart, Flutter y su ecosistema habitual.
9
+
10
+ ## Patrón Repository
11
+
12
+ ```dart
13
+ abstract interface class UserRepository {
14
+ Future<User?> getById(String id);
15
+ Future<List<User>> getAll();
16
+ Stream<List<User>> watchAll();
17
+ Future<void> save(User user);
18
+ Future<void> delete(String id);
19
+ }
20
+
21
+ class UserRepositoryImpl implements UserRepository {
22
+ const UserRepositoryImpl(this._remote, this._local);
23
+
24
+ final UserRemoteDataSource _remote;
25
+ final UserLocalDataSource _local;
26
+
27
+ @override
28
+ Future<User?> getById(String id) async {
29
+ final local = await _local.getById(id);
30
+ if (local != null) return local;
31
+ final remote = await _remote.getById(id);
32
+ if (remote != null) await _local.save(remote);
33
+ return remote;
34
+ }
35
+
36
+ @override
37
+ Future<List<User>> getAll() async {
38
+ final remote = await _remote.getAll();
39
+ for (final user in remote) {
40
+ await _local.save(user);
41
+ }
42
+ return remote;
43
+ }
44
+
45
+ @override
46
+ Stream<List<User>> watchAll() => _local.watchAll();
47
+
48
+ @override
49
+ Future<void> save(User user) => _local.save(user);
50
+
51
+ @override
52
+ Future<void> delete(String id) async {
53
+ await _remote.delete(id);
54
+ await _local.delete(id);
55
+ }
56
+ }
57
+ ```
58
+
59
+ ## Gestión de estado: BLoC/Cubit
60
+
61
+ ```dart
62
+ // Cubit — transiciones de estado simples
63
+ class CounterCubit extends Cubit<int> {
64
+ CounterCubit() : super(0);
65
+
66
+ void increment() => emit(state + 1);
67
+ void decrement() => emit(state - 1);
68
+ }
69
+
70
+ // BLoC — dirigido por eventos
71
+ @immutable
72
+ sealed class CartEvent {}
73
+ class CartItemAdded extends CartEvent { CartItemAdded(this.item); final Item item; }
74
+ class CartItemRemoved extends CartEvent { CartItemRemoved(this.id); final String id; }
75
+ class CartCleared extends CartEvent {}
76
+
77
+ @immutable
78
+ class CartState {
79
+ const CartState({this.items = const []});
80
+ final List<Item> items;
81
+ CartState copyWith({List<Item>? items}) => CartState(items: items ?? this.items);
82
+ }
83
+
84
+ class CartBloc extends Bloc<CartEvent, CartState> {
85
+ CartBloc() : super(const CartState()) {
86
+ on<CartItemAdded>((event, emit) =>
87
+ emit(state.copyWith(items: [...state.items, event.item])));
88
+ on<CartItemRemoved>((event, emit) =>
89
+ emit(state.copyWith(items: state.items.where((i) => i.id != event.id).toList())));
90
+ on<CartCleared>((_, emit) => emit(const CartState()));
91
+ }
92
+ }
93
+ ```
94
+
95
+ ## Gestión de estado: Riverpod
96
+
97
+ ```dart
98
+ // Provider simple
99
+ @riverpod
100
+ Future<List<User>> users(Ref ref) async {
101
+ final repo = ref.watch(userRepositoryProvider);
102
+ return repo.getAll();
103
+ }
104
+
105
+ // Notifier para estado mutable
106
+ @riverpod
107
+ class CartNotifier extends _$CartNotifier {
108
+ @override
109
+ List<Item> build() => [];
110
+
111
+ void add(Item item) => state = [...state, item];
112
+ void remove(String id) => state = state.where((i) => i.id != id).toList();
113
+ void clear() => state = [];
114
+ }
115
+
116
+ // ConsumerWidget
117
+ class CartPage extends ConsumerWidget {
118
+ const CartPage({super.key});
119
+
120
+ @override
121
+ Widget build(BuildContext context, WidgetRef ref) {
122
+ final items = ref.watch(cartNotifierProvider);
123
+ return ListView(
124
+ children: items.map((item) => CartItemTile(item: item)).toList(),
125
+ );
126
+ }
127
+ }
128
+ ```
129
+
130
+ ## Inyección de dependencias
131
+
132
+ Se prefiere la inyección por constructor. Usa `get_it` o providers de Riverpod en la raíz de composición:
133
+
134
+ ```dart
135
+ // Registro con get_it (en un archivo de configuración)
136
+ void setupDependencies() {
137
+ final di = GetIt.instance;
138
+ di.registerSingleton<ApiClient>(ApiClient(baseUrl: Env.apiUrl));
139
+ di.registerSingleton<UserRepository>(
140
+ UserRepositoryImpl(di<ApiClient>(), di<LocalDatabase>()),
141
+ );
142
+ di.registerFactory(() => UserListViewModel(di<UserRepository>()));
143
+ }
144
+ ```
145
+
146
+ ## Patrón ViewModel (sin BLoC/Riverpod)
147
+
148
+ ```dart
149
+ class UserListViewModel extends ChangeNotifier {
150
+ UserListViewModel(this._repository);
151
+
152
+ final UserRepository _repository;
153
+
154
+ AsyncState<List<User>> _state = const Loading();
155
+ AsyncState<List<User>> get state => _state;
156
+
157
+ Future<void> load() async {
158
+ _state = const Loading();
159
+ notifyListeners();
160
+ try {
161
+ final users = await _repository.getAll();
162
+ _state = Success(users);
163
+ } on Exception catch (e) {
164
+ _state = Failure(e);
165
+ }
166
+ notifyListeners();
167
+ }
168
+ }
169
+ ```
170
+
171
+ ## Patrón UseCase
172
+
173
+ ```dart
174
+ class GetUserUseCase {
175
+ const GetUserUseCase(this._repository);
176
+ final UserRepository _repository;
177
+
178
+ Future<User?> call(String id) => _repository.getById(id);
179
+ }
180
+
181
+ class CreateUserUseCase {
182
+ const CreateUserUseCase(this._repository, this._idGenerator);
183
+ final UserRepository _repository;
184
+ final IdGenerator _idGenerator; // inyectado — la capa de dominio no debe depender del paquete uuid directamente
185
+
186
+ Future<void> call(CreateUserInput input) async {
187
+ // Validar, aplicar las reglas de negocio y luego persistir
188
+ final user = User(id: _idGenerator.generate(), name: input.name, email: input.email);
189
+ await _repository.save(user);
190
+ }
191
+ }
192
+ ```
193
+
194
+ ## Estado inmutable con freezed
195
+
196
+ ```dart
197
+ @freezed
198
+ class UserState with _$UserState {
199
+ const factory UserState({
200
+ @Default([]) List<User> users,
201
+ @Default(false) bool isLoading,
202
+ String? errorMessage,
203
+ }) = _UserState;
204
+ }
205
+ ```
206
+
207
+ ## Límites de capas de Clean Architecture
208
+
209
+ ```
210
+ lib/
211
+ ├── domain/ # Dart puro — sin Flutter, sin paquetes externos
212
+ │ ├── entities/
213
+ │ ├── repositories/ # Interfaces abstractas
214
+ │ └── usecases/
215
+ ├── data/ # Implementa las interfaces del dominio
216
+ │ ├── datasources/
217
+ │ ├── models/ # DTOs con fromJson/toJson
218
+ │ └── repositories/
219
+ └── presentation/ # Widgets de Flutter + gestión de estado
220
+ ├── pages/
221
+ ├── widgets/
222
+ └── providers/ (o blocs/ o viewmodels/)
223
+ ```
224
+
225
+ - El dominio no debe importar `package:flutter` ni ningún paquete de la capa de datos
226
+ - La capa de datos mapea los DTO a entidades de dominio en los límites de los repositorios
227
+ - La presentación llama a los casos de uso, no a los repositorios directamente
228
+
229
+ ## Navegación (GoRouter)
230
+
231
+ ```dart
232
+ final router = GoRouter(
233
+ routes: [
234
+ GoRoute(
235
+ path: '/',
236
+ builder: (context, state) => const HomePage(),
237
+ ),
238
+ GoRoute(
239
+ path: '/users/:id',
240
+ builder: (context, state) {
241
+ final id = state.pathParameters['id']!;
242
+ return UserDetailPage(userId: id);
243
+ },
244
+ ),
245
+ ],
246
+ // refreshListenable reevalúa redirect cada vez que cambia el estado de autenticación
247
+ refreshListenable: GoRouterRefreshStream(authCubit.stream),
248
+ redirect: (context, state) {
249
+ final isLoggedIn = context.read<AuthCubit>().state is AuthAuthenticated;
250
+ if (!isLoggedIn && !state.matchedLocation.startsWith('/login')) {
251
+ return '/login';
252
+ }
253
+ return null;
254
+ },
255
+ );
256
+ ```
257
+
258
+ ## Referencias
259
+
260
+ Consulta la skill `revision-codigo-flutter-dart` para el checklist de revisión completo.
261
+ Consulta la skill `patrones-compose-multiplatform` para patrones de interoperabilidad Kotlin Multiplatform/Flutter.
@@ -0,0 +1,135 @@
1
+ ---
2
+ paths:
3
+ - "**/*.dart"
4
+ - "**/pubspec.yaml"
5
+ - "**/AndroidManifest.xml"
6
+ - "**/Info.plist"
7
+ ---
8
+ # Seguridad en Dart/Flutter
9
+
10
+ > Este archivo extiende [common/security.md](../common/security.md) con contenido específico de Dart, Flutter y móvil.
11
+
12
+ ## Gestión de secretos
13
+
14
+ - Nunca codifiques API keys, tokens ni credenciales en el código fuente Dart
15
+ - Usa `--dart-define` o `--dart-define-from-file` para configuración en tiempo de compilación (los valores no son realmente secretos — usa un proxy en el backend para los secretos del lado servidor)
16
+ - Usa `flutter_dotenv` o equivalente, con los archivos `.env` listados en `.gitignore`
17
+ - Guarda los secretos de runtime en almacenamiento seguro de plataforma: `flutter_secure_storage` (Keychain en iOS, EncryptedSharedPreferences en Android)
18
+
19
+ ```dart
20
+ // INCORRECTO
21
+ const apiKey = 'sk-abc123...';
22
+
23
+ // CORRECTO — configuración en tiempo de compilación (no es secreta, solo configurable)
24
+ const apiKey = String.fromEnvironment('API_KEY');
25
+
26
+ // CORRECTO — secreto de runtime desde almacenamiento seguro
27
+ final token = await secureStorage.read(key: 'auth_token');
28
+ ```
29
+
30
+ ## Seguridad de red
31
+
32
+ - Impón HTTPS — sin llamadas `http://` en producción
33
+ - Configura `network_security_config.xml` en Android para bloquear tráfico en claro
34
+ - Configura `NSAppTransportSecurity` en `Info.plist` para prohibir cargas arbitrarias
35
+ - Define timeouts en todos los clientes HTTP — nunca dejes los valores por defecto
36
+ - Considera certificate pinning para endpoints de alta seguridad
37
+
38
+ ```dart
39
+ // Dio con timeout e imposición de HTTPS
40
+ final dio = Dio(BaseOptions(
41
+ baseUrl: 'https://api.example.com',
42
+ connectTimeout: const Duration(seconds: 10),
43
+ receiveTimeout: const Duration(seconds: 30),
44
+ ));
45
+ ```
46
+
47
+ ## Validación de entrada
48
+
49
+ - Valida y sanea toda entrada del usuario antes de enviarla a la API o al almacenamiento
50
+ - Nunca pases entrada sin sanear a consultas SQL — usa consultas parametrizadas (sqflite, drift)
51
+ - Sanea las URLs de deep links antes de navegar — valida el esquema, el host y los parámetros de la ruta
52
+ - Usa `Uri.tryParse` y valida antes de navegar
53
+
54
+ ```dart
55
+ // INCORRECTO — inyección SQL
56
+ await db.rawQuery("SELECT * FROM users WHERE email = '$userInput'");
57
+
58
+ // CORRECTO — parametrizado
59
+ await db.query('users', where: 'email = ?', whereArgs: [userInput]);
60
+
61
+ // INCORRECTO — deep link sin validar
62
+ final uri = Uri.parse(incomingLink);
63
+ context.go(uri.path); // podría navegar a cualquier ruta
64
+
65
+ // CORRECTO — deep link validado
66
+ final uri = Uri.tryParse(incomingLink);
67
+ if (uri != null && uri.host == 'myapp.com' && _allowedPaths.contains(uri.path)) {
68
+ context.go(uri.path);
69
+ }
70
+ ```
71
+
72
+ ## Protección de datos
73
+
74
+ - Guarda tokens, PII y credenciales solo en `flutter_secure_storage`
75
+ - Nunca escribas datos sensibles en `SharedPreferences` ni en archivos locales en texto plano
76
+ - Limpia el estado de autenticación al cerrar sesión: tokens, datos de usuario en caché, cookies
77
+ - Usa autenticación biométrica (`local_auth`) para operaciones sensibles
78
+ - Evita registrar datos sensibles — nada de `print(token)` ni `debugPrint(password)`
79
+
80
+ ## Específico de Android
81
+
82
+ - Declara solo los permisos necesarios en `AndroidManifest.xml`
83
+ - Exporta componentes de Android (`Activity`, `Service`, `BroadcastReceiver`) solo cuando sea necesario; añade `android:exported="false"` donde no haga falta
84
+ - Revisa los intent filters — los componentes exportados con intent filters implícitos son accesibles por cualquier app
85
+ - Usa `FLAG_SECURE` en pantallas que muestren datos sensibles (impide capturas de pantalla)
86
+
87
+ ```xml
88
+ <!-- AndroidManifest.xml — restringir los componentes exportados -->
89
+ <activity android:name=".MainActivity" android:exported="true">
90
+ <!-- Solo la activity lanzadora necesita exported=true -->
91
+ </activity>
92
+ <activity android:name=".SensitiveActivity" android:exported="false" />
93
+ ```
94
+
95
+ ## Específico de iOS
96
+
97
+ - Declara solo las descripciones de uso necesarias en `Info.plist` (`NSCameraUsageDescription`, etc.)
98
+ - Guarda los secretos en el Keychain — `flutter_secure_storage` usa el Keychain en iOS
99
+ - Usa App Transport Security (ATS) — prohíbe las cargas arbitrarias
100
+ - Habilita el entitlement de protección de datos para los archivos sensibles
101
+
102
+ ## Seguridad en WebView
103
+
104
+ - Usa `webview_flutter` v4+ (`WebViewController` / `WebViewWidget`) — el widget `WebView` heredado fue eliminado
105
+ - Deshabilita JavaScript salvo que sea explícitamente necesario (`JavaScriptMode.disabled`)
106
+ - Valida las URLs antes de cargarlas — nunca cargues URLs arbitrarias provenientes de deep links
107
+ - Nunca expongas callbacks de Dart a JavaScript salvo que sea absolutamente necesario y esté cuidadosamente aislado
108
+ - Usa `NavigationDelegate.onNavigationRequest` para interceptar y validar las peticiones de navegación
109
+
110
+ ```dart
111
+ // API de webview_flutter v4+ (WebViewController + WebViewWidget)
112
+ final controller = WebViewController()
113
+ ..setJavaScriptMode(JavaScriptMode.disabled) // deshabilitado salvo que se requiera
114
+ ..setNavigationDelegate(
115
+ NavigationDelegate(
116
+ onNavigationRequest: (request) {
117
+ final uri = Uri.tryParse(request.url);
118
+ if (uri == null || uri.host != 'trusted.example.com') {
119
+ return NavigationDecision.prevent;
120
+ }
121
+ return NavigationDecision.navigate;
122
+ },
123
+ ),
124
+ );
125
+
126
+ // En el árbol de widgets:
127
+ WebViewWidget(controller: controller)
128
+ ```
129
+
130
+ ## Ofuscación y seguridad del build
131
+
132
+ - Habilita la ofuscación en builds de release: `flutter build apk --obfuscate --split-debug-info=./debug-info/`
133
+ - Mantén la salida de `--split-debug-info` fuera del control de versiones (se usa solo para simbolizar crashes)
134
+ - Asegúrate de que las reglas de ProGuard/R8 no expongan inadvertidamente clases serializadas
135
+ - Ejecuta `flutter analyze` y resuelve todas las advertencias antes del release
@@ -0,0 +1,215 @@
1
+ ---
2
+ paths:
3
+ - "**/*.dart"
4
+ - "**/pubspec.yaml"
5
+ - "**/analysis_options.yaml"
6
+ ---
7
+ # Testing en Dart/Flutter
8
+
9
+ > Este archivo extiende [common/testing.md](../common/testing.md) con contenido específico de Dart y Flutter.
10
+
11
+ ## Framework de testing
12
+
13
+ - **flutter_test** / **dart:test** — el runner de tests integrado
14
+ - **mockito** (con `@GenerateMocks`) o **mocktail** (sin codegen) para mocks
15
+ - **bloc_test** para tests unitarios de BLoC/Cubit
16
+ - **fake_async** para controlar el tiempo en tests unitarios
17
+ - **integration_test** para tests de extremo a extremo en dispositivo
18
+
19
+ ## Tipos de test
20
+
21
+ | Tipo | Herramienta | Ubicación | Cuándo escribirlo |
22
+ |------|-------------|-----------|-------------------|
23
+ | Unitario | `dart:test` | `test/unit/` | Toda la lógica de dominio, gestores de estado, repositorios |
24
+ | Widget | `flutter_test` | `test/widget/` | Todos los widgets con comportamiento significativo |
25
+ | Golden | `flutter_test` | `test/golden/` | Componentes de UI críticos para el diseño |
26
+ | Integración | `integration_test` | `integration_test/` | Flujos de usuario críticos en dispositivo real/emulador |
27
+
28
+ ## Tests unitarios: gestores de estado
29
+
30
+ ### BLoC con `bloc_test`
31
+
32
+ ```dart
33
+ group('CartBloc', () {
34
+ late CartBloc bloc;
35
+ late MockCartRepository repository;
36
+
37
+ setUp(() {
38
+ repository = MockCartRepository();
39
+ bloc = CartBloc(repository);
40
+ });
41
+
42
+ tearDown(() => bloc.close());
43
+
44
+ blocTest<CartBloc, CartState>(
45
+ 'emite los ítems actualizados cuando llega CartItemAdded',
46
+ build: () => bloc,
47
+ act: (b) => b.add(CartItemAdded(testItem)),
48
+ expect: () => [CartState(items: [testItem])],
49
+ );
50
+
51
+ blocTest<CartBloc, CartState>(
52
+ 'emite un carrito vacío cuando llega CartCleared',
53
+ seed: () => CartState(items: [testItem]),
54
+ build: () => bloc,
55
+ act: (b) => b.add(CartCleared()),
56
+ expect: () => [const CartState()],
57
+ );
58
+ });
59
+ ```
60
+
61
+ ### Riverpod con `ProviderContainer`
62
+
63
+ ```dart
64
+ test('usersProvider carga los usuarios desde el repositorio', () async {
65
+ final container = ProviderContainer(
66
+ overrides: [userRepositoryProvider.overrideWithValue(FakeUserRepository())],
67
+ );
68
+ addTearDown(container.dispose);
69
+
70
+ final result = await container.read(usersProvider.future);
71
+ expect(result, isNotEmpty);
72
+ });
73
+ ```
74
+
75
+ ## Tests de widgets
76
+
77
+ ```dart
78
+ testWidgets('CartPage muestra el contador de ítems', (tester) async {
79
+ await tester.pumpWidget(
80
+ ProviderScope(
81
+ overrides: [
82
+ cartNotifierProvider.overrideWith(() => FakeCartNotifier([testItem])),
83
+ ],
84
+ child: const MaterialApp(home: CartPage()),
85
+ ),
86
+ );
87
+
88
+ await tester.pump();
89
+ expect(find.text('1'), findsOneWidget);
90
+ expect(find.byType(CartItemTile), findsOneWidget);
91
+ });
92
+
93
+ testWidgets('muestra el estado vacío cuando el carrito está vacío', (tester) async {
94
+ await tester.pumpWidget(
95
+ ProviderScope(
96
+ overrides: [cartNotifierProvider.overrideWith(() => FakeCartNotifier([]))],
97
+ child: const MaterialApp(home: CartPage()),
98
+ ),
99
+ );
100
+
101
+ await tester.pump();
102
+ expect(find.text('Tu carrito está vacío'), findsOneWidget);
103
+ });
104
+ ```
105
+
106
+ ## Fakes antes que mocks
107
+
108
+ Prefiere fakes escritos a mano para dependencias complejas:
109
+
110
+ ```dart
111
+ class FakeUserRepository implements UserRepository {
112
+ final _users = <String, User>{};
113
+ Object? fetchError;
114
+
115
+ @override
116
+ Future<User?> getById(String id) async {
117
+ if (fetchError != null) throw fetchError!;
118
+ return _users[id];
119
+ }
120
+
121
+ @override
122
+ Future<List<User>> getAll() async {
123
+ if (fetchError != null) throw fetchError!;
124
+ return _users.values.toList();
125
+ }
126
+
127
+ @override
128
+ Stream<List<User>> watchAll() => Stream.value(_users.values.toList());
129
+
130
+ @override
131
+ Future<void> save(User user) async {
132
+ _users[user.id] = user;
133
+ }
134
+
135
+ @override
136
+ Future<void> delete(String id) async {
137
+ _users.remove(id);
138
+ }
139
+
140
+ void addUser(User user) => _users[user.id] = user;
141
+ }
142
+ ```
143
+
144
+ ## Testing asíncrono
145
+
146
+ ```dart
147
+ // Usa fake_async para controlar timers y Futures
148
+ test('el debounce se dispara después de 300 ms', () {
149
+ fakeAsync((async) {
150
+ final debouncer = Debouncer(delay: const Duration(milliseconds: 300));
151
+ var callCount = 0;
152
+ debouncer.run(() => callCount++);
153
+ expect(callCount, 0);
154
+ async.elapse(const Duration(milliseconds: 200));
155
+ expect(callCount, 0);
156
+ async.elapse(const Duration(milliseconds: 200));
157
+ expect(callCount, 1);
158
+ });
159
+ });
160
+ ```
161
+
162
+ ## Tests golden
163
+
164
+ ```dart
165
+ testWidgets('test golden de UserCard', (tester) async {
166
+ await tester.pumpWidget(
167
+ MaterialApp(home: UserCard(user: testUser)),
168
+ );
169
+
170
+ await expectLater(
171
+ find.byType(UserCard),
172
+ matchesGoldenFile('goldens/user_card.png'),
173
+ );
174
+ });
175
+ ```
176
+
177
+ Ejecuta `flutter test --update-goldens` cuando haya cambios visuales intencionales.
178
+
179
+ ## Nombres de los tests
180
+
181
+ Usa nombres descriptivos y centrados en el comportamiento:
182
+
183
+ ```dart
184
+ test('devuelve null cuando el usuario no existe', () { ... });
185
+ test('lanza NotFoundException cuando el id es una cadena vacía', () { ... });
186
+ testWidgets('deshabilita el botón de envío mientras el formulario es inválido', (tester) async { ... });
187
+ ```
188
+
189
+ ## Organización de los tests
190
+
191
+ ```
192
+ test/
193
+ ├── unit/
194
+ │ ├── domain/
195
+ │ │ └── usecases/
196
+ │ └── data/
197
+ │ └── repositories/
198
+ ├── widget/
199
+ │ └── presentation/
200
+ │ └── pages/
201
+ └── golden/
202
+ └── widgets/
203
+
204
+ integration_test/
205
+ └── flows/
206
+ ├── login_flow_test.dart
207
+ └── checkout_flow_test.dart
208
+ ```
209
+
210
+ ## Cobertura
211
+
212
+ - Apunta a 80%+ de cobertura de líneas para la lógica de negocio (dominio + gestores de estado)
213
+ - Todas las transiciones de estado deben tener tests: loading → success, loading → error, reintento
214
+ - Ejecuta `flutter test --coverage` e inspecciona `lcov.info` con un reporter de cobertura
215
+ - Los fallos de cobertura deben bloquear el CI cuando estén por debajo del umbral