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,137 @@
1
+ /**
2
+ * Biblioteca de gestión de sesiones para Theus.
3
+ * Provee operaciones CRUD para archivos de sesión guardados como markdown en
4
+ * `<data home>/session-data/` (por defecto ~/.theus/arsenal/session-data/) con
5
+ * compatibilidad de lectura para el directorio heredado `<data home>/sessions/`.
6
+ */
7
+
8
+ /** Metadatos parseados del nombre de archivo de una sesión */
9
+ export interface SessionFilenameMeta {
10
+ /** Nombre de archivo original */
11
+ filename: string;
12
+ /** ID corto extraído del nombre de archivo, o "no-id" para el formato antiguo */
13
+ shortId: string;
14
+ /** Cadena de fecha en formato YYYY-MM-DD */
15
+ date: string;
16
+ /** Objeto Date parseado a partir de la cadena de fecha */
17
+ datetime: Date;
18
+ }
19
+
20
+ /** Metadatos parseados del contenido markdown de la sesión */
21
+ export interface SessionMetadata {
22
+ title: string | null;
23
+ date: string | null;
24
+ started: string | null;
25
+ lastUpdated: string | null;
26
+ project: string | null;
27
+ branch: string | null;
28
+ worktree: string | null;
29
+ completed: string[];
30
+ inProgress: string[];
31
+ notes: string;
32
+ context: string;
33
+ }
34
+
35
+ /** Estadísticas calculadas a partir del contenido de la sesión */
36
+ export interface SessionStats {
37
+ totalItems: number;
38
+ completedItems: number;
39
+ inProgressItems: number;
40
+ lineCount: number;
41
+ hasNotes: boolean;
42
+ hasContext: boolean;
43
+ }
44
+
45
+ /** Objeto de sesión devuelto por getAllSessions y getSessionById */
46
+ export interface Session extends SessionFilenameMeta {
47
+ /** Ruta completa en el sistema de archivos del archivo de sesión */
48
+ sessionPath: string;
49
+ /** Si el archivo tiene algún contenido */
50
+ hasContent?: boolean;
51
+ /** Tamaño del archivo en bytes */
52
+ size: number;
53
+ /** Fecha de última modificación */
54
+ modifiedTime: Date;
55
+ /** Fecha de creación del archivo (cae a ctime en Linux) */
56
+ createdTime: Date;
57
+ /** Contenido markdown de la sesión (solo cuando includeContent=true) */
58
+ content?: string | null;
59
+ /** Metadatos parseados (solo cuando includeContent=true) */
60
+ metadata?: SessionMetadata;
61
+ /** Estadísticas de la sesión (solo cuando includeContent=true) */
62
+ stats?: SessionStats;
63
+ }
64
+
65
+ /** Resultado paginado de getAllSessions */
66
+ export interface SessionListResult {
67
+ sessions: Session[];
68
+ total: number;
69
+ offset: number;
70
+ limit: number;
71
+ hasMore: boolean;
72
+ }
73
+
74
+ export interface GetAllSessionsOptions {
75
+ /** Número máximo de sesiones a devolver (por defecto: 50) */
76
+ limit?: number;
77
+ /** Número de sesiones a saltar (por defecto: 0) */
78
+ offset?: number;
79
+ /** Filtrar por fecha en formato YYYY-MM-DD */
80
+ date?: string | null;
81
+ /** Buscar en el ID corto */
82
+ search?: string | null;
83
+ }
84
+
85
+ /**
86
+ * Parsea el nombre de archivo de una sesión para extraer la fecha y el ID corto.
87
+ * @returns Metadatos parseados, o null si el nombre no coincide con el patrón esperado
88
+ */
89
+ export function parseSessionFilename(filename: string): SessionFilenameMeta | null;
90
+
91
+ /** Obtiene la ruta completa en el sistema de archivos para un nombre de archivo de sesión */
92
+ export function getSessionPath(filename: string): string;
93
+
94
+ /**
95
+ * Lee el contenido markdown de la sesión desde disco.
96
+ * @returns Cadena de contenido, o null si el archivo no existe
97
+ */
98
+ export function getSessionContent(sessionPath: string): string | null;
99
+
100
+ /** Parsea los metadatos de la sesión a partir del contenido markdown */
101
+ export function parseSessionMetadata(content: string | null): SessionMetadata;
102
+
103
+ /**
104
+ * Calcula estadísticas de una sesión.
105
+ * Acepta una ruta de archivo (absoluta, terminada en .tmp) o una cadena de
106
+ * contenido pre-leída. Admite rutas Unix (/ruta/a/session.tmp) y Windows
107
+ * (C:\ruta\a\session.tmp).
108
+ */
109
+ export function getSessionStats(sessionPathOrContent: string): SessionStats;
110
+
111
+ /** Obtiene el título de un archivo de sesión, o "Sesión sin título" si no tiene */
112
+ export function getSessionTitle(sessionPath: string): string;
113
+
114
+ /** Obtiene el tamaño del archivo en formato legible (p. ej. "1.2 KB") */
115
+ export function getSessionSize(sessionPath: string): string;
116
+
117
+ /** Obtiene todas las sesiones con filtrado y paginación opcionales */
118
+ export function getAllSessions(options?: GetAllSessionsOptions): SessionListResult;
119
+
120
+ /**
121
+ * Busca una sesión por ID corto o nombre de archivo.
122
+ * @param sessionId - Prefijo del ID corto, nombre de archivo completo o nombre sin .tmp
123
+ * @param includeContent - Si se debe leer y parsear el contenido de la sesión
124
+ */
125
+ export function getSessionById(sessionId: string, includeContent?: boolean): Session | null;
126
+
127
+ /** Escribe contenido markdown en un archivo de sesión */
128
+ export function writeSessionContent(sessionPath: string, content: string): boolean;
129
+
130
+ /** Anexa contenido a un archivo de sesión existente */
131
+ export function appendSessionContent(sessionPath: string, content: string): boolean;
132
+
133
+ /** Elimina un archivo de sesión */
134
+ export function deleteSession(sessionPath: string): boolean;
135
+
136
+ /** Verifica si un archivo de sesión existe y es un archivo regular */
137
+ export function sessionExists(sessionPath: string): boolean;
@@ -0,0 +1,555 @@
1
+ /**
2
+ * Biblioteca de gestión de sesiones para Theus
3
+ * Provee las operaciones CRUD centrales para listar, cargar y administrar sesiones.
4
+ *
5
+ * Las sesiones se guardan como archivos markdown en `<data home>/session-data/`
6
+ * (por defecto `~/.theus/arsenal/session-data/`; THEUS_AGENT_DATA_HOME la
7
+ * el motor lo define), con compatibilidad de lectura para el directorio
8
+ * heredado `<data home>/sessions/`:
9
+ * - YYYY-MM-DD-session.tmp (formato antiguo)
10
+ * - YYYY-MM-DD-<id-corto>-session.tmp (formato nuevo)
11
+ *
12
+ * Nota: estas sesiones son los resúmenes markdown del arsenal (guardar/reanudar
13
+ * sesión), no las transcripciones nativas de Theus, que viven en
14
+ * `~/.theus/projects/<dir-escapado>/<session_id>.jsonl`.
15
+ */
16
+
17
+ const fs = require('fs');
18
+ const path = require('path');
19
+
20
+ const {
21
+ getSessionsDir,
22
+ getSessionSearchDirs,
23
+ readFile,
24
+ log
25
+ } = require('./utils');
26
+
27
+ // Patrón del nombre de archivo de sesión: YYYY-MM-DD-[id-de-sesion]-session.tmp
28
+ // El id de sesión es opcional (formato antiguo) y puede incluir letras, dígitos,
29
+ // guiones bajos y guiones, pero no puede empezar con guion.
30
+ // Coincide con: "2026-02-01-session.tmp", "2026-02-01-a1b2c3d4-session.tmp",
31
+ // "2026-02-01-frontend-worktree-1-session.tmp" y
32
+ // "2026-02-01-ChezMoi_2-session.tmp"
33
+ const SESSION_FILENAME_REGEX = /^(\d{4}-\d{2}-\d{2})(?:-([a-zA-Z0-9_][a-zA-Z0-9_-]*))?-session\.tmp$/;
34
+
35
+ /**
36
+ * Resuelve la fecha de creación de un archivo, prefiriendo birthtime pero
37
+ * cayendo a ctime cuando birthtime no está disponible. Algunos sistemas de
38
+ * archivos (p. ej. overlayfs en contenedores) reportan birthtime como epoch 0;
39
+ * un objeto Date siempre es truthy, así que `birthtime || ctime` nunca haría
40
+ * el fallback. Se compara en milisegundos en su lugar.
41
+ * @param {import('fs').Stats} stats
42
+ * @returns {Date}
43
+ */
44
+ function resolveCreatedTime(stats) {
45
+ return stats.birthtimeMs > 0 ? stats.birthtime : stats.ctime;
46
+ }
47
+
48
+ /**
49
+ * Parsea el nombre de archivo de una sesión para extraer sus metadatos
50
+ * @param {string} filename - Nombre de archivo de sesión (p. ej. "2026-01-17-abc123-session.tmp" o "2026-01-17-session.tmp")
51
+ * @returns {object|null} Metadatos parseados o null si es inválido
52
+ */
53
+ function parseSessionFilename(filename) {
54
+ if (!filename || typeof filename !== 'string') return null;
55
+ const match = filename.match(SESSION_FILENAME_REGEX);
56
+ if (!match) return null;
57
+
58
+ const dateStr = match[1];
59
+
60
+ // Validar que los componentes de la fecha sean válidos en el calendario (no solo el formato)
61
+ const [year, month, day] = dateStr.split('-').map(Number);
62
+ if (month < 1 || month > 12 || day < 1 || day > 31) return null;
63
+ // Rechazar fechas imposibles como 31 de febrero o 31 de abril — el constructor
64
+ // de Date desborda los días inválidos (p. ej. 31 feb → 3 mar), así que se
65
+ // verifica que el mes haga el viaje de ida y vuelta
66
+ const d = new Date(year, month - 1, day);
67
+ if (d.getMonth() !== month - 1 || d.getDate() !== day) return null;
68
+
69
+ // match[2] es undefined para el formato antiguo (sin ID)
70
+ const shortId = match[2] || 'no-id';
71
+
72
+ return {
73
+ filename,
74
+ shortId,
75
+ date: dateStr,
76
+ // Usar el constructor en hora local (consistente con la validación anterior)
77
+ // new Date(dateStr) interpreta YYYY-MM-DD como medianoche UTC, que se
78
+ // muestra como el día anterior en zonas horarias con desfase UTC negativo
79
+ datetime: new Date(year, month - 1, day)
80
+ };
81
+ }
82
+
83
+ /**
84
+ * Obtiene la ruta completa a un archivo de sesión
85
+ * @param {string} filename - Nombre de archivo de sesión
86
+ * @returns {string} Ruta completa al archivo de sesión
87
+ */
88
+ function getSessionPath(filename) {
89
+ return path.join(getSessionsDir(), filename);
90
+ }
91
+
92
+ function getSessionCandidates(options = {}) {
93
+ const {
94
+ date = null,
95
+ search = null
96
+ } = options;
97
+
98
+ const candidates = [];
99
+
100
+ for (const sessionsDir of getSessionSearchDirs()) {
101
+ if (!fs.existsSync(sessionsDir)) {
102
+ continue;
103
+ }
104
+
105
+ let entries;
106
+ try {
107
+ entries = fs.readdirSync(sessionsDir, { withFileTypes: true });
108
+ } catch (error) {
109
+ log(`[SessionManager] Error al leer el directorio de sesiones ${sessionsDir}: ${error.message}`);
110
+ continue;
111
+ }
112
+
113
+ for (const entry of entries) {
114
+ if (!entry.isFile() || !entry.name.endsWith('.tmp')) continue;
115
+
116
+ const filename = entry.name;
117
+ const metadata = parseSessionFilename(filename);
118
+
119
+ if (!metadata) continue;
120
+ if (date && metadata.date !== date) continue;
121
+ if (search && !metadata.shortId.includes(search)) continue;
122
+
123
+ const sessionPath = path.join(sessionsDir, filename);
124
+
125
+ let stats;
126
+ try {
127
+ stats = fs.statSync(sessionPath);
128
+ } catch (error) {
129
+ log(`[SessionManager] Error al consultar la sesión ${sessionPath}: ${error.message}`);
130
+ continue;
131
+ }
132
+
133
+ candidates.push({
134
+ ...metadata,
135
+ sessionPath,
136
+ hasContent: stats.size > 0,
137
+ size: stats.size,
138
+ modifiedTime: stats.mtime,
139
+ createdTime: resolveCreatedTime(stats)
140
+ });
141
+ }
142
+ }
143
+
144
+ const deduped = [];
145
+ const seenFilenames = new Set();
146
+
147
+ for (const session of candidates) {
148
+ if (seenFilenames.has(session.filename)) {
149
+ continue;
150
+ }
151
+ seenFilenames.add(session.filename);
152
+ deduped.push(session);
153
+ }
154
+
155
+ deduped.sort((a, b) => b.modifiedTime - a.modifiedTime);
156
+ return deduped;
157
+ }
158
+
159
+ function buildSessionRecord(sessionPath, metadata) {
160
+ let stats;
161
+ try {
162
+ stats = fs.statSync(sessionPath);
163
+ } catch (error) {
164
+ log(`[SessionManager] Error al consultar la sesión ${sessionPath}: ${error.message}`);
165
+ return null;
166
+ }
167
+
168
+ return {
169
+ ...metadata,
170
+ sessionPath,
171
+ hasContent: stats.size > 0,
172
+ size: stats.size,
173
+ modifiedTime: stats.mtime,
174
+ createdTime: resolveCreatedTime(stats)
175
+ };
176
+ }
177
+
178
+ function sessionMatchesId(metadata, normalizedSessionId) {
179
+ const filename = metadata.filename;
180
+ const shortIdMatch = metadata.shortId !== 'no-id' && metadata.shortId.startsWith(normalizedSessionId);
181
+ const filenameMatch = filename === normalizedSessionId || filename === `${normalizedSessionId}.tmp`;
182
+ const noIdMatch = metadata.shortId === 'no-id' && filename === `${normalizedSessionId}-session.tmp`;
183
+
184
+ return shortIdMatch || filenameMatch || noIdMatch;
185
+ }
186
+
187
+ function getMatchingSessionCandidates(normalizedSessionId) {
188
+ const matches = [];
189
+ const seenFilenames = new Set();
190
+
191
+ for (const sessionsDir of getSessionSearchDirs()) {
192
+ if (!fs.existsSync(sessionsDir)) {
193
+ continue;
194
+ }
195
+
196
+ let entries;
197
+ try {
198
+ entries = fs.readdirSync(sessionsDir, { withFileTypes: true });
199
+ } catch (error) {
200
+ log(`[SessionManager] Error al leer el directorio de sesiones ${sessionsDir}: ${error.message}`);
201
+ continue;
202
+ }
203
+
204
+ for (const entry of entries) {
205
+ if (!entry.isFile() || !entry.name.endsWith('.tmp')) continue;
206
+
207
+ const metadata = parseSessionFilename(entry.name);
208
+ if (!metadata || !sessionMatchesId(metadata, normalizedSessionId)) {
209
+ continue;
210
+ }
211
+
212
+ if (seenFilenames.has(metadata.filename)) {
213
+ continue;
214
+ }
215
+
216
+ const sessionPath = path.join(sessionsDir, metadata.filename);
217
+ const sessionRecord = buildSessionRecord(sessionPath, metadata);
218
+ if (!sessionRecord) {
219
+ continue;
220
+ }
221
+
222
+ seenFilenames.add(metadata.filename);
223
+ matches.push(sessionRecord);
224
+ }
225
+ }
226
+
227
+ matches.sort((a, b) => b.modifiedTime - a.modifiedTime);
228
+ return matches;
229
+ }
230
+
231
+ /**
232
+ * Lee y parsea el contenido markdown de una sesión
233
+ * @param {string} sessionPath - Ruta completa al archivo de sesión
234
+ * @returns {string|null} Contenido de la sesión o null si no se encuentra
235
+ */
236
+ function getSessionContent(sessionPath) {
237
+ return readFile(sessionPath);
238
+ }
239
+
240
+ /**
241
+ * Parsea los metadatos de una sesión a partir de su contenido markdown.
242
+ * Los marcadores se aceptan tanto en español como en inglés para mantener
243
+ * compatibilidad con sesiones guardadas en cualquiera de los dos idiomas.
244
+ * @param {string} content - Contenido markdown de la sesión
245
+ * @returns {object} Metadatos parseados
246
+ */
247
+ function parseSessionMetadata(content) {
248
+ const metadata = {
249
+ title: null,
250
+ date: null,
251
+ started: null,
252
+ lastUpdated: null,
253
+ project: null,
254
+ branch: null,
255
+ worktree: null,
256
+ completed: [],
257
+ inProgress: [],
258
+ notes: '',
259
+ context: ''
260
+ };
261
+
262
+ if (!content) return metadata;
263
+
264
+ // Extraer el título del primer encabezado
265
+ const titleMatch = content.match(/^#\s+(.+)$/m);
266
+ if (titleMatch) {
267
+ metadata.title = titleMatch[1].trim();
268
+ }
269
+
270
+ // Extraer la fecha
271
+ const dateMatch = content.match(/\*\*(?:Fecha|Date):\*\*\s*(\d{4}-\d{2}-\d{2})/);
272
+ if (dateMatch) {
273
+ metadata.date = dateMatch[1];
274
+ }
275
+
276
+ // Extraer la hora de inicio
277
+ const startedMatch = content.match(/\*\*(?:Inicio|Started):\*\*\s*([\d:]+)/);
278
+ if (startedMatch) {
279
+ metadata.started = startedMatch[1];
280
+ }
281
+
282
+ // Extraer la última actualización
283
+ const updatedMatch = content.match(/\*\*(?:Última actualización|Last Updated):\*\*\s*([\d:]+)/);
284
+ if (updatedMatch) {
285
+ metadata.lastUpdated = updatedMatch[1];
286
+ }
287
+
288
+ // Extraer metadatos del panel de control
289
+ const projectMatch = content.match(/\*\*(?:Proyecto|Project):\*\*\s*(.+)$/m);
290
+ if (projectMatch) {
291
+ metadata.project = projectMatch[1].trim();
292
+ }
293
+
294
+ const branchMatch = content.match(/\*\*(?:Rama|Branch):\*\*\s*(.+)$/m);
295
+ if (branchMatch) {
296
+ metadata.branch = branchMatch[1].trim();
297
+ }
298
+
299
+ const worktreeMatch = content.match(/\*\*Worktree:\*\*\s*(.+)$/m);
300
+ if (worktreeMatch) {
301
+ metadata.worktree = worktreeMatch[1].trim();
302
+ }
303
+
304
+ // Extraer los ítems completados
305
+ const completedSection = content.match(/### (?:Completado|Completed)\s*\n([\s\S]*?)(?=###|\n\n|$)/);
306
+ if (completedSection) {
307
+ const items = completedSection[1].match(/- \[x\]\s*(.+)/g);
308
+ if (items) {
309
+ metadata.completed = items.map(item => item.replace(/- \[x\]\s*/, '').trim());
310
+ }
311
+ }
312
+
313
+ // Extraer los ítems en progreso
314
+ const progressSection = content.match(/### (?:En progreso|In Progress)\s*\n([\s\S]*?)(?=###|\n\n|$)/);
315
+ if (progressSection) {
316
+ const items = progressSection[1].match(/- \[ \]\s*(.+)/g);
317
+ if (items) {
318
+ metadata.inProgress = items.map(item => item.replace(/- \[ \]\s*/, '').trim());
319
+ }
320
+ }
321
+
322
+ // Extraer las notas
323
+ const notesSection = content.match(/### (?:Notas para la próxima sesión|Notes for Next Session)\s*\n([\s\S]*?)(?=###|\n\n|$)/);
324
+ if (notesSection) {
325
+ metadata.notes = notesSection[1].trim();
326
+ }
327
+
328
+ // Extraer el contexto a cargar
329
+ const contextSection = content.match(/### (?:Contexto a cargar|Context to Load)\s*\n```\n([\s\S]*?)```/);
330
+ if (contextSection) {
331
+ metadata.context = contextSection[1].trim();
332
+ }
333
+
334
+ return metadata;
335
+ }
336
+
337
+ /**
338
+ * Calcula estadísticas de una sesión
339
+ * @param {string} sessionPathOrContent - Ruta completa al archivo de sesión, O
340
+ * la cadena de contenido ya leída (para evitar lecturas de disco redundantes
341
+ * cuando el llamador ya tiene el contenido cargado).
342
+ * @returns {object} Objeto de estadísticas
343
+ */
344
+ function getSessionStats(sessionPathOrContent) {
345
+ // Acepta una cadena de contenido pre-leída para evitar lecturas redundantes.
346
+ // Si el argumento parece una ruta de archivo (sin saltos de línea, termina
347
+ // en .tmp, empieza con / en Unix o con letra de unidad en Windows), se lee
348
+ // del disco. En caso contrario se trata como contenido.
349
+ const looksLikePath = typeof sessionPathOrContent === 'string' &&
350
+ !sessionPathOrContent.includes('\n') &&
351
+ sessionPathOrContent.endsWith('.tmp') &&
352
+ (sessionPathOrContent.startsWith('/') || /^[A-Za-z]:[/\\]/.test(sessionPathOrContent));
353
+ const content = looksLikePath
354
+ ? getSessionContent(sessionPathOrContent)
355
+ : sessionPathOrContent;
356
+
357
+ const metadata = parseSessionMetadata(content);
358
+
359
+ return {
360
+ totalItems: metadata.completed.length + metadata.inProgress.length,
361
+ completedItems: metadata.completed.length,
362
+ inProgressItems: metadata.inProgress.length,
363
+ lineCount: content ? content.split('\n').length : 0,
364
+ hasNotes: !!metadata.notes,
365
+ hasContext: !!metadata.context
366
+ };
367
+ }
368
+
369
+ /**
370
+ * Obtiene todas las sesiones con filtrado y paginación opcionales
371
+ * @param {object} options - Objeto de opciones
372
+ * @param {number} options.limit - Número máximo de sesiones a devolver
373
+ * @param {number} options.offset - Número de sesiones a saltar
374
+ * @param {string} options.date - Filtrar por fecha (formato YYYY-MM-DD)
375
+ * @param {string} options.search - Buscar en el ID corto
376
+ * @returns {object} Objeto con el arreglo de sesiones e información de paginación
377
+ */
378
+ function getAllSessions(options = {}) {
379
+ const {
380
+ limit: rawLimit = 50,
381
+ offset: rawOffset = 0,
382
+ date = null,
383
+ search = null
384
+ } = options;
385
+
386
+ // Acotar offset y limit a enteros no negativos seguros.
387
+ // Sin esto, un offset negativo hace que slice() cuente desde el final,
388
+ // y los valores NaN hacen que slice() devuelva vacío o resultados inesperados.
389
+ // Nota: no se puede usar `|| valorPorDefecto` porque 0 es falsy — usar isNaN.
390
+ const offsetNum = Number(rawOffset);
391
+ const offset = Number.isNaN(offsetNum) ? 0 : Math.max(0, Math.floor(offsetNum));
392
+ const limitNum = Number(rawLimit);
393
+ const limit = Number.isNaN(limitNum) ? 50 : Math.max(1, Math.floor(limitNum));
394
+
395
+ const sessions = getSessionCandidates({ date, search });
396
+
397
+ if (sessions.length === 0) {
398
+ return { sessions: [], total: 0, offset, limit, hasMore: false };
399
+ }
400
+
401
+ // Aplicar paginación
402
+ const paginatedSessions = sessions.slice(offset, offset + limit);
403
+
404
+ return {
405
+ sessions: paginatedSessions,
406
+ total: sessions.length,
407
+ offset,
408
+ limit,
409
+ hasMore: offset + limit < sessions.length
410
+ };
411
+ }
412
+
413
+ /**
414
+ * Obtiene una sesión individual por ID (ID corto o ruta completa)
415
+ * @param {string} sessionId - ID corto o nombre de archivo de la sesión
416
+ * @param {boolean} includeContent - Incluir el contenido de la sesión
417
+ * @returns {object|null} Objeto de sesión o null si no se encuentra
418
+ */
419
+ function getSessionById(sessionId, includeContent = false) {
420
+ if (typeof sessionId !== 'string') {
421
+ return null;
422
+ }
423
+
424
+ const normalizedSessionId = sessionId.trim();
425
+ if (!normalizedSessionId) {
426
+ return null;
427
+ }
428
+
429
+ const sessions = getMatchingSessionCandidates(normalizedSessionId);
430
+
431
+ for (const session of sessions) {
432
+ const sessionRecord = { ...session };
433
+
434
+ if (includeContent) {
435
+ sessionRecord.content = getSessionContent(sessionRecord.sessionPath);
436
+ sessionRecord.metadata = parseSessionMetadata(sessionRecord.content);
437
+ // Pasar el contenido pre-leído para evitar una lectura de disco redundante
438
+ sessionRecord.stats = getSessionStats(sessionRecord.content || '');
439
+ }
440
+
441
+ return sessionRecord;
442
+ }
443
+
444
+ return null;
445
+ }
446
+
447
+ /**
448
+ * Obtiene el título de la sesión a partir de su contenido
449
+ * @param {string} sessionPath - Ruta completa al archivo de sesión
450
+ * @returns {string} Título o texto por defecto
451
+ */
452
+ function getSessionTitle(sessionPath) {
453
+ const content = getSessionContent(sessionPath);
454
+ const metadata = parseSessionMetadata(content);
455
+
456
+ return metadata.title || 'Sesión sin título';
457
+ }
458
+
459
+ /**
460
+ * Formatea el tamaño de la sesión en un formato legible
461
+ * @param {string} sessionPath - Ruta completa al archivo de sesión
462
+ * @returns {string} Tamaño formateado (p. ej. "1.2 KB")
463
+ */
464
+ function getSessionSize(sessionPath) {
465
+ let stats;
466
+ try {
467
+ stats = fs.statSync(sessionPath);
468
+ } catch {
469
+ return '0 B';
470
+ }
471
+ const size = stats.size;
472
+
473
+ if (size < 1024) return `${size} B`;
474
+ if (size < 1024 * 1024) return `${(size / 1024).toFixed(1)} KB`;
475
+ return `${(size / (1024 * 1024)).toFixed(1)} MB`;
476
+ }
477
+
478
+ /**
479
+ * Escribe el contenido de una sesión en un archivo
480
+ * @param {string} sessionPath - Ruta completa al archivo de sesión
481
+ * @param {string} content - Contenido markdown a escribir
482
+ * @returns {boolean} Estado de éxito
483
+ */
484
+ function writeSessionContent(sessionPath, content) {
485
+ try {
486
+ fs.writeFileSync(sessionPath, content, 'utf8');
487
+ return true;
488
+ } catch (err) {
489
+ log(`[SessionManager] Error al escribir la sesión: ${err.message}`);
490
+ return false;
491
+ }
492
+ }
493
+
494
+ /**
495
+ * Anexa contenido a una sesión
496
+ * @param {string} sessionPath - Ruta completa al archivo de sesión
497
+ * @param {string} content - Contenido a anexar
498
+ * @returns {boolean} Estado de éxito
499
+ */
500
+ function appendSessionContent(sessionPath, content) {
501
+ try {
502
+ fs.appendFileSync(sessionPath, content, 'utf8');
503
+ return true;
504
+ } catch (err) {
505
+ log(`[SessionManager] Error al anexar a la sesión: ${err.message}`);
506
+ return false;
507
+ }
508
+ }
509
+
510
+ /**
511
+ * Elimina un archivo de sesión
512
+ * @param {string} sessionPath - Ruta completa al archivo de sesión
513
+ * @returns {boolean} Estado de éxito
514
+ */
515
+ function deleteSession(sessionPath) {
516
+ try {
517
+ if (fs.existsSync(sessionPath)) {
518
+ fs.unlinkSync(sessionPath);
519
+ return true;
520
+ }
521
+ return false;
522
+ } catch (err) {
523
+ log(`[SessionManager] Error al eliminar la sesión: ${err.message}`);
524
+ return false;
525
+ }
526
+ }
527
+
528
+ /**
529
+ * Verifica si una sesión existe
530
+ * @param {string} sessionPath - Ruta completa al archivo de sesión
531
+ * @returns {boolean} true si la sesión existe
532
+ */
533
+ function sessionExists(sessionPath) {
534
+ try {
535
+ return fs.statSync(sessionPath).isFile();
536
+ } catch {
537
+ return false;
538
+ }
539
+ }
540
+
541
+ module.exports = {
542
+ parseSessionFilename,
543
+ getSessionPath,
544
+ getSessionContent,
545
+ parseSessionMetadata,
546
+ getSessionStats,
547
+ getSessionTitle,
548
+ getSessionSize,
549
+ getAllSessions,
550
+ getSessionById,
551
+ writeSessionContent,
552
+ appendSessionContent,
553
+ deleteSession,
554
+ sessionExists
555
+ };