@hoilab/ada-cli 0.85.0 → 0.85.1

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 (1691) hide show
  1. package/dist/ada-publico.d.ts.map +1 -1
  2. package/dist/ada-publico.js.map +1 -1
  3. package/dist/bun/cli.d.ts.map +1 -1
  4. package/dist/bun/cli.js.map +1 -1
  5. package/dist/bun/register-bedrock.d.ts.map +1 -1
  6. package/dist/bun/register-bedrock.js.map +1 -1
  7. package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
  8. package/dist/bun/restore-sandbox-env.js.map +1 -1
  9. package/dist/cli/args.d.ts.map +1 -1
  10. package/dist/cli/args.js.map +1 -1
  11. package/dist/cli/audit-command.d.ts.map +1 -1
  12. package/dist/cli/audit-command.js.map +1 -1
  13. package/dist/cli/auth-check.d.ts.map +1 -1
  14. package/dist/cli/auth-check.js.map +1 -1
  15. package/dist/cli/auth-command.d.ts.map +1 -1
  16. package/dist/cli/auth-command.js.map +1 -1
  17. package/dist/cli/banco-command.d.ts.map +1 -1
  18. package/dist/cli/banco-command.js.map +1 -1
  19. package/dist/cli/cleanse-command.d.ts.map +1 -1
  20. package/dist/cli/cleanse-command.js +5 -2
  21. package/dist/cli/cleanse-command.js.map +1 -1
  22. package/dist/cli/commit-command.d.ts +8 -6
  23. package/dist/cli/commit-command.d.ts.map +1 -1
  24. package/dist/cli/commit-command.js +124 -92
  25. package/dist/cli/commit-command.js.map +1 -1
  26. package/dist/cli/completion.d.ts +20 -0
  27. package/dist/cli/completion.d.ts.map +1 -0
  28. package/dist/cli/completion.js +75 -0
  29. package/dist/cli/completion.js.map +1 -0
  30. package/dist/cli/computer-command.d.ts.map +1 -1
  31. package/dist/cli/computer-command.js.map +1 -1
  32. package/dist/cli/config-selector.d.ts.map +1 -1
  33. package/dist/cli/config-selector.js.map +1 -1
  34. package/dist/cli/credential-print.d.ts.map +1 -1
  35. package/dist/cli/credential-print.js.map +1 -1
  36. package/dist/cli/discover-command.d.ts.map +1 -1
  37. package/dist/cli/discover-command.js +5 -1
  38. package/dist/cli/discover-command.js.map +1 -1
  39. package/dist/cli/experimental/auth.d.ts.map +1 -1
  40. package/dist/cli/experimental/auth.js.map +1 -1
  41. package/dist/cli/experimental/cli.d.ts +1 -1
  42. package/dist/cli/experimental/cli.d.ts.map +1 -1
  43. package/dist/cli/experimental/cli.js.map +1 -1
  44. package/dist/cli/experimental/command-options.d.ts.map +1 -1
  45. package/dist/cli/experimental/command-options.js.map +1 -1
  46. package/dist/cli/experimental/command.d.ts.map +1 -1
  47. package/dist/cli/experimental/command.js.map +1 -1
  48. package/dist/cli/experimental/commands/client.d.ts.map +1 -1
  49. package/dist/cli/experimental/commands/client.js.map +1 -1
  50. package/dist/cli/experimental/commands/pi.d.ts.map +1 -1
  51. package/dist/cli/experimental/commands/pi.js.map +1 -1
  52. package/dist/cli/experimental/commands/server.d.ts.map +1 -1
  53. package/dist/cli/experimental/commands/server.js.map +1 -1
  54. package/dist/cli/experimental/transport-address.d.ts.map +1 -1
  55. package/dist/cli/experimental/transport-address.js.map +1 -1
  56. package/dist/cli/file-processor.d.ts.map +1 -1
  57. package/dist/cli/file-processor.js.map +1 -1
  58. package/dist/cli/guardrails.d.ts +14 -0
  59. package/dist/cli/guardrails.d.ts.map +1 -0
  60. package/dist/cli/guardrails.js +47 -0
  61. package/dist/cli/guardrails.js.map +1 -0
  62. package/dist/cli/hashline-command.d.ts.map +1 -1
  63. package/dist/cli/hashline-command.js.map +1 -1
  64. package/dist/cli/home-screen.d.ts.map +1 -1
  65. package/dist/cli/home-screen.js +1 -0
  66. package/dist/cli/home-screen.js.map +1 -1
  67. package/dist/cli/import-command.d.ts.map +1 -1
  68. package/dist/cli/import-command.js.map +1 -1
  69. package/dist/cli/initial-message.d.ts +1 -1
  70. package/dist/cli/initial-message.d.ts.map +1 -1
  71. package/dist/cli/initial-message.js.map +1 -1
  72. package/dist/cli/list-models.d.ts.map +1 -1
  73. package/dist/cli/list-models.js.map +1 -1
  74. package/dist/cli/politica-command.d.ts.map +1 -1
  75. package/dist/cli/politica-command.js.map +1 -1
  76. package/dist/cli/project-trust.d.ts.map +1 -1
  77. package/dist/cli/project-trust.js.map +1 -1
  78. package/dist/cli/refine-command.d.ts.map +1 -1
  79. package/dist/cli/refine-command.js.map +1 -1
  80. package/dist/cli/review-command.d.ts.map +1 -1
  81. package/dist/cli/review-command.js +77 -13
  82. package/dist/cli/review-command.js.map +1 -1
  83. package/dist/cli/schedule-command.d.ts.map +1 -1
  84. package/dist/cli/schedule-command.js.map +1 -1
  85. package/dist/cli/serve-command.d.ts +0 -1
  86. package/dist/cli/serve-command.d.ts.map +1 -1
  87. package/dist/cli/serve-command.js +12 -6
  88. package/dist/cli/serve-command.js.map +1 -1
  89. package/dist/cli/session-picker.d.ts.map +1 -1
  90. package/dist/cli/session-picker.js.map +1 -1
  91. package/dist/cli/startup-ui.d.ts.map +1 -1
  92. package/dist/cli/startup-ui.js.map +1 -1
  93. package/dist/cli/telegram-command.d.ts.map +1 -1
  94. package/dist/cli/telegram-command.js.map +1 -1
  95. package/dist/cli/telemetria-command.d.ts.map +1 -1
  96. package/dist/cli/telemetria-command.js.map +1 -1
  97. package/dist/cli/undo-command.d.ts.map +1 -1
  98. package/dist/cli/undo-command.js.map +1 -1
  99. package/dist/cli/update-cli.d.ts +82 -0
  100. package/dist/cli/update-cli.d.ts.map +1 -0
  101. package/dist/cli/update-cli.js +372 -0
  102. package/dist/cli/update-cli.js.map +1 -0
  103. package/dist/cli/usage-command.d.ts.map +1 -1
  104. package/dist/cli/usage-command.js +75 -6
  105. package/dist/cli/usage-command.js.map +1 -1
  106. package/dist/cli/wiki-command.d.ts.map +1 -1
  107. package/dist/cli/wiki-command.js.map +1 -1
  108. package/dist/cli.d.ts +0 -6
  109. package/dist/cli.d.ts.map +1 -1
  110. package/dist/cli.js +0 -0
  111. package/dist/cli.js.map +1 -1
  112. package/dist/client/index.d.ts.map +1 -1
  113. package/dist/client/index.js.map +1 -1
  114. package/dist/client/remote-session.d.ts.map +1 -1
  115. package/dist/client/remote-session.js.map +1 -1
  116. package/dist/client/transcript.d.ts.map +1 -1
  117. package/dist/client/transcript.js.map +1 -1
  118. package/dist/config.d.ts.map +1 -1
  119. package/dist/config.js.map +1 -1
  120. package/dist/core/ada.d.ts +5 -0
  121. package/dist/core/ada.d.ts.map +1 -1
  122. package/dist/core/ada.js +5 -0
  123. package/dist/core/ada.js.map +1 -1
  124. package/dist/core/advisor/guarda.d.ts.map +1 -1
  125. package/dist/core/advisor/guarda.js.map +1 -1
  126. package/dist/core/advisor/runtime.d.ts.map +1 -1
  127. package/dist/core/advisor/runtime.js.map +1 -1
  128. package/dist/core/advisor/sesion.d.ts.map +1 -1
  129. package/dist/core/advisor/sesion.js.map +1 -1
  130. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  131. package/dist/core/agent-session-runtime.js.map +1 -1
  132. package/dist/core/agent-session-services.d.ts.map +1 -1
  133. package/dist/core/agent-session-services.js.map +1 -1
  134. package/dist/core/agent-session.d.ts +67 -0
  135. package/dist/core/agent-session.d.ts.map +1 -1
  136. package/dist/core/agent-session.js +43 -2
  137. package/dist/core/agent-session.js.map +1 -1
  138. package/dist/core/agents/loader.d.ts.map +1 -1
  139. package/dist/core/agents/loader.js.map +1 -1
  140. package/dist/core/appendonly/append-only-context.d.ts +118 -0
  141. package/dist/core/appendonly/append-only-context.d.ts.map +1 -0
  142. package/dist/core/appendonly/append-only-context.js +256 -0
  143. package/dist/core/appendonly/append-only-context.js.map +1 -0
  144. package/dist/core/appendonly/auto.d.ts +30 -0
  145. package/dist/core/appendonly/auto.d.ts.map +1 -0
  146. package/dist/core/appendonly/auto.js +68 -0
  147. package/dist/core/appendonly/auto.js.map +1 -0
  148. package/dist/core/appendonly/extension.d.ts +29 -0
  149. package/dist/core/appendonly/extension.d.ts.map +1 -0
  150. package/dist/core/appendonly/extension.js +51 -0
  151. package/dist/core/appendonly/extension.js.map +1 -0
  152. package/dist/core/appendonly/index.d.ts +41 -0
  153. package/dist/core/appendonly/index.d.ts.map +1 -0
  154. package/dist/core/appendonly/index.js +42 -0
  155. package/dist/core/appendonly/index.js.map +1 -0
  156. package/dist/core/aprobacion/generados.d.ts.map +1 -1
  157. package/dist/core/aprobacion/generados.js.map +1 -1
  158. package/dist/core/aprobacion/politica-de-maquina.d.ts.map +1 -1
  159. package/dist/core/aprobacion/politica-de-maquina.js.map +1 -1
  160. package/dist/core/aprobacion/politica.d.ts +1 -1
  161. package/dist/core/aprobacion/politica.d.ts.map +1 -1
  162. package/dist/core/aprobacion/politica.js.map +1 -1
  163. package/dist/core/arranque/atajos.d.ts.map +1 -1
  164. package/dist/core/arranque/atajos.js +20 -0
  165. package/dist/core/arranque/atajos.js.map +1 -1
  166. package/dist/core/audit/exportacion.d.ts.map +1 -1
  167. package/dist/core/audit/exportacion.js +5 -3
  168. package/dist/core/audit/exportacion.js.map +1 -1
  169. package/dist/core/audit/libro.d.ts +7 -0
  170. package/dist/core/audit/libro.d.ts.map +1 -1
  171. package/dist/core/audit/libro.js.map +1 -1
  172. package/dist/core/audit/registro-sesion.d.ts.map +1 -1
  173. package/dist/core/audit/registro-sesion.js.map +1 -1
  174. package/dist/core/audit/retencion.d.ts.map +1 -1
  175. package/dist/core/audit/retencion.js.map +1 -1
  176. package/dist/core/audit/rutas.d.ts.map +1 -1
  177. package/dist/core/audit/rutas.js.map +1 -1
  178. package/dist/core/auth-guidance.d.ts.map +1 -1
  179. package/dist/core/auth-guidance.js.map +1 -1
  180. package/dist/core/auth-storage.d.ts.map +1 -1
  181. package/dist/core/auth-storage.js.map +1 -1
  182. package/dist/core/banco/almacenamiento.d.ts.map +1 -1
  183. package/dist/core/banco/almacenamiento.js.map +1 -1
  184. package/dist/core/banco/analisis.d.ts.map +1 -1
  185. package/dist/core/banco/analisis.js.map +1 -1
  186. package/dist/core/banco/asides.d.ts +64 -0
  187. package/dist/core/banco/asides.d.ts.map +1 -0
  188. package/dist/core/banco/asides.js +113 -0
  189. package/dist/core/banco/asides.js.map +1 -0
  190. package/dist/core/banco/bloques.d.ts.map +1 -1
  191. package/dist/core/banco/bloques.js.map +1 -1
  192. package/dist/core/banco/cargas.d.ts.map +1 -1
  193. package/dist/core/banco/cargas.js.map +1 -1
  194. package/dist/core/banco/comparar.d.ts.map +1 -1
  195. package/dist/core/banco/comparar.js.map +1 -1
  196. package/dist/core/banco/cow-isolation.d.ts +74 -0
  197. package/dist/core/banco/cow-isolation.d.ts.map +1 -0
  198. package/dist/core/banco/cow-isolation.js +259 -0
  199. package/dist/core/banco/cow-isolation.js.map +1 -0
  200. package/dist/core/banco/ejecutar.d.ts.map +1 -1
  201. package/dist/core/banco/ejecutar.js.map +1 -1
  202. package/dist/core/banco/generar.d.ts.map +1 -1
  203. package/dist/core/banco/generar.js.map +1 -1
  204. package/dist/core/banco/mutaciones.d.ts.map +1 -1
  205. package/dist/core/banco/mutaciones.js.map +1 -1
  206. package/dist/core/banco/park-revive.d.ts +67 -0
  207. package/dist/core/banco/park-revive.d.ts.map +1 -0
  208. package/dist/core/banco/park-revive.js +130 -0
  209. package/dist/core/banco/park-revive.js.map +1 -0
  210. package/dist/core/banco/pruning.d.ts +48 -0
  211. package/dist/core/banco/pruning.d.ts.map +1 -0
  212. package/dist/core/banco/pruning.js +146 -0
  213. package/dist/core/banco/pruning.js.map +1 -0
  214. package/dist/core/banco/steering.d.ts +81 -0
  215. package/dist/core/banco/steering.d.ts.map +1 -0
  216. package/dist/core/banco/steering.js +96 -0
  217. package/dist/core/banco/steering.js.map +1 -0
  218. package/dist/core/banco/tipos.d.ts.map +1 -1
  219. package/dist/core/banco/tipos.js.map +1 -1
  220. package/dist/core/bash-executor.d.ts.map +1 -1
  221. package/dist/core/bash-executor.js.map +1 -1
  222. package/dist/core/blobs/almacen.d.ts.map +1 -1
  223. package/dist/core/blobs/almacen.js.map +1 -1
  224. package/dist/core/blobs/broker.d.ts +1 -0
  225. package/dist/core/blobs/broker.d.ts.map +1 -1
  226. package/dist/core/blobs/broker.js +1 -1
  227. package/dist/core/blobs/broker.js.map +1 -1
  228. package/dist/core/blobs/index.d.ts +1 -0
  229. package/dist/core/blobs/index.d.ts.map +1 -1
  230. package/dist/core/blobs/index.js +1 -0
  231. package/dist/core/blobs/index.js.map +1 -1
  232. package/dist/core/blobs/payload.d.ts.map +1 -1
  233. package/dist/core/blobs/payload.js.map +1 -1
  234. package/dist/core/blobs/proveedor.d.ts.map +1 -1
  235. package/dist/core/blobs/proveedor.js.map +1 -1
  236. package/dist/core/blobs/uploaders.d.ts +105 -0
  237. package/dist/core/blobs/uploaders.d.ts.map +1 -0
  238. package/dist/core/blobs/uploaders.js +224 -0
  239. package/dist/core/blobs/uploaders.js.map +1 -0
  240. package/dist/core/broker/broker.d.ts +54 -0
  241. package/dist/core/broker/broker.d.ts.map +1 -0
  242. package/dist/core/broker/broker.js +216 -0
  243. package/dist/core/broker/broker.js.map +1 -0
  244. package/dist/core/broker/index.d.ts +21 -0
  245. package/dist/core/broker/index.d.ts.map +1 -0
  246. package/dist/core/broker/index.js +33 -0
  247. package/dist/core/broker/index.js.map +1 -0
  248. package/dist/core/broker/ps.d.ts +20 -0
  249. package/dist/core/broker/ps.d.ts.map +1 -0
  250. package/dist/core/broker/ps.js +55 -0
  251. package/dist/core/broker/ps.js.map +1 -0
  252. package/dist/core/broker/types.d.ts +45 -0
  253. package/dist/core/broker/types.d.ts.map +1 -0
  254. package/dist/core/broker/types.js +19 -0
  255. package/dist/core/broker/types.js.map +1 -0
  256. package/dist/core/browser/cdp.d.ts.map +1 -1
  257. package/dist/core/browser/cdp.js.map +1 -1
  258. package/dist/core/browser/politica.d.ts.map +1 -1
  259. package/dist/core/browser/politica.js.map +1 -1
  260. package/dist/core/browser/sesion.d.ts.map +1 -1
  261. package/dist/core/browser/sesion.js.map +1 -1
  262. package/dist/core/browser/tools.d.ts.map +1 -1
  263. package/dist/core/browser/tools.js.map +1 -1
  264. package/dist/core/cache-stats.d.ts.map +1 -1
  265. package/dist/core/cache-stats.js.map +1 -1
  266. package/dist/core/capability/capability.test.d.ts +12 -0
  267. package/dist/core/capability/capability.test.d.ts.map +1 -0
  268. package/dist/core/capability/capability.test.js +258 -0
  269. package/dist/core/capability/capability.test.js.map +1 -0
  270. package/dist/core/capability/fs.d.ts +32 -0
  271. package/dist/core/capability/fs.d.ts.map +1 -0
  272. package/dist/core/capability/fs.js +106 -0
  273. package/dist/core/capability/fs.js.map +1 -0
  274. package/dist/core/capability/index.d.ts +68 -0
  275. package/dist/core/capability/index.d.ts.map +1 -0
  276. package/dist/core/capability/index.js +258 -0
  277. package/dist/core/capability/index.js.map +1 -0
  278. package/dist/core/capability/types.d.ts +168 -0
  279. package/dist/core/capability/types.d.ts.map +1 -0
  280. package/dist/core/capability/types.js +16 -0
  281. package/dist/core/capability/types.js.map +1 -0
  282. package/dist/core/carga-plugins/index.d.ts +49 -0
  283. package/dist/core/carga-plugins/index.d.ts.map +1 -0
  284. package/dist/core/carga-plugins/index.js +85 -0
  285. package/dist/core/carga-plugins/index.js.map +1 -0
  286. package/dist/core/carga-plugins/invalidacion.d.ts +60 -0
  287. package/dist/core/carga-plugins/invalidacion.d.ts.map +1 -0
  288. package/dist/core/carga-plugins/invalidacion.js +94 -0
  289. package/dist/core/carga-plugins/invalidacion.js.map +1 -0
  290. package/dist/core/carga-plugins/paralelo.d.ts +48 -0
  291. package/dist/core/carga-plugins/paralelo.d.ts.map +1 -0
  292. package/dist/core/carga-plugins/paralelo.js +47 -0
  293. package/dist/core/carga-plugins/paralelo.js.map +1 -0
  294. package/dist/core/colaboracion/autoresearch.d.ts +56 -0
  295. package/dist/core/colaboracion/autoresearch.d.ts.map +1 -0
  296. package/dist/core/colaboracion/autoresearch.js +95 -0
  297. package/dist/core/colaboracion/autoresearch.js.map +1 -0
  298. package/dist/core/colaboracion/index.d.ts +10 -0
  299. package/dist/core/colaboracion/index.d.ts.map +1 -0
  300. package/dist/core/colaboracion/index.js +7 -0
  301. package/dist/core/colaboracion/index.js.map +1 -0
  302. package/dist/core/colaboracion/kernels.d.ts +63 -0
  303. package/dist/core/colaboracion/kernels.d.ts.map +1 -0
  304. package/dist/core/colaboracion/kernels.js +99 -0
  305. package/dist/core/colaboracion/kernels.js.map +1 -0
  306. package/dist/core/colaboracion/rele/index.d.ts +8 -0
  307. package/dist/core/colaboracion/rele/index.d.ts.map +1 -0
  308. package/dist/core/colaboracion/rele/index.js +6 -0
  309. package/dist/core/colaboracion/rele/index.js.map +1 -0
  310. package/dist/core/colaboracion/rele/rele-servidor.d.ts +69 -0
  311. package/dist/core/colaboracion/rele/rele-servidor.d.ts.map +1 -0
  312. package/dist/core/colaboracion/rele/rele-servidor.js +197 -0
  313. package/dist/core/colaboracion/rele/rele-servidor.js.map +1 -0
  314. package/dist/core/colaboracion/rele/suscriptor.d.ts +31 -0
  315. package/dist/core/colaboracion/rele/suscriptor.d.ts.map +1 -0
  316. package/dist/core/colaboracion/rele/suscriptor.js +173 -0
  317. package/dist/core/colaboracion/rele/suscriptor.js.map +1 -0
  318. package/dist/core/colaboracion/sesion-colaborativa.d.ts +61 -0
  319. package/dist/core/colaboracion/sesion-colaborativa.d.ts.map +1 -0
  320. package/dist/core/colaboracion/sesion-colaborativa.js +127 -0
  321. package/dist/core/colaboracion/sesion-colaborativa.js.map +1 -0
  322. package/dist/core/commits/agentic.d.ts +101 -0
  323. package/dist/core/commits/agentic.d.ts.map +1 -0
  324. package/dist/core/commits/agentic.js +268 -0
  325. package/dist/core/commits/agentic.js.map +1 -0
  326. package/dist/core/commits/changelog.d.ts +37 -0
  327. package/dist/core/commits/changelog.d.ts.map +1 -0
  328. package/dist/core/commits/changelog.js +155 -0
  329. package/dist/core/commits/changelog.js.map +1 -0
  330. package/dist/core/commits/diff.d.ts.map +1 -0
  331. package/dist/core/commits/diff.js.map +1 -0
  332. package/dist/core/commits/git.d.ts +43 -0
  333. package/dist/core/commits/git.d.ts.map +1 -0
  334. package/dist/core/commits/git.js +61 -0
  335. package/dist/core/commits/git.js.map +1 -0
  336. package/dist/core/commits/split.d.ts +45 -0
  337. package/dist/core/commits/split.d.ts.map +1 -0
  338. package/dist/core/commits/split.js +128 -0
  339. package/dist/core/commits/split.js.map +1 -0
  340. package/dist/core/compactacion/comandos.d.ts +53 -0
  341. package/dist/core/compactacion/comandos.d.ts.map +1 -0
  342. package/dist/core/compactacion/comandos.js +155 -0
  343. package/dist/core/compactacion/comandos.js.map +1 -0
  344. package/dist/core/compactacion/extension.d.ts +28 -0
  345. package/dist/core/compactacion/extension.d.ts.map +1 -0
  346. package/dist/core/compactacion/extension.js +159 -0
  347. package/dist/core/compactacion/extension.js.map +1 -0
  348. package/dist/core/compactacion/handoff.d.ts +61 -0
  349. package/dist/core/compactacion/handoff.d.ts.map +1 -0
  350. package/dist/core/compactacion/handoff.js +139 -0
  351. package/dist/core/compactacion/handoff.js.map +1 -0
  352. package/dist/core/compactacion/index.d.ts +15 -0
  353. package/dist/core/compactacion/index.d.ts.map +1 -0
  354. package/dist/core/compactacion/index.js +15 -0
  355. package/dist/core/compactacion/index.js.map +1 -0
  356. package/dist/core/compactacion/prune.d.ts +38 -0
  357. package/dist/core/compactacion/prune.d.ts.map +1 -0
  358. package/dist/core/compactacion/prune.js +81 -0
  359. package/dist/core/compactacion/prune.js.map +1 -0
  360. package/dist/core/compactacion/shake.d.ts +40 -0
  361. package/dist/core/compactacion/shake.d.ts.map +1 -0
  362. package/dist/core/compactacion/shake.js +106 -0
  363. package/dist/core/compactacion/shake.js.map +1 -0
  364. package/dist/core/compactacion/tipos.d.ts +54 -0
  365. package/dist/core/compactacion/tipos.d.ts.map +1 -0
  366. package/dist/core/compactacion/tipos.js +44 -0
  367. package/dist/core/compactacion/tipos.js.map +1 -0
  368. package/dist/core/compactar/index.d.ts.map +1 -1
  369. package/dist/core/compactar/index.js.map +1 -1
  370. package/dist/core/compactar/registro-denso.d.ts.map +1 -1
  371. package/dist/core/compactar/registro-denso.js.map +1 -1
  372. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  373. package/dist/core/compaction/branch-summarization.js.map +1 -1
  374. package/dist/core/compaction/compaction.d.ts.map +1 -1
  375. package/dist/core/compaction/compaction.js.map +1 -1
  376. package/dist/core/compaction/index.d.ts.map +1 -1
  377. package/dist/core/compaction/index.js.map +1 -1
  378. package/dist/core/compaction/utils.d.ts.map +1 -1
  379. package/dist/core/compaction/utils.js.map +1 -1
  380. package/dist/core/computer/captura.d.ts.map +1 -1
  381. package/dist/core/computer/captura.js.map +1 -1
  382. package/dist/core/computer/driver.d.ts.map +1 -1
  383. package/dist/core/computer/driver.js.map +1 -1
  384. package/dist/core/computer/motor/actions.d.ts.map +1 -1
  385. package/dist/core/computer/motor/actions.js.map +1 -1
  386. package/dist/core/computer/motor/bridge.d.ts +2 -2
  387. package/dist/core/computer/motor/bridge.d.ts.map +1 -1
  388. package/dist/core/computer/motor/bridge.js.map +1 -1
  389. package/dist/core/computer/motor/cdp.d.ts.map +1 -1
  390. package/dist/core/computer/motor/cdp.js.map +1 -1
  391. package/dist/core/computer/motor/config.d.ts.map +1 -1
  392. package/dist/core/computer/motor/config.js.map +1 -1
  393. package/dist/core/computer/motor/contract.d.ts.map +1 -1
  394. package/dist/core/computer/motor/contract.js.map +1 -1
  395. package/dist/core/computer/motor/note.d.ts.map +1 -1
  396. package/dist/core/computer/motor/note.js.map +1 -1
  397. package/dist/core/computer/motor/outline.d.ts.map +1 -1
  398. package/dist/core/computer/motor/outline.js.map +1 -1
  399. package/dist/core/computer/motor/output.d.ts.map +1 -1
  400. package/dist/core/computer/motor/output.js.map +1 -1
  401. package/dist/core/computer/motor/permissions.d.ts.map +1 -1
  402. package/dist/core/computer/motor/permissions.js.map +1 -1
  403. package/dist/core/computer/motor/platform/architecture.d.ts.map +1 -1
  404. package/dist/core/computer/motor/platform/architecture.js.map +1 -1
  405. package/dist/core/computer/motor/platform/coerce.d.ts.map +1 -1
  406. package/dist/core/computer/motor/platform/coerce.js.map +1 -1
  407. package/dist/core/computer/motor/platform/index.d.ts.map +1 -1
  408. package/dist/core/computer/motor/platform/index.js.map +1 -1
  409. package/dist/core/computer/motor/platform/linux/backend.d.ts.map +1 -1
  410. package/dist/core/computer/motor/platform/linux/backend.js.map +1 -1
  411. package/dist/core/computer/motor/platform/linux/helper.d.ts.map +1 -1
  412. package/dist/core/computer/motor/platform/linux/helper.js.map +1 -1
  413. package/dist/core/computer/motor/platform/macos/backend.d.ts.map +1 -1
  414. package/dist/core/computer/motor/platform/macos/backend.js.map +1 -1
  415. package/dist/core/computer/motor/platform/macos/browser.d.ts.map +1 -1
  416. package/dist/core/computer/motor/platform/macos/browser.js.map +1 -1
  417. package/dist/core/computer/motor/platform/macos/helper.d.ts.map +1 -1
  418. package/dist/core/computer/motor/platform/macos/helper.js.map +1 -1
  419. package/dist/core/computer/motor/platform/macos/permissions.d.ts.map +1 -1
  420. package/dist/core/computer/motor/platform/macos/permissions.js.map +1 -1
  421. package/dist/core/computer/motor/platform/types.d.ts.map +1 -1
  422. package/dist/core/computer/motor/platform/types.js.map +1 -1
  423. package/dist/core/computer/motor/platform/windows/backend.d.ts.map +1 -1
  424. package/dist/core/computer/motor/platform/windows/backend.js.map +1 -1
  425. package/dist/core/computer/motor/platform/windows/helper.d.ts.map +1 -1
  426. package/dist/core/computer/motor/platform/windows/helper.js.map +1 -1
  427. package/dist/core/computer/motor/root-selection.d.ts.map +1 -1
  428. package/dist/core/computer/motor/root-selection.js.map +1 -1
  429. package/dist/core/computer/motor/runtime.d.ts.map +1 -1
  430. package/dist/core/computer/motor/runtime.js.map +1 -1
  431. package/dist/core/computer/motor/state.d.ts.map +1 -1
  432. package/dist/core/computer/motor/state.js.map +1 -1
  433. package/dist/core/computer/motor/view.d.ts.map +1 -1
  434. package/dist/core/computer/motor/view.js.map +1 -1
  435. package/dist/core/computer/motor-ada.d.ts.map +1 -1
  436. package/dist/core/computer/motor-ada.js.map +1 -1
  437. package/dist/core/computer/politica.d.ts.map +1 -1
  438. package/dist/core/computer/politica.js.map +1 -1
  439. package/dist/core/computer/tools.d.ts.map +1 -1
  440. package/dist/core/computer/tools.js.map +1 -1
  441. package/dist/core/config/quarantine.d.ts +57 -0
  442. package/dist/core/config/quarantine.d.ts.map +1 -0
  443. package/dist/core/config/quarantine.js +161 -0
  444. package/dist/core/config/quarantine.js.map +1 -0
  445. package/dist/core/config-viva/ambito.d.ts +46 -0
  446. package/dist/core/config-viva/ambito.d.ts.map +1 -0
  447. package/dist/core/config-viva/ambito.js +62 -0
  448. package/dist/core/config-viva/ambito.js.map +1 -0
  449. package/dist/core/config-viva/cache-negativa.d.ts +50 -0
  450. package/dist/core/config-viva/cache-negativa.d.ts.map +1 -0
  451. package/dist/core/config-viva/cache-negativa.js +78 -0
  452. package/dist/core/config-viva/cache-negativa.js.map +1 -0
  453. package/dist/core/config-viva/headers-vivos.d.ts +41 -0
  454. package/dist/core/config-viva/headers-vivos.d.ts.map +1 -0
  455. package/dist/core/config-viva/headers-vivos.js +43 -0
  456. package/dist/core/config-viva/headers-vivos.js.map +1 -0
  457. package/dist/core/config-viva/index.d.ts +16 -0
  458. package/dist/core/config-viva/index.d.ts.map +1 -0
  459. package/dist/core/config-viva/index.js +16 -0
  460. package/dist/core/config-viva/index.js.map +1 -0
  461. package/dist/core/config-viva/proveedor.d.ts +48 -0
  462. package/dist/core/config-viva/proveedor.d.ts.map +1 -0
  463. package/dist/core/config-viva/proveedor.js +78 -0
  464. package/dist/core/config-viva/proveedor.js.map +1 -0
  465. package/dist/core/context-breakdown.d.ts.map +1 -1
  466. package/dist/core/context-breakdown.js.map +1 -1
  467. package/dist/core/credenciales/cliente.d.ts.map +1 -1
  468. package/dist/core/credenciales/cliente.js.map +1 -1
  469. package/dist/core/credenciales/pool.d.ts +36 -1
  470. package/dist/core/credenciales/pool.d.ts.map +1 -1
  471. package/dist/core/credenciales/pool.js +56 -7
  472. package/dist/core/credenciales/pool.js.map +1 -1
  473. package/dist/core/credenciales/ranking.d.ts +56 -0
  474. package/dist/core/credenciales/ranking.d.ts.map +1 -0
  475. package/dist/core/credenciales/ranking.js +94 -0
  476. package/dist/core/credenciales/ranking.js.map +1 -0
  477. package/dist/core/credenciales/ratelimit.d.ts +54 -0
  478. package/dist/core/credenciales/ratelimit.d.ts.map +1 -0
  479. package/dist/core/credenciales/ratelimit.js +116 -0
  480. package/dist/core/credenciales/ratelimit.js.map +1 -0
  481. package/dist/core/credenciales/reposo.d.ts.map +1 -1
  482. package/dist/core/credenciales/reposo.js.map +1 -1
  483. package/dist/core/credenciales/servidor.d.ts +8 -0
  484. package/dist/core/credenciales/servidor.d.ts.map +1 -1
  485. package/dist/core/credenciales/servidor.js +9 -1
  486. package/dist/core/credenciales/servidor.js.map +1 -1
  487. package/dist/core/defaults.d.ts.map +1 -1
  488. package/dist/core/defaults.js.map +1 -1
  489. package/dist/core/descubrimiento/comandos.d.ts.map +1 -1
  490. package/dist/core/descubrimiento/comandos.js.map +1 -1
  491. package/dist/core/descubrimiento/mcp.d.ts +12 -0
  492. package/dist/core/descubrimiento/mcp.d.ts.map +1 -1
  493. package/dist/core/descubrimiento/mcp.js +32 -0
  494. package/dist/core/descubrimiento/mcp.js.map +1 -1
  495. package/dist/core/descubrimiento/reglas.d.ts.map +1 -1
  496. package/dist/core/descubrimiento/reglas.js.map +1 -1
  497. package/dist/core/descubrimiento/runtimes/index.d.ts +24 -0
  498. package/dist/core/descubrimiento/runtimes/index.d.ts.map +1 -0
  499. package/dist/core/descubrimiento/runtimes/index.js +109 -0
  500. package/dist/core/descubrimiento/runtimes/index.js.map +1 -0
  501. package/dist/core/descubrimiento/runtimes/litellm.d.ts +12 -0
  502. package/dist/core/descubrimiento/runtimes/litellm.d.ts.map +1 -0
  503. package/dist/core/descubrimiento/runtimes/litellm.js +185 -0
  504. package/dist/core/descubrimiento/runtimes/litellm.js.map +1 -0
  505. package/dist/core/descubrimiento/runtimes/lm-studio.d.ts +13 -0
  506. package/dist/core/descubrimiento/runtimes/lm-studio.d.ts.map +1 -0
  507. package/dist/core/descubrimiento/runtimes/lm-studio.js +142 -0
  508. package/dist/core/descubrimiento/runtimes/lm-studio.js.map +1 -0
  509. package/dist/core/descubrimiento/runtimes/ollama.d.ts +8 -0
  510. package/dist/core/descubrimiento/runtimes/ollama.d.ts.map +1 -0
  511. package/dist/core/descubrimiento/runtimes/ollama.js +96 -0
  512. package/dist/core/descubrimiento/runtimes/ollama.js.map +1 -0
  513. package/dist/core/descubrimiento/runtimes/tipos.d.ts +47 -0
  514. package/dist/core/descubrimiento/runtimes/tipos.d.ts.map +1 -0
  515. package/dist/core/descubrimiento/runtimes/tipos.js +10 -0
  516. package/dist/core/descubrimiento/runtimes/tipos.js.map +1 -0
  517. package/dist/core/descubrimiento/skills.d.ts.map +1 -1
  518. package/dist/core/descubrimiento/skills.js.map +1 -1
  519. package/dist/core/diagnostics.d.ts.map +1 -1
  520. package/dist/core/diagnostics.js.map +1 -1
  521. package/dist/core/dificultad/clasificador.d.ts.map +1 -1
  522. package/dist/core/dificultad/clasificador.js.map +1 -1
  523. package/dist/core/edicion/diario.d.ts.map +1 -1
  524. package/dist/core/edicion/diario.js.map +1 -1
  525. package/dist/core/edicion/hashline.d.ts.map +1 -1
  526. package/dist/core/edicion/hashline.js.map +1 -1
  527. package/dist/core/edicion/hueco.d.ts.map +1 -1
  528. package/dist/core/edicion/hueco.js.map +1 -1
  529. package/dist/core/edicion/ipynb.d.ts +51 -0
  530. package/dist/core/edicion/ipynb.d.ts.map +1 -0
  531. package/dist/core/edicion/ipynb.js +110 -0
  532. package/dist/core/edicion/ipynb.js.map +1 -0
  533. package/dist/core/edicion/limpiar-carga.d.ts.map +1 -1
  534. package/dist/core/edicion/limpiar-carga.js.map +1 -1
  535. package/dist/core/edicion/observador.d.ts.map +1 -1
  536. package/dist/core/edicion/observador.js.map +1 -1
  537. package/dist/core/edicion/parecido.d.ts.map +1 -1
  538. package/dist/core/edicion/parecido.js.map +1 -1
  539. package/dist/core/edicion/parseo.d.ts.map +1 -1
  540. package/dist/core/edicion/parseo.js.map +1 -1
  541. package/dist/core/edicion/portapapeles.d.ts +28 -0
  542. package/dist/core/edicion/portapapeles.d.ts.map +1 -0
  543. package/dist/core/edicion/portapapeles.js +49 -0
  544. package/dist/core/edicion/portapapeles.js.map +1 -0
  545. package/dist/core/edicion/reparacion.d.ts.map +1 -1
  546. package/dist/core/edicion/reparacion.js.map +1 -1
  547. package/dist/core/edicion/rutas-difusas.d.ts +44 -0
  548. package/dist/core/edicion/rutas-difusas.d.ts.map +1 -0
  549. package/dist/core/edicion/rutas-difusas.js +93 -0
  550. package/dist/core/edicion/rutas-difusas.js.map +1 -0
  551. package/dist/core/edicion/sangria.d.ts.map +1 -1
  552. package/dist/core/edicion/sangria.js.map +1 -1
  553. package/dist/core/edicion/tipos.d.ts.map +1 -1
  554. package/dist/core/edicion/tipos.js.map +1 -1
  555. package/dist/core/engine-personality.d.ts.map +1 -1
  556. package/dist/core/engine-personality.js.map +1 -1
  557. package/dist/core/errores/proveedor.d.ts.map +1 -1
  558. package/dist/core/errores/proveedor.js.map +1 -1
  559. package/dist/core/estructural/buscar.d.ts.map +1 -1
  560. package/dist/core/estructural/buscar.js.map +1 -1
  561. package/dist/core/estructural/editar.d.ts.map +1 -1
  562. package/dist/core/estructural/editar.js.map +1 -1
  563. package/dist/core/estructural/tools.d.ts.map +1 -1
  564. package/dist/core/estructural/tools.js.map +1 -1
  565. package/dist/core/event-bus.d.ts.map +1 -1
  566. package/dist/core/event-bus.js.map +1 -1
  567. package/dist/core/exec.d.ts.map +1 -1
  568. package/dist/core/exec.js.map +1 -1
  569. package/dist/core/experimental.d.ts.map +1 -1
  570. package/dist/core/experimental.js.map +1 -1
  571. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  572. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  573. package/dist/core/export-html/index.d.ts.map +1 -1
  574. package/dist/core/export-html/index.js +183 -13
  575. package/dist/core/export-html/index.js.map +1 -1
  576. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  577. package/dist/core/export-html/tool-renderer.js.map +1 -1
  578. package/dist/core/extensiones/suplantacion.d.ts.map +1 -1
  579. package/dist/core/extensiones/suplantacion.js.map +1 -1
  580. package/dist/core/extensiones/vigilancia.d.ts.map +1 -1
  581. package/dist/core/extensiones/vigilancia.js.map +1 -1
  582. package/dist/core/extensions/index.d.ts.map +1 -1
  583. package/dist/core/extensions/index.js.map +1 -1
  584. package/dist/core/extensions/loader.d.ts.map +1 -1
  585. package/dist/core/extensions/loader.js.map +1 -1
  586. package/dist/core/extensions/runner.d.ts.map +1 -1
  587. package/dist/core/extensions/runner.js.map +1 -1
  588. package/dist/core/extensions/types.d.ts.map +1 -1
  589. package/dist/core/extensions/types.js.map +1 -1
  590. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  591. package/dist/core/extensions/wrapper.js.map +1 -1
  592. package/dist/core/footer-data-provider.d.ts.map +1 -1
  593. package/dist/core/footer-data-provider.js.map +1 -1
  594. package/dist/core/gc/archivo-frio.d.ts +33 -0
  595. package/dist/core/gc/archivo-frio.d.ts.map +1 -0
  596. package/dist/core/gc/archivo-frio.js +152 -0
  597. package/dist/core/gc/archivo-frio.js.map +1 -0
  598. package/dist/core/gc/blobs-gc.d.ts +25 -0
  599. package/dist/core/gc/blobs-gc.d.ts.map +1 -0
  600. package/dist/core/gc/blobs-gc.js +143 -0
  601. package/dist/core/gc/blobs-gc.js.map +1 -0
  602. package/dist/core/gc/index.d.ts +42 -0
  603. package/dist/core/gc/index.d.ts.map +1 -0
  604. package/dist/core/gc/index.js +50 -0
  605. package/dist/core/gc/index.js.map +1 -0
  606. package/dist/core/gc/lock.d.ts +19 -0
  607. package/dist/core/gc/lock.d.ts.map +1 -0
  608. package/dist/core/gc/lock.js +48 -0
  609. package/dist/core/gc/lock.js.map +1 -0
  610. package/dist/core/gc/reconciliacion.d.ts +19 -0
  611. package/dist/core/gc/reconciliacion.d.ts.map +1 -0
  612. package/dist/core/gc/reconciliacion.js +102 -0
  613. package/dist/core/gc/reconciliacion.js.map +1 -0
  614. package/dist/core/gc/wal.d.ts +15 -0
  615. package/dist/core/gc/wal.d.ts.map +1 -0
  616. package/dist/core/gc/wal.js +44 -0
  617. package/dist/core/gc/wal.js.map +1 -0
  618. package/dist/core/harness/fuentes-de-contexto.d.ts.map +1 -1
  619. package/dist/core/harness/fuentes-de-contexto.js.map +1 -1
  620. package/dist/core/harness/refine.d.ts.map +1 -1
  621. package/dist/core/harness/refine.js.map +1 -1
  622. package/dist/core/harness/store.d.ts.map +1 -1
  623. package/dist/core/harness/store.js.map +1 -1
  624. package/dist/core/higiene/index.d.ts +8 -0
  625. package/dist/core/higiene/index.d.ts.map +1 -0
  626. package/dist/core/higiene/index.js +8 -0
  627. package/dist/core/higiene/index.js.map +1 -0
  628. package/dist/core/higiene/managed-timers.d.ts +19 -0
  629. package/dist/core/higiene/managed-timers.d.ts.map +1 -0
  630. package/dist/core/higiene/managed-timers.js +68 -0
  631. package/dist/core/higiene/managed-timers.js.map +1 -0
  632. package/dist/core/higiene/race-handler.d.ts +7 -0
  633. package/dist/core/higiene/race-handler.d.ts.map +1 -0
  634. package/dist/core/higiene/race-handler.js +32 -0
  635. package/dist/core/higiene/race-handler.js.map +1 -0
  636. package/dist/core/higiene/withHostGuard.d.ts +27 -0
  637. package/dist/core/higiene/withHostGuard.d.ts.map +1 -0
  638. package/dist/core/higiene/withHostGuard.js +79 -0
  639. package/dist/core/higiene/withHostGuard.js.map +1 -0
  640. package/dist/core/hooks/contract.d.ts.map +1 -1
  641. package/dist/core/hooks/contract.js.map +1 -1
  642. package/dist/core/hooks/runner.d.ts.map +1 -1
  643. package/dist/core/hooks/runner.js.map +1 -1
  644. package/dist/core/hooks/session-hooks.d.ts.map +1 -1
  645. package/dist/core/hooks/session-hooks.js.map +1 -1
  646. package/dist/core/hooks-ts/cargador.d.ts +29 -0
  647. package/dist/core/hooks-ts/cargador.d.ts.map +1 -0
  648. package/dist/core/hooks-ts/cargador.js +51 -0
  649. package/dist/core/hooks-ts/cargador.js.map +1 -0
  650. package/dist/core/hooks-ts/index.d.ts +25 -0
  651. package/dist/core/hooks-ts/index.d.ts.map +1 -0
  652. package/dist/core/hooks-ts/index.js +25 -0
  653. package/dist/core/hooks-ts/index.js.map +1 -0
  654. package/dist/core/hooks-ts/runner.d.ts +40 -0
  655. package/dist/core/hooks-ts/runner.d.ts.map +1 -0
  656. package/dist/core/hooks-ts/runner.js +95 -0
  657. package/dist/core/hooks-ts/runner.js.map +1 -0
  658. package/dist/core/hooks-ts/tipos.d.ts +69 -0
  659. package/dist/core/hooks-ts/tipos.d.ts.map +1 -0
  660. package/dist/core/hooks-ts/tipos.js +90 -0
  661. package/dist/core/hooks-ts/tipos.js.map +1 -0
  662. package/dist/core/http-dispatcher.d.ts.map +1 -1
  663. package/dist/core/http-dispatcher.js.map +1 -1
  664. package/dist/core/importar/formatos.d.ts.map +1 -1
  665. package/dist/core/importar/formatos.js.map +1 -1
  666. package/dist/core/index.d.ts.map +1 -1
  667. package/dist/core/index.js.map +1 -1
  668. package/dist/core/interactivo/deteccion.d.ts.map +1 -1
  669. package/dist/core/interactivo/deteccion.js.map +1 -1
  670. package/dist/core/interactivo/sesion.d.ts.map +1 -1
  671. package/dist/core/interactivo/sesion.js.map +1 -1
  672. package/dist/core/interactivo/tools.d.ts.map +1 -1
  673. package/dist/core/interactivo/tools.js.map +1 -1
  674. package/dist/core/keybindings.d.ts +170 -170
  675. package/dist/core/keybindings.d.ts.map +1 -1
  676. package/dist/core/keybindings.js.map +1 -1
  677. package/dist/core/lectura/mapa.d.ts.map +1 -1
  678. package/dist/core/lectura/mapa.js.map +1 -1
  679. package/dist/core/lectura/pdf.d.ts.map +1 -1
  680. package/dist/core/lectura/pdf.js.map +1 -1
  681. package/dist/core/lectura/sniffer.d.ts +54 -0
  682. package/dist/core/lectura/sniffer.d.ts.map +1 -0
  683. package/dist/core/lectura/sniffer.js +106 -0
  684. package/dist/core/lectura/sniffer.js.map +1 -0
  685. package/dist/core/limpieza/comprobadores.d.ts +16 -2
  686. package/dist/core/limpieza/comprobadores.d.ts.map +1 -1
  687. package/dist/core/limpieza/comprobadores.js +200 -6
  688. package/dist/core/limpieza/comprobadores.js.map +1 -1
  689. package/dist/core/limpieza/flujo.d.ts +36 -0
  690. package/dist/core/limpieza/flujo.d.ts.map +1 -0
  691. package/dist/core/limpieza/flujo.js +89 -0
  692. package/dist/core/limpieza/flujo.js.map +1 -0
  693. package/dist/core/limpieza/parseo.d.ts.map +1 -1
  694. package/dist/core/limpieza/parseo.js.map +1 -1
  695. package/dist/core/limpieza/peso.d.ts +17 -0
  696. package/dist/core/limpieza/peso.d.ts.map +1 -0
  697. package/dist/core/limpieza/peso.js +52 -0
  698. package/dist/core/limpieza/peso.js.map +1 -0
  699. package/dist/core/limpieza/pool.d.ts +44 -0
  700. package/dist/core/limpieza/pool.d.ts.map +1 -0
  701. package/dist/core/limpieza/pool.js +123 -0
  702. package/dist/core/limpieza/pool.js.map +1 -0
  703. package/dist/core/limpieza/reparacion.d.ts +19 -2
  704. package/dist/core/limpieza/reparacion.d.ts.map +1 -1
  705. package/dist/core/limpieza/reparacion.js +95 -8
  706. package/dist/core/limpieza/reparacion.js.map +1 -1
  707. package/dist/core/limpieza/tablero.d.ts +47 -0
  708. package/dist/core/limpieza/tablero.d.ts.map +1 -0
  709. package/dist/core/limpieza/tablero.js +78 -0
  710. package/dist/core/limpieza/tablero.js.map +1 -0
  711. package/dist/core/limpieza/tipos.d.ts +25 -0
  712. package/dist/core/limpieza/tipos.d.ts.map +1 -1
  713. package/dist/core/limpieza/tipos.js.map +1 -1
  714. package/dist/core/lsp/cliente.d.ts +7 -0
  715. package/dist/core/lsp/cliente.d.ts.map +1 -1
  716. package/dist/core/lsp/cliente.js +4 -2
  717. package/dist/core/lsp/cliente.js.map +1 -1
  718. package/dist/core/lsp/descubrimiento.d.ts.map +1 -1
  719. package/dist/core/lsp/descubrimiento.js.map +1 -1
  720. package/dist/core/lsp/ediciones.d.ts.map +1 -1
  721. package/dist/core/lsp/ediciones.js.map +1 -1
  722. package/dist/core/lsp/extension.d.ts +9 -0
  723. package/dist/core/lsp/extension.d.ts.map +1 -1
  724. package/dist/core/lsp/extension.js +60 -4
  725. package/dist/core/lsp/extension.js.map +1 -1
  726. package/dist/core/lsp/formato.d.ts +72 -0
  727. package/dist/core/lsp/formato.d.ts.map +1 -0
  728. package/dist/core/lsp/formato.js +117 -0
  729. package/dist/core/lsp/formato.js.map +1 -0
  730. package/dist/core/lsp/tools.d.ts +3 -3
  731. package/dist/core/lsp/tools.d.ts.map +1 -1
  732. package/dist/core/lsp/tools.js.map +1 -1
  733. package/dist/core/lsp/writethrough.d.ts +165 -0
  734. package/dist/core/lsp/writethrough.d.ts.map +1 -0
  735. package/dist/core/lsp/writethrough.js +282 -0
  736. package/dist/core/lsp/writethrough.js.map +1 -0
  737. package/dist/core/marketplace/catalogo.d.ts +32 -0
  738. package/dist/core/marketplace/catalogo.d.ts.map +1 -0
  739. package/dist/core/marketplace/catalogo.js +122 -0
  740. package/dist/core/marketplace/catalogo.js.map +1 -0
  741. package/dist/core/marketplace/doctor.d.ts +47 -0
  742. package/dist/core/marketplace/doctor.d.ts.map +1 -0
  743. package/dist/core/marketplace/doctor.js +155 -0
  744. package/dist/core/marketplace/doctor.js.map +1 -0
  745. package/dist/core/marketplace/features.d.ts +22 -0
  746. package/dist/core/marketplace/features.d.ts.map +1 -0
  747. package/dist/core/marketplace/features.js +70 -0
  748. package/dist/core/marketplace/features.js.map +1 -0
  749. package/dist/core/marketplace/index.d.ts +33 -0
  750. package/dist/core/marketplace/index.d.ts.map +1 -0
  751. package/dist/core/marketplace/index.js +33 -0
  752. package/dist/core/marketplace/index.js.map +1 -0
  753. package/dist/core/marketplace/instalar.d.ts +27 -0
  754. package/dist/core/marketplace/instalar.d.ts.map +1 -0
  755. package/dist/core/marketplace/instalar.js +50 -0
  756. package/dist/core/marketplace/instalar.js.map +1 -0
  757. package/dist/core/mcp/client.d.ts.map +1 -1
  758. package/dist/core/mcp/client.js.map +1 -1
  759. package/dist/core/mcp/manager.d.ts.map +1 -1
  760. package/dist/core/mcp/manager.js.map +1 -1
  761. package/dist/core/mcp/oauth.d.ts +138 -0
  762. package/dist/core/mcp/oauth.d.ts.map +1 -0
  763. package/dist/core/mcp/oauth.js +348 -0
  764. package/dist/core/mcp/oauth.js.map +1 -0
  765. package/dist/core/mcp/tools.d.ts.map +1 -1
  766. package/dist/core/mcp/tools.js.map +1 -1
  767. package/dist/core/memoria/almacen.d.ts +56 -0
  768. package/dist/core/memoria/almacen.d.ts.map +1 -0
  769. package/dist/core/memoria/almacen.js +214 -0
  770. package/dist/core/memoria/almacen.js.map +1 -0
  771. package/dist/core/memoria/dr/respaldo.d.ts +34 -0
  772. package/dist/core/memoria/dr/respaldo.d.ts.map +1 -0
  773. package/dist/core/memoria/dr/respaldo.js +133 -0
  774. package/dist/core/memoria/dr/respaldo.js.map +1 -0
  775. package/dist/core/memoria/embeddings.d.ts +21 -0
  776. package/dist/core/memoria/embeddings.d.ts.map +1 -0
  777. package/dist/core/memoria/embeddings.js +87 -0
  778. package/dist/core/memoria/embeddings.js.map +1 -0
  779. package/dist/core/memoria/grafo.d.ts +56 -0
  780. package/dist/core/memoria/grafo.d.ts.map +1 -0
  781. package/dist/core/memoria/grafo.js +143 -0
  782. package/dist/core/memoria/grafo.js.map +1 -0
  783. package/dist/core/memoria/redaccion.d.ts +32 -0
  784. package/dist/core/memoria/redaccion.d.ts.map +1 -0
  785. package/dist/core/memoria/redaccion.js +76 -0
  786. package/dist/core/memoria/redaccion.js.map +1 -0
  787. package/dist/core/memoria/servidor/almacen-json.d.ts +26 -0
  788. package/dist/core/memoria/servidor/almacen-json.d.ts.map +1 -0
  789. package/dist/core/memoria/servidor/almacen-json.js +90 -0
  790. package/dist/core/memoria/servidor/almacen-json.js.map +1 -0
  791. package/dist/core/memoria/servidor/servidor.d.ts +43 -0
  792. package/dist/core/memoria/servidor/servidor.d.ts.map +1 -0
  793. package/dist/core/memoria/servidor/servidor.js +195 -0
  794. package/dist/core/memoria/servidor/servidor.js.map +1 -0
  795. package/dist/core/memoria/servidor/tipos.d.ts +44 -0
  796. package/dist/core/memoria/servidor/tipos.d.ts.map +1 -0
  797. package/dist/core/memoria/servidor/tipos.js +12 -0
  798. package/dist/core/memoria/servidor/tipos.js.map +1 -0
  799. package/dist/core/memoria/tipos.d.ts +63 -0
  800. package/dist/core/memoria/tipos.d.ts.map +1 -0
  801. package/dist/core/memoria/tipos.js +14 -0
  802. package/dist/core/memoria/tipos.js.map +1 -0
  803. package/dist/core/memory-engine/audit-export.d.ts.map +1 -1
  804. package/dist/core/memory-engine/audit-export.js.map +1 -1
  805. package/dist/core/memory-engine/audit-indice.d.ts.map +1 -1
  806. package/dist/core/memory-engine/audit-indice.js.map +1 -1
  807. package/dist/core/memory-engine/audit.d.ts.map +1 -1
  808. package/dist/core/memory-engine/audit.js.map +1 -1
  809. package/dist/core/memory-engine/engine.d.ts +7 -0
  810. package/dist/core/memory-engine/engine.d.ts.map +1 -1
  811. package/dist/core/memory-engine/engine.js.map +1 -1
  812. package/dist/core/memory-engine/inverted-index.d.ts.map +1 -1
  813. package/dist/core/memory-engine/inverted-index.js.map +1 -1
  814. package/dist/core/memory-engine/keychain.d.ts.map +1 -1
  815. package/dist/core/memory-engine/keychain.js.map +1 -1
  816. package/dist/core/memory-engine/observation-store.d.ts +1 -0
  817. package/dist/core/memory-engine/observation-store.d.ts.map +1 -1
  818. package/dist/core/memory-engine/observation-store.js.map +1 -1
  819. package/dist/core/memory-engine/refinements.d.ts.map +1 -1
  820. package/dist/core/memory-engine/refinements.js.map +1 -1
  821. package/dist/core/memory-engine/scanner.d.ts.map +1 -1
  822. package/dist/core/memory-engine/scanner.js.map +1 -1
  823. package/dist/core/memory-engine/security.d.ts.map +1 -1
  824. package/dist/core/memory-engine/security.js.map +1 -1
  825. package/dist/core/memory-engine/session-indexer.d.ts.map +1 -1
  826. package/dist/core/memory-engine/session-indexer.js.map +1 -1
  827. package/dist/core/memory-engine/tools.d.ts.map +1 -1
  828. package/dist/core/memory-engine/tools.js.map +1 -1
  829. package/dist/core/memory-engine/types.d.ts.map +1 -1
  830. package/dist/core/memory-engine/types.js.map +1 -1
  831. package/dist/core/memory-engine/vault.d.ts.map +1 -1
  832. package/dist/core/memory-engine/vault.js.map +1 -1
  833. package/dist/core/messages.d.ts.map +1 -1
  834. package/dist/core/messages.js.map +1 -1
  835. package/dist/core/metaharness/cli.d.ts +19 -0
  836. package/dist/core/metaharness/cli.d.ts.map +1 -0
  837. package/dist/core/metaharness/cli.js +171 -0
  838. package/dist/core/metaharness/cli.js.map +1 -0
  839. package/dist/core/metaharness/comparar.d.ts +21 -0
  840. package/dist/core/metaharness/comparar.d.ts.map +1 -0
  841. package/dist/core/metaharness/comparar.js +64 -0
  842. package/dist/core/metaharness/comparar.js.map +1 -0
  843. package/dist/core/metaharness/ejecutar.d.ts +70 -0
  844. package/dist/core/metaharness/ejecutar.d.ts.map +1 -0
  845. package/dist/core/metaharness/ejecutar.js +249 -0
  846. package/dist/core/metaharness/ejecutar.js.map +1 -0
  847. package/dist/core/metaharness/tipos.d.ts +142 -0
  848. package/dist/core/metaharness/tipos.d.ts.map +1 -0
  849. package/dist/core/metaharness/tipos.js +17 -0
  850. package/dist/core/metaharness/tipos.js.map +1 -0
  851. package/dist/core/model-config.d.ts +8 -8
  852. package/dist/core/model-config.d.ts.map +1 -1
  853. package/dist/core/model-config.js.map +1 -1
  854. package/dist/core/model-registry.d.ts.map +1 -1
  855. package/dist/core/model-registry.js.map +1 -1
  856. package/dist/core/model-resolver.d.ts.map +1 -1
  857. package/dist/core/model-resolver.js.map +1 -1
  858. package/dist/core/model-runtime.d.ts.map +1 -1
  859. package/dist/core/model-runtime.js.map +1 -1
  860. package/dist/core/models-store.d.ts.map +1 -1
  861. package/dist/core/models-store.js.map +1 -1
  862. package/dist/core/muestreo-restringido.d.ts.map +1 -1
  863. package/dist/core/muestreo-restringido.js.map +1 -1
  864. package/dist/core/orphan-process-journal.d.ts.map +1 -1
  865. package/dist/core/orphan-process-journal.js.map +1 -1
  866. package/dist/core/output-guard.d.ts.map +1 -1
  867. package/dist/core/output-guard.js.map +1 -1
  868. package/dist/core/package-manager.d.ts.map +1 -1
  869. package/dist/core/package-manager.js.map +1 -1
  870. package/dist/core/parche/aplicar.d.ts +19 -0
  871. package/dist/core/parche/aplicar.d.ts.map +1 -0
  872. package/dist/core/parche/aplicar.js +243 -0
  873. package/dist/core/parche/aplicar.js.map +1 -0
  874. package/dist/core/parche/parser.d.ts +38 -0
  875. package/dist/core/parche/parser.d.ts.map +1 -0
  876. package/dist/core/parche/parser.js +217 -0
  877. package/dist/core/parche/parser.js.map +1 -0
  878. package/dist/core/parche/registro.d.ts +12 -0
  879. package/dist/core/parche/registro.d.ts.map +1 -0
  880. package/dist/core/parche/registro.js +58 -0
  881. package/dist/core/parche/registro.js.map +1 -0
  882. package/dist/core/perfiles/index.d.ts +22 -0
  883. package/dist/core/perfiles/index.d.ts.map +1 -0
  884. package/dist/core/perfiles/index.js +21 -0
  885. package/dist/core/perfiles/index.js.map +1 -0
  886. package/dist/core/perfiles/resolver.d.ts +51 -0
  887. package/dist/core/perfiles/resolver.d.ts.map +1 -0
  888. package/dist/core/perfiles/resolver.js +329 -0
  889. package/dist/core/perfiles/resolver.js.map +1 -0
  890. package/dist/core/perfiles/tipos.d.ts +69 -0
  891. package/dist/core/perfiles/tipos.d.ts.map +1 -0
  892. package/dist/core/perfiles/tipos.js +98 -0
  893. package/dist/core/perfiles/tipos.js.map +1 -0
  894. package/dist/core/pi-manifest.d.ts.map +1 -1
  895. package/dist/core/pi-manifest.js.map +1 -1
  896. package/dist/core/privacidad/categorias-especiales.d.ts.map +1 -1
  897. package/dist/core/privacidad/categorias-especiales.js +4 -0
  898. package/dist/core/privacidad/categorias-especiales.js.map +1 -1
  899. package/dist/core/privacidad/tapar.d.ts.map +1 -1
  900. package/dist/core/privacidad/tapar.js.map +1 -1
  901. package/dist/core/project-memory.d.ts.map +1 -1
  902. package/dist/core/project-memory.js.map +1 -1
  903. package/dist/core/project-trust.d.ts.map +1 -1
  904. package/dist/core/project-trust.js.map +1 -1
  905. package/dist/core/prompt-cache/diagnostics.d.ts.map +1 -1
  906. package/dist/core/prompt-cache/diagnostics.js.map +1 -1
  907. package/dist/core/prompt-cache/index.d.ts.map +1 -1
  908. package/dist/core/prompt-cache/index.js.map +1 -1
  909. package/dist/core/prompt-cache/payload.d.ts.map +1 -1
  910. package/dist/core/prompt-cache/payload.js.map +1 -1
  911. package/dist/core/prompt-cache/stabilize.d.ts.map +1 -1
  912. package/dist/core/prompt-cache/stabilize.js.map +1 -1
  913. package/dist/core/prompt-cache/stats.d.ts.map +1 -1
  914. package/dist/core/prompt-cache/stats.js.map +1 -1
  915. package/dist/core/prompt-eleccion.d.ts.map +1 -1
  916. package/dist/core/prompt-eleccion.js.map +1 -1
  917. package/dist/core/prompt-optimizer.d.ts.map +1 -1
  918. package/dist/core/prompt-optimizer.js.map +1 -1
  919. package/dist/core/prompt-templates.d.ts.map +1 -1
  920. package/dist/core/prompt-templates.js.map +1 -1
  921. package/dist/core/prompts/montar.d.ts.map +1 -1
  922. package/dist/core/prompts/montar.js.map +1 -1
  923. package/dist/core/prompts/plantilla.d.ts.map +1 -1
  924. package/dist/core/prompts/plantilla.js.map +1 -1
  925. package/dist/core/proveedores-registry/definiciones.d.ts +15 -0
  926. package/dist/core/proveedores-registry/definiciones.d.ts.map +1 -0
  927. package/dist/core/proveedores-registry/definiciones.js +22 -0
  928. package/dist/core/proveedores-registry/definiciones.js.map +1 -0
  929. package/dist/core/proveedores-registry/index.d.ts +14 -0
  930. package/dist/core/proveedores-registry/index.d.ts.map +1 -0
  931. package/dist/core/proveedores-registry/index.js +13 -0
  932. package/dist/core/proveedores-registry/index.js.map +1 -0
  933. package/dist/core/proveedores-registry/resolver.d.ts +25 -0
  934. package/dist/core/proveedores-registry/resolver.d.ts.map +1 -0
  935. package/dist/core/proveedores-registry/resolver.js +69 -0
  936. package/dist/core/proveedores-registry/resolver.js.map +1 -0
  937. package/dist/core/proveedores-registry/tipos.d.ts +47 -0
  938. package/dist/core/proveedores-registry/tipos.d.ts.map +1 -0
  939. package/dist/core/proveedores-registry/tipos.js +15 -0
  940. package/dist/core/proveedores-registry/tipos.js.map +1 -0
  941. package/dist/core/provider-attribution.d.ts.map +1 -1
  942. package/dist/core/provider-attribution.js.map +1 -1
  943. package/dist/core/provider-composer.d.ts.map +1 -1
  944. package/dist/core/provider-composer.js.map +1 -1
  945. package/dist/core/radius.d.ts.map +1 -1
  946. package/dist/core/radius.js.map +1 -1
  947. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  948. package/dist/core/remote-catalog-provider.js.map +1 -1
  949. package/dist/core/remoto/destino.d.ts.map +1 -1
  950. package/dist/core/remoto/destino.js.map +1 -1
  951. package/dist/core/remoto/ejecutor.d.ts.map +1 -1
  952. package/dist/core/remoto/ejecutor.js.map +1 -1
  953. package/dist/core/remoto/ficheros.d.ts.map +1 -1
  954. package/dist/core/remoto/ficheros.js.map +1 -1
  955. package/dist/core/remoto/registro-extension.d.ts.map +1 -1
  956. package/dist/core/remoto/registro-extension.js.map +1 -1
  957. package/dist/core/remoto/tools.d.ts.map +1 -1
  958. package/dist/core/remoto/tools.js.map +1 -1
  959. package/dist/core/reparacion/index.d.ts +2 -0
  960. package/dist/core/reparacion/index.d.ts.map +1 -0
  961. package/dist/core/reparacion/index.js +2 -0
  962. package/dist/core/reparacion/index.js.map +1 -0
  963. package/dist/core/reparacion/reparar-hunk.d.ts +27 -0
  964. package/dist/core/reparacion/reparar-hunk.d.ts.map +1 -0
  965. package/dist/core/reparacion/reparar-hunk.js +139 -0
  966. package/dist/core/reparacion/reparar-hunk.js.map +1 -0
  967. package/dist/core/resolve-config-value.d.ts.map +1 -1
  968. package/dist/core/resolve-config-value.js.map +1 -1
  969. package/dist/core/resource-loader.d.ts +13 -0
  970. package/dist/core/resource-loader.d.ts.map +1 -1
  971. package/dist/core/resource-loader.js +7 -4
  972. package/dist/core/resource-loader.js.map +1 -1
  973. package/dist/core/revision/dispositions.d.ts +86 -0
  974. package/dist/core/revision/dispositions.d.ts.map +1 -0
  975. package/dist/core/revision/dispositions.js +137 -0
  976. package/dist/core/revision/dispositions.js.map +1 -0
  977. package/dist/core/revision/hallazgo.d.ts.map +1 -1
  978. package/dist/core/revision/hallazgo.js.map +1 -1
  979. package/dist/core/revision/procedencia.d.ts +63 -0
  980. package/dist/core/revision/procedencia.d.ts.map +1 -0
  981. package/dist/core/revision/procedencia.js +72 -0
  982. package/dist/core/revision/procedencia.js.map +1 -0
  983. package/dist/core/revision/publicar.d.ts +26 -0
  984. package/dist/core/revision/publicar.d.ts.map +1 -0
  985. package/dist/core/revision/publicar.js +34 -0
  986. package/dist/core/revision/publicar.js.map +1 -0
  987. package/dist/core/revision/revisor.d.ts.map +1 -1
  988. package/dist/core/revision/revisor.js.map +1 -1
  989. package/dist/core/revision/sarif.d.ts.map +1 -1
  990. package/dist/core/revision/sarif.js.map +1 -1
  991. package/dist/core/router-uris/index.d.ts +12 -0
  992. package/dist/core/router-uris/index.d.ts.map +1 -0
  993. package/dist/core/router-uris/index.js +12 -0
  994. package/dist/core/router-uris/index.js.map +1 -0
  995. package/dist/core/router-uris/router.d.ts +2 -0
  996. package/dist/core/router-uris/router.d.ts.map +1 -0
  997. package/dist/core/router-uris/router.js +2 -0
  998. package/dist/core/router-uris/router.js.map +1 -0
  999. package/dist/core/runtime-credentials.d.ts.map +1 -1
  1000. package/dist/core/runtime-credentials.js.map +1 -1
  1001. package/dist/core/rutas/envoltorio.d.ts +20 -0
  1002. package/dist/core/rutas/envoltorio.d.ts.map +1 -0
  1003. package/dist/core/rutas/envoltorio.js +48 -0
  1004. package/dist/core/rutas/envoltorio.js.map +1 -0
  1005. package/dist/core/rutas/index.d.ts +11 -0
  1006. package/dist/core/rutas/index.d.ts.map +1 -0
  1007. package/dist/core/rutas/index.js +11 -0
  1008. package/dist/core/rutas/index.js.map +1 -0
  1009. package/dist/core/rutas/router.d.ts +82 -0
  1010. package/dist/core/rutas/router.d.ts.map +1 -0
  1011. package/dist/core/rutas/router.js +161 -0
  1012. package/dist/core/rutas/router.js.map +1 -0
  1013. package/dist/core/scheduler/scheduler.d.ts.map +1 -1
  1014. package/dist/core/scheduler/scheduler.js.map +1 -1
  1015. package/dist/core/sdk.d.ts.map +1 -1
  1016. package/dist/core/sdk.js.map +1 -1
  1017. package/dist/core/secretos/extension.d.ts +31 -0
  1018. package/dist/core/secretos/extension.d.ts.map +1 -0
  1019. package/dist/core/secretos/extension.js +64 -0
  1020. package/dist/core/secretos/extension.js.map +1 -0
  1021. package/dist/core/secretos/index.d.ts +75 -0
  1022. package/dist/core/secretos/index.d.ts.map +1 -0
  1023. package/dist/core/secretos/index.js +385 -0
  1024. package/dist/core/secretos/index.js.map +1 -0
  1025. package/dist/core/secretos/message-transform.d.ts +44 -0
  1026. package/dist/core/secretos/message-transform.d.ts.map +1 -0
  1027. package/dist/core/secretos/message-transform.js +246 -0
  1028. package/dist/core/secretos/message-transform.js.map +1 -0
  1029. package/dist/core/secretos/obfuscator.d.ts +30 -0
  1030. package/dist/core/secretos/obfuscator.d.ts.map +1 -0
  1031. package/dist/core/secretos/obfuscator.js +1182 -0
  1032. package/dist/core/secretos/obfuscator.js.map +1 -0
  1033. package/dist/core/secretos/placeholder-scan.d.ts +96 -0
  1034. package/dist/core/secretos/placeholder-scan.d.ts.map +1 -0
  1035. package/dist/core/secretos/placeholder-scan.js +433 -0
  1036. package/dist/core/secretos/placeholder-scan.js.map +1 -0
  1037. package/dist/core/secretos/placeholder.d.ts +95 -0
  1038. package/dist/core/secretos/placeholder.d.ts.map +1 -0
  1039. package/dist/core/secretos/placeholder.js +283 -0
  1040. package/dist/core/secretos/placeholder.js.map +1 -0
  1041. package/dist/core/secretos/regex.d.ts +3 -0
  1042. package/dist/core/secretos/regex.d.ts.map +1 -0
  1043. package/dist/core/secretos/regex.js +19 -0
  1044. package/dist/core/secretos/regex.js.map +1 -0
  1045. package/dist/core/secretos/replacement.d.ts +83 -0
  1046. package/dist/core/secretos/replacement.d.ts.map +1 -0
  1047. package/dist/core/secretos/replacement.js +211 -0
  1048. package/dist/core/secretos/replacement.js.map +1 -0
  1049. package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts.map +1 -1
  1050. package/dist/core/sesion/cerrar-llamadas-abiertas.js.map +1 -1
  1051. package/dist/core/sesion/journal-tree.d.ts +73 -0
  1052. package/dist/core/sesion/journal-tree.d.ts.map +1 -0
  1053. package/dist/core/sesion/journal-tree.js +241 -0
  1054. package/dist/core/sesion/journal-tree.js.map +1 -0
  1055. package/dist/core/sesion/turn-recovery.d.ts +48 -0
  1056. package/dist/core/sesion/turn-recovery.d.ts.map +1 -0
  1057. package/dist/core/sesion/turn-recovery.js +182 -0
  1058. package/dist/core/sesion/turn-recovery.js.map +1 -0
  1059. package/dist/core/session-cwd.d.ts.map +1 -1
  1060. package/dist/core/session-cwd.js.map +1 -1
  1061. package/dist/core/session-manager.d.ts.map +1 -1
  1062. package/dist/core/session-manager.js.map +1 -1
  1063. package/dist/core/settings-diagnostics.d.ts.map +1 -1
  1064. package/dist/core/settings-diagnostics.js.map +1 -1
  1065. package/dist/core/settings-manager.d.ts +2 -2
  1066. package/dist/core/settings-manager.d.ts.map +1 -1
  1067. package/dist/core/settings-manager.js.map +1 -1
  1068. package/dist/core/share/cifrado.d.ts +39 -0
  1069. package/dist/core/share/cifrado.d.ts.map +1 -0
  1070. package/dist/core/share/cifrado.js +81 -0
  1071. package/dist/core/share/cifrado.js.map +1 -0
  1072. package/dist/core/share/exportar.d.ts +69 -0
  1073. package/dist/core/share/exportar.d.ts.map +1 -0
  1074. package/dist/core/share/exportar.js +247 -0
  1075. package/dist/core/share/exportar.js.map +1 -0
  1076. package/dist/core/skills.d.ts.map +1 -1
  1077. package/dist/core/skills.js.map +1 -1
  1078. package/dist/core/slash-commands.d.ts.map +1 -1
  1079. package/dist/core/slash-commands.js.map +1 -1
  1080. package/dist/core/source-info.d.ts.map +1 -1
  1081. package/dist/core/source-info.js.map +1 -1
  1082. package/dist/core/stream-guard/guardia.d.ts +45 -0
  1083. package/dist/core/stream-guard/guardia.d.ts.map +1 -0
  1084. package/dist/core/stream-guard/guardia.js +100 -0
  1085. package/dist/core/stream-guard/guardia.js.map +1 -0
  1086. package/dist/core/stream-guard/index.d.ts +9 -0
  1087. package/dist/core/stream-guard/index.d.ts.map +1 -0
  1088. package/dist/core/stream-guard/index.js +7 -0
  1089. package/dist/core/stream-guard/index.js.map +1 -0
  1090. package/dist/core/stream-guard/replay.d.ts +39 -0
  1091. package/dist/core/stream-guard/replay.d.ts.map +1 -0
  1092. package/dist/core/stream-guard/replay.js +68 -0
  1093. package/dist/core/stream-guard/replay.js.map +1 -0
  1094. package/dist/core/system-prompt.d.ts.map +1 -1
  1095. package/dist/core/system-prompt.js.map +1 -1
  1096. package/dist/core/telemetria/otlp.d.ts.map +1 -1
  1097. package/dist/core/telemetria/otlp.js.map +1 -1
  1098. package/dist/core/telemetry/otel-genai.d.ts +44 -0
  1099. package/dist/core/telemetry/otel-genai.d.ts.map +1 -0
  1100. package/dist/core/telemetry/otel-genai.js +124 -0
  1101. package/dist/core/telemetry/otel-genai.js.map +1 -0
  1102. package/dist/core/telemetry.d.ts.map +1 -1
  1103. package/dist/core/telemetry.js.map +1 -1
  1104. package/dist/core/terminal/backlog-guard.d.ts +53 -0
  1105. package/dist/core/terminal/backlog-guard.d.ts.map +1 -0
  1106. package/dist/core/terminal/backlog-guard.js +122 -0
  1107. package/dist/core/terminal/backlog-guard.js.map +1 -0
  1108. package/dist/core/terminal/conpty.d.ts +29 -0
  1109. package/dist/core/terminal/conpty.d.ts.map +1 -0
  1110. package/dist/core/terminal/conpty.js +67 -0
  1111. package/dist/core/terminal/conpty.js.map +1 -0
  1112. package/dist/core/terminal/conptyChunking.d.ts +2 -0
  1113. package/dist/core/terminal/conptyChunking.d.ts.map +1 -0
  1114. package/dist/core/terminal/conptyChunking.js +2 -0
  1115. package/dist/core/terminal/conptyChunking.js.map +1 -0
  1116. package/dist/core/terminal/index.d.ts +5 -0
  1117. package/dist/core/terminal/index.d.ts.map +1 -0
  1118. package/dist/core/terminal/index.js +5 -0
  1119. package/dist/core/terminal/index.js.map +1 -0
  1120. package/dist/core/terminal/loop-watchdog.d.ts +43 -0
  1121. package/dist/core/terminal/loop-watchdog.d.ts.map +1 -0
  1122. package/dist/core/terminal/loop-watchdog.js +117 -0
  1123. package/dist/core/terminal/loop-watchdog.js.map +1 -0
  1124. package/dist/core/terminal/runner.d.ts +55 -0
  1125. package/dist/core/terminal/runner.d.ts.map +1 -0
  1126. package/dist/core/terminal/runner.js +102 -0
  1127. package/dist/core/terminal/runner.js.map +1 -0
  1128. package/dist/core/timings.d.ts.map +1 -1
  1129. package/dist/core/timings.js.map +1 -1
  1130. package/dist/core/tools/apply_patch.d.ts +29 -0
  1131. package/dist/core/tools/apply_patch.d.ts.map +1 -0
  1132. package/dist/core/tools/apply_patch.js +54 -0
  1133. package/dist/core/tools/apply_patch.js.map +1 -0
  1134. package/dist/core/tools/bash.d.ts.map +1 -1
  1135. package/dist/core/tools/bash.js.map +1 -1
  1136. package/dist/core/tools/coercion-argumentos.d.ts.map +1 -1
  1137. package/dist/core/tools/coercion-argumentos.js.map +1 -1
  1138. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  1139. package/dist/core/tools/edit-diff.js.map +1 -1
  1140. package/dist/core/tools/edit.d.ts.map +1 -1
  1141. package/dist/core/tools/edit.js +43 -1
  1142. package/dist/core/tools/edit.js.map +1 -1
  1143. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  1144. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  1145. package/dist/core/tools/find.d.ts.map +1 -1
  1146. package/dist/core/tools/find.js.map +1 -1
  1147. package/dist/core/tools/grep.d.ts.map +1 -1
  1148. package/dist/core/tools/grep.js.map +1 -1
  1149. package/dist/core/tools/index.d.ts.map +1 -1
  1150. package/dist/core/tools/index.js.map +1 -1
  1151. package/dist/core/tools/json-tolerante.d.ts.map +1 -1
  1152. package/dist/core/tools/json-tolerante.js.map +1 -1
  1153. package/dist/core/tools/ls.d.ts.map +1 -1
  1154. package/dist/core/tools/ls.js.map +1 -1
  1155. package/dist/core/tools/noop-loop-guard.d.ts +46 -0
  1156. package/dist/core/tools/noop-loop-guard.d.ts.map +1 -0
  1157. package/dist/core/tools/noop-loop-guard.js +57 -0
  1158. package/dist/core/tools/noop-loop-guard.js.map +1 -0
  1159. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  1160. package/dist/core/tools/output-accumulator.js.map +1 -1
  1161. package/dist/core/tools/path-utils.d.ts.map +1 -1
  1162. package/dist/core/tools/path-utils.js.map +1 -1
  1163. package/dist/core/tools/project-memory-tool.d.ts.map +1 -1
  1164. package/dist/core/tools/project-memory-tool.js.map +1 -1
  1165. package/dist/core/tools/read.d.ts.map +1 -1
  1166. package/dist/core/tools/read.js.map +1 -1
  1167. package/dist/core/tools/render-utils.d.ts.map +1 -1
  1168. package/dist/core/tools/render-utils.js.map +1 -1
  1169. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  1170. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  1171. package/dist/core/tools/truncate.d.ts.map +1 -1
  1172. package/dist/core/tools/truncate.js.map +1 -1
  1173. package/dist/core/tools/write.d.ts.map +1 -1
  1174. package/dist/core/tools/write.js.map +1 -1
  1175. package/dist/core/trust-manager.d.ts.map +1 -1
  1176. package/dist/core/trust-manager.js.map +1 -1
  1177. package/dist/core/ttsr/captura.d.ts +72 -0
  1178. package/dist/core/ttsr/captura.d.ts.map +1 -0
  1179. package/dist/core/ttsr/captura.js +183 -0
  1180. package/dist/core/ttsr/captura.js.map +1 -0
  1181. package/dist/core/ttsr/index.d.ts +24 -0
  1182. package/dist/core/ttsr/index.d.ts.map +1 -0
  1183. package/dist/core/ttsr/index.js +57 -0
  1184. package/dist/core/ttsr/index.js.map +1 -0
  1185. package/dist/core/ttsr/preview.d.ts +48 -0
  1186. package/dist/core/ttsr/preview.d.ts.map +1 -0
  1187. package/dist/core/ttsr/preview.js +83 -0
  1188. package/dist/core/ttsr/preview.js.map +1 -0
  1189. package/dist/core/turno-vacio/detectar.d.ts.map +1 -1
  1190. package/dist/core/turno-vacio/detectar.js.map +1 -1
  1191. package/dist/core/undo/journal.d.ts.map +1 -1
  1192. package/dist/core/undo/journal.js.map +1 -1
  1193. package/dist/core/urls-internas/auditoria.d.ts.map +1 -1
  1194. package/dist/core/urls-internas/auditoria.js.map +1 -1
  1195. package/dist/core/urls-internas/boveda.d.ts.map +1 -1
  1196. package/dist/core/urls-internas/boveda.js.map +1 -1
  1197. package/dist/core/urls-internas/lector.d.ts +14 -10
  1198. package/dist/core/urls-internas/lector.d.ts.map +1 -1
  1199. package/dist/core/urls-internas/lector.js +50 -36
  1200. package/dist/core/urls-internas/lector.js.map +1 -1
  1201. package/dist/core/urls-internas/memoria.d.ts.map +1 -1
  1202. package/dist/core/urls-internas/memoria.js.map +1 -1
  1203. package/dist/core/urls-internas/parse.d.ts +6 -13
  1204. package/dist/core/urls-internas/parse.d.ts.map +1 -1
  1205. package/dist/core/urls-internas/parse.js +6 -17
  1206. package/dist/core/urls-internas/parse.js.map +1 -1
  1207. package/dist/core/urls-internas/reglas.d.ts.map +1 -1
  1208. package/dist/core/urls-internas/reglas.js.map +1 -1
  1209. package/dist/core/usage/aggregate.d.ts +1 -0
  1210. package/dist/core/usage/aggregate.d.ts.map +1 -1
  1211. package/dist/core/usage/aggregate.js +1 -1
  1212. package/dist/core/usage/aggregate.js.map +1 -1
  1213. package/dist/core/usage/cuota/anthropic.d.ts.map +1 -1
  1214. package/dist/core/usage/cuota/anthropic.js.map +1 -1
  1215. package/dist/core/usage/cuota/cache.d.ts.map +1 -1
  1216. package/dist/core/usage/cuota/cache.js.map +1 -1
  1217. package/dist/core/usage/cuota/github-copilot.d.ts.map +1 -1
  1218. package/dist/core/usage/cuota/github-copilot.js.map +1 -1
  1219. package/dist/core/usage/cuota/google-gemini.d.ts.map +1 -1
  1220. package/dist/core/usage/cuota/google-gemini.js.map +1 -1
  1221. package/dist/core/usage/cuota/index.d.ts.map +1 -1
  1222. package/dist/core/usage/cuota/index.js.map +1 -1
  1223. package/dist/core/usage/cuota/openai-codex.d.ts.map +1 -1
  1224. package/dist/core/usage/cuota/openai-codex.js.map +1 -1
  1225. package/dist/core/usage/cuota/openrouter.d.ts.map +1 -1
  1226. package/dist/core/usage/cuota/openrouter.js.map +1 -1
  1227. package/dist/core/usage/cuota/tipos.d.ts.map +1 -1
  1228. package/dist/core/usage/cuota/tipos.js.map +1 -1
  1229. package/dist/core/usage/index.d.ts +11 -0
  1230. package/dist/core/usage/index.d.ts.map +1 -0
  1231. package/dist/core/usage/index.js +11 -0
  1232. package/dist/core/usage/index.js.map +1 -0
  1233. package/dist/core/usage/multi.d.ts +62 -0
  1234. package/dist/core/usage/multi.d.ts.map +1 -0
  1235. package/dist/core/usage/multi.js +122 -0
  1236. package/dist/core/usage/multi.js.map +1 -0
  1237. package/dist/core/usage/redaccion.d.ts +48 -0
  1238. package/dist/core/usage/redaccion.d.ts.map +1 -0
  1239. package/dist/core/usage/redaccion.js +72 -0
  1240. package/dist/core/usage/redaccion.js.map +1 -0
  1241. package/dist/core/usage-totals.d.ts.map +1 -1
  1242. package/dist/core/usage-totals.js.map +1 -1
  1243. package/dist/core/utils/atomic-write.d.ts +55 -0
  1244. package/dist/core/utils/atomic-write.d.ts.map +1 -0
  1245. package/dist/core/utils/atomic-write.js +293 -0
  1246. package/dist/core/utils/atomic-write.js.map +1 -0
  1247. package/dist/core/utils/git.d.ts +24 -0
  1248. package/dist/core/utils/git.d.ts.map +1 -0
  1249. package/dist/core/utils/git.js +107 -0
  1250. package/dist/core/utils/git.js.map +1 -0
  1251. package/dist/core/utils/logger.d.ts +26 -0
  1252. package/dist/core/utils/logger.d.ts.map +1 -0
  1253. package/dist/core/utils/logger.js +104 -0
  1254. package/dist/core/utils/logger.js.map +1 -0
  1255. package/dist/core/utils/shell-snapshot.d.ts +21 -0
  1256. package/dist/core/utils/shell-snapshot.d.ts.map +1 -0
  1257. package/dist/core/utils/shell-snapshot.js +32 -0
  1258. package/dist/core/utils/shell-snapshot.js.map +1 -0
  1259. package/dist/core/utils/startup-watchdog.d.ts +11 -0
  1260. package/dist/core/utils/startup-watchdog.d.ts.map +1 -0
  1261. package/dist/core/utils/startup-watchdog.js +34 -0
  1262. package/dist/core/utils/startup-watchdog.js.map +1 -0
  1263. package/dist/core/utils/tls-ca-shim.d.ts +17 -0
  1264. package/dist/core/utils/tls-ca-shim.d.ts.map +1 -0
  1265. package/dist/core/utils/tls-ca-shim.js +33 -0
  1266. package/dist/core/utils/tls-ca-shim.js.map +1 -0
  1267. package/dist/core/web/agregador.d.ts +67 -0
  1268. package/dist/core/web/agregador.d.ts.map +1 -0
  1269. package/dist/core/web/agregador.js +182 -0
  1270. package/dist/core/web/agregador.js.map +1 -0
  1271. package/dist/core/web/busqueda-nativa.d.ts.map +1 -1
  1272. package/dist/core/web/busqueda-nativa.js.map +1 -1
  1273. package/dist/core/web/consulta.d.ts +53 -0
  1274. package/dist/core/web/consulta.d.ts.map +1 -0
  1275. package/dist/core/web/consulta.js +213 -0
  1276. package/dist/core/web/consulta.js.map +1 -0
  1277. package/dist/core/web/destino.d.ts +11 -0
  1278. package/dist/core/web/destino.d.ts.map +1 -1
  1279. package/dist/core/web/destino.js +35 -0
  1280. package/dist/core/web/destino.js.map +1 -1
  1281. package/dist/core/web/load-page.d.ts +52 -0
  1282. package/dist/core/web/load-page.d.ts.map +1 -0
  1283. package/dist/core/web/load-page.js +221 -0
  1284. package/dist/core/web/load-page.js.map +1 -0
  1285. package/dist/core/web/proveedores/brave.d.ts.map +1 -1
  1286. package/dist/core/web/proveedores/brave.js.map +1 -1
  1287. package/dist/core/web/proveedores/claves.d.ts.map +1 -1
  1288. package/dist/core/web/proveedores/claves.js.map +1 -1
  1289. package/dist/core/web/proveedores/duckduckgo.d.ts.map +1 -1
  1290. package/dist/core/web/proveedores/duckduckgo.js.map +1 -1
  1291. package/dist/core/web/proveedores/ecosia.d.ts.map +1 -1
  1292. package/dist/core/web/proveedores/ecosia.js.map +1 -1
  1293. package/dist/core/web/proveedores/exa.d.ts.map +1 -1
  1294. package/dist/core/web/proveedores/exa.js.map +1 -1
  1295. package/dist/core/web/proveedores/mojeek.d.ts.map +1 -1
  1296. package/dist/core/web/proveedores/mojeek.js.map +1 -1
  1297. package/dist/core/web/proveedores/navegador.d.ts.map +1 -1
  1298. package/dist/core/web/proveedores/navegador.js.map +1 -1
  1299. package/dist/core/web/proveedores/registro.d.ts.map +1 -1
  1300. package/dist/core/web/proveedores/registro.js.map +1 -1
  1301. package/dist/core/web/proveedores/searxng.d.ts.map +1 -1
  1302. package/dist/core/web/proveedores/searxng.js.map +1 -1
  1303. package/dist/core/web/proveedores/serper.d.ts.map +1 -1
  1304. package/dist/core/web/proveedores/serper.js.map +1 -1
  1305. package/dist/core/web/proveedores/tavily.d.ts.map +1 -1
  1306. package/dist/core/web/proveedores/tavily.js.map +1 -1
  1307. package/dist/core/web/proveedores/tipos.d.ts.map +1 -1
  1308. package/dist/core/web/proveedores/tipos.js.map +1 -1
  1309. package/dist/core/web/registro-red.d.ts.map +1 -1
  1310. package/dist/core/web/registro-red.js.map +1 -1
  1311. package/dist/core/web/scrapers/cisa-kev.d.ts.map +1 -1
  1312. package/dist/core/web/scrapers/cisa-kev.js.map +1 -1
  1313. package/dist/core/web/scrapers/crates-io.d.ts.map +1 -1
  1314. package/dist/core/web/scrapers/crates-io.js.map +1 -1
  1315. package/dist/core/web/scrapers/docs-rs.d.ts.map +1 -1
  1316. package/dist/core/web/scrapers/docs-rs.js.map +1 -1
  1317. package/dist/core/web/scrapers/github.d.ts.map +1 -1
  1318. package/dist/core/web/scrapers/github.js.map +1 -1
  1319. package/dist/core/web/scrapers/go-pkg.d.ts.map +1 -1
  1320. package/dist/core/web/scrapers/go-pkg.js.map +1 -1
  1321. package/dist/core/web/scrapers/hex.d.ts.map +1 -1
  1322. package/dist/core/web/scrapers/hex.js.map +1 -1
  1323. package/dist/core/web/scrapers/maven.d.ts.map +1 -1
  1324. package/dist/core/web/scrapers/maven.js.map +1 -1
  1325. package/dist/core/web/scrapers/mdn.d.ts.map +1 -1
  1326. package/dist/core/web/scrapers/mdn.js.map +1 -1
  1327. package/dist/core/web/scrapers/npm.d.ts.map +1 -1
  1328. package/dist/core/web/scrapers/npm.js.map +1 -1
  1329. package/dist/core/web/scrapers/nuget.d.ts.map +1 -1
  1330. package/dist/core/web/scrapers/nuget.js.map +1 -1
  1331. package/dist/core/web/scrapers/nvd.d.ts.map +1 -1
  1332. package/dist/core/web/scrapers/nvd.js.map +1 -1
  1333. package/dist/core/web/scrapers/pypi.d.ts.map +1 -1
  1334. package/dist/core/web/scrapers/pypi.js.map +1 -1
  1335. package/dist/core/web/scrapers/registro.d.ts.map +1 -1
  1336. package/dist/core/web/scrapers/registro.js.map +1 -1
  1337. package/dist/core/web/scrapers/rubygems.d.ts.map +1 -1
  1338. package/dist/core/web/scrapers/rubygems.js.map +1 -1
  1339. package/dist/core/web/scrapers/stackoverflow.d.ts.map +1 -1
  1340. package/dist/core/web/scrapers/stackoverflow.js.map +1 -1
  1341. package/dist/core/web/scrapers/tipos.d.ts.map +1 -1
  1342. package/dist/core/web/scrapers/tipos.js.map +1 -1
  1343. package/dist/core/web/texto.d.ts.map +1 -1
  1344. package/dist/core/web/texto.js.map +1 -1
  1345. package/dist/core/web/tools.d.ts +1 -8
  1346. package/dist/core/web/tools.d.ts.map +1 -1
  1347. package/dist/core/web/tools.js +2 -33
  1348. package/dist/core/web/tools.js.map +1 -1
  1349. package/dist/core/wiki/almacen.d.ts.map +1 -1
  1350. package/dist/core/wiki/almacen.js.map +1 -1
  1351. package/dist/core/wiki/citas.d.ts.map +1 -1
  1352. package/dist/core/wiki/citas.js.map +1 -1
  1353. package/dist/core/workflows/agent-runner.d.ts.map +1 -1
  1354. package/dist/core/workflows/agent-runner.js.map +1 -1
  1355. package/dist/core/workflows/builtins.d.ts.map +1 -1
  1356. package/dist/core/workflows/builtins.js.map +1 -1
  1357. package/dist/core/workflows/contrato/esquema.d.ts.map +1 -1
  1358. package/dist/core/workflows/contrato/esquema.js.map +1 -1
  1359. package/dist/core/workflows/contrato/reparar-argumentos.d.ts.map +1 -1
  1360. package/dist/core/workflows/contrato/reparar-argumentos.js.map +1 -1
  1361. package/dist/core/workflows/contrato/validador.d.ts.map +1 -1
  1362. package/dist/core/workflows/contrato/validador.js.map +1 -1
  1363. package/dist/core/workflows/contrato/yield.d.ts.map +1 -1
  1364. package/dist/core/workflows/contrato/yield.js.map +1 -1
  1365. package/dist/core/workflows/goal-engine/engine.d.ts +5 -0
  1366. package/dist/core/workflows/goal-engine/engine.d.ts.map +1 -1
  1367. package/dist/core/workflows/goal-engine/engine.js.map +1 -1
  1368. package/dist/core/workflows/goal-engine/errors.d.ts.map +1 -1
  1369. package/dist/core/workflows/goal-engine/errors.js.map +1 -1
  1370. package/dist/core/workflows/goal-engine/index.d.ts.map +1 -1
  1371. package/dist/core/workflows/goal-engine/index.js.map +1 -1
  1372. package/dist/core/workflows/goal-engine/persistence.d.ts.map +1 -1
  1373. package/dist/core/workflows/goal-engine/persistence.js.map +1 -1
  1374. package/dist/core/workflows/goal-engine/prompts.d.ts.map +1 -1
  1375. package/dist/core/workflows/goal-engine/prompts.js.map +1 -1
  1376. package/dist/core/workflows/goal-engine/state.d.ts.map +1 -1
  1377. package/dist/core/workflows/goal-engine/state.js.map +1 -1
  1378. package/dist/core/workflows/goal-engine/tools.d.ts.map +1 -1
  1379. package/dist/core/workflows/goal-engine/tools.js.map +1 -1
  1380. package/dist/core/workflows/goal-engine/types.d.ts.map +1 -1
  1381. package/dist/core/workflows/goal-engine/types.js.map +1 -1
  1382. package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts.map +1 -1
  1383. package/dist/core/workflows/goal-engine/worktree-fingerprint.js.map +1 -1
  1384. package/dist/core/workflows/graph-sync.d.ts.map +1 -1
  1385. package/dist/core/workflows/graph-sync.js.map +1 -1
  1386. package/dist/core/workflows/graph.d.ts.map +1 -1
  1387. package/dist/core/workflows/graph.js.map +1 -1
  1388. package/dist/core/workflows/index.d.ts +6 -0
  1389. package/dist/core/workflows/index.d.ts.map +1 -1
  1390. package/dist/core/workflows/index.js +3 -0
  1391. package/dist/core/workflows/index.js.map +1 -1
  1392. package/dist/core/workflows/journal.d.ts.map +1 -1
  1393. package/dist/core/workflows/journal.js.map +1 -1
  1394. package/dist/core/workflows/manager.d.ts.map +1 -1
  1395. package/dist/core/workflows/manager.js.map +1 -1
  1396. package/dist/core/workflows/provider-caps.d.ts +103 -0
  1397. package/dist/core/workflows/provider-caps.d.ts.map +1 -0
  1398. package/dist/core/workflows/provider-caps.js +235 -0
  1399. package/dist/core/workflows/provider-caps.js.map +1 -0
  1400. package/dist/core/workflows/resolve-script.d.ts.map +1 -1
  1401. package/dist/core/workflows/resolve-script.js.map +1 -1
  1402. package/dist/core/workflows/runtime.d.ts.map +1 -1
  1403. package/dist/core/workflows/runtime.js.map +1 -1
  1404. package/dist/core/workflows/save-as-skill.d.ts.map +1 -1
  1405. package/dist/core/workflows/save-as-skill.js.map +1 -1
  1406. package/dist/core/workflows/shared-store.d.ts.map +1 -1
  1407. package/dist/core/workflows/shared-store.js.map +1 -1
  1408. package/dist/core/workflows/soft-budget.d.ts +27 -0
  1409. package/dist/core/workflows/soft-budget.d.ts.map +1 -0
  1410. package/dist/core/workflows/soft-budget.js +47 -0
  1411. package/dist/core/workflows/soft-budget.js.map +1 -0
  1412. package/dist/core/workflows/subagent-host.d.ts.map +1 -1
  1413. package/dist/core/workflows/subagent-host.js.map +1 -1
  1414. package/dist/core/workflows/tool-scheduling.d.ts +47 -0
  1415. package/dist/core/workflows/tool-scheduling.d.ts.map +1 -0
  1416. package/dist/core/workflows/tool-scheduling.js +102 -0
  1417. package/dist/core/workflows/tool-scheduling.js.map +1 -0
  1418. package/dist/core/workflows/tool-workflow.d.ts.map +1 -1
  1419. package/dist/core/workflows/tool-workflow.js.map +1 -1
  1420. package/dist/core/workflows/types.d.ts.map +1 -1
  1421. package/dist/core/workflows/types.js.map +1 -1
  1422. package/dist/core/workflows/worktree.d.ts.map +1 -1
  1423. package/dist/core/workflows/worktree.js.map +1 -1
  1424. package/dist/extensions/index.d.ts.map +1 -1
  1425. package/dist/extensions/index.js.map +1 -1
  1426. package/dist/extensions/llama/client.d.ts.map +1 -1
  1427. package/dist/extensions/llama/client.js.map +1 -1
  1428. package/dist/extensions/llama/huggingface.d.ts.map +1 -1
  1429. package/dist/extensions/llama/huggingface.js.map +1 -1
  1430. package/dist/extensions/llama/index.d.ts.map +1 -1
  1431. package/dist/extensions/llama/index.js.map +1 -1
  1432. package/dist/extensions/llama/provider.d.ts.map +1 -1
  1433. package/dist/extensions/llama/provider.js.map +1 -1
  1434. package/dist/extensions/llama/ui.d.ts.map +1 -1
  1435. package/dist/extensions/llama/ui.js.map +1 -1
  1436. package/dist/extensions/remoto/index.d.ts.map +1 -1
  1437. package/dist/extensions/remoto/index.js.map +1 -1
  1438. package/dist/index.d.ts.map +1 -1
  1439. package/dist/index.js.map +1 -1
  1440. package/dist/main.d.ts.map +1 -1
  1441. package/dist/main.js +71 -3
  1442. package/dist/main.js.map +1 -1
  1443. package/dist/migrations.d.ts.map +1 -1
  1444. package/dist/migrations.js.map +1 -1
  1445. package/dist/modes/acp/acp-mode.d.ts.map +1 -1
  1446. package/dist/modes/acp/acp-mode.js.map +1 -1
  1447. package/dist/modes/acp/events.d.ts.map +1 -1
  1448. package/dist/modes/acp/events.js.map +1 -1
  1449. package/dist/modes/index.d.ts.map +1 -1
  1450. package/dist/modes/index.js.map +1 -1
  1451. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  1452. package/dist/modes/interactive/components/armin.js.map +1 -1
  1453. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  1454. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  1455. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  1456. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  1457. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  1458. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  1459. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  1460. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  1461. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  1462. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  1463. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  1464. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  1465. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  1466. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  1467. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  1468. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  1469. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  1470. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  1471. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  1472. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  1473. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  1474. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  1475. package/dist/modes/interactive/components/diff.d.ts.map +1 -1
  1476. package/dist/modes/interactive/components/diff.js.map +1 -1
  1477. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  1478. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  1479. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  1480. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  1481. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  1482. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  1483. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  1484. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  1485. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  1486. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  1487. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  1488. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  1489. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  1490. package/dist/modes/interactive/components/footer.js.map +1 -1
  1491. package/dist/modes/interactive/components/home-screen.d.ts +2 -0
  1492. package/dist/modes/interactive/components/home-screen.d.ts.map +1 -1
  1493. package/dist/modes/interactive/components/home-screen.js +5 -6
  1494. package/dist/modes/interactive/components/home-screen.js.map +1 -1
  1495. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  1496. package/dist/modes/interactive/components/index.js.map +1 -1
  1497. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  1498. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  1499. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  1500. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  1501. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -1
  1502. package/dist/modes/interactive/components/markdown-transform.js.map +1 -1
  1503. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
  1504. package/dist/modes/interactive/components/mermaid.js.map +1 -1
  1505. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  1506. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  1507. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  1508. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  1509. package/dist/modes/interactive/components/prompt-optimization.d.ts.map +1 -1
  1510. package/dist/modes/interactive/components/prompt-optimization.js.map +1 -1
  1511. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  1512. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  1513. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  1514. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  1515. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  1516. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  1517. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  1518. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  1519. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
  1520. package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
  1521. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  1522. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  1523. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  1524. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  1525. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  1526. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  1527. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  1528. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  1529. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  1530. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  1531. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  1532. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  1533. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  1534. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  1535. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
  1536. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  1537. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  1538. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  1539. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  1540. package/dist/modes/interactive/components/user-message.js.map +1 -1
  1541. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  1542. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  1543. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  1544. package/dist/modes/interactive/external-editor.js.map +1 -1
  1545. package/dist/modes/interactive/interactive-mode.d.ts +19 -0
  1546. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  1547. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  1548. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -1
  1549. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
  1550. package/dist/modes/interactive/model-search.d.ts.map +1 -1
  1551. package/dist/modes/interactive/model-search.js.map +1 -1
  1552. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  1553. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  1554. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  1555. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  1556. package/dist/modes/interactive/theme/theme.js.map +1 -1
  1557. package/dist/modes/json-event.d.ts.map +1 -1
  1558. package/dist/modes/json-event.js.map +1 -1
  1559. package/dist/modes/print-mode.d.ts.map +1 -1
  1560. package/dist/modes/print-mode.js.map +1 -1
  1561. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  1562. package/dist/modes/rpc/jsonl.js.map +1 -1
  1563. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  1564. package/dist/modes/rpc/rpc-client.js.map +1 -1
  1565. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  1566. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  1567. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  1568. package/dist/modes/rpc/rpc-types.js.map +1 -1
  1569. package/dist/package-manager-cli.d.ts.map +1 -1
  1570. package/dist/package-manager-cli.js.map +1 -1
  1571. package/dist/rpc-entry.d.ts.map +1 -1
  1572. package/dist/rpc-entry.js +0 -0
  1573. package/dist/rpc-entry.js.map +1 -1
  1574. package/dist/server/attach.d.ts.map +1 -1
  1575. package/dist/server/attach.js.map +1 -1
  1576. package/dist/server/create-harness.d.ts.map +1 -1
  1577. package/dist/server/create-harness.js.map +1 -1
  1578. package/dist/server/extension-ops.d.ts.map +1 -1
  1579. package/dist/server/extension-ops.js.map +1 -1
  1580. package/dist/server/pi-server-service.d.ts.map +1 -1
  1581. package/dist/server/pi-server-service.js.map +1 -1
  1582. package/dist/server/scheduler-tick.d.ts.map +1 -1
  1583. package/dist/server/scheduler-tick.js.map +1 -1
  1584. package/dist/server/serve.d.ts.map +1 -1
  1585. package/dist/server/serve.js.map +1 -1
  1586. package/dist/server/transcript.d.ts.map +1 -1
  1587. package/dist/server/transcript.js.map +1 -1
  1588. package/dist/telegram/api.d.ts +6 -0
  1589. package/dist/telegram/api.d.ts.map +1 -1
  1590. package/dist/telegram/api.js.map +1 -1
  1591. package/dist/telegram/bridge.d.ts.map +1 -1
  1592. package/dist/telegram/bridge.js.map +1 -1
  1593. package/dist/telegram/journal.d.ts.map +1 -1
  1594. package/dist/telegram/journal.js.map +1 -1
  1595. package/dist/telegram/servidor.d.ts.map +1 -1
  1596. package/dist/telegram/servidor.js.map +1 -1
  1597. package/dist/utils/abort.d.ts.map +1 -1
  1598. package/dist/utils/abort.js.map +1 -1
  1599. package/dist/utils/ansi.d.ts.map +1 -1
  1600. package/dist/utils/ansi.js.map +1 -1
  1601. package/dist/utils/changelog.d.ts.map +1 -1
  1602. package/dist/utils/changelog.js.map +1 -1
  1603. package/dist/utils/child-process.d.ts.map +1 -1
  1604. package/dist/utils/child-process.js.map +1 -1
  1605. package/dist/utils/clipboard-image.d.ts.map +1 -1
  1606. package/dist/utils/clipboard-image.js.map +1 -1
  1607. package/dist/utils/clipboard-native.d.ts.map +1 -1
  1608. package/dist/utils/clipboard-native.js.map +1 -1
  1609. package/dist/utils/clipboard.d.ts.map +1 -1
  1610. package/dist/utils/clipboard.js.map +1 -1
  1611. package/dist/utils/deprecation.d.ts.map +1 -1
  1612. package/dist/utils/deprecation.js.map +1 -1
  1613. package/dist/utils/exif-orientation.d.ts.map +1 -1
  1614. package/dist/utils/exif-orientation.js.map +1 -1
  1615. package/dist/utils/frontmatter.d.ts.map +1 -1
  1616. package/dist/utils/frontmatter.js.map +1 -1
  1617. package/dist/utils/fs-watch.d.ts.map +1 -1
  1618. package/dist/utils/fs-watch.js.map +1 -1
  1619. package/dist/utils/git.d.ts.map +1 -1
  1620. package/dist/utils/git.js.map +1 -1
  1621. package/dist/utils/html.d.ts.map +1 -1
  1622. package/dist/utils/html.js.map +1 -1
  1623. package/dist/utils/image-convert.d.ts.map +1 -1
  1624. package/dist/utils/image-convert.js.map +1 -1
  1625. package/dist/utils/image-process.d.ts.map +1 -1
  1626. package/dist/utils/image-process.js.map +1 -1
  1627. package/dist/utils/image-resize-core.d.ts.map +1 -1
  1628. package/dist/utils/image-resize-core.js.map +1 -1
  1629. package/dist/utils/image-resize-worker.d.ts.map +1 -1
  1630. package/dist/utils/image-resize-worker.js.map +1 -1
  1631. package/dist/utils/image-resize.d.ts.map +1 -1
  1632. package/dist/utils/image-resize.js.map +1 -1
  1633. package/dist/utils/json.d.ts.map +1 -1
  1634. package/dist/utils/json.js.map +1 -1
  1635. package/dist/utils/management-http.d.ts.map +1 -1
  1636. package/dist/utils/management-http.js.map +1 -1
  1637. package/dist/utils/mime.d.ts.map +1 -1
  1638. package/dist/utils/mime.js.map +1 -1
  1639. package/dist/utils/open-browser.d.ts.map +1 -1
  1640. package/dist/utils/open-browser.js.map +1 -1
  1641. package/dist/utils/paths.d.ts.map +1 -1
  1642. package/dist/utils/paths.js.map +1 -1
  1643. package/dist/utils/photon.d.ts.map +1 -1
  1644. package/dist/utils/photon.js.map +1 -1
  1645. package/dist/utils/pi-user-agent.d.ts.map +1 -1
  1646. package/dist/utils/pi-user-agent.js.map +1 -1
  1647. package/dist/utils/shell.d.ts.map +1 -1
  1648. package/dist/utils/shell.js.map +1 -1
  1649. package/dist/utils/sleep.d.ts.map +1 -1
  1650. package/dist/utils/sleep.js.map +1 -1
  1651. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  1652. package/dist/utils/syntax-highlight.js.map +1 -1
  1653. package/dist/utils/text.d.ts.map +1 -1
  1654. package/dist/utils/text.js.map +1 -1
  1655. package/dist/utils/tool-result-images.d.ts.map +1 -1
  1656. package/dist/utils/tool-result-images.js.map +1 -1
  1657. package/dist/utils/tools-manager.d.ts.map +1 -1
  1658. package/dist/utils/tools-manager.js.map +1 -1
  1659. package/dist/utils/version-check.d.ts.map +1 -1
  1660. package/dist/utils/version-check.js.map +1 -1
  1661. package/dist/utils/windows-self-update.d.ts.map +1 -1
  1662. package/dist/utils/windows-self-update.js.map +1 -1
  1663. package/docs/development-fork.md +170 -0
  1664. package/docs/docs.json +25 -0
  1665. package/docs/modules-infraestructura.md +115 -0
  1666. package/docs/modules-motor.md +160 -0
  1667. package/docs/modules-producto.md +179 -0
  1668. package/docs/modules-seguridad.md +158 -0
  1669. package/npm-shrinkwrap.json +2 -2
  1670. package/package.json +113 -113
  1671. package/dist/core/commit/diff.d.ts.map +0 -1
  1672. package/dist/core/commit/diff.js.map +0 -1
  1673. package/dist/core/commit/mensaje.d.ts +0 -80
  1674. package/dist/core/commit/mensaje.d.ts.map +0 -1
  1675. package/dist/core/commit/mensaje.js +0 -207
  1676. package/dist/core/commit/mensaje.js.map +0 -1
  1677. package/dist/core/computer/motor/platform/macos/helper-path.mjs +0 -34
  1678. package/dist/core/export-html/template.css +0 -1066
  1679. package/dist/core/export-html/template.html +0 -55
  1680. package/dist/core/export-html/template.js +0 -1864
  1681. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  1682. package/dist/core/export-html/vendor/marked.min.js +0 -78
  1683. package/dist/core/prompts/sistema.md +0 -134
  1684. package/dist/modes/interactive/assets/clankolas.png +0 -0
  1685. package/dist/modes/interactive/theme/dark.json +0 -90
  1686. package/dist/modes/interactive/theme/light.json +0 -89
  1687. package/dist/modes/interactive/theme/theme-schema.json +0 -352
  1688. package/dist/skills/ada-engine/SKILL.md +0 -153
  1689. package/dist/skills/skill-creator/SKILL.md +0 -90
  1690. /package/dist/core/{commit → commits}/diff.d.ts +0 -0
  1691. /package/dist/core/{commit → commits}/diff.js +0 -0
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Disposiciones de hallazgos: la decisión humana sobre cada hallazgo repetido.
3
+ *
4
+ * Sin esto, un escáner que encuentra lo mismo cada semana convierte el panel de
5
+ * seguridad en ruido y al equipo en quien aprende a ignorarlo. La disposition
6
+ * es el contrato que evita las dos mentiras opuestas: el hallazgo aceptado como
7
+ * riesgo no reaparece como NUEVO, y el corregido que vuelve a aparecer sí (es
8
+ * una regresión, y callarla sería peor).
9
+ *
10
+ * Los estados que cambian el comportamiento:
11
+ *
12
+ * - `pendiente`: sin decidir. Cuenta todo.
13
+ * - `falso-positivo` / `aceptado-riesgo`: resuelto por una persona con nombre,
14
+ * fecha y justificación. No vuelve a contar como nuevo ni se publica.
15
+ * - `corregido`: cuenta mientras desaparezca; si REAPARECE es nuevo (regresión).
16
+ *
17
+ * Cada entrada lleva quién, cuándo y por qué porque una disposition anónima y
18
+ * sin motivo no es auditoría: es alguien pulsando el botón «silenciar».
19
+ */
20
+ import { type Hallazgo } from "./hallazgo.ts";
21
+ /** Nombre canónico del libro dentro del repositorio analizado. */
22
+ export declare const NOMBRE_FICHERO_DISPOSICIONES = "revision-dispositions.json";
23
+ export type TipoDisposicion = "pendiente" | "aceptado-riesgo" | "falso-positivo" | "corregido";
24
+ export interface EntradaDisposicion {
25
+ /** Huella estable (`huellaDe`): regla + ruta + evidencia, sin línea. */
26
+ huella: string;
27
+ disposicion: TipoDisposicion;
28
+ quien: string;
29
+ cuando: string;
30
+ justificacion: string;
31
+ }
32
+ export interface LibroDisposiciones {
33
+ version: 1;
34
+ entradas: EntradaDisposicion[];
35
+ }
36
+ /**
37
+ * Lee el libro. Fichero ausente = libro vacío (primera ejecución); fichero
38
+ * ILEGÍBLE o corrupto lanza: escribir encima de un libro que no se pudo
39
+ * parsear borraría las decisiones de todo el equipo, y eso no se hace en
40
+ * silencio.
41
+ */
42
+ export declare function cargarLibro(ruta: string): LibroDisposiciones;
43
+ /** Persiste el libro atómicamente: o el fichero nuevo completo o el anterior. */
44
+ export declare function guardarLibro(ruta: string, libro: LibroDisposiciones): void;
45
+ /**
46
+ * Registra (o sustituye) la disposición de una huella. Última decisión gana:
47
+ * cambiar de opinión es legítimo; apilar decisiones contradictorias sin decir
48
+ * cuál vale, no.
49
+ */
50
+ export declare function disponer(libro: LibroDisposiciones, entrada: {
51
+ huella: string;
52
+ disposicion: TipoDisposicion;
53
+ quien: string;
54
+ justificacion: string;
55
+ cuando?: string;
56
+ }): LibroDisposiciones;
57
+ export declare function disposicionDe(libro: LibroDisposiciones, huella: string): EntradaDisposicion | null;
58
+ export interface AplicacionDisposiciones {
59
+ /** Hallazgos que siguen contando: pendientes, regresiones y sin decidir. */
60
+ publicables: Hallazgo[];
61
+ /** Hallazgos suprimidos, con la decisión que los suprimió. */
62
+ dispuestos: Array<{
63
+ hallazgo: Hallazgo;
64
+ entrada: EntradaDisposicion;
65
+ }>;
66
+ }
67
+ /** Separa lo publicable de lo dispuesto según el libro. */
68
+ export declare function aplicarDisposiciones(hallazgos: readonly Hallazgo[], libro: LibroDisposiciones): AplicacionDisposiciones;
69
+ export interface DiferenciaHallazgos {
70
+ /** En este scan y no en el baseline, salvo disposición que diga lo contrario. */
71
+ nuevos: Hallazgo[];
72
+ /** Estaban en el baseline y ya no están. */
73
+ resueltos: Hallazgo[];
74
+ /** En los dos scans. */
75
+ persistentes: Hallazgo[];
76
+ }
77
+ /**
78
+ * Diff entre scans por huella, respetando dispositions.
79
+ *
80
+ * Un hallazgo con `falso-positivo`/`aceptado-riesgo` nunca es nuevo aunque el
81
+ * baseline se haya perdido. Uno `corregido` que reaparece SÍ es nuevo: la
82
+ * corrección no aguantó, y ese caso exacto es el que un diff ingenuo calla
83
+ * para siempre.
84
+ */
85
+ export declare function diferir(actuales: readonly Hallazgo[], previos: readonly Hallazgo[], libro: LibroDisposiciones): DiferenciaHallazgos;
86
+ //# sourceMappingURL=dispositions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispositions.d.ts","sourceRoot":"","sources":["../../../src/core/revision/dispositions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,eAAe,CAAC;AAExD,kEAAkE;AAClE,eAAO,MAAM,4BAA4B,+BAA+B,CAAC;AAEzE,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAgB/F,MAAM,WAAW,kBAAkB;IAClC,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,eAAe,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAoB5D;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CACvB,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9G,kBAAkB,CAYpB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAElG;AAED,MAAM,WAAW,uBAAuB;IACvC,4EAA4E;IAC5E,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,8DAA8D;IAC9D,UAAU,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;CACvE;AAED,2DAA2D;AAC3D,wBAAgB,oBAAoB,CACnC,SAAS,EAAE,SAAS,QAAQ,EAAE,EAC9B,KAAK,EAAE,kBAAkB,GACvB,uBAAuB,CASzB;AAED,MAAM,WAAW,mBAAmB;IACnC,iFAAiF;IACjF,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,4CAA4C;IAC5C,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,wBAAwB;IACxB,YAAY,EAAE,QAAQ,EAAE,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACtB,QAAQ,EAAE,SAAS,QAAQ,EAAE,EAC7B,OAAO,EAAE,SAAS,QAAQ,EAAE,EAC5B,KAAK,EAAE,kBAAkB,GACvB,mBAAmB,CAgBrB"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Disposiciones de hallazgos: la decisión humana sobre cada hallazgo repetido.
3
+ *
4
+ * Sin esto, un escáner que encuentra lo mismo cada semana convierte el panel de
5
+ * seguridad en ruido y al equipo en quien aprende a ignorarlo. La disposition
6
+ * es el contrato que evita las dos mentiras opuestas: el hallazgo aceptado como
7
+ * riesgo no reaparece como NUEVO, y el corregido que vuelve a aparecer sí (es
8
+ * una regresión, y callarla sería peor).
9
+ *
10
+ * Los estados que cambian el comportamiento:
11
+ *
12
+ * - `pendiente`: sin decidir. Cuenta todo.
13
+ * - `falso-positivo` / `aceptado-riesgo`: resuelto por una persona con nombre,
14
+ * fecha y justificación. No vuelve a contar como nuevo ni se publica.
15
+ * - `corregido`: cuenta mientras desaparezca; si REAPARECE es nuevo (regresión).
16
+ *
17
+ * Cada entrada lleva quién, cuándo y por qué porque una disposition anónima y
18
+ * sin motivo no es auditoría: es alguien pulsando el botón «silenciar».
19
+ */
20
+ import { readFileSync } from "node:fs";
21
+ import { writeTextAtomicSync } from "../utils/atomic-write.js";
22
+ import { huellaDe } from "./hallazgo.js";
23
+ /** Nombre canónico del libro dentro del repositorio analizado. */
24
+ export const NOMBRE_FICHERO_DISPOSICIONES = "revision-dispositions.json";
25
+ /**
26
+ * ¿Suprime esta disposición un hallazgo PRESENTE y/o nuevo?
27
+ *
28
+ * Solo «esto no cuenta» suprime. `corregido` NO: si el hallazgo sigue ahí o
29
+ * vuelve después de «corregido», es una regresión y tiene que verse.
30
+ * `pendiente` tampoco: no decidir no es resolver.
31
+ */
32
+ const SUPRIME = {
33
+ pendiente: false,
34
+ "aceptado-riesgo": true,
35
+ "falso-positivo": true,
36
+ corregido: false,
37
+ };
38
+ /**
39
+ * Lee el libro. Fichero ausente = libro vacío (primera ejecución); fichero
40
+ * ILEGÍBLE o corrupto lanza: escribir encima de un libro que no se pudo
41
+ * parsear borraría las decisiones de todo el equipo, y eso no se hace en
42
+ * silencio.
43
+ */
44
+ export function cargarLibro(ruta) {
45
+ let bruto;
46
+ try {
47
+ bruto = readFileSync(ruta, "utf8");
48
+ }
49
+ catch (error) {
50
+ const errno = error;
51
+ if (errno.code !== "ENOENT")
52
+ throw error;
53
+ return { version: 1, entradas: [] };
54
+ }
55
+ const dato = JSON.parse(bruto);
56
+ if (typeof dato !== "object" || dato === null)
57
+ throw new Error(`${ruta}: el libro de disposiciones no es un objeto`);
58
+ const libro = dato;
59
+ if (libro.version !== 1 || !Array.isArray(libro.entradas))
60
+ throw new Error(`${ruta}: versión o formato del libro no reconocidos`);
61
+ for (const e of libro.entradas) {
62
+ if (!e.huella || !e.disposicion || !e.quien || !e.justificacion) {
63
+ throw new Error(`${ruta}: entrada sin huella/disposición/quién/justificación — libro incompleto`);
64
+ }
65
+ }
66
+ return libro;
67
+ }
68
+ /** Persiste el libro atómicamente: o el fichero nuevo completo o el anterior. */
69
+ export function guardarLibro(ruta, libro) {
70
+ writeTextAtomicSync(ruta, `${JSON.stringify(libro, null, 2)}\n`);
71
+ }
72
+ /**
73
+ * Registra (o sustituye) la disposición de una huella. Última decisión gana:
74
+ * cambiar de opinión es legítimo; apilar decisiones contradictorias sin decir
75
+ * cuál vale, no.
76
+ */
77
+ export function disponer(libro, entrada) {
78
+ if (!entrada.quien.trim())
79
+ throw new Error("una disposition sin quién la firmó no es auditable");
80
+ if (!entrada.justificacion.trim())
81
+ throw new Error("una disposition sin justificación no es auditable");
82
+ const completa = {
83
+ huella: entrada.huella,
84
+ disposicion: entrada.disposicion,
85
+ quien: entrada.quien,
86
+ cuando: entrada.cuando ?? new Date().toISOString(),
87
+ justificacion: entrada.justificacion,
88
+ };
89
+ const resto = libro.entradas.filter((e) => e.huella !== entrada.huella);
90
+ return { version: 1, entradas: [...resto, completa] };
91
+ }
92
+ export function disposicionDe(libro, huella) {
93
+ return libro.entradas.find((e) => e.huella === huella) ?? null;
94
+ }
95
+ /** Separa lo publicable de lo dispuesto según el libro. */
96
+ export function aplicarDisposiciones(hallazgos, libro) {
97
+ const publicables = [];
98
+ const dispuestos = [];
99
+ for (const h of hallazgos) {
100
+ const entrada = disposicionDe(libro, huellaDe(h));
101
+ if (entrada && SUPRIME[entrada.disposicion])
102
+ dispuestos.push({ hallazgo: h, entrada });
103
+ else
104
+ publicables.push(h);
105
+ }
106
+ return { publicables, dispuestos };
107
+ }
108
+ /**
109
+ * Diff entre scans por huella, respetando dispositions.
110
+ *
111
+ * Un hallazgo con `falso-positivo`/`aceptado-riesgo` nunca es nuevo aunque el
112
+ * baseline se haya perdido. Uno `corregido` que reaparece SÍ es nuevo: la
113
+ * corrección no aguantó, y ese caso exacto es el que un diff ingenuo calla
114
+ * para siempre.
115
+ */
116
+ export function diferir(actuales, previos, libro) {
117
+ const huellasPrevias = new Set(previos.map(huellaDe));
118
+ const resultado = { nuevos: [], resueltos: [], persistentes: [] };
119
+ for (const h of actuales) {
120
+ const huella = huellaDe(h);
121
+ if (!huellasPrevias.has(huella)) {
122
+ const entrada = disposicionDe(libro, huella);
123
+ if (entrada && SUPRIME[entrada.disposicion])
124
+ continue;
125
+ resultado.nuevos.push(h);
126
+ }
127
+ else {
128
+ resultado.persistentes.push(h);
129
+ }
130
+ }
131
+ const huellasActuales = new Set(actuales.map(huellaDe));
132
+ for (const h of previos)
133
+ if (!huellasActuales.has(huellaDe(h)))
134
+ resultado.resueltos.push(h);
135
+ return resultado;
136
+ }
137
+ //# sourceMappingURL=dispositions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispositions.js","sourceRoot":"","sources":["../../../src/core/revision/dispositions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hallazgo.d.ts","sourceRoot":"","sources":["../../../src/core/revision/hallazgo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;AAE9E,MAAM,WAAW,QAAQ;IACxB,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,gDAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAWD,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEzD;AAED,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAYtF;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC,GAAG,MAAM,CAG3F;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,IAAI,CAWvE","sourcesContent":["/**\n * Un hallazgo de revisión, con evidencia obligatoria.\n *\n * La evidencia no es un adorno del tipo: es lo que separa una revisión de una\n * opinión. Un hallazgo que dice «esto podría tener una condición de carrera» sin\n * señalar las líneas que la producen no se puede comprobar, no se puede arreglar\n * y no se puede rebatir — y a las tres veces el equipo deja de leer la revisión\n * entera. Por eso `evidencia` es obligatoria y no opcional.\n *\n * El otro campo que importa es la HUELLA. Es lo que permite que un hallazgo\n * repetido entre ejecuciones se reconozca como el mismo aunque el fichero se\n * haya movido: se calcula sobre la regla, la ruta y la evidencia, y\n * deliberadamente NO sobre el número de línea. Un hallazgo que cambia de huella\n * cada vez que alguien añade un import aparece como nuevo en cada ejecución, y\n * eso convierte cualquier panel en ruido.\n */\n\nimport { createHash } from \"node:crypto\";\n\nexport type Severidad = \"critica\" | \"alta\" | \"media\" | \"baja\" | \"informativa\";\n\nexport interface Hallazgo {\n\t/** Identificador estable de la regla, p. ej. `ada/cruce-de-frontera`. */\n\treglaId: string;\n\ttitulo: string;\n\tresumen: string;\n\tseveridad: Severidad;\n\t/** Ruta relativa a la raíz del repositorio. */\n\truta: string;\n\tlineaInicio: number;\n\tlineaFin?: number;\n\t/** El fragmento exacto que lo justifica. Obligatorio a propósito. */\n\tevidencia: string;\n\t/** Qué hacer. Un hallazgo sin salida es una queja. */\n\tremedio?: string;\n\t/** CWE, OWASP, lo que sirva para clasificar. */\n\tetiquetas?: string[];\n}\n\n/** Puntuación 0–10, la escala que entiende GitHub en `security-severity`. */\nconst PUNTUACION: Record<Severidad, number> = {\n\tcritica: 9.5,\n\talta: 7.5,\n\tmedia: 5,\n\tbaja: 3,\n\tinformativa: 0,\n};\n\nexport function puntuacionDe(severidad: Severidad): number {\n\treturn PUNTUACION[severidad];\n}\n\n/** Nivel SARIF. `informativa` es `none`, que GitHub muestra pero no cuenta. */\nexport function nivelSarif(severidad: Severidad): \"error\" | \"warning\" | \"note\" | \"none\" {\n\tswitch (severidad) {\n\t\tcase \"critica\":\n\t\tcase \"alta\":\n\t\t\treturn \"error\";\n\t\tcase \"media\":\n\t\t\treturn \"warning\";\n\t\tcase \"baja\":\n\t\t\treturn \"note\";\n\t\tdefault:\n\t\t\treturn \"none\";\n\t}\n}\n\n/**\n * Huella estable del hallazgo.\n *\n * Sobre regla + ruta + evidencia normalizada. Sin número de línea: si lo\n * llevara, mover el bloque diez líneas más abajo crearía un hallazgo \"nuevo\" y\n * el anterior quedaría como \"resuelto\", que es mentira dos veces.\n *\n * La evidencia se normaliza en espacios porque un reformateo no cambia el\n * problema.\n */\nexport function huellaDe(hallazgo: Pick<Hallazgo, \"reglaId\" | \"ruta\" | \"evidencia\">): string {\n\tconst normalizada = hallazgo.evidencia.replace(/\\s+/g, \" \").trim();\n\treturn createHash(\"sha256\").update(`${hallazgo.reglaId}\\u0000${hallazgo.ruta}\\u0000${normalizada}`).digest(\"hex\");\n}\n\n/** Motivo por el que un hallazgo no vale, o `null` si vale. */\nexport function porQueNoVale(hallazgo: Partial<Hallazgo>): string | null {\n\tif (!hallazgo.reglaId) return \"sin reglaId: no se puede agrupar ni deduplicar\";\n\tif (!hallazgo.ruta) return \"sin ruta: no se puede anclar en el código\";\n\tif (!hallazgo.evidencia?.trim()) return \"sin evidencia: es una opinión, no un hallazgo\";\n\tif (typeof hallazgo.lineaInicio !== \"number\" || hallazgo.lineaInicio < 1) {\n\t\treturn \"sin línea de inicio válida: no se puede señalar dónde\";\n\t}\n\tif (hallazgo.lineaFin !== undefined && hallazgo.lineaFin < hallazgo.lineaInicio) {\n\t\treturn \"la línea final va antes que la inicial\";\n\t}\n\treturn null;\n}\n"]}
1
+ {"version":3,"file":"hallazgo.d.ts","sourceRoot":"","sources":["../../../src/core/revision/hallazgo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;AAE9E,MAAM,WAAW,QAAQ;IACxB,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAWD,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEzD;AAED,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAYtF;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC,GAAG,MAAM,CAG3F;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,IAAI,CAWvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"hallazgo.js","sourceRoot":"","sources":["../../../src/core/revision/hallazgo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsBzC,gFAA6E;AAC7E,MAAM,UAAU,GAA8B;IAC7C,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,WAAW,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,SAAoB,EAAU;IAC1D,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AAAA,CAC7B;AAED,+EAA+E;AAC/E,MAAM,UAAU,UAAU,CAAC,SAAoB,EAAyC;IACvF,QAAQ,SAAS,EAAE,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,MAAM;YACV,OAAO,OAAO,CAAC;QAChB,KAAK,OAAO;YACX,OAAO,SAAS,CAAC;QAClB,KAAK,MAAM;YACV,OAAO,MAAM,CAAC;QACf;YACC,OAAO,MAAM,CAAC;IAChB,CAAC;AAAA,CACD;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,QAA0D,EAAU;IAC5F,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,SAAS,QAAQ,CAAC,IAAI,SAAS,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAAA,CAClH;AAED,+DAA+D;AAC/D,MAAM,UAAU,YAAY,CAAC,QAA2B,EAAiB;IACxE,IAAI,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAO,gDAAgD,CAAC;IAC/E,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,4CAA2C,CAAC;IACvE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;QAAE,OAAO,gDAA+C,CAAC;IACxF,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,IAAI,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QAC1E,OAAO,2DAAuD,CAAC;IAChE,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjF,OAAO,yCAAwC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACZ","sourcesContent":["/**\n * Un hallazgo de revisión, con evidencia obligatoria.\n *\n * La evidencia no es un adorno del tipo: es lo que separa una revisión de una\n * opinión. Un hallazgo que dice «esto podría tener una condición de carrera» sin\n * señalar las líneas que la producen no se puede comprobar, no se puede arreglar\n * y no se puede rebatir — y a las tres veces el equipo deja de leer la revisión\n * entera. Por eso `evidencia` es obligatoria y no opcional.\n *\n * El otro campo que importa es la HUELLA. Es lo que permite que un hallazgo\n * repetido entre ejecuciones se reconozca como el mismo aunque el fichero se\n * haya movido: se calcula sobre la regla, la ruta y la evidencia, y\n * deliberadamente NO sobre el número de línea. Un hallazgo que cambia de huella\n * cada vez que alguien añade un import aparece como nuevo en cada ejecución, y\n * eso convierte cualquier panel en ruido.\n */\n\nimport { createHash } from \"node:crypto\";\n\nexport type Severidad = \"critica\" | \"alta\" | \"media\" | \"baja\" | \"informativa\";\n\nexport interface Hallazgo {\n\t/** Identificador estable de la regla, p. ej. `ada/cruce-de-frontera`. */\n\treglaId: string;\n\ttitulo: string;\n\tresumen: string;\n\tseveridad: Severidad;\n\t/** Ruta relativa a la raíz del repositorio. */\n\truta: string;\n\tlineaInicio: number;\n\tlineaFin?: number;\n\t/** El fragmento exacto que lo justifica. Obligatorio a propósito. */\n\tevidencia: string;\n\t/** Qué hacer. Un hallazgo sin salida es una queja. */\n\tremedio?: string;\n\t/** CWE, OWASP, lo que sirva para clasificar. */\n\tetiquetas?: string[];\n}\n\n/** Puntuación 0–10, la escala que entiende GitHub en `security-severity`. */\nconst PUNTUACION: Record<Severidad, number> = {\n\tcritica: 9.5,\n\talta: 7.5,\n\tmedia: 5,\n\tbaja: 3,\n\tinformativa: 0,\n};\n\nexport function puntuacionDe(severidad: Severidad): number {\n\treturn PUNTUACION[severidad];\n}\n\n/** Nivel SARIF. `informativa` es `none`, que GitHub muestra pero no cuenta. */\nexport function nivelSarif(severidad: Severidad): \"error\" | \"warning\" | \"note\" | \"none\" {\n\tswitch (severidad) {\n\t\tcase \"critica\":\n\t\tcase \"alta\":\n\t\t\treturn \"error\";\n\t\tcase \"media\":\n\t\t\treturn \"warning\";\n\t\tcase \"baja\":\n\t\t\treturn \"note\";\n\t\tdefault:\n\t\t\treturn \"none\";\n\t}\n}\n\n/**\n * Huella estable del hallazgo.\n *\n * Sobre regla + ruta + evidencia normalizada. Sin número de línea: si lo\n * llevara, mover el bloque diez líneas más abajo crearía un hallazgo \"nuevo\" y\n * el anterior quedaría como \"resuelto\", que es mentira dos veces.\n *\n * La evidencia se normaliza en espacios porque un reformateo no cambia el\n * problema.\n */\nexport function huellaDe(hallazgo: Pick<Hallazgo, \"reglaId\" | \"ruta\" | \"evidencia\">): string {\n\tconst normalizada = hallazgo.evidencia.replace(/\\s+/g, \" \").trim();\n\treturn createHash(\"sha256\").update(`${hallazgo.reglaId}\\u0000${hallazgo.ruta}\\u0000${normalizada}`).digest(\"hex\");\n}\n\n/** Motivo por el que un hallazgo no vale, o `null` si vale. */\nexport function porQueNoVale(hallazgo: Partial<Hallazgo>): string | null {\n\tif (!hallazgo.reglaId) return \"sin reglaId: no se puede agrupar ni deduplicar\";\n\tif (!hallazgo.ruta) return \"sin ruta: no se puede anclar en el código\";\n\tif (!hallazgo.evidencia?.trim()) return \"sin evidencia: es una opinión, no un hallazgo\";\n\tif (typeof hallazgo.lineaInicio !== \"number\" || hallazgo.lineaInicio < 1) {\n\t\treturn \"sin línea de inicio válida: no se puede señalar dónde\";\n\t}\n\tif (hallazgo.lineaFin !== undefined && hallazgo.lineaFin < hallazgo.lineaInicio) {\n\t\treturn \"la línea final va antes que la inicial\";\n\t}\n\treturn null;\n}\n"]}
1
+ {"version":3,"file":"hallazgo.js","sourceRoot":"","sources":["../../../src/core/revision/hallazgo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsBzC,6EAA6E;AAC7E,MAAM,UAAU,GAA8B;IAC7C,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,WAAW,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,SAAoB;IAChD,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,UAAU,CAAC,SAAoB;IAC9C,QAAQ,SAAS,EAAE,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,MAAM;YACV,OAAO,OAAO,CAAC;QAChB,KAAK,OAAO;YACX,OAAO,SAAS,CAAC;QAClB,KAAK,MAAM;YACV,OAAO,MAAM,CAAC;QACf;YACC,OAAO,MAAM,CAAC;IAChB,CAAC;AACF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,QAA0D;IAClF,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,SAAS,QAAQ,CAAC,IAAI,SAAS,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnH,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,YAAY,CAAC,QAA2B;IACvD,IAAI,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAO,gDAAgD,CAAC;IAC/E,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,2CAA2C,CAAC;IACvE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;QAAE,OAAO,+CAA+C,CAAC;IACxF,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,IAAI,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QAC1E,OAAO,uDAAuD,CAAC;IAChE,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjF,OAAO,wCAAwC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Procedencia del scan: qué herramienta, sobre qué commit y con qué reglas.
3
+ *
4
+ * Un SARIF sin procedencia es un informe sin firma: no se puede saber si el
5
+ * scan cubría el código que se está juzgando ni si las reglas eran las
6
+ * acordadas. El manifiesto lo fija en el momento del scan y se encadena por
7
+ * hash como el libro de sesión (src/core/audit/libro.ts): cada registro lleva
8
+ * el hash del anterior, así que editar un scan antiguo rompe TODA la cadena
9
+ * posterior — no hace falta saber cuál era para notarlo.
10
+ *
11
+ * `verificarProcedencia` recomputa la cadena entera. Sirve tanto para detectar
12
+ * manipulación deliberada como el accidente mundano: alguien arreglando a mano
13
+ * un JSON y dejándolo a medias.
14
+ */
15
+ export interface RegistroProcedencia {
16
+ herramienta: string;
17
+ version: string;
18
+ /** Commit analizado (`git rev-parse HEAD` del repositorio escaneado). */
19
+ commit: string;
20
+ timestamp: string;
21
+ /** Pin del ruleset: hash estable del conjunto de reglas usado. */
22
+ pinReglas: string;
23
+ /** Hash de este registro encadenado con el anterior. */
24
+ hash: string;
25
+ prevHash: string | null;
26
+ }
27
+ export interface ManifiestoProcedencia {
28
+ version: 1;
29
+ scans: RegistroProcedencia[];
30
+ }
31
+ export type CargaProcedencia = Omit<RegistroProcedencia, "hash" | "prevHash">;
32
+ export interface VeredictoProcedencia {
33
+ valido: boolean;
34
+ comprobados: number;
35
+ /** Índice (0-based) del primer registro que no cuadra. */
36
+ alteradoEn?: number;
37
+ /** Por qué no verifica, en una frase estable. */
38
+ motivo?: string;
39
+ }
40
+ /**
41
+ * Pin del ruleset. Ordenado y deduplicado a propósito: el mismo conjunto de
42
+ * reglas da el mismo pin se pase en el orden que se pase, porque dos ejecuciones
43
+ * que solo difieren en orden no deberían parecer scans distintos.
44
+ */
45
+ export declare function pinDeReglas(reglas: readonly string[]): string;
46
+ export declare function abrirManifiesto(): ManifiestoProcedencia;
47
+ /**
48
+ * Registra un scan encadenándolo al último. Devuelve un manifiesto NUEVO: el
49
+ * manifiesto es inmutable por diseño, «añadir» es crear la cadena siguiente.
50
+ */
51
+ export declare function registrarScan(manifiesto: ManifiestoProcedencia, carga: CargaProcedencia): ManifiestoProcedencia;
52
+ /**
53
+ * Recomputa la cadena completa. Detecta los tres casos que importan: contenido
54
+ * retocado (el hash no recomputa), hash re-firmado tras retocar (el enlace con
55
+ * el siguiente rompe), y registro añadido o quitado del medio (idem).
56
+ */
57
+ export declare function verificarProcedencia(manifiesto: ManifiestoProcedencia): VeredictoProcedencia;
58
+ /**
59
+ * Commit actual del repositorio analizado. Lanza fuera de un repo git: quien
60
+ * llama decide si eso es fatal o si el scan venía de otro sitio.
61
+ */
62
+ export declare function commitActual(raizRepo: string): string;
63
+ //# sourceMappingURL=procedencia.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procedencia.d.ts","sourceRoot":"","sources":["../../../src/core/revision/procedencia.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,MAAM,WAAW,mBAAmB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC7B;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;AAE9E,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAG7D;AAED,wBAAgB,eAAe,IAAI,qBAAqB,CAEvD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,qBAAqB,EAAE,KAAK,EAAE,gBAAgB,GAAG,qBAAqB,CAO/G;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,qBAAqB,GAAG,oBAAoB,CAa5F;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Procedencia del scan: qué herramienta, sobre qué commit y con qué reglas.
3
+ *
4
+ * Un SARIF sin procedencia es un informe sin firma: no se puede saber si el
5
+ * scan cubría el código que se está juzgando ni si las reglas eran las
6
+ * acordadas. El manifiesto lo fija en el momento del scan y se encadena por
7
+ * hash como el libro de sesión (src/core/audit/libro.ts): cada registro lleva
8
+ * el hash del anterior, así que editar un scan antiguo rompe TODA la cadena
9
+ * posterior — no hace falta saber cuál era para notarlo.
10
+ *
11
+ * `verificarProcedencia` recomputa la cadena entera. Sirve tanto para detectar
12
+ * manipulación deliberada como el accidente mundano: alguien arreglando a mano
13
+ * un JSON y dejándolo a medias.
14
+ */
15
+ import { execFileSync } from "node:child_process";
16
+ import { createHash } from "node:crypto";
17
+ function hashDe(prevHash, carga) {
18
+ return createHash("sha256")
19
+ .update(JSON.stringify({ prevHash, ...carga }))
20
+ .digest("hex");
21
+ }
22
+ /**
23
+ * Pin del ruleset. Ordenado y deduplicado a propósito: el mismo conjunto de
24
+ * reglas da el mismo pin se pase en el orden que se pase, porque dos ejecuciones
25
+ * que solo difieren en orden no deberían parecer scans distintos.
26
+ */
27
+ export function pinDeReglas(reglas) {
28
+ const canonico = [...new Set(reglas)].sort().join("\u0000");
29
+ return createHash("sha256").update(canonico).digest("hex");
30
+ }
31
+ export function abrirManifiesto() {
32
+ return { version: 1, scans: [] };
33
+ }
34
+ /**
35
+ * Registra un scan encadenándolo al último. Devuelve un manifiesto NUEVO: el
36
+ * manifiesto es inmutable por diseño, «añadir» es crear la cadena siguiente.
37
+ */
38
+ export function registrarScan(manifiesto, carga) {
39
+ const previo = manifiesto.scans.at(-1) ?? null;
40
+ const prevHash = previo ? previo.hash : null;
41
+ return {
42
+ version: 1,
43
+ scans: [...manifiesto.scans, { ...carga, prevHash, hash: hashDe(prevHash, carga) }],
44
+ };
45
+ }
46
+ /**
47
+ * Recomputa la cadena completa. Detecta los tres casos que importan: contenido
48
+ * retocado (el hash no recomputa), hash re-firmado tras retocar (el enlace con
49
+ * el siguiente rompe), y registro añadido o quitado del medio (idem).
50
+ */
51
+ export function verificarProcedencia(manifiesto) {
52
+ for (let i = 0; i < manifiesto.scans.length; i++) {
53
+ const actual = manifiesto.scans[i];
54
+ const { hash: _hash, prevHash: _prevHash, ...carga } = actual;
55
+ const prevEsperado = i === 0 ? null : manifiesto.scans[i - 1].hash;
56
+ if (actual.prevHash !== prevEsperado) {
57
+ return { valido: false, comprobados: i, alteradoEn: i, motivo: "enlace roto con el registro anterior" };
58
+ }
59
+ if (hashDe(actual.prevHash, carga) !== actual.hash) {
60
+ return { valido: false, comprobados: i, alteradoEn: i, motivo: "el contenido no corresponde a su hash" };
61
+ }
62
+ }
63
+ return { valido: true, comprobados: manifiesto.scans.length };
64
+ }
65
+ /**
66
+ * Commit actual del repositorio analizado. Lanza fuera de un repo git: quien
67
+ * llama decide si eso es fatal o si el scan venía de otro sitio.
68
+ */
69
+ export function commitActual(raizRepo) {
70
+ return execFileSync("git", ["rev-parse", "HEAD"], { cwd: raizRepo, encoding: "utf8" }).trim();
71
+ }
72
+ //# sourceMappingURL=procedencia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procedencia.js","sourceRoot":"","sources":["../../../src/core/revision/procedencia.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Publicación firmada del SARIF.
3
+ *
4
+ * Un SARIF que viaja al panel de seguridad es una afirmación («este código, en
5
+ * este estado, tiene estos hallazgos»). Sin firma, cualquiera con acceso de
6
+ * escritura al fichero puede quitar un hallazgo crítico y nadie lo notaría.
7
+ * El sobre es HMAC-SHA256 sobre los bytes EXACTOS del documento: la firma va a
8
+ * un `.sig` aparte para que el documento siga siendo SARIF ingerible tal cual
9
+ * y la verificación sea sobre lo que hay en disco, no sobre una
10
+ * re-serialización que podría no coincidir byte a byte.
11
+ */
12
+ export interface SarifFirmado {
13
+ /** El documento exacto que hay que escribir (y cuyo hash se firmó). */
14
+ documento: string;
15
+ /** Firma hex para el `<documento>.sig`. */
16
+ firma: string;
17
+ }
18
+ export declare function firmarDocumento(documento: string, clave: string): string;
19
+ /**
20
+ * Serializa y firma de una vez. El `documento` devuelto es el que hay que
21
+ * escribir — re-serializar aparte rompe la garantía byte a byte.
22
+ */
23
+ export declare function firmarSarif(sarif: unknown, clave: string): SarifFirmado;
24
+ /** Verifica la firma sobre los bytes exactos del documento publicado. */
25
+ export declare function verificarFirma(documento: string, firma: string, clave: string): boolean;
26
+ //# sourceMappingURL=publicar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicar.d.ts","sourceRoot":"","sources":["../../../src/core/revision/publicar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,WAAW,YAAY;IAC5B,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAGvE;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKvF"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Publicación firmada del SARIF.
3
+ *
4
+ * Un SARIF que viaja al panel de seguridad es una afirmación («este código, en
5
+ * este estado, tiene estos hallazgos»). Sin firma, cualquiera con acceso de
6
+ * escritura al fichero puede quitar un hallazgo crítico y nadie lo notaría.
7
+ * El sobre es HMAC-SHA256 sobre los bytes EXACTOS del documento: la firma va a
8
+ * un `.sig` aparte para que el documento siga siendo SARIF ingerible tal cual
9
+ * y la verificación sea sobre lo que hay en disco, no sobre una
10
+ * re-serialización que podría no coincidir byte a byte.
11
+ */
12
+ import { createHmac, timingSafeEqual } from "node:crypto";
13
+ export function firmarDocumento(documento, clave) {
14
+ if (!clave)
15
+ throw new Error("firmar sin clave es decoración: la clave es obligatoria");
16
+ return createHmac("sha256", clave).update(documento, "utf8").digest("hex");
17
+ }
18
+ /**
19
+ * Serializa y firma de una vez. El `documento` devuelto es el que hay que
20
+ * escribir — re-serializar aparte rompe la garantía byte a byte.
21
+ */
22
+ export function firmarSarif(sarif, clave) {
23
+ const documento = `${JSON.stringify(sarif, null, 2)}\n`;
24
+ return { documento, firma: firmarDocumento(documento, clave) };
25
+ }
26
+ /** Verifica la firma sobre los bytes exactos del documento publicado. */
27
+ export function verificarFirma(documento, firma, clave) {
28
+ const esperada = firmarDocumento(documento, clave);
29
+ // Buffer.from("hex") trunca en silencio ante basura: validar forma antes.
30
+ if (!/^[0-9a-f]{64}$/.test(firma))
31
+ return false;
32
+ return timingSafeEqual(Buffer.from(firma, "hex"), Buffer.from(esperada, "hex"));
33
+ }
34
+ //# sourceMappingURL=publicar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicar.js","sourceRoot":"","sources":["../../../src/core/revision/publicar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAS1D,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,KAAa;IAC/D,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACvF,OAAO,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,KAAa;IACxD,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IACxD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;AAChE,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,KAAa,EAAE,KAAa;IAC7E,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,0EAA0E;IAC1E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACjF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"revisor.d.ts","sourceRoot":"","sources":["../../../src/core/revision/revisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,QAAQ,EAAgC,MAAM,eAAe,CAAC;AAS5E;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAIpE;AAED,MAAM,WAAW,QAAQ;IACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACvB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAoBlF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAQ5G;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAiB5D;AAED,mCAAmC;AACnC,eAAO,MAAM,eAAe,QAsBhB,CAAC","sourcesContent":["/**\n * Revisión de un diff, con los hallazgos anclados al código.\n *\n * Lo que separa esto de «pídele al modelo que revise» es el ANCLAJE: un\n * hallazgo cuya evidencia no aparece en el diff se descarta, se cuente lo\n * convincente que se cuente. Un revisor que inventa una línea plausible es peor\n * que no tener revisor, porque cuesta tiempo comprobar que no existe y quema la\n * confianza del equipo en la herramienta entera.\n *\n * El anclaje también es lo que hace la puerta de esta fase comprobable: sobre un\n * diff limpio, un revisor honesto devuelve cero, y uno que inventa no puede\n * porque no hay dónde anclar.\n */\n\nimport { type Hallazgo, porQueNoVale, type Severidad } from \"./hallazgo.ts\";\n\nconst SEVERIDADES: Severidad[] = [\"critica\", \"alta\", \"media\", \"baja\", \"informativa\"];\n\n/** Espacios normalizados: un reformateo no debe romper el anclaje. */\nfunction normalizar(texto: string): string {\n\treturn texto.replace(/\\s+/g, \" \").trim();\n}\n\n/**\n * Las líneas AÑADIDAS de un diff unificado, sin el `+` inicial.\n *\n * Solo las añadidas: revisar lo que el diff borra es señalar un problema que la\n * propia edición ya resolvió, y ese ruido es de los que hacen que se deje de\n * leer la revisión.\n */\nexport function lineasAnadidas(diff: string): string[] {\n\treturn diff\n\t\t.split(\"\\n\")\n\t\t.filter((l) => l.startsWith(\"+\") && !l.startsWith(\"+++\"))\n\t\t.map((l) => l.slice(1));\n}\n\n/**\n * ¿La evidencia existe de verdad en lo que se ha añadido?\n *\n * Se compara sobre el texto normalizado y completo, y no línea a línea, porque\n * una evidencia legítima puede abarcar varias.\n */\nexport function estaAnclado(evidencia: string, diff: string): boolean {\n\tconst aguja = normalizar(evidencia);\n\tif (aguja.length < 3) return false;\n\treturn normalizar(lineasAnadidas(diff).join(\" \")).includes(aguja);\n}\n\nexport interface Descarte {\n\thallazgo: Partial<Hallazgo>;\n\tmotivo: string;\n}\n\nexport interface Cribado {\n\taceptados: Hallazgo[];\n\tdescartados: Descarte[];\n}\n\n/**\n * Deja pasar solo lo comprobable.\n *\n * Los descartes se devuelven, no se tiran: sin ellos no hay forma de saber si\n * el revisor está afinado o si está tirando la mitad de lo que encuentra, y esa\n * diferencia solo se ve con los números delante.\n */\nexport function cribar(candidatos: Array<Partial<Hallazgo>>, diff: string): Cribado {\n\tconst aceptados: Hallazgo[] = [];\n\tconst descartados: Descarte[] = [];\n\tfor (const c of candidatos) {\n\t\tconst problema = porQueNoVale(c);\n\t\tif (problema) {\n\t\t\tdescartados.push({ hallazgo: c, motivo: problema });\n\t\t\tcontinue;\n\t\t}\n\t\tif (!SEVERIDADES.includes(c.severidad as Severidad)) {\n\t\t\tdescartados.push({ hallazgo: c, motivo: `severidad desconocida: ${String(c.severidad)}` });\n\t\t\tcontinue;\n\t\t}\n\t\tif (!estaAnclado(c.evidencia as string, diff)) {\n\t\t\tdescartados.push({ hallazgo: c, motivo: \"la evidencia no aparece en el diff: no se puede comprobar\" });\n\t\t\tcontinue;\n\t\t}\n\t\taceptados.push(c as Hallazgo);\n\t}\n\treturn { aceptados, descartados };\n}\n\n/**\n * Resultado de leer la respuesta del modelo. Tres estados, no dos.\n *\n * `ok: false` es «NO HE PODIDO LEERLO», que no es lo mismo que «no hay\n * hallazgos». Antes las dos cosas volvían como `[]` y el comando imprimía «El\n * revisor no ha encontrado nada en este diff» con código 0 — la misma frase, el\n * mismo código de salida y los mismos bytes que un diff genuinamente limpio.\n * Medido ejecutando el comando: con el modelo contestando «No puedo ayudarte con\n * eso.» y con el modelo contestando `[]`, la salida era IDÉNTICA.\n *\n * Es el defecto que este repositorio persigue —un fallo que se lee como éxito—\n * y aquí era el peor de los casos: un certificado de limpieza sobre un diff que\n * nadie revisó.\n */\nexport type Extraccion = { ok: true; candidatos: Array<Partial<Hallazgo>> } | { ok: false; motivo: string };\n\n/** Un trozo de la respuesta, para que el motivo diga QUÉ llegó y no solo que no valía. */\nfunction recorte(texto: string): string {\n\tconst limpio = normalizar(texto);\n\treturn limpio.length > 160 ? `${limpio.slice(0, 160)}…` : limpio;\n}\n\n/**\n * Saca el JSON de la respuesta del modelo.\n *\n * Tolera que venga envuelto en un bloque de código o con texto alrededor,\n * porque eso pasa a menudo y fallar por ello convertiría una revisión buena en\n * un error. Lo que NO hace es inventarse la estructura: si no hay un array, eso\n * es un fallo de contrato y sale como fallo, no como «cero hallazgos».\n *\n * `[]` sigue siendo una respuesta válida y frecuente: es `ok: true` con la lista\n * vacía. La diferencia entre esa y la de abajo es justo lo que hay que conservar.\n */\nexport function extraerCandidatos(salida: string): Extraccion {\n\tconst cercado = salida.match(/```(?:json)?\\s*([\\s\\S]*?)```/);\n\tconst bruto = cercado ? cercado[1] : salida;\n\tconst inicio = bruto.indexOf(\"[\");\n\tconst fin = bruto.lastIndexOf(\"]\");\n\tif (inicio === -1 || fin <= inicio) {\n\t\treturn { ok: false, motivo: `la respuesta no traía ningún array JSON. Llegó esto: ${recorte(salida)}` };\n\t}\n\ttry {\n\t\t// El trozo empieza en `[` y acaba en `]`, así que si analiza es un array:\n\t\t// no hace falta una rama para «analizó pero no es array», que nunca se\n\t\t// dispararía.\n\t\treturn { ok: true, candidatos: JSON.parse(bruto.slice(inicio, fin + 1)) as Array<Partial<Hallazgo>> };\n\t} catch (error) {\n\t\tconst detalle = error instanceof Error ? error.message : String(error);\n\t\treturn { ok: false, motivo: `el array JSON venía roto (${detalle}). Llegó esto: ${recorte(salida)}` };\n\t}\n}\n\n/** Lo que se le pide al modelo. */\nexport const PROMPT_REVISION = [\n\t\"Eres un revisor de código. Revisas SOLO el diff que se te da.\",\n\t\"\",\n\t\"Devuelve un array JSON de hallazgos, y NADA más. Cada hallazgo:\",\n\t' { \"reglaId\": \"ada/<categoria>\", \"titulo\": \"...\", \"resumen\": \"...\",',\n\t' \"severidad\": \"critica|alta|media|baja|informativa\",',\n\t' \"ruta\": \"<ruta del fichero>\", \"lineaInicio\": <n>, \"lineaFin\": <n>,',\n\t' \"evidencia\": \"<el fragmento EXACTO del diff, copiado literalmente>\",',\n\t' \"remedio\": \"<qué hacer>\" }',\n\t\"\",\n\t\"Reglas que no se negocian:\",\n\t\"- `evidencia` tiene que estar COPIADA LITERALMENTE de una línea añadida del\",\n\t\" diff. Si no puedes copiarla, no tienes hallazgo: no lo inventes.\",\n\t\"- Revisa solo lo AÑADIDO. Señalar algo que el diff borra es ruido.\",\n\t\"- Si el diff está limpio, devuelve `[]`. Un array vacío es una respuesta\",\n\t\" correcta y frecuente; rellenar con hallazgos menores para parecer útil es\",\n\t\" la forma más rápida de que dejen de leer las revisiones.\",\n\t\"\",\n\t\"Qué buscar, por orden: fallos de corrección · fugas de seguridad o de\",\n\t\"secretos · errores que se tragan en silencio · cruces de frontera sin\",\n\t\"validar (dato externo que llega a una ruta de fichero, una consulta o un\",\n\t\"comando) · condiciones de carrera · recursos que no se cierran.\",\n].join(\"\\n\");\n"]}
1
+ {"version":3,"file":"revisor.d.ts","sourceRoot":"","sources":["../../../src/core/revision/revisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,QAAQ,EAAgC,MAAM,eAAe,CAAC;AAS5E;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAIpE;AAED,MAAM,WAAW,QAAQ;IACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACvB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAoBlF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAQ5G;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAiB5D;AAED,mCAAmC;AACnC,eAAO,MAAM,eAAe,QAsBhB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"revisor.js","sourceRoot":"","sources":["../../../src/core/revision/revisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAiB,YAAY,EAAkB,MAAM,eAAe,CAAC;AAE5E,MAAM,WAAW,GAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AAErF,sEAAsE;AACtE,SAAS,UAAU,CAAC,KAAa,EAAU;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAAA,CACzC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAY;IACtD,OAAO,IAAI;SACT,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACxD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,CACzB;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,IAAY,EAAW;IACrE,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAAA,CAClE;AAYD;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,UAAoC,EAAE,IAAY,EAAW;IACnF,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,MAAM,WAAW,GAAe,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,QAAQ,EAAE,CAAC;YACd,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpD,SAAS;QACV,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAsB,CAAC,EAAE,CAAC;YACrD,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,0BAA0B,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3F,SAAS;QACV,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAmB,EAAE,IAAI,CAAC,EAAE,CAAC;YAC/C,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,2DAA2D,EAAE,CAAC,CAAC;YACvG,SAAS;QACV,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,CAAa,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAAA,CAClC;AAkBD,6FAA0F;AAC1F,SAAS,OAAO,CAAC,KAAa,EAAU;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AAAA,CACjE;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAc;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;QACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,2DAAwD,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IACzG,CAAC;IACD,IAAI,CAAC;QACJ,2EAA0E;QAC1E,0EAAuE;QACvE,eAAc;QACd,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAA6B,EAAE,CAAC;IACvG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA6B,OAAO,mBAAkB,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IACvG,CAAC;AAAA,CACD;AAED,mCAAmC;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC9B,gEAA+D;IAC/D,EAAE;IACF,kEAAiE;IACjE,sEAAsE;IACtE,yDAAyD;IACzD,wEAAwE;IACxE,0EAA0E;IAC1E,iCAAgC;IAChC,EAAE;IACF,4BAA4B;IAC5B,+EAA6E;IAC7E,oEAAoE;IACpE,sEAAoE;IACpE,4EAA0E;IAC1E,8EAA6E;IAC7E,8DAA4D;IAC5D,EAAE;IACF,0EAAuE;IACvE,yEAAuE;IACvE,0EAA0E;IAC1E,mEAAiE;CACjE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC","sourcesContent":["/**\n * Revisión de un diff, con los hallazgos anclados al código.\n *\n * Lo que separa esto de «pídele al modelo que revise» es el ANCLAJE: un\n * hallazgo cuya evidencia no aparece en el diff se descarta, se cuente lo\n * convincente que se cuente. Un revisor que inventa una línea plausible es peor\n * que no tener revisor, porque cuesta tiempo comprobar que no existe y quema la\n * confianza del equipo en la herramienta entera.\n *\n * El anclaje también es lo que hace la puerta de esta fase comprobable: sobre un\n * diff limpio, un revisor honesto devuelve cero, y uno que inventa no puede\n * porque no hay dónde anclar.\n */\n\nimport { type Hallazgo, porQueNoVale, type Severidad } from \"./hallazgo.ts\";\n\nconst SEVERIDADES: Severidad[] = [\"critica\", \"alta\", \"media\", \"baja\", \"informativa\"];\n\n/** Espacios normalizados: un reformateo no debe romper el anclaje. */\nfunction normalizar(texto: string): string {\n\treturn texto.replace(/\\s+/g, \" \").trim();\n}\n\n/**\n * Las líneas AÑADIDAS de un diff unificado, sin el `+` inicial.\n *\n * Solo las añadidas: revisar lo que el diff borra es señalar un problema que la\n * propia edición ya resolvió, y ese ruido es de los que hacen que se deje de\n * leer la revisión.\n */\nexport function lineasAnadidas(diff: string): string[] {\n\treturn diff\n\t\t.split(\"\\n\")\n\t\t.filter((l) => l.startsWith(\"+\") && !l.startsWith(\"+++\"))\n\t\t.map((l) => l.slice(1));\n}\n\n/**\n * ¿La evidencia existe de verdad en lo que se ha añadido?\n *\n * Se compara sobre el texto normalizado y completo, y no línea a línea, porque\n * una evidencia legítima puede abarcar varias.\n */\nexport function estaAnclado(evidencia: string, diff: string): boolean {\n\tconst aguja = normalizar(evidencia);\n\tif (aguja.length < 3) return false;\n\treturn normalizar(lineasAnadidas(diff).join(\" \")).includes(aguja);\n}\n\nexport interface Descarte {\n\thallazgo: Partial<Hallazgo>;\n\tmotivo: string;\n}\n\nexport interface Cribado {\n\taceptados: Hallazgo[];\n\tdescartados: Descarte[];\n}\n\n/**\n * Deja pasar solo lo comprobable.\n *\n * Los descartes se devuelven, no se tiran: sin ellos no hay forma de saber si\n * el revisor está afinado o si está tirando la mitad de lo que encuentra, y esa\n * diferencia solo se ve con los números delante.\n */\nexport function cribar(candidatos: Array<Partial<Hallazgo>>, diff: string): Cribado {\n\tconst aceptados: Hallazgo[] = [];\n\tconst descartados: Descarte[] = [];\n\tfor (const c of candidatos) {\n\t\tconst problema = porQueNoVale(c);\n\t\tif (problema) {\n\t\t\tdescartados.push({ hallazgo: c, motivo: problema });\n\t\t\tcontinue;\n\t\t}\n\t\tif (!SEVERIDADES.includes(c.severidad as Severidad)) {\n\t\t\tdescartados.push({ hallazgo: c, motivo: `severidad desconocida: ${String(c.severidad)}` });\n\t\t\tcontinue;\n\t\t}\n\t\tif (!estaAnclado(c.evidencia as string, diff)) {\n\t\t\tdescartados.push({ hallazgo: c, motivo: \"la evidencia no aparece en el diff: no se puede comprobar\" });\n\t\t\tcontinue;\n\t\t}\n\t\taceptados.push(c as Hallazgo);\n\t}\n\treturn { aceptados, descartados };\n}\n\n/**\n * Resultado de leer la respuesta del modelo. Tres estados, no dos.\n *\n * `ok: false` es «NO HE PODIDO LEERLO», que no es lo mismo que «no hay\n * hallazgos». Antes las dos cosas volvían como `[]` y el comando imprimía «El\n * revisor no ha encontrado nada en este diff» con código 0 — la misma frase, el\n * mismo código de salida y los mismos bytes que un diff genuinamente limpio.\n * Medido ejecutando el comando: con el modelo contestando «No puedo ayudarte con\n * eso.» y con el modelo contestando `[]`, la salida era IDÉNTICA.\n *\n * Es el defecto que este repositorio persigue —un fallo que se lee como éxito—\n * y aquí era el peor de los casos: un certificado de limpieza sobre un diff que\n * nadie revisó.\n */\nexport type Extraccion = { ok: true; candidatos: Array<Partial<Hallazgo>> } | { ok: false; motivo: string };\n\n/** Un trozo de la respuesta, para que el motivo diga QUÉ llegó y no solo que no valía. */\nfunction recorte(texto: string): string {\n\tconst limpio = normalizar(texto);\n\treturn limpio.length > 160 ? `${limpio.slice(0, 160)}…` : limpio;\n}\n\n/**\n * Saca el JSON de la respuesta del modelo.\n *\n * Tolera que venga envuelto en un bloque de código o con texto alrededor,\n * porque eso pasa a menudo y fallar por ello convertiría una revisión buena en\n * un error. Lo que NO hace es inventarse la estructura: si no hay un array, eso\n * es un fallo de contrato y sale como fallo, no como «cero hallazgos».\n *\n * `[]` sigue siendo una respuesta válida y frecuente: es `ok: true` con la lista\n * vacía. La diferencia entre esa y la de abajo es justo lo que hay que conservar.\n */\nexport function extraerCandidatos(salida: string): Extraccion {\n\tconst cercado = salida.match(/```(?:json)?\\s*([\\s\\S]*?)```/);\n\tconst bruto = cercado ? cercado[1] : salida;\n\tconst inicio = bruto.indexOf(\"[\");\n\tconst fin = bruto.lastIndexOf(\"]\");\n\tif (inicio === -1 || fin <= inicio) {\n\t\treturn { ok: false, motivo: `la respuesta no traía ningún array JSON. Llegó esto: ${recorte(salida)}` };\n\t}\n\ttry {\n\t\t// El trozo empieza en `[` y acaba en `]`, así que si analiza es un array:\n\t\t// no hace falta una rama para «analizó pero no es array», que nunca se\n\t\t// dispararía.\n\t\treturn { ok: true, candidatos: JSON.parse(bruto.slice(inicio, fin + 1)) as Array<Partial<Hallazgo>> };\n\t} catch (error) {\n\t\tconst detalle = error instanceof Error ? error.message : String(error);\n\t\treturn { ok: false, motivo: `el array JSON venía roto (${detalle}). Llegó esto: ${recorte(salida)}` };\n\t}\n}\n\n/** Lo que se le pide al modelo. */\nexport const PROMPT_REVISION = [\n\t\"Eres un revisor de código. Revisas SOLO el diff que se te da.\",\n\t\"\",\n\t\"Devuelve un array JSON de hallazgos, y NADA más. Cada hallazgo:\",\n\t' { \"reglaId\": \"ada/<categoria>\", \"titulo\": \"...\", \"resumen\": \"...\",',\n\t' \"severidad\": \"critica|alta|media|baja|informativa\",',\n\t' \"ruta\": \"<ruta del fichero>\", \"lineaInicio\": <n>, \"lineaFin\": <n>,',\n\t' \"evidencia\": \"<el fragmento EXACTO del diff, copiado literalmente>\",',\n\t' \"remedio\": \"<qué hacer>\" }',\n\t\"\",\n\t\"Reglas que no se negocian:\",\n\t\"- `evidencia` tiene que estar COPIADA LITERALMENTE de una línea añadida del\",\n\t\" diff. Si no puedes copiarla, no tienes hallazgo: no lo inventes.\",\n\t\"- Revisa solo lo AÑADIDO. Señalar algo que el diff borra es ruido.\",\n\t\"- Si el diff está limpio, devuelve `[]`. Un array vacío es una respuesta\",\n\t\" correcta y frecuente; rellenar con hallazgos menores para parecer útil es\",\n\t\" la forma más rápida de que dejen de leer las revisiones.\",\n\t\"\",\n\t\"Qué buscar, por orden: fallos de corrección · fugas de seguridad o de\",\n\t\"secretos · errores que se tragan en silencio · cruces de frontera sin\",\n\t\"validar (dato externo que llega a una ruta de fichero, una consulta o un\",\n\t\"comando) · condiciones de carrera · recursos que no se cierran.\",\n].join(\"\\n\");\n"]}
1
+ {"version":3,"file":"revisor.js","sourceRoot":"","sources":["../../../src/core/revision/revisor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sarif.d.ts","sourceRoot":"","sources":["../../../src/core/revision/sarif.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,KAAK,QAAQ,EAAsC,MAAM,eAAe,CAAC;AAElF,MAAM,WAAW,aAAa;IAC7B,wDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0D9F","sourcesContent":["/**\n * Exportación a SARIF 2.1.0.\n *\n * SARIF es el formato que ingieren GitHub Code Scanning y Azure DevOps. Sin él,\n * los hallazgos de una revisión se quedan en la terminal de quien la lanzó: no\n * entran en el proceso de seguridad de la empresa, no aparecen en la pestaña de\n * la pull request y no cuentan para una homologación. Es un requisito de\n * compra, no una mejora.\n *\n * oh-my-pi lo tiene solo para su escáner de seguridad. Aquí vale para CUALQUIER\n * revisión, que es la diferencia entre «tenemos un escáner que exporta» y\n * «nuestro agente habla el idioma de tu proceso».\n *\n * Dos cosas que hacen que GitHub lo acepte y que se pierden fácil:\n *\n * - **Toda regla citada en `results` tiene que estar en `driver.rules`.** Si\n * falta, el resultado se ingiere sin descripción ni severidad, o se rechaza.\n * - **`originalUriBaseIds` con la raíz del repositorio**, para que las rutas\n * relativas se resuelvan contra el árbol y no contra la máquina que lo generó.\n */\n\nimport { pathToFileURL } from \"node:url\";\nimport { type Hallazgo, huellaDe, nivelSarif, puntuacionDe } from \"./hallazgo.ts\";\n\nexport interface OpcionesSarif {\n\t/** Raíz del repositorio, para `originalUriBaseIds`. */\n\traizRepo: string;\n\therramienta?: string;\n\tversion?: string;\n\turiInformacion?: string;\n}\n\nexport function aSarif(hallazgos: Hallazgo[], opciones: OpcionesSarif): Record<string, unknown> {\n\t// Una regla por `reglaId`, con la descripción del primer hallazgo que la usa.\n\tconst reglas = new Map<string, Hallazgo>();\n\tfor (const h of hallazgos) if (!reglas.has(h.reglaId)) reglas.set(h.reglaId, h);\n\n\treturn {\n\t\t$schema: \"https://json.schemastore.org/sarif-2.1.0.json\",\n\t\tversion: \"2.1.0\",\n\t\truns: [\n\t\t\t{\n\t\t\t\ttool: {\n\t\t\t\t\tdriver: {\n\t\t\t\t\t\tname: opciones.herramienta ?? \"Ada\",\n\t\t\t\t\t\tversion: opciones.version ?? \"0.0.0\",\n\t\t\t\t\t\tinformationUri: opciones.uriInformacion ?? \"https://hoilab.com/ada\",\n\t\t\t\t\t\trules: [...reglas.values()].map((h) => ({\n\t\t\t\t\t\t\tid: h.reglaId,\n\t\t\t\t\t\t\tname: h.reglaId,\n\t\t\t\t\t\t\tshortDescription: { text: h.titulo },\n\t\t\t\t\t\t\tfullDescription: { text: h.resumen },\n\t\t\t\t\t\t\t...(h.remedio ? { help: { text: h.remedio } } : {}),\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\ttags: h.etiquetas ?? [],\n\t\t\t\t\t\t\t\t\"security-severity\": String(puntuacionDe(h.severidad)),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tresults: hallazgos.map((h) => ({\n\t\t\t\t\truleId: h.reglaId,\n\t\t\t\t\tlevel: nivelSarif(h.severidad),\n\t\t\t\t\tmessage: { text: h.resumen },\n\t\t\t\t\tlocations: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tphysicalLocation: {\n\t\t\t\t\t\t\t\tartifactLocation: { uri: h.ruta, uriBaseId: \"%SRCROOT%\" },\n\t\t\t\t\t\t\t\tregion: {\n\t\t\t\t\t\t\t\t\tstartLine: h.lineaInicio,\n\t\t\t\t\t\t\t\t\tendLine: h.lineaFin ?? h.lineaInicio,\n\t\t\t\t\t\t\t\t\t// La evidencia viaja como fragmento de la región: es lo\n\t\t\t\t\t\t\t\t\t// que hace que el hallazgo sea comprobable desde el panel\n\t\t\t\t\t\t\t\t\t// sin abrir el repositorio.\n\t\t\t\t\t\t\t\t\tsnippet: { text: h.evidencia },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t// Lo que permite a GitHub reconocer el mismo hallazgo entre\n\t\t\t\t\t// ejecuciones aunque el fichero se haya movido.\n\t\t\t\t\tpartialFingerprints: { \"ada/v1\": huellaDe(h) },\n\t\t\t\t\tproperties: { severidad: h.severidad, \"security-severity\": String(puntuacionDe(h.severidad)) },\n\t\t\t\t})),\n\t\t\t\toriginalUriBaseIds: {\n\t\t\t\t\t\"%SRCROOT%\": { uri: pathToFileURL(opciones.raizRepo).href.replace(/\\/?$/, \"/\") },\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n}\n"]}
1
+ {"version":3,"file":"sarif.d.ts","sourceRoot":"","sources":["../../../src/core/revision/sarif.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,KAAK,QAAQ,EAAsC,MAAM,eAAe,CAAC;AAElF,MAAM,WAAW,aAAa;IAC7B,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0D9F"}
@@ -1 +1 @@
1
- {"version":3,"file":"sarif.js","sourceRoot":"","sources":["../../../src/core/revision/sarif.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Exportación a SARIF 2.1.0.\n *\n * SARIF es el formato que ingieren GitHub Code Scanning y Azure DevOps. Sin él,\n * los hallazgos de una revisión se quedan en la terminal de quien la lanzó: no\n * entran en el proceso de seguridad de la empresa, no aparecen en la pestaña de\n * la pull request y no cuentan para una homologación. Es un requisito de\n * compra, no una mejora.\n *\n * oh-my-pi lo tiene solo para su escáner de seguridad. Aquí vale para CUALQUIER\n * revisión, que es la diferencia entre «tenemos un escáner que exporta» y\n * «nuestro agente habla el idioma de tu proceso».\n *\n * Dos cosas que hacen que GitHub lo acepte y que se pierden fácil:\n *\n * - **Toda regla citada en `results` tiene que estar en `driver.rules`.** Si\n * falta, el resultado se ingiere sin descripción ni severidad, o se rechaza.\n * - **`originalUriBaseIds` con la raíz del repositorio**, para que las rutas\n * relativas se resuelvan contra el árbol y no contra la máquina que lo generó.\n */\n\nimport { pathToFileURL } from \"node:url\";\nimport { type Hallazgo, huellaDe, nivelSarif, puntuacionDe } from \"./hallazgo.ts\";\n\nexport interface OpcionesSarif {\n\t/** Raíz del repositorio, para `originalUriBaseIds`. */\n\traizRepo: string;\n\therramienta?: string;\n\tversion?: string;\n\turiInformacion?: string;\n}\n\nexport function aSarif(hallazgos: Hallazgo[], opciones: OpcionesSarif): Record<string, unknown> {\n\t// Una regla por `reglaId`, con la descripción del primer hallazgo que la usa.\n\tconst reglas = new Map<string, Hallazgo>();\n\tfor (const h of hallazgos) if (!reglas.has(h.reglaId)) reglas.set(h.reglaId, h);\n\n\treturn {\n\t\t$schema: \"https://json.schemastore.org/sarif-2.1.0.json\",\n\t\tversion: \"2.1.0\",\n\t\truns: [\n\t\t\t{\n\t\t\t\ttool: {\n\t\t\t\t\tdriver: {\n\t\t\t\t\t\tname: opciones.herramienta ?? \"Ada\",\n\t\t\t\t\t\tversion: opciones.version ?? \"0.0.0\",\n\t\t\t\t\t\tinformationUri: opciones.uriInformacion ?? \"https://hoilab.com/ada\",\n\t\t\t\t\t\trules: [...reglas.values()].map((h) => ({\n\t\t\t\t\t\t\tid: h.reglaId,\n\t\t\t\t\t\t\tname: h.reglaId,\n\t\t\t\t\t\t\tshortDescription: { text: h.titulo },\n\t\t\t\t\t\t\tfullDescription: { text: h.resumen },\n\t\t\t\t\t\t\t...(h.remedio ? { help: { text: h.remedio } } : {}),\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\ttags: h.etiquetas ?? [],\n\t\t\t\t\t\t\t\t\"security-severity\": String(puntuacionDe(h.severidad)),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tresults: hallazgos.map((h) => ({\n\t\t\t\t\truleId: h.reglaId,\n\t\t\t\t\tlevel: nivelSarif(h.severidad),\n\t\t\t\t\tmessage: { text: h.resumen },\n\t\t\t\t\tlocations: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tphysicalLocation: {\n\t\t\t\t\t\t\t\tartifactLocation: { uri: h.ruta, uriBaseId: \"%SRCROOT%\" },\n\t\t\t\t\t\t\t\tregion: {\n\t\t\t\t\t\t\t\t\tstartLine: h.lineaInicio,\n\t\t\t\t\t\t\t\t\tendLine: h.lineaFin ?? h.lineaInicio,\n\t\t\t\t\t\t\t\t\t// La evidencia viaja como fragmento de la región: es lo\n\t\t\t\t\t\t\t\t\t// que hace que el hallazgo sea comprobable desde el panel\n\t\t\t\t\t\t\t\t\t// sin abrir el repositorio.\n\t\t\t\t\t\t\t\t\tsnippet: { text: h.evidencia },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t// Lo que permite a GitHub reconocer el mismo hallazgo entre\n\t\t\t\t\t// ejecuciones aunque el fichero se haya movido.\n\t\t\t\t\tpartialFingerprints: { \"ada/v1\": huellaDe(h) },\n\t\t\t\t\tproperties: { severidad: h.severidad, \"security-severity\": String(puntuacionDe(h.severidad)) },\n\t\t\t\t})),\n\t\t\t\toriginalUriBaseIds: {\n\t\t\t\t\t\"%SRCROOT%\": { uri: pathToFileURL(opciones.raizRepo).href.replace(/\\/?$/, \"/\") },\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n}\n"]}
1
+ {"version":3,"file":"sarif.js","sourceRoot":"","sources":["../../../src/core/revision/sarif.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Alias para el router de URIs internas.
3
+ *
4
+ * El contrato de SYS-01 permite `src/core/rutas/*` o `src/core/router-uris/*`.
5
+ * Para no obligar al revisor a adivinar la carpeta elegida, este índice
6
+ * re-exporta el router canónico de `core/rutas/`. Es 0 hunks en ambos
7
+ * ficheros porque ninguno existe en upstream.
8
+ */
9
+ export * from "../rutas/envoltorio.ts";
10
+ export * from "../rutas/index.ts";
11
+ export * from "../rutas/router.ts";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/router-uris/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Alias para el router de URIs internas.
3
+ *
4
+ * El contrato de SYS-01 permite `src/core/rutas/*` o `src/core/router-uris/*`.
5
+ * Para no obligar al revisor a adivinar la carpeta elegida, este índice
6
+ * re-exporta el router canónico de `core/rutas/`. Es 0 hunks en ambos
7
+ * ficheros porque ninguno existe en upstream.
8
+ */
9
+ export * from "../rutas/envoltorio.js";
10
+ export * from "../rutas/index.js";
11
+ export * from "../rutas/router.js";
12
+ //# sourceMappingURL=index.js.map