@hoilab/ada-cli 0.85.0 → 0.85.3

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 (1682) 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 +33 -0
  134. package/dist/core/agent-session-services.js.map +1 -1
  135. package/dist/core/agent-session.d.ts +67 -0
  136. package/dist/core/agent-session.d.ts.map +1 -1
  137. package/dist/core/agent-session.js +43 -2
  138. package/dist/core/agent-session.js.map +1 -1
  139. package/dist/core/agents/loader.d.ts.map +1 -1
  140. package/dist/core/agents/loader.js.map +1 -1
  141. package/dist/core/appendonly/append-only-context.d.ts +118 -0
  142. package/dist/core/appendonly/append-only-context.d.ts.map +1 -0
  143. package/dist/core/appendonly/append-only-context.js +256 -0
  144. package/dist/core/appendonly/append-only-context.js.map +1 -0
  145. package/dist/core/appendonly/auto.d.ts +30 -0
  146. package/dist/core/appendonly/auto.d.ts.map +1 -0
  147. package/dist/core/appendonly/auto.js +68 -0
  148. package/dist/core/appendonly/auto.js.map +1 -0
  149. package/dist/core/appendonly/extension.d.ts +29 -0
  150. package/dist/core/appendonly/extension.d.ts.map +1 -0
  151. package/dist/core/appendonly/extension.js +51 -0
  152. package/dist/core/appendonly/extension.js.map +1 -0
  153. package/dist/core/appendonly/index.d.ts +41 -0
  154. package/dist/core/appendonly/index.d.ts.map +1 -0
  155. package/dist/core/appendonly/index.js +42 -0
  156. package/dist/core/appendonly/index.js.map +1 -0
  157. package/dist/core/aprobacion/generados.d.ts.map +1 -1
  158. package/dist/core/aprobacion/generados.js.map +1 -1
  159. package/dist/core/aprobacion/politica-de-maquina.d.ts.map +1 -1
  160. package/dist/core/aprobacion/politica-de-maquina.js.map +1 -1
  161. package/dist/core/aprobacion/politica.d.ts +1 -1
  162. package/dist/core/aprobacion/politica.d.ts.map +1 -1
  163. package/dist/core/aprobacion/politica.js.map +1 -1
  164. package/dist/core/arranque/atajos.d.ts.map +1 -1
  165. package/dist/core/arranque/atajos.js +20 -0
  166. package/dist/core/arranque/atajos.js.map +1 -1
  167. package/dist/core/audit/exportacion.d.ts.map +1 -1
  168. package/dist/core/audit/exportacion.js +5 -3
  169. package/dist/core/audit/exportacion.js.map +1 -1
  170. package/dist/core/audit/libro.d.ts +7 -0
  171. package/dist/core/audit/libro.d.ts.map +1 -1
  172. package/dist/core/audit/libro.js.map +1 -1
  173. package/dist/core/audit/registro-sesion.d.ts.map +1 -1
  174. package/dist/core/audit/registro-sesion.js.map +1 -1
  175. package/dist/core/audit/retencion.d.ts.map +1 -1
  176. package/dist/core/audit/retencion.js.map +1 -1
  177. package/dist/core/audit/rutas.d.ts.map +1 -1
  178. package/dist/core/audit/rutas.js.map +1 -1
  179. package/dist/core/auth-guidance.d.ts.map +1 -1
  180. package/dist/core/auth-guidance.js.map +1 -1
  181. package/dist/core/auth-storage.d.ts.map +1 -1
  182. package/dist/core/auth-storage.js.map +1 -1
  183. package/dist/core/banco/almacenamiento.d.ts.map +1 -1
  184. package/dist/core/banco/almacenamiento.js.map +1 -1
  185. package/dist/core/banco/analisis.d.ts.map +1 -1
  186. package/dist/core/banco/analisis.js.map +1 -1
  187. package/dist/core/banco/asides.d.ts +64 -0
  188. package/dist/core/banco/asides.d.ts.map +1 -0
  189. package/dist/core/banco/asides.js +113 -0
  190. package/dist/core/banco/asides.js.map +1 -0
  191. package/dist/core/banco/bloques.d.ts.map +1 -1
  192. package/dist/core/banco/bloques.js.map +1 -1
  193. package/dist/core/banco/cargas.d.ts.map +1 -1
  194. package/dist/core/banco/cargas.js.map +1 -1
  195. package/dist/core/banco/comparar.d.ts.map +1 -1
  196. package/dist/core/banco/comparar.js.map +1 -1
  197. package/dist/core/banco/cow-isolation.d.ts +74 -0
  198. package/dist/core/banco/cow-isolation.d.ts.map +1 -0
  199. package/dist/core/banco/cow-isolation.js +259 -0
  200. package/dist/core/banco/cow-isolation.js.map +1 -0
  201. package/dist/core/banco/ejecutar.d.ts.map +1 -1
  202. package/dist/core/banco/ejecutar.js.map +1 -1
  203. package/dist/core/banco/generar.d.ts.map +1 -1
  204. package/dist/core/banco/generar.js.map +1 -1
  205. package/dist/core/banco/mutaciones.d.ts.map +1 -1
  206. package/dist/core/banco/mutaciones.js.map +1 -1
  207. package/dist/core/banco/park-revive.d.ts +67 -0
  208. package/dist/core/banco/park-revive.d.ts.map +1 -0
  209. package/dist/core/banco/park-revive.js +130 -0
  210. package/dist/core/banco/park-revive.js.map +1 -0
  211. package/dist/core/banco/pruning.d.ts +48 -0
  212. package/dist/core/banco/pruning.d.ts.map +1 -0
  213. package/dist/core/banco/pruning.js +146 -0
  214. package/dist/core/banco/pruning.js.map +1 -0
  215. package/dist/core/banco/steering.d.ts +81 -0
  216. package/dist/core/banco/steering.d.ts.map +1 -0
  217. package/dist/core/banco/steering.js +96 -0
  218. package/dist/core/banco/steering.js.map +1 -0
  219. package/dist/core/banco/tipos.d.ts.map +1 -1
  220. package/dist/core/banco/tipos.js.map +1 -1
  221. package/dist/core/bash-executor.d.ts.map +1 -1
  222. package/dist/core/bash-executor.js.map +1 -1
  223. package/dist/core/blobs/almacen.d.ts.map +1 -1
  224. package/dist/core/blobs/almacen.js.map +1 -1
  225. package/dist/core/blobs/broker.d.ts +1 -0
  226. package/dist/core/blobs/broker.d.ts.map +1 -1
  227. package/dist/core/blobs/broker.js +1 -1
  228. package/dist/core/blobs/broker.js.map +1 -1
  229. package/dist/core/blobs/index.d.ts +1 -0
  230. package/dist/core/blobs/index.d.ts.map +1 -1
  231. package/dist/core/blobs/index.js +1 -0
  232. package/dist/core/blobs/index.js.map +1 -1
  233. package/dist/core/blobs/payload.d.ts.map +1 -1
  234. package/dist/core/blobs/payload.js.map +1 -1
  235. package/dist/core/blobs/proveedor.d.ts.map +1 -1
  236. package/dist/core/blobs/proveedor.js.map +1 -1
  237. package/dist/core/blobs/uploaders.d.ts +105 -0
  238. package/dist/core/blobs/uploaders.d.ts.map +1 -0
  239. package/dist/core/blobs/uploaders.js +224 -0
  240. package/dist/core/blobs/uploaders.js.map +1 -0
  241. package/dist/core/broker/broker.d.ts +54 -0
  242. package/dist/core/broker/broker.d.ts.map +1 -0
  243. package/dist/core/broker/broker.js +216 -0
  244. package/dist/core/broker/broker.js.map +1 -0
  245. package/dist/core/broker/index.d.ts +21 -0
  246. package/dist/core/broker/index.d.ts.map +1 -0
  247. package/dist/core/broker/index.js +33 -0
  248. package/dist/core/broker/index.js.map +1 -0
  249. package/dist/core/broker/ps.d.ts +20 -0
  250. package/dist/core/broker/ps.d.ts.map +1 -0
  251. package/dist/core/broker/ps.js +55 -0
  252. package/dist/core/broker/ps.js.map +1 -0
  253. package/dist/core/broker/types.d.ts +45 -0
  254. package/dist/core/broker/types.d.ts.map +1 -0
  255. package/dist/core/broker/types.js +19 -0
  256. package/dist/core/broker/types.js.map +1 -0
  257. package/dist/core/browser/cdp.d.ts.map +1 -1
  258. package/dist/core/browser/cdp.js.map +1 -1
  259. package/dist/core/browser/politica.d.ts.map +1 -1
  260. package/dist/core/browser/politica.js.map +1 -1
  261. package/dist/core/browser/sesion.d.ts.map +1 -1
  262. package/dist/core/browser/sesion.js.map +1 -1
  263. package/dist/core/browser/tools.d.ts.map +1 -1
  264. package/dist/core/browser/tools.js.map +1 -1
  265. package/dist/core/cache-stats.d.ts.map +1 -1
  266. package/dist/core/cache-stats.js.map +1 -1
  267. package/dist/core/capability/capability.test.d.ts +12 -0
  268. package/dist/core/capability/capability.test.d.ts.map +1 -0
  269. package/dist/core/capability/capability.test.js +258 -0
  270. package/dist/core/capability/capability.test.js.map +1 -0
  271. package/dist/core/capability/fs.d.ts +32 -0
  272. package/dist/core/capability/fs.d.ts.map +1 -0
  273. package/dist/core/capability/fs.js +106 -0
  274. package/dist/core/capability/fs.js.map +1 -0
  275. package/dist/core/capability/index.d.ts +68 -0
  276. package/dist/core/capability/index.d.ts.map +1 -0
  277. package/dist/core/capability/index.js +258 -0
  278. package/dist/core/capability/index.js.map +1 -0
  279. package/dist/core/capability/types.d.ts +168 -0
  280. package/dist/core/capability/types.d.ts.map +1 -0
  281. package/dist/core/capability/types.js +16 -0
  282. package/dist/core/capability/types.js.map +1 -0
  283. package/dist/core/carga-plugins/index.d.ts +49 -0
  284. package/dist/core/carga-plugins/index.d.ts.map +1 -0
  285. package/dist/core/carga-plugins/index.js +85 -0
  286. package/dist/core/carga-plugins/index.js.map +1 -0
  287. package/dist/core/carga-plugins/invalidacion.d.ts +60 -0
  288. package/dist/core/carga-plugins/invalidacion.d.ts.map +1 -0
  289. package/dist/core/carga-plugins/invalidacion.js +94 -0
  290. package/dist/core/carga-plugins/invalidacion.js.map +1 -0
  291. package/dist/core/carga-plugins/paralelo.d.ts +48 -0
  292. package/dist/core/carga-plugins/paralelo.d.ts.map +1 -0
  293. package/dist/core/carga-plugins/paralelo.js +47 -0
  294. package/dist/core/carga-plugins/paralelo.js.map +1 -0
  295. package/dist/core/colaboracion/autoresearch.d.ts +56 -0
  296. package/dist/core/colaboracion/autoresearch.d.ts.map +1 -0
  297. package/dist/core/colaboracion/autoresearch.js +95 -0
  298. package/dist/core/colaboracion/autoresearch.js.map +1 -0
  299. package/dist/core/colaboracion/index.d.ts +10 -0
  300. package/dist/core/colaboracion/index.d.ts.map +1 -0
  301. package/dist/core/colaboracion/index.js +7 -0
  302. package/dist/core/colaboracion/index.js.map +1 -0
  303. package/dist/core/colaboracion/kernels.d.ts +63 -0
  304. package/dist/core/colaboracion/kernels.d.ts.map +1 -0
  305. package/dist/core/colaboracion/kernels.js +99 -0
  306. package/dist/core/colaboracion/kernels.js.map +1 -0
  307. package/dist/core/colaboracion/rele/index.d.ts +8 -0
  308. package/dist/core/colaboracion/rele/index.d.ts.map +1 -0
  309. package/dist/core/colaboracion/rele/index.js +6 -0
  310. package/dist/core/colaboracion/rele/index.js.map +1 -0
  311. package/dist/core/colaboracion/rele/rele-servidor.d.ts +69 -0
  312. package/dist/core/colaboracion/rele/rele-servidor.d.ts.map +1 -0
  313. package/dist/core/colaboracion/rele/rele-servidor.js +197 -0
  314. package/dist/core/colaboracion/rele/rele-servidor.js.map +1 -0
  315. package/dist/core/colaboracion/rele/suscriptor.d.ts +31 -0
  316. package/dist/core/colaboracion/rele/suscriptor.d.ts.map +1 -0
  317. package/dist/core/colaboracion/rele/suscriptor.js +173 -0
  318. package/dist/core/colaboracion/rele/suscriptor.js.map +1 -0
  319. package/dist/core/colaboracion/sesion-colaborativa.d.ts +61 -0
  320. package/dist/core/colaboracion/sesion-colaborativa.d.ts.map +1 -0
  321. package/dist/core/colaboracion/sesion-colaborativa.js +127 -0
  322. package/dist/core/colaboracion/sesion-colaborativa.js.map +1 -0
  323. package/dist/core/commits/agentic.d.ts +101 -0
  324. package/dist/core/commits/agentic.d.ts.map +1 -0
  325. package/dist/core/commits/agentic.js +268 -0
  326. package/dist/core/commits/agentic.js.map +1 -0
  327. package/dist/core/commits/changelog.d.ts +37 -0
  328. package/dist/core/commits/changelog.d.ts.map +1 -0
  329. package/dist/core/commits/changelog.js +155 -0
  330. package/dist/core/commits/changelog.js.map +1 -0
  331. package/dist/core/commits/diff.d.ts.map +1 -0
  332. package/dist/core/commits/diff.js.map +1 -0
  333. package/dist/core/commits/git.d.ts +43 -0
  334. package/dist/core/commits/git.d.ts.map +1 -0
  335. package/dist/core/commits/git.js +61 -0
  336. package/dist/core/commits/git.js.map +1 -0
  337. package/dist/core/commits/split.d.ts +45 -0
  338. package/dist/core/commits/split.d.ts.map +1 -0
  339. package/dist/core/commits/split.js +128 -0
  340. package/dist/core/commits/split.js.map +1 -0
  341. package/dist/core/compactacion/comandos.d.ts +53 -0
  342. package/dist/core/compactacion/comandos.d.ts.map +1 -0
  343. package/dist/core/compactacion/comandos.js +155 -0
  344. package/dist/core/compactacion/comandos.js.map +1 -0
  345. package/dist/core/compactacion/extension.d.ts +28 -0
  346. package/dist/core/compactacion/extension.d.ts.map +1 -0
  347. package/dist/core/compactacion/extension.js +159 -0
  348. package/dist/core/compactacion/extension.js.map +1 -0
  349. package/dist/core/compactacion/handoff.d.ts +61 -0
  350. package/dist/core/compactacion/handoff.d.ts.map +1 -0
  351. package/dist/core/compactacion/handoff.js +139 -0
  352. package/dist/core/compactacion/handoff.js.map +1 -0
  353. package/dist/core/compactacion/index.d.ts +15 -0
  354. package/dist/core/compactacion/index.d.ts.map +1 -0
  355. package/dist/core/compactacion/index.js +15 -0
  356. package/dist/core/compactacion/index.js.map +1 -0
  357. package/dist/core/compactacion/prune.d.ts +38 -0
  358. package/dist/core/compactacion/prune.d.ts.map +1 -0
  359. package/dist/core/compactacion/prune.js +81 -0
  360. package/dist/core/compactacion/prune.js.map +1 -0
  361. package/dist/core/compactacion/shake.d.ts +40 -0
  362. package/dist/core/compactacion/shake.d.ts.map +1 -0
  363. package/dist/core/compactacion/shake.js +106 -0
  364. package/dist/core/compactacion/shake.js.map +1 -0
  365. package/dist/core/compactacion/tipos.d.ts +54 -0
  366. package/dist/core/compactacion/tipos.d.ts.map +1 -0
  367. package/dist/core/compactacion/tipos.js +44 -0
  368. package/dist/core/compactacion/tipos.js.map +1 -0
  369. package/dist/core/compactar/index.d.ts.map +1 -1
  370. package/dist/core/compactar/index.js.map +1 -1
  371. package/dist/core/compactar/registro-denso.d.ts.map +1 -1
  372. package/dist/core/compactar/registro-denso.js.map +1 -1
  373. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  374. package/dist/core/compaction/branch-summarization.js.map +1 -1
  375. package/dist/core/compaction/compaction.d.ts.map +1 -1
  376. package/dist/core/compaction/compaction.js.map +1 -1
  377. package/dist/core/compaction/index.d.ts.map +1 -1
  378. package/dist/core/compaction/index.js.map +1 -1
  379. package/dist/core/compaction/utils.d.ts.map +1 -1
  380. package/dist/core/compaction/utils.js.map +1 -1
  381. package/dist/core/computer/captura.d.ts.map +1 -1
  382. package/dist/core/computer/captura.js.map +1 -1
  383. package/dist/core/computer/driver.d.ts.map +1 -1
  384. package/dist/core/computer/driver.js.map +1 -1
  385. package/dist/core/computer/motor/actions.d.ts.map +1 -1
  386. package/dist/core/computer/motor/actions.js.map +1 -1
  387. package/dist/core/computer/motor/bridge.d.ts +2 -2
  388. package/dist/core/computer/motor/bridge.d.ts.map +1 -1
  389. package/dist/core/computer/motor/bridge.js.map +1 -1
  390. package/dist/core/computer/motor/cdp.d.ts.map +1 -1
  391. package/dist/core/computer/motor/cdp.js.map +1 -1
  392. package/dist/core/computer/motor/config.d.ts.map +1 -1
  393. package/dist/core/computer/motor/config.js.map +1 -1
  394. package/dist/core/computer/motor/contract.d.ts.map +1 -1
  395. package/dist/core/computer/motor/contract.js.map +1 -1
  396. package/dist/core/computer/motor/note.d.ts.map +1 -1
  397. package/dist/core/computer/motor/note.js.map +1 -1
  398. package/dist/core/computer/motor/outline.d.ts.map +1 -1
  399. package/dist/core/computer/motor/outline.js.map +1 -1
  400. package/dist/core/computer/motor/output.d.ts.map +1 -1
  401. package/dist/core/computer/motor/output.js.map +1 -1
  402. package/dist/core/computer/motor/permissions.d.ts.map +1 -1
  403. package/dist/core/computer/motor/permissions.js.map +1 -1
  404. package/dist/core/computer/motor/platform/architecture.d.ts.map +1 -1
  405. package/dist/core/computer/motor/platform/architecture.js.map +1 -1
  406. package/dist/core/computer/motor/platform/coerce.d.ts.map +1 -1
  407. package/dist/core/computer/motor/platform/coerce.js.map +1 -1
  408. package/dist/core/computer/motor/platform/index.d.ts.map +1 -1
  409. package/dist/core/computer/motor/platform/index.js.map +1 -1
  410. package/dist/core/computer/motor/platform/linux/backend.d.ts.map +1 -1
  411. package/dist/core/computer/motor/platform/linux/backend.js.map +1 -1
  412. package/dist/core/computer/motor/platform/linux/helper.d.ts.map +1 -1
  413. package/dist/core/computer/motor/platform/linux/helper.js.map +1 -1
  414. package/dist/core/computer/motor/platform/macos/backend.d.ts.map +1 -1
  415. package/dist/core/computer/motor/platform/macos/backend.js.map +1 -1
  416. package/dist/core/computer/motor/platform/macos/browser.d.ts.map +1 -1
  417. package/dist/core/computer/motor/platform/macos/browser.js.map +1 -1
  418. package/dist/core/computer/motor/platform/macos/helper.d.ts.map +1 -1
  419. package/dist/core/computer/motor/platform/macos/helper.js.map +1 -1
  420. package/dist/core/computer/motor/platform/macos/permissions.d.ts.map +1 -1
  421. package/dist/core/computer/motor/platform/macos/permissions.js.map +1 -1
  422. package/dist/core/computer/motor/platform/types.d.ts.map +1 -1
  423. package/dist/core/computer/motor/platform/types.js.map +1 -1
  424. package/dist/core/computer/motor/platform/windows/backend.d.ts.map +1 -1
  425. package/dist/core/computer/motor/platform/windows/backend.js.map +1 -1
  426. package/dist/core/computer/motor/platform/windows/helper.d.ts.map +1 -1
  427. package/dist/core/computer/motor/platform/windows/helper.js.map +1 -1
  428. package/dist/core/computer/motor/root-selection.d.ts.map +1 -1
  429. package/dist/core/computer/motor/root-selection.js.map +1 -1
  430. package/dist/core/computer/motor/runtime.d.ts.map +1 -1
  431. package/dist/core/computer/motor/runtime.js.map +1 -1
  432. package/dist/core/computer/motor/state.d.ts.map +1 -1
  433. package/dist/core/computer/motor/state.js.map +1 -1
  434. package/dist/core/computer/motor/view.d.ts.map +1 -1
  435. package/dist/core/computer/motor/view.js.map +1 -1
  436. package/dist/core/computer/motor-ada.d.ts.map +1 -1
  437. package/dist/core/computer/motor-ada.js.map +1 -1
  438. package/dist/core/computer/politica.d.ts.map +1 -1
  439. package/dist/core/computer/politica.js.map +1 -1
  440. package/dist/core/computer/tools.d.ts.map +1 -1
  441. package/dist/core/computer/tools.js.map +1 -1
  442. package/dist/core/config/quarantine.d.ts +57 -0
  443. package/dist/core/config/quarantine.d.ts.map +1 -0
  444. package/dist/core/config/quarantine.js +161 -0
  445. package/dist/core/config/quarantine.js.map +1 -0
  446. package/dist/core/config-viva/ambito.d.ts +46 -0
  447. package/dist/core/config-viva/ambito.d.ts.map +1 -0
  448. package/dist/core/config-viva/ambito.js +62 -0
  449. package/dist/core/config-viva/ambito.js.map +1 -0
  450. package/dist/core/config-viva/cache-negativa.d.ts +50 -0
  451. package/dist/core/config-viva/cache-negativa.d.ts.map +1 -0
  452. package/dist/core/config-viva/cache-negativa.js +78 -0
  453. package/dist/core/config-viva/cache-negativa.js.map +1 -0
  454. package/dist/core/config-viva/headers-vivos.d.ts +41 -0
  455. package/dist/core/config-viva/headers-vivos.d.ts.map +1 -0
  456. package/dist/core/config-viva/headers-vivos.js +43 -0
  457. package/dist/core/config-viva/headers-vivos.js.map +1 -0
  458. package/dist/core/config-viva/index.d.ts +16 -0
  459. package/dist/core/config-viva/index.d.ts.map +1 -0
  460. package/dist/core/config-viva/index.js +16 -0
  461. package/dist/core/config-viva/index.js.map +1 -0
  462. package/dist/core/config-viva/proveedor.d.ts +48 -0
  463. package/dist/core/config-viva/proveedor.d.ts.map +1 -0
  464. package/dist/core/config-viva/proveedor.js +78 -0
  465. package/dist/core/config-viva/proveedor.js.map +1 -0
  466. package/dist/core/context-breakdown.d.ts.map +1 -1
  467. package/dist/core/context-breakdown.js.map +1 -1
  468. package/dist/core/credenciales/cliente.d.ts.map +1 -1
  469. package/dist/core/credenciales/cliente.js.map +1 -1
  470. package/dist/core/credenciales/pool.d.ts +36 -1
  471. package/dist/core/credenciales/pool.d.ts.map +1 -1
  472. package/dist/core/credenciales/pool.js +56 -7
  473. package/dist/core/credenciales/pool.js.map +1 -1
  474. package/dist/core/credenciales/ranking.d.ts +56 -0
  475. package/dist/core/credenciales/ranking.d.ts.map +1 -0
  476. package/dist/core/credenciales/ranking.js +94 -0
  477. package/dist/core/credenciales/ranking.js.map +1 -0
  478. package/dist/core/credenciales/ratelimit.d.ts +54 -0
  479. package/dist/core/credenciales/ratelimit.d.ts.map +1 -0
  480. package/dist/core/credenciales/ratelimit.js +116 -0
  481. package/dist/core/credenciales/ratelimit.js.map +1 -0
  482. package/dist/core/credenciales/reposo.d.ts.map +1 -1
  483. package/dist/core/credenciales/reposo.js.map +1 -1
  484. package/dist/core/credenciales/servidor.d.ts +8 -0
  485. package/dist/core/credenciales/servidor.d.ts.map +1 -1
  486. package/dist/core/credenciales/servidor.js +9 -1
  487. package/dist/core/credenciales/servidor.js.map +1 -1
  488. package/dist/core/defaults.d.ts.map +1 -1
  489. package/dist/core/defaults.js.map +1 -1
  490. package/dist/core/descubrimiento/comandos.d.ts.map +1 -1
  491. package/dist/core/descubrimiento/comandos.js.map +1 -1
  492. package/dist/core/descubrimiento/mcp.d.ts +12 -0
  493. package/dist/core/descubrimiento/mcp.d.ts.map +1 -1
  494. package/dist/core/descubrimiento/mcp.js +32 -0
  495. package/dist/core/descubrimiento/mcp.js.map +1 -1
  496. package/dist/core/descubrimiento/reglas.d.ts.map +1 -1
  497. package/dist/core/descubrimiento/reglas.js.map +1 -1
  498. package/dist/core/descubrimiento/runtimes/index.d.ts +24 -0
  499. package/dist/core/descubrimiento/runtimes/index.d.ts.map +1 -0
  500. package/dist/core/descubrimiento/runtimes/index.js +109 -0
  501. package/dist/core/descubrimiento/runtimes/index.js.map +1 -0
  502. package/dist/core/descubrimiento/runtimes/litellm.d.ts +12 -0
  503. package/dist/core/descubrimiento/runtimes/litellm.d.ts.map +1 -0
  504. package/dist/core/descubrimiento/runtimes/litellm.js +185 -0
  505. package/dist/core/descubrimiento/runtimes/litellm.js.map +1 -0
  506. package/dist/core/descubrimiento/runtimes/lm-studio.d.ts +13 -0
  507. package/dist/core/descubrimiento/runtimes/lm-studio.d.ts.map +1 -0
  508. package/dist/core/descubrimiento/runtimes/lm-studio.js +142 -0
  509. package/dist/core/descubrimiento/runtimes/lm-studio.js.map +1 -0
  510. package/dist/core/descubrimiento/runtimes/ollama.d.ts +8 -0
  511. package/dist/core/descubrimiento/runtimes/ollama.d.ts.map +1 -0
  512. package/dist/core/descubrimiento/runtimes/ollama.js +96 -0
  513. package/dist/core/descubrimiento/runtimes/ollama.js.map +1 -0
  514. package/dist/core/descubrimiento/runtimes/tipos.d.ts +47 -0
  515. package/dist/core/descubrimiento/runtimes/tipos.d.ts.map +1 -0
  516. package/dist/core/descubrimiento/runtimes/tipos.js +10 -0
  517. package/dist/core/descubrimiento/runtimes/tipos.js.map +1 -0
  518. package/dist/core/descubrimiento/skills.d.ts.map +1 -1
  519. package/dist/core/descubrimiento/skills.js.map +1 -1
  520. package/dist/core/diagnostics.d.ts.map +1 -1
  521. package/dist/core/diagnostics.js.map +1 -1
  522. package/dist/core/dificultad/clasificador.d.ts.map +1 -1
  523. package/dist/core/dificultad/clasificador.js.map +1 -1
  524. package/dist/core/edicion/diario.d.ts.map +1 -1
  525. package/dist/core/edicion/diario.js.map +1 -1
  526. package/dist/core/edicion/hashline.d.ts.map +1 -1
  527. package/dist/core/edicion/hashline.js.map +1 -1
  528. package/dist/core/edicion/hueco.d.ts.map +1 -1
  529. package/dist/core/edicion/hueco.js.map +1 -1
  530. package/dist/core/edicion/ipynb.d.ts +51 -0
  531. package/dist/core/edicion/ipynb.d.ts.map +1 -0
  532. package/dist/core/edicion/ipynb.js +110 -0
  533. package/dist/core/edicion/ipynb.js.map +1 -0
  534. package/dist/core/edicion/limpiar-carga.d.ts.map +1 -1
  535. package/dist/core/edicion/limpiar-carga.js.map +1 -1
  536. package/dist/core/edicion/observador.d.ts.map +1 -1
  537. package/dist/core/edicion/observador.js.map +1 -1
  538. package/dist/core/edicion/parecido.d.ts.map +1 -1
  539. package/dist/core/edicion/parecido.js.map +1 -1
  540. package/dist/core/edicion/parseo.d.ts.map +1 -1
  541. package/dist/core/edicion/parseo.js.map +1 -1
  542. package/dist/core/edicion/portapapeles.d.ts +28 -0
  543. package/dist/core/edicion/portapapeles.d.ts.map +1 -0
  544. package/dist/core/edicion/portapapeles.js +49 -0
  545. package/dist/core/edicion/portapapeles.js.map +1 -0
  546. package/dist/core/edicion/reparacion.d.ts.map +1 -1
  547. package/dist/core/edicion/reparacion.js.map +1 -1
  548. package/dist/core/edicion/rutas-difusas.d.ts +44 -0
  549. package/dist/core/edicion/rutas-difusas.d.ts.map +1 -0
  550. package/dist/core/edicion/rutas-difusas.js +93 -0
  551. package/dist/core/edicion/rutas-difusas.js.map +1 -0
  552. package/dist/core/edicion/sangria.d.ts.map +1 -1
  553. package/dist/core/edicion/sangria.js.map +1 -1
  554. package/dist/core/edicion/tipos.d.ts.map +1 -1
  555. package/dist/core/edicion/tipos.js.map +1 -1
  556. package/dist/core/engine-personality.d.ts.map +1 -1
  557. package/dist/core/engine-personality.js.map +1 -1
  558. package/dist/core/errores/proveedor.d.ts.map +1 -1
  559. package/dist/core/errores/proveedor.js.map +1 -1
  560. package/dist/core/estructural/buscar.d.ts.map +1 -1
  561. package/dist/core/estructural/buscar.js.map +1 -1
  562. package/dist/core/estructural/editar.d.ts.map +1 -1
  563. package/dist/core/estructural/editar.js.map +1 -1
  564. package/dist/core/estructural/tools.d.ts.map +1 -1
  565. package/dist/core/estructural/tools.js.map +1 -1
  566. package/dist/core/event-bus.d.ts.map +1 -1
  567. package/dist/core/event-bus.js.map +1 -1
  568. package/dist/core/exec.d.ts.map +1 -1
  569. package/dist/core/exec.js.map +1 -1
  570. package/dist/core/experimental.d.ts.map +1 -1
  571. package/dist/core/experimental.js.map +1 -1
  572. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  573. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  574. package/dist/core/export-html/index.d.ts.map +1 -1
  575. package/dist/core/export-html/index.js +183 -13
  576. package/dist/core/export-html/index.js.map +1 -1
  577. package/dist/core/export-html/template.css +88 -4
  578. package/dist/core/export-html/template.html +3 -1
  579. package/dist/core/export-html/template.js +84 -0
  580. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  581. package/dist/core/export-html/tool-renderer.js.map +1 -1
  582. package/dist/core/extensiones/suplantacion.d.ts.map +1 -1
  583. package/dist/core/extensiones/suplantacion.js.map +1 -1
  584. package/dist/core/extensiones/vigilancia.d.ts.map +1 -1
  585. package/dist/core/extensiones/vigilancia.js.map +1 -1
  586. package/dist/core/extensions/index.d.ts.map +1 -1
  587. package/dist/core/extensions/index.js.map +1 -1
  588. package/dist/core/extensions/loader.d.ts.map +1 -1
  589. package/dist/core/extensions/loader.js.map +1 -1
  590. package/dist/core/extensions/runner.d.ts.map +1 -1
  591. package/dist/core/extensions/runner.js.map +1 -1
  592. package/dist/core/extensions/types.d.ts.map +1 -1
  593. package/dist/core/extensions/types.js.map +1 -1
  594. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  595. package/dist/core/extensions/wrapper.js.map +1 -1
  596. package/dist/core/footer-data-provider.d.ts.map +1 -1
  597. package/dist/core/footer-data-provider.js.map +1 -1
  598. package/dist/core/gc/archivo-frio.d.ts +33 -0
  599. package/dist/core/gc/archivo-frio.d.ts.map +1 -0
  600. package/dist/core/gc/archivo-frio.js +152 -0
  601. package/dist/core/gc/archivo-frio.js.map +1 -0
  602. package/dist/core/gc/blobs-gc.d.ts +25 -0
  603. package/dist/core/gc/blobs-gc.d.ts.map +1 -0
  604. package/dist/core/gc/blobs-gc.js +143 -0
  605. package/dist/core/gc/blobs-gc.js.map +1 -0
  606. package/dist/core/gc/index.d.ts +42 -0
  607. package/dist/core/gc/index.d.ts.map +1 -0
  608. package/dist/core/gc/index.js +50 -0
  609. package/dist/core/gc/index.js.map +1 -0
  610. package/dist/core/gc/lock.d.ts +19 -0
  611. package/dist/core/gc/lock.d.ts.map +1 -0
  612. package/dist/core/gc/lock.js +48 -0
  613. package/dist/core/gc/lock.js.map +1 -0
  614. package/dist/core/gc/reconciliacion.d.ts +19 -0
  615. package/dist/core/gc/reconciliacion.d.ts.map +1 -0
  616. package/dist/core/gc/reconciliacion.js +102 -0
  617. package/dist/core/gc/reconciliacion.js.map +1 -0
  618. package/dist/core/gc/wal.d.ts +15 -0
  619. package/dist/core/gc/wal.d.ts.map +1 -0
  620. package/dist/core/gc/wal.js +44 -0
  621. package/dist/core/gc/wal.js.map +1 -0
  622. package/dist/core/harness/fuentes-de-contexto.d.ts.map +1 -1
  623. package/dist/core/harness/fuentes-de-contexto.js.map +1 -1
  624. package/dist/core/harness/refine.d.ts.map +1 -1
  625. package/dist/core/harness/refine.js.map +1 -1
  626. package/dist/core/harness/store.d.ts.map +1 -1
  627. package/dist/core/harness/store.js.map +1 -1
  628. package/dist/core/higiene/index.d.ts +8 -0
  629. package/dist/core/higiene/index.d.ts.map +1 -0
  630. package/dist/core/higiene/index.js +8 -0
  631. package/dist/core/higiene/index.js.map +1 -0
  632. package/dist/core/higiene/managed-timers.d.ts +19 -0
  633. package/dist/core/higiene/managed-timers.d.ts.map +1 -0
  634. package/dist/core/higiene/managed-timers.js +68 -0
  635. package/dist/core/higiene/managed-timers.js.map +1 -0
  636. package/dist/core/higiene/race-handler.d.ts +7 -0
  637. package/dist/core/higiene/race-handler.d.ts.map +1 -0
  638. package/dist/core/higiene/race-handler.js +32 -0
  639. package/dist/core/higiene/race-handler.js.map +1 -0
  640. package/dist/core/higiene/withHostGuard.d.ts +27 -0
  641. package/dist/core/higiene/withHostGuard.d.ts.map +1 -0
  642. package/dist/core/higiene/withHostGuard.js +79 -0
  643. package/dist/core/higiene/withHostGuard.js.map +1 -0
  644. package/dist/core/hooks/contract.d.ts.map +1 -1
  645. package/dist/core/hooks/contract.js.map +1 -1
  646. package/dist/core/hooks/runner.d.ts.map +1 -1
  647. package/dist/core/hooks/runner.js.map +1 -1
  648. package/dist/core/hooks/session-hooks.d.ts.map +1 -1
  649. package/dist/core/hooks/session-hooks.js.map +1 -1
  650. package/dist/core/hooks-ts/cargador.d.ts +29 -0
  651. package/dist/core/hooks-ts/cargador.d.ts.map +1 -0
  652. package/dist/core/hooks-ts/cargador.js +51 -0
  653. package/dist/core/hooks-ts/cargador.js.map +1 -0
  654. package/dist/core/hooks-ts/index.d.ts +25 -0
  655. package/dist/core/hooks-ts/index.d.ts.map +1 -0
  656. package/dist/core/hooks-ts/index.js +25 -0
  657. package/dist/core/hooks-ts/index.js.map +1 -0
  658. package/dist/core/hooks-ts/runner.d.ts +40 -0
  659. package/dist/core/hooks-ts/runner.d.ts.map +1 -0
  660. package/dist/core/hooks-ts/runner.js +95 -0
  661. package/dist/core/hooks-ts/runner.js.map +1 -0
  662. package/dist/core/hooks-ts/tipos.d.ts +69 -0
  663. package/dist/core/hooks-ts/tipos.d.ts.map +1 -0
  664. package/dist/core/hooks-ts/tipos.js +90 -0
  665. package/dist/core/hooks-ts/tipos.js.map +1 -0
  666. package/dist/core/http-dispatcher.d.ts.map +1 -1
  667. package/dist/core/http-dispatcher.js.map +1 -1
  668. package/dist/core/importar/formatos.d.ts.map +1 -1
  669. package/dist/core/importar/formatos.js.map +1 -1
  670. package/dist/core/index.d.ts.map +1 -1
  671. package/dist/core/index.js.map +1 -1
  672. package/dist/core/interactivo/deteccion.d.ts.map +1 -1
  673. package/dist/core/interactivo/deteccion.js.map +1 -1
  674. package/dist/core/interactivo/sesion.d.ts.map +1 -1
  675. package/dist/core/interactivo/sesion.js.map +1 -1
  676. package/dist/core/interactivo/tools.d.ts.map +1 -1
  677. package/dist/core/interactivo/tools.js.map +1 -1
  678. package/dist/core/keybindings.d.ts +170 -170
  679. package/dist/core/keybindings.d.ts.map +1 -1
  680. package/dist/core/keybindings.js.map +1 -1
  681. package/dist/core/lectura/mapa.d.ts.map +1 -1
  682. package/dist/core/lectura/mapa.js.map +1 -1
  683. package/dist/core/lectura/pdf.d.ts.map +1 -1
  684. package/dist/core/lectura/pdf.js.map +1 -1
  685. package/dist/core/lectura/sniffer.d.ts +54 -0
  686. package/dist/core/lectura/sniffer.d.ts.map +1 -0
  687. package/dist/core/lectura/sniffer.js +106 -0
  688. package/dist/core/lectura/sniffer.js.map +1 -0
  689. package/dist/core/limpieza/comprobadores.d.ts +16 -2
  690. package/dist/core/limpieza/comprobadores.d.ts.map +1 -1
  691. package/dist/core/limpieza/comprobadores.js +200 -6
  692. package/dist/core/limpieza/comprobadores.js.map +1 -1
  693. package/dist/core/limpieza/flujo.d.ts +36 -0
  694. package/dist/core/limpieza/flujo.d.ts.map +1 -0
  695. package/dist/core/limpieza/flujo.js +89 -0
  696. package/dist/core/limpieza/flujo.js.map +1 -0
  697. package/dist/core/limpieza/parseo.d.ts.map +1 -1
  698. package/dist/core/limpieza/parseo.js.map +1 -1
  699. package/dist/core/limpieza/peso.d.ts +17 -0
  700. package/dist/core/limpieza/peso.d.ts.map +1 -0
  701. package/dist/core/limpieza/peso.js +52 -0
  702. package/dist/core/limpieza/peso.js.map +1 -0
  703. package/dist/core/limpieza/pool.d.ts +44 -0
  704. package/dist/core/limpieza/pool.d.ts.map +1 -0
  705. package/dist/core/limpieza/pool.js +123 -0
  706. package/dist/core/limpieza/pool.js.map +1 -0
  707. package/dist/core/limpieza/reparacion.d.ts +19 -2
  708. package/dist/core/limpieza/reparacion.d.ts.map +1 -1
  709. package/dist/core/limpieza/reparacion.js +95 -8
  710. package/dist/core/limpieza/reparacion.js.map +1 -1
  711. package/dist/core/limpieza/tablero.d.ts +47 -0
  712. package/dist/core/limpieza/tablero.d.ts.map +1 -0
  713. package/dist/core/limpieza/tablero.js +78 -0
  714. package/dist/core/limpieza/tablero.js.map +1 -0
  715. package/dist/core/limpieza/tipos.d.ts +25 -0
  716. package/dist/core/limpieza/tipos.d.ts.map +1 -1
  717. package/dist/core/limpieza/tipos.js.map +1 -1
  718. package/dist/core/lsp/cliente.d.ts +7 -0
  719. package/dist/core/lsp/cliente.d.ts.map +1 -1
  720. package/dist/core/lsp/cliente.js +4 -2
  721. package/dist/core/lsp/cliente.js.map +1 -1
  722. package/dist/core/lsp/descubrimiento.d.ts.map +1 -1
  723. package/dist/core/lsp/descubrimiento.js.map +1 -1
  724. package/dist/core/lsp/ediciones.d.ts.map +1 -1
  725. package/dist/core/lsp/ediciones.js.map +1 -1
  726. package/dist/core/lsp/extension.d.ts +9 -0
  727. package/dist/core/lsp/extension.d.ts.map +1 -1
  728. package/dist/core/lsp/extension.js +60 -4
  729. package/dist/core/lsp/extension.js.map +1 -1
  730. package/dist/core/lsp/formato.d.ts +72 -0
  731. package/dist/core/lsp/formato.d.ts.map +1 -0
  732. package/dist/core/lsp/formato.js +117 -0
  733. package/dist/core/lsp/formato.js.map +1 -0
  734. package/dist/core/lsp/tools.d.ts +3 -3
  735. package/dist/core/lsp/tools.d.ts.map +1 -1
  736. package/dist/core/lsp/tools.js.map +1 -1
  737. package/dist/core/lsp/writethrough.d.ts +165 -0
  738. package/dist/core/lsp/writethrough.d.ts.map +1 -0
  739. package/dist/core/lsp/writethrough.js +282 -0
  740. package/dist/core/lsp/writethrough.js.map +1 -0
  741. package/dist/core/marketplace/catalogo.d.ts +32 -0
  742. package/dist/core/marketplace/catalogo.d.ts.map +1 -0
  743. package/dist/core/marketplace/catalogo.js +122 -0
  744. package/dist/core/marketplace/catalogo.js.map +1 -0
  745. package/dist/core/marketplace/doctor.d.ts +47 -0
  746. package/dist/core/marketplace/doctor.d.ts.map +1 -0
  747. package/dist/core/marketplace/doctor.js +155 -0
  748. package/dist/core/marketplace/doctor.js.map +1 -0
  749. package/dist/core/marketplace/features.d.ts +22 -0
  750. package/dist/core/marketplace/features.d.ts.map +1 -0
  751. package/dist/core/marketplace/features.js +70 -0
  752. package/dist/core/marketplace/features.js.map +1 -0
  753. package/dist/core/marketplace/index.d.ts +33 -0
  754. package/dist/core/marketplace/index.d.ts.map +1 -0
  755. package/dist/core/marketplace/index.js +33 -0
  756. package/dist/core/marketplace/index.js.map +1 -0
  757. package/dist/core/marketplace/instalar.d.ts +27 -0
  758. package/dist/core/marketplace/instalar.d.ts.map +1 -0
  759. package/dist/core/marketplace/instalar.js +50 -0
  760. package/dist/core/marketplace/instalar.js.map +1 -0
  761. package/dist/core/mcp/client.d.ts.map +1 -1
  762. package/dist/core/mcp/client.js.map +1 -1
  763. package/dist/core/mcp/manager.d.ts.map +1 -1
  764. package/dist/core/mcp/manager.js.map +1 -1
  765. package/dist/core/mcp/oauth.d.ts +138 -0
  766. package/dist/core/mcp/oauth.d.ts.map +1 -0
  767. package/dist/core/mcp/oauth.js +348 -0
  768. package/dist/core/mcp/oauth.js.map +1 -0
  769. package/dist/core/mcp/tools.d.ts.map +1 -1
  770. package/dist/core/mcp/tools.js.map +1 -1
  771. package/dist/core/memoria/almacen.d.ts +56 -0
  772. package/dist/core/memoria/almacen.d.ts.map +1 -0
  773. package/dist/core/memoria/almacen.js +214 -0
  774. package/dist/core/memoria/almacen.js.map +1 -0
  775. package/dist/core/memoria/dr/respaldo.d.ts +34 -0
  776. package/dist/core/memoria/dr/respaldo.d.ts.map +1 -0
  777. package/dist/core/memoria/dr/respaldo.js +133 -0
  778. package/dist/core/memoria/dr/respaldo.js.map +1 -0
  779. package/dist/core/memoria/embeddings.d.ts +21 -0
  780. package/dist/core/memoria/embeddings.d.ts.map +1 -0
  781. package/dist/core/memoria/embeddings.js +87 -0
  782. package/dist/core/memoria/embeddings.js.map +1 -0
  783. package/dist/core/memoria/grafo.d.ts +56 -0
  784. package/dist/core/memoria/grafo.d.ts.map +1 -0
  785. package/dist/core/memoria/grafo.js +143 -0
  786. package/dist/core/memoria/grafo.js.map +1 -0
  787. package/dist/core/memoria/redaccion.d.ts +32 -0
  788. package/dist/core/memoria/redaccion.d.ts.map +1 -0
  789. package/dist/core/memoria/redaccion.js +76 -0
  790. package/dist/core/memoria/redaccion.js.map +1 -0
  791. package/dist/core/memoria/servidor/almacen-json.d.ts +26 -0
  792. package/dist/core/memoria/servidor/almacen-json.d.ts.map +1 -0
  793. package/dist/core/memoria/servidor/almacen-json.js +90 -0
  794. package/dist/core/memoria/servidor/almacen-json.js.map +1 -0
  795. package/dist/core/memoria/servidor/servidor.d.ts +43 -0
  796. package/dist/core/memoria/servidor/servidor.d.ts.map +1 -0
  797. package/dist/core/memoria/servidor/servidor.js +195 -0
  798. package/dist/core/memoria/servidor/servidor.js.map +1 -0
  799. package/dist/core/memoria/servidor/tipos.d.ts +44 -0
  800. package/dist/core/memoria/servidor/tipos.d.ts.map +1 -0
  801. package/dist/core/memoria/servidor/tipos.js +12 -0
  802. package/dist/core/memoria/servidor/tipos.js.map +1 -0
  803. package/dist/core/memoria/tipos.d.ts +63 -0
  804. package/dist/core/memoria/tipos.d.ts.map +1 -0
  805. package/dist/core/memoria/tipos.js +14 -0
  806. package/dist/core/memoria/tipos.js.map +1 -0
  807. package/dist/core/memory-engine/audit-export.d.ts.map +1 -1
  808. package/dist/core/memory-engine/audit-export.js.map +1 -1
  809. package/dist/core/memory-engine/audit-indice.d.ts.map +1 -1
  810. package/dist/core/memory-engine/audit-indice.js.map +1 -1
  811. package/dist/core/memory-engine/audit.d.ts.map +1 -1
  812. package/dist/core/memory-engine/audit.js.map +1 -1
  813. package/dist/core/memory-engine/engine.d.ts +7 -0
  814. package/dist/core/memory-engine/engine.d.ts.map +1 -1
  815. package/dist/core/memory-engine/engine.js.map +1 -1
  816. package/dist/core/memory-engine/inverted-index.d.ts.map +1 -1
  817. package/dist/core/memory-engine/inverted-index.js.map +1 -1
  818. package/dist/core/memory-engine/keychain.d.ts.map +1 -1
  819. package/dist/core/memory-engine/keychain.js.map +1 -1
  820. package/dist/core/memory-engine/observation-store.d.ts +1 -0
  821. package/dist/core/memory-engine/observation-store.d.ts.map +1 -1
  822. package/dist/core/memory-engine/observation-store.js.map +1 -1
  823. package/dist/core/memory-engine/refinements.d.ts.map +1 -1
  824. package/dist/core/memory-engine/refinements.js.map +1 -1
  825. package/dist/core/memory-engine/scanner.d.ts.map +1 -1
  826. package/dist/core/memory-engine/scanner.js.map +1 -1
  827. package/dist/core/memory-engine/security.d.ts.map +1 -1
  828. package/dist/core/memory-engine/security.js.map +1 -1
  829. package/dist/core/memory-engine/session-indexer.d.ts.map +1 -1
  830. package/dist/core/memory-engine/session-indexer.js.map +1 -1
  831. package/dist/core/memory-engine/tools.d.ts.map +1 -1
  832. package/dist/core/memory-engine/tools.js.map +1 -1
  833. package/dist/core/memory-engine/types.d.ts.map +1 -1
  834. package/dist/core/memory-engine/types.js.map +1 -1
  835. package/dist/core/memory-engine/vault.d.ts.map +1 -1
  836. package/dist/core/memory-engine/vault.js.map +1 -1
  837. package/dist/core/messages.d.ts.map +1 -1
  838. package/dist/core/messages.js.map +1 -1
  839. package/dist/core/metaharness/cli.d.ts +19 -0
  840. package/dist/core/metaharness/cli.d.ts.map +1 -0
  841. package/dist/core/metaharness/cli.js +171 -0
  842. package/dist/core/metaharness/cli.js.map +1 -0
  843. package/dist/core/metaharness/comparar.d.ts +21 -0
  844. package/dist/core/metaharness/comparar.d.ts.map +1 -0
  845. package/dist/core/metaharness/comparar.js +64 -0
  846. package/dist/core/metaharness/comparar.js.map +1 -0
  847. package/dist/core/metaharness/ejecutar.d.ts +70 -0
  848. package/dist/core/metaharness/ejecutar.d.ts.map +1 -0
  849. package/dist/core/metaharness/ejecutar.js +249 -0
  850. package/dist/core/metaharness/ejecutar.js.map +1 -0
  851. package/dist/core/metaharness/tipos.d.ts +142 -0
  852. package/dist/core/metaharness/tipos.d.ts.map +1 -0
  853. package/dist/core/metaharness/tipos.js +17 -0
  854. package/dist/core/metaharness/tipos.js.map +1 -0
  855. package/dist/core/model-config.d.ts +8 -8
  856. package/dist/core/model-config.d.ts.map +1 -1
  857. package/dist/core/model-config.js.map +1 -1
  858. package/dist/core/model-registry.d.ts.map +1 -1
  859. package/dist/core/model-registry.js.map +1 -1
  860. package/dist/core/model-resolver.d.ts.map +1 -1
  861. package/dist/core/model-resolver.js.map +1 -1
  862. package/dist/core/model-runtime.d.ts.map +1 -1
  863. package/dist/core/model-runtime.js.map +1 -1
  864. package/dist/core/models-store.d.ts.map +1 -1
  865. package/dist/core/models-store.js.map +1 -1
  866. package/dist/core/muestreo-restringido.d.ts.map +1 -1
  867. package/dist/core/muestreo-restringido.js.map +1 -1
  868. package/dist/core/orphan-process-journal.d.ts.map +1 -1
  869. package/dist/core/orphan-process-journal.js.map +1 -1
  870. package/dist/core/output-guard.d.ts.map +1 -1
  871. package/dist/core/output-guard.js.map +1 -1
  872. package/dist/core/package-manager.d.ts.map +1 -1
  873. package/dist/core/package-manager.js.map +1 -1
  874. package/dist/core/parche/aplicar.d.ts +19 -0
  875. package/dist/core/parche/aplicar.d.ts.map +1 -0
  876. package/dist/core/parche/aplicar.js +243 -0
  877. package/dist/core/parche/aplicar.js.map +1 -0
  878. package/dist/core/parche/parser.d.ts +38 -0
  879. package/dist/core/parche/parser.d.ts.map +1 -0
  880. package/dist/core/parche/parser.js +217 -0
  881. package/dist/core/parche/parser.js.map +1 -0
  882. package/dist/core/parche/registro.d.ts +12 -0
  883. package/dist/core/parche/registro.d.ts.map +1 -0
  884. package/dist/core/parche/registro.js +58 -0
  885. package/dist/core/parche/registro.js.map +1 -0
  886. package/dist/core/perfiles/index.d.ts +22 -0
  887. package/dist/core/perfiles/index.d.ts.map +1 -0
  888. package/dist/core/perfiles/index.js +21 -0
  889. package/dist/core/perfiles/index.js.map +1 -0
  890. package/dist/core/perfiles/resolver.d.ts +51 -0
  891. package/dist/core/perfiles/resolver.d.ts.map +1 -0
  892. package/dist/core/perfiles/resolver.js +329 -0
  893. package/dist/core/perfiles/resolver.js.map +1 -0
  894. package/dist/core/perfiles/tipos.d.ts +69 -0
  895. package/dist/core/perfiles/tipos.d.ts.map +1 -0
  896. package/dist/core/perfiles/tipos.js +98 -0
  897. package/dist/core/perfiles/tipos.js.map +1 -0
  898. package/dist/core/pi-manifest.d.ts.map +1 -1
  899. package/dist/core/pi-manifest.js.map +1 -1
  900. package/dist/core/privacidad/categorias-especiales.d.ts.map +1 -1
  901. package/dist/core/privacidad/categorias-especiales.js +4 -0
  902. package/dist/core/privacidad/categorias-especiales.js.map +1 -1
  903. package/dist/core/privacidad/tapar.d.ts.map +1 -1
  904. package/dist/core/privacidad/tapar.js.map +1 -1
  905. package/dist/core/project-memory.d.ts.map +1 -1
  906. package/dist/core/project-memory.js.map +1 -1
  907. package/dist/core/project-trust.d.ts.map +1 -1
  908. package/dist/core/project-trust.js.map +1 -1
  909. package/dist/core/prompt-cache/diagnostics.d.ts.map +1 -1
  910. package/dist/core/prompt-cache/diagnostics.js.map +1 -1
  911. package/dist/core/prompt-cache/index.d.ts.map +1 -1
  912. package/dist/core/prompt-cache/index.js.map +1 -1
  913. package/dist/core/prompt-cache/payload.d.ts.map +1 -1
  914. package/dist/core/prompt-cache/payload.js.map +1 -1
  915. package/dist/core/prompt-cache/stabilize.d.ts.map +1 -1
  916. package/dist/core/prompt-cache/stabilize.js.map +1 -1
  917. package/dist/core/prompt-cache/stats.d.ts.map +1 -1
  918. package/dist/core/prompt-cache/stats.js.map +1 -1
  919. package/dist/core/prompt-eleccion.d.ts.map +1 -1
  920. package/dist/core/prompt-eleccion.js.map +1 -1
  921. package/dist/core/prompt-optimizer.d.ts.map +1 -1
  922. package/dist/core/prompt-optimizer.js.map +1 -1
  923. package/dist/core/prompt-templates.d.ts.map +1 -1
  924. package/dist/core/prompt-templates.js.map +1 -1
  925. package/dist/core/prompts/montar.d.ts.map +1 -1
  926. package/dist/core/prompts/montar.js.map +1 -1
  927. package/dist/core/prompts/plantilla.d.ts.map +1 -1
  928. package/dist/core/prompts/plantilla.js.map +1 -1
  929. package/dist/core/proveedores-registry/definiciones.d.ts +15 -0
  930. package/dist/core/proveedores-registry/definiciones.d.ts.map +1 -0
  931. package/dist/core/proveedores-registry/definiciones.js +22 -0
  932. package/dist/core/proveedores-registry/definiciones.js.map +1 -0
  933. package/dist/core/proveedores-registry/index.d.ts +14 -0
  934. package/dist/core/proveedores-registry/index.d.ts.map +1 -0
  935. package/dist/core/proveedores-registry/index.js +13 -0
  936. package/dist/core/proveedores-registry/index.js.map +1 -0
  937. package/dist/core/proveedores-registry/resolver.d.ts +25 -0
  938. package/dist/core/proveedores-registry/resolver.d.ts.map +1 -0
  939. package/dist/core/proveedores-registry/resolver.js +69 -0
  940. package/dist/core/proveedores-registry/resolver.js.map +1 -0
  941. package/dist/core/proveedores-registry/tipos.d.ts +47 -0
  942. package/dist/core/proveedores-registry/tipos.d.ts.map +1 -0
  943. package/dist/core/proveedores-registry/tipos.js +15 -0
  944. package/dist/core/proveedores-registry/tipos.js.map +1 -0
  945. package/dist/core/provider-attribution.d.ts.map +1 -1
  946. package/dist/core/provider-attribution.js.map +1 -1
  947. package/dist/core/provider-composer.d.ts.map +1 -1
  948. package/dist/core/provider-composer.js.map +1 -1
  949. package/dist/core/radius.d.ts.map +1 -1
  950. package/dist/core/radius.js.map +1 -1
  951. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  952. package/dist/core/remote-catalog-provider.js.map +1 -1
  953. package/dist/core/remoto/destino.d.ts.map +1 -1
  954. package/dist/core/remoto/destino.js.map +1 -1
  955. package/dist/core/remoto/ejecutor.d.ts.map +1 -1
  956. package/dist/core/remoto/ejecutor.js.map +1 -1
  957. package/dist/core/remoto/ficheros.d.ts.map +1 -1
  958. package/dist/core/remoto/ficheros.js.map +1 -1
  959. package/dist/core/remoto/registro-extension.d.ts.map +1 -1
  960. package/dist/core/remoto/registro-extension.js.map +1 -1
  961. package/dist/core/remoto/tools.d.ts.map +1 -1
  962. package/dist/core/remoto/tools.js.map +1 -1
  963. package/dist/core/reparacion/index.d.ts +2 -0
  964. package/dist/core/reparacion/index.d.ts.map +1 -0
  965. package/dist/core/reparacion/index.js +2 -0
  966. package/dist/core/reparacion/index.js.map +1 -0
  967. package/dist/core/reparacion/reparar-hunk.d.ts +27 -0
  968. package/dist/core/reparacion/reparar-hunk.d.ts.map +1 -0
  969. package/dist/core/reparacion/reparar-hunk.js +139 -0
  970. package/dist/core/reparacion/reparar-hunk.js.map +1 -0
  971. package/dist/core/resolve-config-value.d.ts.map +1 -1
  972. package/dist/core/resolve-config-value.js.map +1 -1
  973. package/dist/core/resource-loader.d.ts +13 -0
  974. package/dist/core/resource-loader.d.ts.map +1 -1
  975. package/dist/core/resource-loader.js +7 -4
  976. package/dist/core/resource-loader.js.map +1 -1
  977. package/dist/core/revision/dispositions.d.ts +86 -0
  978. package/dist/core/revision/dispositions.d.ts.map +1 -0
  979. package/dist/core/revision/dispositions.js +137 -0
  980. package/dist/core/revision/dispositions.js.map +1 -0
  981. package/dist/core/revision/hallazgo.d.ts.map +1 -1
  982. package/dist/core/revision/hallazgo.js.map +1 -1
  983. package/dist/core/revision/procedencia.d.ts +63 -0
  984. package/dist/core/revision/procedencia.d.ts.map +1 -0
  985. package/dist/core/revision/procedencia.js +72 -0
  986. package/dist/core/revision/procedencia.js.map +1 -0
  987. package/dist/core/revision/publicar.d.ts +26 -0
  988. package/dist/core/revision/publicar.d.ts.map +1 -0
  989. package/dist/core/revision/publicar.js +34 -0
  990. package/dist/core/revision/publicar.js.map +1 -0
  991. package/dist/core/revision/revisor.d.ts.map +1 -1
  992. package/dist/core/revision/revisor.js.map +1 -1
  993. package/dist/core/revision/sarif.d.ts.map +1 -1
  994. package/dist/core/revision/sarif.js.map +1 -1
  995. package/dist/core/router-uris/index.d.ts +12 -0
  996. package/dist/core/router-uris/index.d.ts.map +1 -0
  997. package/dist/core/router-uris/index.js +12 -0
  998. package/dist/core/router-uris/index.js.map +1 -0
  999. package/dist/core/router-uris/router.d.ts +2 -0
  1000. package/dist/core/router-uris/router.d.ts.map +1 -0
  1001. package/dist/core/router-uris/router.js +2 -0
  1002. package/dist/core/router-uris/router.js.map +1 -0
  1003. package/dist/core/runtime-credentials.d.ts.map +1 -1
  1004. package/dist/core/runtime-credentials.js.map +1 -1
  1005. package/dist/core/rutas/envoltorio.d.ts +20 -0
  1006. package/dist/core/rutas/envoltorio.d.ts.map +1 -0
  1007. package/dist/core/rutas/envoltorio.js +48 -0
  1008. package/dist/core/rutas/envoltorio.js.map +1 -0
  1009. package/dist/core/rutas/index.d.ts +11 -0
  1010. package/dist/core/rutas/index.d.ts.map +1 -0
  1011. package/dist/core/rutas/index.js +11 -0
  1012. package/dist/core/rutas/index.js.map +1 -0
  1013. package/dist/core/rutas/router.d.ts +82 -0
  1014. package/dist/core/rutas/router.d.ts.map +1 -0
  1015. package/dist/core/rutas/router.js +161 -0
  1016. package/dist/core/rutas/router.js.map +1 -0
  1017. package/dist/core/scheduler/scheduler.d.ts.map +1 -1
  1018. package/dist/core/scheduler/scheduler.js.map +1 -1
  1019. package/dist/core/sdk.d.ts.map +1 -1
  1020. package/dist/core/sdk.js.map +1 -1
  1021. package/dist/core/secretos/extension.d.ts +31 -0
  1022. package/dist/core/secretos/extension.d.ts.map +1 -0
  1023. package/dist/core/secretos/extension.js +64 -0
  1024. package/dist/core/secretos/extension.js.map +1 -0
  1025. package/dist/core/secretos/index.d.ts +75 -0
  1026. package/dist/core/secretos/index.d.ts.map +1 -0
  1027. package/dist/core/secretos/index.js +385 -0
  1028. package/dist/core/secretos/index.js.map +1 -0
  1029. package/dist/core/secretos/message-transform.d.ts +44 -0
  1030. package/dist/core/secretos/message-transform.d.ts.map +1 -0
  1031. package/dist/core/secretos/message-transform.js +246 -0
  1032. package/dist/core/secretos/message-transform.js.map +1 -0
  1033. package/dist/core/secretos/obfuscator.d.ts +30 -0
  1034. package/dist/core/secretos/obfuscator.d.ts.map +1 -0
  1035. package/dist/core/secretos/obfuscator.js +1182 -0
  1036. package/dist/core/secretos/obfuscator.js.map +1 -0
  1037. package/dist/core/secretos/placeholder-scan.d.ts +96 -0
  1038. package/dist/core/secretos/placeholder-scan.d.ts.map +1 -0
  1039. package/dist/core/secretos/placeholder-scan.js +433 -0
  1040. package/dist/core/secretos/placeholder-scan.js.map +1 -0
  1041. package/dist/core/secretos/placeholder.d.ts +95 -0
  1042. package/dist/core/secretos/placeholder.d.ts.map +1 -0
  1043. package/dist/core/secretos/placeholder.js +283 -0
  1044. package/dist/core/secretos/placeholder.js.map +1 -0
  1045. package/dist/core/secretos/regex.d.ts +3 -0
  1046. package/dist/core/secretos/regex.d.ts.map +1 -0
  1047. package/dist/core/secretos/regex.js +19 -0
  1048. package/dist/core/secretos/regex.js.map +1 -0
  1049. package/dist/core/secretos/replacement.d.ts +83 -0
  1050. package/dist/core/secretos/replacement.d.ts.map +1 -0
  1051. package/dist/core/secretos/replacement.js +211 -0
  1052. package/dist/core/secretos/replacement.js.map +1 -0
  1053. package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts.map +1 -1
  1054. package/dist/core/sesion/cerrar-llamadas-abiertas.js.map +1 -1
  1055. package/dist/core/sesion/journal-tree.d.ts +73 -0
  1056. package/dist/core/sesion/journal-tree.d.ts.map +1 -0
  1057. package/dist/core/sesion/journal-tree.js +241 -0
  1058. package/dist/core/sesion/journal-tree.js.map +1 -0
  1059. package/dist/core/sesion/turn-recovery.d.ts +48 -0
  1060. package/dist/core/sesion/turn-recovery.d.ts.map +1 -0
  1061. package/dist/core/sesion/turn-recovery.js +182 -0
  1062. package/dist/core/sesion/turn-recovery.js.map +1 -0
  1063. package/dist/core/session-cwd.d.ts.map +1 -1
  1064. package/dist/core/session-cwd.js.map +1 -1
  1065. package/dist/core/session-manager.d.ts.map +1 -1
  1066. package/dist/core/session-manager.js.map +1 -1
  1067. package/dist/core/settings-diagnostics.d.ts.map +1 -1
  1068. package/dist/core/settings-diagnostics.js.map +1 -1
  1069. package/dist/core/settings-manager.d.ts +2 -2
  1070. package/dist/core/settings-manager.d.ts.map +1 -1
  1071. package/dist/core/settings-manager.js.map +1 -1
  1072. package/dist/core/share/cifrado.d.ts +39 -0
  1073. package/dist/core/share/cifrado.d.ts.map +1 -0
  1074. package/dist/core/share/cifrado.js +81 -0
  1075. package/dist/core/share/cifrado.js.map +1 -0
  1076. package/dist/core/share/exportar.d.ts +69 -0
  1077. package/dist/core/share/exportar.d.ts.map +1 -0
  1078. package/dist/core/share/exportar.js +247 -0
  1079. package/dist/core/share/exportar.js.map +1 -0
  1080. package/dist/core/skills.d.ts.map +1 -1
  1081. package/dist/core/skills.js.map +1 -1
  1082. package/dist/core/slash-commands.d.ts.map +1 -1
  1083. package/dist/core/slash-commands.js.map +1 -1
  1084. package/dist/core/source-info.d.ts.map +1 -1
  1085. package/dist/core/source-info.js.map +1 -1
  1086. package/dist/core/stream-guard/guardia.d.ts +45 -0
  1087. package/dist/core/stream-guard/guardia.d.ts.map +1 -0
  1088. package/dist/core/stream-guard/guardia.js +100 -0
  1089. package/dist/core/stream-guard/guardia.js.map +1 -0
  1090. package/dist/core/stream-guard/index.d.ts +9 -0
  1091. package/dist/core/stream-guard/index.d.ts.map +1 -0
  1092. package/dist/core/stream-guard/index.js +7 -0
  1093. package/dist/core/stream-guard/index.js.map +1 -0
  1094. package/dist/core/stream-guard/replay.d.ts +39 -0
  1095. package/dist/core/stream-guard/replay.d.ts.map +1 -0
  1096. package/dist/core/stream-guard/replay.js +68 -0
  1097. package/dist/core/stream-guard/replay.js.map +1 -0
  1098. package/dist/core/system-prompt.d.ts.map +1 -1
  1099. package/dist/core/system-prompt.js.map +1 -1
  1100. package/dist/core/telemetria/otlp.d.ts.map +1 -1
  1101. package/dist/core/telemetria/otlp.js.map +1 -1
  1102. package/dist/core/telemetry/otel-genai.d.ts +44 -0
  1103. package/dist/core/telemetry/otel-genai.d.ts.map +1 -0
  1104. package/dist/core/telemetry/otel-genai.js +124 -0
  1105. package/dist/core/telemetry/otel-genai.js.map +1 -0
  1106. package/dist/core/telemetry.d.ts.map +1 -1
  1107. package/dist/core/telemetry.js.map +1 -1
  1108. package/dist/core/terminal/backlog-guard.d.ts +53 -0
  1109. package/dist/core/terminal/backlog-guard.d.ts.map +1 -0
  1110. package/dist/core/terminal/backlog-guard.js +122 -0
  1111. package/dist/core/terminal/backlog-guard.js.map +1 -0
  1112. package/dist/core/terminal/conpty.d.ts +29 -0
  1113. package/dist/core/terminal/conpty.d.ts.map +1 -0
  1114. package/dist/core/terminal/conpty.js +67 -0
  1115. package/dist/core/terminal/conpty.js.map +1 -0
  1116. package/dist/core/terminal/conptyChunking.d.ts +2 -0
  1117. package/dist/core/terminal/conptyChunking.d.ts.map +1 -0
  1118. package/dist/core/terminal/conptyChunking.js +2 -0
  1119. package/dist/core/terminal/conptyChunking.js.map +1 -0
  1120. package/dist/core/terminal/index.d.ts +5 -0
  1121. package/dist/core/terminal/index.d.ts.map +1 -0
  1122. package/dist/core/terminal/index.js +5 -0
  1123. package/dist/core/terminal/index.js.map +1 -0
  1124. package/dist/core/terminal/loop-watchdog.d.ts +43 -0
  1125. package/dist/core/terminal/loop-watchdog.d.ts.map +1 -0
  1126. package/dist/core/terminal/loop-watchdog.js +117 -0
  1127. package/dist/core/terminal/loop-watchdog.js.map +1 -0
  1128. package/dist/core/terminal/runner.d.ts +55 -0
  1129. package/dist/core/terminal/runner.d.ts.map +1 -0
  1130. package/dist/core/terminal/runner.js +102 -0
  1131. package/dist/core/terminal/runner.js.map +1 -0
  1132. package/dist/core/timings.d.ts.map +1 -1
  1133. package/dist/core/timings.js.map +1 -1
  1134. package/dist/core/tools/apply_patch.d.ts +29 -0
  1135. package/dist/core/tools/apply_patch.d.ts.map +1 -0
  1136. package/dist/core/tools/apply_patch.js +54 -0
  1137. package/dist/core/tools/apply_patch.js.map +1 -0
  1138. package/dist/core/tools/bash.d.ts.map +1 -1
  1139. package/dist/core/tools/bash.js.map +1 -1
  1140. package/dist/core/tools/coercion-argumentos.d.ts.map +1 -1
  1141. package/dist/core/tools/coercion-argumentos.js.map +1 -1
  1142. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  1143. package/dist/core/tools/edit-diff.js.map +1 -1
  1144. package/dist/core/tools/edit.d.ts.map +1 -1
  1145. package/dist/core/tools/edit.js +43 -1
  1146. package/dist/core/tools/edit.js.map +1 -1
  1147. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  1148. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  1149. package/dist/core/tools/find.d.ts.map +1 -1
  1150. package/dist/core/tools/find.js.map +1 -1
  1151. package/dist/core/tools/grep.d.ts.map +1 -1
  1152. package/dist/core/tools/grep.js.map +1 -1
  1153. package/dist/core/tools/index.d.ts.map +1 -1
  1154. package/dist/core/tools/index.js.map +1 -1
  1155. package/dist/core/tools/json-tolerante.d.ts.map +1 -1
  1156. package/dist/core/tools/json-tolerante.js.map +1 -1
  1157. package/dist/core/tools/ls.d.ts.map +1 -1
  1158. package/dist/core/tools/ls.js.map +1 -1
  1159. package/dist/core/tools/noop-loop-guard.d.ts +46 -0
  1160. package/dist/core/tools/noop-loop-guard.d.ts.map +1 -0
  1161. package/dist/core/tools/noop-loop-guard.js +57 -0
  1162. package/dist/core/tools/noop-loop-guard.js.map +1 -0
  1163. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  1164. package/dist/core/tools/output-accumulator.js.map +1 -1
  1165. package/dist/core/tools/path-utils.d.ts.map +1 -1
  1166. package/dist/core/tools/path-utils.js.map +1 -1
  1167. package/dist/core/tools/project-memory-tool.d.ts.map +1 -1
  1168. package/dist/core/tools/project-memory-tool.js.map +1 -1
  1169. package/dist/core/tools/read.d.ts.map +1 -1
  1170. package/dist/core/tools/read.js.map +1 -1
  1171. package/dist/core/tools/render-utils.d.ts.map +1 -1
  1172. package/dist/core/tools/render-utils.js.map +1 -1
  1173. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  1174. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  1175. package/dist/core/tools/truncate.d.ts.map +1 -1
  1176. package/dist/core/tools/truncate.js.map +1 -1
  1177. package/dist/core/tools/write.d.ts.map +1 -1
  1178. package/dist/core/tools/write.js.map +1 -1
  1179. package/dist/core/trust-manager.d.ts.map +1 -1
  1180. package/dist/core/trust-manager.js.map +1 -1
  1181. package/dist/core/ttsr/captura.d.ts +72 -0
  1182. package/dist/core/ttsr/captura.d.ts.map +1 -0
  1183. package/dist/core/ttsr/captura.js +183 -0
  1184. package/dist/core/ttsr/captura.js.map +1 -0
  1185. package/dist/core/ttsr/index.d.ts +24 -0
  1186. package/dist/core/ttsr/index.d.ts.map +1 -0
  1187. package/dist/core/ttsr/index.js +57 -0
  1188. package/dist/core/ttsr/index.js.map +1 -0
  1189. package/dist/core/ttsr/preview.d.ts +48 -0
  1190. package/dist/core/ttsr/preview.d.ts.map +1 -0
  1191. package/dist/core/ttsr/preview.js +83 -0
  1192. package/dist/core/ttsr/preview.js.map +1 -0
  1193. package/dist/core/turno-vacio/detectar.d.ts.map +1 -1
  1194. package/dist/core/turno-vacio/detectar.js.map +1 -1
  1195. package/dist/core/undo/journal.d.ts.map +1 -1
  1196. package/dist/core/undo/journal.js.map +1 -1
  1197. package/dist/core/urls-internas/auditoria.d.ts.map +1 -1
  1198. package/dist/core/urls-internas/auditoria.js.map +1 -1
  1199. package/dist/core/urls-internas/boveda.d.ts.map +1 -1
  1200. package/dist/core/urls-internas/boveda.js.map +1 -1
  1201. package/dist/core/urls-internas/lector.d.ts +14 -10
  1202. package/dist/core/urls-internas/lector.d.ts.map +1 -1
  1203. package/dist/core/urls-internas/lector.js +50 -36
  1204. package/dist/core/urls-internas/lector.js.map +1 -1
  1205. package/dist/core/urls-internas/memoria.d.ts.map +1 -1
  1206. package/dist/core/urls-internas/memoria.js.map +1 -1
  1207. package/dist/core/urls-internas/parse.d.ts +6 -13
  1208. package/dist/core/urls-internas/parse.d.ts.map +1 -1
  1209. package/dist/core/urls-internas/parse.js +6 -17
  1210. package/dist/core/urls-internas/parse.js.map +1 -1
  1211. package/dist/core/urls-internas/reglas.d.ts.map +1 -1
  1212. package/dist/core/urls-internas/reglas.js.map +1 -1
  1213. package/dist/core/usage/aggregate.d.ts +1 -0
  1214. package/dist/core/usage/aggregate.d.ts.map +1 -1
  1215. package/dist/core/usage/aggregate.js +1 -1
  1216. package/dist/core/usage/aggregate.js.map +1 -1
  1217. package/dist/core/usage/cuota/anthropic.d.ts.map +1 -1
  1218. package/dist/core/usage/cuota/anthropic.js.map +1 -1
  1219. package/dist/core/usage/cuota/cache.d.ts.map +1 -1
  1220. package/dist/core/usage/cuota/cache.js.map +1 -1
  1221. package/dist/core/usage/cuota/github-copilot.d.ts.map +1 -1
  1222. package/dist/core/usage/cuota/github-copilot.js.map +1 -1
  1223. package/dist/core/usage/cuota/google-gemini.d.ts.map +1 -1
  1224. package/dist/core/usage/cuota/google-gemini.js.map +1 -1
  1225. package/dist/core/usage/cuota/index.d.ts.map +1 -1
  1226. package/dist/core/usage/cuota/index.js.map +1 -1
  1227. package/dist/core/usage/cuota/openai-codex.d.ts.map +1 -1
  1228. package/dist/core/usage/cuota/openai-codex.js.map +1 -1
  1229. package/dist/core/usage/cuota/openrouter.d.ts.map +1 -1
  1230. package/dist/core/usage/cuota/openrouter.js.map +1 -1
  1231. package/dist/core/usage/cuota/tipos.d.ts.map +1 -1
  1232. package/dist/core/usage/cuota/tipos.js.map +1 -1
  1233. package/dist/core/usage/index.d.ts +11 -0
  1234. package/dist/core/usage/index.d.ts.map +1 -0
  1235. package/dist/core/usage/index.js +11 -0
  1236. package/dist/core/usage/index.js.map +1 -0
  1237. package/dist/core/usage/multi.d.ts +62 -0
  1238. package/dist/core/usage/multi.d.ts.map +1 -0
  1239. package/dist/core/usage/multi.js +122 -0
  1240. package/dist/core/usage/multi.js.map +1 -0
  1241. package/dist/core/usage/redaccion.d.ts +48 -0
  1242. package/dist/core/usage/redaccion.d.ts.map +1 -0
  1243. package/dist/core/usage/redaccion.js +72 -0
  1244. package/dist/core/usage/redaccion.js.map +1 -0
  1245. package/dist/core/usage-totals.d.ts.map +1 -1
  1246. package/dist/core/usage-totals.js.map +1 -1
  1247. package/dist/core/utils/atomic-write.d.ts +55 -0
  1248. package/dist/core/utils/atomic-write.d.ts.map +1 -0
  1249. package/dist/core/utils/atomic-write.js +293 -0
  1250. package/dist/core/utils/atomic-write.js.map +1 -0
  1251. package/dist/core/utils/git.d.ts +24 -0
  1252. package/dist/core/utils/git.d.ts.map +1 -0
  1253. package/dist/core/utils/git.js +107 -0
  1254. package/dist/core/utils/git.js.map +1 -0
  1255. package/dist/core/utils/logger.d.ts +26 -0
  1256. package/dist/core/utils/logger.d.ts.map +1 -0
  1257. package/dist/core/utils/logger.js +104 -0
  1258. package/dist/core/utils/logger.js.map +1 -0
  1259. package/dist/core/utils/shell-snapshot.d.ts +21 -0
  1260. package/dist/core/utils/shell-snapshot.d.ts.map +1 -0
  1261. package/dist/core/utils/shell-snapshot.js +32 -0
  1262. package/dist/core/utils/shell-snapshot.js.map +1 -0
  1263. package/dist/core/utils/startup-watchdog.d.ts +11 -0
  1264. package/dist/core/utils/startup-watchdog.d.ts.map +1 -0
  1265. package/dist/core/utils/startup-watchdog.js +34 -0
  1266. package/dist/core/utils/startup-watchdog.js.map +1 -0
  1267. package/dist/core/utils/tls-ca-shim.d.ts +17 -0
  1268. package/dist/core/utils/tls-ca-shim.d.ts.map +1 -0
  1269. package/dist/core/utils/tls-ca-shim.js +33 -0
  1270. package/dist/core/utils/tls-ca-shim.js.map +1 -0
  1271. package/dist/core/web/agregador.d.ts +67 -0
  1272. package/dist/core/web/agregador.d.ts.map +1 -0
  1273. package/dist/core/web/agregador.js +182 -0
  1274. package/dist/core/web/agregador.js.map +1 -0
  1275. package/dist/core/web/busqueda-nativa.d.ts.map +1 -1
  1276. package/dist/core/web/busqueda-nativa.js.map +1 -1
  1277. package/dist/core/web/consulta.d.ts +53 -0
  1278. package/dist/core/web/consulta.d.ts.map +1 -0
  1279. package/dist/core/web/consulta.js +213 -0
  1280. package/dist/core/web/consulta.js.map +1 -0
  1281. package/dist/core/web/destino.d.ts +11 -0
  1282. package/dist/core/web/destino.d.ts.map +1 -1
  1283. package/dist/core/web/destino.js +35 -0
  1284. package/dist/core/web/destino.js.map +1 -1
  1285. package/dist/core/web/load-page.d.ts +52 -0
  1286. package/dist/core/web/load-page.d.ts.map +1 -0
  1287. package/dist/core/web/load-page.js +221 -0
  1288. package/dist/core/web/load-page.js.map +1 -0
  1289. package/dist/core/web/proveedores/brave.d.ts.map +1 -1
  1290. package/dist/core/web/proveedores/brave.js.map +1 -1
  1291. package/dist/core/web/proveedores/claves.d.ts.map +1 -1
  1292. package/dist/core/web/proveedores/claves.js.map +1 -1
  1293. package/dist/core/web/proveedores/duckduckgo.d.ts.map +1 -1
  1294. package/dist/core/web/proveedores/duckduckgo.js.map +1 -1
  1295. package/dist/core/web/proveedores/ecosia.d.ts.map +1 -1
  1296. package/dist/core/web/proveedores/ecosia.js.map +1 -1
  1297. package/dist/core/web/proveedores/exa.d.ts.map +1 -1
  1298. package/dist/core/web/proveedores/exa.js.map +1 -1
  1299. package/dist/core/web/proveedores/mojeek.d.ts.map +1 -1
  1300. package/dist/core/web/proveedores/mojeek.js.map +1 -1
  1301. package/dist/core/web/proveedores/navegador.d.ts.map +1 -1
  1302. package/dist/core/web/proveedores/navegador.js.map +1 -1
  1303. package/dist/core/web/proveedores/registro.d.ts.map +1 -1
  1304. package/dist/core/web/proveedores/registro.js.map +1 -1
  1305. package/dist/core/web/proveedores/searxng.d.ts.map +1 -1
  1306. package/dist/core/web/proveedores/searxng.js.map +1 -1
  1307. package/dist/core/web/proveedores/serper.d.ts.map +1 -1
  1308. package/dist/core/web/proveedores/serper.js.map +1 -1
  1309. package/dist/core/web/proveedores/tavily.d.ts.map +1 -1
  1310. package/dist/core/web/proveedores/tavily.js.map +1 -1
  1311. package/dist/core/web/proveedores/tipos.d.ts.map +1 -1
  1312. package/dist/core/web/proveedores/tipos.js.map +1 -1
  1313. package/dist/core/web/registro-red.d.ts.map +1 -1
  1314. package/dist/core/web/registro-red.js.map +1 -1
  1315. package/dist/core/web/scrapers/cisa-kev.d.ts.map +1 -1
  1316. package/dist/core/web/scrapers/cisa-kev.js.map +1 -1
  1317. package/dist/core/web/scrapers/crates-io.d.ts.map +1 -1
  1318. package/dist/core/web/scrapers/crates-io.js.map +1 -1
  1319. package/dist/core/web/scrapers/docs-rs.d.ts.map +1 -1
  1320. package/dist/core/web/scrapers/docs-rs.js.map +1 -1
  1321. package/dist/core/web/scrapers/github.d.ts.map +1 -1
  1322. package/dist/core/web/scrapers/github.js.map +1 -1
  1323. package/dist/core/web/scrapers/go-pkg.d.ts.map +1 -1
  1324. package/dist/core/web/scrapers/go-pkg.js.map +1 -1
  1325. package/dist/core/web/scrapers/hex.d.ts.map +1 -1
  1326. package/dist/core/web/scrapers/hex.js.map +1 -1
  1327. package/dist/core/web/scrapers/maven.d.ts.map +1 -1
  1328. package/dist/core/web/scrapers/maven.js.map +1 -1
  1329. package/dist/core/web/scrapers/mdn.d.ts.map +1 -1
  1330. package/dist/core/web/scrapers/mdn.js.map +1 -1
  1331. package/dist/core/web/scrapers/npm.d.ts.map +1 -1
  1332. package/dist/core/web/scrapers/npm.js.map +1 -1
  1333. package/dist/core/web/scrapers/nuget.d.ts.map +1 -1
  1334. package/dist/core/web/scrapers/nuget.js.map +1 -1
  1335. package/dist/core/web/scrapers/nvd.d.ts.map +1 -1
  1336. package/dist/core/web/scrapers/nvd.js.map +1 -1
  1337. package/dist/core/web/scrapers/pypi.d.ts.map +1 -1
  1338. package/dist/core/web/scrapers/pypi.js.map +1 -1
  1339. package/dist/core/web/scrapers/registro.d.ts.map +1 -1
  1340. package/dist/core/web/scrapers/registro.js.map +1 -1
  1341. package/dist/core/web/scrapers/rubygems.d.ts.map +1 -1
  1342. package/dist/core/web/scrapers/rubygems.js.map +1 -1
  1343. package/dist/core/web/scrapers/stackoverflow.d.ts.map +1 -1
  1344. package/dist/core/web/scrapers/stackoverflow.js.map +1 -1
  1345. package/dist/core/web/scrapers/tipos.d.ts.map +1 -1
  1346. package/dist/core/web/scrapers/tipos.js.map +1 -1
  1347. package/dist/core/web/texto.d.ts.map +1 -1
  1348. package/dist/core/web/texto.js.map +1 -1
  1349. package/dist/core/web/tools.d.ts +1 -8
  1350. package/dist/core/web/tools.d.ts.map +1 -1
  1351. package/dist/core/web/tools.js +2 -33
  1352. package/dist/core/web/tools.js.map +1 -1
  1353. package/dist/core/wiki/almacen.d.ts.map +1 -1
  1354. package/dist/core/wiki/almacen.js.map +1 -1
  1355. package/dist/core/wiki/citas.d.ts.map +1 -1
  1356. package/dist/core/wiki/citas.js.map +1 -1
  1357. package/dist/core/workflows/agent-runner.d.ts.map +1 -1
  1358. package/dist/core/workflows/agent-runner.js.map +1 -1
  1359. package/dist/core/workflows/builtins.d.ts.map +1 -1
  1360. package/dist/core/workflows/builtins.js.map +1 -1
  1361. package/dist/core/workflows/contrato/esquema.d.ts.map +1 -1
  1362. package/dist/core/workflows/contrato/esquema.js.map +1 -1
  1363. package/dist/core/workflows/contrato/reparar-argumentos.d.ts.map +1 -1
  1364. package/dist/core/workflows/contrato/reparar-argumentos.js.map +1 -1
  1365. package/dist/core/workflows/contrato/validador.d.ts.map +1 -1
  1366. package/dist/core/workflows/contrato/validador.js.map +1 -1
  1367. package/dist/core/workflows/contrato/yield.d.ts.map +1 -1
  1368. package/dist/core/workflows/contrato/yield.js.map +1 -1
  1369. package/dist/core/workflows/goal-engine/engine.d.ts +5 -0
  1370. package/dist/core/workflows/goal-engine/engine.d.ts.map +1 -1
  1371. package/dist/core/workflows/goal-engine/engine.js.map +1 -1
  1372. package/dist/core/workflows/goal-engine/errors.d.ts.map +1 -1
  1373. package/dist/core/workflows/goal-engine/errors.js.map +1 -1
  1374. package/dist/core/workflows/goal-engine/index.d.ts.map +1 -1
  1375. package/dist/core/workflows/goal-engine/index.js.map +1 -1
  1376. package/dist/core/workflows/goal-engine/persistence.d.ts.map +1 -1
  1377. package/dist/core/workflows/goal-engine/persistence.js.map +1 -1
  1378. package/dist/core/workflows/goal-engine/prompts.d.ts.map +1 -1
  1379. package/dist/core/workflows/goal-engine/prompts.js.map +1 -1
  1380. package/dist/core/workflows/goal-engine/state.d.ts.map +1 -1
  1381. package/dist/core/workflows/goal-engine/state.js.map +1 -1
  1382. package/dist/core/workflows/goal-engine/tools.d.ts.map +1 -1
  1383. package/dist/core/workflows/goal-engine/tools.js.map +1 -1
  1384. package/dist/core/workflows/goal-engine/types.d.ts.map +1 -1
  1385. package/dist/core/workflows/goal-engine/types.js.map +1 -1
  1386. package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts.map +1 -1
  1387. package/dist/core/workflows/goal-engine/worktree-fingerprint.js.map +1 -1
  1388. package/dist/core/workflows/graph-sync.d.ts.map +1 -1
  1389. package/dist/core/workflows/graph-sync.js.map +1 -1
  1390. package/dist/core/workflows/graph.d.ts.map +1 -1
  1391. package/dist/core/workflows/graph.js.map +1 -1
  1392. package/dist/core/workflows/index.d.ts +6 -0
  1393. package/dist/core/workflows/index.d.ts.map +1 -1
  1394. package/dist/core/workflows/index.js +3 -0
  1395. package/dist/core/workflows/index.js.map +1 -1
  1396. package/dist/core/workflows/journal.d.ts.map +1 -1
  1397. package/dist/core/workflows/journal.js.map +1 -1
  1398. package/dist/core/workflows/manager.d.ts.map +1 -1
  1399. package/dist/core/workflows/manager.js.map +1 -1
  1400. package/dist/core/workflows/provider-caps.d.ts +103 -0
  1401. package/dist/core/workflows/provider-caps.d.ts.map +1 -0
  1402. package/dist/core/workflows/provider-caps.js +235 -0
  1403. package/dist/core/workflows/provider-caps.js.map +1 -0
  1404. package/dist/core/workflows/resolve-script.d.ts.map +1 -1
  1405. package/dist/core/workflows/resolve-script.js.map +1 -1
  1406. package/dist/core/workflows/runtime.d.ts.map +1 -1
  1407. package/dist/core/workflows/runtime.js.map +1 -1
  1408. package/dist/core/workflows/save-as-skill.d.ts.map +1 -1
  1409. package/dist/core/workflows/save-as-skill.js.map +1 -1
  1410. package/dist/core/workflows/shared-store.d.ts.map +1 -1
  1411. package/dist/core/workflows/shared-store.js.map +1 -1
  1412. package/dist/core/workflows/soft-budget.d.ts +27 -0
  1413. package/dist/core/workflows/soft-budget.d.ts.map +1 -0
  1414. package/dist/core/workflows/soft-budget.js +47 -0
  1415. package/dist/core/workflows/soft-budget.js.map +1 -0
  1416. package/dist/core/workflows/subagent-host.d.ts.map +1 -1
  1417. package/dist/core/workflows/subagent-host.js.map +1 -1
  1418. package/dist/core/workflows/tool-scheduling.d.ts +47 -0
  1419. package/dist/core/workflows/tool-scheduling.d.ts.map +1 -0
  1420. package/dist/core/workflows/tool-scheduling.js +102 -0
  1421. package/dist/core/workflows/tool-scheduling.js.map +1 -0
  1422. package/dist/core/workflows/tool-workflow.d.ts.map +1 -1
  1423. package/dist/core/workflows/tool-workflow.js.map +1 -1
  1424. package/dist/core/workflows/types.d.ts.map +1 -1
  1425. package/dist/core/workflows/types.js.map +1 -1
  1426. package/dist/core/workflows/worktree.d.ts.map +1 -1
  1427. package/dist/core/workflows/worktree.js.map +1 -1
  1428. package/dist/extensions/index.d.ts.map +1 -1
  1429. package/dist/extensions/index.js.map +1 -1
  1430. package/dist/extensions/llama/client.d.ts.map +1 -1
  1431. package/dist/extensions/llama/client.js.map +1 -1
  1432. package/dist/extensions/llama/huggingface.d.ts.map +1 -1
  1433. package/dist/extensions/llama/huggingface.js.map +1 -1
  1434. package/dist/extensions/llama/index.d.ts.map +1 -1
  1435. package/dist/extensions/llama/index.js.map +1 -1
  1436. package/dist/extensions/llama/provider.d.ts.map +1 -1
  1437. package/dist/extensions/llama/provider.js.map +1 -1
  1438. package/dist/extensions/llama/ui.d.ts.map +1 -1
  1439. package/dist/extensions/llama/ui.js.map +1 -1
  1440. package/dist/extensions/remoto/index.d.ts.map +1 -1
  1441. package/dist/extensions/remoto/index.js.map +1 -1
  1442. package/dist/index.d.ts.map +1 -1
  1443. package/dist/index.js.map +1 -1
  1444. package/dist/main.d.ts.map +1 -1
  1445. package/dist/main.js +71 -3
  1446. package/dist/main.js.map +1 -1
  1447. package/dist/migrations.d.ts.map +1 -1
  1448. package/dist/migrations.js.map +1 -1
  1449. package/dist/modes/acp/acp-mode.d.ts.map +1 -1
  1450. package/dist/modes/acp/acp-mode.js.map +1 -1
  1451. package/dist/modes/acp/events.d.ts.map +1 -1
  1452. package/dist/modes/acp/events.js.map +1 -1
  1453. package/dist/modes/index.d.ts.map +1 -1
  1454. package/dist/modes/index.js.map +1 -1
  1455. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  1456. package/dist/modes/interactive/components/armin.js.map +1 -1
  1457. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  1458. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  1459. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  1460. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  1461. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  1462. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  1463. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  1464. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  1465. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  1466. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  1467. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  1468. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  1469. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  1470. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  1471. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  1472. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  1473. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  1474. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  1475. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  1476. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  1477. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  1478. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  1479. package/dist/modes/interactive/components/diff.d.ts.map +1 -1
  1480. package/dist/modes/interactive/components/diff.js.map +1 -1
  1481. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  1482. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  1483. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  1484. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  1485. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  1486. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  1487. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  1488. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  1489. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  1490. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  1491. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  1492. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  1493. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  1494. package/dist/modes/interactive/components/footer.js.map +1 -1
  1495. package/dist/modes/interactive/components/home-screen.d.ts +2 -0
  1496. package/dist/modes/interactive/components/home-screen.d.ts.map +1 -1
  1497. package/dist/modes/interactive/components/home-screen.js +5 -6
  1498. package/dist/modes/interactive/components/home-screen.js.map +1 -1
  1499. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  1500. package/dist/modes/interactive/components/index.js.map +1 -1
  1501. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  1502. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  1503. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  1504. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  1505. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -1
  1506. package/dist/modes/interactive/components/markdown-transform.js.map +1 -1
  1507. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
  1508. package/dist/modes/interactive/components/mermaid.js.map +1 -1
  1509. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  1510. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  1511. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  1512. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  1513. package/dist/modes/interactive/components/prompt-optimization.d.ts.map +1 -1
  1514. package/dist/modes/interactive/components/prompt-optimization.js.map +1 -1
  1515. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  1516. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  1517. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  1518. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  1519. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  1520. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  1521. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  1522. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  1523. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
  1524. package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
  1525. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  1526. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  1527. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  1528. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  1529. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  1530. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  1531. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  1532. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  1533. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  1534. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  1535. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  1536. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  1537. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  1538. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  1539. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
  1540. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  1541. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  1542. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  1543. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  1544. package/dist/modes/interactive/components/user-message.js.map +1 -1
  1545. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  1546. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  1547. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  1548. package/dist/modes/interactive/external-editor.js.map +1 -1
  1549. package/dist/modes/interactive/interactive-mode.d.ts +19 -0
  1550. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  1551. package/dist/modes/interactive/interactive-mode.js +29 -0
  1552. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  1553. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -1
  1554. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
  1555. package/dist/modes/interactive/model-search.d.ts.map +1 -1
  1556. package/dist/modes/interactive/model-search.js.map +1 -1
  1557. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  1558. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  1559. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  1560. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  1561. package/dist/modes/interactive/theme/theme.js.map +1 -1
  1562. package/dist/modes/json-event.d.ts.map +1 -1
  1563. package/dist/modes/json-event.js.map +1 -1
  1564. package/dist/modes/print-mode.d.ts.map +1 -1
  1565. package/dist/modes/print-mode.js.map +1 -1
  1566. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  1567. package/dist/modes/rpc/jsonl.js.map +1 -1
  1568. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  1569. package/dist/modes/rpc/rpc-client.js.map +1 -1
  1570. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  1571. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  1572. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  1573. package/dist/modes/rpc/rpc-types.js.map +1 -1
  1574. package/dist/package-manager-cli.d.ts.map +1 -1
  1575. package/dist/package-manager-cli.js.map +1 -1
  1576. package/dist/rpc-entry.d.ts.map +1 -1
  1577. package/dist/rpc-entry.js +0 -0
  1578. package/dist/rpc-entry.js.map +1 -1
  1579. package/dist/server/attach.d.ts.map +1 -1
  1580. package/dist/server/attach.js.map +1 -1
  1581. package/dist/server/create-harness.d.ts.map +1 -1
  1582. package/dist/server/create-harness.js.map +1 -1
  1583. package/dist/server/extension-ops.d.ts.map +1 -1
  1584. package/dist/server/extension-ops.js.map +1 -1
  1585. package/dist/server/pi-server-service.d.ts.map +1 -1
  1586. package/dist/server/pi-server-service.js.map +1 -1
  1587. package/dist/server/scheduler-tick.d.ts.map +1 -1
  1588. package/dist/server/scheduler-tick.js.map +1 -1
  1589. package/dist/server/serve.d.ts.map +1 -1
  1590. package/dist/server/serve.js.map +1 -1
  1591. package/dist/server/transcript.d.ts.map +1 -1
  1592. package/dist/server/transcript.js.map +1 -1
  1593. package/dist/telegram/api.d.ts +6 -0
  1594. package/dist/telegram/api.d.ts.map +1 -1
  1595. package/dist/telegram/api.js.map +1 -1
  1596. package/dist/telegram/bridge.d.ts.map +1 -1
  1597. package/dist/telegram/bridge.js.map +1 -1
  1598. package/dist/telegram/journal.d.ts.map +1 -1
  1599. package/dist/telegram/journal.js.map +1 -1
  1600. package/dist/telegram/servidor.d.ts.map +1 -1
  1601. package/dist/telegram/servidor.js.map +1 -1
  1602. package/dist/utils/abort.d.ts.map +1 -1
  1603. package/dist/utils/abort.js.map +1 -1
  1604. package/dist/utils/ansi.d.ts.map +1 -1
  1605. package/dist/utils/ansi.js.map +1 -1
  1606. package/dist/utils/changelog.d.ts.map +1 -1
  1607. package/dist/utils/changelog.js.map +1 -1
  1608. package/dist/utils/child-process.d.ts.map +1 -1
  1609. package/dist/utils/child-process.js.map +1 -1
  1610. package/dist/utils/clipboard-image.d.ts.map +1 -1
  1611. package/dist/utils/clipboard-image.js.map +1 -1
  1612. package/dist/utils/clipboard-native.d.ts.map +1 -1
  1613. package/dist/utils/clipboard-native.js.map +1 -1
  1614. package/dist/utils/clipboard.d.ts.map +1 -1
  1615. package/dist/utils/clipboard.js.map +1 -1
  1616. package/dist/utils/deprecation.d.ts.map +1 -1
  1617. package/dist/utils/deprecation.js.map +1 -1
  1618. package/dist/utils/exif-orientation.d.ts.map +1 -1
  1619. package/dist/utils/exif-orientation.js.map +1 -1
  1620. package/dist/utils/frontmatter.d.ts.map +1 -1
  1621. package/dist/utils/frontmatter.js.map +1 -1
  1622. package/dist/utils/fs-watch.d.ts.map +1 -1
  1623. package/dist/utils/fs-watch.js.map +1 -1
  1624. package/dist/utils/git.d.ts.map +1 -1
  1625. package/dist/utils/git.js.map +1 -1
  1626. package/dist/utils/html.d.ts.map +1 -1
  1627. package/dist/utils/html.js.map +1 -1
  1628. package/dist/utils/image-convert.d.ts.map +1 -1
  1629. package/dist/utils/image-convert.js.map +1 -1
  1630. package/dist/utils/image-process.d.ts.map +1 -1
  1631. package/dist/utils/image-process.js.map +1 -1
  1632. package/dist/utils/image-resize-core.d.ts.map +1 -1
  1633. package/dist/utils/image-resize-core.js.map +1 -1
  1634. package/dist/utils/image-resize-worker.d.ts.map +1 -1
  1635. package/dist/utils/image-resize-worker.js.map +1 -1
  1636. package/dist/utils/image-resize.d.ts.map +1 -1
  1637. package/dist/utils/image-resize.js.map +1 -1
  1638. package/dist/utils/json.d.ts.map +1 -1
  1639. package/dist/utils/json.js.map +1 -1
  1640. package/dist/utils/management-http.d.ts.map +1 -1
  1641. package/dist/utils/management-http.js.map +1 -1
  1642. package/dist/utils/mime.d.ts.map +1 -1
  1643. package/dist/utils/mime.js.map +1 -1
  1644. package/dist/utils/open-browser.d.ts.map +1 -1
  1645. package/dist/utils/open-browser.js.map +1 -1
  1646. package/dist/utils/paths.d.ts.map +1 -1
  1647. package/dist/utils/paths.js.map +1 -1
  1648. package/dist/utils/photon.d.ts.map +1 -1
  1649. package/dist/utils/photon.js.map +1 -1
  1650. package/dist/utils/pi-user-agent.d.ts.map +1 -1
  1651. package/dist/utils/pi-user-agent.js.map +1 -1
  1652. package/dist/utils/shell.d.ts.map +1 -1
  1653. package/dist/utils/shell.js.map +1 -1
  1654. package/dist/utils/sleep.d.ts.map +1 -1
  1655. package/dist/utils/sleep.js.map +1 -1
  1656. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  1657. package/dist/utils/syntax-highlight.js.map +1 -1
  1658. package/dist/utils/text.d.ts.map +1 -1
  1659. package/dist/utils/text.js.map +1 -1
  1660. package/dist/utils/tool-result-images.d.ts.map +1 -1
  1661. package/dist/utils/tool-result-images.js.map +1 -1
  1662. package/dist/utils/tools-manager.d.ts.map +1 -1
  1663. package/dist/utils/tools-manager.js.map +1 -1
  1664. package/dist/utils/version-check.d.ts.map +1 -1
  1665. package/dist/utils/version-check.js.map +1 -1
  1666. package/dist/utils/windows-self-update.d.ts.map +1 -1
  1667. package/dist/utils/windows-self-update.js.map +1 -1
  1668. package/docs/development-fork.md +170 -0
  1669. package/docs/docs.json +25 -0
  1670. package/docs/modules-infraestructura.md +115 -0
  1671. package/docs/modules-motor.md +160 -0
  1672. package/docs/modules-producto.md +179 -0
  1673. package/docs/modules-seguridad.md +158 -0
  1674. package/package.json +113 -113
  1675. package/dist/core/commit/diff.d.ts.map +0 -1
  1676. package/dist/core/commit/diff.js.map +0 -1
  1677. package/dist/core/commit/mensaje.d.ts +0 -80
  1678. package/dist/core/commit/mensaje.d.ts.map +0 -1
  1679. package/dist/core/commit/mensaje.js +0 -207
  1680. package/dist/core/commit/mensaje.js.map +0 -1
  1681. /package/dist/core/{commit → commits}/diff.d.ts +0 -0
  1682. /package/dist/core/{commit → commits}/diff.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"auth-storage.js","sourceRoot":"","sources":["../../src/core/auth-storage.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * CredentialStore implementation backed by auth.json.\n * Provider auth orchestration belongs to ModelRuntime and pi-ai Models.\n */\n\nimport type { AuthOperationOptions, Credential, CredentialInfo, CredentialStore } from \"@earendil-works/pi-ai\";\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"fs\";\nimport { dirname, join } from \"path\";\nimport lockfile from \"proper-lockfile\";\nimport { setTimeout as sleep } from \"timers/promises\";\nimport { getAgentDir } from \"../config.ts\";\nimport { raceWithAbortSignal } from \"../utils/abort.ts\";\nimport { getFileRevision, normalizePath } from \"../utils/paths.ts\";\nimport { stripBom } from \"../utils/text.ts\";\nimport { isCommandConfigValue, resolveConfigValue } from \"./resolve-config-value.ts\";\n\ntype AuthStorageData = Record<string, Credential>;\n\ntype LockResult<T> = {\n\tresult: T;\n\tnext?: string;\n};\n\n// The mode applies only on creation so administrator-managed modes and ACLs remain intact.\nconst AUTH_FILE_WRITE_OPTIONS = { encoding: \"utf-8\", mode: 0o600 } as const;\n\ntype AuthFileReload = {\n\tcontroller: AbortController;\n\tpromise: Promise<AuthStorageData>;\n\treaders: number;\n};\n\ntype AuthFileReadState = {\n\tdata: AuthStorageData;\n\trevision?: string;\n\treload?: AuthFileReload;\n};\n\nlet sharedAuthFileReadState: { authPath: string; readState: AuthFileReadState } | undefined;\n\nexport interface AuthStorageBackend {\n\twithLock<T>(fn: (current: string | undefined) => LockResult<T>): T;\n\twithLockAsync<T>(\n\t\tfn: (current: string | undefined) => Promise<LockResult<T>>,\n\t\toptions?: AuthOperationOptions,\n\t): Promise<T>;\n}\n\nexport class FileAuthStorageBackend implements AuthStorageBackend {\n\tprivate authPath: string;\n\n\tconstructor(authPath: string = join(getAgentDir(), \"auth.json\")) {\n\t\tthis.authPath = normalizePath(authPath);\n\t}\n\n\tprivate ensureParentDir(): void {\n\t\tconst dir = dirname(this.authPath);\n\t\tif (!existsSync(dir)) {\n\t\t\tmkdirSync(dir, { recursive: true, mode: 0o700 });\n\t\t}\n\t}\n\n\tprivate ensureFileExists(): void {\n\t\tif (!existsSync(this.authPath)) {\n\t\t\twriteFileSync(this.authPath, \"{}\", AUTH_FILE_WRITE_OPTIONS);\n\t\t}\n\t}\n\n\tprivate acquireLockSyncWithRetry(path: string): () => void {\n\t\tconst maxAttempts = 10;\n\t\tconst delayMs = 20;\n\t\tlet lastError: unknown;\n\n\t\tfor (let attempt = 1; attempt <= maxAttempts; attempt++) {\n\t\t\ttry {\n\t\t\t\treturn lockfile.lockSync(path, { realpath: false });\n\t\t\t} catch (error) {\n\t\t\t\tconst code =\n\t\t\t\t\ttypeof error === \"object\" && error !== null && \"code\" in error\n\t\t\t\t\t\t? String((error as { code?: unknown }).code)\n\t\t\t\t\t\t: undefined;\n\t\t\t\tif (code !== \"ELOCKED\" || attempt === maxAttempts) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tlastError = error;\n\t\t\t\tconst start = Date.now();\n\t\t\t\twhile (Date.now() - start < delayMs) {\n\t\t\t\t\t// Sleep synchronously to avoid changing callers to async.\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthrow (lastError as Error) ?? new Error(\"Failed to acquire auth storage lock\");\n\t}\n\n\twithLock<T>(fn: (current: string | undefined) => LockResult<T>): T {\n\t\tthis.ensureParentDir();\n\t\tthis.ensureFileExists();\n\n\t\tlet release: (() => void) | undefined;\n\t\ttry {\n\t\t\trelease = this.acquireLockSyncWithRetry(this.authPath);\n\t\t\tconst current = existsSync(this.authPath) ? readFileSync(this.authPath, \"utf-8\") : undefined;\n\t\t\tconst { result, next } = fn(current);\n\t\t\tif (next !== undefined) {\n\t\t\t\twriteFileSync(this.authPath, next, AUTH_FILE_WRITE_OPTIONS);\n\t\t\t}\n\t\t\treturn result;\n\t\t} finally {\n\t\t\tif (release) {\n\t\t\t\trelease();\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async acquireLockAsync(\n\t\tsignal: AbortSignal | undefined,\n\t\tonCompromised: (error: Error) => void,\n\t): Promise<() => Promise<void>> {\n\t\tconst staleMs = 30_000;\n\t\tconst maxDelayMs = 2_000;\n\t\tconst deadline = Date.now() + staleMs;\n\t\tlet retry = 0;\n\t\twhile (true) {\n\t\t\tsignal?.throwIfAborted();\n\t\t\tlet release: (() => Promise<void>) | undefined;\n\t\t\ttry {\n\t\t\t\trelease = await lockfile.lock(this.authPath, {\n\t\t\t\t\trealpath: false,\n\t\t\t\t\tretries: 0,\n\t\t\t\t\tstale: staleMs,\n\t\t\t\t\tonCompromised,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tsignal?.throwIfAborted();\n\t\t\t\tconst code =\n\t\t\t\t\ttypeof error === \"object\" && error !== null && \"code\" in error\n\t\t\t\t\t\t? String((error as { code?: unknown }).code)\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst remainingMs = deadline - Date.now();\n\t\t\t\tif (code !== \"ELOCKED\" || remainingMs <= 0) throw error;\n\t\t\t\tconst baseDelayMs = Math.min(10 * 2 ** retry, maxDelayMs / 2);\n\t\t\t\tretry++;\n\t\t\t\tconst delayMs = Math.min(Math.round(baseDelayMs * (1 + Math.random())), remainingMs);\n\t\t\t\tif (signal) await sleep(delayMs, undefined, { signal });\n\t\t\t\telse await sleep(delayMs);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (signal?.aborted) {\n\t\t\t\tawait release();\n\t\t\t\tsignal.throwIfAborted();\n\t\t\t}\n\t\t\treturn release;\n\t\t}\n\t}\n\n\tasync withLockAsync<T>(\n\t\tfn: (current: string | undefined) => Promise<LockResult<T>>,\n\t\toptions?: AuthOperationOptions,\n\t): Promise<T> {\n\t\toptions?.signal?.throwIfAborted();\n\t\tthis.ensureParentDir();\n\t\tthis.ensureFileExists();\n\n\t\tlet release: (() => Promise<void>) | undefined;\n\t\tlet lockCompromised = false;\n\t\tlet lockCompromisedError: Error | undefined;\n\t\tconst throwIfCompromised = () => {\n\t\t\tif (lockCompromised) {\n\t\t\t\tthrow lockCompromisedError ?? new Error(\"Auth storage lock was compromised\");\n\t\t\t}\n\t\t};\n\n\t\ttry {\n\t\t\trelease = await this.acquireLockAsync(options?.signal, (error) => {\n\t\t\t\tlockCompromised = true;\n\t\t\t\tlockCompromisedError = error;\n\t\t\t});\n\n\t\t\tthrowIfCompromised();\n\t\t\toptions?.signal?.throwIfAborted();\n\t\t\tconst current = existsSync(this.authPath) ? readFileSync(this.authPath, \"utf-8\") : undefined;\n\t\t\tconst { result, next } = await fn(current);\n\t\t\tthrowIfCompromised();\n\t\t\toptions?.signal?.throwIfAborted();\n\t\t\tif (next !== undefined) {\n\t\t\t\twriteFileSync(this.authPath, next, AUTH_FILE_WRITE_OPTIONS);\n\t\t\t}\n\t\t\tthrowIfCompromised();\n\t\t\treturn result;\n\t\t} finally {\n\t\t\tif (release) {\n\t\t\t\ttry {\n\t\t\t\t\tawait release();\n\t\t\t\t} catch {\n\t\t\t\t\t// Ignore unlock errors when lock is compromised.\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class ReadOnlyAuthStorage implements CredentialStore {\n\tprivate readonly authPath: string;\n\tprivate data: AuthStorageData | undefined;\n\n\tconstructor(authPath: string = join(getAgentDir(), \"auth.json\")) {\n\t\tthis.authPath = normalizePath(authPath);\n\t}\n\n\tprivate load(): AuthStorageData {\n\t\tif (this.data) return this.data;\n\n\t\tlet parsed: unknown;\n\t\ttry {\n\t\t\tparsed = JSON.parse(stripBom(readFileSync(this.authPath, \"utf-8\")));\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code === \"ENOENT\") {\n\t\t\t\tthis.data = {};\n\t\t\t\treturn this.data;\n\t\t\t}\n\t\t\tthrow new Error(`Failed to read auth.json: ${error instanceof Error ? error.message : String(error)}`);\n\t\t}\n\n\t\tif (typeof parsed !== \"object\" || parsed === null || Array.isArray(parsed)) {\n\t\t\tthrow new Error(\"Invalid auth.json: expected an object\");\n\t\t}\n\t\tfor (const [providerId, credential] of Object.entries(parsed)) {\n\t\t\tif (typeof credential !== \"object\" || credential === null || Array.isArray(credential)) {\n\t\t\t\tthrow new Error(`Invalid auth.json credential for provider \"${providerId}\"`);\n\t\t\t}\n\t\t\tconst value = credential as Record<string, unknown>;\n\t\t\tif (value.type === \"api_key\") {\n\t\t\t\tconst validKey = value.key === undefined || typeof value.key === \"string\";\n\t\t\t\tconst validEnv =\n\t\t\t\t\tvalue.env === undefined ||\n\t\t\t\t\t(typeof value.env === \"object\" &&\n\t\t\t\t\t\tvalue.env !== null &&\n\t\t\t\t\t\t!Array.isArray(value.env) &&\n\t\t\t\t\t\tObject.values(value.env).every((entry) => typeof entry === \"string\"));\n\t\t\t\tif (validKey && validEnv) continue;\n\t\t\t} else if (\n\t\t\t\tvalue.type === \"oauth\" &&\n\t\t\t\ttypeof value.access === \"string\" &&\n\t\t\t\ttypeof value.refresh === \"string\" &&\n\t\t\t\ttypeof value.expires === \"number\" &&\n\t\t\t\tNumber.isFinite(value.expires)\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthrow new Error(`Invalid auth.json credential for provider \"${providerId}\"`);\n\t\t}\n\n\t\tthis.data = parsed as AuthStorageData;\n\t\treturn this.data;\n\t}\n\n\tasync read(providerId: string, options?: AuthOperationOptions): Promise<Credential | undefined> {\n\t\toptions?.signal?.throwIfAborted();\n\t\tconst credential = this.load()[providerId];\n\t\toptions?.signal?.throwIfAborted();\n\t\tif (!credential) return undefined;\n\t\tif (credential.type !== \"api_key\" || !credential.key || isCommandConfigValue(credential.key)) {\n\t\t\treturn structuredClone(credential);\n\t\t}\n\t\treturn { ...credential, key: resolveConfigValue(credential.key, credential.env) };\n\t}\n\n\tasync list(options?: AuthOperationOptions): Promise<readonly CredentialInfo[]> {\n\t\toptions?.signal?.throwIfAborted();\n\t\tconst credentials = Object.entries(this.load()).map(([providerId, credential]) => ({\n\t\t\tproviderId,\n\t\t\ttype: credential.type,\n\t\t}));\n\t\toptions?.signal?.throwIfAborted();\n\t\treturn credentials;\n\t}\n\n\tasync modify(\n\t\t_providerId: string,\n\t\t_fn: (current: Credential | undefined) => Promise<Credential | undefined>,\n\t\t_options?: AuthOperationOptions,\n\t): Promise<Credential | undefined> {\n\t\tthrow new Error(\"Read-only credential storage cannot modify auth.json\");\n\t}\n\n\tasync delete(_providerId: string, _options?: AuthOperationOptions): Promise<void> {\n\t\tthrow new Error(\"Read-only credential storage cannot modify auth.json\");\n\t}\n}\n\nexport class InMemoryAuthStorageBackend implements AuthStorageBackend {\n\tprivate value: string | undefined;\n\tprivate asyncChain: Promise<unknown> = Promise.resolve();\n\n\twithLock<T>(fn: (current: string | undefined) => LockResult<T>): T {\n\t\tconst { result, next } = fn(this.value);\n\t\tif (next !== undefined) {\n\t\t\tthis.value = next;\n\t\t}\n\t\treturn result;\n\t}\n\n\twithLockAsync<T>(\n\t\tfn: (current: string | undefined) => Promise<LockResult<T>>,\n\t\toptions?: AuthOperationOptions,\n\t): Promise<T> {\n\t\tconst previous = this.asyncChain;\n\t\tconst operation = (async () => {\n\t\t\tawait previous.catch(() => {});\n\t\t\toptions?.signal?.throwIfAborted();\n\t\t\tconst { result, next } = await fn(this.value);\n\t\t\toptions?.signal?.throwIfAborted();\n\t\t\tif (next !== undefined) {\n\t\t\t\tthis.value = next;\n\t\t\t}\n\t\t\treturn result;\n\t\t})();\n\t\tthis.asyncChain = operation.catch(() => {});\n\t\treturn raceWithAbortSignal(operation, options?.signal);\n\t}\n}\n\n/**\n * Credential storage backed by a JSON file.\n */\n// Import a media altura (no arriba del todo con el resto): junto al único\n// punto que lo usa, para que el diff de fork quede en un solo hunk en vez de\n// dos separados por 300 líneas. Ver el comentario del constructor.\nimport { envolverBackendCifrado } from \"./credenciales/reposo.ts\";\nexport class AuthStorage implements CredentialStore {\n\tprivate storage: AuthStorageBackend;\n\tprivate authPath: string | undefined;\n\tprivate readState: AuthFileReadState;\n\n\tprivate constructor(storage: AuthStorageBackend, authPath?: string) {\n\t\t// Cifrado en reposo (packages/coding-agent/src/core/credenciales/reposo.ts):\n\t\t// solo se aplica cuando hay authPath Y storage es el backend de fichero de\n\t\t// verdad (nunca a `fromStorage`/`inMemory`, que usan backends sintéticos\n\t\t// para pruebas). Se envuelve aquí — un único punto — porque este fichero\n\t\t// es de upstream y el presupuesto de fork (sync-ada.sh --check) está\n\t\t// agotado: mover la lógica a un fichero nuestro y dejar aquí una sola\n\t\t// llamada es lo que exige esa regla.\n\t\tthis.storage =\n\t\t\tauthPath !== undefined && storage instanceof FileAuthStorageBackend\n\t\t\t\t? envolverBackendCifrado(storage, authPath)\n\t\t\t\t: storage;\n\t\tthis.authPath = authPath;\n\t\tthis.readState =\n\t\t\tauthPath && sharedAuthFileReadState?.authPath === authPath ? sharedAuthFileReadState.readState : { data: {} };\n\t\tif (authPath && !sharedAuthFileReadState) {\n\t\t\tsharedAuthFileReadState = { authPath, readState: this.readState };\n\t\t}\n\t\tif (authPath) {\n\t\t\tconst revision = getFileRevision(authPath);\n\t\t\tif (revision !== undefined && revision === this.readState.revision) return;\n\t\t}\n\t\tthis.reload();\n\t}\n\n\tstatic create(authPath: string = join(getAgentDir(), \"auth.json\")): AuthStorage {\n\t\tconst normalizedAuthPath = normalizePath(authPath);\n\t\treturn new AuthStorage(new FileAuthStorageBackend(normalizedAuthPath), normalizedAuthPath);\n\t}\n\n\tstatic fromStorage(storage: AuthStorageBackend): AuthStorage {\n\t\treturn new AuthStorage(storage);\n\t}\n\n\tstatic inMemory(data: AuthStorageData = {}): AuthStorage {\n\t\tconst storage = new InMemoryAuthStorageBackend();\n\t\tstorage.withLock(() => ({ result: undefined, next: JSON.stringify(data, null, 2) }));\n\t\treturn AuthStorage.fromStorage(storage);\n\t}\n\n\tprivate parseStorageData(content: string | undefined): AuthStorageData {\n\t\tif (!content) {\n\t\t\treturn {};\n\t\t}\n\t\treturn JSON.parse(stripBom(content)) as AuthStorageData;\n\t}\n\n\tprivate updateReadState(data: AuthStorageData, revision?: string): void {\n\t\tthis.readState.data = data;\n\t\tthis.readState.revision = revision;\n\t}\n\n\t/**\n\t * Reload credentials from storage.\n\t */\n\treload(): void {\n\t\tlet content: string | undefined;\n\t\tlet revision: string | undefined;\n\t\ttry {\n\t\t\tthis.storage.withLock((current) => {\n\t\t\t\tcontent = current;\n\t\t\t\trevision = this.authPath ? getFileRevision(this.authPath) : undefined;\n\t\t\t\treturn { result: undefined };\n\t\t\t});\n\t\t\tthis.updateReadState(this.parseStorageData(content), revision);\n\t\t} catch {\n\t\t\t// Preserve the last valid in-memory snapshot.\n\t\t}\n\t}\n\n\tprivate async reloadFromStorageAsync(options?: AuthOperationOptions): Promise<AuthStorageData> {\n\t\treturn this.storage.withLockAsync(async (content) => {\n\t\t\tconst currentData = this.parseStorageData(content);\n\t\t\tconst revision = this.authPath ? getFileRevision(this.authPath) : undefined;\n\t\t\tthis.updateReadState(currentData, revision);\n\t\t\treturn { result: currentData };\n\t\t}, options);\n\t}\n\n\tprivate async readLatestData(options?: AuthOperationOptions): Promise<AuthStorageData> {\n\t\toptions?.signal?.throwIfAborted();\n\t\tif (!this.authPath) {\n\t\t\tconst reload = this.reloadFromStorageAsync(options);\n\t\t\treturn options?.signal ? reload : reload.catch(() => this.readState.data);\n\t\t}\n\t\tconst revision = getFileRevision(this.authPath);\n\t\tif (revision !== undefined && revision === this.readState.revision) return this.readState.data;\n\t\tif (!this.readState.reload) {\n\t\t\tconst controller = new AbortController();\n\t\t\tconst reload: AuthFileReload = {\n\t\t\t\tcontroller,\n\t\t\t\tpromise: this.reloadFromStorageAsync({ signal: controller.signal }),\n\t\t\t\treaders: 0,\n\t\t\t};\n\t\t\tthis.readState.reload = reload;\n\t\t\tvoid reload.promise.then(\n\t\t\t\t() => {\n\t\t\t\t\tif (this.readState.reload === reload) this.readState.reload = undefined;\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tif (this.readState.reload === reload) this.readState.reload = undefined;\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tconst reload = this.readState.reload;\n\t\treload.readers++;\n\t\ttry {\n\t\t\tconst result = raceWithAbortSignal(reload.promise, options?.signal);\n\t\t\treturn options?.signal ? await result : await result.catch(() => this.readState.data);\n\t\t} finally {\n\t\t\treload.readers--;\n\t\t\tif (reload.readers === 0 && this.readState.reload === reload) {\n\t\t\t\tthis.readState.reload = undefined;\n\t\t\t\treload.controller.abort();\n\t\t\t}\n\t\t}\n\t}\n\n\tasync read(provider: string, options?: AuthOperationOptions): Promise<Credential | undefined> {\n\t\tconst credential = (await this.readLatestData(options))[provider];\n\t\toptions?.signal?.throwIfAborted();\n\t\tif (credential?.type !== \"api_key\") return credential;\n\t\tif (credential.key === undefined) return credential;\n\t\treturn { ...credential, key: resolveConfigValue(credential.key, credential.env) };\n\t}\n\n\tasync modify(\n\t\tprovider: string,\n\t\tfn: (current: Credential | undefined) => Promise<Credential | undefined>,\n\t\toptions?: AuthOperationOptions,\n\t): Promise<Credential | undefined> {\n\t\tlet latestData = this.readState.data;\n\t\tlet revision: string | undefined;\n\t\tconst result = await this.storage.withLockAsync(async (content) => {\n\t\t\tconst currentData = this.parseStorageData(content);\n\t\t\tconst next = await fn(currentData[provider]);\n\t\t\tif (next === undefined) {\n\t\t\t\tlatestData = currentData;\n\t\t\t\trevision = this.authPath ? getFileRevision(this.authPath) : undefined;\n\t\t\t\treturn { result: currentData[provider] };\n\t\t\t}\n\n\t\t\tconst merged: AuthStorageData = { ...currentData, [provider]: next };\n\t\t\tlatestData = merged;\n\t\t\treturn { result: next, next: JSON.stringify(merged, null, 2) };\n\t\t}, options);\n\t\tthis.updateReadState(latestData, revision);\n\t\treturn result;\n\t}\n\n\tasync delete(provider: string, options?: AuthOperationOptions): Promise<void> {\n\t\tlet latestData = this.readState.data;\n\t\tawait this.storage.withLockAsync(async (content) => {\n\t\t\tconst currentData = this.parseStorageData(content);\n\t\t\tdelete currentData[provider];\n\t\t\tlatestData = currentData;\n\t\t\treturn { result: undefined, next: JSON.stringify(currentData, null, 2) };\n\t\t}, options);\n\t\tthis.updateReadState(latestData);\n\t}\n\n\t/** List credential metadata without resolving configured key values. */\n\tasync list(options?: AuthOperationOptions): Promise<readonly CredentialInfo[]> {\n\t\tconst entries = Object.entries(await this.readLatestData(options));\n\t\toptions?.signal?.throwIfAborted();\n\t\treturn entries.map(([providerId, credential]) => ({ providerId, type: credential.type }));\n\t}\n}\n\n/**\n * One-off synchronous read of a stored credential from an auth.json file,\n * without instantiating a store or resolving configured key values.\n */\nexport function readStoredCredential(\n\tproviderId: string,\n\tauthPath: string = join(getAgentDir(), \"auth.json\"),\n): Credential | undefined {\n\ttry {\n\t\tconst data = JSON.parse(stripBom(readFileSync(normalizePath(authPath), \"utf-8\"))) as AuthStorageData;\n\t\treturn data[providerId];\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n"]}
1
+ {"version":3,"file":"auth-storage.js","sourceRoot":"","sources":["../../src/core/auth-storage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"almacenamiento.d.ts","sourceRoot":"","sources":["../../../src/core/banco/almacenamiento.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErE,sFAAmF;AACnF,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/D;AAOD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAExE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAOvD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAErF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAKlE;AAED,8FAA8F;AAC9F,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIzG","sourcesContent":["/**\n * Lee y escribe los JSON versionados del banco (casos y resultados).\n *\n * \"Versionado\" en dos sentidos: cada fichero lleva su propio `version` de\n * esquema, y los resultados se guardan con marca de tiempo en el nombre para\n * que `comparar` pueda leer dos ejecuciones distintas sin pisarse.\n */\n\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport type { ConjuntoCasos, ResultadosEjecucion } from \"./tipos.ts\";\n\n/** `<raízDelPaquete>/banco-datos`, al lado de `src/`, no dentro — no es fuente. */\nexport function directorioDatosPorDefecto(raizPaquete: string): string {\n\treturn join(raizPaquete, \"banco-datos\");\n}\n\nexport function rutaCasosPorDefecto(raizPaquete: string): string {\n\treturn join(directorioDatosPorDefecto(raizPaquete), \"casos.json\");\n}\n\nfunction escribirJson(ruta: string, datos: unknown): void {\n\tmkdirSync(dirname(ruta), { recursive: true });\n\twriteFileSync(ruta, `${JSON.stringify(datos, null, 2)}\\n`, \"utf-8\");\n}\n\nexport function guardarCasos(ruta: string, conjunto: ConjuntoCasos): void {\n\tescribirJson(ruta, conjunto);\n}\n\nexport function cargarCasos(ruta: string): ConjuntoCasos {\n\tif (!existsSync(ruta)) {\n\t\tthrow new Error(`No hay casos en ${ruta}. Genera primero con \"ada-cli banco generar\".`);\n\t}\n\tconst datos = JSON.parse(readFileSync(ruta, \"utf-8\")) as ConjuntoCasos;\n\tif (datos.version !== 1) throw new Error(`${ruta}: versión de esquema desconocida (${datos.version}).`);\n\treturn datos;\n}\n\nexport function guardarResultados(ruta: string, resultados: ResultadosEjecucion): void {\n\tescribirJson(ruta, resultados);\n}\n\nexport function cargarResultados(ruta: string): ResultadosEjecucion {\n\tif (!existsSync(ruta)) throw new Error(`No existe ${ruta}.`);\n\tconst datos = JSON.parse(readFileSync(ruta, \"utf-8\")) as ResultadosEjecucion;\n\tif (datos.version !== 1) throw new Error(`${ruta}: versión de esquema desconocida (${datos.version}).`);\n\treturn datos;\n}\n\n/** Nombre de fichero de resultados con marca de tiempo, para no pisar ejecuciones previas. */\nexport function nombreResultadosPorDefecto(raizPaquete: string, proveedor: string, modelo: string): string {\n\tconst marca = new Date().toISOString().replace(/[:.]/g, \"-\");\n\tconst modeloLimpio = modelo.replace(/[^a-zA-Z0-9._-]/g, \"_\");\n\treturn join(directorioDatosPorDefecto(raizPaquete), \"resultados\", `${marca}-${proveedor}-${modeloLimpio}.json`);\n}\n"]}
1
+ {"version":3,"file":"almacenamiento.d.ts","sourceRoot":"","sources":["../../../src/core/banco/almacenamiento.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErE,mFAAmF;AACnF,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/D;AAOD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAExE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAOvD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAErF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAKlE;AAED,8FAA8F;AAC9F,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIzG"}
@@ -1 +1 @@
1
- {"version":3,"file":"almacenamiento.js","sourceRoot":"","sources":["../../../src/core/banco/almacenamiento.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,sFAAmF;AACnF,MAAM,UAAU,yBAAyB,CAAC,WAAmB,EAAU;IACtE,OAAO,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAAA,CACxC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAmB,EAAU;IAChE,OAAO,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,CAAC;AAAA,CAClE;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAc,EAAQ;IACzD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAAA,CACpE;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,QAAuB,EAAQ;IACzE,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAAA,CAC7B;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAiB;IACxD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,+CAA+C,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAkB,CAAC;IACvE,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,sCAAqC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IACxG,OAAO,KAAK,CAAC;AAAA,CACb;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,UAA+B,EAAQ;IACtF,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAAA,CAC/B;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAuB;IACnE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAwB,CAAC;IAC7E,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,sCAAqC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IACxG,OAAO,KAAK,CAAC;AAAA,CACb;AAED,8FAA8F;AAC9F,MAAM,UAAU,0BAA0B,CAAC,WAAmB,EAAE,SAAiB,EAAE,MAAc,EAAU;IAC1G,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,GAAG,KAAK,IAAI,SAAS,IAAI,YAAY,OAAO,CAAC,CAAC;AAAA,CAChH","sourcesContent":["/**\n * Lee y escribe los JSON versionados del banco (casos y resultados).\n *\n * \"Versionado\" en dos sentidos: cada fichero lleva su propio `version` de\n * esquema, y los resultados se guardan con marca de tiempo en el nombre para\n * que `comparar` pueda leer dos ejecuciones distintas sin pisarse.\n */\n\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport type { ConjuntoCasos, ResultadosEjecucion } from \"./tipos.ts\";\n\n/** `<raízDelPaquete>/banco-datos`, al lado de `src/`, no dentro — no es fuente. */\nexport function directorioDatosPorDefecto(raizPaquete: string): string {\n\treturn join(raizPaquete, \"banco-datos\");\n}\n\nexport function rutaCasosPorDefecto(raizPaquete: string): string {\n\treturn join(directorioDatosPorDefecto(raizPaquete), \"casos.json\");\n}\n\nfunction escribirJson(ruta: string, datos: unknown): void {\n\tmkdirSync(dirname(ruta), { recursive: true });\n\twriteFileSync(ruta, `${JSON.stringify(datos, null, 2)}\\n`, \"utf-8\");\n}\n\nexport function guardarCasos(ruta: string, conjunto: ConjuntoCasos): void {\n\tescribirJson(ruta, conjunto);\n}\n\nexport function cargarCasos(ruta: string): ConjuntoCasos {\n\tif (!existsSync(ruta)) {\n\t\tthrow new Error(`No hay casos en ${ruta}. Genera primero con \"ada-cli banco generar\".`);\n\t}\n\tconst datos = JSON.parse(readFileSync(ruta, \"utf-8\")) as ConjuntoCasos;\n\tif (datos.version !== 1) throw new Error(`${ruta}: versión de esquema desconocida (${datos.version}).`);\n\treturn datos;\n}\n\nexport function guardarResultados(ruta: string, resultados: ResultadosEjecucion): void {\n\tescribirJson(ruta, resultados);\n}\n\nexport function cargarResultados(ruta: string): ResultadosEjecucion {\n\tif (!existsSync(ruta)) throw new Error(`No existe ${ruta}.`);\n\tconst datos = JSON.parse(readFileSync(ruta, \"utf-8\")) as ResultadosEjecucion;\n\tif (datos.version !== 1) throw new Error(`${ruta}: versión de esquema desconocida (${datos.version}).`);\n\treturn datos;\n}\n\n/** Nombre de fichero de resultados con marca de tiempo, para no pisar ejecuciones previas. */\nexport function nombreResultadosPorDefecto(raizPaquete: string, proveedor: string, modelo: string): string {\n\tconst marca = new Date().toISOString().replace(/[:.]/g, \"-\");\n\tconst modeloLimpio = modelo.replace(/[^a-zA-Z0-9._-]/g, \"_\");\n\treturn join(directorioDatosPorDefecto(raizPaquete), \"resultados\", `${marca}-${proveedor}-${modeloLimpio}.json`);\n}\n"]}
1
+ {"version":3,"file":"almacenamiento.js","sourceRoot":"","sources":["../../../src/core/banco/almacenamiento.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,mFAAmF;AACnF,MAAM,UAAU,yBAAyB,CAAC,WAAmB;IAC5D,OAAO,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACtD,OAAO,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAc;IACjD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,QAAuB;IACjE,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,+CAA+C,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAkB,CAAC;IACvE,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,qCAAqC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IACxG,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,UAA+B;IAC9E,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAwB,CAAC;IAC7E,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,qCAAqC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IACxG,OAAO,KAAK,CAAC;AACd,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,0BAA0B,CAAC,WAAmB,EAAE,SAAiB,EAAE,MAAc;IAChG,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,GAAG,KAAK,IAAI,SAAS,IAAI,YAAY,OAAO,CAAC,CAAC;AACjH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"analisis.d.ts","sourceRoot":"","sources":["../../../src/core/banco/analisis.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAY7C,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBrD;AAID,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,+FAA4F;IAC5F,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACrB;AAwCD,kFAAiF;AACjF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAwB/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,UAAU,GAAG,gBAAgB,EAAE,CAWvG;AAED,6FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAyBxF","sourcesContent":["/**\n * Análisis del corpus fuente: qué ficheros hay y qué tan adversos son.\n *\n * Mide las mismas cuatro condiciones que pide la tarea: línea repetida,\n * fichero largo con el bug en medio, bloques estructuralmente parecidos y\n * código denso. La dificultad no es un adjetivo, es un filtro sobre estos\n * números — así \"pesadilla\" siempre significa lo mismo entre ejecuciones.\n */\n\nimport { type Dirent, readdirSync, readFileSync } from \"node:fs\";\nimport { extname, join, relative } from \"node:path\";\nimport type { Dificultad } from \"./tipos.ts\";\n\nconst EXTENSIONES = new Set([\".ts\", \".tsx\"]);\nconst DIRS_EXCLUIDOS = new Set([\"node_modules\", \"dist\", \"build\", \"coverage\", \".git\", \"fixtures\", \"fixture\"]);\n\nfunction esExcluido(ruta: string): boolean {\n\tconst partes = ruta.split(\"/\");\n\tif (partes.some((p) => DIRS_EXCLUIDOS.has(p))) return true;\n\tconst base = partes[partes.length - 1] ?? \"\";\n\treturn base.includes(\".test.\") || base.includes(\".spec.\") || base.endsWith(\".d.ts\");\n}\n\n/** Recorre el corpus y devuelve rutas absolutas de ficheros candidatos. */\nexport function listarFicheros(raiz: string): string[] {\n\tconst encontrados: string[] = [];\n\tfunction recorrer(dir: string): void {\n\t\tlet entradas: Dirent<string>[];\n\t\ttry {\n\t\t\tentradas = readdirSync(dir, { withFileTypes: true, encoding: \"utf-8\" });\n\t\t} catch {\n\t\t\treturn;\n\t\t}\n\t\tfor (const entrada of entradas) {\n\t\t\tconst ruta = join(dir, entrada.name);\n\t\t\tif (esExcluido(ruta)) continue;\n\t\t\tif (entrada.isDirectory()) {\n\t\t\t\trecorrer(ruta);\n\t\t\t} else if (entrada.isFile() && EXTENSIONES.has(extname(entrada.name))) {\n\t\t\t\tencontrados.push(ruta);\n\t\t\t}\n\t\t}\n\t}\n\trecorrer(raiz);\n\treturn encontrados.sort();\n}\n\nconst TRIVIALES = new Set([\"{\", \"}\", \"};\", \");\", \"],\", \"});\", \"return;\", \"break;\", \"continue;\", \"\"]);\n\nexport interface FicheroAnalizado {\n\truta: string;\n\trelativa: string;\n\tcontenido: string;\n\tlineas: string[];\n\t/** Texto de línea (trim) -> números de línea (1-based) donde aparece, solo si >=2 veces. */\n\tlineasRepetidas: Map<string, number[]>;\n\tbloquesSimilares: number;\n\tdensidad: number;\n\tindentMaxima: number;\n}\n\nfunction contarLineasRepetidas(lineas: string[]): Map<string, number[]> {\n\tconst posiciones = new Map<string, number[]>();\n\tlineas.forEach((linea, i) => {\n\t\tconst t = linea.trim();\n\t\tif (t.length < 10 || TRIVIALES.has(t)) return;\n\t\tconst lista = posiciones.get(t) ?? [];\n\t\tlista.push(i + 1);\n\t\tposiciones.set(t, lista);\n\t});\n\tconst repetidas = new Map<string, number[]>();\n\tfor (const [t, pos] of posiciones) if (pos.length >= 2) repetidas.set(t, pos);\n\treturn repetidas;\n}\n\n/** Cuenta declaraciones de función/arrow-function: proxy barato de \"bloques con forma parecida\". */\nfunction contarBloquesSimilares(contenido: string): number {\n\tconst patron = /(?:function\\s+\\w+|(?:const|let)\\s+\\w+\\s*=\\s*(?:async\\s*)?\\([^)]*\\)\\s*=>)/g;\n\treturn (contenido.match(patron) ?? []).length;\n}\n\nfunction calcularDensidad(contenido: string): number {\n\tif (!contenido) return 0;\n\tconst sinEspacios = contenido.replace(/\\s/g, \"\").length;\n\treturn sinEspacios / contenido.length;\n}\n\nfunction calcularIndentMaxima(lineas: string[]): number {\n\tlet max = 0;\n\tfor (const l of lineas) {\n\t\tif (!l.trim()) continue;\n\t\tmax = Math.max(max, l.length - l.trimStart().length);\n\t}\n\treturn max;\n}\n\nconst MIN_LINEAS = 30;\nconst MAX_LINEAS = 800;\n\n/** Lee y analiza el corpus completo; descarta ficheros minúsculos o gigantes. */\nexport function analizarCorpus(raiz: string): FicheroAnalizado[] {\n\tconst resultado: FicheroAnalizado[] = [];\n\tfor (const ruta of listarFicheros(raiz)) {\n\t\tlet contenido: string;\n\t\ttry {\n\t\t\tcontenido = readFileSync(ruta, \"utf-8\");\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\t\tconst lineas = contenido.split(\"\\n\");\n\t\tif (lineas.length < MIN_LINEAS || lineas.length > MAX_LINEAS) continue;\n\t\tif (![\"function \", \"class \", \"export \", \"=>\"].some((t) => contenido.includes(t))) continue;\n\t\tresultado.push({\n\t\t\truta,\n\t\t\trelativa: relative(raiz, ruta),\n\t\t\tcontenido,\n\t\t\tlineas,\n\t\t\tlineasRepetidas: contarLineasRepetidas(lineas),\n\t\t\tbloquesSimilares: contarBloquesSimilares(contenido),\n\t\t\tdensidad: calcularDensidad(contenido),\n\t\t\tindentMaxima: calcularIndentMaxima(lineas),\n\t\t});\n\t}\n\treturn resultado;\n}\n\n/**\n * Filtro de candidatos por dificultad. Cada nivel exige un tipo de condición\n * adversa distinta, no solo \"más grande\":\n * - facil: fichero corto, sin ambigüedad por repetición.\n * - medio: fichero de tamaño medio.\n * - dificil: fichero largo con bloques estructuralmente parecidos.\n * - pesadilla: fichero largo con líneas repetidas — la ambigüedad forma\n * parte del fichero, no solo del prompt.\n */\nexport function candidatosPara(ficheros: FicheroAnalizado[], dificultad: Dificultad): FicheroAnalizado[] {\n\tswitch (dificultad) {\n\t\tcase \"facil\":\n\t\t\treturn ficheros.filter((f) => f.lineas.length < 150 && f.lineasRepetidas.size < 3);\n\t\tcase \"medio\":\n\t\t\treturn ficheros.filter((f) => f.lineas.length >= 100 && f.lineas.length <= 300);\n\t\tcase \"dificil\":\n\t\t\treturn ficheros.filter((f) => f.lineas.length > 200 && f.bloquesSimilares >= 3);\n\t\tcase \"pesadilla\":\n\t\t\treturn ficheros.filter((f) => f.lineasRepetidas.size > 0 && f.lineas.length > 200);\n\t}\n}\n\n/** Puntuación de dificultad de UN caso concreto: mayor = más adverso. Solo informativa. */\nexport function puntuarDificultad(fichero: FicheroAnalizado, numeroLinea: number): number {\n\tlet puntos = 0;\n\tif (fichero.lineas.length > 300) puntos += 3;\n\telse if (fichero.lineas.length > 150) puntos += 1;\n\n\tconst medio = fichero.lineas.length * 0.33;\n\tconst finMedio = fichero.lineas.length * 0.66;\n\tif (numeroLinea >= medio && numeroLinea <= finMedio) puntos += 2;\n\n\tconst texto = (fichero.lineas[numeroLinea - 1] ?? \"\").trim();\n\tconst repeticiones = fichero.lineasRepetidas.get(texto)?.length ?? 0;\n\tpuntos += Math.min(repeticiones, 5);\n\n\tif (fichero.bloquesSimilares >= 5) puntos += 3;\n\telse if (fichero.bloquesSimilares >= 3) puntos += 1;\n\n\tif (fichero.densidad > 0.75) puntos += 2;\n\telse if (fichero.densidad > 0.65) puntos += 1;\n\n\tconst indent =\n\t\t(fichero.lineas[numeroLinea - 1] ?? \"\").length - (fichero.lineas[numeroLinea - 1] ?? \"\").trimStart().length;\n\tif (indent >= 16) puntos += 2;\n\telse if (indent >= 8) puntos += 1;\n\n\treturn puntos;\n}\n"]}
1
+ {"version":3,"file":"analisis.d.ts","sourceRoot":"","sources":["../../../src/core/banco/analisis.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAY7C,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBrD;AAID,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4FAA4F;IAC5F,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACrB;AAwCD,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAwB/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,UAAU,GAAG,gBAAgB,EAAE,CAWvG;AAED,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAyBxF"}
@@ -1 +1 @@
1
- {"version":3,"file":"analisis.js","sourceRoot":"","sources":["../../../src/core/banco/analisis.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Análisis del corpus fuente: qué ficheros hay y qué tan adversos son.\n *\n * Mide las mismas cuatro condiciones que pide la tarea: línea repetida,\n * fichero largo con el bug en medio, bloques estructuralmente parecidos y\n * código denso. La dificultad no es un adjetivo, es un filtro sobre estos\n * números — así \"pesadilla\" siempre significa lo mismo entre ejecuciones.\n */\n\nimport { type Dirent, readdirSync, readFileSync } from \"node:fs\";\nimport { extname, join, relative } from \"node:path\";\nimport type { Dificultad } from \"./tipos.ts\";\n\nconst EXTENSIONES = new Set([\".ts\", \".tsx\"]);\nconst DIRS_EXCLUIDOS = new Set([\"node_modules\", \"dist\", \"build\", \"coverage\", \".git\", \"fixtures\", \"fixture\"]);\n\nfunction esExcluido(ruta: string): boolean {\n\tconst partes = ruta.split(\"/\");\n\tif (partes.some((p) => DIRS_EXCLUIDOS.has(p))) return true;\n\tconst base = partes[partes.length - 1] ?? \"\";\n\treturn base.includes(\".test.\") || base.includes(\".spec.\") || base.endsWith(\".d.ts\");\n}\n\n/** Recorre el corpus y devuelve rutas absolutas de ficheros candidatos. */\nexport function listarFicheros(raiz: string): string[] {\n\tconst encontrados: string[] = [];\n\tfunction recorrer(dir: string): void {\n\t\tlet entradas: Dirent<string>[];\n\t\ttry {\n\t\t\tentradas = readdirSync(dir, { withFileTypes: true, encoding: \"utf-8\" });\n\t\t} catch {\n\t\t\treturn;\n\t\t}\n\t\tfor (const entrada of entradas) {\n\t\t\tconst ruta = join(dir, entrada.name);\n\t\t\tif (esExcluido(ruta)) continue;\n\t\t\tif (entrada.isDirectory()) {\n\t\t\t\trecorrer(ruta);\n\t\t\t} else if (entrada.isFile() && EXTENSIONES.has(extname(entrada.name))) {\n\t\t\t\tencontrados.push(ruta);\n\t\t\t}\n\t\t}\n\t}\n\trecorrer(raiz);\n\treturn encontrados.sort();\n}\n\nconst TRIVIALES = new Set([\"{\", \"}\", \"};\", \");\", \"],\", \"});\", \"return;\", \"break;\", \"continue;\", \"\"]);\n\nexport interface FicheroAnalizado {\n\truta: string;\n\trelativa: string;\n\tcontenido: string;\n\tlineas: string[];\n\t/** Texto de línea (trim) -> números de línea (1-based) donde aparece, solo si >=2 veces. */\n\tlineasRepetidas: Map<string, number[]>;\n\tbloquesSimilares: number;\n\tdensidad: number;\n\tindentMaxima: number;\n}\n\nfunction contarLineasRepetidas(lineas: string[]): Map<string, number[]> {\n\tconst posiciones = new Map<string, number[]>();\n\tlineas.forEach((linea, i) => {\n\t\tconst t = linea.trim();\n\t\tif (t.length < 10 || TRIVIALES.has(t)) return;\n\t\tconst lista = posiciones.get(t) ?? [];\n\t\tlista.push(i + 1);\n\t\tposiciones.set(t, lista);\n\t});\n\tconst repetidas = new Map<string, number[]>();\n\tfor (const [t, pos] of posiciones) if (pos.length >= 2) repetidas.set(t, pos);\n\treturn repetidas;\n}\n\n/** Cuenta declaraciones de función/arrow-function: proxy barato de \"bloques con forma parecida\". */\nfunction contarBloquesSimilares(contenido: string): number {\n\tconst patron = /(?:function\\s+\\w+|(?:const|let)\\s+\\w+\\s*=\\s*(?:async\\s*)?\\([^)]*\\)\\s*=>)/g;\n\treturn (contenido.match(patron) ?? []).length;\n}\n\nfunction calcularDensidad(contenido: string): number {\n\tif (!contenido) return 0;\n\tconst sinEspacios = contenido.replace(/\\s/g, \"\").length;\n\treturn sinEspacios / contenido.length;\n}\n\nfunction calcularIndentMaxima(lineas: string[]): number {\n\tlet max = 0;\n\tfor (const l of lineas) {\n\t\tif (!l.trim()) continue;\n\t\tmax = Math.max(max, l.length - l.trimStart().length);\n\t}\n\treturn max;\n}\n\nconst MIN_LINEAS = 30;\nconst MAX_LINEAS = 800;\n\n/** Lee y analiza el corpus completo; descarta ficheros minúsculos o gigantes. */\nexport function analizarCorpus(raiz: string): FicheroAnalizado[] {\n\tconst resultado: FicheroAnalizado[] = [];\n\tfor (const ruta of listarFicheros(raiz)) {\n\t\tlet contenido: string;\n\t\ttry {\n\t\t\tcontenido = readFileSync(ruta, \"utf-8\");\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\t\tconst lineas = contenido.split(\"\\n\");\n\t\tif (lineas.length < MIN_LINEAS || lineas.length > MAX_LINEAS) continue;\n\t\tif (![\"function \", \"class \", \"export \", \"=>\"].some((t) => contenido.includes(t))) continue;\n\t\tresultado.push({\n\t\t\truta,\n\t\t\trelativa: relative(raiz, ruta),\n\t\t\tcontenido,\n\t\t\tlineas,\n\t\t\tlineasRepetidas: contarLineasRepetidas(lineas),\n\t\t\tbloquesSimilares: contarBloquesSimilares(contenido),\n\t\t\tdensidad: calcularDensidad(contenido),\n\t\t\tindentMaxima: calcularIndentMaxima(lineas),\n\t\t});\n\t}\n\treturn resultado;\n}\n\n/**\n * Filtro de candidatos por dificultad. Cada nivel exige un tipo de condición\n * adversa distinta, no solo \"más grande\":\n * - facil: fichero corto, sin ambigüedad por repetición.\n * - medio: fichero de tamaño medio.\n * - dificil: fichero largo con bloques estructuralmente parecidos.\n * - pesadilla: fichero largo con líneas repetidas — la ambigüedad forma\n * parte del fichero, no solo del prompt.\n */\nexport function candidatosPara(ficheros: FicheroAnalizado[], dificultad: Dificultad): FicheroAnalizado[] {\n\tswitch (dificultad) {\n\t\tcase \"facil\":\n\t\t\treturn ficheros.filter((f) => f.lineas.length < 150 && f.lineasRepetidas.size < 3);\n\t\tcase \"medio\":\n\t\t\treturn ficheros.filter((f) => f.lineas.length >= 100 && f.lineas.length <= 300);\n\t\tcase \"dificil\":\n\t\t\treturn ficheros.filter((f) => f.lineas.length > 200 && f.bloquesSimilares >= 3);\n\t\tcase \"pesadilla\":\n\t\t\treturn ficheros.filter((f) => f.lineasRepetidas.size > 0 && f.lineas.length > 200);\n\t}\n}\n\n/** Puntuación de dificultad de UN caso concreto: mayor = más adverso. Solo informativa. */\nexport function puntuarDificultad(fichero: FicheroAnalizado, numeroLinea: number): number {\n\tlet puntos = 0;\n\tif (fichero.lineas.length > 300) puntos += 3;\n\telse if (fichero.lineas.length > 150) puntos += 1;\n\n\tconst medio = fichero.lineas.length * 0.33;\n\tconst finMedio = fichero.lineas.length * 0.66;\n\tif (numeroLinea >= medio && numeroLinea <= finMedio) puntos += 2;\n\n\tconst texto = (fichero.lineas[numeroLinea - 1] ?? \"\").trim();\n\tconst repeticiones = fichero.lineasRepetidas.get(texto)?.length ?? 0;\n\tpuntos += Math.min(repeticiones, 5);\n\n\tif (fichero.bloquesSimilares >= 5) puntos += 3;\n\telse if (fichero.bloquesSimilares >= 3) puntos += 1;\n\n\tif (fichero.densidad > 0.75) puntos += 2;\n\telse if (fichero.densidad > 0.65) puntos += 1;\n\n\tconst indent =\n\t\t(fichero.lineas[numeroLinea - 1] ?? \"\").length - (fichero.lineas[numeroLinea - 1] ?? \"\").trimStart().length;\n\tif (indent >= 16) puntos += 2;\n\telse if (indent >= 8) puntos += 1;\n\n\treturn puntos;\n}\n"]}
1
+ {"version":3,"file":"analisis.js","sourceRoot":"","sources":["../../../src/core/banco/analisis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Asides no interruptores — buffer para notas laterales del modelo.
3
+ *
4
+ * Contexto omp (packages/agent/src/types.ts):
5
+ * - SoftToolRequirement FUERZA una tool (reminder + escalado a tool_choice) pagando
6
+ * invalidación de cache; su intención es OBLIGAR.
7
+ * - AsideMessage es lo opuesto: notificación PASIVA (p. ej. diagnóstico tardío,
8
+ * completion de job en background) que se drena en boundaries sin abortar
9
+ * tools en vuelo. Se resuelve con `resolveAsides()` antes de inyectar y nunca
10
+ * interrumpe el batch actual.
11
+ *
12
+ * Este módulo porta la segunda idea a Ada de forma mínima: el modelo puede
13
+ * emitir "<aside>texto</aside>" dentro de su mensaje; ese texto se acumula en
14
+ * memoria y se drena al final del turno. Nunca cuenta como toolCall y nunca
15
+ * interrumpe el flujo de tools.
16
+ */
17
+ /**
18
+ * Marca textual que identifica un aside dentro del contenido del modelo.
19
+ * Se eligió `<aside>...</aside>` por ser fácil de parsear, visible y no
20
+ * colisionar con markdown normal. El contenido fuera de la marca se deja
21
+ * intacto; solo el interior se bufferiza.
22
+ */
23
+ export declare const ASIDE_OPEN = "<aside>";
24
+ export declare const ASIDE_CLOSE = "</aside>";
25
+ /**
26
+ * ¿Contiene el texto al menos un aside?
27
+ */
28
+ export declare function containsAside(text: string): boolean;
29
+ /**
30
+ * Extrae todos los asides del texto, recortando whitespace exterior.
31
+ * Si no hay asides devuelve [].
32
+ */
33
+ export declare function extractAsides(text: string): string[];
34
+ /**
35
+ * Devuelve el texto sin los bloques `<aside>...</aside>`, recortado.
36
+ * Útil para no tratar el aside como parte del contenido principal.
37
+ */
38
+ export declare function stripAsides(text: string): string;
39
+ /**
40
+ * Buffer en memoria para asides de un turno.
41
+ *
42
+ * Contrato:
43
+ * - push(text): acumula (ignora vacíos).
44
+ * - drain(): devuelve copia en orden de inserción y vacía el buffer.
45
+ * - Nunca cuenta como tool; `size` y `isEmpty()` son solo observabilidad.
46
+ *
47
+ * Diferencia explícita con tools: un toolCall exige round-trip y resultado;
48
+ * un aside es fire-and-forget drenado al final del turno.
49
+ */
50
+ export declare class AsidesBuffer {
51
+ private _items;
52
+ /** Acumula un aside. Ignora strings vacíos/blancos. */
53
+ push(text: string): void;
54
+ /** Extrae un texto que puede contener marcas `<aside>`; bufferea cada una. */
55
+ pushFromText(text: string): number;
56
+ /** Drena todo lo acumulado en orden FIFO y vacía el buffer. */
57
+ drain(): string[];
58
+ /** Ojea sin drenar. */
59
+ peek(): string[];
60
+ get size(): number;
61
+ isEmpty(): boolean;
62
+ clear(): void;
63
+ }
64
+ //# sourceMappingURL=asides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asides.d.ts","sourceRoot":"","sources":["../../../src/core/banco/asides.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,WAAW,aAAa,CAAC;AAItC;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAapD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACxB,OAAO,CAAC,MAAM,CAAgB;IAE9B,uDAAuD;IACvD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOxB,8EAA8E;IAC9E,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAMlC,+DAA+D;IAC/D,KAAK,IAAI,MAAM,EAAE;IAMjB,uBAAuB;IACvB,IAAI,IAAI,MAAM,EAAE;IAIhB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,IAAI,OAAO;IAIlB,KAAK,IAAI,IAAI;CAGb"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Asides no interruptores — buffer para notas laterales del modelo.
3
+ *
4
+ * Contexto omp (packages/agent/src/types.ts):
5
+ * - SoftToolRequirement FUERZA una tool (reminder + escalado a tool_choice) pagando
6
+ * invalidación de cache; su intención es OBLIGAR.
7
+ * - AsideMessage es lo opuesto: notificación PASIVA (p. ej. diagnóstico tardío,
8
+ * completion de job en background) que se drena en boundaries sin abortar
9
+ * tools en vuelo. Se resuelve con `resolveAsides()` antes de inyectar y nunca
10
+ * interrumpe el batch actual.
11
+ *
12
+ * Este módulo porta la segunda idea a Ada de forma mínima: el modelo puede
13
+ * emitir "<aside>texto</aside>" dentro de su mensaje; ese texto se acumula en
14
+ * memoria y se drena al final del turno. Nunca cuenta como toolCall y nunca
15
+ * interrumpe el flujo de tools.
16
+ */
17
+ /**
18
+ * Marca textual que identifica un aside dentro del contenido del modelo.
19
+ * Se eligió `<aside>...</aside>` por ser fácil de parsear, visible y no
20
+ * colisionar con markdown normal. El contenido fuera de la marca se deja
21
+ * intacto; solo el interior se bufferiza.
22
+ */
23
+ export const ASIDE_OPEN = "<aside>";
24
+ export const ASIDE_CLOSE = "</aside>";
25
+ const ASIDE_RE = /<aside>([\s\S]*?)<\/aside>/g;
26
+ /**
27
+ * ¿Contiene el texto al menos un aside?
28
+ */
29
+ export function containsAside(text) {
30
+ if (typeof text !== "string" || text.length === 0)
31
+ return false;
32
+ return text.includes(ASIDE_OPEN) && text.includes(ASIDE_CLOSE);
33
+ }
34
+ /**
35
+ * Extrae todos los asides del texto, recortando whitespace exterior.
36
+ * Si no hay asides devuelve [].
37
+ */
38
+ export function extractAsides(text) {
39
+ if (!containsAside(text))
40
+ return [];
41
+ const out = [];
42
+ let m;
43
+ // Reset lastIndex por si la RE es global y se reutiliza.
44
+ ASIDE_RE.lastIndex = 0;
45
+ while (true) {
46
+ m = ASIDE_RE.exec(text);
47
+ if (m === null)
48
+ break;
49
+ const inner = m[1].trim();
50
+ if (inner.length > 0)
51
+ out.push(inner);
52
+ }
53
+ return out;
54
+ }
55
+ /**
56
+ * Devuelve el texto sin los bloques `<aside>...</aside>`, recortado.
57
+ * Útil para no tratar el aside como parte del contenido principal.
58
+ */
59
+ export function stripAsides(text) {
60
+ if (!containsAside(text))
61
+ return text;
62
+ return text.replace(ASIDE_RE, "").trim();
63
+ }
64
+ /**
65
+ * Buffer en memoria para asides de un turno.
66
+ *
67
+ * Contrato:
68
+ * - push(text): acumula (ignora vacíos).
69
+ * - drain(): devuelve copia en orden de inserción y vacía el buffer.
70
+ * - Nunca cuenta como tool; `size` y `isEmpty()` son solo observabilidad.
71
+ *
72
+ * Diferencia explícita con tools: un toolCall exige round-trip y resultado;
73
+ * un aside es fire-and-forget drenado al final del turno.
74
+ */
75
+ export class AsidesBuffer {
76
+ _items = [];
77
+ /** Acumula un aside. Ignora strings vacíos/blancos. */
78
+ push(text) {
79
+ if (typeof text !== "string")
80
+ return;
81
+ const trimmed = text.trim();
82
+ if (trimmed.length === 0)
83
+ return;
84
+ this._items.push(trimmed);
85
+ }
86
+ /** Extrae un texto que puede contener marcas `<aside>`; bufferea cada una. */
87
+ pushFromText(text) {
88
+ const asides = extractAsides(text);
89
+ for (const a of asides)
90
+ this.push(a);
91
+ return asides.length;
92
+ }
93
+ /** Drena todo lo acumulado en orden FIFO y vacía el buffer. */
94
+ drain() {
95
+ const out = [...this._items];
96
+ this._items.length = 0;
97
+ return out;
98
+ }
99
+ /** Ojea sin drenar. */
100
+ peek() {
101
+ return [...this._items];
102
+ }
103
+ get size() {
104
+ return this._items.length;
105
+ }
106
+ isEmpty() {
107
+ return this._items.length === 0;
108
+ }
109
+ clear() {
110
+ this._items.length = 0;
111
+ }
112
+ }
113
+ //# sourceMappingURL=asides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asides.js","sourceRoot":"","sources":["../../../src/core/banco/asides.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AAEtC,MAAM,QAAQ,GAAG,6BAA6B,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,CAAyB,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;IACvB,OAAO,IAAI,EAAE,CAAC;QACb,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,IAAI;YAAE,MAAM;QACtB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,YAAY;IAChB,MAAM,GAAa,EAAE,CAAC;IAE9B,uDAAuD;IACvD,IAAI,CAAC,IAAY;QAChB,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,8EAA8E;IAC9E,YAAY,CAAC,IAAY;QACxB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,MAAM,CAAC;IACtB,CAAC;IAED,+DAA+D;IAC/D,KAAK;QACJ,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,uBAAuB;IACvB,IAAI;QACH,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACxB,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"bloques.d.ts","sourceRoot":"","sources":["../../../src/core/banco/bloques.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,uFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAU5E;AAED,MAAM,WAAW,WAAW;IAC3B,6EAA6E;IAC7E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,4CAA4C;IAC5C,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,uEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAgF;IAChF,KAAK,EAAE,OAAO,CAAC;CACf;AAID;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,gBAAgB,EAAE,MAAM,EAAE,EAC1B,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,aAAa,SAAiB,GAC5B,WAAW,CA4Bb;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAYpH","sourcesContent":["/**\n * Construye el bloque que se le enseña al modelo y demuestra que es ÚNICO.\n *\n * El contrato de la tool `edit` real (`core/tools/edit.ts`) es: `oldText` debe\n * ser único en el fichero. Este módulo aplica el MISMO contrato a la\n * generación de casos: si la línea con el bug se repite en el fichero, amplía\n * el bloque con contexto de arriba y abajo hasta que sea único, igual que\n * tendría que hacer el propio modelo. Si no se puede — el fichero es tan\n * repetitivo que ni con contexto hay una única ocurrencia — el caso se\n * descarta por AMBIGUO en vez de admitirse y medir suerte.\n */\n\n/** Cuántas veces aparece `bloque` (como subsecuencia contigua) dentro de `lineas`. */\nexport function contarOcurrencias(lineas: string[], bloque: string[]): number {\n\tif (bloque.length === 0 || bloque.length > lineas.length) return 0;\n\tlet cuenta = 0;\n\touter: for (let i = 0; i <= lineas.length - bloque.length; i++) {\n\t\tfor (let j = 0; j < bloque.length; j++) {\n\t\t\tif (lineas[i + j] !== bloque[j]) continue outer;\n\t\t}\n\t\tcuenta++;\n\t}\n\treturn cuenta;\n}\n\nexport interface BloqueUnico {\n\t/** Tal como aparece en el fichero CON el bug (lo que debe buscar `edit`). */\n\tbloqueEntrada: string[];\n\t/** Tal como debe quedar tras el arreglo. */\n\tbloqueEsperado: string[];\n\t/** Línea 1-based donde empieza el bloque en el fichero de entrada. */\n\tlineaInicio: number;\n\t/** false si ni ampliando al máximo se logró que `bloqueEntrada` fuera único. */\n\tunico: boolean;\n}\n\nconst MAX_AMPLIACION = 12;\n\n/**\n * Amplía hacia arriba y abajo desde `indice` (0-based, la línea con el bug)\n * hasta que el bloque construido sobre las líneas ORIGINALES —con la línea\n * mutada sustituida en su sitio— sea único dentro de `lineasEntrada` (el\n * fichero completo tal y como lo ve el modelo, con el bug ya metido).\n */\nexport function construirBloqueUnico(\n\tlineasOriginales: string[],\n\tlineasEntrada: string[],\n\tindice: number,\n\tmaxAmpliacion = MAX_AMPLIACION,\n): BloqueUnico {\n\tlet arriba = 0;\n\tlet abajo = 0;\n\n\tconst calcular = (): { inicio: number; bloqueEsperado: string[]; bloqueEntrada: string[] } => {\n\t\tconst inicio = indice - arriba;\n\t\tconst fin = indice + abajo;\n\t\tconst bloqueEsperado = lineasOriginales.slice(inicio, fin + 1);\n\t\tconst bloqueEntrada = lineasEntrada.slice(inicio, fin + 1);\n\t\treturn { inicio, bloqueEsperado, bloqueEntrada };\n\t};\n\n\tlet actual = calcular();\n\tlet intentos = 0;\n\twhile (contarOcurrencias(lineasEntrada, actual.bloqueEntrada) > 1 && intentos < maxAmpliacion) {\n\t\tintentos++;\n\t\tif (indice - arriba - 1 >= 0) arriba++;\n\t\telse if (indice + abajo + 1 < lineasEntrada.length) abajo++;\n\t\telse break;\n\t\tactual = calcular();\n\t}\n\n\treturn {\n\t\tbloqueEntrada: actual.bloqueEntrada,\n\t\tbloqueEsperado: actual.bloqueEsperado,\n\t\tlineaInicio: actual.inicio + 1,\n\t\tunico: contarOcurrencias(lineasEntrada, actual.bloqueEntrada) === 1,\n\t};\n}\n\n/**\n * Re-resuelve el caso desde cero: busca `bloque.bloqueEntrada` en el fichero\n * de entrada y aplica el reemplazo. Si el resultado no es BYTE A BYTE\n * idéntico al fichero esperado, el prompt no determina un arreglo único y el\n * caso debe descartarse — esta es la comprobación que la tarea pide como\n * puerta: \"cada caso se valida resolviéndolo antes de admitirlo\".\n */\nexport function resuelveAlEsperado(contenidoEntrada: string, contenidoEsperado: string, bloque: BloqueUnico): boolean {\n\tif (!bloque.unico) return false;\n\tconst lineas = contenidoEntrada.split(\"\\n\");\n\tconst ocurrencias = contarOcurrencias(lineas, bloque.bloqueEntrada);\n\tif (ocurrencias !== 1) return false;\n\tconst inicio = bloque.lineaInicio - 1;\n\tconst resultado = [\n\t\t...lineas.slice(0, inicio),\n\t\t...bloque.bloqueEsperado,\n\t\t...lineas.slice(inicio + bloque.bloqueEntrada.length),\n\t].join(\"\\n\");\n\treturn resultado === contenidoEsperado;\n}\n"]}
1
+ {"version":3,"file":"bloques.d.ts","sourceRoot":"","sources":["../../../src/core/banco/bloques.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAU5E;AAED,MAAM,WAAW,WAAW;IAC3B,6EAA6E;IAC7E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,4CAA4C;IAC5C,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,KAAK,EAAE,OAAO,CAAC;CACf;AAID;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,gBAAgB,EAAE,MAAM,EAAE,EAC1B,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,aAAa,SAAiB,GAC5B,WAAW,CA4Bb;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAYpH"}
@@ -1 +1 @@
1
- {"version":3,"file":"bloques.js","sourceRoot":"","sources":["../../../src/core/banco/bloques.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Construye el bloque que se le enseña al modelo y demuestra que es ÚNICO.\n *\n * El contrato de la tool `edit` real (`core/tools/edit.ts`) es: `oldText` debe\n * ser único en el fichero. Este módulo aplica el MISMO contrato a la\n * generación de casos: si la línea con el bug se repite en el fichero, amplía\n * el bloque con contexto de arriba y abajo hasta que sea único, igual que\n * tendría que hacer el propio modelo. Si no se puede — el fichero es tan\n * repetitivo que ni con contexto hay una única ocurrencia — el caso se\n * descarta por AMBIGUO en vez de admitirse y medir suerte.\n */\n\n/** Cuántas veces aparece `bloque` (como subsecuencia contigua) dentro de `lineas`. */\nexport function contarOcurrencias(lineas: string[], bloque: string[]): number {\n\tif (bloque.length === 0 || bloque.length > lineas.length) return 0;\n\tlet cuenta = 0;\n\touter: for (let i = 0; i <= lineas.length - bloque.length; i++) {\n\t\tfor (let j = 0; j < bloque.length; j++) {\n\t\t\tif (lineas[i + j] !== bloque[j]) continue outer;\n\t\t}\n\t\tcuenta++;\n\t}\n\treturn cuenta;\n}\n\nexport interface BloqueUnico {\n\t/** Tal como aparece en el fichero CON el bug (lo que debe buscar `edit`). */\n\tbloqueEntrada: string[];\n\t/** Tal como debe quedar tras el arreglo. */\n\tbloqueEsperado: string[];\n\t/** Línea 1-based donde empieza el bloque en el fichero de entrada. */\n\tlineaInicio: number;\n\t/** false si ni ampliando al máximo se logró que `bloqueEntrada` fuera único. */\n\tunico: boolean;\n}\n\nconst MAX_AMPLIACION = 12;\n\n/**\n * Amplía hacia arriba y abajo desde `indice` (0-based, la línea con el bug)\n * hasta que el bloque construido sobre las líneas ORIGINALES —con la línea\n * mutada sustituida en su sitio— sea único dentro de `lineasEntrada` (el\n * fichero completo tal y como lo ve el modelo, con el bug ya metido).\n */\nexport function construirBloqueUnico(\n\tlineasOriginales: string[],\n\tlineasEntrada: string[],\n\tindice: number,\n\tmaxAmpliacion = MAX_AMPLIACION,\n): BloqueUnico {\n\tlet arriba = 0;\n\tlet abajo = 0;\n\n\tconst calcular = (): { inicio: number; bloqueEsperado: string[]; bloqueEntrada: string[] } => {\n\t\tconst inicio = indice - arriba;\n\t\tconst fin = indice + abajo;\n\t\tconst bloqueEsperado = lineasOriginales.slice(inicio, fin + 1);\n\t\tconst bloqueEntrada = lineasEntrada.slice(inicio, fin + 1);\n\t\treturn { inicio, bloqueEsperado, bloqueEntrada };\n\t};\n\n\tlet actual = calcular();\n\tlet intentos = 0;\n\twhile (contarOcurrencias(lineasEntrada, actual.bloqueEntrada) > 1 && intentos < maxAmpliacion) {\n\t\tintentos++;\n\t\tif (indice - arriba - 1 >= 0) arriba++;\n\t\telse if (indice + abajo + 1 < lineasEntrada.length) abajo++;\n\t\telse break;\n\t\tactual = calcular();\n\t}\n\n\treturn {\n\t\tbloqueEntrada: actual.bloqueEntrada,\n\t\tbloqueEsperado: actual.bloqueEsperado,\n\t\tlineaInicio: actual.inicio + 1,\n\t\tunico: contarOcurrencias(lineasEntrada, actual.bloqueEntrada) === 1,\n\t};\n}\n\n/**\n * Re-resuelve el caso desde cero: busca `bloque.bloqueEntrada` en el fichero\n * de entrada y aplica el reemplazo. Si el resultado no es BYTE A BYTE\n * idéntico al fichero esperado, el prompt no determina un arreglo único y el\n * caso debe descartarse — esta es la comprobación que la tarea pide como\n * puerta: \"cada caso se valida resolviéndolo antes de admitirlo\".\n */\nexport function resuelveAlEsperado(contenidoEntrada: string, contenidoEsperado: string, bloque: BloqueUnico): boolean {\n\tif (!bloque.unico) return false;\n\tconst lineas = contenidoEntrada.split(\"\\n\");\n\tconst ocurrencias = contarOcurrencias(lineas, bloque.bloqueEntrada);\n\tif (ocurrencias !== 1) return false;\n\tconst inicio = bloque.lineaInicio - 1;\n\tconst resultado = [\n\t\t...lineas.slice(0, inicio),\n\t\t...bloque.bloqueEsperado,\n\t\t...lineas.slice(inicio + bloque.bloqueEntrada.length),\n\t].join(\"\\n\");\n\treturn resultado === contenidoEsperado;\n}\n"]}
1
+ {"version":3,"file":"bloques.js","sourceRoot":"","sources":["../../../src/core/banco/bloques.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cargas.d.ts","sourceRoot":"","sources":["../../../src/core/banco/cargas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,oFAAkF;AAClF,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,sDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,0CAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D;;;;;;;OAOG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AA0GD;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,SAAS,eAAe,EA0V5C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAEjF,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,iFAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CAuBrE;AAED,MAAM,WAAW,UAAU;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACxC;AAED,wBAAgB,YAAY,CAAC,MAAM,GAAE,SAAS,eAAe,EAAW,GAAG,UAAU,CAUpF","sourcesContent":["/**\n * Banco de CARGAS MAL FORMADAS contra el motor de edición. Sin modelo.\n *\n * POR QUÉ HACE FALTA OTRO BANCO. `core/banco/` mide si el MODELO encuentra y\n * arregla un bug: llama a un proveedor de verdad, cuesta dinero y, sobre todo,\n * mide al modelo. Hoy quedó demostrado de la peor manera: con\n * `opencode/x-preview-f-free` la línea base salió 37,5% de acierto y 62,5% de\n * «fantasmas», y con `opencode/hy3-free` los MISMOS casos dieron 100% y 0%. Ese\n * 37,5% no medía a Ada; medía un proveedor que devuelve respuestas vacías.\n *\n * Este banco mide LO NUESTRO: dado un `oldText` con los errores que los modelos\n * cometen de verdad, ¿entra la edición y entra BIEN? Es determinista, no cuesta\n * nada y sirve de puerta.\n *\n * LA MÉTRICA, que es la decisión de diseño importante.\n *\n * Lo natural sería contar «cuántas aplica», y sería un error. Medido sobre\n * oh-my-pi: de 14 cargas aplica 10 y **tres de esas diez corrompen** —una\n * inyecta un error de sintaxis y dos estropean la sangría—. Un motor más\n * permisivo no es mejor: es más peligroso, porque un rechazo cuesta un turno y\n * una corrupción silenciosa cuesta un fichero.\n *\n * Por eso hay TRES resultados y no dos:\n *\n * correcto la edición entra y el fichero queda como debía\n * corrupto la edición entra y el fichero queda MAL ← el peor de los tres\n * rechazado la edición no entra\n *\n * `corrupto` cuenta como peor que `rechazado` a propósito. Es la misma\n * distinción que aplicamos en todo el repositorio: un fallo que se lee como\n * éxito es más caro que un fallo que se ve.\n */\n\nimport { applyEditsToNormalizedContent } from \"../tools/edit-diff.ts\";\n\n/** Qué debería pasar con una carga. Lo declara el caso, no lo decide el motor. */\nexport type Esperado = \"aplica\" | \"rechaza\";\n\nexport interface CargaMalFormada {\n\tid: string;\n\t/** Qué error del modelo reproduce, en una línea. */\n\terror: string;\n\t/** El fichero tal cual está en disco. */\n\tfichero: string;\n\tediciones: ReadonlyArray<{ oldText: string; newText: string }>;\n\t/**\n\t * `aplica` = el motor DEBERÍA recuperarlo. `rechaza` = debería negarse.\n\t *\n\t * Hay casos que deben rechazarse y esos son los que impiden que este banco\n\t * premie a un motor que acepta todo. Sin ellos, «aplicar más» sería siempre\n\t * mejor puntuación, y eso es exactamente el error de medición que queremos\n\t * evitar.\n\t */\n\tesperado: Esperado;\n\t/** El fichero resultante correcto. Solo para los `aplica`. */\n\tresultado?: string;\n}\n\nconst TABS = [\n\t\"export function servir(puerto: number) {\",\n\t\"\\tconst app = express();\",\n\t\"\\tapp.listen(puerto);\",\n\t\"}\",\n\t\"\",\n].join(\"\\n\");\nconst TABS_OK = [\n\t\"export function servir(puerto: number) {\",\n\t\"\\tconst app = express();\",\n\t\"\\tapp.listen(PUERTO);\",\n\t\"}\",\n\t\"\",\n].join(\"\\n\");\n\nconst ESPACIOS = [\n\t\"function total(items: Item[]) {\",\n\t\" let suma = 0;\",\n\t\" for (const it of items) {\",\n\t\" suma += it.precio;\",\n\t\" }\",\n\t\" return suma;\",\n\t\"}\",\n\t\"\",\n].join(\"\\n\");\n\nconst REPETIDO = [\"let total = 0;\", \"suma(a);\", \"let total = 0;\", \"suma(b);\", \"\"].join(\"\\n\");\n\n/**\n * Dos líneas que son distintas al recortarlas y la MISMA al colapsar el\n * espaciado interior. Existe para vigilar el camino que recupera\n * `espaciado-interno`.\n */\nconst ESPACIADO_REPETIDO = [\n\t\"const paso = calcular(1);\",\n\t\"let x = 1;\",\n\t\"const otro = calcular(2);\",\n\t\"let x = 1;\",\n\t\"\",\n].join(\"\\n\");\n\n/**\n * Un doble espacio DENTRO de una cadena, que es espaciado con significado.\n *\n * Existe porque casar colapsando espacios abre la puerta a escribirlos\n * colapsados: el modelo retipea esta línea con un espacio solo, sin intención de\n * tocarla, mientras cambia la de abajo.\n */\nconst CADENA_CON_DOS_ESPACIOS = [\"function saludo() {\", ' const s = \"a b\";', \" return s;\", \"}\", \"\"].join(\"\\n\");\n\n/**\n * Un fichero de tabuladores con un doble espacio INTERIOR, para el caso en que\n * colapsar ese espacio es exactamente lo que el modelo pide.\n */\nconst TABS_CON_DOS_ESPACIOS = [\n\t\"export function servir(puerto: number) {\",\n\t\"\\tconst app = express();\",\n\t\"\\tapp.listen(puerto);\",\n\t\"}\",\n\t\"\",\n].join(\"\\n\");\n\n/**\n * Comillas tipográficas y espacios al final, que es lo que hace falta para\n * ejercitar el empalme del camino DIFUSO.\n *\n * La línea 1 solo casa tras normalizar, así que enciende ese camino para todo el\n * lote. La línea 2 se edita por dentro y lleva comillas tipográficas que nadie\n * ha pedido tocar y tres espacios al final, que son los dos sitios donde el\n * empalme se ha roto de verdad.\n */\nconst TIPOGRAFICO = [\n\t\"const uno = “a”;\",\n\t'const msg = \"el “titulo” va aqui\" + compute(1); ',\n\t\"const fin = 1;\",\n\t\"\",\n].join(\"\\n\");\nconst TIPOGRAFICO_OK = [\n\t'const uno = \"b\";',\n\t'const msg = \"el “titulo” va aqui\" + compute(2); ',\n\t\"const fin = 1;\",\n\t\"\",\n].join(\"\\n\");\n\n/**\n * Dos funciones seguidas: el `}` de la columna cero de la segunda vuelve\n * ambigua el ancla de CIERRE de la primera. Es la forma de fichero más normal\n * que existe y mide el alcance real de la elisión.\n */\nconst DOS_FUNCIONES = [\"function a() {\", \"\\tuno();\", \"}\", \"\", \"function b() {\", \"\\tdos();\", \"}\", \"\"].join(\"\\n\");\n\n/** Dos funciones idénticas: el ancla de apertura casa en los dos sitios. */\nconst DOS_IGUALES = [\n\t\"function envolver() {\",\n\t\"\\tinicio();\",\n\t\"\\tfin();\",\n\t\"}\",\n\t\"function envolver() {\",\n\t\"\\tinicio();\",\n\t\"\\tfin();\",\n\t\"}\",\n\t\"\",\n].join(\"\\n\");\n\n/**\n * El corpus. Cada caso es un error que un modelo comete DE VERDAD.\n *\n * No están inventados: salen de la comparación motor contra motor de oh-my-pi y\n * de la sonda de nueve casos que se ejecutó sobre este repositorio.\n */\nexport const CARGAS: readonly CargaMalFormada[] = [\n\t{\n\t\t// El modelo retipea el contexto y se equivoca en una letra. omp lo aplica\n\t\t// y ESCRIBE la errata: su fichero acaba con `item`, que no existe, y no\n\t\t// compila. Nosotros casamos por parecido y escribimos la versión del\n\t\t// FICHERO en las líneas que el modelo solo estaba citando.\n\t\tid: \"errata-en-el-contexto\",\n\t\terror: \"el modelo retipea una línea de contexto con una errata (items → item)\",\n\t\tfichero: [\n\t\t\t\"function total(items) {\",\n\t\t\t\" let suma = 0;\",\n\t\t\t\" for (const it of items) {\",\n\t\t\t\" suma += it.precio;\",\n\t\t\t\" }\",\n\t\t\t\" return suma;\",\n\t\t\t\"}\",\n\t\t\t\"\",\n\t\t].join(\"\\n\"),\n\t\tediciones: [\n\t\t\t{\n\t\t\t\toldText: \" for (const it of item) {\\n suma += it.precio;\\n }\",\n\t\t\t\tnewText: \" for (const it of item) {\\n suma += it.precio * it.cantidad;\\n }\",\n\t\t\t},\n\t\t],\n\t\tesperado: \"aplica\",\n\t\tresultado: [\n\t\t\t\"function total(items) {\",\n\t\t\t\" let suma = 0;\",\n\t\t\t\" for (const it of items) {\",\n\t\t\t\" suma += it.precio;\",\n\t\t\t\" }\",\n\t\t\t\" return suma;\",\n\t\t\t\"}\",\n\t\t\t\"\",\n\t\t]\n\t\t\t.join(\"\\n\")\n\t\t\t.replace(\"suma += it.precio;\", \"suma += it.precio * it.cantidad;\"),\n\t},\n\t{\n\t\t// La puerta de DOMINANCIA. Dos bloques casi idénticos: el patrón con\n\t\t// errata se parece a los dos, así que no sabemos cuál quería. Elegir por\n\t\t// el modelo es peor que rechazar.\n\t\tid: \"parecido-ambiguo\",\n\t\terror: \"un patrón con errata que se parece igual a DOS bloques distintos\",\n\t\tfichero: [\n\t\t\t\"function a() {\",\n\t\t\t\" const valor = calcular(1);\",\n\t\t\t\" return valor;\",\n\t\t\t\"}\",\n\t\t\t\"function b() {\",\n\t\t\t\" const valor = calcular(1);\",\n\t\t\t\" return valor;\",\n\t\t\t\"}\",\n\t\t\t\"\",\n\t\t].join(\"\\n\"),\n\t\tediciones: [\n\t\t\t{\n\t\t\t\toldText: \" const valo = calcular(1);\\n return valor;\",\n\t\t\t\tnewText: \" const valor = calcular(2);\\n return valor;\",\n\t\t\t},\n\t\t],\n\t\tesperado: \"rechaza\",\n\t},\n\t{\n\t\t// La puerta del UMBRAL. No es una errata: es otro sitio. Un casado por\n\t\t// parecido sin suelo casaría cualquier cosa con cualquier cosa.\n\t\tid: \"parecido-demasiado-lejos\",\n\t\terror: \"el patrón no se parece a nada del fichero\",\n\t\tfichero: [\n\t\t\t\"function total(items) {\",\n\t\t\t\" let suma = 0;\",\n\t\t\t\" for (const it of items) {\",\n\t\t\t\" suma += it.precio;\",\n\t\t\t\" }\",\n\t\t\t\" return suma;\",\n\t\t\t\"}\",\n\t\t\t\"\",\n\t\t].join(\"\\n\"),\n\t\tediciones: [\n\t\t\t{\n\t\t\t\toldText: \" const cliente = new Cliente();\\n cliente.enviar();\",\n\t\t\t\tnewText: \" const cliente = new Cliente();\\n cliente.recibir();\",\n\t\t\t},\n\t\t],\n\t\tesperado: \"rechaza\",\n\t},\n\t{\n\t\t// Encontrado auditando oh-my-pi y reproducido ejecutando. El `oldText` casa\n\t\t// EXACTO, así que el motor escribía el `newText` verbatim y se saltaba toda\n\t\t// la lógica de sangría: el fichero acababa mezclando tabuladores y espacios.\n\t\t// En Python eso es un `TabError` y no arranca, y `parseo.ts` no cubre `.py`,\n\t\t// así que la red de reparación ni se despertaba.\n\t\tid: \"sangria-mixta-python\",\n\t\terror: \"el modelo teclea el cuerpo con tabuladores en un fichero de 4 espacios\",\n\t\tfichero: [\"class Carro:\", \" def total(self, items):\", \" s = 0\", \" return s\", \"\"].join(\"\\n\"),\n\t\tediciones: [\n\t\t\t{\n\t\t\t\toldText: \" def total(self, items):\\n s = 0\\n return s\",\n\t\t\t\tnewText: \" def total(self, items):\\n\\t\\ts = 0\\n\\t\\tfor i in items:\\n\\t\\t\\ts += i.p\\n\\t\\treturn s\",\n\t\t\t},\n\t\t],\n\t\tesperado: \"aplica\",\n\t\tresultado: [\n\t\t\t\"class Carro:\",\n\t\t\t\" def total(self, items):\",\n\t\t\t\" s = 0\",\n\t\t\t\" for i in items:\",\n\t\t\t\" s += i.p\",\n\t\t\t\" return s\",\n\t\t\t\"\",\n\t\t].join(\"\\n\"),\n\t},\n\t{\n\t\t// El mismo fallo en TypeScript. No rompe la sintaxis, pero deja el fichero\n\t\t// con dos estilos y el siguiente `edit` casa peor: la edición ENTRA, así que\n\t\t// se lee como éxito.\n\t\tid: \"sangria-mixta-ts\",\n\t\terror: \"igual que el anterior, en TypeScript: entra y deja el fichero con dos estilos\",\n\t\tfichero: [\"class C {\", \" total() {\", \" return 1;\", \" }\", \"}\", \"\"].join(\"\\n\"),\n\t\tediciones: [\n\t\t\t{ oldText: \" total() {\\n return 1;\\n }\", newText: \" total() {\\n\\t\\treturn 0;\\n }\" },\n\t\t],\n\t\tesperado: \"aplica\",\n\t\tresultado: [\"class C {\", \" total() {\", \" return 0;\", \" }\", \"}\", \"\"].join(\"\\n\"),\n\t},\n\t{\n\t\tid: \"exacto\",\n\t\terror: \"ninguno — es el control\",\n\t\tfichero: TABS,\n\t\tediciones: [{ oldText: \"\\tapp.listen(puerto);\", newText: \"\\tapp.listen(PUERTO);\" }],\n\t\tesperado: \"aplica\",\n\t\tresultado: TABS_OK,\n\t},\n\t{\n\t\tid: \"espacios-por-tabulador\",\n\t\terror: \"el fichero usa tabuladores y el modelo emite espacios\",\n\t\tfichero: TABS,\n\t\tediciones: [{ oldText: \" app.listen(puerto);\", newText: \" app.listen(PUERTO);\" }],\n\t\tesperado: \"aplica\",\n\t\tresultado: TABS_OK,\n\t},\n\t{\n\t\tid: \"sin-sangria\",\n\t\terror: \"el modelo manda la línea sin su sangría\",\n\t\tfichero: TABS,\n\t\tediciones: [{ oldText: \"app.listen(puerto);\", newText: \"app.listen(PUERTO);\" }],\n\t\tesperado: \"aplica\",\n\t\tresultado: TABS_OK,\n\t},\n\t{\n\t\tid: \"espacio-final-de-mas\",\n\t\terror: \"un espacio al final que el fichero no tiene\",\n\t\tfichero: TABS,\n\t\tediciones: [{ oldText: \"\\tapp.listen(puerto); \", newText: \"\\tapp.listen(PUERTO);\" }],\n\t\tesperado: \"aplica\",\n\t\tresultado: TABS_OK,\n\t},\n\t{\n\t\tid: \"valla-markdown\",\n\t\terror: \"el bloque viene envuelto en ```\",\n\t\tfichero: TABS,\n\t\tediciones: [{ oldText: \"```ts\\n\\tapp.listen(puerto);\\n```\", newText: \"\\tapp.listen(PUERTO);\" }],\n\t\tesperado: \"aplica\",\n\t\tresultado: TABS_OK,\n\t},\n\t{\n\t\tid: \"sobre-de-parche\",\n\t\terror: \"sentinelas de sobre (*** Begin Patch)\",\n\t\tfichero: TABS,\n\t\tediciones: [\n\t\t\t{ oldText: \"*** Begin Patch\\n\\tapp.listen(puerto);\\n*** End Patch\", newText: \"\\tapp.listen(PUERTO);\" },\n\t\t],\n\t\tesperado: \"aplica\",\n\t\tresultado: TABS_OK,\n\t},\n\t{\n\t\tid: \"cabecera-de-read\",\n\t\terror: \"el modelo copia la cabecera que añade NUESTRO propio read\",\n\t\tfichero: TABS,\n\t\tediciones: [\n\t\t\t{\n\t\t\t\toldText: \"\\tapp.listen(puerto);\\n[Showing lines 1-5 of 5. Use offset=6 to continue.]\",\n\t\t\t\tnewText: \"\\tapp.listen(PUERTO);\",\n\t\t\t},\n\t\t],\n\t\tesperado: \"aplica\",\n\t\tresultado: TABS_OK,\n\t},\n\t{\n\t\tid: \"numeros-de-linea\",\n\t\terror: \"el modelo pega los números de línea de un grep\",\n\t\tfichero: TABS,\n\t\tediciones: [{ oldText: \"3:\\tapp.listen(puerto);\", newText: \"\\tapp.listen(PUERTO);\" }],\n\t\tesperado: \"aplica\",\n\t\tresultado: TABS_OK,\n\t},\n\t{\n\t\tid: \"bloque-sin-sangrar\",\n\t\terror: \"bloque multilínea entero sin sangrar, fichero a 4 espacios\",\n\t\tfichero: ESPACIOS,\n\t\tediciones: [\n\t\t\t{\n\t\t\t\toldText: \"for (const it of items) {\\nsuma += it.precio;\\n}\",\n\t\t\t\tnewText: \"for (const it of items) {\\nsuma += it.precio * it.cantidad;\\n}\",\n\t\t\t},\n\t\t],\n\t\tesperado: \"aplica\",\n\t\tresultado: ESPACIOS.replace(\"suma += it.precio;\", \"suma += it.precio * it.cantidad;\"),\n\t},\n\t{\n\t\tid: \"espaciado-interno\",\n\t\terror: \"dos espacios donde el fichero tiene uno\",\n\t\tfichero: ESPACIOS,\n\t\tediciones: [{ oldText: \" let suma = 0;\", newText: \" let suma = 1;\" }],\n\t\tesperado: \"aplica\",\n\t\tresultado: ESPACIOS.replace(\"let suma = 0;\", \"let suma = 1;\"),\n\t},\n\t{\n\t\tid: \"hueco-elidido\",\n\t\terror: \"el modelo elide el medio con ...\",\n\t\tfichero: ESPACIOS,\n\t\tediciones: [\n\t\t\t{\n\t\t\t\toldText: \"function total(items: Item[]) {\\n...\\n}\",\n\t\t\t\tnewText: \"function total(items: Item[]) {\\n\\treturn 0;\\n}\",\n\t\t\t},\n\t\t],\n\t\tesperado: \"aplica\",\n\t\t// Con la sangría DEL FICHERO, no la del modelo. `ESPACIOS` se sangra con\n\t\t// cuatro espacios y el modelo manda `\\treturn 0;`: este resultado declaraba\n\t\t// el tabulador como correcto, o sea daba por bueno «entra y deja la sangría\n\t\t// mal», que es una de las tres formas en las que corrompe oh-my-pi y la\n\t\t// razón de existir de `core/edicion/sangria.ts`. La puerta bendecía el\n\t\t// defecto que la puerta existe para cazar.\n\t\tresultado: \"function total(items: Item[]) {\\n return 0;\\n}\\n\",\n\t},\n\t{\n\t\tid: \"espaciado-a-proposito\",\n\t\terror: \"el cambio ES el espaciado interior, y la sangría viene en espacios sobre un fichero de tabuladores\",\n\t\tfichero: TABS_CON_DOS_ESPACIOS,\n\t\tediciones: [{ oldText: \" const app = express();\", newText: \" const app = express();\" }],\n\t\tesperado: \"aplica\",\n\t\t// El doble espacio DESAPARECE. Es la otra mitad de `retecleo-inocente`: ahí\n\t\t// el modelo colapsó una línea sin querer y gana el fichero; aquí el colapso\n\t\t// es lo único que pide, y gana el modelo. Se distinguen por si el casado\n\t\t// necesitó colapsar: este patrón casa con la pasada ESTRICTA (el modelo\n\t\t// reprodujo los dos espacios), así que su `newText` es deliberado.\n\t\tresultado: TABS_CON_DOS_ESPACIOS.replace(\"const app = express();\", \"const app = express();\"),\n\t},\n\t{\n\t\tid: \"lote-difuso-empalme\",\n\t\terror: \"dos ediciones, una difusa por comillas tipográficas, y la otra dentro de una línea con espacios al final\",\n\t\tfichero: TIPOGRAFICO,\n\t\tediciones: [\n\t\t\t{ oldText: 'const uno = \"a\";', newText: 'const uno = \"b\";' },\n\t\t\t{ oldText: \"compute(1)\", newText: \"compute(2)\" },\n\t\t],\n\t\tesperado: \"aplica\",\n\t\t// Las DOS mitades del empalme sobre bytes originales, en una sola carga:\n\t\t//\n\t\t// · las comillas tipográficas de la línea 2 siguen ahí. Nadie pidió\n\t\t// tocarlas; escribir esa línea desde el texto normalizado dejaba\n\t\t// comillas rectas anidadas dentro de una cadena y el fichero no\n\t\t// compilaba.\n\t\t// · los tres espacios finales de la línea 2 y su SALTO DE LÍNEA siguen\n\t\t// ahí. Traducir el final normalizado de la línea a coordenadas del\n\t\t// original cortaba dentro de ella y pegaba la línea 3 detrás de la 2.\n\t\t//\n\t\t// El corpus no tenía ninguna carga sobre el empalme difuso, que es el\n\t\t// camino donde ya nos costó una corrupción silenciosa.\n\t\tresultado: TIPOGRAFICO_OK,\n\t},\n\t{\n\t\tid: \"retecleo-inocente\",\n\t\terror: \"retipea una cadena con un espacio donde hay dos, cambiando solo la línea de abajo\",\n\t\tfichero: CADENA_CON_DOS_ESPACIOS,\n\t\tediciones: [{ oldText: 'const s = \"a b\";\\nreturn s;', newText: 'const s = \"a b\";\\nreturn s.trim();' }],\n\t\tesperado: \"aplica\",\n\t\t// El doble espacio de la cadena SIGUE AHÍ. Es la mitad que no se ve del\n\t\t// casado por espaciado: entra la edición y no se toca lo que nadie pidió.\n\t\tresultado: CADENA_CON_DOS_ESPACIOS.replace(\"return s;\", \"return s.trim();\"),\n\t},\n\t// ── Los que DEBEN rechazarse. Sin estos, «aplicar más» sería siempre mejor\n\t// nota, y un motor que acepta cualquier cosa ganaría el banco.\n\t{\n\t\tid: \"ambiguo-dos-ocurrencias\",\n\t\terror: \"el oldText aparece dos veces: cuál se edita es una moneda al aire\",\n\t\tfichero: REPETIDO,\n\t\tediciones: [{ oldText: \"let total = 0;\", newText: \"let total = 1;\" }],\n\t\tesperado: \"rechaza\",\n\t},\n\t{\n\t\tid: \"no-existe\",\n\t\terror: \"el oldText no está en el fichero, ni parecido\",\n\t\tfichero: TABS,\n\t\tediciones: [{ oldText: \"\\tapp.escuchar(elPuerto);\", newText: \"\\tapp.listen(PUERTO);\" }],\n\t\tesperado: \"rechaza\",\n\t},\n\t{\n\t\tid: \"vacio\",\n\t\terror: \"oldText vacío: casaría en todas partes\",\n\t\tfichero: TABS,\n\t\tediciones: [{ oldText: \"\", newText: \"algo\" }],\n\t\tesperado: \"rechaza\",\n\t},\n\t// ── Los tres siguientes vigilan EXACTAMENTE lo que abren `espaciado-interno`\n\t// y `hueco-elidido`. Cada capacidad nueva de casado es una capacidad nueva\n\t// de casar en el sitio equivocado, y una carga que se recupera sin una\n\t// carga que la vigile es una permisividad sin medir.\n\t{\n\t\tid: \"espaciado-ambiguo\",\n\t\terror: \"el patrón solo casa si se colapsan los espacios, y entonces casa en DOS sitios\",\n\t\tfichero: ESPACIADO_REPETIDO,\n\t\tediciones: [{ oldText: \"let x = 1;\", newText: \"let x = 2;\" }],\n\t\tesperado: \"rechaza\",\n\t},\n\t{\n\t\tid: \"hueco-ancla-ambigua\",\n\t\terror: \"elide el medio, pero el ancla de apertura casa en dos funciones idénticas\",\n\t\tfichero: DOS_IGUALES,\n\t\tediciones: [\n\t\t\t{ oldText: \"function envolver() {\\n...\\n\\tfin();\", newText: \"function envolver() {\\n\\tsolo();\\n\\tfin();\" },\n\t\t],\n\t\tesperado: \"rechaza\",\n\t},\n\t{\n\t\tid: \"hueco-cierre-no-unico\",\n\t\terror: \"elide la PRIMERA de dos funciones: el } de la segunda vuelve ambigua el ancla de cierre\",\n\t\tfichero: DOS_FUNCIONES,\n\t\tediciones: [{ oldText: \"function a() {\\n...\\n}\", newText: \"function a() {\\n\\tuno2();\\n}\" }],\n\t\t// Se rechaza, y esta carga existe para que ese rechazo sea un NÚMERO y no\n\t\t// una sorpresa. Medido sobre `src/core/`: con la regla de ancla única, la\n\t\t// elisión casa en 164 de 1173 funciones de nivel superior (14%), y en la\n\t\t// práctica solo en la última de cada fichero. Elegir por el modelo entre\n\t\t// dos cierres sería una moneda al aire que se traga código que él no ha\n\t\t// nombrado, así que el rechazo es la respuesta correcta HOY; quien amplíe\n\t\t// el alcance tendrá que cambiar esta línea a mano y decir con qué lo mide.\n\t\tesperado: \"rechaza\",\n\t},\n\t{\n\t\tid: \"hueco-sin-fondo\",\n\t\terror: \"el ... abre el hueco sin ancla delante: se comería el fichero desde el principio\",\n\t\tfichero: TABS,\n\t\tediciones: [{ oldText: \"...\\n}\", newText: \"\\tapp.listen(PUERTO);\\n}\" }],\n\t\tesperado: \"rechaza\",\n\t},\n];\n\nexport type Veredicto = \"correcto\" | \"corrupto\" | \"rechazado\" | \"rechazado-bien\";\n\nexport interface ResultadoDeCarga {\n\tid: string;\n\terror: string;\n\tesperado: Esperado;\n\tveredicto: Veredicto;\n\t/** Qué salió, cuando salió mal. Para poder leer el fallo sin reproducirlo. */\n\tdetalle?: string;\n}\n\n/** Pasa una carga por el motor y clasifica el resultado en tres estados. */\nexport function evaluarCarga(carga: CargaMalFormada): ResultadoDeCarga {\n\tconst base = { id: carga.id, error: carga.error, esperado: carga.esperado };\n\tlet salida: string;\n\ttry {\n\t\tsalida = applyEditsToNormalizedContent(carga.fichero, [...carga.ediciones], `${carga.id}.ts`).newContent;\n\t} catch (error) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tveredicto: carga.esperado === \"rechaza\" ? \"rechazado-bien\" : \"rechazado\",\n\t\t\tdetalle: carga.esperado === \"rechaza\" ? undefined : (error as Error).message.slice(0, 120),\n\t\t};\n\t}\n\tif (carga.esperado === \"rechaza\") {\n\t\t// Aplicó algo que debía rechazar. Es corrupción por definición: el fichero\n\t\t// cambió sin que nadie pudiera saber dónde.\n\t\treturn { ...base, veredicto: \"corrupto\", detalle: \"aplicó una edición que debía rechazarse\" };\n\t}\n\tif (salida === carga.resultado) return { ...base, veredicto: \"correcto\" };\n\treturn {\n\t\t...base,\n\t\tveredicto: \"corrupto\",\n\t\tdetalle: `salió ${JSON.stringify(salida.slice(0, 90))}, se esperaba ${JSON.stringify((carga.resultado ?? \"\").slice(0, 90))}`,\n\t};\n}\n\nexport interface Puntuacion {\n\tcorrectos: number;\n\tcorruptos: number;\n\trechazados: number;\n\trechazadosBien: number;\n\ttotal: number;\n\tresultados: readonly ResultadoDeCarga[];\n}\n\nexport function evaluarTodas(cargas: readonly CargaMalFormada[] = CARGAS): Puntuacion {\n\tconst resultados = cargas.map(evaluarCarga);\n\treturn {\n\t\tcorrectos: resultados.filter((r) => r.veredicto === \"correcto\").length,\n\t\tcorruptos: resultados.filter((r) => r.veredicto === \"corrupto\").length,\n\t\trechazados: resultados.filter((r) => r.veredicto === \"rechazado\").length,\n\t\trechazadosBien: resultados.filter((r) => r.veredicto === \"rechazado-bien\").length,\n\t\ttotal: resultados.length,\n\t\tresultados,\n\t};\n}\n"]}
1
+ {"version":3,"file":"cargas.d.ts","sourceRoot":"","sources":["../../../src/core/banco/cargas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,kFAAkF;AAClF,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D;;;;;;;OAOG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AA0GD;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,SAAS,eAAe,EA0V5C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAEjF,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CAuBrE;AAED,MAAM,WAAW,UAAU;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACxC;AAED,wBAAgB,YAAY,CAAC,MAAM,GAAE,SAAS,eAAe,EAAW,GAAG,UAAU,CAUpF"}