@hoilab/ada-cli 0.85.0 → 0.85.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1691) hide show
  1. package/dist/ada-publico.d.ts.map +1 -1
  2. package/dist/ada-publico.js.map +1 -1
  3. package/dist/bun/cli.d.ts.map +1 -1
  4. package/dist/bun/cli.js.map +1 -1
  5. package/dist/bun/register-bedrock.d.ts.map +1 -1
  6. package/dist/bun/register-bedrock.js.map +1 -1
  7. package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
  8. package/dist/bun/restore-sandbox-env.js.map +1 -1
  9. package/dist/cli/args.d.ts.map +1 -1
  10. package/dist/cli/args.js.map +1 -1
  11. package/dist/cli/audit-command.d.ts.map +1 -1
  12. package/dist/cli/audit-command.js.map +1 -1
  13. package/dist/cli/auth-check.d.ts.map +1 -1
  14. package/dist/cli/auth-check.js.map +1 -1
  15. package/dist/cli/auth-command.d.ts.map +1 -1
  16. package/dist/cli/auth-command.js.map +1 -1
  17. package/dist/cli/banco-command.d.ts.map +1 -1
  18. package/dist/cli/banco-command.js.map +1 -1
  19. package/dist/cli/cleanse-command.d.ts.map +1 -1
  20. package/dist/cli/cleanse-command.js +5 -2
  21. package/dist/cli/cleanse-command.js.map +1 -1
  22. package/dist/cli/commit-command.d.ts +8 -6
  23. package/dist/cli/commit-command.d.ts.map +1 -1
  24. package/dist/cli/commit-command.js +124 -92
  25. package/dist/cli/commit-command.js.map +1 -1
  26. package/dist/cli/completion.d.ts +20 -0
  27. package/dist/cli/completion.d.ts.map +1 -0
  28. package/dist/cli/completion.js +75 -0
  29. package/dist/cli/completion.js.map +1 -0
  30. package/dist/cli/computer-command.d.ts.map +1 -1
  31. package/dist/cli/computer-command.js.map +1 -1
  32. package/dist/cli/config-selector.d.ts.map +1 -1
  33. package/dist/cli/config-selector.js.map +1 -1
  34. package/dist/cli/credential-print.d.ts.map +1 -1
  35. package/dist/cli/credential-print.js.map +1 -1
  36. package/dist/cli/discover-command.d.ts.map +1 -1
  37. package/dist/cli/discover-command.js +5 -1
  38. package/dist/cli/discover-command.js.map +1 -1
  39. package/dist/cli/experimental/auth.d.ts.map +1 -1
  40. package/dist/cli/experimental/auth.js.map +1 -1
  41. package/dist/cli/experimental/cli.d.ts +1 -1
  42. package/dist/cli/experimental/cli.d.ts.map +1 -1
  43. package/dist/cli/experimental/cli.js.map +1 -1
  44. package/dist/cli/experimental/command-options.d.ts.map +1 -1
  45. package/dist/cli/experimental/command-options.js.map +1 -1
  46. package/dist/cli/experimental/command.d.ts.map +1 -1
  47. package/dist/cli/experimental/command.js.map +1 -1
  48. package/dist/cli/experimental/commands/client.d.ts.map +1 -1
  49. package/dist/cli/experimental/commands/client.js.map +1 -1
  50. package/dist/cli/experimental/commands/pi.d.ts.map +1 -1
  51. package/dist/cli/experimental/commands/pi.js.map +1 -1
  52. package/dist/cli/experimental/commands/server.d.ts.map +1 -1
  53. package/dist/cli/experimental/commands/server.js.map +1 -1
  54. package/dist/cli/experimental/transport-address.d.ts.map +1 -1
  55. package/dist/cli/experimental/transport-address.js.map +1 -1
  56. package/dist/cli/file-processor.d.ts.map +1 -1
  57. package/dist/cli/file-processor.js.map +1 -1
  58. package/dist/cli/guardrails.d.ts +14 -0
  59. package/dist/cli/guardrails.d.ts.map +1 -0
  60. package/dist/cli/guardrails.js +47 -0
  61. package/dist/cli/guardrails.js.map +1 -0
  62. package/dist/cli/hashline-command.d.ts.map +1 -1
  63. package/dist/cli/hashline-command.js.map +1 -1
  64. package/dist/cli/home-screen.d.ts.map +1 -1
  65. package/dist/cli/home-screen.js +1 -0
  66. package/dist/cli/home-screen.js.map +1 -1
  67. package/dist/cli/import-command.d.ts.map +1 -1
  68. package/dist/cli/import-command.js.map +1 -1
  69. package/dist/cli/initial-message.d.ts +1 -1
  70. package/dist/cli/initial-message.d.ts.map +1 -1
  71. package/dist/cli/initial-message.js.map +1 -1
  72. package/dist/cli/list-models.d.ts.map +1 -1
  73. package/dist/cli/list-models.js.map +1 -1
  74. package/dist/cli/politica-command.d.ts.map +1 -1
  75. package/dist/cli/politica-command.js.map +1 -1
  76. package/dist/cli/project-trust.d.ts.map +1 -1
  77. package/dist/cli/project-trust.js.map +1 -1
  78. package/dist/cli/refine-command.d.ts.map +1 -1
  79. package/dist/cli/refine-command.js.map +1 -1
  80. package/dist/cli/review-command.d.ts.map +1 -1
  81. package/dist/cli/review-command.js +77 -13
  82. package/dist/cli/review-command.js.map +1 -1
  83. package/dist/cli/schedule-command.d.ts.map +1 -1
  84. package/dist/cli/schedule-command.js.map +1 -1
  85. package/dist/cli/serve-command.d.ts +0 -1
  86. package/dist/cli/serve-command.d.ts.map +1 -1
  87. package/dist/cli/serve-command.js +12 -6
  88. package/dist/cli/serve-command.js.map +1 -1
  89. package/dist/cli/session-picker.d.ts.map +1 -1
  90. package/dist/cli/session-picker.js.map +1 -1
  91. package/dist/cli/startup-ui.d.ts.map +1 -1
  92. package/dist/cli/startup-ui.js.map +1 -1
  93. package/dist/cli/telegram-command.d.ts.map +1 -1
  94. package/dist/cli/telegram-command.js.map +1 -1
  95. package/dist/cli/telemetria-command.d.ts.map +1 -1
  96. package/dist/cli/telemetria-command.js.map +1 -1
  97. package/dist/cli/undo-command.d.ts.map +1 -1
  98. package/dist/cli/undo-command.js.map +1 -1
  99. package/dist/cli/update-cli.d.ts +82 -0
  100. package/dist/cli/update-cli.d.ts.map +1 -0
  101. package/dist/cli/update-cli.js +372 -0
  102. package/dist/cli/update-cli.js.map +1 -0
  103. package/dist/cli/usage-command.d.ts.map +1 -1
  104. package/dist/cli/usage-command.js +75 -6
  105. package/dist/cli/usage-command.js.map +1 -1
  106. package/dist/cli/wiki-command.d.ts.map +1 -1
  107. package/dist/cli/wiki-command.js.map +1 -1
  108. package/dist/cli.d.ts +0 -6
  109. package/dist/cli.d.ts.map +1 -1
  110. package/dist/cli.js +0 -0
  111. package/dist/cli.js.map +1 -1
  112. package/dist/client/index.d.ts.map +1 -1
  113. package/dist/client/index.js.map +1 -1
  114. package/dist/client/remote-session.d.ts.map +1 -1
  115. package/dist/client/remote-session.js.map +1 -1
  116. package/dist/client/transcript.d.ts.map +1 -1
  117. package/dist/client/transcript.js.map +1 -1
  118. package/dist/config.d.ts.map +1 -1
  119. package/dist/config.js.map +1 -1
  120. package/dist/core/ada.d.ts +5 -0
  121. package/dist/core/ada.d.ts.map +1 -1
  122. package/dist/core/ada.js +5 -0
  123. package/dist/core/ada.js.map +1 -1
  124. package/dist/core/advisor/guarda.d.ts.map +1 -1
  125. package/dist/core/advisor/guarda.js.map +1 -1
  126. package/dist/core/advisor/runtime.d.ts.map +1 -1
  127. package/dist/core/advisor/runtime.js.map +1 -1
  128. package/dist/core/advisor/sesion.d.ts.map +1 -1
  129. package/dist/core/advisor/sesion.js.map +1 -1
  130. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  131. package/dist/core/agent-session-runtime.js.map +1 -1
  132. package/dist/core/agent-session-services.d.ts.map +1 -1
  133. package/dist/core/agent-session-services.js.map +1 -1
  134. package/dist/core/agent-session.d.ts +67 -0
  135. package/dist/core/agent-session.d.ts.map +1 -1
  136. package/dist/core/agent-session.js +43 -2
  137. package/dist/core/agent-session.js.map +1 -1
  138. package/dist/core/agents/loader.d.ts.map +1 -1
  139. package/dist/core/agents/loader.js.map +1 -1
  140. package/dist/core/appendonly/append-only-context.d.ts +118 -0
  141. package/dist/core/appendonly/append-only-context.d.ts.map +1 -0
  142. package/dist/core/appendonly/append-only-context.js +256 -0
  143. package/dist/core/appendonly/append-only-context.js.map +1 -0
  144. package/dist/core/appendonly/auto.d.ts +30 -0
  145. package/dist/core/appendonly/auto.d.ts.map +1 -0
  146. package/dist/core/appendonly/auto.js +68 -0
  147. package/dist/core/appendonly/auto.js.map +1 -0
  148. package/dist/core/appendonly/extension.d.ts +29 -0
  149. package/dist/core/appendonly/extension.d.ts.map +1 -0
  150. package/dist/core/appendonly/extension.js +51 -0
  151. package/dist/core/appendonly/extension.js.map +1 -0
  152. package/dist/core/appendonly/index.d.ts +41 -0
  153. package/dist/core/appendonly/index.d.ts.map +1 -0
  154. package/dist/core/appendonly/index.js +42 -0
  155. package/dist/core/appendonly/index.js.map +1 -0
  156. package/dist/core/aprobacion/generados.d.ts.map +1 -1
  157. package/dist/core/aprobacion/generados.js.map +1 -1
  158. package/dist/core/aprobacion/politica-de-maquina.d.ts.map +1 -1
  159. package/dist/core/aprobacion/politica-de-maquina.js.map +1 -1
  160. package/dist/core/aprobacion/politica.d.ts +1 -1
  161. package/dist/core/aprobacion/politica.d.ts.map +1 -1
  162. package/dist/core/aprobacion/politica.js.map +1 -1
  163. package/dist/core/arranque/atajos.d.ts.map +1 -1
  164. package/dist/core/arranque/atajos.js +20 -0
  165. package/dist/core/arranque/atajos.js.map +1 -1
  166. package/dist/core/audit/exportacion.d.ts.map +1 -1
  167. package/dist/core/audit/exportacion.js +5 -3
  168. package/dist/core/audit/exportacion.js.map +1 -1
  169. package/dist/core/audit/libro.d.ts +7 -0
  170. package/dist/core/audit/libro.d.ts.map +1 -1
  171. package/dist/core/audit/libro.js.map +1 -1
  172. package/dist/core/audit/registro-sesion.d.ts.map +1 -1
  173. package/dist/core/audit/registro-sesion.js.map +1 -1
  174. package/dist/core/audit/retencion.d.ts.map +1 -1
  175. package/dist/core/audit/retencion.js.map +1 -1
  176. package/dist/core/audit/rutas.d.ts.map +1 -1
  177. package/dist/core/audit/rutas.js.map +1 -1
  178. package/dist/core/auth-guidance.d.ts.map +1 -1
  179. package/dist/core/auth-guidance.js.map +1 -1
  180. package/dist/core/auth-storage.d.ts.map +1 -1
  181. package/dist/core/auth-storage.js.map +1 -1
  182. package/dist/core/banco/almacenamiento.d.ts.map +1 -1
  183. package/dist/core/banco/almacenamiento.js.map +1 -1
  184. package/dist/core/banco/analisis.d.ts.map +1 -1
  185. package/dist/core/banco/analisis.js.map +1 -1
  186. package/dist/core/banco/asides.d.ts +64 -0
  187. package/dist/core/banco/asides.d.ts.map +1 -0
  188. package/dist/core/banco/asides.js +113 -0
  189. package/dist/core/banco/asides.js.map +1 -0
  190. package/dist/core/banco/bloques.d.ts.map +1 -1
  191. package/dist/core/banco/bloques.js.map +1 -1
  192. package/dist/core/banco/cargas.d.ts.map +1 -1
  193. package/dist/core/banco/cargas.js.map +1 -1
  194. package/dist/core/banco/comparar.d.ts.map +1 -1
  195. package/dist/core/banco/comparar.js.map +1 -1
  196. package/dist/core/banco/cow-isolation.d.ts +74 -0
  197. package/dist/core/banco/cow-isolation.d.ts.map +1 -0
  198. package/dist/core/banco/cow-isolation.js +259 -0
  199. package/dist/core/banco/cow-isolation.js.map +1 -0
  200. package/dist/core/banco/ejecutar.d.ts.map +1 -1
  201. package/dist/core/banco/ejecutar.js.map +1 -1
  202. package/dist/core/banco/generar.d.ts.map +1 -1
  203. package/dist/core/banco/generar.js.map +1 -1
  204. package/dist/core/banco/mutaciones.d.ts.map +1 -1
  205. package/dist/core/banco/mutaciones.js.map +1 -1
  206. package/dist/core/banco/park-revive.d.ts +67 -0
  207. package/dist/core/banco/park-revive.d.ts.map +1 -0
  208. package/dist/core/banco/park-revive.js +130 -0
  209. package/dist/core/banco/park-revive.js.map +1 -0
  210. package/dist/core/banco/pruning.d.ts +48 -0
  211. package/dist/core/banco/pruning.d.ts.map +1 -0
  212. package/dist/core/banco/pruning.js +146 -0
  213. package/dist/core/banco/pruning.js.map +1 -0
  214. package/dist/core/banco/steering.d.ts +81 -0
  215. package/dist/core/banco/steering.d.ts.map +1 -0
  216. package/dist/core/banco/steering.js +96 -0
  217. package/dist/core/banco/steering.js.map +1 -0
  218. package/dist/core/banco/tipos.d.ts.map +1 -1
  219. package/dist/core/banco/tipos.js.map +1 -1
  220. package/dist/core/bash-executor.d.ts.map +1 -1
  221. package/dist/core/bash-executor.js.map +1 -1
  222. package/dist/core/blobs/almacen.d.ts.map +1 -1
  223. package/dist/core/blobs/almacen.js.map +1 -1
  224. package/dist/core/blobs/broker.d.ts +1 -0
  225. package/dist/core/blobs/broker.d.ts.map +1 -1
  226. package/dist/core/blobs/broker.js +1 -1
  227. package/dist/core/blobs/broker.js.map +1 -1
  228. package/dist/core/blobs/index.d.ts +1 -0
  229. package/dist/core/blobs/index.d.ts.map +1 -1
  230. package/dist/core/blobs/index.js +1 -0
  231. package/dist/core/blobs/index.js.map +1 -1
  232. package/dist/core/blobs/payload.d.ts.map +1 -1
  233. package/dist/core/blobs/payload.js.map +1 -1
  234. package/dist/core/blobs/proveedor.d.ts.map +1 -1
  235. package/dist/core/blobs/proveedor.js.map +1 -1
  236. package/dist/core/blobs/uploaders.d.ts +105 -0
  237. package/dist/core/blobs/uploaders.d.ts.map +1 -0
  238. package/dist/core/blobs/uploaders.js +224 -0
  239. package/dist/core/blobs/uploaders.js.map +1 -0
  240. package/dist/core/broker/broker.d.ts +54 -0
  241. package/dist/core/broker/broker.d.ts.map +1 -0
  242. package/dist/core/broker/broker.js +216 -0
  243. package/dist/core/broker/broker.js.map +1 -0
  244. package/dist/core/broker/index.d.ts +21 -0
  245. package/dist/core/broker/index.d.ts.map +1 -0
  246. package/dist/core/broker/index.js +33 -0
  247. package/dist/core/broker/index.js.map +1 -0
  248. package/dist/core/broker/ps.d.ts +20 -0
  249. package/dist/core/broker/ps.d.ts.map +1 -0
  250. package/dist/core/broker/ps.js +55 -0
  251. package/dist/core/broker/ps.js.map +1 -0
  252. package/dist/core/broker/types.d.ts +45 -0
  253. package/dist/core/broker/types.d.ts.map +1 -0
  254. package/dist/core/broker/types.js +19 -0
  255. package/dist/core/broker/types.js.map +1 -0
  256. package/dist/core/browser/cdp.d.ts.map +1 -1
  257. package/dist/core/browser/cdp.js.map +1 -1
  258. package/dist/core/browser/politica.d.ts.map +1 -1
  259. package/dist/core/browser/politica.js.map +1 -1
  260. package/dist/core/browser/sesion.d.ts.map +1 -1
  261. package/dist/core/browser/sesion.js.map +1 -1
  262. package/dist/core/browser/tools.d.ts.map +1 -1
  263. package/dist/core/browser/tools.js.map +1 -1
  264. package/dist/core/cache-stats.d.ts.map +1 -1
  265. package/dist/core/cache-stats.js.map +1 -1
  266. package/dist/core/capability/capability.test.d.ts +12 -0
  267. package/dist/core/capability/capability.test.d.ts.map +1 -0
  268. package/dist/core/capability/capability.test.js +258 -0
  269. package/dist/core/capability/capability.test.js.map +1 -0
  270. package/dist/core/capability/fs.d.ts +32 -0
  271. package/dist/core/capability/fs.d.ts.map +1 -0
  272. package/dist/core/capability/fs.js +106 -0
  273. package/dist/core/capability/fs.js.map +1 -0
  274. package/dist/core/capability/index.d.ts +68 -0
  275. package/dist/core/capability/index.d.ts.map +1 -0
  276. package/dist/core/capability/index.js +258 -0
  277. package/dist/core/capability/index.js.map +1 -0
  278. package/dist/core/capability/types.d.ts +168 -0
  279. package/dist/core/capability/types.d.ts.map +1 -0
  280. package/dist/core/capability/types.js +16 -0
  281. package/dist/core/capability/types.js.map +1 -0
  282. package/dist/core/carga-plugins/index.d.ts +49 -0
  283. package/dist/core/carga-plugins/index.d.ts.map +1 -0
  284. package/dist/core/carga-plugins/index.js +85 -0
  285. package/dist/core/carga-plugins/index.js.map +1 -0
  286. package/dist/core/carga-plugins/invalidacion.d.ts +60 -0
  287. package/dist/core/carga-plugins/invalidacion.d.ts.map +1 -0
  288. package/dist/core/carga-plugins/invalidacion.js +94 -0
  289. package/dist/core/carga-plugins/invalidacion.js.map +1 -0
  290. package/dist/core/carga-plugins/paralelo.d.ts +48 -0
  291. package/dist/core/carga-plugins/paralelo.d.ts.map +1 -0
  292. package/dist/core/carga-plugins/paralelo.js +47 -0
  293. package/dist/core/carga-plugins/paralelo.js.map +1 -0
  294. package/dist/core/colaboracion/autoresearch.d.ts +56 -0
  295. package/dist/core/colaboracion/autoresearch.d.ts.map +1 -0
  296. package/dist/core/colaboracion/autoresearch.js +95 -0
  297. package/dist/core/colaboracion/autoresearch.js.map +1 -0
  298. package/dist/core/colaboracion/index.d.ts +10 -0
  299. package/dist/core/colaboracion/index.d.ts.map +1 -0
  300. package/dist/core/colaboracion/index.js +7 -0
  301. package/dist/core/colaboracion/index.js.map +1 -0
  302. package/dist/core/colaboracion/kernels.d.ts +63 -0
  303. package/dist/core/colaboracion/kernels.d.ts.map +1 -0
  304. package/dist/core/colaboracion/kernels.js +99 -0
  305. package/dist/core/colaboracion/kernels.js.map +1 -0
  306. package/dist/core/colaboracion/rele/index.d.ts +8 -0
  307. package/dist/core/colaboracion/rele/index.d.ts.map +1 -0
  308. package/dist/core/colaboracion/rele/index.js +6 -0
  309. package/dist/core/colaboracion/rele/index.js.map +1 -0
  310. package/dist/core/colaboracion/rele/rele-servidor.d.ts +69 -0
  311. package/dist/core/colaboracion/rele/rele-servidor.d.ts.map +1 -0
  312. package/dist/core/colaboracion/rele/rele-servidor.js +197 -0
  313. package/dist/core/colaboracion/rele/rele-servidor.js.map +1 -0
  314. package/dist/core/colaboracion/rele/suscriptor.d.ts +31 -0
  315. package/dist/core/colaboracion/rele/suscriptor.d.ts.map +1 -0
  316. package/dist/core/colaboracion/rele/suscriptor.js +173 -0
  317. package/dist/core/colaboracion/rele/suscriptor.js.map +1 -0
  318. package/dist/core/colaboracion/sesion-colaborativa.d.ts +61 -0
  319. package/dist/core/colaboracion/sesion-colaborativa.d.ts.map +1 -0
  320. package/dist/core/colaboracion/sesion-colaborativa.js +127 -0
  321. package/dist/core/colaboracion/sesion-colaborativa.js.map +1 -0
  322. package/dist/core/commits/agentic.d.ts +101 -0
  323. package/dist/core/commits/agentic.d.ts.map +1 -0
  324. package/dist/core/commits/agentic.js +268 -0
  325. package/dist/core/commits/agentic.js.map +1 -0
  326. package/dist/core/commits/changelog.d.ts +37 -0
  327. package/dist/core/commits/changelog.d.ts.map +1 -0
  328. package/dist/core/commits/changelog.js +155 -0
  329. package/dist/core/commits/changelog.js.map +1 -0
  330. package/dist/core/commits/diff.d.ts.map +1 -0
  331. package/dist/core/commits/diff.js.map +1 -0
  332. package/dist/core/commits/git.d.ts +43 -0
  333. package/dist/core/commits/git.d.ts.map +1 -0
  334. package/dist/core/commits/git.js +61 -0
  335. package/dist/core/commits/git.js.map +1 -0
  336. package/dist/core/commits/split.d.ts +45 -0
  337. package/dist/core/commits/split.d.ts.map +1 -0
  338. package/dist/core/commits/split.js +128 -0
  339. package/dist/core/commits/split.js.map +1 -0
  340. package/dist/core/compactacion/comandos.d.ts +53 -0
  341. package/dist/core/compactacion/comandos.d.ts.map +1 -0
  342. package/dist/core/compactacion/comandos.js +155 -0
  343. package/dist/core/compactacion/comandos.js.map +1 -0
  344. package/dist/core/compactacion/extension.d.ts +28 -0
  345. package/dist/core/compactacion/extension.d.ts.map +1 -0
  346. package/dist/core/compactacion/extension.js +159 -0
  347. package/dist/core/compactacion/extension.js.map +1 -0
  348. package/dist/core/compactacion/handoff.d.ts +61 -0
  349. package/dist/core/compactacion/handoff.d.ts.map +1 -0
  350. package/dist/core/compactacion/handoff.js +139 -0
  351. package/dist/core/compactacion/handoff.js.map +1 -0
  352. package/dist/core/compactacion/index.d.ts +15 -0
  353. package/dist/core/compactacion/index.d.ts.map +1 -0
  354. package/dist/core/compactacion/index.js +15 -0
  355. package/dist/core/compactacion/index.js.map +1 -0
  356. package/dist/core/compactacion/prune.d.ts +38 -0
  357. package/dist/core/compactacion/prune.d.ts.map +1 -0
  358. package/dist/core/compactacion/prune.js +81 -0
  359. package/dist/core/compactacion/prune.js.map +1 -0
  360. package/dist/core/compactacion/shake.d.ts +40 -0
  361. package/dist/core/compactacion/shake.d.ts.map +1 -0
  362. package/dist/core/compactacion/shake.js +106 -0
  363. package/dist/core/compactacion/shake.js.map +1 -0
  364. package/dist/core/compactacion/tipos.d.ts +54 -0
  365. package/dist/core/compactacion/tipos.d.ts.map +1 -0
  366. package/dist/core/compactacion/tipos.js +44 -0
  367. package/dist/core/compactacion/tipos.js.map +1 -0
  368. package/dist/core/compactar/index.d.ts.map +1 -1
  369. package/dist/core/compactar/index.js.map +1 -1
  370. package/dist/core/compactar/registro-denso.d.ts.map +1 -1
  371. package/dist/core/compactar/registro-denso.js.map +1 -1
  372. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  373. package/dist/core/compaction/branch-summarization.js.map +1 -1
  374. package/dist/core/compaction/compaction.d.ts.map +1 -1
  375. package/dist/core/compaction/compaction.js.map +1 -1
  376. package/dist/core/compaction/index.d.ts.map +1 -1
  377. package/dist/core/compaction/index.js.map +1 -1
  378. package/dist/core/compaction/utils.d.ts.map +1 -1
  379. package/dist/core/compaction/utils.js.map +1 -1
  380. package/dist/core/computer/captura.d.ts.map +1 -1
  381. package/dist/core/computer/captura.js.map +1 -1
  382. package/dist/core/computer/driver.d.ts.map +1 -1
  383. package/dist/core/computer/driver.js.map +1 -1
  384. package/dist/core/computer/motor/actions.d.ts.map +1 -1
  385. package/dist/core/computer/motor/actions.js.map +1 -1
  386. package/dist/core/computer/motor/bridge.d.ts +2 -2
  387. package/dist/core/computer/motor/bridge.d.ts.map +1 -1
  388. package/dist/core/computer/motor/bridge.js.map +1 -1
  389. package/dist/core/computer/motor/cdp.d.ts.map +1 -1
  390. package/dist/core/computer/motor/cdp.js.map +1 -1
  391. package/dist/core/computer/motor/config.d.ts.map +1 -1
  392. package/dist/core/computer/motor/config.js.map +1 -1
  393. package/dist/core/computer/motor/contract.d.ts.map +1 -1
  394. package/dist/core/computer/motor/contract.js.map +1 -1
  395. package/dist/core/computer/motor/note.d.ts.map +1 -1
  396. package/dist/core/computer/motor/note.js.map +1 -1
  397. package/dist/core/computer/motor/outline.d.ts.map +1 -1
  398. package/dist/core/computer/motor/outline.js.map +1 -1
  399. package/dist/core/computer/motor/output.d.ts.map +1 -1
  400. package/dist/core/computer/motor/output.js.map +1 -1
  401. package/dist/core/computer/motor/permissions.d.ts.map +1 -1
  402. package/dist/core/computer/motor/permissions.js.map +1 -1
  403. package/dist/core/computer/motor/platform/architecture.d.ts.map +1 -1
  404. package/dist/core/computer/motor/platform/architecture.js.map +1 -1
  405. package/dist/core/computer/motor/platform/coerce.d.ts.map +1 -1
  406. package/dist/core/computer/motor/platform/coerce.js.map +1 -1
  407. package/dist/core/computer/motor/platform/index.d.ts.map +1 -1
  408. package/dist/core/computer/motor/platform/index.js.map +1 -1
  409. package/dist/core/computer/motor/platform/linux/backend.d.ts.map +1 -1
  410. package/dist/core/computer/motor/platform/linux/backend.js.map +1 -1
  411. package/dist/core/computer/motor/platform/linux/helper.d.ts.map +1 -1
  412. package/dist/core/computer/motor/platform/linux/helper.js.map +1 -1
  413. package/dist/core/computer/motor/platform/macos/backend.d.ts.map +1 -1
  414. package/dist/core/computer/motor/platform/macos/backend.js.map +1 -1
  415. package/dist/core/computer/motor/platform/macos/browser.d.ts.map +1 -1
  416. package/dist/core/computer/motor/platform/macos/browser.js.map +1 -1
  417. package/dist/core/computer/motor/platform/macos/helper.d.ts.map +1 -1
  418. package/dist/core/computer/motor/platform/macos/helper.js.map +1 -1
  419. package/dist/core/computer/motor/platform/macos/permissions.d.ts.map +1 -1
  420. package/dist/core/computer/motor/platform/macos/permissions.js.map +1 -1
  421. package/dist/core/computer/motor/platform/types.d.ts.map +1 -1
  422. package/dist/core/computer/motor/platform/types.js.map +1 -1
  423. package/dist/core/computer/motor/platform/windows/backend.d.ts.map +1 -1
  424. package/dist/core/computer/motor/platform/windows/backend.js.map +1 -1
  425. package/dist/core/computer/motor/platform/windows/helper.d.ts.map +1 -1
  426. package/dist/core/computer/motor/platform/windows/helper.js.map +1 -1
  427. package/dist/core/computer/motor/root-selection.d.ts.map +1 -1
  428. package/dist/core/computer/motor/root-selection.js.map +1 -1
  429. package/dist/core/computer/motor/runtime.d.ts.map +1 -1
  430. package/dist/core/computer/motor/runtime.js.map +1 -1
  431. package/dist/core/computer/motor/state.d.ts.map +1 -1
  432. package/dist/core/computer/motor/state.js.map +1 -1
  433. package/dist/core/computer/motor/view.d.ts.map +1 -1
  434. package/dist/core/computer/motor/view.js.map +1 -1
  435. package/dist/core/computer/motor-ada.d.ts.map +1 -1
  436. package/dist/core/computer/motor-ada.js.map +1 -1
  437. package/dist/core/computer/politica.d.ts.map +1 -1
  438. package/dist/core/computer/politica.js.map +1 -1
  439. package/dist/core/computer/tools.d.ts.map +1 -1
  440. package/dist/core/computer/tools.js.map +1 -1
  441. package/dist/core/config/quarantine.d.ts +57 -0
  442. package/dist/core/config/quarantine.d.ts.map +1 -0
  443. package/dist/core/config/quarantine.js +161 -0
  444. package/dist/core/config/quarantine.js.map +1 -0
  445. package/dist/core/config-viva/ambito.d.ts +46 -0
  446. package/dist/core/config-viva/ambito.d.ts.map +1 -0
  447. package/dist/core/config-viva/ambito.js +62 -0
  448. package/dist/core/config-viva/ambito.js.map +1 -0
  449. package/dist/core/config-viva/cache-negativa.d.ts +50 -0
  450. package/dist/core/config-viva/cache-negativa.d.ts.map +1 -0
  451. package/dist/core/config-viva/cache-negativa.js +78 -0
  452. package/dist/core/config-viva/cache-negativa.js.map +1 -0
  453. package/dist/core/config-viva/headers-vivos.d.ts +41 -0
  454. package/dist/core/config-viva/headers-vivos.d.ts.map +1 -0
  455. package/dist/core/config-viva/headers-vivos.js +43 -0
  456. package/dist/core/config-viva/headers-vivos.js.map +1 -0
  457. package/dist/core/config-viva/index.d.ts +16 -0
  458. package/dist/core/config-viva/index.d.ts.map +1 -0
  459. package/dist/core/config-viva/index.js +16 -0
  460. package/dist/core/config-viva/index.js.map +1 -0
  461. package/dist/core/config-viva/proveedor.d.ts +48 -0
  462. package/dist/core/config-viva/proveedor.d.ts.map +1 -0
  463. package/dist/core/config-viva/proveedor.js +78 -0
  464. package/dist/core/config-viva/proveedor.js.map +1 -0
  465. package/dist/core/context-breakdown.d.ts.map +1 -1
  466. package/dist/core/context-breakdown.js.map +1 -1
  467. package/dist/core/credenciales/cliente.d.ts.map +1 -1
  468. package/dist/core/credenciales/cliente.js.map +1 -1
  469. package/dist/core/credenciales/pool.d.ts +36 -1
  470. package/dist/core/credenciales/pool.d.ts.map +1 -1
  471. package/dist/core/credenciales/pool.js +56 -7
  472. package/dist/core/credenciales/pool.js.map +1 -1
  473. package/dist/core/credenciales/ranking.d.ts +56 -0
  474. package/dist/core/credenciales/ranking.d.ts.map +1 -0
  475. package/dist/core/credenciales/ranking.js +94 -0
  476. package/dist/core/credenciales/ranking.js.map +1 -0
  477. package/dist/core/credenciales/ratelimit.d.ts +54 -0
  478. package/dist/core/credenciales/ratelimit.d.ts.map +1 -0
  479. package/dist/core/credenciales/ratelimit.js +116 -0
  480. package/dist/core/credenciales/ratelimit.js.map +1 -0
  481. package/dist/core/credenciales/reposo.d.ts.map +1 -1
  482. package/dist/core/credenciales/reposo.js.map +1 -1
  483. package/dist/core/credenciales/servidor.d.ts +8 -0
  484. package/dist/core/credenciales/servidor.d.ts.map +1 -1
  485. package/dist/core/credenciales/servidor.js +9 -1
  486. package/dist/core/credenciales/servidor.js.map +1 -1
  487. package/dist/core/defaults.d.ts.map +1 -1
  488. package/dist/core/defaults.js.map +1 -1
  489. package/dist/core/descubrimiento/comandos.d.ts.map +1 -1
  490. package/dist/core/descubrimiento/comandos.js.map +1 -1
  491. package/dist/core/descubrimiento/mcp.d.ts +12 -0
  492. package/dist/core/descubrimiento/mcp.d.ts.map +1 -1
  493. package/dist/core/descubrimiento/mcp.js +32 -0
  494. package/dist/core/descubrimiento/mcp.js.map +1 -1
  495. package/dist/core/descubrimiento/reglas.d.ts.map +1 -1
  496. package/dist/core/descubrimiento/reglas.js.map +1 -1
  497. package/dist/core/descubrimiento/runtimes/index.d.ts +24 -0
  498. package/dist/core/descubrimiento/runtimes/index.d.ts.map +1 -0
  499. package/dist/core/descubrimiento/runtimes/index.js +109 -0
  500. package/dist/core/descubrimiento/runtimes/index.js.map +1 -0
  501. package/dist/core/descubrimiento/runtimes/litellm.d.ts +12 -0
  502. package/dist/core/descubrimiento/runtimes/litellm.d.ts.map +1 -0
  503. package/dist/core/descubrimiento/runtimes/litellm.js +185 -0
  504. package/dist/core/descubrimiento/runtimes/litellm.js.map +1 -0
  505. package/dist/core/descubrimiento/runtimes/lm-studio.d.ts +13 -0
  506. package/dist/core/descubrimiento/runtimes/lm-studio.d.ts.map +1 -0
  507. package/dist/core/descubrimiento/runtimes/lm-studio.js +142 -0
  508. package/dist/core/descubrimiento/runtimes/lm-studio.js.map +1 -0
  509. package/dist/core/descubrimiento/runtimes/ollama.d.ts +8 -0
  510. package/dist/core/descubrimiento/runtimes/ollama.d.ts.map +1 -0
  511. package/dist/core/descubrimiento/runtimes/ollama.js +96 -0
  512. package/dist/core/descubrimiento/runtimes/ollama.js.map +1 -0
  513. package/dist/core/descubrimiento/runtimes/tipos.d.ts +47 -0
  514. package/dist/core/descubrimiento/runtimes/tipos.d.ts.map +1 -0
  515. package/dist/core/descubrimiento/runtimes/tipos.js +10 -0
  516. package/dist/core/descubrimiento/runtimes/tipos.js.map +1 -0
  517. package/dist/core/descubrimiento/skills.d.ts.map +1 -1
  518. package/dist/core/descubrimiento/skills.js.map +1 -1
  519. package/dist/core/diagnostics.d.ts.map +1 -1
  520. package/dist/core/diagnostics.js.map +1 -1
  521. package/dist/core/dificultad/clasificador.d.ts.map +1 -1
  522. package/dist/core/dificultad/clasificador.js.map +1 -1
  523. package/dist/core/edicion/diario.d.ts.map +1 -1
  524. package/dist/core/edicion/diario.js.map +1 -1
  525. package/dist/core/edicion/hashline.d.ts.map +1 -1
  526. package/dist/core/edicion/hashline.js.map +1 -1
  527. package/dist/core/edicion/hueco.d.ts.map +1 -1
  528. package/dist/core/edicion/hueco.js.map +1 -1
  529. package/dist/core/edicion/ipynb.d.ts +51 -0
  530. package/dist/core/edicion/ipynb.d.ts.map +1 -0
  531. package/dist/core/edicion/ipynb.js +110 -0
  532. package/dist/core/edicion/ipynb.js.map +1 -0
  533. package/dist/core/edicion/limpiar-carga.d.ts.map +1 -1
  534. package/dist/core/edicion/limpiar-carga.js.map +1 -1
  535. package/dist/core/edicion/observador.d.ts.map +1 -1
  536. package/dist/core/edicion/observador.js.map +1 -1
  537. package/dist/core/edicion/parecido.d.ts.map +1 -1
  538. package/dist/core/edicion/parecido.js.map +1 -1
  539. package/dist/core/edicion/parseo.d.ts.map +1 -1
  540. package/dist/core/edicion/parseo.js.map +1 -1
  541. package/dist/core/edicion/portapapeles.d.ts +28 -0
  542. package/dist/core/edicion/portapapeles.d.ts.map +1 -0
  543. package/dist/core/edicion/portapapeles.js +49 -0
  544. package/dist/core/edicion/portapapeles.js.map +1 -0
  545. package/dist/core/edicion/reparacion.d.ts.map +1 -1
  546. package/dist/core/edicion/reparacion.js.map +1 -1
  547. package/dist/core/edicion/rutas-difusas.d.ts +44 -0
  548. package/dist/core/edicion/rutas-difusas.d.ts.map +1 -0
  549. package/dist/core/edicion/rutas-difusas.js +93 -0
  550. package/dist/core/edicion/rutas-difusas.js.map +1 -0
  551. package/dist/core/edicion/sangria.d.ts.map +1 -1
  552. package/dist/core/edicion/sangria.js.map +1 -1
  553. package/dist/core/edicion/tipos.d.ts.map +1 -1
  554. package/dist/core/edicion/tipos.js.map +1 -1
  555. package/dist/core/engine-personality.d.ts.map +1 -1
  556. package/dist/core/engine-personality.js.map +1 -1
  557. package/dist/core/errores/proveedor.d.ts.map +1 -1
  558. package/dist/core/errores/proveedor.js.map +1 -1
  559. package/dist/core/estructural/buscar.d.ts.map +1 -1
  560. package/dist/core/estructural/buscar.js.map +1 -1
  561. package/dist/core/estructural/editar.d.ts.map +1 -1
  562. package/dist/core/estructural/editar.js.map +1 -1
  563. package/dist/core/estructural/tools.d.ts.map +1 -1
  564. package/dist/core/estructural/tools.js.map +1 -1
  565. package/dist/core/event-bus.d.ts.map +1 -1
  566. package/dist/core/event-bus.js.map +1 -1
  567. package/dist/core/exec.d.ts.map +1 -1
  568. package/dist/core/exec.js.map +1 -1
  569. package/dist/core/experimental.d.ts.map +1 -1
  570. package/dist/core/experimental.js.map +1 -1
  571. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  572. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  573. package/dist/core/export-html/index.d.ts.map +1 -1
  574. package/dist/core/export-html/index.js +183 -13
  575. package/dist/core/export-html/index.js.map +1 -1
  576. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  577. package/dist/core/export-html/tool-renderer.js.map +1 -1
  578. package/dist/core/extensiones/suplantacion.d.ts.map +1 -1
  579. package/dist/core/extensiones/suplantacion.js.map +1 -1
  580. package/dist/core/extensiones/vigilancia.d.ts.map +1 -1
  581. package/dist/core/extensiones/vigilancia.js.map +1 -1
  582. package/dist/core/extensions/index.d.ts.map +1 -1
  583. package/dist/core/extensions/index.js.map +1 -1
  584. package/dist/core/extensions/loader.d.ts.map +1 -1
  585. package/dist/core/extensions/loader.js.map +1 -1
  586. package/dist/core/extensions/runner.d.ts.map +1 -1
  587. package/dist/core/extensions/runner.js.map +1 -1
  588. package/dist/core/extensions/types.d.ts.map +1 -1
  589. package/dist/core/extensions/types.js.map +1 -1
  590. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  591. package/dist/core/extensions/wrapper.js.map +1 -1
  592. package/dist/core/footer-data-provider.d.ts.map +1 -1
  593. package/dist/core/footer-data-provider.js.map +1 -1
  594. package/dist/core/gc/archivo-frio.d.ts +33 -0
  595. package/dist/core/gc/archivo-frio.d.ts.map +1 -0
  596. package/dist/core/gc/archivo-frio.js +152 -0
  597. package/dist/core/gc/archivo-frio.js.map +1 -0
  598. package/dist/core/gc/blobs-gc.d.ts +25 -0
  599. package/dist/core/gc/blobs-gc.d.ts.map +1 -0
  600. package/dist/core/gc/blobs-gc.js +143 -0
  601. package/dist/core/gc/blobs-gc.js.map +1 -0
  602. package/dist/core/gc/index.d.ts +42 -0
  603. package/dist/core/gc/index.d.ts.map +1 -0
  604. package/dist/core/gc/index.js +50 -0
  605. package/dist/core/gc/index.js.map +1 -0
  606. package/dist/core/gc/lock.d.ts +19 -0
  607. package/dist/core/gc/lock.d.ts.map +1 -0
  608. package/dist/core/gc/lock.js +48 -0
  609. package/dist/core/gc/lock.js.map +1 -0
  610. package/dist/core/gc/reconciliacion.d.ts +19 -0
  611. package/dist/core/gc/reconciliacion.d.ts.map +1 -0
  612. package/dist/core/gc/reconciliacion.js +102 -0
  613. package/dist/core/gc/reconciliacion.js.map +1 -0
  614. package/dist/core/gc/wal.d.ts +15 -0
  615. package/dist/core/gc/wal.d.ts.map +1 -0
  616. package/dist/core/gc/wal.js +44 -0
  617. package/dist/core/gc/wal.js.map +1 -0
  618. package/dist/core/harness/fuentes-de-contexto.d.ts.map +1 -1
  619. package/dist/core/harness/fuentes-de-contexto.js.map +1 -1
  620. package/dist/core/harness/refine.d.ts.map +1 -1
  621. package/dist/core/harness/refine.js.map +1 -1
  622. package/dist/core/harness/store.d.ts.map +1 -1
  623. package/dist/core/harness/store.js.map +1 -1
  624. package/dist/core/higiene/index.d.ts +8 -0
  625. package/dist/core/higiene/index.d.ts.map +1 -0
  626. package/dist/core/higiene/index.js +8 -0
  627. package/dist/core/higiene/index.js.map +1 -0
  628. package/dist/core/higiene/managed-timers.d.ts +19 -0
  629. package/dist/core/higiene/managed-timers.d.ts.map +1 -0
  630. package/dist/core/higiene/managed-timers.js +68 -0
  631. package/dist/core/higiene/managed-timers.js.map +1 -0
  632. package/dist/core/higiene/race-handler.d.ts +7 -0
  633. package/dist/core/higiene/race-handler.d.ts.map +1 -0
  634. package/dist/core/higiene/race-handler.js +32 -0
  635. package/dist/core/higiene/race-handler.js.map +1 -0
  636. package/dist/core/higiene/withHostGuard.d.ts +27 -0
  637. package/dist/core/higiene/withHostGuard.d.ts.map +1 -0
  638. package/dist/core/higiene/withHostGuard.js +79 -0
  639. package/dist/core/higiene/withHostGuard.js.map +1 -0
  640. package/dist/core/hooks/contract.d.ts.map +1 -1
  641. package/dist/core/hooks/contract.js.map +1 -1
  642. package/dist/core/hooks/runner.d.ts.map +1 -1
  643. package/dist/core/hooks/runner.js.map +1 -1
  644. package/dist/core/hooks/session-hooks.d.ts.map +1 -1
  645. package/dist/core/hooks/session-hooks.js.map +1 -1
  646. package/dist/core/hooks-ts/cargador.d.ts +29 -0
  647. package/dist/core/hooks-ts/cargador.d.ts.map +1 -0
  648. package/dist/core/hooks-ts/cargador.js +51 -0
  649. package/dist/core/hooks-ts/cargador.js.map +1 -0
  650. package/dist/core/hooks-ts/index.d.ts +25 -0
  651. package/dist/core/hooks-ts/index.d.ts.map +1 -0
  652. package/dist/core/hooks-ts/index.js +25 -0
  653. package/dist/core/hooks-ts/index.js.map +1 -0
  654. package/dist/core/hooks-ts/runner.d.ts +40 -0
  655. package/dist/core/hooks-ts/runner.d.ts.map +1 -0
  656. package/dist/core/hooks-ts/runner.js +95 -0
  657. package/dist/core/hooks-ts/runner.js.map +1 -0
  658. package/dist/core/hooks-ts/tipos.d.ts +69 -0
  659. package/dist/core/hooks-ts/tipos.d.ts.map +1 -0
  660. package/dist/core/hooks-ts/tipos.js +90 -0
  661. package/dist/core/hooks-ts/tipos.js.map +1 -0
  662. package/dist/core/http-dispatcher.d.ts.map +1 -1
  663. package/dist/core/http-dispatcher.js.map +1 -1
  664. package/dist/core/importar/formatos.d.ts.map +1 -1
  665. package/dist/core/importar/formatos.js.map +1 -1
  666. package/dist/core/index.d.ts.map +1 -1
  667. package/dist/core/index.js.map +1 -1
  668. package/dist/core/interactivo/deteccion.d.ts.map +1 -1
  669. package/dist/core/interactivo/deteccion.js.map +1 -1
  670. package/dist/core/interactivo/sesion.d.ts.map +1 -1
  671. package/dist/core/interactivo/sesion.js.map +1 -1
  672. package/dist/core/interactivo/tools.d.ts.map +1 -1
  673. package/dist/core/interactivo/tools.js.map +1 -1
  674. package/dist/core/keybindings.d.ts +170 -170
  675. package/dist/core/keybindings.d.ts.map +1 -1
  676. package/dist/core/keybindings.js.map +1 -1
  677. package/dist/core/lectura/mapa.d.ts.map +1 -1
  678. package/dist/core/lectura/mapa.js.map +1 -1
  679. package/dist/core/lectura/pdf.d.ts.map +1 -1
  680. package/dist/core/lectura/pdf.js.map +1 -1
  681. package/dist/core/lectura/sniffer.d.ts +54 -0
  682. package/dist/core/lectura/sniffer.d.ts.map +1 -0
  683. package/dist/core/lectura/sniffer.js +106 -0
  684. package/dist/core/lectura/sniffer.js.map +1 -0
  685. package/dist/core/limpieza/comprobadores.d.ts +16 -2
  686. package/dist/core/limpieza/comprobadores.d.ts.map +1 -1
  687. package/dist/core/limpieza/comprobadores.js +200 -6
  688. package/dist/core/limpieza/comprobadores.js.map +1 -1
  689. package/dist/core/limpieza/flujo.d.ts +36 -0
  690. package/dist/core/limpieza/flujo.d.ts.map +1 -0
  691. package/dist/core/limpieza/flujo.js +89 -0
  692. package/dist/core/limpieza/flujo.js.map +1 -0
  693. package/dist/core/limpieza/parseo.d.ts.map +1 -1
  694. package/dist/core/limpieza/parseo.js.map +1 -1
  695. package/dist/core/limpieza/peso.d.ts +17 -0
  696. package/dist/core/limpieza/peso.d.ts.map +1 -0
  697. package/dist/core/limpieza/peso.js +52 -0
  698. package/dist/core/limpieza/peso.js.map +1 -0
  699. package/dist/core/limpieza/pool.d.ts +44 -0
  700. package/dist/core/limpieza/pool.d.ts.map +1 -0
  701. package/dist/core/limpieza/pool.js +123 -0
  702. package/dist/core/limpieza/pool.js.map +1 -0
  703. package/dist/core/limpieza/reparacion.d.ts +19 -2
  704. package/dist/core/limpieza/reparacion.d.ts.map +1 -1
  705. package/dist/core/limpieza/reparacion.js +95 -8
  706. package/dist/core/limpieza/reparacion.js.map +1 -1
  707. package/dist/core/limpieza/tablero.d.ts +47 -0
  708. package/dist/core/limpieza/tablero.d.ts.map +1 -0
  709. package/dist/core/limpieza/tablero.js +78 -0
  710. package/dist/core/limpieza/tablero.js.map +1 -0
  711. package/dist/core/limpieza/tipos.d.ts +25 -0
  712. package/dist/core/limpieza/tipos.d.ts.map +1 -1
  713. package/dist/core/limpieza/tipos.js.map +1 -1
  714. package/dist/core/lsp/cliente.d.ts +7 -0
  715. package/dist/core/lsp/cliente.d.ts.map +1 -1
  716. package/dist/core/lsp/cliente.js +4 -2
  717. package/dist/core/lsp/cliente.js.map +1 -1
  718. package/dist/core/lsp/descubrimiento.d.ts.map +1 -1
  719. package/dist/core/lsp/descubrimiento.js.map +1 -1
  720. package/dist/core/lsp/ediciones.d.ts.map +1 -1
  721. package/dist/core/lsp/ediciones.js.map +1 -1
  722. package/dist/core/lsp/extension.d.ts +9 -0
  723. package/dist/core/lsp/extension.d.ts.map +1 -1
  724. package/dist/core/lsp/extension.js +60 -4
  725. package/dist/core/lsp/extension.js.map +1 -1
  726. package/dist/core/lsp/formato.d.ts +72 -0
  727. package/dist/core/lsp/formato.d.ts.map +1 -0
  728. package/dist/core/lsp/formato.js +117 -0
  729. package/dist/core/lsp/formato.js.map +1 -0
  730. package/dist/core/lsp/tools.d.ts +3 -3
  731. package/dist/core/lsp/tools.d.ts.map +1 -1
  732. package/dist/core/lsp/tools.js.map +1 -1
  733. package/dist/core/lsp/writethrough.d.ts +165 -0
  734. package/dist/core/lsp/writethrough.d.ts.map +1 -0
  735. package/dist/core/lsp/writethrough.js +282 -0
  736. package/dist/core/lsp/writethrough.js.map +1 -0
  737. package/dist/core/marketplace/catalogo.d.ts +32 -0
  738. package/dist/core/marketplace/catalogo.d.ts.map +1 -0
  739. package/dist/core/marketplace/catalogo.js +122 -0
  740. package/dist/core/marketplace/catalogo.js.map +1 -0
  741. package/dist/core/marketplace/doctor.d.ts +47 -0
  742. package/dist/core/marketplace/doctor.d.ts.map +1 -0
  743. package/dist/core/marketplace/doctor.js +155 -0
  744. package/dist/core/marketplace/doctor.js.map +1 -0
  745. package/dist/core/marketplace/features.d.ts +22 -0
  746. package/dist/core/marketplace/features.d.ts.map +1 -0
  747. package/dist/core/marketplace/features.js +70 -0
  748. package/dist/core/marketplace/features.js.map +1 -0
  749. package/dist/core/marketplace/index.d.ts +33 -0
  750. package/dist/core/marketplace/index.d.ts.map +1 -0
  751. package/dist/core/marketplace/index.js +33 -0
  752. package/dist/core/marketplace/index.js.map +1 -0
  753. package/dist/core/marketplace/instalar.d.ts +27 -0
  754. package/dist/core/marketplace/instalar.d.ts.map +1 -0
  755. package/dist/core/marketplace/instalar.js +50 -0
  756. package/dist/core/marketplace/instalar.js.map +1 -0
  757. package/dist/core/mcp/client.d.ts.map +1 -1
  758. package/dist/core/mcp/client.js.map +1 -1
  759. package/dist/core/mcp/manager.d.ts.map +1 -1
  760. package/dist/core/mcp/manager.js.map +1 -1
  761. package/dist/core/mcp/oauth.d.ts +138 -0
  762. package/dist/core/mcp/oauth.d.ts.map +1 -0
  763. package/dist/core/mcp/oauth.js +348 -0
  764. package/dist/core/mcp/oauth.js.map +1 -0
  765. package/dist/core/mcp/tools.d.ts.map +1 -1
  766. package/dist/core/mcp/tools.js.map +1 -1
  767. package/dist/core/memoria/almacen.d.ts +56 -0
  768. package/dist/core/memoria/almacen.d.ts.map +1 -0
  769. package/dist/core/memoria/almacen.js +214 -0
  770. package/dist/core/memoria/almacen.js.map +1 -0
  771. package/dist/core/memoria/dr/respaldo.d.ts +34 -0
  772. package/dist/core/memoria/dr/respaldo.d.ts.map +1 -0
  773. package/dist/core/memoria/dr/respaldo.js +133 -0
  774. package/dist/core/memoria/dr/respaldo.js.map +1 -0
  775. package/dist/core/memoria/embeddings.d.ts +21 -0
  776. package/dist/core/memoria/embeddings.d.ts.map +1 -0
  777. package/dist/core/memoria/embeddings.js +87 -0
  778. package/dist/core/memoria/embeddings.js.map +1 -0
  779. package/dist/core/memoria/grafo.d.ts +56 -0
  780. package/dist/core/memoria/grafo.d.ts.map +1 -0
  781. package/dist/core/memoria/grafo.js +143 -0
  782. package/dist/core/memoria/grafo.js.map +1 -0
  783. package/dist/core/memoria/redaccion.d.ts +32 -0
  784. package/dist/core/memoria/redaccion.d.ts.map +1 -0
  785. package/dist/core/memoria/redaccion.js +76 -0
  786. package/dist/core/memoria/redaccion.js.map +1 -0
  787. package/dist/core/memoria/servidor/almacen-json.d.ts +26 -0
  788. package/dist/core/memoria/servidor/almacen-json.d.ts.map +1 -0
  789. package/dist/core/memoria/servidor/almacen-json.js +90 -0
  790. package/dist/core/memoria/servidor/almacen-json.js.map +1 -0
  791. package/dist/core/memoria/servidor/servidor.d.ts +43 -0
  792. package/dist/core/memoria/servidor/servidor.d.ts.map +1 -0
  793. package/dist/core/memoria/servidor/servidor.js +195 -0
  794. package/dist/core/memoria/servidor/servidor.js.map +1 -0
  795. package/dist/core/memoria/servidor/tipos.d.ts +44 -0
  796. package/dist/core/memoria/servidor/tipos.d.ts.map +1 -0
  797. package/dist/core/memoria/servidor/tipos.js +12 -0
  798. package/dist/core/memoria/servidor/tipos.js.map +1 -0
  799. package/dist/core/memoria/tipos.d.ts +63 -0
  800. package/dist/core/memoria/tipos.d.ts.map +1 -0
  801. package/dist/core/memoria/tipos.js +14 -0
  802. package/dist/core/memoria/tipos.js.map +1 -0
  803. package/dist/core/memory-engine/audit-export.d.ts.map +1 -1
  804. package/dist/core/memory-engine/audit-export.js.map +1 -1
  805. package/dist/core/memory-engine/audit-indice.d.ts.map +1 -1
  806. package/dist/core/memory-engine/audit-indice.js.map +1 -1
  807. package/dist/core/memory-engine/audit.d.ts.map +1 -1
  808. package/dist/core/memory-engine/audit.js.map +1 -1
  809. package/dist/core/memory-engine/engine.d.ts +7 -0
  810. package/dist/core/memory-engine/engine.d.ts.map +1 -1
  811. package/dist/core/memory-engine/engine.js.map +1 -1
  812. package/dist/core/memory-engine/inverted-index.d.ts.map +1 -1
  813. package/dist/core/memory-engine/inverted-index.js.map +1 -1
  814. package/dist/core/memory-engine/keychain.d.ts.map +1 -1
  815. package/dist/core/memory-engine/keychain.js.map +1 -1
  816. package/dist/core/memory-engine/observation-store.d.ts +1 -0
  817. package/dist/core/memory-engine/observation-store.d.ts.map +1 -1
  818. package/dist/core/memory-engine/observation-store.js.map +1 -1
  819. package/dist/core/memory-engine/refinements.d.ts.map +1 -1
  820. package/dist/core/memory-engine/refinements.js.map +1 -1
  821. package/dist/core/memory-engine/scanner.d.ts.map +1 -1
  822. package/dist/core/memory-engine/scanner.js.map +1 -1
  823. package/dist/core/memory-engine/security.d.ts.map +1 -1
  824. package/dist/core/memory-engine/security.js.map +1 -1
  825. package/dist/core/memory-engine/session-indexer.d.ts.map +1 -1
  826. package/dist/core/memory-engine/session-indexer.js.map +1 -1
  827. package/dist/core/memory-engine/tools.d.ts.map +1 -1
  828. package/dist/core/memory-engine/tools.js.map +1 -1
  829. package/dist/core/memory-engine/types.d.ts.map +1 -1
  830. package/dist/core/memory-engine/types.js.map +1 -1
  831. package/dist/core/memory-engine/vault.d.ts.map +1 -1
  832. package/dist/core/memory-engine/vault.js.map +1 -1
  833. package/dist/core/messages.d.ts.map +1 -1
  834. package/dist/core/messages.js.map +1 -1
  835. package/dist/core/metaharness/cli.d.ts +19 -0
  836. package/dist/core/metaharness/cli.d.ts.map +1 -0
  837. package/dist/core/metaharness/cli.js +171 -0
  838. package/dist/core/metaharness/cli.js.map +1 -0
  839. package/dist/core/metaharness/comparar.d.ts +21 -0
  840. package/dist/core/metaharness/comparar.d.ts.map +1 -0
  841. package/dist/core/metaharness/comparar.js +64 -0
  842. package/dist/core/metaharness/comparar.js.map +1 -0
  843. package/dist/core/metaharness/ejecutar.d.ts +70 -0
  844. package/dist/core/metaharness/ejecutar.d.ts.map +1 -0
  845. package/dist/core/metaharness/ejecutar.js +249 -0
  846. package/dist/core/metaharness/ejecutar.js.map +1 -0
  847. package/dist/core/metaharness/tipos.d.ts +142 -0
  848. package/dist/core/metaharness/tipos.d.ts.map +1 -0
  849. package/dist/core/metaharness/tipos.js +17 -0
  850. package/dist/core/metaharness/tipos.js.map +1 -0
  851. package/dist/core/model-config.d.ts +8 -8
  852. package/dist/core/model-config.d.ts.map +1 -1
  853. package/dist/core/model-config.js.map +1 -1
  854. package/dist/core/model-registry.d.ts.map +1 -1
  855. package/dist/core/model-registry.js.map +1 -1
  856. package/dist/core/model-resolver.d.ts.map +1 -1
  857. package/dist/core/model-resolver.js.map +1 -1
  858. package/dist/core/model-runtime.d.ts.map +1 -1
  859. package/dist/core/model-runtime.js.map +1 -1
  860. package/dist/core/models-store.d.ts.map +1 -1
  861. package/dist/core/models-store.js.map +1 -1
  862. package/dist/core/muestreo-restringido.d.ts.map +1 -1
  863. package/dist/core/muestreo-restringido.js.map +1 -1
  864. package/dist/core/orphan-process-journal.d.ts.map +1 -1
  865. package/dist/core/orphan-process-journal.js.map +1 -1
  866. package/dist/core/output-guard.d.ts.map +1 -1
  867. package/dist/core/output-guard.js.map +1 -1
  868. package/dist/core/package-manager.d.ts.map +1 -1
  869. package/dist/core/package-manager.js.map +1 -1
  870. package/dist/core/parche/aplicar.d.ts +19 -0
  871. package/dist/core/parche/aplicar.d.ts.map +1 -0
  872. package/dist/core/parche/aplicar.js +243 -0
  873. package/dist/core/parche/aplicar.js.map +1 -0
  874. package/dist/core/parche/parser.d.ts +38 -0
  875. package/dist/core/parche/parser.d.ts.map +1 -0
  876. package/dist/core/parche/parser.js +217 -0
  877. package/dist/core/parche/parser.js.map +1 -0
  878. package/dist/core/parche/registro.d.ts +12 -0
  879. package/dist/core/parche/registro.d.ts.map +1 -0
  880. package/dist/core/parche/registro.js +58 -0
  881. package/dist/core/parche/registro.js.map +1 -0
  882. package/dist/core/perfiles/index.d.ts +22 -0
  883. package/dist/core/perfiles/index.d.ts.map +1 -0
  884. package/dist/core/perfiles/index.js +21 -0
  885. package/dist/core/perfiles/index.js.map +1 -0
  886. package/dist/core/perfiles/resolver.d.ts +51 -0
  887. package/dist/core/perfiles/resolver.d.ts.map +1 -0
  888. package/dist/core/perfiles/resolver.js +329 -0
  889. package/dist/core/perfiles/resolver.js.map +1 -0
  890. package/dist/core/perfiles/tipos.d.ts +69 -0
  891. package/dist/core/perfiles/tipos.d.ts.map +1 -0
  892. package/dist/core/perfiles/tipos.js +98 -0
  893. package/dist/core/perfiles/tipos.js.map +1 -0
  894. package/dist/core/pi-manifest.d.ts.map +1 -1
  895. package/dist/core/pi-manifest.js.map +1 -1
  896. package/dist/core/privacidad/categorias-especiales.d.ts.map +1 -1
  897. package/dist/core/privacidad/categorias-especiales.js +4 -0
  898. package/dist/core/privacidad/categorias-especiales.js.map +1 -1
  899. package/dist/core/privacidad/tapar.d.ts.map +1 -1
  900. package/dist/core/privacidad/tapar.js.map +1 -1
  901. package/dist/core/project-memory.d.ts.map +1 -1
  902. package/dist/core/project-memory.js.map +1 -1
  903. package/dist/core/project-trust.d.ts.map +1 -1
  904. package/dist/core/project-trust.js.map +1 -1
  905. package/dist/core/prompt-cache/diagnostics.d.ts.map +1 -1
  906. package/dist/core/prompt-cache/diagnostics.js.map +1 -1
  907. package/dist/core/prompt-cache/index.d.ts.map +1 -1
  908. package/dist/core/prompt-cache/index.js.map +1 -1
  909. package/dist/core/prompt-cache/payload.d.ts.map +1 -1
  910. package/dist/core/prompt-cache/payload.js.map +1 -1
  911. package/dist/core/prompt-cache/stabilize.d.ts.map +1 -1
  912. package/dist/core/prompt-cache/stabilize.js.map +1 -1
  913. package/dist/core/prompt-cache/stats.d.ts.map +1 -1
  914. package/dist/core/prompt-cache/stats.js.map +1 -1
  915. package/dist/core/prompt-eleccion.d.ts.map +1 -1
  916. package/dist/core/prompt-eleccion.js.map +1 -1
  917. package/dist/core/prompt-optimizer.d.ts.map +1 -1
  918. package/dist/core/prompt-optimizer.js.map +1 -1
  919. package/dist/core/prompt-templates.d.ts.map +1 -1
  920. package/dist/core/prompt-templates.js.map +1 -1
  921. package/dist/core/prompts/montar.d.ts.map +1 -1
  922. package/dist/core/prompts/montar.js.map +1 -1
  923. package/dist/core/prompts/plantilla.d.ts.map +1 -1
  924. package/dist/core/prompts/plantilla.js.map +1 -1
  925. package/dist/core/proveedores-registry/definiciones.d.ts +15 -0
  926. package/dist/core/proveedores-registry/definiciones.d.ts.map +1 -0
  927. package/dist/core/proveedores-registry/definiciones.js +22 -0
  928. package/dist/core/proveedores-registry/definiciones.js.map +1 -0
  929. package/dist/core/proveedores-registry/index.d.ts +14 -0
  930. package/dist/core/proveedores-registry/index.d.ts.map +1 -0
  931. package/dist/core/proveedores-registry/index.js +13 -0
  932. package/dist/core/proveedores-registry/index.js.map +1 -0
  933. package/dist/core/proveedores-registry/resolver.d.ts +25 -0
  934. package/dist/core/proveedores-registry/resolver.d.ts.map +1 -0
  935. package/dist/core/proveedores-registry/resolver.js +69 -0
  936. package/dist/core/proveedores-registry/resolver.js.map +1 -0
  937. package/dist/core/proveedores-registry/tipos.d.ts +47 -0
  938. package/dist/core/proveedores-registry/tipos.d.ts.map +1 -0
  939. package/dist/core/proveedores-registry/tipos.js +15 -0
  940. package/dist/core/proveedores-registry/tipos.js.map +1 -0
  941. package/dist/core/provider-attribution.d.ts.map +1 -1
  942. package/dist/core/provider-attribution.js.map +1 -1
  943. package/dist/core/provider-composer.d.ts.map +1 -1
  944. package/dist/core/provider-composer.js.map +1 -1
  945. package/dist/core/radius.d.ts.map +1 -1
  946. package/dist/core/radius.js.map +1 -1
  947. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  948. package/dist/core/remote-catalog-provider.js.map +1 -1
  949. package/dist/core/remoto/destino.d.ts.map +1 -1
  950. package/dist/core/remoto/destino.js.map +1 -1
  951. package/dist/core/remoto/ejecutor.d.ts.map +1 -1
  952. package/dist/core/remoto/ejecutor.js.map +1 -1
  953. package/dist/core/remoto/ficheros.d.ts.map +1 -1
  954. package/dist/core/remoto/ficheros.js.map +1 -1
  955. package/dist/core/remoto/registro-extension.d.ts.map +1 -1
  956. package/dist/core/remoto/registro-extension.js.map +1 -1
  957. package/dist/core/remoto/tools.d.ts.map +1 -1
  958. package/dist/core/remoto/tools.js.map +1 -1
  959. package/dist/core/reparacion/index.d.ts +2 -0
  960. package/dist/core/reparacion/index.d.ts.map +1 -0
  961. package/dist/core/reparacion/index.js +2 -0
  962. package/dist/core/reparacion/index.js.map +1 -0
  963. package/dist/core/reparacion/reparar-hunk.d.ts +27 -0
  964. package/dist/core/reparacion/reparar-hunk.d.ts.map +1 -0
  965. package/dist/core/reparacion/reparar-hunk.js +139 -0
  966. package/dist/core/reparacion/reparar-hunk.js.map +1 -0
  967. package/dist/core/resolve-config-value.d.ts.map +1 -1
  968. package/dist/core/resolve-config-value.js.map +1 -1
  969. package/dist/core/resource-loader.d.ts +13 -0
  970. package/dist/core/resource-loader.d.ts.map +1 -1
  971. package/dist/core/resource-loader.js +7 -4
  972. package/dist/core/resource-loader.js.map +1 -1
  973. package/dist/core/revision/dispositions.d.ts +86 -0
  974. package/dist/core/revision/dispositions.d.ts.map +1 -0
  975. package/dist/core/revision/dispositions.js +137 -0
  976. package/dist/core/revision/dispositions.js.map +1 -0
  977. package/dist/core/revision/hallazgo.d.ts.map +1 -1
  978. package/dist/core/revision/hallazgo.js.map +1 -1
  979. package/dist/core/revision/procedencia.d.ts +63 -0
  980. package/dist/core/revision/procedencia.d.ts.map +1 -0
  981. package/dist/core/revision/procedencia.js +72 -0
  982. package/dist/core/revision/procedencia.js.map +1 -0
  983. package/dist/core/revision/publicar.d.ts +26 -0
  984. package/dist/core/revision/publicar.d.ts.map +1 -0
  985. package/dist/core/revision/publicar.js +34 -0
  986. package/dist/core/revision/publicar.js.map +1 -0
  987. package/dist/core/revision/revisor.d.ts.map +1 -1
  988. package/dist/core/revision/revisor.js.map +1 -1
  989. package/dist/core/revision/sarif.d.ts.map +1 -1
  990. package/dist/core/revision/sarif.js.map +1 -1
  991. package/dist/core/router-uris/index.d.ts +12 -0
  992. package/dist/core/router-uris/index.d.ts.map +1 -0
  993. package/dist/core/router-uris/index.js +12 -0
  994. package/dist/core/router-uris/index.js.map +1 -0
  995. package/dist/core/router-uris/router.d.ts +2 -0
  996. package/dist/core/router-uris/router.d.ts.map +1 -0
  997. package/dist/core/router-uris/router.js +2 -0
  998. package/dist/core/router-uris/router.js.map +1 -0
  999. package/dist/core/runtime-credentials.d.ts.map +1 -1
  1000. package/dist/core/runtime-credentials.js.map +1 -1
  1001. package/dist/core/rutas/envoltorio.d.ts +20 -0
  1002. package/dist/core/rutas/envoltorio.d.ts.map +1 -0
  1003. package/dist/core/rutas/envoltorio.js +48 -0
  1004. package/dist/core/rutas/envoltorio.js.map +1 -0
  1005. package/dist/core/rutas/index.d.ts +11 -0
  1006. package/dist/core/rutas/index.d.ts.map +1 -0
  1007. package/dist/core/rutas/index.js +11 -0
  1008. package/dist/core/rutas/index.js.map +1 -0
  1009. package/dist/core/rutas/router.d.ts +82 -0
  1010. package/dist/core/rutas/router.d.ts.map +1 -0
  1011. package/dist/core/rutas/router.js +161 -0
  1012. package/dist/core/rutas/router.js.map +1 -0
  1013. package/dist/core/scheduler/scheduler.d.ts.map +1 -1
  1014. package/dist/core/scheduler/scheduler.js.map +1 -1
  1015. package/dist/core/sdk.d.ts.map +1 -1
  1016. package/dist/core/sdk.js.map +1 -1
  1017. package/dist/core/secretos/extension.d.ts +31 -0
  1018. package/dist/core/secretos/extension.d.ts.map +1 -0
  1019. package/dist/core/secretos/extension.js +64 -0
  1020. package/dist/core/secretos/extension.js.map +1 -0
  1021. package/dist/core/secretos/index.d.ts +75 -0
  1022. package/dist/core/secretos/index.d.ts.map +1 -0
  1023. package/dist/core/secretos/index.js +385 -0
  1024. package/dist/core/secretos/index.js.map +1 -0
  1025. package/dist/core/secretos/message-transform.d.ts +44 -0
  1026. package/dist/core/secretos/message-transform.d.ts.map +1 -0
  1027. package/dist/core/secretos/message-transform.js +246 -0
  1028. package/dist/core/secretos/message-transform.js.map +1 -0
  1029. package/dist/core/secretos/obfuscator.d.ts +30 -0
  1030. package/dist/core/secretos/obfuscator.d.ts.map +1 -0
  1031. package/dist/core/secretos/obfuscator.js +1182 -0
  1032. package/dist/core/secretos/obfuscator.js.map +1 -0
  1033. package/dist/core/secretos/placeholder-scan.d.ts +96 -0
  1034. package/dist/core/secretos/placeholder-scan.d.ts.map +1 -0
  1035. package/dist/core/secretos/placeholder-scan.js +433 -0
  1036. package/dist/core/secretos/placeholder-scan.js.map +1 -0
  1037. package/dist/core/secretos/placeholder.d.ts +95 -0
  1038. package/dist/core/secretos/placeholder.d.ts.map +1 -0
  1039. package/dist/core/secretos/placeholder.js +283 -0
  1040. package/dist/core/secretos/placeholder.js.map +1 -0
  1041. package/dist/core/secretos/regex.d.ts +3 -0
  1042. package/dist/core/secretos/regex.d.ts.map +1 -0
  1043. package/dist/core/secretos/regex.js +19 -0
  1044. package/dist/core/secretos/regex.js.map +1 -0
  1045. package/dist/core/secretos/replacement.d.ts +83 -0
  1046. package/dist/core/secretos/replacement.d.ts.map +1 -0
  1047. package/dist/core/secretos/replacement.js +211 -0
  1048. package/dist/core/secretos/replacement.js.map +1 -0
  1049. package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts.map +1 -1
  1050. package/dist/core/sesion/cerrar-llamadas-abiertas.js.map +1 -1
  1051. package/dist/core/sesion/journal-tree.d.ts +73 -0
  1052. package/dist/core/sesion/journal-tree.d.ts.map +1 -0
  1053. package/dist/core/sesion/journal-tree.js +241 -0
  1054. package/dist/core/sesion/journal-tree.js.map +1 -0
  1055. package/dist/core/sesion/turn-recovery.d.ts +48 -0
  1056. package/dist/core/sesion/turn-recovery.d.ts.map +1 -0
  1057. package/dist/core/sesion/turn-recovery.js +182 -0
  1058. package/dist/core/sesion/turn-recovery.js.map +1 -0
  1059. package/dist/core/session-cwd.d.ts.map +1 -1
  1060. package/dist/core/session-cwd.js.map +1 -1
  1061. package/dist/core/session-manager.d.ts.map +1 -1
  1062. package/dist/core/session-manager.js.map +1 -1
  1063. package/dist/core/settings-diagnostics.d.ts.map +1 -1
  1064. package/dist/core/settings-diagnostics.js.map +1 -1
  1065. package/dist/core/settings-manager.d.ts +2 -2
  1066. package/dist/core/settings-manager.d.ts.map +1 -1
  1067. package/dist/core/settings-manager.js.map +1 -1
  1068. package/dist/core/share/cifrado.d.ts +39 -0
  1069. package/dist/core/share/cifrado.d.ts.map +1 -0
  1070. package/dist/core/share/cifrado.js +81 -0
  1071. package/dist/core/share/cifrado.js.map +1 -0
  1072. package/dist/core/share/exportar.d.ts +69 -0
  1073. package/dist/core/share/exportar.d.ts.map +1 -0
  1074. package/dist/core/share/exportar.js +247 -0
  1075. package/dist/core/share/exportar.js.map +1 -0
  1076. package/dist/core/skills.d.ts.map +1 -1
  1077. package/dist/core/skills.js.map +1 -1
  1078. package/dist/core/slash-commands.d.ts.map +1 -1
  1079. package/dist/core/slash-commands.js.map +1 -1
  1080. package/dist/core/source-info.d.ts.map +1 -1
  1081. package/dist/core/source-info.js.map +1 -1
  1082. package/dist/core/stream-guard/guardia.d.ts +45 -0
  1083. package/dist/core/stream-guard/guardia.d.ts.map +1 -0
  1084. package/dist/core/stream-guard/guardia.js +100 -0
  1085. package/dist/core/stream-guard/guardia.js.map +1 -0
  1086. package/dist/core/stream-guard/index.d.ts +9 -0
  1087. package/dist/core/stream-guard/index.d.ts.map +1 -0
  1088. package/dist/core/stream-guard/index.js +7 -0
  1089. package/dist/core/stream-guard/index.js.map +1 -0
  1090. package/dist/core/stream-guard/replay.d.ts +39 -0
  1091. package/dist/core/stream-guard/replay.d.ts.map +1 -0
  1092. package/dist/core/stream-guard/replay.js +68 -0
  1093. package/dist/core/stream-guard/replay.js.map +1 -0
  1094. package/dist/core/system-prompt.d.ts.map +1 -1
  1095. package/dist/core/system-prompt.js.map +1 -1
  1096. package/dist/core/telemetria/otlp.d.ts.map +1 -1
  1097. package/dist/core/telemetria/otlp.js.map +1 -1
  1098. package/dist/core/telemetry/otel-genai.d.ts +44 -0
  1099. package/dist/core/telemetry/otel-genai.d.ts.map +1 -0
  1100. package/dist/core/telemetry/otel-genai.js +124 -0
  1101. package/dist/core/telemetry/otel-genai.js.map +1 -0
  1102. package/dist/core/telemetry.d.ts.map +1 -1
  1103. package/dist/core/telemetry.js.map +1 -1
  1104. package/dist/core/terminal/backlog-guard.d.ts +53 -0
  1105. package/dist/core/terminal/backlog-guard.d.ts.map +1 -0
  1106. package/dist/core/terminal/backlog-guard.js +122 -0
  1107. package/dist/core/terminal/backlog-guard.js.map +1 -0
  1108. package/dist/core/terminal/conpty.d.ts +29 -0
  1109. package/dist/core/terminal/conpty.d.ts.map +1 -0
  1110. package/dist/core/terminal/conpty.js +67 -0
  1111. package/dist/core/terminal/conpty.js.map +1 -0
  1112. package/dist/core/terminal/conptyChunking.d.ts +2 -0
  1113. package/dist/core/terminal/conptyChunking.d.ts.map +1 -0
  1114. package/dist/core/terminal/conptyChunking.js +2 -0
  1115. package/dist/core/terminal/conptyChunking.js.map +1 -0
  1116. package/dist/core/terminal/index.d.ts +5 -0
  1117. package/dist/core/terminal/index.d.ts.map +1 -0
  1118. package/dist/core/terminal/index.js +5 -0
  1119. package/dist/core/terminal/index.js.map +1 -0
  1120. package/dist/core/terminal/loop-watchdog.d.ts +43 -0
  1121. package/dist/core/terminal/loop-watchdog.d.ts.map +1 -0
  1122. package/dist/core/terminal/loop-watchdog.js +117 -0
  1123. package/dist/core/terminal/loop-watchdog.js.map +1 -0
  1124. package/dist/core/terminal/runner.d.ts +55 -0
  1125. package/dist/core/terminal/runner.d.ts.map +1 -0
  1126. package/dist/core/terminal/runner.js +102 -0
  1127. package/dist/core/terminal/runner.js.map +1 -0
  1128. package/dist/core/timings.d.ts.map +1 -1
  1129. package/dist/core/timings.js.map +1 -1
  1130. package/dist/core/tools/apply_patch.d.ts +29 -0
  1131. package/dist/core/tools/apply_patch.d.ts.map +1 -0
  1132. package/dist/core/tools/apply_patch.js +54 -0
  1133. package/dist/core/tools/apply_patch.js.map +1 -0
  1134. package/dist/core/tools/bash.d.ts.map +1 -1
  1135. package/dist/core/tools/bash.js.map +1 -1
  1136. package/dist/core/tools/coercion-argumentos.d.ts.map +1 -1
  1137. package/dist/core/tools/coercion-argumentos.js.map +1 -1
  1138. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  1139. package/dist/core/tools/edit-diff.js.map +1 -1
  1140. package/dist/core/tools/edit.d.ts.map +1 -1
  1141. package/dist/core/tools/edit.js +43 -1
  1142. package/dist/core/tools/edit.js.map +1 -1
  1143. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  1144. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  1145. package/dist/core/tools/find.d.ts.map +1 -1
  1146. package/dist/core/tools/find.js.map +1 -1
  1147. package/dist/core/tools/grep.d.ts.map +1 -1
  1148. package/dist/core/tools/grep.js.map +1 -1
  1149. package/dist/core/tools/index.d.ts.map +1 -1
  1150. package/dist/core/tools/index.js.map +1 -1
  1151. package/dist/core/tools/json-tolerante.d.ts.map +1 -1
  1152. package/dist/core/tools/json-tolerante.js.map +1 -1
  1153. package/dist/core/tools/ls.d.ts.map +1 -1
  1154. package/dist/core/tools/ls.js.map +1 -1
  1155. package/dist/core/tools/noop-loop-guard.d.ts +46 -0
  1156. package/dist/core/tools/noop-loop-guard.d.ts.map +1 -0
  1157. package/dist/core/tools/noop-loop-guard.js +57 -0
  1158. package/dist/core/tools/noop-loop-guard.js.map +1 -0
  1159. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  1160. package/dist/core/tools/output-accumulator.js.map +1 -1
  1161. package/dist/core/tools/path-utils.d.ts.map +1 -1
  1162. package/dist/core/tools/path-utils.js.map +1 -1
  1163. package/dist/core/tools/project-memory-tool.d.ts.map +1 -1
  1164. package/dist/core/tools/project-memory-tool.js.map +1 -1
  1165. package/dist/core/tools/read.d.ts.map +1 -1
  1166. package/dist/core/tools/read.js.map +1 -1
  1167. package/dist/core/tools/render-utils.d.ts.map +1 -1
  1168. package/dist/core/tools/render-utils.js.map +1 -1
  1169. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  1170. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  1171. package/dist/core/tools/truncate.d.ts.map +1 -1
  1172. package/dist/core/tools/truncate.js.map +1 -1
  1173. package/dist/core/tools/write.d.ts.map +1 -1
  1174. package/dist/core/tools/write.js.map +1 -1
  1175. package/dist/core/trust-manager.d.ts.map +1 -1
  1176. package/dist/core/trust-manager.js.map +1 -1
  1177. package/dist/core/ttsr/captura.d.ts +72 -0
  1178. package/dist/core/ttsr/captura.d.ts.map +1 -0
  1179. package/dist/core/ttsr/captura.js +183 -0
  1180. package/dist/core/ttsr/captura.js.map +1 -0
  1181. package/dist/core/ttsr/index.d.ts +24 -0
  1182. package/dist/core/ttsr/index.d.ts.map +1 -0
  1183. package/dist/core/ttsr/index.js +57 -0
  1184. package/dist/core/ttsr/index.js.map +1 -0
  1185. package/dist/core/ttsr/preview.d.ts +48 -0
  1186. package/dist/core/ttsr/preview.d.ts.map +1 -0
  1187. package/dist/core/ttsr/preview.js +83 -0
  1188. package/dist/core/ttsr/preview.js.map +1 -0
  1189. package/dist/core/turno-vacio/detectar.d.ts.map +1 -1
  1190. package/dist/core/turno-vacio/detectar.js.map +1 -1
  1191. package/dist/core/undo/journal.d.ts.map +1 -1
  1192. package/dist/core/undo/journal.js.map +1 -1
  1193. package/dist/core/urls-internas/auditoria.d.ts.map +1 -1
  1194. package/dist/core/urls-internas/auditoria.js.map +1 -1
  1195. package/dist/core/urls-internas/boveda.d.ts.map +1 -1
  1196. package/dist/core/urls-internas/boveda.js.map +1 -1
  1197. package/dist/core/urls-internas/lector.d.ts +14 -10
  1198. package/dist/core/urls-internas/lector.d.ts.map +1 -1
  1199. package/dist/core/urls-internas/lector.js +50 -36
  1200. package/dist/core/urls-internas/lector.js.map +1 -1
  1201. package/dist/core/urls-internas/memoria.d.ts.map +1 -1
  1202. package/dist/core/urls-internas/memoria.js.map +1 -1
  1203. package/dist/core/urls-internas/parse.d.ts +6 -13
  1204. package/dist/core/urls-internas/parse.d.ts.map +1 -1
  1205. package/dist/core/urls-internas/parse.js +6 -17
  1206. package/dist/core/urls-internas/parse.js.map +1 -1
  1207. package/dist/core/urls-internas/reglas.d.ts.map +1 -1
  1208. package/dist/core/urls-internas/reglas.js.map +1 -1
  1209. package/dist/core/usage/aggregate.d.ts +1 -0
  1210. package/dist/core/usage/aggregate.d.ts.map +1 -1
  1211. package/dist/core/usage/aggregate.js +1 -1
  1212. package/dist/core/usage/aggregate.js.map +1 -1
  1213. package/dist/core/usage/cuota/anthropic.d.ts.map +1 -1
  1214. package/dist/core/usage/cuota/anthropic.js.map +1 -1
  1215. package/dist/core/usage/cuota/cache.d.ts.map +1 -1
  1216. package/dist/core/usage/cuota/cache.js.map +1 -1
  1217. package/dist/core/usage/cuota/github-copilot.d.ts.map +1 -1
  1218. package/dist/core/usage/cuota/github-copilot.js.map +1 -1
  1219. package/dist/core/usage/cuota/google-gemini.d.ts.map +1 -1
  1220. package/dist/core/usage/cuota/google-gemini.js.map +1 -1
  1221. package/dist/core/usage/cuota/index.d.ts.map +1 -1
  1222. package/dist/core/usage/cuota/index.js.map +1 -1
  1223. package/dist/core/usage/cuota/openai-codex.d.ts.map +1 -1
  1224. package/dist/core/usage/cuota/openai-codex.js.map +1 -1
  1225. package/dist/core/usage/cuota/openrouter.d.ts.map +1 -1
  1226. package/dist/core/usage/cuota/openrouter.js.map +1 -1
  1227. package/dist/core/usage/cuota/tipos.d.ts.map +1 -1
  1228. package/dist/core/usage/cuota/tipos.js.map +1 -1
  1229. package/dist/core/usage/index.d.ts +11 -0
  1230. package/dist/core/usage/index.d.ts.map +1 -0
  1231. package/dist/core/usage/index.js +11 -0
  1232. package/dist/core/usage/index.js.map +1 -0
  1233. package/dist/core/usage/multi.d.ts +62 -0
  1234. package/dist/core/usage/multi.d.ts.map +1 -0
  1235. package/dist/core/usage/multi.js +122 -0
  1236. package/dist/core/usage/multi.js.map +1 -0
  1237. package/dist/core/usage/redaccion.d.ts +48 -0
  1238. package/dist/core/usage/redaccion.d.ts.map +1 -0
  1239. package/dist/core/usage/redaccion.js +72 -0
  1240. package/dist/core/usage/redaccion.js.map +1 -0
  1241. package/dist/core/usage-totals.d.ts.map +1 -1
  1242. package/dist/core/usage-totals.js.map +1 -1
  1243. package/dist/core/utils/atomic-write.d.ts +55 -0
  1244. package/dist/core/utils/atomic-write.d.ts.map +1 -0
  1245. package/dist/core/utils/atomic-write.js +293 -0
  1246. package/dist/core/utils/atomic-write.js.map +1 -0
  1247. package/dist/core/utils/git.d.ts +24 -0
  1248. package/dist/core/utils/git.d.ts.map +1 -0
  1249. package/dist/core/utils/git.js +107 -0
  1250. package/dist/core/utils/git.js.map +1 -0
  1251. package/dist/core/utils/logger.d.ts +26 -0
  1252. package/dist/core/utils/logger.d.ts.map +1 -0
  1253. package/dist/core/utils/logger.js +104 -0
  1254. package/dist/core/utils/logger.js.map +1 -0
  1255. package/dist/core/utils/shell-snapshot.d.ts +21 -0
  1256. package/dist/core/utils/shell-snapshot.d.ts.map +1 -0
  1257. package/dist/core/utils/shell-snapshot.js +32 -0
  1258. package/dist/core/utils/shell-snapshot.js.map +1 -0
  1259. package/dist/core/utils/startup-watchdog.d.ts +11 -0
  1260. package/dist/core/utils/startup-watchdog.d.ts.map +1 -0
  1261. package/dist/core/utils/startup-watchdog.js +34 -0
  1262. package/dist/core/utils/startup-watchdog.js.map +1 -0
  1263. package/dist/core/utils/tls-ca-shim.d.ts +17 -0
  1264. package/dist/core/utils/tls-ca-shim.d.ts.map +1 -0
  1265. package/dist/core/utils/tls-ca-shim.js +33 -0
  1266. package/dist/core/utils/tls-ca-shim.js.map +1 -0
  1267. package/dist/core/web/agregador.d.ts +67 -0
  1268. package/dist/core/web/agregador.d.ts.map +1 -0
  1269. package/dist/core/web/agregador.js +182 -0
  1270. package/dist/core/web/agregador.js.map +1 -0
  1271. package/dist/core/web/busqueda-nativa.d.ts.map +1 -1
  1272. package/dist/core/web/busqueda-nativa.js.map +1 -1
  1273. package/dist/core/web/consulta.d.ts +53 -0
  1274. package/dist/core/web/consulta.d.ts.map +1 -0
  1275. package/dist/core/web/consulta.js +213 -0
  1276. package/dist/core/web/consulta.js.map +1 -0
  1277. package/dist/core/web/destino.d.ts +11 -0
  1278. package/dist/core/web/destino.d.ts.map +1 -1
  1279. package/dist/core/web/destino.js +35 -0
  1280. package/dist/core/web/destino.js.map +1 -1
  1281. package/dist/core/web/load-page.d.ts +52 -0
  1282. package/dist/core/web/load-page.d.ts.map +1 -0
  1283. package/dist/core/web/load-page.js +221 -0
  1284. package/dist/core/web/load-page.js.map +1 -0
  1285. package/dist/core/web/proveedores/brave.d.ts.map +1 -1
  1286. package/dist/core/web/proveedores/brave.js.map +1 -1
  1287. package/dist/core/web/proveedores/claves.d.ts.map +1 -1
  1288. package/dist/core/web/proveedores/claves.js.map +1 -1
  1289. package/dist/core/web/proveedores/duckduckgo.d.ts.map +1 -1
  1290. package/dist/core/web/proveedores/duckduckgo.js.map +1 -1
  1291. package/dist/core/web/proveedores/ecosia.d.ts.map +1 -1
  1292. package/dist/core/web/proveedores/ecosia.js.map +1 -1
  1293. package/dist/core/web/proveedores/exa.d.ts.map +1 -1
  1294. package/dist/core/web/proveedores/exa.js.map +1 -1
  1295. package/dist/core/web/proveedores/mojeek.d.ts.map +1 -1
  1296. package/dist/core/web/proveedores/mojeek.js.map +1 -1
  1297. package/dist/core/web/proveedores/navegador.d.ts.map +1 -1
  1298. package/dist/core/web/proveedores/navegador.js.map +1 -1
  1299. package/dist/core/web/proveedores/registro.d.ts.map +1 -1
  1300. package/dist/core/web/proveedores/registro.js.map +1 -1
  1301. package/dist/core/web/proveedores/searxng.d.ts.map +1 -1
  1302. package/dist/core/web/proveedores/searxng.js.map +1 -1
  1303. package/dist/core/web/proveedores/serper.d.ts.map +1 -1
  1304. package/dist/core/web/proveedores/serper.js.map +1 -1
  1305. package/dist/core/web/proveedores/tavily.d.ts.map +1 -1
  1306. package/dist/core/web/proveedores/tavily.js.map +1 -1
  1307. package/dist/core/web/proveedores/tipos.d.ts.map +1 -1
  1308. package/dist/core/web/proveedores/tipos.js.map +1 -1
  1309. package/dist/core/web/registro-red.d.ts.map +1 -1
  1310. package/dist/core/web/registro-red.js.map +1 -1
  1311. package/dist/core/web/scrapers/cisa-kev.d.ts.map +1 -1
  1312. package/dist/core/web/scrapers/cisa-kev.js.map +1 -1
  1313. package/dist/core/web/scrapers/crates-io.d.ts.map +1 -1
  1314. package/dist/core/web/scrapers/crates-io.js.map +1 -1
  1315. package/dist/core/web/scrapers/docs-rs.d.ts.map +1 -1
  1316. package/dist/core/web/scrapers/docs-rs.js.map +1 -1
  1317. package/dist/core/web/scrapers/github.d.ts.map +1 -1
  1318. package/dist/core/web/scrapers/github.js.map +1 -1
  1319. package/dist/core/web/scrapers/go-pkg.d.ts.map +1 -1
  1320. package/dist/core/web/scrapers/go-pkg.js.map +1 -1
  1321. package/dist/core/web/scrapers/hex.d.ts.map +1 -1
  1322. package/dist/core/web/scrapers/hex.js.map +1 -1
  1323. package/dist/core/web/scrapers/maven.d.ts.map +1 -1
  1324. package/dist/core/web/scrapers/maven.js.map +1 -1
  1325. package/dist/core/web/scrapers/mdn.d.ts.map +1 -1
  1326. package/dist/core/web/scrapers/mdn.js.map +1 -1
  1327. package/dist/core/web/scrapers/npm.d.ts.map +1 -1
  1328. package/dist/core/web/scrapers/npm.js.map +1 -1
  1329. package/dist/core/web/scrapers/nuget.d.ts.map +1 -1
  1330. package/dist/core/web/scrapers/nuget.js.map +1 -1
  1331. package/dist/core/web/scrapers/nvd.d.ts.map +1 -1
  1332. package/dist/core/web/scrapers/nvd.js.map +1 -1
  1333. package/dist/core/web/scrapers/pypi.d.ts.map +1 -1
  1334. package/dist/core/web/scrapers/pypi.js.map +1 -1
  1335. package/dist/core/web/scrapers/registro.d.ts.map +1 -1
  1336. package/dist/core/web/scrapers/registro.js.map +1 -1
  1337. package/dist/core/web/scrapers/rubygems.d.ts.map +1 -1
  1338. package/dist/core/web/scrapers/rubygems.js.map +1 -1
  1339. package/dist/core/web/scrapers/stackoverflow.d.ts.map +1 -1
  1340. package/dist/core/web/scrapers/stackoverflow.js.map +1 -1
  1341. package/dist/core/web/scrapers/tipos.d.ts.map +1 -1
  1342. package/dist/core/web/scrapers/tipos.js.map +1 -1
  1343. package/dist/core/web/texto.d.ts.map +1 -1
  1344. package/dist/core/web/texto.js.map +1 -1
  1345. package/dist/core/web/tools.d.ts +1 -8
  1346. package/dist/core/web/tools.d.ts.map +1 -1
  1347. package/dist/core/web/tools.js +2 -33
  1348. package/dist/core/web/tools.js.map +1 -1
  1349. package/dist/core/wiki/almacen.d.ts.map +1 -1
  1350. package/dist/core/wiki/almacen.js.map +1 -1
  1351. package/dist/core/wiki/citas.d.ts.map +1 -1
  1352. package/dist/core/wiki/citas.js.map +1 -1
  1353. package/dist/core/workflows/agent-runner.d.ts.map +1 -1
  1354. package/dist/core/workflows/agent-runner.js.map +1 -1
  1355. package/dist/core/workflows/builtins.d.ts.map +1 -1
  1356. package/dist/core/workflows/builtins.js.map +1 -1
  1357. package/dist/core/workflows/contrato/esquema.d.ts.map +1 -1
  1358. package/dist/core/workflows/contrato/esquema.js.map +1 -1
  1359. package/dist/core/workflows/contrato/reparar-argumentos.d.ts.map +1 -1
  1360. package/dist/core/workflows/contrato/reparar-argumentos.js.map +1 -1
  1361. package/dist/core/workflows/contrato/validador.d.ts.map +1 -1
  1362. package/dist/core/workflows/contrato/validador.js.map +1 -1
  1363. package/dist/core/workflows/contrato/yield.d.ts.map +1 -1
  1364. package/dist/core/workflows/contrato/yield.js.map +1 -1
  1365. package/dist/core/workflows/goal-engine/engine.d.ts +5 -0
  1366. package/dist/core/workflows/goal-engine/engine.d.ts.map +1 -1
  1367. package/dist/core/workflows/goal-engine/engine.js.map +1 -1
  1368. package/dist/core/workflows/goal-engine/errors.d.ts.map +1 -1
  1369. package/dist/core/workflows/goal-engine/errors.js.map +1 -1
  1370. package/dist/core/workflows/goal-engine/index.d.ts.map +1 -1
  1371. package/dist/core/workflows/goal-engine/index.js.map +1 -1
  1372. package/dist/core/workflows/goal-engine/persistence.d.ts.map +1 -1
  1373. package/dist/core/workflows/goal-engine/persistence.js.map +1 -1
  1374. package/dist/core/workflows/goal-engine/prompts.d.ts.map +1 -1
  1375. package/dist/core/workflows/goal-engine/prompts.js.map +1 -1
  1376. package/dist/core/workflows/goal-engine/state.d.ts.map +1 -1
  1377. package/dist/core/workflows/goal-engine/state.js.map +1 -1
  1378. package/dist/core/workflows/goal-engine/tools.d.ts.map +1 -1
  1379. package/dist/core/workflows/goal-engine/tools.js.map +1 -1
  1380. package/dist/core/workflows/goal-engine/types.d.ts.map +1 -1
  1381. package/dist/core/workflows/goal-engine/types.js.map +1 -1
  1382. package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts.map +1 -1
  1383. package/dist/core/workflows/goal-engine/worktree-fingerprint.js.map +1 -1
  1384. package/dist/core/workflows/graph-sync.d.ts.map +1 -1
  1385. package/dist/core/workflows/graph-sync.js.map +1 -1
  1386. package/dist/core/workflows/graph.d.ts.map +1 -1
  1387. package/dist/core/workflows/graph.js.map +1 -1
  1388. package/dist/core/workflows/index.d.ts +6 -0
  1389. package/dist/core/workflows/index.d.ts.map +1 -1
  1390. package/dist/core/workflows/index.js +3 -0
  1391. package/dist/core/workflows/index.js.map +1 -1
  1392. package/dist/core/workflows/journal.d.ts.map +1 -1
  1393. package/dist/core/workflows/journal.js.map +1 -1
  1394. package/dist/core/workflows/manager.d.ts.map +1 -1
  1395. package/dist/core/workflows/manager.js.map +1 -1
  1396. package/dist/core/workflows/provider-caps.d.ts +103 -0
  1397. package/dist/core/workflows/provider-caps.d.ts.map +1 -0
  1398. package/dist/core/workflows/provider-caps.js +235 -0
  1399. package/dist/core/workflows/provider-caps.js.map +1 -0
  1400. package/dist/core/workflows/resolve-script.d.ts.map +1 -1
  1401. package/dist/core/workflows/resolve-script.js.map +1 -1
  1402. package/dist/core/workflows/runtime.d.ts.map +1 -1
  1403. package/dist/core/workflows/runtime.js.map +1 -1
  1404. package/dist/core/workflows/save-as-skill.d.ts.map +1 -1
  1405. package/dist/core/workflows/save-as-skill.js.map +1 -1
  1406. package/dist/core/workflows/shared-store.d.ts.map +1 -1
  1407. package/dist/core/workflows/shared-store.js.map +1 -1
  1408. package/dist/core/workflows/soft-budget.d.ts +27 -0
  1409. package/dist/core/workflows/soft-budget.d.ts.map +1 -0
  1410. package/dist/core/workflows/soft-budget.js +47 -0
  1411. package/dist/core/workflows/soft-budget.js.map +1 -0
  1412. package/dist/core/workflows/subagent-host.d.ts.map +1 -1
  1413. package/dist/core/workflows/subagent-host.js.map +1 -1
  1414. package/dist/core/workflows/tool-scheduling.d.ts +47 -0
  1415. package/dist/core/workflows/tool-scheduling.d.ts.map +1 -0
  1416. package/dist/core/workflows/tool-scheduling.js +102 -0
  1417. package/dist/core/workflows/tool-scheduling.js.map +1 -0
  1418. package/dist/core/workflows/tool-workflow.d.ts.map +1 -1
  1419. package/dist/core/workflows/tool-workflow.js.map +1 -1
  1420. package/dist/core/workflows/types.d.ts.map +1 -1
  1421. package/dist/core/workflows/types.js.map +1 -1
  1422. package/dist/core/workflows/worktree.d.ts.map +1 -1
  1423. package/dist/core/workflows/worktree.js.map +1 -1
  1424. package/dist/extensions/index.d.ts.map +1 -1
  1425. package/dist/extensions/index.js.map +1 -1
  1426. package/dist/extensions/llama/client.d.ts.map +1 -1
  1427. package/dist/extensions/llama/client.js.map +1 -1
  1428. package/dist/extensions/llama/huggingface.d.ts.map +1 -1
  1429. package/dist/extensions/llama/huggingface.js.map +1 -1
  1430. package/dist/extensions/llama/index.d.ts.map +1 -1
  1431. package/dist/extensions/llama/index.js.map +1 -1
  1432. package/dist/extensions/llama/provider.d.ts.map +1 -1
  1433. package/dist/extensions/llama/provider.js.map +1 -1
  1434. package/dist/extensions/llama/ui.d.ts.map +1 -1
  1435. package/dist/extensions/llama/ui.js.map +1 -1
  1436. package/dist/extensions/remoto/index.d.ts.map +1 -1
  1437. package/dist/extensions/remoto/index.js.map +1 -1
  1438. package/dist/index.d.ts.map +1 -1
  1439. package/dist/index.js.map +1 -1
  1440. package/dist/main.d.ts.map +1 -1
  1441. package/dist/main.js +71 -3
  1442. package/dist/main.js.map +1 -1
  1443. package/dist/migrations.d.ts.map +1 -1
  1444. package/dist/migrations.js.map +1 -1
  1445. package/dist/modes/acp/acp-mode.d.ts.map +1 -1
  1446. package/dist/modes/acp/acp-mode.js.map +1 -1
  1447. package/dist/modes/acp/events.d.ts.map +1 -1
  1448. package/dist/modes/acp/events.js.map +1 -1
  1449. package/dist/modes/index.d.ts.map +1 -1
  1450. package/dist/modes/index.js.map +1 -1
  1451. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  1452. package/dist/modes/interactive/components/armin.js.map +1 -1
  1453. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  1454. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  1455. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  1456. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  1457. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  1458. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  1459. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  1460. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  1461. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  1462. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  1463. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  1464. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  1465. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  1466. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  1467. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  1468. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  1469. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  1470. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  1471. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  1472. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  1473. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  1474. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  1475. package/dist/modes/interactive/components/diff.d.ts.map +1 -1
  1476. package/dist/modes/interactive/components/diff.js.map +1 -1
  1477. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  1478. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  1479. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  1480. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  1481. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  1482. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  1483. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  1484. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  1485. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  1486. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  1487. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  1488. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  1489. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  1490. package/dist/modes/interactive/components/footer.js.map +1 -1
  1491. package/dist/modes/interactive/components/home-screen.d.ts +2 -0
  1492. package/dist/modes/interactive/components/home-screen.d.ts.map +1 -1
  1493. package/dist/modes/interactive/components/home-screen.js +5 -6
  1494. package/dist/modes/interactive/components/home-screen.js.map +1 -1
  1495. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  1496. package/dist/modes/interactive/components/index.js.map +1 -1
  1497. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  1498. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  1499. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  1500. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  1501. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -1
  1502. package/dist/modes/interactive/components/markdown-transform.js.map +1 -1
  1503. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
  1504. package/dist/modes/interactive/components/mermaid.js.map +1 -1
  1505. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  1506. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  1507. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  1508. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  1509. package/dist/modes/interactive/components/prompt-optimization.d.ts.map +1 -1
  1510. package/dist/modes/interactive/components/prompt-optimization.js.map +1 -1
  1511. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  1512. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  1513. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  1514. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  1515. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  1516. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  1517. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  1518. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  1519. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
  1520. package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
  1521. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  1522. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  1523. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  1524. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  1525. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  1526. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  1527. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  1528. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  1529. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  1530. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  1531. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  1532. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  1533. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  1534. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  1535. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
  1536. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  1537. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  1538. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  1539. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  1540. package/dist/modes/interactive/components/user-message.js.map +1 -1
  1541. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  1542. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  1543. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  1544. package/dist/modes/interactive/external-editor.js.map +1 -1
  1545. package/dist/modes/interactive/interactive-mode.d.ts +19 -0
  1546. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  1547. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  1548. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -1
  1549. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
  1550. package/dist/modes/interactive/model-search.d.ts.map +1 -1
  1551. package/dist/modes/interactive/model-search.js.map +1 -1
  1552. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  1553. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  1554. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  1555. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  1556. package/dist/modes/interactive/theme/theme.js.map +1 -1
  1557. package/dist/modes/json-event.d.ts.map +1 -1
  1558. package/dist/modes/json-event.js.map +1 -1
  1559. package/dist/modes/print-mode.d.ts.map +1 -1
  1560. package/dist/modes/print-mode.js.map +1 -1
  1561. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  1562. package/dist/modes/rpc/jsonl.js.map +1 -1
  1563. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  1564. package/dist/modes/rpc/rpc-client.js.map +1 -1
  1565. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  1566. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  1567. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  1568. package/dist/modes/rpc/rpc-types.js.map +1 -1
  1569. package/dist/package-manager-cli.d.ts.map +1 -1
  1570. package/dist/package-manager-cli.js.map +1 -1
  1571. package/dist/rpc-entry.d.ts.map +1 -1
  1572. package/dist/rpc-entry.js +0 -0
  1573. package/dist/rpc-entry.js.map +1 -1
  1574. package/dist/server/attach.d.ts.map +1 -1
  1575. package/dist/server/attach.js.map +1 -1
  1576. package/dist/server/create-harness.d.ts.map +1 -1
  1577. package/dist/server/create-harness.js.map +1 -1
  1578. package/dist/server/extension-ops.d.ts.map +1 -1
  1579. package/dist/server/extension-ops.js.map +1 -1
  1580. package/dist/server/pi-server-service.d.ts.map +1 -1
  1581. package/dist/server/pi-server-service.js.map +1 -1
  1582. package/dist/server/scheduler-tick.d.ts.map +1 -1
  1583. package/dist/server/scheduler-tick.js.map +1 -1
  1584. package/dist/server/serve.d.ts.map +1 -1
  1585. package/dist/server/serve.js.map +1 -1
  1586. package/dist/server/transcript.d.ts.map +1 -1
  1587. package/dist/server/transcript.js.map +1 -1
  1588. package/dist/telegram/api.d.ts +6 -0
  1589. package/dist/telegram/api.d.ts.map +1 -1
  1590. package/dist/telegram/api.js.map +1 -1
  1591. package/dist/telegram/bridge.d.ts.map +1 -1
  1592. package/dist/telegram/bridge.js.map +1 -1
  1593. package/dist/telegram/journal.d.ts.map +1 -1
  1594. package/dist/telegram/journal.js.map +1 -1
  1595. package/dist/telegram/servidor.d.ts.map +1 -1
  1596. package/dist/telegram/servidor.js.map +1 -1
  1597. package/dist/utils/abort.d.ts.map +1 -1
  1598. package/dist/utils/abort.js.map +1 -1
  1599. package/dist/utils/ansi.d.ts.map +1 -1
  1600. package/dist/utils/ansi.js.map +1 -1
  1601. package/dist/utils/changelog.d.ts.map +1 -1
  1602. package/dist/utils/changelog.js.map +1 -1
  1603. package/dist/utils/child-process.d.ts.map +1 -1
  1604. package/dist/utils/child-process.js.map +1 -1
  1605. package/dist/utils/clipboard-image.d.ts.map +1 -1
  1606. package/dist/utils/clipboard-image.js.map +1 -1
  1607. package/dist/utils/clipboard-native.d.ts.map +1 -1
  1608. package/dist/utils/clipboard-native.js.map +1 -1
  1609. package/dist/utils/clipboard.d.ts.map +1 -1
  1610. package/dist/utils/clipboard.js.map +1 -1
  1611. package/dist/utils/deprecation.d.ts.map +1 -1
  1612. package/dist/utils/deprecation.js.map +1 -1
  1613. package/dist/utils/exif-orientation.d.ts.map +1 -1
  1614. package/dist/utils/exif-orientation.js.map +1 -1
  1615. package/dist/utils/frontmatter.d.ts.map +1 -1
  1616. package/dist/utils/frontmatter.js.map +1 -1
  1617. package/dist/utils/fs-watch.d.ts.map +1 -1
  1618. package/dist/utils/fs-watch.js.map +1 -1
  1619. package/dist/utils/git.d.ts.map +1 -1
  1620. package/dist/utils/git.js.map +1 -1
  1621. package/dist/utils/html.d.ts.map +1 -1
  1622. package/dist/utils/html.js.map +1 -1
  1623. package/dist/utils/image-convert.d.ts.map +1 -1
  1624. package/dist/utils/image-convert.js.map +1 -1
  1625. package/dist/utils/image-process.d.ts.map +1 -1
  1626. package/dist/utils/image-process.js.map +1 -1
  1627. package/dist/utils/image-resize-core.d.ts.map +1 -1
  1628. package/dist/utils/image-resize-core.js.map +1 -1
  1629. package/dist/utils/image-resize-worker.d.ts.map +1 -1
  1630. package/dist/utils/image-resize-worker.js.map +1 -1
  1631. package/dist/utils/image-resize.d.ts.map +1 -1
  1632. package/dist/utils/image-resize.js.map +1 -1
  1633. package/dist/utils/json.d.ts.map +1 -1
  1634. package/dist/utils/json.js.map +1 -1
  1635. package/dist/utils/management-http.d.ts.map +1 -1
  1636. package/dist/utils/management-http.js.map +1 -1
  1637. package/dist/utils/mime.d.ts.map +1 -1
  1638. package/dist/utils/mime.js.map +1 -1
  1639. package/dist/utils/open-browser.d.ts.map +1 -1
  1640. package/dist/utils/open-browser.js.map +1 -1
  1641. package/dist/utils/paths.d.ts.map +1 -1
  1642. package/dist/utils/paths.js.map +1 -1
  1643. package/dist/utils/photon.d.ts.map +1 -1
  1644. package/dist/utils/photon.js.map +1 -1
  1645. package/dist/utils/pi-user-agent.d.ts.map +1 -1
  1646. package/dist/utils/pi-user-agent.js.map +1 -1
  1647. package/dist/utils/shell.d.ts.map +1 -1
  1648. package/dist/utils/shell.js.map +1 -1
  1649. package/dist/utils/sleep.d.ts.map +1 -1
  1650. package/dist/utils/sleep.js.map +1 -1
  1651. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  1652. package/dist/utils/syntax-highlight.js.map +1 -1
  1653. package/dist/utils/text.d.ts.map +1 -1
  1654. package/dist/utils/text.js.map +1 -1
  1655. package/dist/utils/tool-result-images.d.ts.map +1 -1
  1656. package/dist/utils/tool-result-images.js.map +1 -1
  1657. package/dist/utils/tools-manager.d.ts.map +1 -1
  1658. package/dist/utils/tools-manager.js.map +1 -1
  1659. package/dist/utils/version-check.d.ts.map +1 -1
  1660. package/dist/utils/version-check.js.map +1 -1
  1661. package/dist/utils/windows-self-update.d.ts.map +1 -1
  1662. package/dist/utils/windows-self-update.js.map +1 -1
  1663. package/docs/development-fork.md +170 -0
  1664. package/docs/docs.json +25 -0
  1665. package/docs/modules-infraestructura.md +115 -0
  1666. package/docs/modules-motor.md +160 -0
  1667. package/docs/modules-producto.md +179 -0
  1668. package/docs/modules-seguridad.md +158 -0
  1669. package/npm-shrinkwrap.json +2 -2
  1670. package/package.json +113 -113
  1671. package/dist/core/commit/diff.d.ts.map +0 -1
  1672. package/dist/core/commit/diff.js.map +0 -1
  1673. package/dist/core/commit/mensaje.d.ts +0 -80
  1674. package/dist/core/commit/mensaje.d.ts.map +0 -1
  1675. package/dist/core/commit/mensaje.js +0 -207
  1676. package/dist/core/commit/mensaje.js.map +0 -1
  1677. package/dist/core/computer/motor/platform/macos/helper-path.mjs +0 -34
  1678. package/dist/core/export-html/template.css +0 -1066
  1679. package/dist/core/export-html/template.html +0 -55
  1680. package/dist/core/export-html/template.js +0 -1864
  1681. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  1682. package/dist/core/export-html/vendor/marked.min.js +0 -78
  1683. package/dist/core/prompts/sistema.md +0 -134
  1684. package/dist/modes/interactive/assets/clankolas.png +0 -0
  1685. package/dist/modes/interactive/theme/dark.json +0 -90
  1686. package/dist/modes/interactive/theme/light.json +0 -89
  1687. package/dist/modes/interactive/theme/theme-schema.json +0 -352
  1688. package/dist/skills/ada-engine/SKILL.md +0 -153
  1689. package/dist/skills/skill-creator/SKILL.md +0 -90
  1690. /package/dist/core/{commit → commits}/diff.d.ts +0 -0
  1691. /package/dist/core/{commit → commits}/diff.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"mapa.js","sourceRoot":"","sources":["../../../src/core/lectura/mapa.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * El mapa de lo que un `read` truncado NO enseñó.\n *\n * EL CASO, medido sobre este repositorio. `core/agent-session.ts` tiene 4.546\n * líneas y 162 KB. El límite de 50 KB salta antes que el de 2.000 líneas, así\n * que el agente ve las primeras **1.415 líneas (31%)** y nada más. Un bug en la\n * línea 3.000 es invisible.\n *\n * Lo que hay hoy para eso son `offset` y `limit`, y sirven — si sabes a qué\n * línea ir. El agente no lo sabe: le hemos cortado el fichero sin decirle qué\n * había detrás. Su única salida es paginar a ciegas, que gasta turnos, o\n * rendirse y editar lo que sí vio, que es peor.\n *\n * Es la misma familia de siempre. Un corte silencioso se lee como «esto es el\n * fichero», igual que un `[]` se lee como «no hay». La diferencia entre «no\n * está» y «no te lo he enseñado» tiene que ser visible, y aquí no lo era: el\n * aviso decía cuántas líneas faltaban, nunca QUÉ faltaba.\n *\n * QUÉ HACE. Sobre la parte que NO cupo, lista las declaraciones de primer nivel\n * con su línea: funciones, clases, interfaces, tipos y constantes exportadas.\n * El agente pasa de «me faltan 3.131 líneas» a «`_rebuildSystemPrompt` está en\n * la 1537», que es un `read offset=1530` en vez de seis intentos.\n *\n * NO es un resumen del contenido y a propósito. Un resumen lo escribe un modelo\n * y puede inventarse lo que no leyó; esto son nombres y números sacados del\n * árbol de sintaxis. En un registro que se vende como auditable, un mapa que\n * miente es peor que no tener mapa.\n *\n * LÍMITES, dichos antes de que los descubra nadie:\n * · Solo TypeScript y JavaScript. Para el resto se dice que no se pudo mapear,\n * que no es lo mismo que decir que no hay nada — tres estados, no dos.\n * · Se baja UN nivel dentro de clases, y esa decisión está medida. La primera\n * versión solo miraba el primer nivel y sobre `agent-session.ts` —el fichero\n * que motivó todo esto— devolvió CERO declaraciones: sus 4.546 líneas son\n * una sola clase con 106 métodos. Un mapa que se queda en «hay una clase\n * AgentSession en la línea 368» no le dice nada a quien busca dónde está\n * `_rebuildSystemPrompt`. Más adentro no se baja: una función dentro de un\n * método es detalle, no ancla.\n */\n\nimport ts from \"typescript\";\n\n/** Una declaración que el agente no llegó a ver. */\nexport interface Declaracion {\n\t/** `funcion`, `clase`, `interfaz`, `tipo`, `constante`. */\n\tque: string;\n\tnombre: string;\n\t/** Línea 1-indexada, para poder pasarla a `read offset=`. */\n\tlinea: number;\n\texportada: boolean;\n}\n\n/** Por qué no hay mapa, cuando no lo hay. */\nexport type SinMapa = \"extension-no-soportada\" | \"no-parsea\" | \"nada-que-mapear\";\n\nexport interface Mapa {\n\tdeclaraciones: Declaracion[];\n\t/** `null` si sí hay mapa. Un motivo, nunca una lista vacía silenciosa. */\n\tsinMapa: SinMapa | null;\n}\n\nconst EXTENSIONES = new Set([\".ts\", \".tsx\", \".mts\", \".cts\", \".js\", \".jsx\", \".mjs\", \".cjs\"]);\n\nfunction tipoDe(nodo: ts.Node): string | null {\n\tif (ts.isFunctionDeclaration(nodo)) return \"funcion\";\n\tif (ts.isClassDeclaration(nodo)) return \"clase\";\n\tif (ts.isInterfaceDeclaration(nodo)) return \"interfaz\";\n\tif (ts.isTypeAliasDeclaration(nodo)) return \"tipo\";\n\tif (ts.isEnumDeclaration(nodo)) return \"enum\";\n\tif (ts.isVariableStatement(nodo)) return \"constante\";\n\treturn null;\n}\n\nfunction esExportada(nodo: ts.Node): boolean {\n\tconst mods = ts.canHaveModifiers(nodo) ? ts.getModifiers(nodo) : undefined;\n\treturn mods?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword) ?? false;\n}\n\nfunction nombreDe(nodo: ts.Node): string | null {\n\tif (ts.isVariableStatement(nodo)) {\n\t\tconst d = nodo.declarationList.declarations[0];\n\t\treturn d && ts.isIdentifier(d.name) ? d.name.text : null;\n\t}\n\tconst conNombre = nodo as ts.Node & { name?: ts.Node };\n\treturn conNombre.name && ts.isIdentifier(conNombre.name as ts.Identifier)\n\t\t? (conNombre.name as ts.Identifier).text\n\t\t: null;\n}\n\n/**\n * Mapea las declaraciones que caen DESPUÉS de `desdeLinea`.\n *\n * `desdeLinea` es 1-indexada y exclusiva: se pasa el número de la última línea\n * que el agente sí vio, y se devuelve lo que hay a partir de la siguiente.\n */\nexport function mapearNoVisto(ruta: string, contenido: string, desdeLinea: number): Mapa {\n\tconst punto = ruta.lastIndexOf(\".\");\n\tif (punto < 0 || !EXTENSIONES.has(ruta.slice(punto))) {\n\t\treturn { declaraciones: [], sinMapa: \"extension-no-soportada\" };\n\t}\n\n\tlet fuente: ts.SourceFile;\n\ttry {\n\t\tfuente = ts.createSourceFile(ruta, contenido, ts.ScriptTarget.Latest, true);\n\t} catch {\n\t\treturn { declaraciones: [], sinMapa: \"no-parsea\" };\n\t}\n\t// «No parsea» hay que preguntárselo a `parseDiagnostics`, no deducirlo.\n\t//\n\t// `createSourceFile` no lanza y es MUY permisivo: sobre\n\t// `esto ( no { es ] typescript` devuelve sentencias igualmente, así que mirar\n\t// si el árbol está vacío daba «nada-que-mapear» sobre un fichero roto — otra\n\t// vez «no puedo» leído como «no hay». Es el mismo mecanismo que ya se midió\n\t// en `core/edicion/parseo.ts` (10 de 10 frente a 7 de 10 con otras vías).\n\t//\n\t// `parseDiagnostics` no está en el tipo público, y aun así es lo correcto:\n\t// contiene SOLO errores de sintaxis, no los del comprobador de tipos, que\n\t// aquí serían ruido.\n\tconst diagnosticos = (fuente as ts.SourceFile & { parseDiagnostics?: unknown }).parseDiagnostics;\n\tif (Array.isArray(diagnosticos) && diagnosticos.length > 0) {\n\t\treturn { declaraciones: [], sinMapa: \"no-parsea\" };\n\t}\n\n\tconst declaraciones: Declaracion[] = [];\n\tfor (const nodo of fuente.statements) {\n\t\tconst que = tipoDe(nodo);\n\t\tif (!que) continue;\n\t\tconst nombre = nombreDe(nodo);\n\t\tif (!nombre) continue;\n\t\tconst linea = fuente.getLineAndCharacterOfPosition(nodo.getStart(fuente)).line + 1;\n\t\tif (linea > desdeLinea) declaraciones.push({ que, nombre, linea, exportada: esExportada(nodo) });\n\n\t\t// Un nivel más, dentro de clases. Sin esto el mapa era inútil justo donde\n\t\t// hacía falta: un fichero de 4.500 líneas que es una sola clase.\n\t\tif (!ts.isClassDeclaration(nodo)) continue;\n\t\tfor (const miembro of nodo.members) {\n\t\t\tif (!ts.isMethodDeclaration(miembro) && !ts.isGetAccessorDeclaration(miembro)) continue;\n\t\t\tif (!ts.isIdentifier(miembro.name) && !ts.isPrivateIdentifier(miembro.name)) continue;\n\t\t\tconst lineaM = fuente.getLineAndCharacterOfPosition(miembro.getStart(fuente)).line + 1;\n\t\t\tif (lineaM <= desdeLinea) continue;\n\t\t\tdeclaraciones.push({\n\t\t\t\tque: ts.isGetAccessorDeclaration(miembro) ? \"getter\" : \"metodo\",\n\t\t\t\t// Con la clase delante: `AgentSession.prompt` se busca mejor que `prompt`.\n\t\t\t\tnombre: `${nombre}.${miembro.name.text}`,\n\t\t\t\tlinea: lineaM,\n\t\t\t\texportada: false,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (declaraciones.length === 0) return { declaraciones: [], sinMapa: \"nada-que-mapear\" };\n\treturn { declaraciones, sinMapa: null };\n}\n\n/** Cuántas declaraciones se enseñan como mucho, para no cambiar un muro por otro. */\nconst TOPE = 40;\n\n/**\n * El mapa, escrito para que el modelo pueda usarlo directamente.\n *\n * Devuelve `null` cuando no hay nada que decir, para que quien llame no tenga\n * que decidir si una cadena vacía significa «sin mapa» o «error».\n */\nexport function textoDelMapa(mapa: Mapa, ruta: string): string | null {\n\tif (mapa.sinMapa === \"nada-que-mapear\") return null;\n\tif (mapa.sinMapa === \"extension-no-soportada\") return null;\n\tif (mapa.sinMapa === \"no-parsea\") {\n\t\t// Se dice, en vez de callar: «no se pudo mapear» y «no hay nada» son\n\t\t// distintos, y confundirlos le haría creer al agente que el resto del\n\t\t// fichero está vacío.\n\t\treturn \"No se ha podido mapear el resto del fichero (no parsea). Usa offset/limit para recorrerlo.\";\n\t}\n\n\tconst orden = [\"clase\", \"interfaz\", \"funcion\", \"metodo\", \"getter\", \"tipo\", \"enum\", \"constante\"];\n\tconst lista = [...mapa.declaraciones].sort((a, b) => a.linea - b.linea);\n\tconst mostradas = lista.slice(0, TOPE);\n\tconst lineas = mostradas.map(\n\t\t(d) => ` ${String(d.linea).padStart(5)} ${d.que.padEnd(10)} ${d.exportada ? \"export \" : \"\"}${d.nombre}`,\n\t);\n\n\tlet texto =\n\t\t`Lo que NO se ha mostrado de ${ruta} contiene estas declaraciones. ` +\n\t\t`Usa \\`read\\` con \\`offset\\` para ir directo a la que necesites:\\n${lineas.join(\"\\n\")}`;\n\tif (lista.length > mostradas.length) {\n\t\t// Se dice cuántas quedan: un mapa truncado en silencio repetiría el mismo\n\t\t// fallo que este módulo existe para arreglar.\n\t\tconst porTipo = orden\n\t\t\t.map((t) => [t, lista.slice(TOPE).filter((d) => d.que === t).length] as const)\n\t\t\t.filter(([, n]) => n > 0)\n\t\t\t.map(([t, n]) => `${n} ${t}${n > 1 ? \"s\" : \"\"}`)\n\t\t\t.join(\", \");\n\t\ttexto += `\\n …y ${lista.length - mostradas.length} más (${porTipo}).`;\n\t}\n\treturn texto;\n}\n"]}
1
+ {"version":3,"file":"mapa.js","sourceRoot":"","sources":["../../../src/core/lectura/mapa.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../../src/core/lectura/pdf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG9E,MAAM,MAAM,YAAY,GACrB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAmMzC,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CA+B5D;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAmD/G","sourcesContent":["/**\n * Lectura de PDF sin dependencias: los flujos de contenido de un PDF van\n * comprimidos con Flate (zlib), y `node:zlib` viene de serie. omp lo resuelve\n * renderizando el documento en un navegador headless y haciéndole capturas:\n * infraestructura pesada que aquí no existe. Lo que se extrae es la CAPA DE\n * TEXTO, no una imagen del documento.\n *\n * LOS TRES ESTADOS, nunca dos — confundir dos de ellos es un fallo que se lee\n * como éxito:\n *\n * - `texto`: hay capa de texto y se extrajo. El caso normal.\n * - `sin-capa`: el PDF está BIEN FORMADO pero no trae texto (escaneado o\n * solo imágenes). NO es «fichero vacío»: decir eso sería\n * mentir sobre la causa, y el modelo se lo creería.\n * - `no-pudo`: cifrado, malformado o sin firma. No se sabe qué había.\n *\n * LÍMITES, dichos antes de descubrirlos nadie:\n * · No sigue el cross-reference table: recorre los objetos `N 0 obj …\n * stream…endstream` directamente. Para leer texto basta y evita toda la\n * maquinaria de xref (incluidos los xref streams comprimidos).\n * · Los operadores de posicionamiento fino (Tm, matrices) se aproximan:\n * salto de línea en Td/TD con componente vertical distinta de cero, T*,\n * BT; espacio cuando el kerning de TJ es muy negativo. El ORDEN del\n * texto se conserva; la GEOMETRÍA no. Para layout exacto, omp tiene el\n * navegador y nosotros no fingimos tenerlo.\n * · No descifra: un PDF con /Encrypt se reporta como `no-pudo`, nunca se\n * intenta a ciegas.\n */\n\nimport { open, readFile } from \"node:fs/promises\";\nimport { isAbsolute, join } from \"node:path\";\nimport { inflateSync } from \"node:zlib\";\nimport type { AgentToolResult, ToolDefinition } from \"../extensions/types.ts\";\nimport { truncateHead } from \"../tools/truncate.ts\";\n\nexport type ResultadoPdf =\n\t| { estado: \"texto\"; texto: string }\n\t| { estado: \"sin-capa\"; detalle: string }\n\t| { estado: \"no-pudo\"; motivo: string };\n\n/** Techo de seguridad: un PDF malicioso no decide cuánta CPU gasta el lector. */\nconst MAX_FLUJOS = 800;\nconst MAX_DECODIFICADO = 8 * 1024 * 1024;\n\ninterface Flujo {\n\tdiccionario: string;\n\tcontenido: string;\n}\n\nfunction flujosDe(crudo: string): Flujo[] {\n\tconst flujos: Flujo[] = [];\n\tlet idx = 0;\n\twhile (flujos.length < MAX_FLUJOS) {\n\t\tconst kw = crudo.indexOf(\"stream\", idx);\n\t\tif (kw === -1) break;\n\t\tconst cierreDict = crudo.lastIndexOf(\">>\", kw);\n\t\tconst aperturaDict = cierreDict === -1 ? -1 : crudo.lastIndexOf(\"<<\", cierreDict);\n\t\tif (aperturaDict === -1 || cierreDict < aperturaDict) {\n\t\t\tidx = kw + 6;\n\t\t\tcontinue;\n\t\t}\n\t\tlet p = kw + 6;\n\t\tif (crudo[p] === \"\\r\") p++;\n\t\tif (crudo[p] === \"\\n\") p++;\n\t\tconst fin = crudo.indexOf(\"endstream\", p);\n\t\tif (fin === -1) {\n\t\t\tidx = kw + 6;\n\t\t\tcontinue;\n\t\t}\n\t\tflujos.push({ diccionario: crudo.slice(aperturaDict, cierreDict + 2), contenido: crudo.slice(p, fin) });\n\t\tidx = fin + 9;\n\t}\n\treturn flujos;\n}\n\nfunction decodificar(flujos: Flujo[]): { decodificados: string[]; fallosInflado: number } {\n\tconst decodificados: string[] = [];\n\tlet fallosInflado = 0;\n\tlet presupuesto = MAX_DECODIFICADO;\n\tfor (const flujo of flujos) {\n\t\tif (presupuesto <= 0) break;\n\t\t// Una imagen también va en Flate e infla megas sin aportar texto: se\n\t\t// excluye ANTES de descomprimirla, no después.\n\t\tif (/\\/Subtype\\s*\\/Image/.test(flujo.diccionario)) continue;\n\t\ttry {\n\t\t\tconst bruto = Buffer.from(flujo.contenido, \"latin1\");\n\t\t\tconst datos = flujo.diccionario.includes(\"/FlateDecode\") ? inflateSync(bruto) : bruto;\n\t\t\tif (datos.length > presupuesto) continue;\n\t\t\tpresupuesto -= datos.length;\n\t\t\tconst texto = datos.toString(\"latin1\");\n\t\t\t// Solo quedan los flujos que SON de contenido: operadores de texto.\n\t\t\tif (/\\bBT\\b/.test(texto) && /\\b(Tj|TJ)\\b/.test(texto)) decodificados.push(texto);\n\t\t} catch {\n\t\t\tfallosInflado++;\n\t\t}\n\t}\n\treturn { decodificados, fallosInflado };\n}\n\n/**\n * Escáner de operadores de texto. Mantiene una línea en curso y corta en las\n * fronteras que de verdad separan líneas; dentro de una línea, los fragmentos\n * de un TJ se pegan sin inventar separadores.\n */\nfunction extraerTextoDeContenido(decodificado: string): string {\n\tconst lineas: string[] = [];\n\tlet lineaActual = \"\";\n\tlet ultimoNumero = Number.NaN;\n\n\tconst cortaLinea = (): void => {\n\t\tlineas.push(lineaActual);\n\t\tlineaActual = \"\";\n\t};\n\tconst emite = (s: string): void => {\n\t\tlineaActual += s;\n\t};\n\n\tlet i = 0;\n\tconst n = decodificado.length;\n\twhile (i < n) {\n\t\tconst c = decodificado[i];\n\t\tif (c === \"(\") {\n\t\t\ti++;\n\t\t\tlet literal = \"\";\n\t\t\tlet profundidad = 1;\n\t\t\twhile (i < n && profundidad > 0) {\n\t\t\t\tconst ch = decodificado[i];\n\t\t\t\tif (ch === \"\\\\\") {\n\t\t\t\t\tconst sig = decodificado[i + 1];\n\t\t\t\t\tif (sig === \"n\") literal += \"\\n\";\n\t\t\t\t\telse if (sig === \"r\") literal += \"\\r\";\n\t\t\t\t\telse if (sig === \"t\") literal += \"\\t\";\n\t\t\t\t\telse if (sig === \"b\" || sig === \"f\") literal += \" \";\n\t\t\t\t\telse if (sig >= \"0\" && sig <= \"7\") {\n\t\t\t\t\t\t// Octal \\ddd, hasta tres dígitos.\n\t\t\t\t\t\tlet octal = \"\";\n\t\t\t\t\t\tlet j = i + 1;\n\t\t\t\t\t\twhile (j < n && octal.length < 3 && decodificado[j] >= \"0\" && decodificado[j] <= \"7\") {\n\t\t\t\t\t\t\toctal += decodificado[j];\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tliteral += String.fromCharCode(Number.parseInt(octal, 8));\n\t\t\t\t\t\ti = j;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (sig === \"\\r\") {\n\t\t\t\t\t\t// Continuación de línea: la barra se come junto al salto.\n\t\t\t\t\t\ti += decodificado[i + 2] === \"\\n\" ? 3 : 2;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (sig === \"\\n\") {\n\t\t\t\t\t\ti += 2;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else literal += sig ?? \"\";\n\t\t\t\t\ti += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (ch === \"(\") profundidad++;\n\t\t\t\telse if (ch === \")\") {\n\t\t\t\t\tprofundidad--;\n\t\t\t\t\tif (profundidad === 0) {\n\t\t\t\t\t\ti++;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tliteral += ch;\n\t\t\t\ti++;\n\t\t\t}\n\t\t\temite(literal);\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"<\" && decodificado[i + 1] !== \"<\") {\n\t\t\tconst fin = decodificado.indexOf(\">\", i);\n\t\t\tif (fin === -1) break;\n\t\t\tconst hex = decodificado.slice(i + 1, fin).replace(/[^0-9A-Fa-f]/g, \"\");\n\t\t\tlet literal = \"\";\n\t\t\tfor (let j = 0; j + 1 < hex.length; j += 2) {\n\t\t\t\tliteral += String.fromCharCode(Number.parseInt(hex.slice(j, j + 2), 16));\n\t\t\t}\n\t\t\temite(literal);\n\t\t\ti = fin + 1;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"<\") {\n\t\t\t// Diccionario inline «<<»: no aporta operandos de texto.\n\t\t\ti += 2;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"[\" || c === \"]\") {\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"/\") {\n\t\t\t// Nombre: se consume entero para que sus letras no acaben en el texto.\n\t\t\tlet j = i + 1;\n\t\t\twhile (j < n && !/[\\s/[<>()]/.test(decodificado[j])) j++;\n\t\t\ti = j;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"-\" || c === \".\" || (c >= \"0\" && c <= \"9\")) {\n\t\t\tlet j = i + 1;\n\t\t\twhile (j < n && /[0-9.]/.test(decodificado[j])) j++;\n\t\t\tultimoNumero = Number.parseFloat(decodificado.slice(i, j));\n\t\t\t// Kerning muy negativo en TJ: así escriben varias herramientas el\n\t\t\t// espacio que no metieron como literal.\n\t\t\tif (ultimoNumero <= -150) emite(\" \");\n\t\t\ti = j;\n\t\t\tcontinue;\n\t\t}\n\t\tif (!/\\s/.test(c)) {\n\t\t\tlet j = i;\n\t\t\twhile (j < n && !/\\s/.test(decodificado[j]) && !\"()[<>/\".includes(decodificado[j])) j++;\n\t\t\tconst op = decodificado.slice(i, j);\n\t\t\tif (op === \"'\" || op === '\"' || op === \"T*\" || op === \"BT\") {\n\t\t\t\tcortaLinea();\n\t\t\t} else if (op === \"Td\" || op === \"TD\") {\n\t\t\t\t// Solo si mueve en vertical: un desplazamiento horizontal seguido\n\t\t\t\t// NO parte la línea.\n\t\t\t\tif (!Number.isNaN(ultimoNumero) && Math.abs(ultimoNumero) > 0.01) cortaLinea();\n\t\t\t}\n\t\t\t// Tj/TJ no necesitan nada aquí: el literal ya se emitió al\n\t\t\t// parsearlo; el operador solo lo confirma.\n\t\t\tultimoNumero = Number.NaN;\n\t\t\ti = j;\n\t\t\tcontinue;\n\t\t}\n\t\ti++;\n\t}\n\tif (lineaActual.trim() !== \"\") lineas.push(lineaActual);\n\treturn lineas\n\t\t.join(\"\\n\")\n\t\t.replace(/\\n{3,}/g, \"\\n\\n\")\n\t\t.trim();\n}\n\nexport function extraerTextoPdf(buffer: Buffer): ResultadoPdf {\n\t// La firma `%PDF-` puede ir precedida de basura; cabecera amplia.\n\tif (!buffer.subarray(0, 1024).toString(\"latin1\").includes(\"%PDF-\")) {\n\t\treturn { estado: \"no-pudo\", motivo: \"no lleva la firma %PDF-\" };\n\t}\n\tconst crudo = buffer.toString(\"latin1\");\n\tif (/\\/Encrypt\\s+\\d+\\s+\\d+\\s+R/.test(crudo)) {\n\t\treturn { estado: \"no-pudo\", motivo: \"está cifrado y no se descifra a ciegas\" };\n\t}\n\tconst flujos = flujosDe(crudo);\n\tif (flujos.length === 0) {\n\t\treturn crudo.includes(\"/Page\")\n\t\t\t? { estado: \"sin-capa\", detalle: \"el PDF declara páginas pero ningún flujo de contenido legible\" }\n\t\t\t: { estado: \"no-pudo\", motivo: \"estructura no reconocida: ni flujos ni páginas\" };\n\t}\n\tconst { decodificados, fallosInflado } = decodificar(flujos);\n\tif (decodificados.length === 0) {\n\t\tif (fallosInflado > 0)\n\t\t\treturn { estado: \"no-pudo\", motivo: `${fallosInflado} flujo(s) no se pudieron descomprimir` };\n\t\treturn {\n\t\t\testado: \"sin-capa\",\n\t\t\tdetalle: \"los flujos existen pero ninguno contiene operadores de texto (PDF escaneado o de solo imágenes)\",\n\t\t};\n\t}\n\tconst partes = decodificados.map(extraerTextoDeContenido).filter((p) => p !== \"\");\n\tconst texto = partes\n\t\t.join(\"\\n\\n\")\n\t\t.replace(/\\n{3,}/g, \"\\n\\n\")\n\t\t.trim();\n\tif (texto === \"\") return { estado: \"sin-capa\", detalle: \"los flujos de contenido no produjeron texto\" };\n\treturn { estado: \"texto\", texto };\n}\n\nconst CABECERA_TEXTO = \"[PDF: capa de texto extraída]\";\nconst CABECERA_SIN_CAPA =\n\t\"[PDF sin capa de texto: es un PDF escaneado o de solo imágenes. No está vacío; su contenido son imágenes y aquí no hay OCR.]\";\n\n/**\n * Envuelve la definición de `read` ya construida — mismo patrón que\n * `envolverReadConUrlsInternas`, y por la misma razón: `read.ts` es de\n * upstream y el presupuesto de sync está al tope. Si la ruta apunta a un PDF\n * real (firma `%PDF-`, nunca la extensión: los ficheros mienten), lo resuelve\n * aquí; si no, delega SIN haber leído más que la cabecera.\n */\nexport function envolverReadConPdf<TBase extends ToolDefinition<any, any, any>>(base: TBase, cwd: string): TBase {\n\treturn {\n\t\t...base,\n\t\tasync execute(toolCallId, params, signal, onUpdate, ctx): Promise<AgentToolResult<unknown>> {\n\t\t\tif (typeof params !== \"object\" || params === null || !(\"path\" in params)) {\n\t\t\t\treturn base.execute(toolCallId, params, signal, onUpdate, ctx);\n\t\t\t}\n\t\t\tconst rutaCruda: unknown = params.path;\n\t\t\tif (typeof rutaCruda !== \"string\" || rutaCruda === \"\" || rutaCruda.includes(\"://\")) {\n\t\t\t\treturn base.execute(toolCallId, params, signal, onUpdate, ctx);\n\t\t\t}\n\t\t\tconst absoluta = isAbsolute(rutaCruda) ? rutaCruda : join(cwd, rutaCruda);\n\t\t\ttry {\n\t\t\t\t// Solo la CABEZA antes de decidir: un binario de 500 MB no se lee\n\t\t\t\t// entero para descubrir que no es un PDF.\n\t\t\t\tconst manejador = await open(absoluta, \"r\");\n\t\t\t\tlet cabeza: Buffer;\n\t\t\t\ttry {\n\t\t\t\t\tcabeza = Buffer.alloc(1024);\n\t\t\t\t\tconst { bytesRead } = await manejador.read(cabeza, 0, cabeza.length, 0);\n\t\t\t\t\tif (!cabeza.subarray(0, bytesRead).toString(\"latin1\").includes(\"%PDF-\")) {\n\t\t\t\t\t\treturn base.execute(toolCallId, params, signal, onUpdate, ctx);\n\t\t\t\t\t}\n\t\t\t\t} finally {\n\t\t\t\t\tawait manejador.close();\n\t\t\t\t}\n\t\t\t\tconst buffer = await readFile(absoluta);\n\t\t\t\tconst resultado = extraerTextoPdf(buffer);\n\t\t\t\tif (resultado.estado === \"no-pudo\") {\n\t\t\t\t\tthrow new Error(`El PDF no se pudo leer: ${resultado.motivo}.`);\n\t\t\t\t}\n\t\t\t\tif (resultado.estado === \"sin-capa\") {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontent: [{ type: \"text\", text: `${CABECERA_SIN_CAPA}\\nDetalle: ${resultado.detalle}` }],\n\t\t\t\t\t\tdetails: { pdf: resultado.estado },\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst truncado = truncateHead(resultado.texto);\n\t\t\t\tlet texto = `${CABECERA_TEXTO}\\n${truncado.content}`;\n\t\t\t\tif (truncado.truncated) {\n\t\t\t\t\ttexto += `\\n[Truncado: ${truncado.outputLines} de ${truncado.totalLines} líneas del texto extraído.]`;\n\t\t\t\t}\n\t\t\t\treturn { content: [{ type: \"text\", text: texto }], details: { pdf: \"texto\" } };\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof Error && error.message.startsWith(\"El PDF no se pudo leer\")) throw error;\n\t\t\t\t// Que la falta de permisos o el directorio la cuente `read`\n\t\t\t\t// con SU mensaje, no el nuestro.\n\t\t\t\treturn base.execute(toolCallId, params, signal, onUpdate, ctx);\n\t\t\t}\n\t\t},\n\t};\n}\n"]}
1
+ {"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../../src/core/lectura/pdf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG9E,MAAM,MAAM,YAAY,GACrB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAmMzC,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CA+B5D;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAmD/G"}
@@ -1 +1 @@
1
- {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../../src/core/lectura/pdf.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Lectura de PDF sin dependencias: los flujos de contenido de un PDF van\n * comprimidos con Flate (zlib), y `node:zlib` viene de serie. omp lo resuelve\n * renderizando el documento en un navegador headless y haciéndole capturas:\n * infraestructura pesada que aquí no existe. Lo que se extrae es la CAPA DE\n * TEXTO, no una imagen del documento.\n *\n * LOS TRES ESTADOS, nunca dos — confundir dos de ellos es un fallo que se lee\n * como éxito:\n *\n * - `texto`: hay capa de texto y se extrajo. El caso normal.\n * - `sin-capa`: el PDF está BIEN FORMADO pero no trae texto (escaneado o\n * solo imágenes). NO es «fichero vacío»: decir eso sería\n * mentir sobre la causa, y el modelo se lo creería.\n * - `no-pudo`: cifrado, malformado o sin firma. No se sabe qué había.\n *\n * LÍMITES, dichos antes de descubrirlos nadie:\n * · No sigue el cross-reference table: recorre los objetos `N 0 obj …\n * stream…endstream` directamente. Para leer texto basta y evita toda la\n * maquinaria de xref (incluidos los xref streams comprimidos).\n * · Los operadores de posicionamiento fino (Tm, matrices) se aproximan:\n * salto de línea en Td/TD con componente vertical distinta de cero, T*,\n * BT; espacio cuando el kerning de TJ es muy negativo. El ORDEN del\n * texto se conserva; la GEOMETRÍA no. Para layout exacto, omp tiene el\n * navegador y nosotros no fingimos tenerlo.\n * · No descifra: un PDF con /Encrypt se reporta como `no-pudo`, nunca se\n * intenta a ciegas.\n */\n\nimport { open, readFile } from \"node:fs/promises\";\nimport { isAbsolute, join } from \"node:path\";\nimport { inflateSync } from \"node:zlib\";\nimport type { AgentToolResult, ToolDefinition } from \"../extensions/types.ts\";\nimport { truncateHead } from \"../tools/truncate.ts\";\n\nexport type ResultadoPdf =\n\t| { estado: \"texto\"; texto: string }\n\t| { estado: \"sin-capa\"; detalle: string }\n\t| { estado: \"no-pudo\"; motivo: string };\n\n/** Techo de seguridad: un PDF malicioso no decide cuánta CPU gasta el lector. */\nconst MAX_FLUJOS = 800;\nconst MAX_DECODIFICADO = 8 * 1024 * 1024;\n\ninterface Flujo {\n\tdiccionario: string;\n\tcontenido: string;\n}\n\nfunction flujosDe(crudo: string): Flujo[] {\n\tconst flujos: Flujo[] = [];\n\tlet idx = 0;\n\twhile (flujos.length < MAX_FLUJOS) {\n\t\tconst kw = crudo.indexOf(\"stream\", idx);\n\t\tif (kw === -1) break;\n\t\tconst cierreDict = crudo.lastIndexOf(\">>\", kw);\n\t\tconst aperturaDict = cierreDict === -1 ? -1 : crudo.lastIndexOf(\"<<\", cierreDict);\n\t\tif (aperturaDict === -1 || cierreDict < aperturaDict) {\n\t\t\tidx = kw + 6;\n\t\t\tcontinue;\n\t\t}\n\t\tlet p = kw + 6;\n\t\tif (crudo[p] === \"\\r\") p++;\n\t\tif (crudo[p] === \"\\n\") p++;\n\t\tconst fin = crudo.indexOf(\"endstream\", p);\n\t\tif (fin === -1) {\n\t\t\tidx = kw + 6;\n\t\t\tcontinue;\n\t\t}\n\t\tflujos.push({ diccionario: crudo.slice(aperturaDict, cierreDict + 2), contenido: crudo.slice(p, fin) });\n\t\tidx = fin + 9;\n\t}\n\treturn flujos;\n}\n\nfunction decodificar(flujos: Flujo[]): { decodificados: string[]; fallosInflado: number } {\n\tconst decodificados: string[] = [];\n\tlet fallosInflado = 0;\n\tlet presupuesto = MAX_DECODIFICADO;\n\tfor (const flujo of flujos) {\n\t\tif (presupuesto <= 0) break;\n\t\t// Una imagen también va en Flate e infla megas sin aportar texto: se\n\t\t// excluye ANTES de descomprimirla, no después.\n\t\tif (/\\/Subtype\\s*\\/Image/.test(flujo.diccionario)) continue;\n\t\ttry {\n\t\t\tconst bruto = Buffer.from(flujo.contenido, \"latin1\");\n\t\t\tconst datos = flujo.diccionario.includes(\"/FlateDecode\") ? inflateSync(bruto) : bruto;\n\t\t\tif (datos.length > presupuesto) continue;\n\t\t\tpresupuesto -= datos.length;\n\t\t\tconst texto = datos.toString(\"latin1\");\n\t\t\t// Solo quedan los flujos que SON de contenido: operadores de texto.\n\t\t\tif (/\\bBT\\b/.test(texto) && /\\b(Tj|TJ)\\b/.test(texto)) decodificados.push(texto);\n\t\t} catch {\n\t\t\tfallosInflado++;\n\t\t}\n\t}\n\treturn { decodificados, fallosInflado };\n}\n\n/**\n * Escáner de operadores de texto. Mantiene una línea en curso y corta en las\n * fronteras que de verdad separan líneas; dentro de una línea, los fragmentos\n * de un TJ se pegan sin inventar separadores.\n */\nfunction extraerTextoDeContenido(decodificado: string): string {\n\tconst lineas: string[] = [];\n\tlet lineaActual = \"\";\n\tlet ultimoNumero = Number.NaN;\n\n\tconst cortaLinea = (): void => {\n\t\tlineas.push(lineaActual);\n\t\tlineaActual = \"\";\n\t};\n\tconst emite = (s: string): void => {\n\t\tlineaActual += s;\n\t};\n\n\tlet i = 0;\n\tconst n = decodificado.length;\n\twhile (i < n) {\n\t\tconst c = decodificado[i];\n\t\tif (c === \"(\") {\n\t\t\ti++;\n\t\t\tlet literal = \"\";\n\t\t\tlet profundidad = 1;\n\t\t\twhile (i < n && profundidad > 0) {\n\t\t\t\tconst ch = decodificado[i];\n\t\t\t\tif (ch === \"\\\\\") {\n\t\t\t\t\tconst sig = decodificado[i + 1];\n\t\t\t\t\tif (sig === \"n\") literal += \"\\n\";\n\t\t\t\t\telse if (sig === \"r\") literal += \"\\r\";\n\t\t\t\t\telse if (sig === \"t\") literal += \"\\t\";\n\t\t\t\t\telse if (sig === \"b\" || sig === \"f\") literal += \" \";\n\t\t\t\t\telse if (sig >= \"0\" && sig <= \"7\") {\n\t\t\t\t\t\t// Octal \\ddd, hasta tres dígitos.\n\t\t\t\t\t\tlet octal = \"\";\n\t\t\t\t\t\tlet j = i + 1;\n\t\t\t\t\t\twhile (j < n && octal.length < 3 && decodificado[j] >= \"0\" && decodificado[j] <= \"7\") {\n\t\t\t\t\t\t\toctal += decodificado[j];\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tliteral += String.fromCharCode(Number.parseInt(octal, 8));\n\t\t\t\t\t\ti = j;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (sig === \"\\r\") {\n\t\t\t\t\t\t// Continuación de línea: la barra se come junto al salto.\n\t\t\t\t\t\ti += decodificado[i + 2] === \"\\n\" ? 3 : 2;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (sig === \"\\n\") {\n\t\t\t\t\t\ti += 2;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else literal += sig ?? \"\";\n\t\t\t\t\ti += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (ch === \"(\") profundidad++;\n\t\t\t\telse if (ch === \")\") {\n\t\t\t\t\tprofundidad--;\n\t\t\t\t\tif (profundidad === 0) {\n\t\t\t\t\t\ti++;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tliteral += ch;\n\t\t\t\ti++;\n\t\t\t}\n\t\t\temite(literal);\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"<\" && decodificado[i + 1] !== \"<\") {\n\t\t\tconst fin = decodificado.indexOf(\">\", i);\n\t\t\tif (fin === -1) break;\n\t\t\tconst hex = decodificado.slice(i + 1, fin).replace(/[^0-9A-Fa-f]/g, \"\");\n\t\t\tlet literal = \"\";\n\t\t\tfor (let j = 0; j + 1 < hex.length; j += 2) {\n\t\t\t\tliteral += String.fromCharCode(Number.parseInt(hex.slice(j, j + 2), 16));\n\t\t\t}\n\t\t\temite(literal);\n\t\t\ti = fin + 1;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"<\") {\n\t\t\t// Diccionario inline «<<»: no aporta operandos de texto.\n\t\t\ti += 2;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"[\" || c === \"]\") {\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"/\") {\n\t\t\t// Nombre: se consume entero para que sus letras no acaben en el texto.\n\t\t\tlet j = i + 1;\n\t\t\twhile (j < n && !/[\\s/[<>()]/.test(decodificado[j])) j++;\n\t\t\ti = j;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"-\" || c === \".\" || (c >= \"0\" && c <= \"9\")) {\n\t\t\tlet j = i + 1;\n\t\t\twhile (j < n && /[0-9.]/.test(decodificado[j])) j++;\n\t\t\tultimoNumero = Number.parseFloat(decodificado.slice(i, j));\n\t\t\t// Kerning muy negativo en TJ: así escriben varias herramientas el\n\t\t\t// espacio que no metieron como literal.\n\t\t\tif (ultimoNumero <= -150) emite(\" \");\n\t\t\ti = j;\n\t\t\tcontinue;\n\t\t}\n\t\tif (!/\\s/.test(c)) {\n\t\t\tlet j = i;\n\t\t\twhile (j < n && !/\\s/.test(decodificado[j]) && !\"()[<>/\".includes(decodificado[j])) j++;\n\t\t\tconst op = decodificado.slice(i, j);\n\t\t\tif (op === \"'\" || op === '\"' || op === \"T*\" || op === \"BT\") {\n\t\t\t\tcortaLinea();\n\t\t\t} else if (op === \"Td\" || op === \"TD\") {\n\t\t\t\t// Solo si mueve en vertical: un desplazamiento horizontal seguido\n\t\t\t\t// NO parte la línea.\n\t\t\t\tif (!Number.isNaN(ultimoNumero) && Math.abs(ultimoNumero) > 0.01) cortaLinea();\n\t\t\t}\n\t\t\t// Tj/TJ no necesitan nada aquí: el literal ya se emitió al\n\t\t\t// parsearlo; el operador solo lo confirma.\n\t\t\tultimoNumero = Number.NaN;\n\t\t\ti = j;\n\t\t\tcontinue;\n\t\t}\n\t\ti++;\n\t}\n\tif (lineaActual.trim() !== \"\") lineas.push(lineaActual);\n\treturn lineas\n\t\t.join(\"\\n\")\n\t\t.replace(/\\n{3,}/g, \"\\n\\n\")\n\t\t.trim();\n}\n\nexport function extraerTextoPdf(buffer: Buffer): ResultadoPdf {\n\t// La firma `%PDF-` puede ir precedida de basura; cabecera amplia.\n\tif (!buffer.subarray(0, 1024).toString(\"latin1\").includes(\"%PDF-\")) {\n\t\treturn { estado: \"no-pudo\", motivo: \"no lleva la firma %PDF-\" };\n\t}\n\tconst crudo = buffer.toString(\"latin1\");\n\tif (/\\/Encrypt\\s+\\d+\\s+\\d+\\s+R/.test(crudo)) {\n\t\treturn { estado: \"no-pudo\", motivo: \"está cifrado y no se descifra a ciegas\" };\n\t}\n\tconst flujos = flujosDe(crudo);\n\tif (flujos.length === 0) {\n\t\treturn crudo.includes(\"/Page\")\n\t\t\t? { estado: \"sin-capa\", detalle: \"el PDF declara páginas pero ningún flujo de contenido legible\" }\n\t\t\t: { estado: \"no-pudo\", motivo: \"estructura no reconocida: ni flujos ni páginas\" };\n\t}\n\tconst { decodificados, fallosInflado } = decodificar(flujos);\n\tif (decodificados.length === 0) {\n\t\tif (fallosInflado > 0)\n\t\t\treturn { estado: \"no-pudo\", motivo: `${fallosInflado} flujo(s) no se pudieron descomprimir` };\n\t\treturn {\n\t\t\testado: \"sin-capa\",\n\t\t\tdetalle: \"los flujos existen pero ninguno contiene operadores de texto (PDF escaneado o de solo imágenes)\",\n\t\t};\n\t}\n\tconst partes = decodificados.map(extraerTextoDeContenido).filter((p) => p !== \"\");\n\tconst texto = partes\n\t\t.join(\"\\n\\n\")\n\t\t.replace(/\\n{3,}/g, \"\\n\\n\")\n\t\t.trim();\n\tif (texto === \"\") return { estado: \"sin-capa\", detalle: \"los flujos de contenido no produjeron texto\" };\n\treturn { estado: \"texto\", texto };\n}\n\nconst CABECERA_TEXTO = \"[PDF: capa de texto extraída]\";\nconst CABECERA_SIN_CAPA =\n\t\"[PDF sin capa de texto: es un PDF escaneado o de solo imágenes. No está vacío; su contenido son imágenes y aquí no hay OCR.]\";\n\n/**\n * Envuelve la definición de `read` ya construida — mismo patrón que\n * `envolverReadConUrlsInternas`, y por la misma razón: `read.ts` es de\n * upstream y el presupuesto de sync está al tope. Si la ruta apunta a un PDF\n * real (firma `%PDF-`, nunca la extensión: los ficheros mienten), lo resuelve\n * aquí; si no, delega SIN haber leído más que la cabecera.\n */\nexport function envolverReadConPdf<TBase extends ToolDefinition<any, any, any>>(base: TBase, cwd: string): TBase {\n\treturn {\n\t\t...base,\n\t\tasync execute(toolCallId, params, signal, onUpdate, ctx): Promise<AgentToolResult<unknown>> {\n\t\t\tif (typeof params !== \"object\" || params === null || !(\"path\" in params)) {\n\t\t\t\treturn base.execute(toolCallId, params, signal, onUpdate, ctx);\n\t\t\t}\n\t\t\tconst rutaCruda: unknown = params.path;\n\t\t\tif (typeof rutaCruda !== \"string\" || rutaCruda === \"\" || rutaCruda.includes(\"://\")) {\n\t\t\t\treturn base.execute(toolCallId, params, signal, onUpdate, ctx);\n\t\t\t}\n\t\t\tconst absoluta = isAbsolute(rutaCruda) ? rutaCruda : join(cwd, rutaCruda);\n\t\t\ttry {\n\t\t\t\t// Solo la CABEZA antes de decidir: un binario de 500 MB no se lee\n\t\t\t\t// entero para descubrir que no es un PDF.\n\t\t\t\tconst manejador = await open(absoluta, \"r\");\n\t\t\t\tlet cabeza: Buffer;\n\t\t\t\ttry {\n\t\t\t\t\tcabeza = Buffer.alloc(1024);\n\t\t\t\t\tconst { bytesRead } = await manejador.read(cabeza, 0, cabeza.length, 0);\n\t\t\t\t\tif (!cabeza.subarray(0, bytesRead).toString(\"latin1\").includes(\"%PDF-\")) {\n\t\t\t\t\t\treturn base.execute(toolCallId, params, signal, onUpdate, ctx);\n\t\t\t\t\t}\n\t\t\t\t} finally {\n\t\t\t\t\tawait manejador.close();\n\t\t\t\t}\n\t\t\t\tconst buffer = await readFile(absoluta);\n\t\t\t\tconst resultado = extraerTextoPdf(buffer);\n\t\t\t\tif (resultado.estado === \"no-pudo\") {\n\t\t\t\t\tthrow new Error(`El PDF no se pudo leer: ${resultado.motivo}.`);\n\t\t\t\t}\n\t\t\t\tif (resultado.estado === \"sin-capa\") {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontent: [{ type: \"text\", text: `${CABECERA_SIN_CAPA}\\nDetalle: ${resultado.detalle}` }],\n\t\t\t\t\t\tdetails: { pdf: resultado.estado },\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst truncado = truncateHead(resultado.texto);\n\t\t\t\tlet texto = `${CABECERA_TEXTO}\\n${truncado.content}`;\n\t\t\t\tif (truncado.truncated) {\n\t\t\t\t\ttexto += `\\n[Truncado: ${truncado.outputLines} de ${truncado.totalLines} líneas del texto extraído.]`;\n\t\t\t\t}\n\t\t\t\treturn { content: [{ type: \"text\", text: texto }], details: { pdf: \"texto\" } };\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof Error && error.message.startsWith(\"El PDF no se pudo leer\")) throw error;\n\t\t\t\t// Que la falta de permisos o el directorio la cuente `read`\n\t\t\t\t// con SU mensaje, no el nuestro.\n\t\t\t\treturn base.execute(toolCallId, params, signal, onUpdate, ctx);\n\t\t\t}\n\t\t},\n\t};\n}\n"]}
1
+ {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../../src/core/lectura/pdf.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Sniffer binario: clasifica un fichero como binario/texto por CONTENIDO antes
3
+ * de decodificarlo como UTF-8 y mostrárselo al modelo.
4
+ *
5
+ * EL BUG QUE MOTIVA ESTO: `read.ts:275` hace `buffer.toString("utf-8")` sobre
6
+ * cualquier fichero que no sea imagen. Un .wasm, un .png sin extensión, un
7
+ * .so, un .db — el decode es lossy: NUL bytes y secuencias inválidas se
8
+ * convierten en U+FFFD y caracteres de control, quemando el contexto con
9
+ * mojibake que el modelo no puede usar. omp lo resuelve con el mismo
10
+ * heurístico de git: sniffea los primeros 8 KB.
11
+ *
12
+ * REGLA (espejo de git):
13
+ * · NUL byte en la cabecera → binario (true binary + UTF-16/32 cuyo rango
14
+ * ASCII lleva padding NUL).
15
+ * · Decode UTF-8 estricto (fatal) falla → binario (secuencia inválida real;
16
+ * streaming mode tolera multibyte truncado en el borde de la cabecera).
17
+ * · Todo lo demás → texto.
18
+ *
19
+ * FICHERO VACÍO → texto (no binario): un fichero de 0 bytes no produce
20
+ * mojibake y el modelo necesita saber que existe y está vacío.
21
+ */
22
+ import type { ToolDefinition } from "../extensions/types.ts";
23
+ /** Cabecera sniffeada: espejo de los 8.000 bytes de git. */
24
+ export declare const BINARY_SNIFF_BYTES = 8192;
25
+ /**
26
+ * Clasifica una cabecera en memoria como binaria (no texto UTF-8).
27
+ *
28
+ * Binario cuando la cabecera contiene un byte NUL (true binary, más texto
29
+ * UTF-16/32 cuyo rango ASCII lleva padding NUL) o cuando no es UTF-8 válido.
30
+ * El decode corre en modo streaming para que una secuencia multibyte
31
+ * truncada en el borde de la cabecera se tolere, mientras que cualquier byte
32
+ * genuinamente inválido falla — igual que el decode `fatal` estricto que las
33
+ * rutas de lectura `local://`/`ssh://` ya usan.
34
+ */
35
+ export declare function esCabeceraBinaria(cabecera: Uint8Array): boolean;
36
+ /**
37
+ * Sniffea los primeros {@link BINARY_SNIFF_BYTES} de `ruta` y devuelve si es
38
+ * binario. Abre el fichero, lee la cabecera y cierra — nunca lee el fichero
39
+ * entero solo para clasificarlo.
40
+ */
41
+ export declare function esProbablementeBinario(ruta: string, maxBytes?: number): Promise<boolean>;
42
+ /**
43
+ * Envuelve la definición de `read` ya construida para que un fichero binario
44
+ * devuelva un aviso limpio en vez de mojibake que quema el contexto. Mismo
45
+ * patrón que `envolverReadConPdf` y `envolverReadConUrlsInternas`: read.ts es
46
+ * de upstream y el presupuesto de sync está al tope.
47
+ *
48
+ * Orden de composición: el sniffer va MÁS ADENTRO que el PDF wrapper (un PDF
49
+ * es binario por el sniffer, pero el PDF wrapper lo maneja con su propio
50
+ * mensaje más útil; el sniffer solo actúa sobre binarios que NADIE más
51
+ * maneja).
52
+ */
53
+ export declare function envolverReadConSniffer(base: ToolDefinition<any, any, any>, cwd: string): ToolDefinition<any, any, any>;
54
+ //# sourceMappingURL=sniffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sniffer.d.ts","sourceRoot":"","sources":["../../../src/core/lectura/sniffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE9E,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAQ/D;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAS1G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACnC,GAAG,EAAE,MAAM,GACT,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CA+B/B"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Sniffer binario: clasifica un fichero como binario/texto por CONTENIDO antes
3
+ * de decodificarlo como UTF-8 y mostrárselo al modelo.
4
+ *
5
+ * EL BUG QUE MOTIVA ESTO: `read.ts:275` hace `buffer.toString("utf-8")` sobre
6
+ * cualquier fichero que no sea imagen. Un .wasm, un .png sin extensión, un
7
+ * .so, un .db — el decode es lossy: NUL bytes y secuencias inválidas se
8
+ * convierten en U+FFFD y caracteres de control, quemando el contexto con
9
+ * mojibake que el modelo no puede usar. omp lo resuelve con el mismo
10
+ * heurístico de git: sniffea los primeros 8 KB.
11
+ *
12
+ * REGLA (espejo de git):
13
+ * · NUL byte en la cabecera → binario (true binary + UTF-16/32 cuyo rango
14
+ * ASCII lleva padding NUL).
15
+ * · Decode UTF-8 estricto (fatal) falla → binario (secuencia inválida real;
16
+ * streaming mode tolera multibyte truncado en el borde de la cabecera).
17
+ * · Todo lo demás → texto.
18
+ *
19
+ * FICHERO VACÍO → texto (no binario): un fichero de 0 bytes no produce
20
+ * mojibake y el modelo necesita saber que existe y está vacío.
21
+ */
22
+ import { open } from "node:fs/promises";
23
+ import { isAbsolute, join } from "node:path";
24
+ /** Cabecera sniffeada: espejo de los 8.000 bytes de git. */
25
+ export const BINARY_SNIFF_BYTES = 8192;
26
+ /**
27
+ * Clasifica una cabecera en memoria como binaria (no texto UTF-8).
28
+ *
29
+ * Binario cuando la cabecera contiene un byte NUL (true binary, más texto
30
+ * UTF-16/32 cuyo rango ASCII lleva padding NUL) o cuando no es UTF-8 válido.
31
+ * El decode corre en modo streaming para que una secuencia multibyte
32
+ * truncada en el borde de la cabecera se tolere, mientras que cualquier byte
33
+ * genuinamente inválido falla — igual que el decode `fatal` estricto que las
34
+ * rutas de lectura `local://`/`ssh://` ya usan.
35
+ */
36
+ export function esCabeceraBinaria(cabecera) {
37
+ if (cabecera.indexOf(0) !== -1)
38
+ return true;
39
+ try {
40
+ new TextDecoder("utf-8", { fatal: true }).decode(cabecera, { stream: true });
41
+ return false;
42
+ }
43
+ catch {
44
+ return true;
45
+ }
46
+ }
47
+ /**
48
+ * Sniffea los primeros {@link BINARY_SNIFF_BYTES} de `ruta` y devuelve si es
49
+ * binario. Abre el fichero, lee la cabecera y cierra — nunca lee el fichero
50
+ * entero solo para clasificarlo.
51
+ */
52
+ export async function esProbablementeBinario(ruta, maxBytes = BINARY_SNIFF_BYTES) {
53
+ const manejador = await open(ruta, "r");
54
+ try {
55
+ const cabecera = Buffer.alloc(Math.min(maxBytes, BINARY_SNIFF_BYTES));
56
+ const { bytesRead } = await manejador.read(cabecera, 0, cabecera.length, 0);
57
+ return esCabeceraBinaria(cabecera.subarray(0, bytesRead));
58
+ }
59
+ finally {
60
+ await manejador.close();
61
+ }
62
+ }
63
+ /**
64
+ * Envuelve la definición de `read` ya construida para que un fichero binario
65
+ * devuelva un aviso limpio en vez de mojibake que quema el contexto. Mismo
66
+ * patrón que `envolverReadConPdf` y `envolverReadConUrlsInternas`: read.ts es
67
+ * de upstream y el presupuesto de sync está al tope.
68
+ *
69
+ * Orden de composición: el sniffer va MÁS ADENTRO que el PDF wrapper (un PDF
70
+ * es binario por el sniffer, pero el PDF wrapper lo maneja con su propio
71
+ * mensaje más útil; el sniffer solo actúa sobre binarios que NADIE más
72
+ * maneja).
73
+ */
74
+ export function envolverReadConSniffer(base, cwd) {
75
+ return {
76
+ ...base,
77
+ async execute(toolCallId, params, signal, onUpdate, ctx) {
78
+ const rutaCruda = typeof params === "object" && params !== null && "path" in params ? params.path : undefined;
79
+ if (typeof rutaCruda !== "string" || rutaCruda === "" || rutaCruda.includes("://")) {
80
+ return base.execute(toolCallId, params, signal, onUpdate, ctx);
81
+ }
82
+ const absoluta = isAbsolute(rutaCruda) ? rutaCruda : join(cwd, rutaCruda);
83
+ try {
84
+ if (await esProbablementeBinario(absoluta)) {
85
+ const { stat } = await import("node:fs/promises");
86
+ const info = await stat(absoluta);
87
+ return {
88
+ content: [
89
+ {
90
+ type: "text",
91
+ text: `[Fichero binario: ${info.size} bytes. No se decodifica como texto para no quemar el contexto con mojibake. Usa bash para inspeccionarlo: file, xxd, strings, hexdump.]`,
92
+ },
93
+ ],
94
+ details: { binary: true, size: info.size },
95
+ };
96
+ }
97
+ }
98
+ catch {
99
+ // Que el error de acceso lo cuente `read` con SU mensaje.
100
+ return base.execute(toolCallId, params, signal, onUpdate, ctx);
101
+ }
102
+ return base.execute(toolCallId, params, signal, onUpdate, ctx);
103
+ },
104
+ };
105
+ }
106
+ //# sourceMappingURL=sniffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sniffer.js","sourceRoot":"","sources":["../../../src/core/lectura/sniffer.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,13 @@
5
5
  * que distingue "no he mirado" de "he mirado y no hay nada" cuando no
6
6
  * aparece ningún comprobador ejecutable.
7
7
  */
8
- import type { Comprobador, Deteccion, Diagnostico } from "./tipos.ts";
8
+ import type { Comprobador, Deteccion, Diagnostico, OpcionesCleanse, SalidaComando } from "./tipos.ts";
9
9
  /**
10
10
  * Mira qué hay en el proyecto y arma la lista de comprobadores ejecutables.
11
11
  * Prioridad por lenguaje: la config específica (biome/eslint/tsconfig) gana
12
12
  * sobre el script de package.json genérico, porque sabemos parsear su salida.
13
13
  */
14
- export declare function detectarComprobadores(cwd: string): Deteccion;
14
+ export declare function detectarComprobadores(cwd: string, opciones?: OpcionesCleanse): Deteccion;
15
15
  export interface ResultadoEjecucion {
16
16
  diagnosticos: Diagnostico[];
17
17
  /** Comprobadores que NO se pudieron ejecutar (ejecutable ausente, timeout…) — no confundir con "corrió limpio". */
@@ -23,6 +23,20 @@ export interface ResultadoEjecucion {
23
23
  }
24
24
  /** Ejecuta comprobadores en paralelo y agrega sus diagnósticos. */
25
25
  export declare function ejecutarComprobadores(comprobadores: readonly Comprobador[]): Promise<ResultadoEjecucion>;
26
+ /**
27
+ * Ejecuta un único comprobador en modo streaming: emite diagnósticos
28
+ * incrementalmente cortando en última \n (exactly-once) cada chunk / 5s.
29
+ */
30
+ export declare function ejecutarComprobadorStreaming(comprobador: Comprobador, onNuevos: (diagnosticos: Diagnostico[]) => void, timeoutMs?: number): Promise<{
31
+ ok: true;
32
+ salida: SalidaComando;
33
+ diagnosticos: Diagnostico[];
34
+ } | {
35
+ ok: false;
36
+ motivo: string;
37
+ }>;
38
+ /** Ejecuta comprobadores con streaming opcional y board; mantiene compat con ejecutarComprobadores. */
39
+ export declare function ejecutarComprobadoresConStreaming(comprobadores: readonly Comprobador[], onNuevos?: (diagnosticos: Diagnostico[]) => void, onEstado?: (id: string, estado: "start" | "done" | "fail", info?: string) => void): Promise<ResultadoEjecucion>;
26
40
  /** Re-ejecuta solo los comprobadores pedidos (por id) — la verificación tras un arreglo. */
27
41
  export declare function ejecutarComprobadoresPorId(comprobadores: readonly Comprobador[], ids: ReadonlySet<string>): Promise<ResultadoEjecucion>;
28
42
  //# sourceMappingURL=comprobadores.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"comprobadores.d.ts","sourceRoot":"","sources":["../../../src/core/limpieza/comprobadores.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAoDrF;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAwK5D;AA2CD,MAAM,WAAW,kBAAkB;IAClC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,wHAAmH;IACnH,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AAED,oEAAmE;AACnE,wBAAsB,qBAAqB,CAAC,aAAa,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkC9G;AAED,+FAA4F;AAC5F,wBAAgB,0BAA0B,CACzC,aAAa,EAAE,SAAS,WAAW,EAAE,EACrC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAE7B","sourcesContent":["/**\n * Detección y ejecución de comprobadores — MIRANDO lo que hay en el\n * proyecto, nunca inventando uno. `detectarComprobadores` documenta en\n * `mirado` cada sitio que ha comprobado, se haya encontrado algo o no: es lo\n * que distingue \"no he mirado\" de \"he mirado y no hay nada\" cuando no\n * aparece ningún comprobador ejecutable.\n */\n\nimport { spawn, spawnSync } from \"node:child_process\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { parsearBiomeGithub, parsearEslint, parsearGenerico, parsearTestFallido, parsearTsc } from \"./parseo.ts\";\nimport type { Comprobador, Deteccion, Diagnostico, SalidaComando } from \"./tipos.ts\";\n\nconst CONFIGS_ESLINT = [\n\t\"eslint.config.js\",\n\t\"eslint.config.mjs\",\n\t\"eslint.config.cjs\",\n\t\"eslint.config.ts\",\n\t\".eslintrc\",\n\t\".eslintrc.js\",\n\t\".eslintrc.cjs\",\n\t\".eslintrc.json\",\n];\n\n/** Busca un binario en `node_modules/.bin` subiendo directorios — la misma resolución que usa `npm run`. */\nfunction resolverBinLocal(desde: string, nombre: string): string | undefined {\n\tlet dir = desde;\n\tfor (;;) {\n\t\tconst candidato = join(dir, \"node_modules\", \".bin\", nombre);\n\t\tif (existsSync(candidato)) return candidato;\n\t\tconst padre = dirname(dir);\n\t\tif (padre === dir) return undefined;\n\t\tdir = padre;\n\t}\n}\n\n/** true si `nombre` resuelve en PATH — para herramientas ajenas a node (ruff, cargo, go). */\nfunction hayEnPath(nombre: string): boolean {\n\tconst r = spawnSync(process.platform === \"win32\" ? \"where\" : \"which\", [nombre], { stdio: \"ignore\" });\n\treturn r.status === 0;\n}\n\nfunction leerPackageJson(cwd: string): { scripts?: Record<string, string> } | undefined {\n\tconst ruta = join(cwd, \"package.json\");\n\tif (!existsSync(ruta)) return undefined;\n\ttry {\n\t\treturn JSON.parse(readFileSync(ruta, \"utf-8\"));\n\t} catch {\n\t\t// package.json ilegible: se trata como ausente, no se inventa nada a partir de él.\n\t\treturn undefined;\n\t}\n}\n\nfunction tienePyprojectRuff(cwd: string): boolean {\n\tconst ruta = join(cwd, \"pyproject.toml\");\n\tif (!existsSync(ruta)) return false;\n\ttry {\n\t\treturn readFileSync(ruta, \"utf-8\").includes(\"[tool.ruff]\");\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n/**\n * Mira qué hay en el proyecto y arma la lista de comprobadores ejecutables.\n * Prioridad por lenguaje: la config específica (biome/eslint/tsconfig) gana\n * sobre el script de package.json genérico, porque sabemos parsear su salida.\n */\nexport function detectarComprobadores(cwd: string): Deteccion {\n\tconst mirado: string[] = [];\n\tconst comprobadores: Comprobador[] = [];\n\tconst tiene = (id: string) => comprobadores.some((c) => c.id === id);\n\n\tconst pkg = leerPackageJson(cwd);\n\tmirado.push(`package.json (${existsSync(join(cwd, \"package.json\")) ? \"existe\" : \"no existe\"})`);\n\n\tconst biomeConfig = existsSync(join(cwd, \"biome.json\")) || existsSync(join(cwd, \"biome.jsonc\"));\n\tmirado.push(`biome.json / biome.jsonc (${biomeConfig ? \"encontrado\" : \"no encontrado\"})`);\n\tif (biomeConfig) {\n\t\tconst bin = resolverBinLocal(cwd, \"biome\");\n\t\tif (bin) {\n\t\t\tcomprobadores.push({\n\t\t\t\tid: \"lint\",\n\t\t\t\tetiqueta: \"lint (biome)\",\n\t\t\t\tcomando: bin,\n\t\t\t\targs: [\"lint\", \"--reporter=github\", \".\"],\n\t\t\t\tcwd,\n\t\t\t\tparsear: parsearBiomeGithub,\n\t\t\t\talcance: \"fichero\",\n\t\t\t});\n\t\t} else {\n\t\t\tmirado.push(\"biome: config encontrada pero no hay node_modules/.bin/biome en el árbol de directorios\");\n\t\t}\n\t}\n\n\tconst eslintConfig = CONFIGS_ESLINT.some((f) => existsSync(join(cwd, f)));\n\tmirado.push(`config de eslint (${eslintConfig ? \"encontrada\" : \"no encontrada\"})`);\n\tif (eslintConfig && !tiene(\"lint\")) {\n\t\tconst bin = resolverBinLocal(cwd, \"eslint\");\n\t\tif (bin) {\n\t\t\tcomprobadores.push({\n\t\t\t\tid: \"lint\",\n\t\t\t\tetiqueta: \"lint (eslint)\",\n\t\t\t\tcomando: bin,\n\t\t\t\targs: [\".\", \"--format\", \"json\"],\n\t\t\t\tcwd,\n\t\t\t\tparsear: parsearEslint,\n\t\t\t\talcance: \"fichero\",\n\t\t\t});\n\t\t} else {\n\t\t\tmirado.push(\"eslint: config encontrada pero no hay node_modules/.bin/eslint en el árbol de directorios\");\n\t\t}\n\t}\n\n\tif (pkg?.scripts?.lint && !tiene(\"lint\")) {\n\t\tmirado.push(\"package.json → scripts.lint (encontrado, sin config de biome/eslint reconocida)\");\n\t\tcomprobadores.push({\n\t\t\tid: \"lint\",\n\t\t\tetiqueta: \"lint (npm run lint)\",\n\t\t\tcomando: \"npm\",\n\t\t\targs: [\"run\", \"lint\", \"--silent\"],\n\t\t\tcwd,\n\t\t\tparsear: parsearGenerico,\n\t\t\talcance: \"fichero\",\n\t\t});\n\t}\n\n\tconst tsconfig = existsSync(join(cwd, \"tsconfig.json\"));\n\tmirado.push(`tsconfig.json (${tsconfig ? \"encontrado\" : \"no encontrado\"})`);\n\tif (tsconfig) {\n\t\tconst bin = resolverBinLocal(cwd, \"tsc\");\n\t\tif (bin) {\n\t\t\tcomprobadores.push({\n\t\t\t\tid: \"typecheck\",\n\t\t\t\tetiqueta: \"typecheck (tsc)\",\n\t\t\t\tcomando: bin,\n\t\t\t\targs: [\"--noEmit\", \"--pretty\", \"false\"],\n\t\t\t\tcwd,\n\t\t\t\tparsear: parsearTsc,\n\t\t\t\talcance: \"fichero\",\n\t\t\t});\n\t\t} else if (pkg?.scripts?.typecheck) {\n\t\t\tcomprobadores.push({\n\t\t\t\tid: \"typecheck\",\n\t\t\t\tetiqueta: \"typecheck (npm run typecheck)\",\n\t\t\t\tcomando: \"npm\",\n\t\t\t\targs: [\"run\", \"typecheck\", \"--silent\"],\n\t\t\t\tcwd,\n\t\t\t\tparsear: parsearGenerico,\n\t\t\t\talcance: \"fichero\",\n\t\t\t});\n\t\t} else {\n\t\t\tmirado.push(\"tsconfig.json: sin node_modules/.bin/tsc ni scripts.typecheck en package.json\");\n\t\t}\n\t} else if (pkg?.scripts?.typecheck) {\n\t\tmirado.push(\"package.json → scripts.typecheck (encontrado, sin tsconfig.json)\");\n\t\tcomprobadores.push({\n\t\t\tid: \"typecheck\",\n\t\t\tetiqueta: \"typecheck (npm run typecheck)\",\n\t\t\tcomando: \"npm\",\n\t\t\targs: [\"run\", \"typecheck\", \"--silent\"],\n\t\t\tcwd,\n\t\t\tparsear: parsearGenerico,\n\t\t\talcance: \"fichero\",\n\t\t});\n\t}\n\n\tif (pkg?.scripts?.test) {\n\t\tmirado.push(\"package.json → scripts.test (encontrado)\");\n\t\tcomprobadores.push({\n\t\t\tid: \"test\",\n\t\t\tetiqueta: \"test (npm test)\",\n\t\t\tcomando: \"npm\",\n\t\t\targs: [\"test\", \"--silent\"],\n\t\t\tcwd,\n\t\t\tparsear: (salida) => parsearTestFallido(salida),\n\t\t\talcance: \"proyecto\",\n\t\t});\n\t}\n\n\tconst ruffConfig =\n\t\texistsSync(join(cwd, \"ruff.toml\")) || existsSync(join(cwd, \".ruff.toml\")) || tienePyprojectRuff(cwd);\n\tmirado.push(`pyproject.toml [tool.ruff] / ruff.toml / .ruff.toml (${ruffConfig ? \"encontrado\" : \"no encontrado\"})`);\n\tif (ruffConfig) {\n\t\tif (hayEnPath(\"ruff\")) {\n\t\t\tcomprobadores.push({\n\t\t\t\tid: \"lint-py\",\n\t\t\t\tetiqueta: \"lint (ruff)\",\n\t\t\t\tcomando: \"ruff\",\n\t\t\t\targs: [\"check\", \".\"],\n\t\t\t\tcwd,\n\t\t\t\tparsear: parsearGenerico,\n\t\t\t\talcance: \"fichero\",\n\t\t\t});\n\t\t} else {\n\t\t\tmirado.push(\"ruff: config encontrada pero el ejecutable 'ruff' no está en PATH\");\n\t\t}\n\t}\n\n\tconst cargoToml = existsSync(join(cwd, \"Cargo.toml\"));\n\tmirado.push(`Cargo.toml (${cargoToml ? \"encontrado\" : \"no encontrado\"})`);\n\tif (cargoToml) {\n\t\tif (hayEnPath(\"cargo\")) {\n\t\t\tcomprobadores.push({\n\t\t\t\tid: \"lint-rs\",\n\t\t\t\tetiqueta: \"lint (cargo clippy)\",\n\t\t\t\tcomando: \"cargo\",\n\t\t\t\targs: [\"clippy\", \"--message-format=short\"],\n\t\t\t\tcwd,\n\t\t\t\tparsear: parsearGenerico,\n\t\t\t\talcance: \"fichero\",\n\t\t\t});\n\t\t} else {\n\t\t\tmirado.push(\"cargo clippy: Cargo.toml encontrado pero el ejecutable 'cargo' no está en PATH\");\n\t\t}\n\t}\n\n\tconst goMod = existsSync(join(cwd, \"go.mod\"));\n\tmirado.push(`go.mod (${goMod ? \"encontrado\" : \"no encontrado\"})`);\n\tif (goMod) {\n\t\tif (hayEnPath(\"go\")) {\n\t\t\tcomprobadores.push({\n\t\t\t\tid: \"vet-go\",\n\t\t\t\tetiqueta: \"vet (go vet)\",\n\t\t\t\tcomando: \"go\",\n\t\t\t\targs: [\"vet\", \"./...\"],\n\t\t\t\tcwd,\n\t\t\t\tparsear: parsearGenerico,\n\t\t\t\talcance: \"fichero\",\n\t\t\t});\n\t\t} else {\n\t\t\tmirado.push(\"go vet: go.mod encontrado pero el ejecutable 'go' no está en PATH\");\n\t\t}\n\t}\n\n\treturn { comprobadores, mirado };\n}\n\n/** Ejecuta un comando y distingue \"no pude ejecutarlo\" (ENOENT, timeout) de una ejecución real. */\nfunction ejecutarComando(\n\tcomprobador: Comprobador,\n\ttimeoutMs = 120_000,\n): Promise<{ ok: true; salida: SalidaComando } | { ok: false; motivo: string }> {\n\treturn new Promise((resolve) => {\n\t\tlet proc: ReturnType<typeof spawn>;\n\t\ttry {\n\t\t\tproc = spawn(comprobador.comando, comprobador.args, {\n\t\t\t\tcwd: comprobador.cwd,\n\t\t\t\tshell: false,\n\t\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tresolve({ ok: false, motivo: error instanceof Error ? error.message : String(error) });\n\t\t\treturn;\n\t\t}\n\t\tlet stdout = \"\";\n\t\tlet stderr = \"\";\n\t\tlet resuelto = false;\n\t\tconst temporizador = setTimeout(() => {\n\t\t\tproc.kill(\"SIGKILL\");\n\t\t\tacabar({ ok: false, motivo: `timeout tras ${timeoutMs}ms` });\n\t\t}, timeoutMs);\n\t\tconst acabar = (r: { ok: true; salida: SalidaComando } | { ok: false; motivo: string }) => {\n\t\t\tif (resuelto) return;\n\t\t\tresuelto = true;\n\t\t\tclearTimeout(temporizador);\n\t\t\tresolve(r);\n\t\t};\n\t\tproc.on(\"error\", (error) => acabar({ ok: false, motivo: error.message }));\n\t\tproc.stdout?.on(\"data\", (d) => {\n\t\t\tstdout += d;\n\t\t});\n\t\tproc.stderr?.on(\"data\", (d) => {\n\t\t\tstderr += d;\n\t\t});\n\t\tproc.on(\"close\", (code) => acabar({ ok: true, salida: { stdout, stderr, code: code ?? 0 } }));\n\t});\n}\n\nexport interface ResultadoEjecucion {\n\tdiagnosticos: Diagnostico[];\n\t/** Comprobadores que NO se pudieron ejecutar (ejecutable ausente, timeout…) — no confundir con \"corrió limpio\". */\n\tfallidos: Array<{ id: string; etiqueta: string; motivo: string }>;\n}\n\n/** Ejecuta comprobadores en paralelo y agrega sus diagnósticos. */\nexport async function ejecutarComprobadores(comprobadores: readonly Comprobador[]): Promise<ResultadoEjecucion> {\n\tconst diagnosticos: Diagnostico[] = [];\n\tconst fallidos: ResultadoEjecucion[\"fallidos\"] = [];\n\tawait Promise.all(\n\t\tcomprobadores.map(async (comprobador) => {\n\t\t\tconst r = await ejecutarComando(comprobador);\n\t\t\tif (!r.ok) {\n\t\t\t\tfallidos.push({ id: comprobador.id, etiqueta: comprobador.etiqueta, motivo: r.motivo });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst parciales = comprobador.parsear(r.salida, comprobador.cwd);\n\t\t\t// Salió con error pero el parser no le sacó NINGÚN diagnóstico: no es\n\t\t\t// que el proyecto esté limpio, es que el binario probablemente\n\t\t\t// crasheó (lib que falta, versión incompatible…) y su salida no\n\t\t\t// tiene el formato que el parser espera. Sin esto, un comprobador\n\t\t\t// roto se leía como \"proyecto limpio\" — exit code ignorado del todo.\n\t\t\t// ponytail: heurística, no perfecta — un linter que legítimamente\n\t\t\t// sale con código !=0 sin issues (convención rara) contaría como\n\t\t\t// fallido; el riesgo de leer \"limpio\" un binario roto es peor.\n\t\t\tif (parciales.length === 0 && r.salida.code !== 0) {\n\t\t\t\tconst cola = `${r.salida.stdout}\\n${r.salida.stderr}`.trim().split(\"\\n\").slice(-5).join(\"\\n\");\n\t\t\t\tfallidos.push({\n\t\t\t\t\tid: comprobador.id,\n\t\t\t\t\tetiqueta: comprobador.etiqueta,\n\t\t\t\t\tmotivo: `salió con código ${r.salida.code} sin diagnósticos reconocibles:\\n${cola}`,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (const parcial of parciales) {\n\t\t\t\tdiagnosticos.push({ ...parcial, comprobador: comprobador.id });\n\t\t\t}\n\t\t}),\n\t);\n\treturn { diagnosticos, fallidos };\n}\n\n/** Re-ejecuta solo los comprobadores pedidos (por id) — la verificación tras un arreglo. */\nexport function ejecutarComprobadoresPorId(\n\tcomprobadores: readonly Comprobador[],\n\tids: ReadonlySet<string>,\n): Promise<ResultadoEjecucion> {\n\treturn ejecutarComprobadores(comprobadores.filter((c) => ids.has(c.id)));\n}\n"]}
1
+ {"version":3,"file":"comprobadores.d.ts","sourceRoot":"","sources":["../../../src/core/limpieza/comprobadores.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAmFtG;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,SAAS,CA8OxF;AA2CD,MAAM,WAAW,kBAAkB;IAClC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,mHAAmH;IACnH,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AAED,mEAAmE;AACnE,wBAAsB,qBAAqB,CAAC,aAAa,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkC9G;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC3C,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,IAAI,EAC/C,SAAS,SAAU,GACjB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,YAAY,EAAE,WAAW,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsD3G;AAED,uGAAuG;AACvG,wBAAsB,iCAAiC,CACtD,aAAa,EAAE,SAAS,WAAW,EAAE,EACrC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,IAAI,EAChD,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,GAC/E,OAAO,CAAC,kBAAkB,CAAC,CA8B7B;AAED,4FAA4F;AAC5F,wBAAgB,0BAA0B,CACzC,aAAa,EAAE,SAAS,WAAW,EAAE,EACrC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAE7B"}