@hoilab/ada-cli 0.84.21 → 0.85.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1337) hide show
  1. package/CHANGELOG.md +49 -2
  2. package/README.es.md +174 -0
  3. package/README.md +203 -658
  4. package/dist/ada-publico.d.ts +35 -0
  5. package/dist/ada-publico.d.ts.map +1 -0
  6. package/dist/ada-publico.js +40 -0
  7. package/dist/ada-publico.js.map +1 -0
  8. package/dist/cli/args.d.ts +3 -0
  9. package/dist/cli/args.d.ts.map +1 -1
  10. package/dist/cli/args.js +11 -0
  11. package/dist/cli/args.js.map +1 -1
  12. package/dist/cli/audit-command.d.ts +15 -0
  13. package/dist/cli/audit-command.d.ts.map +1 -0
  14. package/dist/cli/audit-command.js +280 -0
  15. package/dist/cli/audit-command.js.map +1 -0
  16. package/dist/cli/banco-command.d.ts +15 -0
  17. package/dist/cli/banco-command.d.ts.map +1 -0
  18. package/dist/cli/banco-command.js +213 -0
  19. package/dist/cli/banco-command.js.map +1 -0
  20. package/dist/cli/cleanse-command.d.ts +11 -0
  21. package/dist/cli/cleanse-command.d.ts.map +1 -0
  22. package/dist/cli/cleanse-command.js +101 -0
  23. package/dist/cli/cleanse-command.js.map +1 -0
  24. package/dist/cli/commit-command.d.ts +31 -0
  25. package/dist/cli/commit-command.d.ts.map +1 -0
  26. package/dist/cli/commit-command.js +158 -0
  27. package/dist/cli/commit-command.js.map +1 -0
  28. package/dist/cli/computer-command.d.ts +12 -0
  29. package/dist/cli/computer-command.d.ts.map +1 -0
  30. package/dist/cli/computer-command.js +141 -0
  31. package/dist/cli/computer-command.js.map +1 -0
  32. package/dist/cli/discover-command.d.ts +18 -0
  33. package/dist/cli/discover-command.d.ts.map +1 -0
  34. package/dist/cli/discover-command.js +108 -0
  35. package/dist/cli/discover-command.js.map +1 -0
  36. package/dist/cli/file-processor.d.ts.map +1 -1
  37. package/dist/cli/file-processor.js +2 -1
  38. package/dist/cli/file-processor.js.map +1 -1
  39. package/dist/cli/hashline-command.d.ts +11 -0
  40. package/dist/cli/hashline-command.d.ts.map +1 -0
  41. package/dist/cli/hashline-command.js +106 -0
  42. package/dist/cli/hashline-command.js.map +1 -0
  43. package/dist/cli/home-screen.d.ts.map +1 -1
  44. package/dist/cli/home-screen.js +2 -2
  45. package/dist/cli/home-screen.js.map +1 -1
  46. package/dist/cli/import-command.d.ts +35 -0
  47. package/dist/cli/import-command.d.ts.map +1 -0
  48. package/dist/cli/import-command.js +164 -0
  49. package/dist/cli/import-command.js.map +1 -0
  50. package/dist/cli/politica-command.d.ts +20 -0
  51. package/dist/cli/politica-command.d.ts.map +1 -0
  52. package/dist/cli/politica-command.js +93 -0
  53. package/dist/cli/politica-command.js.map +1 -0
  54. package/dist/cli/refine-command.d.ts +18 -0
  55. package/dist/cli/refine-command.d.ts.map +1 -0
  56. package/dist/cli/refine-command.js +101 -0
  57. package/dist/cli/refine-command.js.map +1 -0
  58. package/dist/cli/review-command.d.ts +24 -0
  59. package/dist/cli/review-command.d.ts.map +1 -0
  60. package/dist/cli/review-command.js +168 -0
  61. package/dist/cli/review-command.js.map +1 -0
  62. package/dist/cli/schedule-command.d.ts +17 -0
  63. package/dist/cli/schedule-command.d.ts.map +1 -0
  64. package/dist/cli/schedule-command.js +117 -0
  65. package/dist/cli/schedule-command.js.map +1 -0
  66. package/dist/cli/serve-command.d.ts +72 -0
  67. package/dist/cli/serve-command.d.ts.map +1 -0
  68. package/dist/cli/serve-command.js +568 -0
  69. package/dist/cli/serve-command.js.map +1 -0
  70. package/dist/cli/startup-ui.d.ts.map +1 -1
  71. package/dist/cli/startup-ui.js +9 -3
  72. package/dist/cli/startup-ui.js.map +1 -1
  73. package/dist/cli/telegram-command.d.ts +18 -0
  74. package/dist/cli/telegram-command.d.ts.map +1 -0
  75. package/dist/cli/telegram-command.js +137 -0
  76. package/dist/cli/telegram-command.js.map +1 -0
  77. package/dist/cli/telemetria-command.d.ts +22 -0
  78. package/dist/cli/telemetria-command.d.ts.map +1 -0
  79. package/dist/cli/telemetria-command.js +127 -0
  80. package/dist/cli/telemetria-command.js.map +1 -0
  81. package/dist/cli/undo-command.d.ts +9 -0
  82. package/dist/cli/undo-command.d.ts.map +1 -0
  83. package/dist/cli/undo-command.js +56 -0
  84. package/dist/cli/undo-command.js.map +1 -0
  85. package/dist/cli/usage-command.d.ts +10 -0
  86. package/dist/cli/usage-command.d.ts.map +1 -0
  87. package/dist/cli/usage-command.js +209 -0
  88. package/dist/cli/usage-command.js.map +1 -0
  89. package/dist/cli/wiki-command.d.ts +9 -0
  90. package/dist/cli/wiki-command.d.ts.map +1 -0
  91. package/dist/cli/wiki-command.js +76 -0
  92. package/dist/cli/wiki-command.js.map +1 -0
  93. package/dist/cli.d.ts +6 -0
  94. package/dist/cli.d.ts.map +1 -1
  95. package/dist/cli.js +10 -11
  96. package/dist/cli.js.map +1 -1
  97. package/dist/config.d.ts +1 -1
  98. package/dist/config.d.ts.map +1 -1
  99. package/dist/config.js +3 -2
  100. package/dist/config.js.map +1 -1
  101. package/dist/core/ada.d.ts +58 -0
  102. package/dist/core/ada.d.ts.map +1 -0
  103. package/dist/core/ada.js +61 -0
  104. package/dist/core/ada.js.map +1 -0
  105. package/dist/core/advisor/guarda.d.ts +66 -0
  106. package/dist/core/advisor/guarda.d.ts.map +1 -0
  107. package/dist/core/advisor/guarda.js +191 -0
  108. package/dist/core/advisor/guarda.js.map +1 -0
  109. package/dist/core/advisor/runtime.d.ts +66 -0
  110. package/dist/core/advisor/runtime.d.ts.map +1 -0
  111. package/dist/core/advisor/runtime.js +121 -0
  112. package/dist/core/advisor/runtime.js.map +1 -0
  113. package/dist/core/advisor/sesion.d.ts +109 -0
  114. package/dist/core/advisor/sesion.d.ts.map +1 -0
  115. package/dist/core/advisor/sesion.js +139 -0
  116. package/dist/core/advisor/sesion.js.map +1 -0
  117. package/dist/core/agent-session.d.ts +85 -7
  118. package/dist/core/agent-session.d.ts.map +1 -1
  119. package/dist/core/agent-session.js +862 -78
  120. package/dist/core/agent-session.js.map +1 -1
  121. package/dist/core/agents/loader.d.ts +77 -0
  122. package/dist/core/agents/loader.d.ts.map +1 -0
  123. package/dist/core/agents/loader.js +154 -0
  124. package/dist/core/agents/loader.js.map +1 -0
  125. package/dist/core/aprobacion/generados.d.ts +37 -0
  126. package/dist/core/aprobacion/generados.d.ts.map +1 -0
  127. package/dist/core/aprobacion/generados.js +85 -0
  128. package/dist/core/aprobacion/generados.js.map +1 -0
  129. package/dist/core/aprobacion/politica-de-maquina.d.ts +90 -0
  130. package/dist/core/aprobacion/politica-de-maquina.d.ts.map +1 -0
  131. package/dist/core/aprobacion/politica-de-maquina.js +212 -0
  132. package/dist/core/aprobacion/politica-de-maquina.js.map +1 -0
  133. package/dist/core/aprobacion/politica.d.ts +90 -0
  134. package/dist/core/aprobacion/politica.d.ts.map +1 -0
  135. package/dist/core/aprobacion/politica.js +375 -0
  136. package/dist/core/aprobacion/politica.js.map +1 -0
  137. package/dist/core/arranque/atajos.d.ts +46 -0
  138. package/dist/core/arranque/atajos.d.ts.map +1 -0
  139. package/dist/core/arranque/atajos.js +113 -0
  140. package/dist/core/arranque/atajos.js.map +1 -0
  141. package/dist/core/audit/exportacion.d.ts +54 -0
  142. package/dist/core/audit/exportacion.d.ts.map +1 -0
  143. package/dist/core/audit/exportacion.js +265 -0
  144. package/dist/core/audit/exportacion.js.map +1 -0
  145. package/dist/core/audit/libro.d.ts +318 -0
  146. package/dist/core/audit/libro.d.ts.map +1 -0
  147. package/dist/core/audit/libro.js +508 -0
  148. package/dist/core/audit/libro.js.map +1 -0
  149. package/dist/core/audit/registro-sesion.d.ts +78 -0
  150. package/dist/core/audit/registro-sesion.d.ts.map +1 -0
  151. package/dist/core/audit/registro-sesion.js +202 -0
  152. package/dist/core/audit/registro-sesion.js.map +1 -0
  153. package/dist/core/audit/retencion.d.ts +82 -0
  154. package/dist/core/audit/retencion.d.ts.map +1 -0
  155. package/dist/core/audit/retencion.js +152 -0
  156. package/dist/core/audit/retencion.js.map +1 -0
  157. package/dist/core/audit/rutas.d.ts +23 -0
  158. package/dist/core/audit/rutas.d.ts.map +1 -0
  159. package/dist/core/audit/rutas.js +23 -0
  160. package/dist/core/audit/rutas.js.map +1 -0
  161. package/dist/core/auth-storage.d.ts +0 -3
  162. package/dist/core/auth-storage.d.ts.map +1 -1
  163. package/dist/core/auth-storage.js +21 -8
  164. package/dist/core/auth-storage.js.map +1 -1
  165. package/dist/core/banco/almacenamiento.d.ts +18 -0
  166. package/dist/core/banco/almacenamiento.d.ts.map +1 -0
  167. package/dist/core/banco/almacenamiento.js +50 -0
  168. package/dist/core/banco/almacenamiento.js.map +1 -0
  169. package/dist/core/banco/analisis.d.ts +37 -0
  170. package/dist/core/banco/analisis.d.ts.map +1 -0
  171. package/dist/core/banco/analisis.js +164 -0
  172. package/dist/core/banco/analisis.js.map +1 -0
  173. package/dist/core/banco/bloques.d.ts +39 -0
  174. package/dist/core/banco/bloques.d.ts.map +1 -0
  175. package/dist/core/banco/bloques.js +84 -0
  176. package/dist/core/banco/bloques.js.map +1 -0
  177. package/dist/core/banco/cargas.d.ts +84 -0
  178. package/dist/core/banco/cargas.d.ts.map +1 -0
  179. package/dist/core/banco/cargas.js +520 -0
  180. package/dist/core/banco/cargas.js.map +1 -0
  181. package/dist/core/banco/comparar.d.ts +29 -0
  182. package/dist/core/banco/comparar.d.ts.map +1 -0
  183. package/dist/core/banco/comparar.js +28 -0
  184. package/dist/core/banco/comparar.js.map +1 -0
  185. package/dist/core/banco/ejecutar.d.ts +44 -0
  186. package/dist/core/banco/ejecutar.d.ts.map +1 -0
  187. package/dist/core/banco/ejecutar.js +183 -0
  188. package/dist/core/banco/ejecutar.js.map +1 -0
  189. package/dist/core/banco/generar.d.ts +24 -0
  190. package/dist/core/banco/generar.d.ts.map +1 -0
  191. package/dist/core/banco/generar.js +159 -0
  192. package/dist/core/banco/generar.js.map +1 -0
  193. package/dist/core/banco/mutaciones.d.ts +25 -0
  194. package/dist/core/banco/mutaciones.d.ts.map +1 -0
  195. package/dist/core/banco/mutaciones.js +215 -0
  196. package/dist/core/banco/mutaciones.js.map +1 -0
  197. package/dist/core/banco/tipos.d.ts +121 -0
  198. package/dist/core/banco/tipos.d.ts.map +1 -0
  199. package/dist/core/banco/tipos.js +16 -0
  200. package/dist/core/banco/tipos.js.map +1 -0
  201. package/dist/core/blobs/almacen.d.ts +81 -0
  202. package/dist/core/blobs/almacen.d.ts.map +1 -0
  203. package/dist/core/blobs/almacen.js +198 -0
  204. package/dist/core/blobs/almacen.js.map +1 -0
  205. package/dist/core/blobs/broker.d.ts +103 -0
  206. package/dist/core/blobs/broker.d.ts.map +1 -0
  207. package/dist/core/blobs/broker.js +204 -0
  208. package/dist/core/blobs/broker.js.map +1 -0
  209. package/dist/core/blobs/index.d.ts +70 -0
  210. package/dist/core/blobs/index.d.ts.map +1 -0
  211. package/dist/core/blobs/index.js +232 -0
  212. package/dist/core/blobs/index.js.map +1 -0
  213. package/dist/core/blobs/payload.d.ts +55 -0
  214. package/dist/core/blobs/payload.d.ts.map +1 -0
  215. package/dist/core/blobs/payload.js +255 -0
  216. package/dist/core/blobs/payload.js.map +1 -0
  217. package/dist/core/blobs/proveedor.d.ts +85 -0
  218. package/dist/core/blobs/proveedor.d.ts.map +1 -0
  219. package/dist/core/blobs/proveedor.js +196 -0
  220. package/dist/core/blobs/proveedor.js.map +1 -0
  221. package/dist/core/browser/cdp.d.ts +41 -0
  222. package/dist/core/browser/cdp.d.ts.map +1 -0
  223. package/dist/core/browser/cdp.js +119 -0
  224. package/dist/core/browser/cdp.js.map +1 -0
  225. package/dist/core/browser/politica.d.ts +51 -0
  226. package/dist/core/browser/politica.d.ts.map +1 -0
  227. package/dist/core/browser/politica.js +123 -0
  228. package/dist/core/browser/politica.js.map +1 -0
  229. package/dist/core/browser/sesion.d.ts +52 -0
  230. package/dist/core/browser/sesion.d.ts.map +1 -0
  231. package/dist/core/browser/sesion.js +176 -0
  232. package/dist/core/browser/sesion.js.map +1 -0
  233. package/dist/core/browser/tools.d.ts +16 -0
  234. package/dist/core/browser/tools.d.ts.map +1 -0
  235. package/dist/core/browser/tools.js +279 -0
  236. package/dist/core/browser/tools.js.map +1 -0
  237. package/dist/core/commit/diff.d.ts +56 -0
  238. package/dist/core/commit/diff.d.ts.map +1 -0
  239. package/dist/core/commit/diff.js +145 -0
  240. package/dist/core/commit/diff.js.map +1 -0
  241. package/dist/core/commit/mensaje.d.ts +80 -0
  242. package/dist/core/commit/mensaje.d.ts.map +1 -0
  243. package/dist/core/commit/mensaje.js +207 -0
  244. package/dist/core/commit/mensaje.js.map +1 -0
  245. package/dist/core/compactar/index.d.ts +52 -0
  246. package/dist/core/compactar/index.d.ts.map +1 -0
  247. package/dist/core/compactar/index.js +91 -0
  248. package/dist/core/compactar/index.js.map +1 -0
  249. package/dist/core/compactar/registro-denso.d.ts +160 -0
  250. package/dist/core/compactar/registro-denso.d.ts.map +1 -0
  251. package/dist/core/compactar/registro-denso.js +620 -0
  252. package/dist/core/compactar/registro-denso.js.map +1 -0
  253. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  254. package/dist/core/compaction/branch-summarization.js +3 -0
  255. package/dist/core/compaction/branch-summarization.js.map +1 -1
  256. package/dist/core/compaction/compaction.d.ts +4 -3
  257. package/dist/core/compaction/compaction.d.ts.map +1 -1
  258. package/dist/core/compaction/compaction.js +41 -32
  259. package/dist/core/compaction/compaction.js.map +1 -1
  260. package/dist/core/computer/captura.d.ts +35 -0
  261. package/dist/core/computer/captura.d.ts.map +1 -0
  262. package/dist/core/computer/captura.js +140 -0
  263. package/dist/core/computer/captura.js.map +1 -0
  264. package/dist/core/computer/driver.d.ts +130 -0
  265. package/dist/core/computer/driver.d.ts.map +1 -0
  266. package/dist/core/computer/driver.js +206 -0
  267. package/dist/core/computer/driver.js.map +1 -0
  268. package/dist/core/computer/motor/actions.d.ts +109 -0
  269. package/dist/core/computer/motor/actions.d.ts.map +1 -0
  270. package/dist/core/computer/motor/actions.js +157 -0
  271. package/dist/core/computer/motor/actions.js.map +1 -0
  272. package/dist/core/computer/motor/bridge.d.ts +232 -0
  273. package/dist/core/computer/motor/bridge.d.ts.map +1 -0
  274. package/dist/core/computer/motor/bridge.js +2335 -0
  275. package/dist/core/computer/motor/bridge.js.map +1 -0
  276. package/dist/core/computer/motor/cdp.d.ts +107 -0
  277. package/dist/core/computer/motor/cdp.d.ts.map +1 -0
  278. package/dist/core/computer/motor/cdp.js +659 -0
  279. package/dist/core/computer/motor/cdp.js.map +1 -0
  280. package/dist/core/computer/motor/config.d.ts +23 -0
  281. package/dist/core/computer/motor/config.d.ts.map +1 -0
  282. package/dist/core/computer/motor/config.js +100 -0
  283. package/dist/core/computer/motor/config.js.map +1 -0
  284. package/dist/core/computer/motor/contract.d.ts +81 -0
  285. package/dist/core/computer/motor/contract.d.ts.map +1 -0
  286. package/dist/core/computer/motor/contract.js +14 -0
  287. package/dist/core/computer/motor/contract.js.map +1 -0
  288. package/dist/core/computer/motor/note.d.ts +37 -0
  289. package/dist/core/computer/motor/note.d.ts.map +1 -0
  290. package/dist/core/computer/motor/note.js +162 -0
  291. package/dist/core/computer/motor/note.js.map +1 -0
  292. package/dist/core/computer/motor/outline.d.ts +155 -0
  293. package/dist/core/computer/motor/outline.d.ts.map +1 -0
  294. package/dist/core/computer/motor/outline.js +590 -0
  295. package/dist/core/computer/motor/outline.js.map +1 -0
  296. package/dist/core/computer/motor/output.d.ts +18 -0
  297. package/dist/core/computer/motor/output.d.ts.map +1 -0
  298. package/dist/core/computer/motor/output.js +148 -0
  299. package/dist/core/computer/motor/output.js.map +1 -0
  300. package/dist/core/computer/motor/permissions.d.ts +41 -0
  301. package/dist/core/computer/motor/permissions.d.ts.map +1 -0
  302. package/dist/core/computer/motor/permissions.js +51 -0
  303. package/dist/core/computer/motor/permissions.js.map +1 -0
  304. package/dist/core/computer/motor/platform/architecture.d.ts +5 -0
  305. package/dist/core/computer/motor/platform/architecture.d.ts.map +1 -0
  306. package/dist/core/computer/motor/platform/architecture.js +21 -0
  307. package/dist/core/computer/motor/platform/architecture.js.map +1 -0
  308. package/dist/core/computer/motor/platform/coerce.d.ts +4 -0
  309. package/dist/core/computer/motor/platform/coerce.d.ts.map +1 -0
  310. package/dist/core/computer/motor/platform/coerce.js +17 -0
  311. package/dist/core/computer/motor/platform/coerce.js.map +1 -0
  312. package/dist/core/computer/motor/platform/index.d.ts +4 -0
  313. package/dist/core/computer/motor/platform/index.d.ts.map +1 -0
  314. package/dist/core/computer/motor/platform/index.js +79 -0
  315. package/dist/core/computer/motor/platform/index.js.map +1 -0
  316. package/dist/core/computer/motor/platform/linux/backend.d.ts +3 -0
  317. package/dist/core/computer/motor/platform/linux/backend.d.ts.map +1 -0
  318. package/dist/core/computer/motor/platform/linux/backend.js +173 -0
  319. package/dist/core/computer/motor/platform/linux/backend.js.map +1 -0
  320. package/dist/core/computer/motor/platform/linux/helper.d.ts +29 -0
  321. package/dist/core/computer/motor/platform/linux/helper.d.ts.map +1 -0
  322. package/dist/core/computer/motor/platform/linux/helper.js +261 -0
  323. package/dist/core/computer/motor/platform/linux/helper.js.map +1 -0
  324. package/dist/core/computer/motor/platform/macos/backend.d.ts +3 -0
  325. package/dist/core/computer/motor/platform/macos/backend.d.ts.map +1 -0
  326. package/dist/core/computer/motor/platform/macos/backend.js +124 -0
  327. package/dist/core/computer/motor/platform/macos/backend.js.map +1 -0
  328. package/dist/core/computer/motor/platform/macos/browser.d.ts +7 -0
  329. package/dist/core/computer/motor/platform/macos/browser.d.ts.map +1 -0
  330. package/dist/core/computer/motor/platform/macos/browser.js +101 -0
  331. package/dist/core/computer/motor/platform/macos/browser.js.map +1 -0
  332. package/dist/core/computer/motor/platform/macos/helper-path.mjs +34 -0
  333. package/dist/core/computer/motor/platform/macos/helper.d.ts +32 -0
  334. package/dist/core/computer/motor/platform/macos/helper.d.ts.map +1 -0
  335. package/dist/core/computer/motor/platform/macos/helper.js +277 -0
  336. package/dist/core/computer/motor/platform/macos/helper.js.map +1 -0
  337. package/dist/core/computer/motor/platform/macos/permissions.d.ts +4 -0
  338. package/dist/core/computer/motor/platform/macos/permissions.d.ts.map +1 -0
  339. package/dist/core/computer/motor/platform/macos/permissions.js +118 -0
  340. package/dist/core/computer/motor/platform/macos/permissions.js.map +1 -0
  341. package/dist/core/computer/motor/platform/types.d.ts +263 -0
  342. package/dist/core/computer/motor/platform/types.d.ts.map +1 -0
  343. package/dist/core/computer/motor/platform/types.js +2 -0
  344. package/dist/core/computer/motor/platform/types.js.map +1 -0
  345. package/dist/core/computer/motor/platform/windows/backend.d.ts +3 -0
  346. package/dist/core/computer/motor/platform/windows/backend.d.ts.map +1 -0
  347. package/dist/core/computer/motor/platform/windows/backend.js +163 -0
  348. package/dist/core/computer/motor/platform/windows/backend.js.map +1 -0
  349. package/dist/core/computer/motor/platform/windows/helper.d.ts +18 -0
  350. package/dist/core/computer/motor/platform/windows/helper.d.ts.map +1 -0
  351. package/dist/core/computer/motor/platform/windows/helper.js +174 -0
  352. package/dist/core/computer/motor/platform/windows/helper.js.map +1 -0
  353. package/dist/core/computer/motor/root-selection.d.ts +6 -0
  354. package/dist/core/computer/motor/root-selection.d.ts.map +1 -0
  355. package/dist/core/computer/motor/root-selection.js +28 -0
  356. package/dist/core/computer/motor/root-selection.js.map +1 -0
  357. package/dist/core/computer/motor/runtime.d.ts +50 -0
  358. package/dist/core/computer/motor/runtime.d.ts.map +1 -0
  359. package/dist/core/computer/motor/runtime.js +119 -0
  360. package/dist/core/computer/motor/runtime.js.map +1 -0
  361. package/dist/core/computer/motor/state.d.ts +68 -0
  362. package/dist/core/computer/motor/state.d.ts.map +1 -0
  363. package/dist/core/computer/motor/state.js +100 -0
  364. package/dist/core/computer/motor/state.js.map +1 -0
  365. package/dist/core/computer/motor/view.d.ts +6 -0
  366. package/dist/core/computer/motor/view.d.ts.map +1 -0
  367. package/dist/core/computer/motor/view.js +185 -0
  368. package/dist/core/computer/motor/view.js.map +1 -0
  369. package/dist/core/computer/motor-ada.d.ts +159 -0
  370. package/dist/core/computer/motor-ada.d.ts.map +1 -0
  371. package/dist/core/computer/motor-ada.js +412 -0
  372. package/dist/core/computer/motor-ada.js.map +1 -0
  373. package/dist/core/computer/politica.d.ts +56 -0
  374. package/dist/core/computer/politica.d.ts.map +1 -0
  375. package/dist/core/computer/politica.js +163 -0
  376. package/dist/core/computer/politica.js.map +1 -0
  377. package/dist/core/computer/tools.d.ts +26 -0
  378. package/dist/core/computer/tools.d.ts.map +1 -0
  379. package/dist/core/computer/tools.js +399 -0
  380. package/dist/core/computer/tools.js.map +1 -0
  381. package/dist/core/context-breakdown.d.ts +80 -0
  382. package/dist/core/context-breakdown.d.ts.map +1 -0
  383. package/dist/core/context-breakdown.js +87 -0
  384. package/dist/core/context-breakdown.js.map +1 -0
  385. package/dist/core/credenciales/cliente.d.ts +60 -0
  386. package/dist/core/credenciales/cliente.d.ts.map +1 -0
  387. package/dist/core/credenciales/cliente.js +81 -0
  388. package/dist/core/credenciales/cliente.js.map +1 -0
  389. package/dist/core/credenciales/pool.d.ts +96 -0
  390. package/dist/core/credenciales/pool.d.ts.map +1 -0
  391. package/dist/core/credenciales/pool.js +128 -0
  392. package/dist/core/credenciales/pool.js.map +1 -0
  393. package/dist/core/credenciales/reposo.d.ts +93 -0
  394. package/dist/core/credenciales/reposo.d.ts.map +1 -0
  395. package/dist/core/credenciales/reposo.js +489 -0
  396. package/dist/core/credenciales/reposo.js.map +1 -0
  397. package/dist/core/credenciales/servidor.d.ts +55 -0
  398. package/dist/core/credenciales/servidor.d.ts.map +1 -0
  399. package/dist/core/credenciales/servidor.js +205 -0
  400. package/dist/core/credenciales/servidor.js.map +1 -0
  401. package/dist/core/defaults.d.ts +1 -0
  402. package/dist/core/defaults.d.ts.map +1 -1
  403. package/dist/core/defaults.js +9 -0
  404. package/dist/core/defaults.js.map +1 -1
  405. package/dist/core/descubrimiento/comandos.d.ts +30 -0
  406. package/dist/core/descubrimiento/comandos.d.ts.map +1 -0
  407. package/dist/core/descubrimiento/comandos.js +76 -0
  408. package/dist/core/descubrimiento/comandos.js.map +1 -0
  409. package/dist/core/descubrimiento/mcp.d.ts +42 -0
  410. package/dist/core/descubrimiento/mcp.d.ts.map +1 -0
  411. package/dist/core/descubrimiento/mcp.js +130 -0
  412. package/dist/core/descubrimiento/mcp.js.map +1 -0
  413. package/dist/core/descubrimiento/reglas.d.ts +61 -0
  414. package/dist/core/descubrimiento/reglas.d.ts.map +1 -0
  415. package/dist/core/descubrimiento/reglas.js +134 -0
  416. package/dist/core/descubrimiento/reglas.js.map +1 -0
  417. package/dist/core/descubrimiento/skills.d.ts +57 -0
  418. package/dist/core/descubrimiento/skills.d.ts.map +1 -0
  419. package/dist/core/descubrimiento/skills.js +113 -0
  420. package/dist/core/descubrimiento/skills.js.map +1 -0
  421. package/dist/core/dificultad/clasificador.d.ts +133 -0
  422. package/dist/core/dificultad/clasificador.d.ts.map +1 -0
  423. package/dist/core/dificultad/clasificador.js +288 -0
  424. package/dist/core/dificultad/clasificador.js.map +1 -0
  425. package/dist/core/edicion/diario.d.ts +37 -0
  426. package/dist/core/edicion/diario.d.ts.map +1 -0
  427. package/dist/core/edicion/diario.js +51 -0
  428. package/dist/core/edicion/diario.js.map +1 -0
  429. package/dist/core/edicion/hashline.d.ts +71 -0
  430. package/dist/core/edicion/hashline.d.ts.map +1 -0
  431. package/dist/core/edicion/hashline.js +111 -0
  432. package/dist/core/edicion/hashline.js.map +1 -0
  433. package/dist/core/edicion/hueco.d.ts +64 -0
  434. package/dist/core/edicion/hueco.d.ts.map +1 -0
  435. package/dist/core/edicion/hueco.js +162 -0
  436. package/dist/core/edicion/hueco.js.map +1 -0
  437. package/dist/core/edicion/limpiar-carga.d.ts +39 -0
  438. package/dist/core/edicion/limpiar-carga.d.ts.map +1 -0
  439. package/dist/core/edicion/limpiar-carga.js +121 -0
  440. package/dist/core/edicion/limpiar-carga.js.map +1 -0
  441. package/dist/core/edicion/observador.d.ts +80 -0
  442. package/dist/core/edicion/observador.d.ts.map +1 -0
  443. package/dist/core/edicion/observador.js +183 -0
  444. package/dist/core/edicion/observador.js.map +1 -0
  445. package/dist/core/edicion/parecido.d.ts +53 -0
  446. package/dist/core/edicion/parecido.d.ts.map +1 -0
  447. package/dist/core/edicion/parecido.js +145 -0
  448. package/dist/core/edicion/parecido.js.map +1 -0
  449. package/dist/core/edicion/parseo.d.ts +58 -0
  450. package/dist/core/edicion/parseo.d.ts.map +1 -0
  451. package/dist/core/edicion/parseo.js +124 -0
  452. package/dist/core/edicion/parseo.js.map +1 -0
  453. package/dist/core/edicion/reparacion.d.ts +67 -0
  454. package/dist/core/edicion/reparacion.d.ts.map +1 -0
  455. package/dist/core/edicion/reparacion.js +202 -0
  456. package/dist/core/edicion/reparacion.js.map +1 -0
  457. package/dist/core/edicion/sangria.d.ts +121 -0
  458. package/dist/core/edicion/sangria.d.ts.map +1 -0
  459. package/dist/core/edicion/sangria.js +341 -0
  460. package/dist/core/edicion/sangria.js.map +1 -0
  461. package/dist/core/edicion/tipos.d.ts +58 -0
  462. package/dist/core/edicion/tipos.d.ts.map +1 -0
  463. package/dist/core/edicion/tipos.js +160 -0
  464. package/dist/core/edicion/tipos.js.map +1 -0
  465. package/dist/core/engine-personality.d.ts +12 -0
  466. package/dist/core/engine-personality.d.ts.map +1 -0
  467. package/dist/core/engine-personality.js +53 -0
  468. package/dist/core/engine-personality.js.map +1 -0
  469. package/dist/core/errores/proveedor.d.ts +53 -0
  470. package/dist/core/errores/proveedor.d.ts.map +1 -0
  471. package/dist/core/errores/proveedor.js +191 -0
  472. package/dist/core/errores/proveedor.js.map +1 -0
  473. package/dist/core/estructural/buscar.d.ts +61 -0
  474. package/dist/core/estructural/buscar.d.ts.map +1 -0
  475. package/dist/core/estructural/buscar.js +261 -0
  476. package/dist/core/estructural/buscar.js.map +1 -0
  477. package/dist/core/estructural/editar.d.ts +36 -0
  478. package/dist/core/estructural/editar.d.ts.map +1 -0
  479. package/dist/core/estructural/editar.js +123 -0
  480. package/dist/core/estructural/editar.js.map +1 -0
  481. package/dist/core/estructural/tools.d.ts +11 -0
  482. package/dist/core/estructural/tools.d.ts.map +1 -0
  483. package/dist/core/estructural/tools.js +100 -0
  484. package/dist/core/estructural/tools.js.map +1 -0
  485. package/dist/core/experimental.d.ts.map +1 -1
  486. package/dist/core/experimental.js +10 -1
  487. package/dist/core/experimental.js.map +1 -1
  488. package/dist/core/extensiones/suplantacion.d.ts +49 -0
  489. package/dist/core/extensiones/suplantacion.d.ts.map +1 -0
  490. package/dist/core/extensiones/suplantacion.js +61 -0
  491. package/dist/core/extensiones/suplantacion.js.map +1 -0
  492. package/dist/core/extensiones/vigilancia.d.ts +54 -0
  493. package/dist/core/extensiones/vigilancia.d.ts.map +1 -0
  494. package/dist/core/extensiones/vigilancia.js +217 -0
  495. package/dist/core/extensiones/vigilancia.js.map +1 -0
  496. package/dist/core/extensions/index.d.ts +1 -1
  497. package/dist/core/extensions/index.d.ts.map +1 -1
  498. package/dist/core/extensions/index.js.map +1 -1
  499. package/dist/core/extensions/loader.d.ts.map +1 -1
  500. package/dist/core/extensions/loader.js +21 -6
  501. package/dist/core/extensions/loader.js.map +1 -1
  502. package/dist/core/extensions/types.d.ts +23 -4
  503. package/dist/core/extensions/types.d.ts.map +1 -1
  504. package/dist/core/extensions/types.js.map +1 -1
  505. package/dist/core/harness/fuentes-de-contexto.d.ts +29 -0
  506. package/dist/core/harness/fuentes-de-contexto.d.ts.map +1 -0
  507. package/dist/core/harness/fuentes-de-contexto.js +44 -0
  508. package/dist/core/harness/fuentes-de-contexto.js.map +1 -0
  509. package/dist/core/harness/refine.d.ts +40 -0
  510. package/dist/core/harness/refine.d.ts.map +1 -0
  511. package/dist/core/harness/refine.js +109 -0
  512. package/dist/core/harness/refine.js.map +1 -0
  513. package/dist/core/harness/store.d.ts +75 -0
  514. package/dist/core/harness/store.d.ts.map +1 -0
  515. package/dist/core/harness/store.js +149 -0
  516. package/dist/core/harness/store.js.map +1 -0
  517. package/dist/core/hooks/contract.d.ts +85 -0
  518. package/dist/core/hooks/contract.d.ts.map +1 -0
  519. package/dist/core/hooks/contract.js +140 -0
  520. package/dist/core/hooks/contract.js.map +1 -0
  521. package/dist/core/hooks/runner.d.ts +42 -0
  522. package/dist/core/hooks/runner.d.ts.map +1 -0
  523. package/dist/core/hooks/runner.js +85 -0
  524. package/dist/core/hooks/runner.js.map +1 -0
  525. package/dist/core/hooks/session-hooks.d.ts +62 -0
  526. package/dist/core/hooks/session-hooks.d.ts.map +1 -0
  527. package/dist/core/hooks/session-hooks.js +84 -0
  528. package/dist/core/hooks/session-hooks.js.map +1 -0
  529. package/dist/core/importar/formatos.d.ts +69 -0
  530. package/dist/core/importar/formatos.d.ts.map +1 -0
  531. package/dist/core/importar/formatos.js +235 -0
  532. package/dist/core/importar/formatos.js.map +1 -0
  533. package/dist/core/interactivo/deteccion.d.ts +44 -0
  534. package/dist/core/interactivo/deteccion.d.ts.map +1 -0
  535. package/dist/core/interactivo/deteccion.js +82 -0
  536. package/dist/core/interactivo/deteccion.js.map +1 -0
  537. package/dist/core/interactivo/sesion.d.ts +50 -0
  538. package/dist/core/interactivo/sesion.d.ts.map +1 -0
  539. package/dist/core/interactivo/sesion.js +156 -0
  540. package/dist/core/interactivo/sesion.js.map +1 -0
  541. package/dist/core/interactivo/tools.d.ts +21 -0
  542. package/dist/core/interactivo/tools.d.ts.map +1 -0
  543. package/dist/core/interactivo/tools.js +122 -0
  544. package/dist/core/interactivo/tools.js.map +1 -0
  545. package/dist/core/keybindings.d.ts.map +1 -1
  546. package/dist/core/keybindings.js +2 -1
  547. package/dist/core/keybindings.js.map +1 -1
  548. package/dist/core/lectura/mapa.d.ts +70 -0
  549. package/dist/core/lectura/mapa.d.ts.map +1 -0
  550. package/dist/core/lectura/mapa.js +177 -0
  551. package/dist/core/lectura/mapa.js.map +1 -0
  552. package/dist/core/lectura/pdf.d.ts +49 -0
  553. package/dist/core/lectura/pdf.d.ts.map +1 -0
  554. package/dist/core/lectura/pdf.js +337 -0
  555. package/dist/core/lectura/pdf.js.map +1 -0
  556. package/dist/core/limpieza/comprobadores.d.ts +28 -0
  557. package/dist/core/limpieza/comprobadores.d.ts.map +1 -0
  558. package/dist/core/limpieza/comprobadores.js +311 -0
  559. package/dist/core/limpieza/comprobadores.js.map +1 -0
  560. package/dist/core/limpieza/parseo.d.ts +19 -0
  561. package/dist/core/limpieza/parseo.d.ts.map +1 -0
  562. package/dist/core/limpieza/parseo.js +124 -0
  563. package/dist/core/limpieza/parseo.js.map +1 -0
  564. package/dist/core/limpieza/reparacion.d.ts +77 -0
  565. package/dist/core/limpieza/reparacion.d.ts.map +1 -0
  566. package/dist/core/limpieza/reparacion.js +254 -0
  567. package/dist/core/limpieza/reparacion.js.map +1 -0
  568. package/dist/core/limpieza/tipos.d.ts +56 -0
  569. package/dist/core/limpieza/tipos.d.ts.map +1 -0
  570. package/dist/core/limpieza/tipos.js +9 -0
  571. package/dist/core/limpieza/tipos.js.map +1 -0
  572. package/dist/core/lsp/cliente.d.ts +52 -0
  573. package/dist/core/lsp/cliente.d.ts.map +1 -0
  574. package/dist/core/lsp/cliente.js +232 -0
  575. package/dist/core/lsp/cliente.js.map +1 -0
  576. package/dist/core/lsp/descubrimiento.d.ts +62 -0
  577. package/dist/core/lsp/descubrimiento.d.ts.map +1 -0
  578. package/dist/core/lsp/descubrimiento.js +152 -0
  579. package/dist/core/lsp/descubrimiento.js.map +1 -0
  580. package/dist/core/lsp/ediciones.d.ts +59 -0
  581. package/dist/core/lsp/ediciones.d.ts.map +1 -0
  582. package/dist/core/lsp/ediciones.js +89 -0
  583. package/dist/core/lsp/ediciones.js.map +1 -0
  584. package/dist/core/lsp/extension.d.ts +28 -0
  585. package/dist/core/lsp/extension.d.ts.map +1 -0
  586. package/dist/core/lsp/extension.js +34 -0
  587. package/dist/core/lsp/extension.js.map +1 -0
  588. package/dist/core/lsp/tools.d.ts +45 -0
  589. package/dist/core/lsp/tools.d.ts.map +1 -0
  590. package/dist/core/lsp/tools.js +265 -0
  591. package/dist/core/lsp/tools.js.map +1 -0
  592. package/dist/core/mcp/client.d.ts +60 -0
  593. package/dist/core/mcp/client.d.ts.map +1 -0
  594. package/dist/core/mcp/client.js +139 -0
  595. package/dist/core/mcp/client.js.map +1 -0
  596. package/dist/core/mcp/manager.d.ts +86 -0
  597. package/dist/core/mcp/manager.d.ts.map +1 -0
  598. package/dist/core/mcp/manager.js +124 -0
  599. package/dist/core/mcp/manager.js.map +1 -0
  600. package/dist/core/mcp/tools.d.ts +15 -0
  601. package/dist/core/mcp/tools.d.ts.map +1 -0
  602. package/dist/core/mcp/tools.js +84 -0
  603. package/dist/core/mcp/tools.js.map +1 -0
  604. package/dist/core/memory-engine/audit-export.d.ts +56 -0
  605. package/dist/core/memory-engine/audit-export.d.ts.map +1 -0
  606. package/dist/core/memory-engine/audit-export.js +100 -0
  607. package/dist/core/memory-engine/audit-export.js.map +1 -0
  608. package/dist/core/memory-engine/audit-indice.d.ts +153 -0
  609. package/dist/core/memory-engine/audit-indice.d.ts.map +1 -0
  610. package/dist/core/memory-engine/audit-indice.js +271 -0
  611. package/dist/core/memory-engine/audit-indice.js.map +1 -0
  612. package/dist/core/memory-engine/audit.d.ts +18 -6
  613. package/dist/core/memory-engine/audit.d.ts.map +1 -1
  614. package/dist/core/memory-engine/audit.js +32 -50
  615. package/dist/core/memory-engine/audit.js.map +1 -1
  616. package/dist/core/memory-engine/engine.d.ts +21 -4
  617. package/dist/core/memory-engine/engine.d.ts.map +1 -1
  618. package/dist/core/memory-engine/engine.js +219 -55
  619. package/dist/core/memory-engine/engine.js.map +1 -1
  620. package/dist/core/memory-engine/inverted-index.d.ts.map +1 -1
  621. package/dist/core/memory-engine/inverted-index.js +67 -10
  622. package/dist/core/memory-engine/inverted-index.js.map +1 -1
  623. package/dist/core/memory-engine/keychain.d.ts.map +1 -1
  624. package/dist/core/memory-engine/keychain.js +1 -6
  625. package/dist/core/memory-engine/keychain.js.map +1 -1
  626. package/dist/core/memory-engine/observation-store.d.ts +0 -1
  627. package/dist/core/memory-engine/observation-store.d.ts.map +1 -1
  628. package/dist/core/memory-engine/observation-store.js +40 -12
  629. package/dist/core/memory-engine/observation-store.js.map +1 -1
  630. package/dist/core/memory-engine/refinements.d.ts +51 -0
  631. package/dist/core/memory-engine/refinements.d.ts.map +1 -0
  632. package/dist/core/memory-engine/refinements.js +99 -0
  633. package/dist/core/memory-engine/refinements.js.map +1 -0
  634. package/dist/core/memory-engine/scanner.d.ts.map +1 -1
  635. package/dist/core/memory-engine/scanner.js +25 -5
  636. package/dist/core/memory-engine/scanner.js.map +1 -1
  637. package/dist/core/memory-engine/security.d.ts.map +1 -1
  638. package/dist/core/memory-engine/security.js +131 -23
  639. package/dist/core/memory-engine/security.js.map +1 -1
  640. package/dist/core/memory-engine/session-indexer.d.ts.map +1 -1
  641. package/dist/core/memory-engine/session-indexer.js +8 -2
  642. package/dist/core/memory-engine/session-indexer.js.map +1 -1
  643. package/dist/core/memory-engine/tools.d.ts +2 -2
  644. package/dist/core/memory-engine/tools.d.ts.map +1 -1
  645. package/dist/core/memory-engine/tools.js +41 -8
  646. package/dist/core/memory-engine/tools.js.map +1 -1
  647. package/dist/core/memory-engine/types.d.ts +2 -0
  648. package/dist/core/memory-engine/types.d.ts.map +1 -1
  649. package/dist/core/memory-engine/types.js.map +1 -1
  650. package/dist/core/memory-engine/vault.d.ts.map +1 -1
  651. package/dist/core/memory-engine/vault.js +2 -2
  652. package/dist/core/memory-engine/vault.js.map +1 -1
  653. package/dist/core/model-config.d.ts.map +1 -1
  654. package/dist/core/model-config.js +2 -1
  655. package/dist/core/model-config.js.map +1 -1
  656. package/dist/core/model-resolver.d.ts +1 -0
  657. package/dist/core/model-resolver.d.ts.map +1 -1
  658. package/dist/core/model-resolver.js +19 -7
  659. package/dist/core/model-resolver.js.map +1 -1
  660. package/dist/core/models-store.d.ts.map +1 -1
  661. package/dist/core/models-store.js +2 -1
  662. package/dist/core/models-store.js.map +1 -1
  663. package/dist/core/muestreo-restringido.d.ts +49 -0
  664. package/dist/core/muestreo-restringido.d.ts.map +1 -0
  665. package/dist/core/muestreo-restringido.js +65 -0
  666. package/dist/core/muestreo-restringido.js.map +1 -0
  667. package/dist/core/orphan-process-journal.d.ts +48 -0
  668. package/dist/core/orphan-process-journal.d.ts.map +1 -0
  669. package/dist/core/orphan-process-journal.js +116 -0
  670. package/dist/core/orphan-process-journal.js.map +1 -0
  671. package/dist/core/package-manager.d.ts.map +1 -1
  672. package/dist/core/package-manager.js +11 -6
  673. package/dist/core/package-manager.js.map +1 -1
  674. package/dist/core/pi-manifest.d.ts.map +1 -1
  675. package/dist/core/pi-manifest.js +2 -1
  676. package/dist/core/pi-manifest.js.map +1 -1
  677. package/dist/core/privacidad/categorias-especiales.d.ts +186 -0
  678. package/dist/core/privacidad/categorias-especiales.d.ts.map +1 -0
  679. package/dist/core/privacidad/categorias-especiales.js +745 -0
  680. package/dist/core/privacidad/categorias-especiales.js.map +1 -0
  681. package/dist/core/privacidad/tapar.d.ts +48 -0
  682. package/dist/core/privacidad/tapar.d.ts.map +1 -0
  683. package/dist/core/privacidad/tapar.js +66 -0
  684. package/dist/core/privacidad/tapar.js.map +1 -0
  685. package/dist/core/prompt-cache/diagnostics.d.ts +33 -0
  686. package/dist/core/prompt-cache/diagnostics.d.ts.map +1 -0
  687. package/dist/core/prompt-cache/diagnostics.js +100 -0
  688. package/dist/core/prompt-cache/diagnostics.js.map +1 -0
  689. package/dist/core/prompt-cache/index.d.ts +33 -0
  690. package/dist/core/prompt-cache/index.d.ts.map +1 -0
  691. package/dist/core/prompt-cache/index.js +189 -0
  692. package/dist/core/prompt-cache/index.js.map +1 -0
  693. package/dist/core/prompt-cache/payload.d.ts +58 -0
  694. package/dist/core/prompt-cache/payload.d.ts.map +1 -0
  695. package/dist/core/prompt-cache/payload.js +122 -0
  696. package/dist/core/prompt-cache/payload.js.map +1 -0
  697. package/dist/core/prompt-cache/stabilize.d.ts +65 -0
  698. package/dist/core/prompt-cache/stabilize.d.ts.map +1 -0
  699. package/dist/core/prompt-cache/stabilize.js +137 -0
  700. package/dist/core/prompt-cache/stabilize.js.map +1 -0
  701. package/dist/core/prompt-cache/stats.d.ts +55 -0
  702. package/dist/core/prompt-cache/stats.d.ts.map +1 -0
  703. package/dist/core/prompt-cache/stats.js +158 -0
  704. package/dist/core/prompt-cache/stats.js.map +1 -0
  705. package/dist/core/prompt-eleccion.d.ts +38 -0
  706. package/dist/core/prompt-eleccion.d.ts.map +1 -0
  707. package/dist/core/prompt-eleccion.js +46 -0
  708. package/dist/core/prompt-eleccion.js.map +1 -0
  709. package/dist/core/prompt-optimizer.d.ts +53 -0
  710. package/dist/core/prompt-optimizer.d.ts.map +1 -0
  711. package/dist/core/prompt-optimizer.js +138 -0
  712. package/dist/core/prompt-optimizer.js.map +1 -0
  713. package/dist/core/prompts/montar.d.ts +75 -0
  714. package/dist/core/prompts/montar.d.ts.map +1 -0
  715. package/dist/core/prompts/montar.js +146 -0
  716. package/dist/core/prompts/montar.js.map +1 -0
  717. package/dist/core/prompts/plantilla.d.ts +54 -0
  718. package/dist/core/prompts/plantilla.d.ts.map +1 -0
  719. package/dist/core/prompts/plantilla.js +153 -0
  720. package/dist/core/prompts/plantilla.js.map +1 -0
  721. package/dist/core/prompts/sistema.md +134 -0
  722. package/dist/core/provider-attribution.d.ts +24 -2
  723. package/dist/core/provider-attribution.d.ts.map +1 -1
  724. package/dist/core/provider-attribution.js +24 -42
  725. package/dist/core/provider-attribution.js.map +1 -1
  726. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  727. package/dist/core/remote-catalog-provider.js +2 -1
  728. package/dist/core/remote-catalog-provider.js.map +1 -1
  729. package/dist/core/remoto/destino.d.ts +38 -0
  730. package/dist/core/remoto/destino.d.ts.map +1 -0
  731. package/dist/core/remoto/destino.js +105 -0
  732. package/dist/core/remoto/destino.js.map +1 -0
  733. package/dist/core/remoto/ejecutor.d.ts +59 -0
  734. package/dist/core/remoto/ejecutor.d.ts.map +1 -0
  735. package/dist/core/remoto/ejecutor.js +225 -0
  736. package/dist/core/remoto/ejecutor.js.map +1 -0
  737. package/dist/core/remoto/ficheros.d.ts +29 -0
  738. package/dist/core/remoto/ficheros.d.ts.map +1 -0
  739. package/dist/core/remoto/ficheros.js +90 -0
  740. package/dist/core/remoto/ficheros.js.map +1 -0
  741. package/dist/core/remoto/registro-extension.d.ts +15 -0
  742. package/dist/core/remoto/registro-extension.d.ts.map +1 -0
  743. package/dist/core/remoto/registro-extension.js +17 -0
  744. package/dist/core/remoto/registro-extension.js.map +1 -0
  745. package/dist/core/remoto/tools.d.ts +28 -0
  746. package/dist/core/remoto/tools.d.ts.map +1 -0
  747. package/dist/core/remoto/tools.js +31 -0
  748. package/dist/core/remoto/tools.js.map +1 -0
  749. package/dist/core/resource-loader.d.ts +58 -0
  750. package/dist/core/resource-loader.d.ts.map +1 -1
  751. package/dist/core/resource-loader.js +326 -8
  752. package/dist/core/resource-loader.js.map +1 -1
  753. package/dist/core/revision/hallazgo.d.ts +51 -0
  754. package/dist/core/revision/hallazgo.d.ts.map +1 -0
  755. package/dist/core/revision/hallazgo.js +73 -0
  756. package/dist/core/revision/hallazgo.js.map +1 -0
  757. package/dist/core/revision/revisor.d.ts +81 -0
  758. package/dist/core/revision/revisor.d.ts.map +1 -0
  759. package/dist/core/revision/revisor.js +132 -0
  760. package/dist/core/revision/revisor.js.map +1 -0
  761. package/dist/core/revision/sarif.d.ts +30 -0
  762. package/dist/core/revision/sarif.d.ts.map +1 -0
  763. package/dist/core/revision/sarif.js +83 -0
  764. package/dist/core/revision/sarif.js.map +1 -0
  765. package/dist/core/scheduler/scheduler.d.ts +87 -0
  766. package/dist/core/scheduler/scheduler.d.ts.map +1 -0
  767. package/dist/core/scheduler/scheduler.js +178 -0
  768. package/dist/core/scheduler/scheduler.js.map +1 -0
  769. package/dist/core/sdk.d.ts +8 -0
  770. package/dist/core/sdk.d.ts.map +1 -1
  771. package/dist/core/sdk.js +11 -1
  772. package/dist/core/sdk.js.map +1 -1
  773. package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts +49 -0
  774. package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts.map +1 -0
  775. package/dist/core/sesion/cerrar-llamadas-abiertas.js +77 -0
  776. package/dist/core/sesion/cerrar-llamadas-abiertas.js.map +1 -0
  777. package/dist/core/session-manager.d.ts.map +1 -1
  778. package/dist/core/session-manager.js +2 -1
  779. package/dist/core/session-manager.js.map +1 -1
  780. package/dist/core/settings-diagnostics.d.ts +9 -0
  781. package/dist/core/settings-diagnostics.d.ts.map +1 -0
  782. package/dist/core/settings-diagnostics.js +21 -0
  783. package/dist/core/settings-diagnostics.js.map +1 -0
  784. package/dist/core/settings-manager.d.ts +156 -0
  785. package/dist/core/settings-manager.d.ts.map +1 -1
  786. package/dist/core/settings-manager.js +255 -10
  787. package/dist/core/settings-manager.js.map +1 -1
  788. package/dist/core/skills.d.ts.map +1 -1
  789. package/dist/core/skills.js +51 -33
  790. package/dist/core/skills.js.map +1 -1
  791. package/dist/core/slash-commands.d.ts.map +1 -1
  792. package/dist/core/slash-commands.js +2 -1
  793. package/dist/core/slash-commands.js.map +1 -1
  794. package/dist/core/system-prompt.d.ts +17 -0
  795. package/dist/core/system-prompt.d.ts.map +1 -1
  796. package/dist/core/system-prompt.js +13 -5
  797. package/dist/core/system-prompt.js.map +1 -1
  798. package/dist/core/telemetria/otlp.d.ts +122 -0
  799. package/dist/core/telemetria/otlp.d.ts.map +1 -0
  800. package/dist/core/telemetria/otlp.js +373 -0
  801. package/dist/core/telemetria/otlp.js.map +1 -0
  802. package/dist/core/tools/coercion-argumentos.d.ts +48 -0
  803. package/dist/core/tools/coercion-argumentos.d.ts.map +1 -0
  804. package/dist/core/tools/coercion-argumentos.js +99 -0
  805. package/dist/core/tools/coercion-argumentos.js.map +1 -0
  806. package/dist/core/tools/edit-diff.d.ts +0 -12
  807. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  808. package/dist/core/tools/edit-diff.js +234 -12
  809. package/dist/core/tools/edit-diff.js.map +1 -1
  810. package/dist/core/tools/edit.d.ts.map +1 -1
  811. package/dist/core/tools/edit.js +28 -5
  812. package/dist/core/tools/edit.js.map +1 -1
  813. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  814. package/dist/core/tools/file-mutation-queue.js +5 -0
  815. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  816. package/dist/core/tools/index.d.ts.map +1 -1
  817. package/dist/core/tools/index.js +2 -2
  818. package/dist/core/tools/index.js.map +1 -1
  819. package/dist/core/tools/json-tolerante.d.ts +30 -0
  820. package/dist/core/tools/json-tolerante.d.ts.map +1 -0
  821. package/dist/core/tools/json-tolerante.js +70 -0
  822. package/dist/core/tools/json-tolerante.js.map +1 -0
  823. package/dist/core/tools/project-memory-tool.d.ts.map +1 -1
  824. package/dist/core/tools/project-memory-tool.js +4 -1
  825. package/dist/core/tools/project-memory-tool.js.map +1 -1
  826. package/dist/core/tools/read.d.ts.map +1 -1
  827. package/dist/core/tools/read.js +17 -0
  828. package/dist/core/tools/read.js.map +1 -1
  829. package/dist/core/tools/tool-definition-wrapper.d.ts +14 -1
  830. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  831. package/dist/core/tools/tool-definition-wrapper.js +17 -1
  832. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  833. package/dist/core/trust-manager.d.ts.map +1 -1
  834. package/dist/core/trust-manager.js +2 -1
  835. package/dist/core/trust-manager.js.map +1 -1
  836. package/dist/core/turno-vacio/detectar.d.ts +38 -0
  837. package/dist/core/turno-vacio/detectar.d.ts.map +1 -0
  838. package/dist/core/turno-vacio/detectar.js +66 -0
  839. package/dist/core/turno-vacio/detectar.js.map +1 -0
  840. package/dist/core/undo/journal.d.ts +57 -0
  841. package/dist/core/undo/journal.d.ts.map +1 -0
  842. package/dist/core/undo/journal.js +178 -0
  843. package/dist/core/undo/journal.js.map +1 -0
  844. package/dist/core/urls-internas/auditoria.d.ts +10 -0
  845. package/dist/core/urls-internas/auditoria.d.ts.map +1 -0
  846. package/dist/core/urls-internas/auditoria.js +42 -0
  847. package/dist/core/urls-internas/auditoria.js.map +1 -0
  848. package/dist/core/urls-internas/boveda.d.ts +13 -0
  849. package/dist/core/urls-internas/boveda.d.ts.map +1 -0
  850. package/dist/core/urls-internas/boveda.js +40 -0
  851. package/dist/core/urls-internas/boveda.js.map +1 -0
  852. package/dist/core/urls-internas/lector.d.ts +30 -0
  853. package/dist/core/urls-internas/lector.d.ts.map +1 -0
  854. package/dist/core/urls-internas/lector.js +56 -0
  855. package/dist/core/urls-internas/lector.js.map +1 -0
  856. package/dist/core/urls-internas/memoria.d.ts +11 -0
  857. package/dist/core/urls-internas/memoria.d.ts.map +1 -0
  858. package/dist/core/urls-internas/memoria.js +25 -0
  859. package/dist/core/urls-internas/memoria.js.map +1 -0
  860. package/dist/core/urls-internas/parse.d.ts +28 -0
  861. package/dist/core/urls-internas/parse.d.ts.map +1 -0
  862. package/dist/core/urls-internas/parse.js +32 -0
  863. package/dist/core/urls-internas/parse.js.map +1 -0
  864. package/dist/core/urls-internas/reglas.d.ts +10 -0
  865. package/dist/core/urls-internas/reglas.d.ts.map +1 -0
  866. package/dist/core/urls-internas/reglas.js +31 -0
  867. package/dist/core/urls-internas/reglas.js.map +1 -0
  868. package/dist/core/usage/aggregate.d.ts +68 -0
  869. package/dist/core/usage/aggregate.d.ts.map +1 -0
  870. package/dist/core/usage/aggregate.js +93 -0
  871. package/dist/core/usage/aggregate.js.map +1 -0
  872. package/dist/core/usage/cuota/anthropic.d.ts +10 -0
  873. package/dist/core/usage/cuota/anthropic.d.ts.map +1 -0
  874. package/dist/core/usage/cuota/anthropic.js +63 -0
  875. package/dist/core/usage/cuota/anthropic.js.map +1 -0
  876. package/dist/core/usage/cuota/cache.d.ts +20 -0
  877. package/dist/core/usage/cuota/cache.d.ts.map +1 -0
  878. package/dist/core/usage/cuota/cache.js +36 -0
  879. package/dist/core/usage/cuota/cache.js.map +1 -0
  880. package/dist/core/usage/cuota/github-copilot.d.ts +9 -0
  881. package/dist/core/usage/cuota/github-copilot.d.ts.map +1 -0
  882. package/dist/core/usage/cuota/github-copilot.js +67 -0
  883. package/dist/core/usage/cuota/github-copilot.js.map +1 -0
  884. package/dist/core/usage/cuota/google-gemini.d.ts +9 -0
  885. package/dist/core/usage/cuota/google-gemini.d.ts.map +1 -0
  886. package/dist/core/usage/cuota/google-gemini.js +72 -0
  887. package/dist/core/usage/cuota/google-gemini.js.map +1 -0
  888. package/dist/core/usage/cuota/index.d.ts +25 -0
  889. package/dist/core/usage/cuota/index.d.ts.map +1 -0
  890. package/dist/core/usage/cuota/index.js +50 -0
  891. package/dist/core/usage/cuota/index.js.map +1 -0
  892. package/dist/core/usage/cuota/openai-codex.d.ts +9 -0
  893. package/dist/core/usage/cuota/openai-codex.d.ts.map +1 -0
  894. package/dist/core/usage/cuota/openai-codex.js +59 -0
  895. package/dist/core/usage/cuota/openai-codex.js.map +1 -0
  896. package/dist/core/usage/cuota/openrouter.d.ts +10 -0
  897. package/dist/core/usage/cuota/openrouter.d.ts.map +1 -0
  898. package/dist/core/usage/cuota/openrouter.js +47 -0
  899. package/dist/core/usage/cuota/openrouter.js.map +1 -0
  900. package/dist/core/usage/cuota/tipos.d.ts +50 -0
  901. package/dist/core/usage/cuota/tipos.d.ts.map +1 -0
  902. package/dist/core/usage/cuota/tipos.js +25 -0
  903. package/dist/core/usage/cuota/tipos.js.map +1 -0
  904. package/dist/core/web/busqueda-nativa.d.ts +82 -0
  905. package/dist/core/web/busqueda-nativa.d.ts.map +1 -0
  906. package/dist/core/web/busqueda-nativa.js +163 -0
  907. package/dist/core/web/busqueda-nativa.js.map +1 -0
  908. package/dist/core/web/destino.d.ts +58 -0
  909. package/dist/core/web/destino.d.ts.map +1 -0
  910. package/dist/core/web/destino.js +127 -0
  911. package/dist/core/web/destino.js.map +1 -0
  912. package/dist/core/web/proveedores/brave.d.ts +6 -0
  913. package/dist/core/web/proveedores/brave.d.ts.map +1 -0
  914. package/dist/core/web/proveedores/brave.js +20 -0
  915. package/dist/core/web/proveedores/brave.js.map +1 -0
  916. package/dist/core/web/proveedores/claves.d.ts +19 -0
  917. package/dist/core/web/proveedores/claves.d.ts.map +1 -0
  918. package/dist/core/web/proveedores/claves.js +36 -0
  919. package/dist/core/web/proveedores/claves.js.map +1 -0
  920. package/dist/core/web/proveedores/duckduckgo.d.ts +3 -0
  921. package/dist/core/web/proveedores/duckduckgo.d.ts.map +1 -0
  922. package/dist/core/web/proveedores/duckduckgo.js +109 -0
  923. package/dist/core/web/proveedores/duckduckgo.js.map +1 -0
  924. package/dist/core/web/proveedores/ecosia.d.ts +3 -0
  925. package/dist/core/web/proveedores/ecosia.d.ts.map +1 -0
  926. package/dist/core/web/proveedores/ecosia.js +72 -0
  927. package/dist/core/web/proveedores/ecosia.js.map +1 -0
  928. package/dist/core/web/proveedores/exa.d.ts +6 -0
  929. package/dist/core/web/proveedores/exa.d.ts.map +1 -0
  930. package/dist/core/web/proveedores/exa.js +24 -0
  931. package/dist/core/web/proveedores/exa.js.map +1 -0
  932. package/dist/core/web/proveedores/mojeek.d.ts +3 -0
  933. package/dist/core/web/proveedores/mojeek.d.ts.map +1 -0
  934. package/dist/core/web/proveedores/mojeek.js +65 -0
  935. package/dist/core/web/proveedores/mojeek.js.map +1 -0
  936. package/dist/core/web/proveedores/navegador.d.ts +10 -0
  937. package/dist/core/web/proveedores/navegador.d.ts.map +1 -0
  938. package/dist/core/web/proveedores/navegador.js +13 -0
  939. package/dist/core/web/proveedores/navegador.js.map +1 -0
  940. package/dist/core/web/proveedores/registro.d.ts +43 -0
  941. package/dist/core/web/proveedores/registro.d.ts.map +1 -0
  942. package/dist/core/web/proveedores/registro.js +49 -0
  943. package/dist/core/web/proveedores/registro.js.map +1 -0
  944. package/dist/core/web/proveedores/searxng.d.ts +9 -0
  945. package/dist/core/web/proveedores/searxng.d.ts.map +1 -0
  946. package/dist/core/web/proveedores/searxng.js +17 -0
  947. package/dist/core/web/proveedores/searxng.js.map +1 -0
  948. package/dist/core/web/proveedores/serper.d.ts +9 -0
  949. package/dist/core/web/proveedores/serper.d.ts.map +1 -0
  950. package/dist/core/web/proveedores/serper.js +19 -0
  951. package/dist/core/web/proveedores/serper.js.map +1 -0
  952. package/dist/core/web/proveedores/tavily.d.ts +6 -0
  953. package/dist/core/web/proveedores/tavily.d.ts.map +1 -0
  954. package/dist/core/web/proveedores/tavily.js +19 -0
  955. package/dist/core/web/proveedores/tavily.js.map +1 -0
  956. package/dist/core/web/proveedores/tipos.d.ts +36 -0
  957. package/dist/core/web/proveedores/tipos.d.ts.map +1 -0
  958. package/dist/core/web/proveedores/tipos.js +10 -0
  959. package/dist/core/web/proveedores/tipos.js.map +1 -0
  960. package/dist/core/web/registro-red.d.ts +43 -0
  961. package/dist/core/web/registro-red.d.ts.map +1 -0
  962. package/dist/core/web/registro-red.js +86 -0
  963. package/dist/core/web/registro-red.js.map +1 -0
  964. package/dist/core/web/scrapers/cisa-kev.d.ts +10 -0
  965. package/dist/core/web/scrapers/cisa-kev.d.ts.map +1 -0
  966. package/dist/core/web/scrapers/cisa-kev.js +38 -0
  967. package/dist/core/web/scrapers/cisa-kev.js.map +1 -0
  968. package/dist/core/web/scrapers/crates-io.d.ts +11 -0
  969. package/dist/core/web/scrapers/crates-io.d.ts.map +1 -0
  970. package/dist/core/web/scrapers/crates-io.js +29 -0
  971. package/dist/core/web/scrapers/crates-io.js.map +1 -0
  972. package/dist/core/web/scrapers/docs-rs.d.ts +10 -0
  973. package/dist/core/web/scrapers/docs-rs.d.ts.map +1 -0
  974. package/dist/core/web/scrapers/docs-rs.js +35 -0
  975. package/dist/core/web/scrapers/docs-rs.js.map +1 -0
  976. package/dist/core/web/scrapers/github.d.ts +3 -0
  977. package/dist/core/web/scrapers/github.d.ts.map +1 -0
  978. package/dist/core/web/scrapers/github.js +72 -0
  979. package/dist/core/web/scrapers/github.js.map +1 -0
  980. package/dist/core/web/scrapers/go-pkg.d.ts +7 -0
  981. package/dist/core/web/scrapers/go-pkg.d.ts.map +1 -0
  982. package/dist/core/web/scrapers/go-pkg.js +30 -0
  983. package/dist/core/web/scrapers/go-pkg.js.map +1 -0
  984. package/dist/core/web/scrapers/hex.d.ts +6 -0
  985. package/dist/core/web/scrapers/hex.d.ts.map +1 -0
  986. package/dist/core/web/scrapers/hex.js +27 -0
  987. package/dist/core/web/scrapers/hex.js.map +1 -0
  988. package/dist/core/web/scrapers/maven.d.ts +8 -0
  989. package/dist/core/web/scrapers/maven.d.ts.map +1 -0
  990. package/dist/core/web/scrapers/maven.js +41 -0
  991. package/dist/core/web/scrapers/maven.js.map +1 -0
  992. package/dist/core/web/scrapers/mdn.d.ts +6 -0
  993. package/dist/core/web/scrapers/mdn.d.ts.map +1 -0
  994. package/dist/core/web/scrapers/mdn.js +28 -0
  995. package/dist/core/web/scrapers/mdn.js.map +1 -0
  996. package/dist/core/web/scrapers/npm.d.ts +11 -0
  997. package/dist/core/web/scrapers/npm.d.ts.map +1 -0
  998. package/dist/core/web/scrapers/npm.js +57 -0
  999. package/dist/core/web/scrapers/npm.js.map +1 -0
  1000. package/dist/core/web/scrapers/nuget.d.ts +8 -0
  1001. package/dist/core/web/scrapers/nuget.d.ts.map +1 -0
  1002. package/dist/core/web/scrapers/nuget.js +22 -0
  1003. package/dist/core/web/scrapers/nuget.js.map +1 -0
  1004. package/dist/core/web/scrapers/nvd.d.ts +7 -0
  1005. package/dist/core/web/scrapers/nvd.d.ts.map +1 -0
  1006. package/dist/core/web/scrapers/nvd.js +37 -0
  1007. package/dist/core/web/scrapers/nvd.js.map +1 -0
  1008. package/dist/core/web/scrapers/pypi.d.ts +6 -0
  1009. package/dist/core/web/scrapers/pypi.d.ts.map +1 -0
  1010. package/dist/core/web/scrapers/pypi.js +31 -0
  1011. package/dist/core/web/scrapers/pypi.js.map +1 -0
  1012. package/dist/core/web/scrapers/registro.d.ts +13 -0
  1013. package/dist/core/web/scrapers/registro.d.ts.map +1 -0
  1014. package/dist/core/web/scrapers/registro.js +65 -0
  1015. package/dist/core/web/scrapers/registro.js.map +1 -0
  1016. package/dist/core/web/scrapers/rubygems.d.ts +6 -0
  1017. package/dist/core/web/scrapers/rubygems.d.ts.map +1 -0
  1018. package/dist/core/web/scrapers/rubygems.js +23 -0
  1019. package/dist/core/web/scrapers/rubygems.js.map +1 -0
  1020. package/dist/core/web/scrapers/stackoverflow.d.ts +3 -0
  1021. package/dist/core/web/scrapers/stackoverflow.d.ts.map +1 -0
  1022. package/dist/core/web/scrapers/stackoverflow.js +46 -0
  1023. package/dist/core/web/scrapers/stackoverflow.js.map +1 -0
  1024. package/dist/core/web/scrapers/tipos.d.ts +42 -0
  1025. package/dist/core/web/scrapers/tipos.d.ts.map +1 -0
  1026. package/dist/core/web/scrapers/tipos.js +23 -0
  1027. package/dist/core/web/scrapers/tipos.js.map +1 -0
  1028. package/dist/core/web/texto.d.ts +10 -0
  1029. package/dist/core/web/texto.d.ts.map +1 -0
  1030. package/dist/core/web/texto.js +26 -0
  1031. package/dist/core/web/texto.js.map +1 -0
  1032. package/dist/core/web/tools.d.ts +91 -0
  1033. package/dist/core/web/tools.d.ts.map +1 -0
  1034. package/dist/core/web/tools.js +304 -0
  1035. package/dist/core/web/tools.js.map +1 -0
  1036. package/dist/core/wiki/almacen.d.ts +33 -0
  1037. package/dist/core/wiki/almacen.d.ts.map +1 -0
  1038. package/dist/core/wiki/almacen.js +93 -0
  1039. package/dist/core/wiki/almacen.js.map +1 -0
  1040. package/dist/core/wiki/citas.d.ts +111 -0
  1041. package/dist/core/wiki/citas.d.ts.map +1 -0
  1042. package/dist/core/wiki/citas.js +146 -0
  1043. package/dist/core/wiki/citas.js.map +1 -0
  1044. package/dist/core/workflows/agent-runner.d.ts +88 -0
  1045. package/dist/core/workflows/agent-runner.d.ts.map +1 -0
  1046. package/dist/core/workflows/agent-runner.js +312 -0
  1047. package/dist/core/workflows/agent-runner.js.map +1 -0
  1048. package/dist/core/workflows/builtins.d.ts +41 -0
  1049. package/dist/core/workflows/builtins.d.ts.map +1 -0
  1050. package/dist/core/workflows/builtins.js +283 -0
  1051. package/dist/core/workflows/builtins.js.map +1 -0
  1052. package/dist/core/workflows/contrato/esquema.d.ts +32 -0
  1053. package/dist/core/workflows/contrato/esquema.d.ts.map +1 -0
  1054. package/dist/core/workflows/contrato/esquema.js +25 -0
  1055. package/dist/core/workflows/contrato/esquema.js.map +1 -0
  1056. package/dist/core/workflows/contrato/reparar-argumentos.d.ts +69 -0
  1057. package/dist/core/workflows/contrato/reparar-argumentos.d.ts.map +1 -0
  1058. package/dist/core/workflows/contrato/reparar-argumentos.js +117 -0
  1059. package/dist/core/workflows/contrato/reparar-argumentos.js.map +1 -0
  1060. package/dist/core/workflows/contrato/validador.d.ts +30 -0
  1061. package/dist/core/workflows/contrato/validador.d.ts.map +1 -0
  1062. package/dist/core/workflows/contrato/validador.js +56 -0
  1063. package/dist/core/workflows/contrato/validador.js.map +1 -0
  1064. package/dist/core/workflows/contrato/yield.d.ts +65 -0
  1065. package/dist/core/workflows/contrato/yield.d.ts.map +1 -0
  1066. package/dist/core/workflows/contrato/yield.js +80 -0
  1067. package/dist/core/workflows/contrato/yield.js.map +1 -0
  1068. package/dist/core/workflows/goal-engine/engine.d.ts +151 -0
  1069. package/dist/core/workflows/goal-engine/engine.d.ts.map +1 -0
  1070. package/dist/core/workflows/goal-engine/engine.js +503 -0
  1071. package/dist/core/workflows/goal-engine/engine.js.map +1 -0
  1072. package/dist/core/workflows/goal-engine/errors.d.ts +7 -0
  1073. package/dist/core/workflows/goal-engine/errors.d.ts.map +1 -0
  1074. package/dist/core/workflows/goal-engine/errors.js +9 -0
  1075. package/dist/core/workflows/goal-engine/errors.js.map +1 -0
  1076. package/dist/core/workflows/goal-engine/index.d.ts +13 -0
  1077. package/dist/core/workflows/goal-engine/index.d.ts.map +1 -0
  1078. package/dist/core/workflows/goal-engine/index.js +8 -0
  1079. package/dist/core/workflows/goal-engine/index.js.map +1 -0
  1080. package/dist/core/workflows/goal-engine/persistence.d.ts +31 -0
  1081. package/dist/core/workflows/goal-engine/persistence.d.ts.map +1 -0
  1082. package/dist/core/workflows/goal-engine/persistence.js +145 -0
  1083. package/dist/core/workflows/goal-engine/persistence.js.map +1 -0
  1084. package/dist/core/workflows/goal-engine/prompts.d.ts +37 -0
  1085. package/dist/core/workflows/goal-engine/prompts.d.ts.map +1 -0
  1086. package/dist/core/workflows/goal-engine/prompts.js +131 -0
  1087. package/dist/core/workflows/goal-engine/prompts.js.map +1 -0
  1088. package/dist/core/workflows/goal-engine/state.d.ts +41 -0
  1089. package/dist/core/workflows/goal-engine/state.d.ts.map +1 -0
  1090. package/dist/core/workflows/goal-engine/state.js +397 -0
  1091. package/dist/core/workflows/goal-engine/state.js.map +1 -0
  1092. package/dist/core/workflows/goal-engine/tools.d.ts +31 -0
  1093. package/dist/core/workflows/goal-engine/tools.d.ts.map +1 -0
  1094. package/dist/core/workflows/goal-engine/tools.js +211 -0
  1095. package/dist/core/workflows/goal-engine/tools.js.map +1 -0
  1096. package/dist/core/workflows/goal-engine/types.d.ts +286 -0
  1097. package/dist/core/workflows/goal-engine/types.d.ts.map +1 -0
  1098. package/dist/core/workflows/goal-engine/types.js +17 -0
  1099. package/dist/core/workflows/goal-engine/types.js.map +1 -0
  1100. package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts +23 -0
  1101. package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts.map +1 -0
  1102. package/dist/core/workflows/goal-engine/worktree-fingerprint.js +72 -0
  1103. package/dist/core/workflows/goal-engine/worktree-fingerprint.js.map +1 -0
  1104. package/dist/core/workflows/graph-sync.d.ts +67 -0
  1105. package/dist/core/workflows/graph-sync.d.ts.map +1 -0
  1106. package/dist/core/workflows/graph-sync.js +188 -0
  1107. package/dist/core/workflows/graph-sync.js.map +1 -0
  1108. package/dist/core/workflows/graph.d.ts +143 -0
  1109. package/dist/core/workflows/graph.d.ts.map +1 -0
  1110. package/dist/core/workflows/graph.js +319 -0
  1111. package/dist/core/workflows/graph.js.map +1 -0
  1112. package/dist/core/workflows/index.d.ts +26 -0
  1113. package/dist/core/workflows/index.d.ts.map +1 -0
  1114. package/dist/core/workflows/index.js +18 -0
  1115. package/dist/core/workflows/index.js.map +1 -0
  1116. package/dist/core/workflows/journal.d.ts +68 -0
  1117. package/dist/core/workflows/journal.d.ts.map +1 -0
  1118. package/dist/core/workflows/journal.js +83 -0
  1119. package/dist/core/workflows/journal.js.map +1 -0
  1120. package/dist/core/workflows/manager.d.ts +122 -0
  1121. package/dist/core/workflows/manager.d.ts.map +1 -0
  1122. package/dist/core/workflows/manager.js +351 -0
  1123. package/dist/core/workflows/manager.js.map +1 -0
  1124. package/dist/core/workflows/resolve-script.d.ts +35 -0
  1125. package/dist/core/workflows/resolve-script.d.ts.map +1 -0
  1126. package/dist/core/workflows/resolve-script.js +66 -0
  1127. package/dist/core/workflows/resolve-script.js.map +1 -0
  1128. package/dist/core/workflows/runtime.d.ts +62 -0
  1129. package/dist/core/workflows/runtime.d.ts.map +1 -0
  1130. package/dist/core/workflows/runtime.js +380 -0
  1131. package/dist/core/workflows/runtime.js.map +1 -0
  1132. package/dist/core/workflows/save-as-skill.d.ts +27 -0
  1133. package/dist/core/workflows/save-as-skill.d.ts.map +1 -0
  1134. package/dist/core/workflows/save-as-skill.js +54 -0
  1135. package/dist/core/workflows/save-as-skill.js.map +1 -0
  1136. package/dist/core/workflows/shared-store.d.ts +31 -0
  1137. package/dist/core/workflows/shared-store.d.ts.map +1 -0
  1138. package/dist/core/workflows/shared-store.js +80 -0
  1139. package/dist/core/workflows/shared-store.js.map +1 -0
  1140. package/dist/core/workflows/subagent-host.d.ts +50 -0
  1141. package/dist/core/workflows/subagent-host.d.ts.map +1 -0
  1142. package/dist/core/workflows/subagent-host.js +225 -0
  1143. package/dist/core/workflows/subagent-host.js.map +1 -0
  1144. package/dist/core/workflows/tool-workflow.d.ts +22 -0
  1145. package/dist/core/workflows/tool-workflow.d.ts.map +1 -0
  1146. package/dist/core/workflows/tool-workflow.js +120 -0
  1147. package/dist/core/workflows/tool-workflow.js.map +1 -0
  1148. package/dist/core/workflows/types.d.ts +191 -0
  1149. package/dist/core/workflows/types.d.ts.map +1 -0
  1150. package/dist/core/workflows/types.js +26 -0
  1151. package/dist/core/workflows/types.js.map +1 -0
  1152. package/dist/core/workflows/worktree.d.ts +42 -0
  1153. package/dist/core/workflows/worktree.d.ts.map +1 -0
  1154. package/dist/core/workflows/worktree.js +107 -0
  1155. package/dist/core/workflows/worktree.js.map +1 -0
  1156. package/dist/extensions/llama/index.d.ts.map +1 -1
  1157. package/dist/extensions/llama/index.js +2 -0
  1158. package/dist/extensions/llama/index.js.map +1 -1
  1159. package/dist/extensions/llama/provider.d.ts.map +1 -1
  1160. package/dist/extensions/llama/provider.js +6 -2
  1161. package/dist/extensions/llama/provider.js.map +1 -1
  1162. package/dist/extensions/remoto/index.d.ts +22 -0
  1163. package/dist/extensions/remoto/index.d.ts.map +1 -0
  1164. package/dist/extensions/remoto/index.js +54 -0
  1165. package/dist/extensions/remoto/index.js.map +1 -0
  1166. package/dist/index.d.ts +1 -13
  1167. package/dist/index.d.ts.map +1 -1
  1168. package/dist/index.js +7 -13
  1169. package/dist/index.js.map +1 -1
  1170. package/dist/main.d.ts +4 -0
  1171. package/dist/main.d.ts.map +1 -1
  1172. package/dist/main.js +26 -15
  1173. package/dist/main.js.map +1 -1
  1174. package/dist/migrations.d.ts.map +1 -1
  1175. package/dist/migrations.js +4 -3
  1176. package/dist/migrations.js.map +1 -1
  1177. package/dist/modes/acp/acp-mode.d.ts +42 -0
  1178. package/dist/modes/acp/acp-mode.d.ts.map +1 -0
  1179. package/dist/modes/acp/acp-mode.js +190 -0
  1180. package/dist/modes/acp/acp-mode.js.map +1 -0
  1181. package/dist/modes/acp/events.d.ts +74 -0
  1182. package/dist/modes/acp/events.d.ts.map +1 -0
  1183. package/dist/modes/acp/events.js +116 -0
  1184. package/dist/modes/acp/events.js.map +1 -0
  1185. package/dist/modes/interactive/components/home-screen.d.ts.map +1 -1
  1186. package/dist/modes/interactive/components/home-screen.js +2 -2
  1187. package/dist/modes/interactive/components/home-screen.js.map +1 -1
  1188. package/dist/modes/interactive/components/model-selector.d.ts +9 -3
  1189. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  1190. package/dist/modes/interactive/components/model-selector.js +56 -12
  1191. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  1192. package/dist/modes/interactive/components/prompt-optimization.d.ts +16 -0
  1193. package/dist/modes/interactive/components/prompt-optimization.d.ts.map +1 -0
  1194. package/dist/modes/interactive/components/prompt-optimization.js +46 -0
  1195. package/dist/modes/interactive/components/prompt-optimization.js.map +1 -0
  1196. package/dist/modes/interactive/components/settings-selector.d.ts +19 -2
  1197. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  1198. package/dist/modes/interactive/components/settings-selector.js +180 -56
  1199. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  1200. package/dist/modes/interactive/components/settings-submenu.d.ts +72 -0
  1201. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -0
  1202. package/dist/modes/interactive/components/settings-submenu.js +165 -0
  1203. package/dist/modes/interactive/components/settings-submenu.js.map +1 -0
  1204. package/dist/modes/interactive/components/thinking-selector.d.ts +15 -3
  1205. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  1206. package/dist/modes/interactive/components/thinking-selector.js +74 -17
  1207. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  1208. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  1209. package/dist/modes/interactive/external-editor.js +2 -1
  1210. package/dist/modes/interactive/external-editor.js.map +1 -1
  1211. package/dist/modes/interactive/interactive-mode.d.ts +21 -1
  1212. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  1213. package/dist/modes/interactive/interactive-mode.js +709 -75
  1214. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  1215. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  1216. package/dist/modes/interactive/theme/theme.js +4 -3
  1217. package/dist/modes/interactive/theme/theme.js.map +1 -1
  1218. package/dist/modes/json-event.d.ts +16 -13
  1219. package/dist/modes/json-event.d.ts.map +1 -1
  1220. package/dist/modes/json-event.js +20 -6
  1221. package/dist/modes/json-event.js.map +1 -1
  1222. package/dist/modes/print-mode.d.ts.map +1 -1
  1223. package/dist/modes/print-mode.js +11 -0
  1224. package/dist/modes/print-mode.js.map +1 -1
  1225. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  1226. package/dist/modes/rpc/rpc-mode.js +173 -0
  1227. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  1228. package/dist/modes/rpc/rpc-types.d.ts +29 -0
  1229. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  1230. package/dist/modes/rpc/rpc-types.js.map +1 -1
  1231. package/dist/package-manager-cli.d.ts.map +1 -1
  1232. package/dist/package-manager-cli.js +27 -5
  1233. package/dist/package-manager-cli.js.map +1 -1
  1234. package/dist/server/attach.d.ts +56 -0
  1235. package/dist/server/attach.d.ts.map +1 -0
  1236. package/dist/server/attach.js +130 -0
  1237. package/dist/server/attach.js.map +1 -0
  1238. package/dist/server/extension-ops.d.ts +40 -0
  1239. package/dist/server/extension-ops.d.ts.map +1 -0
  1240. package/dist/server/extension-ops.js +146 -0
  1241. package/dist/server/extension-ops.js.map +1 -0
  1242. package/dist/server/pi-server-service.d.ts +85 -0
  1243. package/dist/server/pi-server-service.d.ts.map +1 -0
  1244. package/dist/server/pi-server-service.js +213 -0
  1245. package/dist/server/pi-server-service.js.map +1 -0
  1246. package/dist/server/scheduler-tick.d.ts +32 -0
  1247. package/dist/server/scheduler-tick.d.ts.map +1 -0
  1248. package/dist/server/scheduler-tick.js +47 -0
  1249. package/dist/server/scheduler-tick.js.map +1 -0
  1250. package/dist/server/serve.d.ts +25 -0
  1251. package/dist/server/serve.d.ts.map +1 -0
  1252. package/dist/server/serve.js +83 -0
  1253. package/dist/server/serve.js.map +1 -0
  1254. package/dist/server/transcript.d.ts +38 -0
  1255. package/dist/server/transcript.d.ts.map +1 -0
  1256. package/dist/server/transcript.js +176 -0
  1257. package/dist/server/transcript.js.map +1 -0
  1258. package/dist/skills/ada-engine/SKILL.md +153 -0
  1259. package/dist/skills/skill-creator/SKILL.md +90 -0
  1260. package/dist/telegram/api.d.ts +75 -0
  1261. package/dist/telegram/api.d.ts.map +1 -0
  1262. package/dist/telegram/api.js +104 -0
  1263. package/dist/telegram/api.js.map +1 -0
  1264. package/dist/telegram/bridge.d.ts +85 -0
  1265. package/dist/telegram/bridge.d.ts.map +1 -0
  1266. package/dist/telegram/bridge.js +182 -0
  1267. package/dist/telegram/bridge.js.map +1 -0
  1268. package/dist/telegram/journal.d.ts +67 -0
  1269. package/dist/telegram/journal.d.ts.map +1 -0
  1270. package/dist/telegram/journal.js +119 -0
  1271. package/dist/telegram/journal.js.map +1 -0
  1272. package/dist/telegram/servidor.d.ts +15 -0
  1273. package/dist/telegram/servidor.d.ts.map +1 -0
  1274. package/dist/telegram/servidor.js +74 -0
  1275. package/dist/telegram/servidor.js.map +1 -0
  1276. package/dist/utils/frontmatter.d.ts.map +1 -1
  1277. package/dist/utils/frontmatter.js +2 -1
  1278. package/dist/utils/frontmatter.js.map +1 -1
  1279. package/dist/utils/management-http.d.ts +5 -3
  1280. package/dist/utils/management-http.d.ts.map +1 -1
  1281. package/dist/utils/management-http.js +14 -10
  1282. package/dist/utils/management-http.js.map +1 -1
  1283. package/dist/utils/shell.d.ts +11 -0
  1284. package/dist/utils/shell.d.ts.map +1 -1
  1285. package/dist/utils/shell.js +11 -0
  1286. package/dist/utils/shell.js.map +1 -1
  1287. package/dist/utils/text.d.ts +8 -0
  1288. package/dist/utils/text.d.ts.map +1 -0
  1289. package/dist/utils/text.js +9 -0
  1290. package/dist/utils/text.js.map +1 -0
  1291. package/dist/utils/version-check.d.ts.map +1 -1
  1292. package/dist/utils/version-check.js +29 -1
  1293. package/dist/utils/version-check.js.map +1 -1
  1294. package/docs/compaction.md +25 -10
  1295. package/docs/compliance.md +241 -0
  1296. package/docs/containerization.md +24 -24
  1297. package/docs/custom-provider.md +15 -12
  1298. package/docs/development.md +47 -10
  1299. package/docs/docs.json +14 -2
  1300. package/docs/environment-variables.md +20 -17
  1301. package/docs/extensions.md +62 -51
  1302. package/docs/index.md +15 -21
  1303. package/docs/json.md +10 -5
  1304. package/docs/keybindings.md +5 -5
  1305. package/docs/llama-cpp.md +9 -7
  1306. package/docs/models.md +18 -12
  1307. package/docs/packages.md +45 -45
  1308. package/docs/prompt-templates.md +5 -5
  1309. package/docs/providers.md +12 -12
  1310. package/docs/quickstart.md +39 -39
  1311. package/docs/rpc.md +21 -15
  1312. package/docs/sdk.md +38 -38
  1313. package/docs/security.md +26 -21
  1314. package/docs/session-format.md +7 -7
  1315. package/docs/sessions.md +14 -14
  1316. package/docs/settings.md +47 -22
  1317. package/docs/shell-aliases.md +2 -2
  1318. package/docs/skills.md +14 -13
  1319. package/docs/terminal-setup.md +14 -14
  1320. package/docs/termux.md +7 -7
  1321. package/docs/themes.md +11 -11
  1322. package/docs/tmux.md +4 -4
  1323. package/docs/tui.md +3 -3
  1324. package/docs/usage.md +54 -54
  1325. package/docs/windows.md +2 -2
  1326. package/examples/extensions/border-status-editor.ts +1 -1
  1327. package/examples/extensions/git-checkpoint.ts +2 -2
  1328. package/examples/extensions/notify.ts +3 -1
  1329. package/examples/extensions/subagent/README.md +1 -1
  1330. package/examples/extensions/subagent/index.ts +6 -1
  1331. package/examples/extensions/titlebar-spinner.ts +1 -1
  1332. package/examples/rpc-extension-ui.ts +1 -1
  1333. package/examples/sdk/06-extensions.ts +1 -1
  1334. package/examples/sdk/12-full-control.ts +9 -0
  1335. package/examples/sdk/README.md +1 -1
  1336. package/npm-shrinkwrap.json +35 -261
  1337. package/package.json +9 -3
@@ -0,0 +1,745 @@
1
+ /**
2
+ * Detectar las CATEGORÍAS ESPECIALES del artículo 9 del RGPD (y las condenas
3
+ * del artículo 10) en un texto, sin repetir el texto en el hallazgo.
4
+ *
5
+ * POR QUÉ EXISTE, medido antes de escribir nada. El escáner de
6
+ * `memory-engine/security.ts` tiene cinco patrones de datos personales
7
+ * (correo, teléfono, DNI/NIE, IBAN, fecha de nacimiento) y CERO del artículo 9.
8
+ * Sobre un corpus de 24 cadenas que sí deberían saltar, en nivel `strict`
9
+ * fallaban 20. Entre las 20: «baja por depresión», «afiliado a CCOO»,
10
+ * «HIV positive», «huella dactilar registrada», «tiene antecedentes penales».
11
+ * Ninguna de ellas tiene hoy categoría en `SensitiveCategory`, así que
12
+ * `redactSensitive` las devuelve idénticas, sin un solo bloque: hoy una
13
+ * categoría especial se escribe EN CLARO en el libro de auditoría
14
+ * (`audit/libro.ts`), en la exportación y en el diario de edición.
15
+ *
16
+ * El coste no es simétrico con el de un correo. Tratar datos de salud,
17
+ * afiliación sindical, origen étnico, religión, opinión política, vida sexual,
18
+ * biometría o genética está PROHIBIDO salvo excepción tasada (art. 9.1 y 9.2),
19
+ * y las condenas penales sólo pueden tratarse bajo control de la autoridad
20
+ * (art. 10). Filtrar uno de estos no es un incidente de privacidad: es un
21
+ * tratamiento ilícito.
22
+ *
23
+ * LAS DOS MITADES. Un detector de vocabulario ingenuo es peor que ninguno.
24
+ * «diagnóstico» sale de cualquier compilador, «union» de cualquier SQL,
25
+ * «race» de cualquier `race condition`, y un identificador interno de ocho
26
+ * cifras no es un DNI. Un detector que grita sobre todo se desactiva en una
27
+ * semana y entonces no protege de nada. Por eso aquí hay dos mecanismos, y
28
+ * los dos se miden contra el corpus benigno:
29
+ *
30
+ * 1. Los IDENTIFICADORES se VALIDAN, no se reconocen por su forma. DNI y NIE
31
+ * por la letra de control (módulo 23 sobre TRWAGMYFPDXBNJZSQVHLCKE), IBAN
32
+ * y número de la Seguridad Social por módulo 97. Esto no es sólo rigor:
33
+ * es lo que hace desaparecer el único falso positivo medido del escáner
34
+ * actual —el UUID `550e8400-e29b-41d4-a716-446655440000`, cuyo fragmento
35
+ * `446655440000` tiene forma de NSS pero da 56 donde debería dar 00—.
36
+ *
37
+ * 2. El VOCABULARIO ambiguo exige CO-OCURRENCIA con un marcador de persona.
38
+ * «diagnóstico» solo no dispara; «su diagnóstico» sí. Ver `VENTANA`.
39
+ *
40
+ * LA VENTANA es de 60 caracteres entre los bordes más cercanos del término y
41
+ * del marcador. Una oración simple en español ronda las 10-12 palabras, unos
42
+ * 60-70 caracteres; dentro de eso el marcador y el término suelen compartir
43
+ * sujeto. Más allá ya son dos frases distintas y la co-ocurrencia deja de
44
+ * significar nada: el marcador habla de una persona y el término, de otra cosa.
45
+ * Medido sobre el corpus: con 60 caracteres las 12 cadenas benignas salen
46
+ * limpias y las 19 sensibles por vocabulario salen todas.
47
+ *
48
+ * QUÉ NO HACE, y conviene que conste:
49
+ *
50
+ * · No entiende negación ni hipótesis. «no está de baja por depresión» y
51
+ * «si estuviera de baja por depresión» disparan igual. Es deliberado: en
52
+ * un detector de fugas el falso negativo se paga más caro que el falso
53
+ * positivo POR CADA CASO, y la negación en texto libre no se resuelve con
54
+ * una lista de palabras.
55
+ * · No cubre `fingerprint` ni `huella digital` como biometría, porque en
56
+ * este repositorio son la huella de un certificado o de un fichero. Sí
57
+ * cubre «huella dactilar», que no tiene lectura técnica.
58
+ * · La matrícula española no tiene dígito de control: es la única forma sin
59
+ * validar de las cinco. Se compensa exigiendo el alfabeto real de las
60
+ * placas (consonantes, sin vocales ni Ñ ni Q), que descarta casi cualquier
61
+ * token accidental de cuatro cifras y tres letras.
62
+ * · No sustituye a `classifySensitive`: es complementario. Aquí no hay
63
+ * correos, ni teléfonos, ni tarjetas.
64
+ */
65
+ /**
66
+ * El tercer estado: «no he podido mirar».
67
+ *
68
+ * Una lista vacía significa «he mirado el texto entero y no hay nada». Si el
69
+ * módulo no puede analizar, devolver `[]` convertiría un fallo en un permiso:
70
+ * quien llama guardaría la nota creyendo que está limpia. Por eso se LANZA.
71
+ *
72
+ * Se lanza en dos casos, y sólo en dos:
73
+ * · `no-es-cadena`: llega algo que no es `string` (un `null` de una API, un
74
+ * objeto que alguien esperaba serializado).
75
+ * · `demasiado-largo`: por encima de `LIMITE_CARACTERES`. El barrido es
76
+ * lineal por patrón, pero son ~80 patrones y la búsqueda de marcadores es
77
+ * cuadrática en el número de coincidencias; con un volcado de megabytes el
78
+ * detector deja de responder y quien llama se queda colgado sin saber por
79
+ * qué. Falla rápido y explícito.
80
+ */
81
+ export class TextoNoAnalizable extends Error {
82
+ motivo;
83
+ constructor(motivo, detalle) {
84
+ super(`No se pudo analizar el texto (${motivo}): ${detalle}`);
85
+ this.name = "TextoNoAnalizable";
86
+ this.motivo = motivo;
87
+ }
88
+ }
89
+ /** 200.000 caracteres ≈ 200 KB. Una nota de memoria razonable no llega a 10 KB. */
90
+ export const LIMITE_CARACTERES = 200_000;
91
+ /** Caracteres de distancia máxima entre el término y su marcador de persona. */
92
+ export const VENTANA = 60;
93
+ // ─────────────────────────────────────────────────────────────────────────────
94
+ // Plegado: quitar acentos y mayúsculas SIN mover ni un índice
95
+ // ─────────────────────────────────────────────────────────────────────────────
96
+ /**
97
+ * `NFD` + quitar diacríticos cambiaría la longitud y con ella `desde`/`hasta`,
98
+ * que dejarían de servir para redactar el original. Aquí se mapea carácter a
99
+ * carácter, uno a uno, para que el texto plegado y el original compartan
100
+ * índices exactamente.
101
+ */
102
+ const EQUIVALENTES = {
103
+ á: "a",
104
+ à: "a",
105
+ ä: "a",
106
+ â: "a",
107
+ é: "e",
108
+ è: "e",
109
+ ë: "e",
110
+ ê: "e",
111
+ í: "i",
112
+ ì: "i",
113
+ ï: "i",
114
+ î: "i",
115
+ ó: "o",
116
+ ò: "o",
117
+ ö: "o",
118
+ ô: "o",
119
+ ú: "u",
120
+ ù: "u",
121
+ ü: "u",
122
+ û: "u",
123
+ ñ: "n",
124
+ ç: "c",
125
+ Á: "a",
126
+ À: "a",
127
+ Ä: "a",
128
+ Â: "a",
129
+ É: "e",
130
+ È: "e",
131
+ Ë: "e",
132
+ Ê: "e",
133
+ Í: "i",
134
+ Ì: "i",
135
+ Ï: "i",
136
+ Î: "i",
137
+ Ó: "o",
138
+ Ò: "o",
139
+ Ö: "o",
140
+ Ô: "o",
141
+ Ú: "u",
142
+ Ù: "u",
143
+ Ü: "u",
144
+ Û: "u",
145
+ Ñ: "n",
146
+ Ç: "c",
147
+ };
148
+ /**
149
+ * Devuelve el texto en minúsculas, sin acentos y con TODO espacio en blanco
150
+ * convertido en un espacio simple, con la MISMA longitud.
151
+ *
152
+ * Lo del salto de línea no es cosmético y se midió: con el salto intacto,
153
+ * «perfil\ngenético» y «trade\nunion» salían LIMPIOS —los patrones de varias
154
+ * palabras llevan un espacio literal— y un dato de categoría especial partido
155
+ * por un ajuste de línea es exactamente lo que produce cualquier editor, todo
156
+ * correo citado y todo comentario de código. Se arregla aquí, en el plegado,
157
+ * y no patrón a patrón: son ~30 patrones de varias palabras y arreglar sólo
158
+ * los que uno recuerda deja el resto igual de ciegos.
159
+ */
160
+ export function plegar(texto) {
161
+ let salida = "";
162
+ for (let i = 0; i < texto.length; i++) {
163
+ const c = texto[i];
164
+ if (c === "\n" || c === "\r" || c === "\t" || c === "\f" || c === "\v") {
165
+ salida += " ";
166
+ continue;
167
+ }
168
+ const equivalente = EQUIVALENTES[c];
169
+ if (equivalente !== undefined) {
170
+ salida += equivalente;
171
+ continue;
172
+ }
173
+ const minuscula = c.toLowerCase();
174
+ // Hay caracteres cuya minúscula ocupa dos unidades ('İ' → 'i̇'). Ésos se
175
+ // dejan como están: mover un índice cuesta más que perder una coincidencia.
176
+ salida += minuscula.length === 1 ? minuscula : c;
177
+ }
178
+ return salida;
179
+ }
180
+ // ─────────────────────────────────────────────────────────────────────────────
181
+ // Validación de identificadores
182
+ // ─────────────────────────────────────────────────────────────────────────────
183
+ const LETRAS_DNI = "TRWAGMYFPDXBNJZSQVHLCKE";
184
+ /**
185
+ * Letra de control del DNI: módulo 23 sobre la tabla oficial.
186
+ *
187
+ * Acepta los puntos de millar («12.345.678»), que es como se imprime en la
188
+ * tarjeta y como lo teclea la mitad de la gente.
189
+ */
190
+ export function dniValido(numero, letra) {
191
+ const digitos = numero.replace(/\./g, "");
192
+ if (!/^\d{8}$/.test(digitos))
193
+ return false;
194
+ return LETRAS_DNI[Number(digitos) % 23] === letra.toUpperCase();
195
+ }
196
+ /** NIE: la inicial X/Y/Z vale 0/1/2 y luego es el mismo módulo 23. */
197
+ export function nieValido(inicial, numero, letra) {
198
+ const prefijo = { X: "0", Y: "1", Z: "2" }[inicial.toUpperCase()];
199
+ if (prefijo === undefined)
200
+ return false;
201
+ return dniValido(prefijo + numero, letra);
202
+ }
203
+ /** Resto módulo 97 de una cadena de dígitos, sin desbordar el entero. */
204
+ function modulo97(digitos) {
205
+ let resto = 0;
206
+ for (const d of digitos)
207
+ resto = (resto * 10 + Number(d)) % 97;
208
+ return resto;
209
+ }
210
+ /** IBAN: mover los cuatro primeros al final, letra → número, y módulo 97 = 1. */
211
+ export function ibanValido(iban) {
212
+ const limpio = iban.replace(/\s/g, "").toUpperCase();
213
+ if (!/^[A-Z]{2}\d{2}[A-Z0-9]{10,30}$/.test(limpio))
214
+ return false;
215
+ const rotado = limpio.slice(4) + limpio.slice(0, 4);
216
+ let digitos = "";
217
+ for (const c of rotado) {
218
+ digitos += c >= "A" && c <= "Z" ? String(c.charCodeAt(0) - 55) : c;
219
+ }
220
+ return modulo97(digitos) === 1;
221
+ }
222
+ /**
223
+ * Número de la Seguridad Social: provincia (2) + número (8) + control (2),
224
+ * donde el control es el módulo 97 de los diez primeros dígitos.
225
+ *
226
+ * La excepción documentada: cuando el número de afiliación es menor que
227
+ * 10.000.000 —es decir, empieza por cero— el código de provincia se coloca
228
+ * DETRÁS. Se prueban las dos lecturas y basta con que una cuadre; probar sólo
229
+ * la principal perdería a todos los afiliados antiguos.
230
+ */
231
+ export function nssValido(provincia, numero, control) {
232
+ const esperado = Number(control);
233
+ if (modulo97(provincia + numero) === esperado)
234
+ return true;
235
+ if (numero.startsWith("0"))
236
+ return modulo97(numero + provincia) === esperado;
237
+ return false;
238
+ }
239
+ // ─────────────────────────────────────────────────────────────────────────────
240
+ // Marcadores de persona
241
+ // ─────────────────────────────────────────────────────────────────────────────
242
+ /**
243
+ * Lo que sitúa un dato EN UNA PERSONA. Sin uno de éstos cerca, el vocabulario
244
+ * ambiguo no dispara.
245
+ *
246
+ * No están los artículos («el», «la», «los»): son tan frecuentes que
247
+ * convertirían la co-ocurrencia en un adorno —todo texto en español tiene un
248
+ * artículo a menos de 60 caracteres de cualquier cosa—. Sí están los posesivos
249
+ * y los pronombres, que es lo que atribuye el dato a alguien.
250
+ *
251
+ * «de baja» / «baja por» entran porque una baja es siempre de una persona; es
252
+ * el marcador que sostiene «baja por depresión», donde no hay ningún pronombre.
253
+ */
254
+ const MARCADORES = [
255
+ /\b(?:yo|tu|ella|ellos|ellas|nosotros|nosotras|vosotros|usted|ustedes)\b/g,
256
+ // SIN `su` ni `sus`, y es una corrección medida. En español el posesivo de
257
+ // tercera persona vale para CUALQUIER antecedente, animado o no: «agrega sus
258
+ // diagnósticos» habla de un comprobador, no de un paciente. Con `su`/`sus`
259
+ // dentro, 7 de los 10 falsos positivos que quedaban sobre `src` venían de
260
+ // ahí. Los de primera y segunda persona sí implican a alguien.
261
+ /\b(?:mi|mis|tus|nuestro|nuestra|nuestros|nuestras)\b/g,
262
+ // SIN `i`: es la variable de bucle de todo el código escrito jamás, y sobre
263
+ // el plegado no hay forma de distinguirla del pronombre inglés.
264
+ /\b(?:he|she|they|we|my|his|her|their|our|your|him|them)\b/g,
265
+ /\b(?:paciente|pacientes|enfermo|enferma|empleado|empleada|empleados|empleadas)\b/g,
266
+ /\b(?:trabajador|trabajadora|trabajadores|usuario|usuaria|usuarios|cliente|clientes)\b/g,
267
+ /\b(?:candidato|candidata|afiliado|afiliada|socio|socia|miembro|companero|companera|colega)\b/g,
268
+ /\b(?:patient|employee|employees|worker|workers|user|users|customer|member|colleague)\b/g,
269
+ /\b(?:don|dona|sr|sra|senor|senora|mr|mrs|ms)\b/g,
270
+ /\bde baja\b|\bbaja por\b|\bsick leave\b|\bon leave\b/g,
271
+ ];
272
+ /**
273
+ * Nombre y apellido SEGUIDOS: dos palabras capitalizadas pegadas, ni al
274
+ * principio del texto ni tras un punto.
275
+ *
276
+ * MEDIDO, y es la corrección más cara de este módulo. Antes bastaba UNA palabra
277
+ * capitalizada. Sobre los 469 ficheros `.ts` reales de `src` eso daba 20.272
278
+ * marcadores: en un repositorio documentado en español toda palabra que abre
279
+ * frase dentro de un bloque de documentación y todo nombre de tipo
280
+ * (`Comprobador`, `Deteccion`, `Diagnostico`) valía por «una persona». El
281
+ * resultado era que la co-ocurrencia no filtraba nada y el detector marcaba 51
282
+ * veces palabras como `diagnóstico` y `positivo` —la segunda dentro de la
283
+ * expresión «falso positivo», que es justo lo que este módulo intenta evitar—.
284
+ * Exigiendo las dos palabras seguidas quedan 351 candidatos sobre el mismo
285
+ * corpus, y ninguno acaba produciendo un hallazgo.
286
+ *
287
+ * Lo que se paga: «Ana padece esclerosis» ya no tiene marcador por el nombre.
288
+ * Se acepta a sabiendas —un nombre de pila suelto es indistinguible de un
289
+ * identificador de código— y se compensa con el vocabulario sin marcador.
290
+ */
291
+ const NOMBRE_COMPLETO = /\b[A-ZÁÉÍÓÚÑ][a-záéíóúñ]{2,} [A-ZÁÉÍÓÚÑ][a-záéíóúñ]{2,}\b/g;
292
+ function marcadoresDe(plegado, original) {
293
+ const tramos = [];
294
+ for (const patron of MARCADORES) {
295
+ for (const m of plegado.matchAll(patron)) {
296
+ tramos.push({ desde: m.index, hasta: m.index + m[0].length });
297
+ }
298
+ }
299
+ for (const m of original.matchAll(NOMBRE_COMPLETO)) {
300
+ const antes = original.slice(0, m.index).trimEnd();
301
+ if (antes.length === 0)
302
+ continue; // primera palabra del texto
303
+ if (/[.!?¿¡:]$/.test(antes))
304
+ continue; // primera palabra de la oración
305
+ tramos.push({ desde: m.index, hasta: m.index + m[0].length });
306
+ }
307
+ return tramos;
308
+ }
309
+ /** ¿Hay algún marcador a menos de `VENTANA` del término, sin solaparlo? */
310
+ function tieneMarcadorCerca(termino, marcadores) {
311
+ for (const m of marcadores) {
312
+ if (m.desde < termino.hasta && termino.desde < m.hasta)
313
+ continue; // se solapan: es el propio término
314
+ const distancia = m.desde >= termino.hasta ? m.desde - termino.hasta : termino.desde - m.hasta;
315
+ if (distancia <= VENTANA)
316
+ return true;
317
+ }
318
+ return false;
319
+ }
320
+ /**
321
+ * Español e inglés en la misma tabla. Lo que entra sin marcador es lo que no
322
+ * tiene otra lectura en un repositorio de software: `diabetes` no sale de un
323
+ * compilador. Lo que exige marcador es lo que sí sale: `diagnostico`,
324
+ * `depresion`, `positivo`.
325
+ *
326
+ * Ausencias deliberadas, cada una por un falso positivo concreto:
327
+ * · `union` a secas → `union type`, `UNION ALL`. Sólo entra en locuciones
328
+ * («union member», «trade union»).
329
+ * · `race` a secas → `race condition`. Sólo entra «racial origin».
330
+ * · `podemos` como partido → es la primera persona del plural de «poder».
331
+ * Se cubre por la locución «votante de», que revela la opinión política
332
+ * sea cual sea el partido.
333
+ * · `master`, `slave`, `blacklist` → vocabulario técnico, no étnico.
334
+ */
335
+ const TERMINOS = [
336
+ // ── Salud (art. 9) ──
337
+ { categoria: "salud", patron: /\bdiabetes\b|\bdiabetic(?:o|a|os|as)?\b/g, exigeMarcador: false },
338
+ {
339
+ categoria: "salud",
340
+ patron: /\balergi(?:a|as)\b|\balergic(?:o|a)\b|\ballerg(?:y|ic|ies)\b/g,
341
+ exigeMarcador: false,
342
+ },
343
+ { categoria: "salud", patron: /\b(?:vih|hiv|sida|aids|hepatitis|tuberculosis)\b/g, exigeMarcador: false },
344
+ { categoria: "salud", patron: /\bcancer\b|\bleucemia\b|\bleukemia\b|\btumor(?:es)?\b/g, exigeMarcador: false },
345
+ { categoria: "salud", patron: /\bgrupo sanguineo\b|\bblood (?:type|group)\b/g, exigeMarcador: false },
346
+ {
347
+ categoria: "salud",
348
+ patron: /\ben tratamiento (?:con|por|de)\b|\bunder treatment for\b|\bon medication\b/g,
349
+ exigeMarcador: false,
350
+ },
351
+ {
352
+ categoria: "salud",
353
+ patron: /\b(?:sertralina|fluoxetina|paroxetina|litio|insulina|metformina|antidepresiv(?:o|os)|antirretroviral(?:es)?|quimioterapia|chemotherapy)\b/g,
354
+ exigeMarcador: false,
355
+ },
356
+ {
357
+ categoria: "salud",
358
+ patron: /\bhistoria clinica\b|\bhistorial medico\b|\bmedical (?:record|history)\b|\binforme medico\b/g,
359
+ exigeMarcador: false,
360
+ },
361
+ {
362
+ categoria: "salud",
363
+ patron: /\bembarazad(?:a|as)\b|\bpregnan(?:t|cy)\b|\bdiscapacidad\b|\bminusvalia\b/g,
364
+ exigeMarcador: false,
365
+ },
366
+ // `diagnostico` PARTIDO EN DOS, y es la lección más cara del módulo. En un
367
+ // agente de programación «diagnóstico» es lo que escupe el compilador: sobre
368
+ // `src` aparece 46 veces y ninguna habla de la salud de nadie. La forma que
369
+ // sí es art. 9 no es la palabra suelta, es la CONSTRUCCIÓN: a alguien se le
370
+ // diagnostica ALGO. Ésa no exige marcador porque ya lo lleva dentro.
371
+ {
372
+ categoria: "salud",
373
+ patron: /\bdiagnosticad(?:o|a|os|as) (?:de|con)\b|\bdiagnos(?:ed with|is of)\b|\bdiagnostico (?:medico|clinico|psiquiatrico|psicologico|de cancer)\b|\bmedical diagnosis\b/g,
374
+ exigeMarcador: false,
375
+ },
376
+ {
377
+ categoria: "salud",
378
+ patron: /\bdiagnostic(?:o|os|ado|ada|ados|adas)\b|\bdiagnos(?:is|ed)\b/g,
379
+ exigeMarcador: true,
380
+ },
381
+ {
382
+ categoria: "salud",
383
+ patron: /\bdepresion\b|\bansiedad\b|\bdepression\b|\banxiety\b|\bburnout\b/g,
384
+ exigeMarcador: true,
385
+ },
386
+ {
387
+ categoria: "salud",
388
+ patron: /\benfermedad(?:es)?\b|\bdolencia\b|\billness\b|\bdisease\b|\bsintomas\b/g,
389
+ exigeMarcador: true,
390
+ },
391
+ // `positivo` va sin «falso» ni «false» delante: «falso positivo» es la
392
+ // expresión de oficio de este repositorio —medido, 5 hallazgos en `src`, uno
393
+ // de ellos en un comentario que explica cómo evitar falsos positivos— y no
394
+ // habla de la serología de nadie.
395
+ {
396
+ categoria: "salud",
397
+ patron: /(?<!\bfals[oa]s? )(?<!\bfalse )(?:\bpositiv(?:o|a)\b|\bpositive\b|\bseropositiv(?:o|a)\b)/g,
398
+ exigeMarcador: true,
399
+ },
400
+ // Patologías sin lectura técnica: no salen de un compilador, así que no
401
+ // exigen marcador. Coste medido sobre los 469 ficheros de `src` y sobre 200
402
+ // commits: CERO hallazgos.
403
+ {
404
+ categoria: "salud",
405
+ patron: /\besquizofrenia\b|\bbipolar\b|\bepilep(?:sia|tic(?:o|a))\b|\balzheimer\b|\bparkinson\b|\bdialisis\b|\besclerosis\b|\bfibromialgia\b|\bcelia(?:co|ca)\b|\basma\b|\bictus\b|\binfarto\b/g,
406
+ exigeMarcador: false,
407
+ },
408
+ {
409
+ categoria: "salud",
410
+ patron: /\bsuicidi(?:o|os|arse)\b|\bautolesion(?:es)?\b|\bsalud mental\b|\bmental health\b|\bingreso psiquiatric(?:o|a)\b|\bpsiquiatric(?:o|a)\b/g,
411
+ exigeMarcador: false,
412
+ },
413
+ {
414
+ categoria: "salud",
415
+ patron: /\badict(?:o|a) a\b|\balcoholi(?:co|ca|smo)\b|\bdrogodependien\w*\b|\bdesintoxicacion\b|\brehabilitacion\b|\btoxicoman\w*\b/g,
416
+ exigeMarcador: false,
417
+ },
418
+ {
419
+ categoria: "salud",
420
+ patron: /\bbaja medica\b|\bbaja laboral\b|\bincapacidad (?:temporal|permanente|laboral)\b|\bsick leave\b|\bmedical leave\b/g,
421
+ exigeMarcador: false,
422
+ },
423
+ {
424
+ categoria: "salud",
425
+ patron: /\babortion\b|\binterrupcion (?:voluntaria )?del embarazo\b|\btratamiento de fertilidad\b|\bmiscarriage\b/g,
426
+ exigeMarcador: false,
427
+ },
428
+ // Siglas clínicas, en mayúsculas y sobre el original. Sólo las que no
429
+ // colisionan con vocabulario técnico: fuera `IAM` (AWS), `ACV`, `TOC` (tabla
430
+ // de contenidos) y `SNS`, que en un repositorio son otra cosa.
431
+ {
432
+ categoria: "salud",
433
+ patron: /\b(?:TDAH|TEPT|EPOC|VHC|VHB)\b/g,
434
+ exigeMarcador: false,
435
+ sobreOriginal: true,
436
+ },
437
+ // ── Afiliación sindical (art. 9) ──
438
+ // EN MAYÚSCULAS y sobre el original: ver `sobreOriginal`. `uso`, `lab`, `cnt`
439
+ // y `ela` en minúsculas son palabras corrientes, no sindicatos.
440
+ {
441
+ categoria: "sindical",
442
+ patron: /\b(?:CCOO|UGT|CGT|CNT|USO|ELA|LAB|CIG|SATSE|CSIF)\b/g,
443
+ exigeMarcador: false,
444
+ sobreOriginal: true,
445
+ },
446
+ // `liberado sindical` y `seccion sindical` llevan la palabra dentro: no hay
447
+ // otra lectura. `huelga` sí la tiene —«huelga decir»— y además una huelga
448
+ // convocada no es un dato de nadie; lo que revela afiliación es que una
449
+ // PERSONA aparezca al lado. De ahí el marcador sólo en la segunda.
450
+ {
451
+ categoria: "sindical",
452
+ patron: /\bliberad(?:o|a) sindical\b|\bseccion sindical\b/g,
453
+ exigeMarcador: false,
454
+ },
455
+ { categoria: "sindical", patron: /\bhuelga\b|\bpiquete\b/g, exigeMarcador: true },
456
+ {
457
+ categoria: "sindical",
458
+ patron: /\bsindicat(?:o|os)\b|\bsindicalista\b|\bafiliacion sindical\b|\bdelegad(?:o|a) sindical\b|\bcomite de empresa\b/g,
459
+ exigeMarcador: false,
460
+ },
461
+ {
462
+ categoria: "sindical",
463
+ patron: /\bunion member(?:ship)?\b|\btrade union\b|\blabou?r union\b|\bunioni[sz]ed\b|\bshop steward\b/g,
464
+ exigeMarcador: false,
465
+ },
466
+ // ── Origen étnico o racial (art. 9) ──
467
+ {
468
+ categoria: "origen-etnico",
469
+ patron: /\bde origen (?:marroqui|gitan(?:o|a)|magrebi|subsaharian(?:o|a)|arabe|bereber|judi(?:o|a)|latin(?:o|a)|rumen(?:o|a)|rumano|rumana|chin(?:o|a)|african(?:o|a)|asiatic(?:o|a)|indi(?:o|a)|turc(?:o|a)|paquistani|senegales|ecuatorian(?:o|a)|bolivian(?:o|a)|etnic(?:o|a))\b/g,
470
+ exigeMarcador: false,
471
+ },
472
+ {
473
+ categoria: "origen-etnico",
474
+ patron: /\betnia\b|\bgitan(?:o|a|os|as)\b|\bracial origin\b|\bethnic (?:origin|group|background|minority)\b|\bethnicity\b|\borigen racial\b|\bminoria etnica\b/g,
475
+ exigeMarcador: false,
476
+ },
477
+ // ── Religión o creencias (art. 9) ──
478
+ {
479
+ categoria: "religion",
480
+ patron: /\bmusulman(?:a|es|as)?\b|\bmuslim\b|\bislamic(?:o|a)?\b|\bcatolic(?:o|a|os|as)\b|\bcatholic\b|\bevangelic(?:o|a)\b|\bprotestante\b|\bjudi(?:o|a)\b|\bjewish\b|\bhindu\b|\bbudista\b|\bbuddhist\b|\btestigo de jehova\b|\bate(?:o|a)\b/g,
481
+ exigeMarcador: false,
482
+ },
483
+ // `agnostico` sale de la lista: medido, en `src` aparece una vez y es
484
+ // «agnóstico de proveedor». La creencia religiosa que hay que cazar es la
485
+ // que se declara, no la que se niega con una palabra que además es jerga.
486
+ {
487
+ categoria: "religion",
488
+ patron: /\bcreencias religiosas\b|\breligious belief(?:s)?\b|\bconviccion religiosa\b|\bpractica religiosa\b|\bmotivos religiosos\b|\bramadan\b|\bkosher\b|\bhalal\b|\bva a misa\b|\bbautizad(?:o|a)\b/g,
489
+ exigeMarcador: false,
490
+ },
491
+ // ── Opiniones políticas (art. 9) ──
492
+ {
493
+ categoria: "opinion-politica",
494
+ patron: /\bvotante de\b|\bvot(?:a|o|e) a\b|\bvoted for\b|\bmilitante de\b|\bsimpatizante de\b|\bafiliad(?:o|a) al partido\b/g,
495
+ exigeMarcador: false,
496
+ },
497
+ {
498
+ categoria: "opinion-politica",
499
+ patron: /\bpartido popular\b|\bpsoe\b|\bizquierda unida\b|\bpartido comunista\b|\bideologia politica\b|\bpolitical (?:opinion|affiliation|party)\b/g,
500
+ exigeMarcador: false,
501
+ },
502
+ // ── Vida sexual u orientación sexual (art. 9) ──
503
+ {
504
+ categoria: "vida-sexual",
505
+ patron: /\bgay\b|\blesbian(?:a|as)?\b|\bbisexual\b|\bhomosexual\b|\bheterosexual\b|\btransexual\b|\btransgener(?:o|a)\b|\btransgender\b|\bqueer\b/g,
506
+ exigeMarcador: false,
507
+ },
508
+ {
509
+ categoria: "vida-sexual",
510
+ patron: /\borientacion sexual\b|\bsexual orientation\b|\bidentidad de genero\b|\bgender identity\b|\bpareja de hecho\b|\bcivil partnership\b/g,
511
+ exigeMarcador: false,
512
+ },
513
+ // ── Datos biométricos (art. 9) ──
514
+ {
515
+ categoria: "biometrico",
516
+ patron: /\bhuella(?:s)? dactilar(?:es)?\b|\breconocimiento facial\b|\bfacial recognition\b|\bfingerprint scan(?:ner)?\b|\biris scan\b|\bescaneo de iris\b|\bvoiceprint\b|\bhuella de voz\b/g,
517
+ exigeMarcador: false,
518
+ },
519
+ {
520
+ categoria: "biometrico",
521
+ patron: /\bdatos biometricos\b|\bbiometric data\b|\bplantilla biometrica\b|\bbiometric template\b/g,
522
+ exigeMarcador: false,
523
+ },
524
+ // ── Datos genéticos (art. 9) ──
525
+ {
526
+ categoria: "genetico",
527
+ patron: /\bperfil genetic(?:o|a)\b|\bgenetic (?:profile|test|testing|data|marker)\b|\btest genetico\b|\bsecuenciacion (?:genetica|del genoma)\b|\bgenoma\b|\bcariotipo\b|\bbrca[12]\b/g,
528
+ exigeMarcador: false,
529
+ },
530
+ // ── Condenas e infracciones penales (art. 10) ──
531
+ {
532
+ categoria: "condenas",
533
+ patron: /\bantecedentes penales\b|\bcriminal record\b|\bcertificado de penales\b|\bregistro de delincuentes\b/g,
534
+ exigeMarcador: false,
535
+ },
536
+ {
537
+ categoria: "condenas",
538
+ patron: /\bcondenad(?:o|a) por\b|\bconvicted of\b|\bsentenciad(?:o|a) a\b|\bsentenced to\b|\bimputad(?:o|a) por\b|\bproceso penal\b|\ben prision por\b/g,
539
+ exigeMarcador: false,
540
+ },
541
+ // Las formas que faltaban, medidas: «cumplió condena por robo», «detenido
542
+ // por», «orden de alejamiento» y «violencia de género» salían LIMPIAS. Coste
543
+ // sobre los 469 ficheros de `src` y 200 commits: CERO.
544
+ {
545
+ categoria: "condenas",
546
+ patron: /\bcondena por\b|\bcumplio condena\b|\bdetenid(?:o|a) por\b|\borden de alejamiento\b|\bdelito de\b|\bviolencia de genero\b|\bjuicio penal\b|\barrested for\b|\bon probation\b|\bparole\b/g,
547
+ exigeMarcador: false,
548
+ },
549
+ ];
550
+ // ─────────────────────────────────────────────────────────────────────────────
551
+ // Identificadores
552
+ // ─────────────────────────────────────────────────────────────────────────────
553
+ /**
554
+ * Van sobre el texto ORIGINAL, no sobre el plegado —el plegado ya no distingue
555
+ * `X` de `x`— pero SÍ aceptan minúsculas y los puntos de millar.
556
+ *
557
+ * MEDIDO, y era un agujero de los grandes: `dni 12345678z`, `nie z1234567r`,
558
+ * `es9121000418450200051332` y `DNI 12.345.678-Z` salían LIMPIOS. Las cuatro
559
+ * son formas que produce cualquiera: el punto de millar es como se imprime un
560
+ * DNI en España, y la minúscula es lo que sale de un `toLowerCase()` en
561
+ * cualquier campo de formulario, de un `JSON` normalizado o de una URL.
562
+ *
563
+ * El coste se midió, y no salió gratis: `/Users/31017423z/...` —un directorio
564
+ * de trabajo real, citado en dos ficheros de `src`— tiene ocho cifras y una
565
+ * letra, y PASA el módulo 23. De ahí el `(?<![/\\])` y el `(?![/\\])`: un token
566
+ * pegado a una barra es un segmento de ruta, no un documento. Con ese guardián
567
+ * la forma insensible a mayúsculas produce CERO hallazgos sobre los 469
568
+ * ficheros `.ts` de `src` y sobre 200 commits.
569
+ */
570
+ const DNI = /(?<![/\\])\b(\d{2}\.?\d{3}\.?\d{3})[ .-]?([A-Za-z])\b(?![/\\])/g;
571
+ const NIE = /(?<![/\\])\b([XYZxyz])[ .-]?(\d{7})[ .-]?([A-Za-z])\b(?![/\\])/g;
572
+ const IBAN = /\b([A-Za-z]{2}\d{2}(?:[ ]?[A-Za-z0-9]{4}){3,7}[ ]?[A-Za-z0-9]{0,4})\b/g;
573
+ const NSS = /\b(\d{2})[ -]?(\d{8})[ -]?(\d{2})\b/g;
574
+ /** Matrícula española desde 2000: cuatro cifras y tres consonantes, sin Ñ ni Q. */
575
+ const MATRICULA = /\b\d{4}[ -]?[BCDFGHJKLMNPRSTVWXYZ]{3}\b/g;
576
+ const PORQUE_MODULO_23 = "identificador nacional con letra de control correcta (comprobada, modulo 23)";
577
+ const PORQUE_MODULO_97 = "identificador nacional con digito de control correcto (comprobado, modulo 97)";
578
+ const PORQUE_FORMA_PLACA = "identificador nacional con la forma exacta de una placa (cuatro cifras y tres consonantes; sin control que comprobar)";
579
+ const PORQUE_VOCABULARIO = "vocabulario de categoria especial sin otra lectura tecnica";
580
+ const PORQUE_CON_MARCADOR = `vocabulario ambiguo con un marcador de persona a menos de ${VENTANA} caracteres`;
581
+ function articuloDe(categoria) {
582
+ return categoria === "condenas" ? "10" : "9";
583
+ }
584
+ /**
585
+ * Funde los hallazgos de la MISMA categoría que se solapan.
586
+ *
587
+ * «afiliado al partido popular» dispara dos patrones políticos sobre tramos
588
+ * que se pisan; dos hallazgos para un solo dato inflan el informe del DPO y
589
+ * hacen que redactar sea redactar dos veces lo mismo.
590
+ */
591
+ function fundir(hallazgos) {
592
+ const ordenados = [...hallazgos].sort((a, b) => a.desde - b.desde || a.hasta - b.hasta);
593
+ const salida = [];
594
+ for (const h of ordenados) {
595
+ const previo = salida.find((p) => p.categoria === h.categoria && h.desde < p.hasta && p.desde < h.hasta);
596
+ if (previo) {
597
+ previo.desde = Math.min(previo.desde, h.desde);
598
+ previo.hasta = Math.max(previo.hasta, h.hasta);
599
+ continue;
600
+ }
601
+ salida.push({ ...h });
602
+ }
603
+ return salida.sort((a, b) => a.desde - b.desde);
604
+ }
605
+ /**
606
+ * Busca categorías especiales del art. 9 y condenas del art. 10.
607
+ *
608
+ * TRES ESTADOS, no dos:
609
+ * · lista con hallazgos → hay datos de categoría especial;
610
+ * · lista vacía → he mirado el texto entero y no hay;
611
+ * · `TextoNoAnalizable` → no he podido mirar. Nunca se confunde con la vacía.
612
+ *
613
+ * Ningún campo del hallazgo lleva el texto detectado; sólo su posición y la
614
+ * forma que lo disparó.
615
+ */
616
+ export function categoriasEspeciales(texto) {
617
+ if (typeof texto !== "string") {
618
+ throw new TextoNoAnalizable("no-es-cadena", `llego un ${texto === null ? "null" : typeof texto}`);
619
+ }
620
+ if (texto.length > LIMITE_CARACTERES) {
621
+ throw new TextoNoAnalizable("demasiado-largo", `${texto.length} caracteres, el limite es ${LIMITE_CARACTERES}`);
622
+ }
623
+ const hallazgos = [];
624
+ const plegado = plegar(texto);
625
+ const marcadores = marcadoresDe(plegado, texto);
626
+ for (const termino of TERMINOS) {
627
+ // Plegado y original tienen la MISMA longitud, así que los índices de uno
628
+ // sirven para el otro y para el cálculo de distancia al marcador.
629
+ const donde = termino.sobreOriginal ? texto : plegado;
630
+ for (const m of donde.matchAll(termino.patron)) {
631
+ const tramo = { desde: m.index, hasta: m.index + m[0].length };
632
+ if (termino.exigeMarcador && !tieneMarcadorCerca(tramo, marcadores))
633
+ continue;
634
+ hallazgos.push({
635
+ categoria: termino.categoria,
636
+ articulo: articuloDe(termino.categoria),
637
+ desde: tramo.desde,
638
+ hasta: tramo.hasta,
639
+ porque: termino.exigeMarcador ? PORQUE_CON_MARCADOR : PORQUE_VOCABULARIO,
640
+ });
641
+ }
642
+ }
643
+ // Identificadores: la forma sólo abre la puerta; entra el que valida.
644
+ for (const m of texto.matchAll(DNI)) {
645
+ if (!dniValido(m[1], m[2]))
646
+ continue;
647
+ hallazgos.push({
648
+ categoria: "identificador-nacional",
649
+ articulo: "9",
650
+ desde: m.index,
651
+ hasta: m.index + m[0].length,
652
+ porque: PORQUE_MODULO_23,
653
+ });
654
+ }
655
+ for (const m of texto.matchAll(NIE)) {
656
+ if (!nieValido(m[1], m[2], m[3]))
657
+ continue;
658
+ hallazgos.push({
659
+ categoria: "identificador-nacional",
660
+ articulo: "9",
661
+ desde: m.index,
662
+ hasta: m.index + m[0].length,
663
+ porque: PORQUE_MODULO_23,
664
+ });
665
+ }
666
+ for (const m of texto.matchAll(IBAN)) {
667
+ const candidato = m[1].trimEnd();
668
+ if (!ibanValido(candidato))
669
+ continue;
670
+ hallazgos.push({
671
+ categoria: "identificador-nacional",
672
+ articulo: "9",
673
+ desde: m.index,
674
+ hasta: m.index + candidato.length,
675
+ porque: PORQUE_MODULO_97,
676
+ });
677
+ }
678
+ for (const m of texto.matchAll(NSS)) {
679
+ if (!nssValido(m[1], m[2], m[3]))
680
+ continue;
681
+ hallazgos.push({
682
+ categoria: "identificador-nacional",
683
+ articulo: "9",
684
+ desde: m.index,
685
+ hasta: m.index + m[0].length,
686
+ porque: PORQUE_MODULO_97,
687
+ });
688
+ }
689
+ for (const m of texto.matchAll(MATRICULA)) {
690
+ hallazgos.push({
691
+ categoria: "identificador-nacional",
692
+ articulo: "9",
693
+ desde: m.index,
694
+ hasta: m.index + m[0].length,
695
+ porque: PORQUE_FORMA_PLACA,
696
+ });
697
+ }
698
+ return fundir(hallazgos);
699
+ }
700
+ /** Con lo que se sustituye cada tramo. El mismo bloque que usa `redactSensitive`. */
701
+ const BLOQUE = "█";
702
+ /**
703
+ * Devuelve el texto con los tramos hallados —y SÓLO ésos— sustituidos por
704
+ * bloques.
705
+ *
706
+ * Es lo que le falta hoy a `redactSensitive`: medido,
707
+ * `redactSensitive("baja por depresión, afiliado a CCOO, HIV positive",
708
+ * "strict")` devuelve la cadena idéntica, y esa función alimenta el libro de
709
+ * auditoría y el diario de edición.
710
+ *
711
+ * DOS DECISIONES, las dos deliberadas:
712
+ *
713
+ * · El bloque tiene la MISMA longitud que el tramo. Un texto tapado que
714
+ * encoge delata dónde estaba el dato al comparar con el original, y además
715
+ * rompe cualquier índice que alguien haya guardado sobre el texto.
716
+ * · No se escribe la categoría en el hueco. Poner «[salud]» taparía el dato y
717
+ * publicaría el diagnóstico: que hay información de salud sobre esta
718
+ * persona ya es, por sí solo, una categoría especial. La categoría va en el
719
+ * hallazgo, que es para el DPO; el texto tapado es para todos los demás.
720
+ *
721
+ * Un texto sin hallazgos sale idéntico byte a byte —se devuelve el mismo
722
+ * objeto—, y `TextoNoAnalizable` sube igual que en `categoriasEspeciales`:
723
+ * devolver aquí el texto sin tocar sería devolver el original en claro
724
+ * creyendo haberlo tapado.
725
+ */
726
+ export function taparCategoriasEspeciales(texto) {
727
+ const hallazgos = categoriasEspeciales(texto);
728
+ if (hallazgos.length === 0)
729
+ return texto;
730
+ // Los hallazgos vienen ordenados por `desde`, pero `fundir` sólo une los de
731
+ // la MISMA categoría: dos categorías distintas pueden pisarse («judío» es
732
+ // origen étnico y religión a la vez). El cursor evita tapar dos veces el
733
+ // mismo trozo, que duplicaría bloques y alargaría el texto.
734
+ let salida = "";
735
+ let cursor = 0;
736
+ for (const h of hallazgos) {
737
+ if (h.hasta <= cursor)
738
+ continue;
739
+ const desde = Math.max(h.desde, cursor);
740
+ salida += texto.slice(cursor, desde) + BLOQUE.repeat(h.hasta - desde);
741
+ cursor = h.hasta;
742
+ }
743
+ return salida + texto.slice(cursor);
744
+ }
745
+ //# sourceMappingURL=categorias-especiales.js.map