@hoilab/ada-cli 0.85.0 → 0.85.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1682) hide show
  1. package/dist/ada-publico.d.ts.map +1 -1
  2. package/dist/ada-publico.js.map +1 -1
  3. package/dist/bun/cli.d.ts.map +1 -1
  4. package/dist/bun/cli.js.map +1 -1
  5. package/dist/bun/register-bedrock.d.ts.map +1 -1
  6. package/dist/bun/register-bedrock.js.map +1 -1
  7. package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
  8. package/dist/bun/restore-sandbox-env.js.map +1 -1
  9. package/dist/cli/args.d.ts.map +1 -1
  10. package/dist/cli/args.js.map +1 -1
  11. package/dist/cli/audit-command.d.ts.map +1 -1
  12. package/dist/cli/audit-command.js.map +1 -1
  13. package/dist/cli/auth-check.d.ts.map +1 -1
  14. package/dist/cli/auth-check.js.map +1 -1
  15. package/dist/cli/auth-command.d.ts.map +1 -1
  16. package/dist/cli/auth-command.js.map +1 -1
  17. package/dist/cli/banco-command.d.ts.map +1 -1
  18. package/dist/cli/banco-command.js.map +1 -1
  19. package/dist/cli/cleanse-command.d.ts.map +1 -1
  20. package/dist/cli/cleanse-command.js +5 -2
  21. package/dist/cli/cleanse-command.js.map +1 -1
  22. package/dist/cli/commit-command.d.ts +8 -6
  23. package/dist/cli/commit-command.d.ts.map +1 -1
  24. package/dist/cli/commit-command.js +124 -92
  25. package/dist/cli/commit-command.js.map +1 -1
  26. package/dist/cli/completion.d.ts +20 -0
  27. package/dist/cli/completion.d.ts.map +1 -0
  28. package/dist/cli/completion.js +75 -0
  29. package/dist/cli/completion.js.map +1 -0
  30. package/dist/cli/computer-command.d.ts.map +1 -1
  31. package/dist/cli/computer-command.js.map +1 -1
  32. package/dist/cli/config-selector.d.ts.map +1 -1
  33. package/dist/cli/config-selector.js.map +1 -1
  34. package/dist/cli/credential-print.d.ts.map +1 -1
  35. package/dist/cli/credential-print.js.map +1 -1
  36. package/dist/cli/discover-command.d.ts.map +1 -1
  37. package/dist/cli/discover-command.js +5 -1
  38. package/dist/cli/discover-command.js.map +1 -1
  39. package/dist/cli/experimental/auth.d.ts.map +1 -1
  40. package/dist/cli/experimental/auth.js.map +1 -1
  41. package/dist/cli/experimental/cli.d.ts +1 -1
  42. package/dist/cli/experimental/cli.d.ts.map +1 -1
  43. package/dist/cli/experimental/cli.js.map +1 -1
  44. package/dist/cli/experimental/command-options.d.ts.map +1 -1
  45. package/dist/cli/experimental/command-options.js.map +1 -1
  46. package/dist/cli/experimental/command.d.ts.map +1 -1
  47. package/dist/cli/experimental/command.js.map +1 -1
  48. package/dist/cli/experimental/commands/client.d.ts.map +1 -1
  49. package/dist/cli/experimental/commands/client.js.map +1 -1
  50. package/dist/cli/experimental/commands/pi.d.ts.map +1 -1
  51. package/dist/cli/experimental/commands/pi.js.map +1 -1
  52. package/dist/cli/experimental/commands/server.d.ts.map +1 -1
  53. package/dist/cli/experimental/commands/server.js.map +1 -1
  54. package/dist/cli/experimental/transport-address.d.ts.map +1 -1
  55. package/dist/cli/experimental/transport-address.js.map +1 -1
  56. package/dist/cli/file-processor.d.ts.map +1 -1
  57. package/dist/cli/file-processor.js.map +1 -1
  58. package/dist/cli/guardrails.d.ts +14 -0
  59. package/dist/cli/guardrails.d.ts.map +1 -0
  60. package/dist/cli/guardrails.js +47 -0
  61. package/dist/cli/guardrails.js.map +1 -0
  62. package/dist/cli/hashline-command.d.ts.map +1 -1
  63. package/dist/cli/hashline-command.js.map +1 -1
  64. package/dist/cli/home-screen.d.ts.map +1 -1
  65. package/dist/cli/home-screen.js +1 -0
  66. package/dist/cli/home-screen.js.map +1 -1
  67. package/dist/cli/import-command.d.ts.map +1 -1
  68. package/dist/cli/import-command.js.map +1 -1
  69. package/dist/cli/initial-message.d.ts +1 -1
  70. package/dist/cli/initial-message.d.ts.map +1 -1
  71. package/dist/cli/initial-message.js.map +1 -1
  72. package/dist/cli/list-models.d.ts.map +1 -1
  73. package/dist/cli/list-models.js.map +1 -1
  74. package/dist/cli/politica-command.d.ts.map +1 -1
  75. package/dist/cli/politica-command.js.map +1 -1
  76. package/dist/cli/project-trust.d.ts.map +1 -1
  77. package/dist/cli/project-trust.js.map +1 -1
  78. package/dist/cli/refine-command.d.ts.map +1 -1
  79. package/dist/cli/refine-command.js.map +1 -1
  80. package/dist/cli/review-command.d.ts.map +1 -1
  81. package/dist/cli/review-command.js +77 -13
  82. package/dist/cli/review-command.js.map +1 -1
  83. package/dist/cli/schedule-command.d.ts.map +1 -1
  84. package/dist/cli/schedule-command.js.map +1 -1
  85. package/dist/cli/serve-command.d.ts +0 -1
  86. package/dist/cli/serve-command.d.ts.map +1 -1
  87. package/dist/cli/serve-command.js +12 -6
  88. package/dist/cli/serve-command.js.map +1 -1
  89. package/dist/cli/session-picker.d.ts.map +1 -1
  90. package/dist/cli/session-picker.js.map +1 -1
  91. package/dist/cli/startup-ui.d.ts.map +1 -1
  92. package/dist/cli/startup-ui.js.map +1 -1
  93. package/dist/cli/telegram-command.d.ts.map +1 -1
  94. package/dist/cli/telegram-command.js.map +1 -1
  95. package/dist/cli/telemetria-command.d.ts.map +1 -1
  96. package/dist/cli/telemetria-command.js.map +1 -1
  97. package/dist/cli/undo-command.d.ts.map +1 -1
  98. package/dist/cli/undo-command.js.map +1 -1
  99. package/dist/cli/update-cli.d.ts +82 -0
  100. package/dist/cli/update-cli.d.ts.map +1 -0
  101. package/dist/cli/update-cli.js +372 -0
  102. package/dist/cli/update-cli.js.map +1 -0
  103. package/dist/cli/usage-command.d.ts.map +1 -1
  104. package/dist/cli/usage-command.js +75 -6
  105. package/dist/cli/usage-command.js.map +1 -1
  106. package/dist/cli/wiki-command.d.ts.map +1 -1
  107. package/dist/cli/wiki-command.js.map +1 -1
  108. package/dist/cli.d.ts +0 -6
  109. package/dist/cli.d.ts.map +1 -1
  110. package/dist/cli.js +0 -0
  111. package/dist/cli.js.map +1 -1
  112. package/dist/client/index.d.ts.map +1 -1
  113. package/dist/client/index.js.map +1 -1
  114. package/dist/client/remote-session.d.ts.map +1 -1
  115. package/dist/client/remote-session.js.map +1 -1
  116. package/dist/client/transcript.d.ts.map +1 -1
  117. package/dist/client/transcript.js.map +1 -1
  118. package/dist/config.d.ts.map +1 -1
  119. package/dist/config.js.map +1 -1
  120. package/dist/core/ada.d.ts +5 -0
  121. package/dist/core/ada.d.ts.map +1 -1
  122. package/dist/core/ada.js +5 -0
  123. package/dist/core/ada.js.map +1 -1
  124. package/dist/core/advisor/guarda.d.ts.map +1 -1
  125. package/dist/core/advisor/guarda.js.map +1 -1
  126. package/dist/core/advisor/runtime.d.ts.map +1 -1
  127. package/dist/core/advisor/runtime.js.map +1 -1
  128. package/dist/core/advisor/sesion.d.ts.map +1 -1
  129. package/dist/core/advisor/sesion.js.map +1 -1
  130. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  131. package/dist/core/agent-session-runtime.js.map +1 -1
  132. package/dist/core/agent-session-services.d.ts.map +1 -1
  133. package/dist/core/agent-session-services.js +33 -0
  134. package/dist/core/agent-session-services.js.map +1 -1
  135. package/dist/core/agent-session.d.ts +67 -0
  136. package/dist/core/agent-session.d.ts.map +1 -1
  137. package/dist/core/agent-session.js +43 -2
  138. package/dist/core/agent-session.js.map +1 -1
  139. package/dist/core/agents/loader.d.ts.map +1 -1
  140. package/dist/core/agents/loader.js.map +1 -1
  141. package/dist/core/appendonly/append-only-context.d.ts +118 -0
  142. package/dist/core/appendonly/append-only-context.d.ts.map +1 -0
  143. package/dist/core/appendonly/append-only-context.js +256 -0
  144. package/dist/core/appendonly/append-only-context.js.map +1 -0
  145. package/dist/core/appendonly/auto.d.ts +30 -0
  146. package/dist/core/appendonly/auto.d.ts.map +1 -0
  147. package/dist/core/appendonly/auto.js +68 -0
  148. package/dist/core/appendonly/auto.js.map +1 -0
  149. package/dist/core/appendonly/extension.d.ts +29 -0
  150. package/dist/core/appendonly/extension.d.ts.map +1 -0
  151. package/dist/core/appendonly/extension.js +51 -0
  152. package/dist/core/appendonly/extension.js.map +1 -0
  153. package/dist/core/appendonly/index.d.ts +41 -0
  154. package/dist/core/appendonly/index.d.ts.map +1 -0
  155. package/dist/core/appendonly/index.js +42 -0
  156. package/dist/core/appendonly/index.js.map +1 -0
  157. package/dist/core/aprobacion/generados.d.ts.map +1 -1
  158. package/dist/core/aprobacion/generados.js.map +1 -1
  159. package/dist/core/aprobacion/politica-de-maquina.d.ts.map +1 -1
  160. package/dist/core/aprobacion/politica-de-maquina.js.map +1 -1
  161. package/dist/core/aprobacion/politica.d.ts +1 -1
  162. package/dist/core/aprobacion/politica.d.ts.map +1 -1
  163. package/dist/core/aprobacion/politica.js.map +1 -1
  164. package/dist/core/arranque/atajos.d.ts.map +1 -1
  165. package/dist/core/arranque/atajos.js +20 -0
  166. package/dist/core/arranque/atajos.js.map +1 -1
  167. package/dist/core/audit/exportacion.d.ts.map +1 -1
  168. package/dist/core/audit/exportacion.js +5 -3
  169. package/dist/core/audit/exportacion.js.map +1 -1
  170. package/dist/core/audit/libro.d.ts +7 -0
  171. package/dist/core/audit/libro.d.ts.map +1 -1
  172. package/dist/core/audit/libro.js.map +1 -1
  173. package/dist/core/audit/registro-sesion.d.ts.map +1 -1
  174. package/dist/core/audit/registro-sesion.js.map +1 -1
  175. package/dist/core/audit/retencion.d.ts.map +1 -1
  176. package/dist/core/audit/retencion.js.map +1 -1
  177. package/dist/core/audit/rutas.d.ts.map +1 -1
  178. package/dist/core/audit/rutas.js.map +1 -1
  179. package/dist/core/auth-guidance.d.ts.map +1 -1
  180. package/dist/core/auth-guidance.js.map +1 -1
  181. package/dist/core/auth-storage.d.ts.map +1 -1
  182. package/dist/core/auth-storage.js.map +1 -1
  183. package/dist/core/banco/almacenamiento.d.ts.map +1 -1
  184. package/dist/core/banco/almacenamiento.js.map +1 -1
  185. package/dist/core/banco/analisis.d.ts.map +1 -1
  186. package/dist/core/banco/analisis.js.map +1 -1
  187. package/dist/core/banco/asides.d.ts +64 -0
  188. package/dist/core/banco/asides.d.ts.map +1 -0
  189. package/dist/core/banco/asides.js +113 -0
  190. package/dist/core/banco/asides.js.map +1 -0
  191. package/dist/core/banco/bloques.d.ts.map +1 -1
  192. package/dist/core/banco/bloques.js.map +1 -1
  193. package/dist/core/banco/cargas.d.ts.map +1 -1
  194. package/dist/core/banco/cargas.js.map +1 -1
  195. package/dist/core/banco/comparar.d.ts.map +1 -1
  196. package/dist/core/banco/comparar.js.map +1 -1
  197. package/dist/core/banco/cow-isolation.d.ts +74 -0
  198. package/dist/core/banco/cow-isolation.d.ts.map +1 -0
  199. package/dist/core/banco/cow-isolation.js +259 -0
  200. package/dist/core/banco/cow-isolation.js.map +1 -0
  201. package/dist/core/banco/ejecutar.d.ts.map +1 -1
  202. package/dist/core/banco/ejecutar.js.map +1 -1
  203. package/dist/core/banco/generar.d.ts.map +1 -1
  204. package/dist/core/banco/generar.js.map +1 -1
  205. package/dist/core/banco/mutaciones.d.ts.map +1 -1
  206. package/dist/core/banco/mutaciones.js.map +1 -1
  207. package/dist/core/banco/park-revive.d.ts +67 -0
  208. package/dist/core/banco/park-revive.d.ts.map +1 -0
  209. package/dist/core/banco/park-revive.js +130 -0
  210. package/dist/core/banco/park-revive.js.map +1 -0
  211. package/dist/core/banco/pruning.d.ts +48 -0
  212. package/dist/core/banco/pruning.d.ts.map +1 -0
  213. package/dist/core/banco/pruning.js +146 -0
  214. package/dist/core/banco/pruning.js.map +1 -0
  215. package/dist/core/banco/steering.d.ts +81 -0
  216. package/dist/core/banco/steering.d.ts.map +1 -0
  217. package/dist/core/banco/steering.js +96 -0
  218. package/dist/core/banco/steering.js.map +1 -0
  219. package/dist/core/banco/tipos.d.ts.map +1 -1
  220. package/dist/core/banco/tipos.js.map +1 -1
  221. package/dist/core/bash-executor.d.ts.map +1 -1
  222. package/dist/core/bash-executor.js.map +1 -1
  223. package/dist/core/blobs/almacen.d.ts.map +1 -1
  224. package/dist/core/blobs/almacen.js.map +1 -1
  225. package/dist/core/blobs/broker.d.ts +1 -0
  226. package/dist/core/blobs/broker.d.ts.map +1 -1
  227. package/dist/core/blobs/broker.js +1 -1
  228. package/dist/core/blobs/broker.js.map +1 -1
  229. package/dist/core/blobs/index.d.ts +1 -0
  230. package/dist/core/blobs/index.d.ts.map +1 -1
  231. package/dist/core/blobs/index.js +1 -0
  232. package/dist/core/blobs/index.js.map +1 -1
  233. package/dist/core/blobs/payload.d.ts.map +1 -1
  234. package/dist/core/blobs/payload.js.map +1 -1
  235. package/dist/core/blobs/proveedor.d.ts.map +1 -1
  236. package/dist/core/blobs/proveedor.js.map +1 -1
  237. package/dist/core/blobs/uploaders.d.ts +105 -0
  238. package/dist/core/blobs/uploaders.d.ts.map +1 -0
  239. package/dist/core/blobs/uploaders.js +224 -0
  240. package/dist/core/blobs/uploaders.js.map +1 -0
  241. package/dist/core/broker/broker.d.ts +54 -0
  242. package/dist/core/broker/broker.d.ts.map +1 -0
  243. package/dist/core/broker/broker.js +216 -0
  244. package/dist/core/broker/broker.js.map +1 -0
  245. package/dist/core/broker/index.d.ts +21 -0
  246. package/dist/core/broker/index.d.ts.map +1 -0
  247. package/dist/core/broker/index.js +33 -0
  248. package/dist/core/broker/index.js.map +1 -0
  249. package/dist/core/broker/ps.d.ts +20 -0
  250. package/dist/core/broker/ps.d.ts.map +1 -0
  251. package/dist/core/broker/ps.js +55 -0
  252. package/dist/core/broker/ps.js.map +1 -0
  253. package/dist/core/broker/types.d.ts +45 -0
  254. package/dist/core/broker/types.d.ts.map +1 -0
  255. package/dist/core/broker/types.js +19 -0
  256. package/dist/core/broker/types.js.map +1 -0
  257. package/dist/core/browser/cdp.d.ts.map +1 -1
  258. package/dist/core/browser/cdp.js.map +1 -1
  259. package/dist/core/browser/politica.d.ts.map +1 -1
  260. package/dist/core/browser/politica.js.map +1 -1
  261. package/dist/core/browser/sesion.d.ts.map +1 -1
  262. package/dist/core/browser/sesion.js.map +1 -1
  263. package/dist/core/browser/tools.d.ts.map +1 -1
  264. package/dist/core/browser/tools.js.map +1 -1
  265. package/dist/core/cache-stats.d.ts.map +1 -1
  266. package/dist/core/cache-stats.js.map +1 -1
  267. package/dist/core/capability/capability.test.d.ts +12 -0
  268. package/dist/core/capability/capability.test.d.ts.map +1 -0
  269. package/dist/core/capability/capability.test.js +258 -0
  270. package/dist/core/capability/capability.test.js.map +1 -0
  271. package/dist/core/capability/fs.d.ts +32 -0
  272. package/dist/core/capability/fs.d.ts.map +1 -0
  273. package/dist/core/capability/fs.js +106 -0
  274. package/dist/core/capability/fs.js.map +1 -0
  275. package/dist/core/capability/index.d.ts +68 -0
  276. package/dist/core/capability/index.d.ts.map +1 -0
  277. package/dist/core/capability/index.js +258 -0
  278. package/dist/core/capability/index.js.map +1 -0
  279. package/dist/core/capability/types.d.ts +168 -0
  280. package/dist/core/capability/types.d.ts.map +1 -0
  281. package/dist/core/capability/types.js +16 -0
  282. package/dist/core/capability/types.js.map +1 -0
  283. package/dist/core/carga-plugins/index.d.ts +49 -0
  284. package/dist/core/carga-plugins/index.d.ts.map +1 -0
  285. package/dist/core/carga-plugins/index.js +85 -0
  286. package/dist/core/carga-plugins/index.js.map +1 -0
  287. package/dist/core/carga-plugins/invalidacion.d.ts +60 -0
  288. package/dist/core/carga-plugins/invalidacion.d.ts.map +1 -0
  289. package/dist/core/carga-plugins/invalidacion.js +94 -0
  290. package/dist/core/carga-plugins/invalidacion.js.map +1 -0
  291. package/dist/core/carga-plugins/paralelo.d.ts +48 -0
  292. package/dist/core/carga-plugins/paralelo.d.ts.map +1 -0
  293. package/dist/core/carga-plugins/paralelo.js +47 -0
  294. package/dist/core/carga-plugins/paralelo.js.map +1 -0
  295. package/dist/core/colaboracion/autoresearch.d.ts +56 -0
  296. package/dist/core/colaboracion/autoresearch.d.ts.map +1 -0
  297. package/dist/core/colaboracion/autoresearch.js +95 -0
  298. package/dist/core/colaboracion/autoresearch.js.map +1 -0
  299. package/dist/core/colaboracion/index.d.ts +10 -0
  300. package/dist/core/colaboracion/index.d.ts.map +1 -0
  301. package/dist/core/colaboracion/index.js +7 -0
  302. package/dist/core/colaboracion/index.js.map +1 -0
  303. package/dist/core/colaboracion/kernels.d.ts +63 -0
  304. package/dist/core/colaboracion/kernels.d.ts.map +1 -0
  305. package/dist/core/colaboracion/kernels.js +99 -0
  306. package/dist/core/colaboracion/kernels.js.map +1 -0
  307. package/dist/core/colaboracion/rele/index.d.ts +8 -0
  308. package/dist/core/colaboracion/rele/index.d.ts.map +1 -0
  309. package/dist/core/colaboracion/rele/index.js +6 -0
  310. package/dist/core/colaboracion/rele/index.js.map +1 -0
  311. package/dist/core/colaboracion/rele/rele-servidor.d.ts +69 -0
  312. package/dist/core/colaboracion/rele/rele-servidor.d.ts.map +1 -0
  313. package/dist/core/colaboracion/rele/rele-servidor.js +197 -0
  314. package/dist/core/colaboracion/rele/rele-servidor.js.map +1 -0
  315. package/dist/core/colaboracion/rele/suscriptor.d.ts +31 -0
  316. package/dist/core/colaboracion/rele/suscriptor.d.ts.map +1 -0
  317. package/dist/core/colaboracion/rele/suscriptor.js +173 -0
  318. package/dist/core/colaboracion/rele/suscriptor.js.map +1 -0
  319. package/dist/core/colaboracion/sesion-colaborativa.d.ts +61 -0
  320. package/dist/core/colaboracion/sesion-colaborativa.d.ts.map +1 -0
  321. package/dist/core/colaboracion/sesion-colaborativa.js +127 -0
  322. package/dist/core/colaboracion/sesion-colaborativa.js.map +1 -0
  323. package/dist/core/commits/agentic.d.ts +101 -0
  324. package/dist/core/commits/agentic.d.ts.map +1 -0
  325. package/dist/core/commits/agentic.js +268 -0
  326. package/dist/core/commits/agentic.js.map +1 -0
  327. package/dist/core/commits/changelog.d.ts +37 -0
  328. package/dist/core/commits/changelog.d.ts.map +1 -0
  329. package/dist/core/commits/changelog.js +155 -0
  330. package/dist/core/commits/changelog.js.map +1 -0
  331. package/dist/core/commits/diff.d.ts.map +1 -0
  332. package/dist/core/commits/diff.js.map +1 -0
  333. package/dist/core/commits/git.d.ts +43 -0
  334. package/dist/core/commits/git.d.ts.map +1 -0
  335. package/dist/core/commits/git.js +61 -0
  336. package/dist/core/commits/git.js.map +1 -0
  337. package/dist/core/commits/split.d.ts +45 -0
  338. package/dist/core/commits/split.d.ts.map +1 -0
  339. package/dist/core/commits/split.js +128 -0
  340. package/dist/core/commits/split.js.map +1 -0
  341. package/dist/core/compactacion/comandos.d.ts +53 -0
  342. package/dist/core/compactacion/comandos.d.ts.map +1 -0
  343. package/dist/core/compactacion/comandos.js +155 -0
  344. package/dist/core/compactacion/comandos.js.map +1 -0
  345. package/dist/core/compactacion/extension.d.ts +28 -0
  346. package/dist/core/compactacion/extension.d.ts.map +1 -0
  347. package/dist/core/compactacion/extension.js +159 -0
  348. package/dist/core/compactacion/extension.js.map +1 -0
  349. package/dist/core/compactacion/handoff.d.ts +61 -0
  350. package/dist/core/compactacion/handoff.d.ts.map +1 -0
  351. package/dist/core/compactacion/handoff.js +139 -0
  352. package/dist/core/compactacion/handoff.js.map +1 -0
  353. package/dist/core/compactacion/index.d.ts +15 -0
  354. package/dist/core/compactacion/index.d.ts.map +1 -0
  355. package/dist/core/compactacion/index.js +15 -0
  356. package/dist/core/compactacion/index.js.map +1 -0
  357. package/dist/core/compactacion/prune.d.ts +38 -0
  358. package/dist/core/compactacion/prune.d.ts.map +1 -0
  359. package/dist/core/compactacion/prune.js +81 -0
  360. package/dist/core/compactacion/prune.js.map +1 -0
  361. package/dist/core/compactacion/shake.d.ts +40 -0
  362. package/dist/core/compactacion/shake.d.ts.map +1 -0
  363. package/dist/core/compactacion/shake.js +106 -0
  364. package/dist/core/compactacion/shake.js.map +1 -0
  365. package/dist/core/compactacion/tipos.d.ts +54 -0
  366. package/dist/core/compactacion/tipos.d.ts.map +1 -0
  367. package/dist/core/compactacion/tipos.js +44 -0
  368. package/dist/core/compactacion/tipos.js.map +1 -0
  369. package/dist/core/compactar/index.d.ts.map +1 -1
  370. package/dist/core/compactar/index.js.map +1 -1
  371. package/dist/core/compactar/registro-denso.d.ts.map +1 -1
  372. package/dist/core/compactar/registro-denso.js.map +1 -1
  373. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  374. package/dist/core/compaction/branch-summarization.js.map +1 -1
  375. package/dist/core/compaction/compaction.d.ts.map +1 -1
  376. package/dist/core/compaction/compaction.js.map +1 -1
  377. package/dist/core/compaction/index.d.ts.map +1 -1
  378. package/dist/core/compaction/index.js.map +1 -1
  379. package/dist/core/compaction/utils.d.ts.map +1 -1
  380. package/dist/core/compaction/utils.js.map +1 -1
  381. package/dist/core/computer/captura.d.ts.map +1 -1
  382. package/dist/core/computer/captura.js.map +1 -1
  383. package/dist/core/computer/driver.d.ts.map +1 -1
  384. package/dist/core/computer/driver.js.map +1 -1
  385. package/dist/core/computer/motor/actions.d.ts.map +1 -1
  386. package/dist/core/computer/motor/actions.js.map +1 -1
  387. package/dist/core/computer/motor/bridge.d.ts +2 -2
  388. package/dist/core/computer/motor/bridge.d.ts.map +1 -1
  389. package/dist/core/computer/motor/bridge.js.map +1 -1
  390. package/dist/core/computer/motor/cdp.d.ts.map +1 -1
  391. package/dist/core/computer/motor/cdp.js.map +1 -1
  392. package/dist/core/computer/motor/config.d.ts.map +1 -1
  393. package/dist/core/computer/motor/config.js.map +1 -1
  394. package/dist/core/computer/motor/contract.d.ts.map +1 -1
  395. package/dist/core/computer/motor/contract.js.map +1 -1
  396. package/dist/core/computer/motor/note.d.ts.map +1 -1
  397. package/dist/core/computer/motor/note.js.map +1 -1
  398. package/dist/core/computer/motor/outline.d.ts.map +1 -1
  399. package/dist/core/computer/motor/outline.js.map +1 -1
  400. package/dist/core/computer/motor/output.d.ts.map +1 -1
  401. package/dist/core/computer/motor/output.js.map +1 -1
  402. package/dist/core/computer/motor/permissions.d.ts.map +1 -1
  403. package/dist/core/computer/motor/permissions.js.map +1 -1
  404. package/dist/core/computer/motor/platform/architecture.d.ts.map +1 -1
  405. package/dist/core/computer/motor/platform/architecture.js.map +1 -1
  406. package/dist/core/computer/motor/platform/coerce.d.ts.map +1 -1
  407. package/dist/core/computer/motor/platform/coerce.js.map +1 -1
  408. package/dist/core/computer/motor/platform/index.d.ts.map +1 -1
  409. package/dist/core/computer/motor/platform/index.js.map +1 -1
  410. package/dist/core/computer/motor/platform/linux/backend.d.ts.map +1 -1
  411. package/dist/core/computer/motor/platform/linux/backend.js.map +1 -1
  412. package/dist/core/computer/motor/platform/linux/helper.d.ts.map +1 -1
  413. package/dist/core/computer/motor/platform/linux/helper.js.map +1 -1
  414. package/dist/core/computer/motor/platform/macos/backend.d.ts.map +1 -1
  415. package/dist/core/computer/motor/platform/macos/backend.js.map +1 -1
  416. package/dist/core/computer/motor/platform/macos/browser.d.ts.map +1 -1
  417. package/dist/core/computer/motor/platform/macos/browser.js.map +1 -1
  418. package/dist/core/computer/motor/platform/macos/helper.d.ts.map +1 -1
  419. package/dist/core/computer/motor/platform/macos/helper.js.map +1 -1
  420. package/dist/core/computer/motor/platform/macos/permissions.d.ts.map +1 -1
  421. package/dist/core/computer/motor/platform/macos/permissions.js.map +1 -1
  422. package/dist/core/computer/motor/platform/types.d.ts.map +1 -1
  423. package/dist/core/computer/motor/platform/types.js.map +1 -1
  424. package/dist/core/computer/motor/platform/windows/backend.d.ts.map +1 -1
  425. package/dist/core/computer/motor/platform/windows/backend.js.map +1 -1
  426. package/dist/core/computer/motor/platform/windows/helper.d.ts.map +1 -1
  427. package/dist/core/computer/motor/platform/windows/helper.js.map +1 -1
  428. package/dist/core/computer/motor/root-selection.d.ts.map +1 -1
  429. package/dist/core/computer/motor/root-selection.js.map +1 -1
  430. package/dist/core/computer/motor/runtime.d.ts.map +1 -1
  431. package/dist/core/computer/motor/runtime.js.map +1 -1
  432. package/dist/core/computer/motor/state.d.ts.map +1 -1
  433. package/dist/core/computer/motor/state.js.map +1 -1
  434. package/dist/core/computer/motor/view.d.ts.map +1 -1
  435. package/dist/core/computer/motor/view.js.map +1 -1
  436. package/dist/core/computer/motor-ada.d.ts.map +1 -1
  437. package/dist/core/computer/motor-ada.js.map +1 -1
  438. package/dist/core/computer/politica.d.ts.map +1 -1
  439. package/dist/core/computer/politica.js.map +1 -1
  440. package/dist/core/computer/tools.d.ts.map +1 -1
  441. package/dist/core/computer/tools.js.map +1 -1
  442. package/dist/core/config/quarantine.d.ts +57 -0
  443. package/dist/core/config/quarantine.d.ts.map +1 -0
  444. package/dist/core/config/quarantine.js +161 -0
  445. package/dist/core/config/quarantine.js.map +1 -0
  446. package/dist/core/config-viva/ambito.d.ts +46 -0
  447. package/dist/core/config-viva/ambito.d.ts.map +1 -0
  448. package/dist/core/config-viva/ambito.js +62 -0
  449. package/dist/core/config-viva/ambito.js.map +1 -0
  450. package/dist/core/config-viva/cache-negativa.d.ts +50 -0
  451. package/dist/core/config-viva/cache-negativa.d.ts.map +1 -0
  452. package/dist/core/config-viva/cache-negativa.js +78 -0
  453. package/dist/core/config-viva/cache-negativa.js.map +1 -0
  454. package/dist/core/config-viva/headers-vivos.d.ts +41 -0
  455. package/dist/core/config-viva/headers-vivos.d.ts.map +1 -0
  456. package/dist/core/config-viva/headers-vivos.js +43 -0
  457. package/dist/core/config-viva/headers-vivos.js.map +1 -0
  458. package/dist/core/config-viva/index.d.ts +16 -0
  459. package/dist/core/config-viva/index.d.ts.map +1 -0
  460. package/dist/core/config-viva/index.js +16 -0
  461. package/dist/core/config-viva/index.js.map +1 -0
  462. package/dist/core/config-viva/proveedor.d.ts +48 -0
  463. package/dist/core/config-viva/proveedor.d.ts.map +1 -0
  464. package/dist/core/config-viva/proveedor.js +78 -0
  465. package/dist/core/config-viva/proveedor.js.map +1 -0
  466. package/dist/core/context-breakdown.d.ts.map +1 -1
  467. package/dist/core/context-breakdown.js.map +1 -1
  468. package/dist/core/credenciales/cliente.d.ts.map +1 -1
  469. package/dist/core/credenciales/cliente.js.map +1 -1
  470. package/dist/core/credenciales/pool.d.ts +36 -1
  471. package/dist/core/credenciales/pool.d.ts.map +1 -1
  472. package/dist/core/credenciales/pool.js +56 -7
  473. package/dist/core/credenciales/pool.js.map +1 -1
  474. package/dist/core/credenciales/ranking.d.ts +56 -0
  475. package/dist/core/credenciales/ranking.d.ts.map +1 -0
  476. package/dist/core/credenciales/ranking.js +94 -0
  477. package/dist/core/credenciales/ranking.js.map +1 -0
  478. package/dist/core/credenciales/ratelimit.d.ts +54 -0
  479. package/dist/core/credenciales/ratelimit.d.ts.map +1 -0
  480. package/dist/core/credenciales/ratelimit.js +116 -0
  481. package/dist/core/credenciales/ratelimit.js.map +1 -0
  482. package/dist/core/credenciales/reposo.d.ts.map +1 -1
  483. package/dist/core/credenciales/reposo.js.map +1 -1
  484. package/dist/core/credenciales/servidor.d.ts +8 -0
  485. package/dist/core/credenciales/servidor.d.ts.map +1 -1
  486. package/dist/core/credenciales/servidor.js +9 -1
  487. package/dist/core/credenciales/servidor.js.map +1 -1
  488. package/dist/core/defaults.d.ts.map +1 -1
  489. package/dist/core/defaults.js.map +1 -1
  490. package/dist/core/descubrimiento/comandos.d.ts.map +1 -1
  491. package/dist/core/descubrimiento/comandos.js.map +1 -1
  492. package/dist/core/descubrimiento/mcp.d.ts +12 -0
  493. package/dist/core/descubrimiento/mcp.d.ts.map +1 -1
  494. package/dist/core/descubrimiento/mcp.js +32 -0
  495. package/dist/core/descubrimiento/mcp.js.map +1 -1
  496. package/dist/core/descubrimiento/reglas.d.ts.map +1 -1
  497. package/dist/core/descubrimiento/reglas.js.map +1 -1
  498. package/dist/core/descubrimiento/runtimes/index.d.ts +24 -0
  499. package/dist/core/descubrimiento/runtimes/index.d.ts.map +1 -0
  500. package/dist/core/descubrimiento/runtimes/index.js +109 -0
  501. package/dist/core/descubrimiento/runtimes/index.js.map +1 -0
  502. package/dist/core/descubrimiento/runtimes/litellm.d.ts +12 -0
  503. package/dist/core/descubrimiento/runtimes/litellm.d.ts.map +1 -0
  504. package/dist/core/descubrimiento/runtimes/litellm.js +185 -0
  505. package/dist/core/descubrimiento/runtimes/litellm.js.map +1 -0
  506. package/dist/core/descubrimiento/runtimes/lm-studio.d.ts +13 -0
  507. package/dist/core/descubrimiento/runtimes/lm-studio.d.ts.map +1 -0
  508. package/dist/core/descubrimiento/runtimes/lm-studio.js +142 -0
  509. package/dist/core/descubrimiento/runtimes/lm-studio.js.map +1 -0
  510. package/dist/core/descubrimiento/runtimes/ollama.d.ts +8 -0
  511. package/dist/core/descubrimiento/runtimes/ollama.d.ts.map +1 -0
  512. package/dist/core/descubrimiento/runtimes/ollama.js +96 -0
  513. package/dist/core/descubrimiento/runtimes/ollama.js.map +1 -0
  514. package/dist/core/descubrimiento/runtimes/tipos.d.ts +47 -0
  515. package/dist/core/descubrimiento/runtimes/tipos.d.ts.map +1 -0
  516. package/dist/core/descubrimiento/runtimes/tipos.js +10 -0
  517. package/dist/core/descubrimiento/runtimes/tipos.js.map +1 -0
  518. package/dist/core/descubrimiento/skills.d.ts.map +1 -1
  519. package/dist/core/descubrimiento/skills.js.map +1 -1
  520. package/dist/core/diagnostics.d.ts.map +1 -1
  521. package/dist/core/diagnostics.js.map +1 -1
  522. package/dist/core/dificultad/clasificador.d.ts.map +1 -1
  523. package/dist/core/dificultad/clasificador.js.map +1 -1
  524. package/dist/core/edicion/diario.d.ts.map +1 -1
  525. package/dist/core/edicion/diario.js.map +1 -1
  526. package/dist/core/edicion/hashline.d.ts.map +1 -1
  527. package/dist/core/edicion/hashline.js.map +1 -1
  528. package/dist/core/edicion/hueco.d.ts.map +1 -1
  529. package/dist/core/edicion/hueco.js.map +1 -1
  530. package/dist/core/edicion/ipynb.d.ts +51 -0
  531. package/dist/core/edicion/ipynb.d.ts.map +1 -0
  532. package/dist/core/edicion/ipynb.js +110 -0
  533. package/dist/core/edicion/ipynb.js.map +1 -0
  534. package/dist/core/edicion/limpiar-carga.d.ts.map +1 -1
  535. package/dist/core/edicion/limpiar-carga.js.map +1 -1
  536. package/dist/core/edicion/observador.d.ts.map +1 -1
  537. package/dist/core/edicion/observador.js.map +1 -1
  538. package/dist/core/edicion/parecido.d.ts.map +1 -1
  539. package/dist/core/edicion/parecido.js.map +1 -1
  540. package/dist/core/edicion/parseo.d.ts.map +1 -1
  541. package/dist/core/edicion/parseo.js.map +1 -1
  542. package/dist/core/edicion/portapapeles.d.ts +28 -0
  543. package/dist/core/edicion/portapapeles.d.ts.map +1 -0
  544. package/dist/core/edicion/portapapeles.js +49 -0
  545. package/dist/core/edicion/portapapeles.js.map +1 -0
  546. package/dist/core/edicion/reparacion.d.ts.map +1 -1
  547. package/dist/core/edicion/reparacion.js.map +1 -1
  548. package/dist/core/edicion/rutas-difusas.d.ts +44 -0
  549. package/dist/core/edicion/rutas-difusas.d.ts.map +1 -0
  550. package/dist/core/edicion/rutas-difusas.js +93 -0
  551. package/dist/core/edicion/rutas-difusas.js.map +1 -0
  552. package/dist/core/edicion/sangria.d.ts.map +1 -1
  553. package/dist/core/edicion/sangria.js.map +1 -1
  554. package/dist/core/edicion/tipos.d.ts.map +1 -1
  555. package/dist/core/edicion/tipos.js.map +1 -1
  556. package/dist/core/engine-personality.d.ts.map +1 -1
  557. package/dist/core/engine-personality.js.map +1 -1
  558. package/dist/core/errores/proveedor.d.ts.map +1 -1
  559. package/dist/core/errores/proveedor.js.map +1 -1
  560. package/dist/core/estructural/buscar.d.ts.map +1 -1
  561. package/dist/core/estructural/buscar.js.map +1 -1
  562. package/dist/core/estructural/editar.d.ts.map +1 -1
  563. package/dist/core/estructural/editar.js.map +1 -1
  564. package/dist/core/estructural/tools.d.ts.map +1 -1
  565. package/dist/core/estructural/tools.js.map +1 -1
  566. package/dist/core/event-bus.d.ts.map +1 -1
  567. package/dist/core/event-bus.js.map +1 -1
  568. package/dist/core/exec.d.ts.map +1 -1
  569. package/dist/core/exec.js.map +1 -1
  570. package/dist/core/experimental.d.ts.map +1 -1
  571. package/dist/core/experimental.js.map +1 -1
  572. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  573. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  574. package/dist/core/export-html/index.d.ts.map +1 -1
  575. package/dist/core/export-html/index.js +183 -13
  576. package/dist/core/export-html/index.js.map +1 -1
  577. package/dist/core/export-html/template.css +88 -4
  578. package/dist/core/export-html/template.html +3 -1
  579. package/dist/core/export-html/template.js +84 -0
  580. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  581. package/dist/core/export-html/tool-renderer.js.map +1 -1
  582. package/dist/core/extensiones/suplantacion.d.ts.map +1 -1
  583. package/dist/core/extensiones/suplantacion.js.map +1 -1
  584. package/dist/core/extensiones/vigilancia.d.ts.map +1 -1
  585. package/dist/core/extensiones/vigilancia.js.map +1 -1
  586. package/dist/core/extensions/index.d.ts.map +1 -1
  587. package/dist/core/extensions/index.js.map +1 -1
  588. package/dist/core/extensions/loader.d.ts.map +1 -1
  589. package/dist/core/extensions/loader.js.map +1 -1
  590. package/dist/core/extensions/runner.d.ts.map +1 -1
  591. package/dist/core/extensions/runner.js.map +1 -1
  592. package/dist/core/extensions/types.d.ts.map +1 -1
  593. package/dist/core/extensions/types.js.map +1 -1
  594. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  595. package/dist/core/extensions/wrapper.js.map +1 -1
  596. package/dist/core/footer-data-provider.d.ts.map +1 -1
  597. package/dist/core/footer-data-provider.js.map +1 -1
  598. package/dist/core/gc/archivo-frio.d.ts +33 -0
  599. package/dist/core/gc/archivo-frio.d.ts.map +1 -0
  600. package/dist/core/gc/archivo-frio.js +152 -0
  601. package/dist/core/gc/archivo-frio.js.map +1 -0
  602. package/dist/core/gc/blobs-gc.d.ts +25 -0
  603. package/dist/core/gc/blobs-gc.d.ts.map +1 -0
  604. package/dist/core/gc/blobs-gc.js +143 -0
  605. package/dist/core/gc/blobs-gc.js.map +1 -0
  606. package/dist/core/gc/index.d.ts +42 -0
  607. package/dist/core/gc/index.d.ts.map +1 -0
  608. package/dist/core/gc/index.js +50 -0
  609. package/dist/core/gc/index.js.map +1 -0
  610. package/dist/core/gc/lock.d.ts +19 -0
  611. package/dist/core/gc/lock.d.ts.map +1 -0
  612. package/dist/core/gc/lock.js +48 -0
  613. package/dist/core/gc/lock.js.map +1 -0
  614. package/dist/core/gc/reconciliacion.d.ts +19 -0
  615. package/dist/core/gc/reconciliacion.d.ts.map +1 -0
  616. package/dist/core/gc/reconciliacion.js +102 -0
  617. package/dist/core/gc/reconciliacion.js.map +1 -0
  618. package/dist/core/gc/wal.d.ts +15 -0
  619. package/dist/core/gc/wal.d.ts.map +1 -0
  620. package/dist/core/gc/wal.js +44 -0
  621. package/dist/core/gc/wal.js.map +1 -0
  622. package/dist/core/harness/fuentes-de-contexto.d.ts.map +1 -1
  623. package/dist/core/harness/fuentes-de-contexto.js.map +1 -1
  624. package/dist/core/harness/refine.d.ts.map +1 -1
  625. package/dist/core/harness/refine.js.map +1 -1
  626. package/dist/core/harness/store.d.ts.map +1 -1
  627. package/dist/core/harness/store.js.map +1 -1
  628. package/dist/core/higiene/index.d.ts +8 -0
  629. package/dist/core/higiene/index.d.ts.map +1 -0
  630. package/dist/core/higiene/index.js +8 -0
  631. package/dist/core/higiene/index.js.map +1 -0
  632. package/dist/core/higiene/managed-timers.d.ts +19 -0
  633. package/dist/core/higiene/managed-timers.d.ts.map +1 -0
  634. package/dist/core/higiene/managed-timers.js +68 -0
  635. package/dist/core/higiene/managed-timers.js.map +1 -0
  636. package/dist/core/higiene/race-handler.d.ts +7 -0
  637. package/dist/core/higiene/race-handler.d.ts.map +1 -0
  638. package/dist/core/higiene/race-handler.js +32 -0
  639. package/dist/core/higiene/race-handler.js.map +1 -0
  640. package/dist/core/higiene/withHostGuard.d.ts +27 -0
  641. package/dist/core/higiene/withHostGuard.d.ts.map +1 -0
  642. package/dist/core/higiene/withHostGuard.js +79 -0
  643. package/dist/core/higiene/withHostGuard.js.map +1 -0
  644. package/dist/core/hooks/contract.d.ts.map +1 -1
  645. package/dist/core/hooks/contract.js.map +1 -1
  646. package/dist/core/hooks/runner.d.ts.map +1 -1
  647. package/dist/core/hooks/runner.js.map +1 -1
  648. package/dist/core/hooks/session-hooks.d.ts.map +1 -1
  649. package/dist/core/hooks/session-hooks.js.map +1 -1
  650. package/dist/core/hooks-ts/cargador.d.ts +29 -0
  651. package/dist/core/hooks-ts/cargador.d.ts.map +1 -0
  652. package/dist/core/hooks-ts/cargador.js +51 -0
  653. package/dist/core/hooks-ts/cargador.js.map +1 -0
  654. package/dist/core/hooks-ts/index.d.ts +25 -0
  655. package/dist/core/hooks-ts/index.d.ts.map +1 -0
  656. package/dist/core/hooks-ts/index.js +25 -0
  657. package/dist/core/hooks-ts/index.js.map +1 -0
  658. package/dist/core/hooks-ts/runner.d.ts +40 -0
  659. package/dist/core/hooks-ts/runner.d.ts.map +1 -0
  660. package/dist/core/hooks-ts/runner.js +95 -0
  661. package/dist/core/hooks-ts/runner.js.map +1 -0
  662. package/dist/core/hooks-ts/tipos.d.ts +69 -0
  663. package/dist/core/hooks-ts/tipos.d.ts.map +1 -0
  664. package/dist/core/hooks-ts/tipos.js +90 -0
  665. package/dist/core/hooks-ts/tipos.js.map +1 -0
  666. package/dist/core/http-dispatcher.d.ts.map +1 -1
  667. package/dist/core/http-dispatcher.js.map +1 -1
  668. package/dist/core/importar/formatos.d.ts.map +1 -1
  669. package/dist/core/importar/formatos.js.map +1 -1
  670. package/dist/core/index.d.ts.map +1 -1
  671. package/dist/core/index.js.map +1 -1
  672. package/dist/core/interactivo/deteccion.d.ts.map +1 -1
  673. package/dist/core/interactivo/deteccion.js.map +1 -1
  674. package/dist/core/interactivo/sesion.d.ts.map +1 -1
  675. package/dist/core/interactivo/sesion.js.map +1 -1
  676. package/dist/core/interactivo/tools.d.ts.map +1 -1
  677. package/dist/core/interactivo/tools.js.map +1 -1
  678. package/dist/core/keybindings.d.ts +170 -170
  679. package/dist/core/keybindings.d.ts.map +1 -1
  680. package/dist/core/keybindings.js.map +1 -1
  681. package/dist/core/lectura/mapa.d.ts.map +1 -1
  682. package/dist/core/lectura/mapa.js.map +1 -1
  683. package/dist/core/lectura/pdf.d.ts.map +1 -1
  684. package/dist/core/lectura/pdf.js.map +1 -1
  685. package/dist/core/lectura/sniffer.d.ts +54 -0
  686. package/dist/core/lectura/sniffer.d.ts.map +1 -0
  687. package/dist/core/lectura/sniffer.js +106 -0
  688. package/dist/core/lectura/sniffer.js.map +1 -0
  689. package/dist/core/limpieza/comprobadores.d.ts +16 -2
  690. package/dist/core/limpieza/comprobadores.d.ts.map +1 -1
  691. package/dist/core/limpieza/comprobadores.js +200 -6
  692. package/dist/core/limpieza/comprobadores.js.map +1 -1
  693. package/dist/core/limpieza/flujo.d.ts +36 -0
  694. package/dist/core/limpieza/flujo.d.ts.map +1 -0
  695. package/dist/core/limpieza/flujo.js +89 -0
  696. package/dist/core/limpieza/flujo.js.map +1 -0
  697. package/dist/core/limpieza/parseo.d.ts.map +1 -1
  698. package/dist/core/limpieza/parseo.js.map +1 -1
  699. package/dist/core/limpieza/peso.d.ts +17 -0
  700. package/dist/core/limpieza/peso.d.ts.map +1 -0
  701. package/dist/core/limpieza/peso.js +52 -0
  702. package/dist/core/limpieza/peso.js.map +1 -0
  703. package/dist/core/limpieza/pool.d.ts +44 -0
  704. package/dist/core/limpieza/pool.d.ts.map +1 -0
  705. package/dist/core/limpieza/pool.js +123 -0
  706. package/dist/core/limpieza/pool.js.map +1 -0
  707. package/dist/core/limpieza/reparacion.d.ts +19 -2
  708. package/dist/core/limpieza/reparacion.d.ts.map +1 -1
  709. package/dist/core/limpieza/reparacion.js +95 -8
  710. package/dist/core/limpieza/reparacion.js.map +1 -1
  711. package/dist/core/limpieza/tablero.d.ts +47 -0
  712. package/dist/core/limpieza/tablero.d.ts.map +1 -0
  713. package/dist/core/limpieza/tablero.js +78 -0
  714. package/dist/core/limpieza/tablero.js.map +1 -0
  715. package/dist/core/limpieza/tipos.d.ts +25 -0
  716. package/dist/core/limpieza/tipos.d.ts.map +1 -1
  717. package/dist/core/limpieza/tipos.js.map +1 -1
  718. package/dist/core/lsp/cliente.d.ts +7 -0
  719. package/dist/core/lsp/cliente.d.ts.map +1 -1
  720. package/dist/core/lsp/cliente.js +4 -2
  721. package/dist/core/lsp/cliente.js.map +1 -1
  722. package/dist/core/lsp/descubrimiento.d.ts.map +1 -1
  723. package/dist/core/lsp/descubrimiento.js.map +1 -1
  724. package/dist/core/lsp/ediciones.d.ts.map +1 -1
  725. package/dist/core/lsp/ediciones.js.map +1 -1
  726. package/dist/core/lsp/extension.d.ts +9 -0
  727. package/dist/core/lsp/extension.d.ts.map +1 -1
  728. package/dist/core/lsp/extension.js +60 -4
  729. package/dist/core/lsp/extension.js.map +1 -1
  730. package/dist/core/lsp/formato.d.ts +72 -0
  731. package/dist/core/lsp/formato.d.ts.map +1 -0
  732. package/dist/core/lsp/formato.js +117 -0
  733. package/dist/core/lsp/formato.js.map +1 -0
  734. package/dist/core/lsp/tools.d.ts +3 -3
  735. package/dist/core/lsp/tools.d.ts.map +1 -1
  736. package/dist/core/lsp/tools.js.map +1 -1
  737. package/dist/core/lsp/writethrough.d.ts +165 -0
  738. package/dist/core/lsp/writethrough.d.ts.map +1 -0
  739. package/dist/core/lsp/writethrough.js +282 -0
  740. package/dist/core/lsp/writethrough.js.map +1 -0
  741. package/dist/core/marketplace/catalogo.d.ts +32 -0
  742. package/dist/core/marketplace/catalogo.d.ts.map +1 -0
  743. package/dist/core/marketplace/catalogo.js +122 -0
  744. package/dist/core/marketplace/catalogo.js.map +1 -0
  745. package/dist/core/marketplace/doctor.d.ts +47 -0
  746. package/dist/core/marketplace/doctor.d.ts.map +1 -0
  747. package/dist/core/marketplace/doctor.js +155 -0
  748. package/dist/core/marketplace/doctor.js.map +1 -0
  749. package/dist/core/marketplace/features.d.ts +22 -0
  750. package/dist/core/marketplace/features.d.ts.map +1 -0
  751. package/dist/core/marketplace/features.js +70 -0
  752. package/dist/core/marketplace/features.js.map +1 -0
  753. package/dist/core/marketplace/index.d.ts +33 -0
  754. package/dist/core/marketplace/index.d.ts.map +1 -0
  755. package/dist/core/marketplace/index.js +33 -0
  756. package/dist/core/marketplace/index.js.map +1 -0
  757. package/dist/core/marketplace/instalar.d.ts +27 -0
  758. package/dist/core/marketplace/instalar.d.ts.map +1 -0
  759. package/dist/core/marketplace/instalar.js +50 -0
  760. package/dist/core/marketplace/instalar.js.map +1 -0
  761. package/dist/core/mcp/client.d.ts.map +1 -1
  762. package/dist/core/mcp/client.js.map +1 -1
  763. package/dist/core/mcp/manager.d.ts.map +1 -1
  764. package/dist/core/mcp/manager.js.map +1 -1
  765. package/dist/core/mcp/oauth.d.ts +138 -0
  766. package/dist/core/mcp/oauth.d.ts.map +1 -0
  767. package/dist/core/mcp/oauth.js +348 -0
  768. package/dist/core/mcp/oauth.js.map +1 -0
  769. package/dist/core/mcp/tools.d.ts.map +1 -1
  770. package/dist/core/mcp/tools.js.map +1 -1
  771. package/dist/core/memoria/almacen.d.ts +56 -0
  772. package/dist/core/memoria/almacen.d.ts.map +1 -0
  773. package/dist/core/memoria/almacen.js +214 -0
  774. package/dist/core/memoria/almacen.js.map +1 -0
  775. package/dist/core/memoria/dr/respaldo.d.ts +34 -0
  776. package/dist/core/memoria/dr/respaldo.d.ts.map +1 -0
  777. package/dist/core/memoria/dr/respaldo.js +133 -0
  778. package/dist/core/memoria/dr/respaldo.js.map +1 -0
  779. package/dist/core/memoria/embeddings.d.ts +21 -0
  780. package/dist/core/memoria/embeddings.d.ts.map +1 -0
  781. package/dist/core/memoria/embeddings.js +87 -0
  782. package/dist/core/memoria/embeddings.js.map +1 -0
  783. package/dist/core/memoria/grafo.d.ts +56 -0
  784. package/dist/core/memoria/grafo.d.ts.map +1 -0
  785. package/dist/core/memoria/grafo.js +143 -0
  786. package/dist/core/memoria/grafo.js.map +1 -0
  787. package/dist/core/memoria/redaccion.d.ts +32 -0
  788. package/dist/core/memoria/redaccion.d.ts.map +1 -0
  789. package/dist/core/memoria/redaccion.js +76 -0
  790. package/dist/core/memoria/redaccion.js.map +1 -0
  791. package/dist/core/memoria/servidor/almacen-json.d.ts +26 -0
  792. package/dist/core/memoria/servidor/almacen-json.d.ts.map +1 -0
  793. package/dist/core/memoria/servidor/almacen-json.js +90 -0
  794. package/dist/core/memoria/servidor/almacen-json.js.map +1 -0
  795. package/dist/core/memoria/servidor/servidor.d.ts +43 -0
  796. package/dist/core/memoria/servidor/servidor.d.ts.map +1 -0
  797. package/dist/core/memoria/servidor/servidor.js +195 -0
  798. package/dist/core/memoria/servidor/servidor.js.map +1 -0
  799. package/dist/core/memoria/servidor/tipos.d.ts +44 -0
  800. package/dist/core/memoria/servidor/tipos.d.ts.map +1 -0
  801. package/dist/core/memoria/servidor/tipos.js +12 -0
  802. package/dist/core/memoria/servidor/tipos.js.map +1 -0
  803. package/dist/core/memoria/tipos.d.ts +63 -0
  804. package/dist/core/memoria/tipos.d.ts.map +1 -0
  805. package/dist/core/memoria/tipos.js +14 -0
  806. package/dist/core/memoria/tipos.js.map +1 -0
  807. package/dist/core/memory-engine/audit-export.d.ts.map +1 -1
  808. package/dist/core/memory-engine/audit-export.js.map +1 -1
  809. package/dist/core/memory-engine/audit-indice.d.ts.map +1 -1
  810. package/dist/core/memory-engine/audit-indice.js.map +1 -1
  811. package/dist/core/memory-engine/audit.d.ts.map +1 -1
  812. package/dist/core/memory-engine/audit.js.map +1 -1
  813. package/dist/core/memory-engine/engine.d.ts +7 -0
  814. package/dist/core/memory-engine/engine.d.ts.map +1 -1
  815. package/dist/core/memory-engine/engine.js.map +1 -1
  816. package/dist/core/memory-engine/inverted-index.d.ts.map +1 -1
  817. package/dist/core/memory-engine/inverted-index.js.map +1 -1
  818. package/dist/core/memory-engine/keychain.d.ts.map +1 -1
  819. package/dist/core/memory-engine/keychain.js.map +1 -1
  820. package/dist/core/memory-engine/observation-store.d.ts +1 -0
  821. package/dist/core/memory-engine/observation-store.d.ts.map +1 -1
  822. package/dist/core/memory-engine/observation-store.js.map +1 -1
  823. package/dist/core/memory-engine/refinements.d.ts.map +1 -1
  824. package/dist/core/memory-engine/refinements.js.map +1 -1
  825. package/dist/core/memory-engine/scanner.d.ts.map +1 -1
  826. package/dist/core/memory-engine/scanner.js.map +1 -1
  827. package/dist/core/memory-engine/security.d.ts.map +1 -1
  828. package/dist/core/memory-engine/security.js.map +1 -1
  829. package/dist/core/memory-engine/session-indexer.d.ts.map +1 -1
  830. package/dist/core/memory-engine/session-indexer.js.map +1 -1
  831. package/dist/core/memory-engine/tools.d.ts.map +1 -1
  832. package/dist/core/memory-engine/tools.js.map +1 -1
  833. package/dist/core/memory-engine/types.d.ts.map +1 -1
  834. package/dist/core/memory-engine/types.js.map +1 -1
  835. package/dist/core/memory-engine/vault.d.ts.map +1 -1
  836. package/dist/core/memory-engine/vault.js.map +1 -1
  837. package/dist/core/messages.d.ts.map +1 -1
  838. package/dist/core/messages.js.map +1 -1
  839. package/dist/core/metaharness/cli.d.ts +19 -0
  840. package/dist/core/metaharness/cli.d.ts.map +1 -0
  841. package/dist/core/metaharness/cli.js +171 -0
  842. package/dist/core/metaharness/cli.js.map +1 -0
  843. package/dist/core/metaharness/comparar.d.ts +21 -0
  844. package/dist/core/metaharness/comparar.d.ts.map +1 -0
  845. package/dist/core/metaharness/comparar.js +64 -0
  846. package/dist/core/metaharness/comparar.js.map +1 -0
  847. package/dist/core/metaharness/ejecutar.d.ts +70 -0
  848. package/dist/core/metaharness/ejecutar.d.ts.map +1 -0
  849. package/dist/core/metaharness/ejecutar.js +249 -0
  850. package/dist/core/metaharness/ejecutar.js.map +1 -0
  851. package/dist/core/metaharness/tipos.d.ts +142 -0
  852. package/dist/core/metaharness/tipos.d.ts.map +1 -0
  853. package/dist/core/metaharness/tipos.js +17 -0
  854. package/dist/core/metaharness/tipos.js.map +1 -0
  855. package/dist/core/model-config.d.ts +8 -8
  856. package/dist/core/model-config.d.ts.map +1 -1
  857. package/dist/core/model-config.js.map +1 -1
  858. package/dist/core/model-registry.d.ts.map +1 -1
  859. package/dist/core/model-registry.js.map +1 -1
  860. package/dist/core/model-resolver.d.ts.map +1 -1
  861. package/dist/core/model-resolver.js.map +1 -1
  862. package/dist/core/model-runtime.d.ts.map +1 -1
  863. package/dist/core/model-runtime.js.map +1 -1
  864. package/dist/core/models-store.d.ts.map +1 -1
  865. package/dist/core/models-store.js.map +1 -1
  866. package/dist/core/muestreo-restringido.d.ts.map +1 -1
  867. package/dist/core/muestreo-restringido.js.map +1 -1
  868. package/dist/core/orphan-process-journal.d.ts.map +1 -1
  869. package/dist/core/orphan-process-journal.js.map +1 -1
  870. package/dist/core/output-guard.d.ts.map +1 -1
  871. package/dist/core/output-guard.js.map +1 -1
  872. package/dist/core/package-manager.d.ts.map +1 -1
  873. package/dist/core/package-manager.js.map +1 -1
  874. package/dist/core/parche/aplicar.d.ts +19 -0
  875. package/dist/core/parche/aplicar.d.ts.map +1 -0
  876. package/dist/core/parche/aplicar.js +243 -0
  877. package/dist/core/parche/aplicar.js.map +1 -0
  878. package/dist/core/parche/parser.d.ts +38 -0
  879. package/dist/core/parche/parser.d.ts.map +1 -0
  880. package/dist/core/parche/parser.js +217 -0
  881. package/dist/core/parche/parser.js.map +1 -0
  882. package/dist/core/parche/registro.d.ts +12 -0
  883. package/dist/core/parche/registro.d.ts.map +1 -0
  884. package/dist/core/parche/registro.js +58 -0
  885. package/dist/core/parche/registro.js.map +1 -0
  886. package/dist/core/perfiles/index.d.ts +22 -0
  887. package/dist/core/perfiles/index.d.ts.map +1 -0
  888. package/dist/core/perfiles/index.js +21 -0
  889. package/dist/core/perfiles/index.js.map +1 -0
  890. package/dist/core/perfiles/resolver.d.ts +51 -0
  891. package/dist/core/perfiles/resolver.d.ts.map +1 -0
  892. package/dist/core/perfiles/resolver.js +329 -0
  893. package/dist/core/perfiles/resolver.js.map +1 -0
  894. package/dist/core/perfiles/tipos.d.ts +69 -0
  895. package/dist/core/perfiles/tipos.d.ts.map +1 -0
  896. package/dist/core/perfiles/tipos.js +98 -0
  897. package/dist/core/perfiles/tipos.js.map +1 -0
  898. package/dist/core/pi-manifest.d.ts.map +1 -1
  899. package/dist/core/pi-manifest.js.map +1 -1
  900. package/dist/core/privacidad/categorias-especiales.d.ts.map +1 -1
  901. package/dist/core/privacidad/categorias-especiales.js +4 -0
  902. package/dist/core/privacidad/categorias-especiales.js.map +1 -1
  903. package/dist/core/privacidad/tapar.d.ts.map +1 -1
  904. package/dist/core/privacidad/tapar.js.map +1 -1
  905. package/dist/core/project-memory.d.ts.map +1 -1
  906. package/dist/core/project-memory.js.map +1 -1
  907. package/dist/core/project-trust.d.ts.map +1 -1
  908. package/dist/core/project-trust.js.map +1 -1
  909. package/dist/core/prompt-cache/diagnostics.d.ts.map +1 -1
  910. package/dist/core/prompt-cache/diagnostics.js.map +1 -1
  911. package/dist/core/prompt-cache/index.d.ts.map +1 -1
  912. package/dist/core/prompt-cache/index.js.map +1 -1
  913. package/dist/core/prompt-cache/payload.d.ts.map +1 -1
  914. package/dist/core/prompt-cache/payload.js.map +1 -1
  915. package/dist/core/prompt-cache/stabilize.d.ts.map +1 -1
  916. package/dist/core/prompt-cache/stabilize.js.map +1 -1
  917. package/dist/core/prompt-cache/stats.d.ts.map +1 -1
  918. package/dist/core/prompt-cache/stats.js.map +1 -1
  919. package/dist/core/prompt-eleccion.d.ts.map +1 -1
  920. package/dist/core/prompt-eleccion.js.map +1 -1
  921. package/dist/core/prompt-optimizer.d.ts.map +1 -1
  922. package/dist/core/prompt-optimizer.js.map +1 -1
  923. package/dist/core/prompt-templates.d.ts.map +1 -1
  924. package/dist/core/prompt-templates.js.map +1 -1
  925. package/dist/core/prompts/montar.d.ts.map +1 -1
  926. package/dist/core/prompts/montar.js.map +1 -1
  927. package/dist/core/prompts/plantilla.d.ts.map +1 -1
  928. package/dist/core/prompts/plantilla.js.map +1 -1
  929. package/dist/core/proveedores-registry/definiciones.d.ts +15 -0
  930. package/dist/core/proveedores-registry/definiciones.d.ts.map +1 -0
  931. package/dist/core/proveedores-registry/definiciones.js +22 -0
  932. package/dist/core/proveedores-registry/definiciones.js.map +1 -0
  933. package/dist/core/proveedores-registry/index.d.ts +14 -0
  934. package/dist/core/proveedores-registry/index.d.ts.map +1 -0
  935. package/dist/core/proveedores-registry/index.js +13 -0
  936. package/dist/core/proveedores-registry/index.js.map +1 -0
  937. package/dist/core/proveedores-registry/resolver.d.ts +25 -0
  938. package/dist/core/proveedores-registry/resolver.d.ts.map +1 -0
  939. package/dist/core/proveedores-registry/resolver.js +69 -0
  940. package/dist/core/proveedores-registry/resolver.js.map +1 -0
  941. package/dist/core/proveedores-registry/tipos.d.ts +47 -0
  942. package/dist/core/proveedores-registry/tipos.d.ts.map +1 -0
  943. package/dist/core/proveedores-registry/tipos.js +15 -0
  944. package/dist/core/proveedores-registry/tipos.js.map +1 -0
  945. package/dist/core/provider-attribution.d.ts.map +1 -1
  946. package/dist/core/provider-attribution.js.map +1 -1
  947. package/dist/core/provider-composer.d.ts.map +1 -1
  948. package/dist/core/provider-composer.js.map +1 -1
  949. package/dist/core/radius.d.ts.map +1 -1
  950. package/dist/core/radius.js.map +1 -1
  951. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  952. package/dist/core/remote-catalog-provider.js.map +1 -1
  953. package/dist/core/remoto/destino.d.ts.map +1 -1
  954. package/dist/core/remoto/destino.js.map +1 -1
  955. package/dist/core/remoto/ejecutor.d.ts.map +1 -1
  956. package/dist/core/remoto/ejecutor.js.map +1 -1
  957. package/dist/core/remoto/ficheros.d.ts.map +1 -1
  958. package/dist/core/remoto/ficheros.js.map +1 -1
  959. package/dist/core/remoto/registro-extension.d.ts.map +1 -1
  960. package/dist/core/remoto/registro-extension.js.map +1 -1
  961. package/dist/core/remoto/tools.d.ts.map +1 -1
  962. package/dist/core/remoto/tools.js.map +1 -1
  963. package/dist/core/reparacion/index.d.ts +2 -0
  964. package/dist/core/reparacion/index.d.ts.map +1 -0
  965. package/dist/core/reparacion/index.js +2 -0
  966. package/dist/core/reparacion/index.js.map +1 -0
  967. package/dist/core/reparacion/reparar-hunk.d.ts +27 -0
  968. package/dist/core/reparacion/reparar-hunk.d.ts.map +1 -0
  969. package/dist/core/reparacion/reparar-hunk.js +139 -0
  970. package/dist/core/reparacion/reparar-hunk.js.map +1 -0
  971. package/dist/core/resolve-config-value.d.ts.map +1 -1
  972. package/dist/core/resolve-config-value.js.map +1 -1
  973. package/dist/core/resource-loader.d.ts +13 -0
  974. package/dist/core/resource-loader.d.ts.map +1 -1
  975. package/dist/core/resource-loader.js +7 -4
  976. package/dist/core/resource-loader.js.map +1 -1
  977. package/dist/core/revision/dispositions.d.ts +86 -0
  978. package/dist/core/revision/dispositions.d.ts.map +1 -0
  979. package/dist/core/revision/dispositions.js +137 -0
  980. package/dist/core/revision/dispositions.js.map +1 -0
  981. package/dist/core/revision/hallazgo.d.ts.map +1 -1
  982. package/dist/core/revision/hallazgo.js.map +1 -1
  983. package/dist/core/revision/procedencia.d.ts +63 -0
  984. package/dist/core/revision/procedencia.d.ts.map +1 -0
  985. package/dist/core/revision/procedencia.js +72 -0
  986. package/dist/core/revision/procedencia.js.map +1 -0
  987. package/dist/core/revision/publicar.d.ts +26 -0
  988. package/dist/core/revision/publicar.d.ts.map +1 -0
  989. package/dist/core/revision/publicar.js +34 -0
  990. package/dist/core/revision/publicar.js.map +1 -0
  991. package/dist/core/revision/revisor.d.ts.map +1 -1
  992. package/dist/core/revision/revisor.js.map +1 -1
  993. package/dist/core/revision/sarif.d.ts.map +1 -1
  994. package/dist/core/revision/sarif.js.map +1 -1
  995. package/dist/core/router-uris/index.d.ts +12 -0
  996. package/dist/core/router-uris/index.d.ts.map +1 -0
  997. package/dist/core/router-uris/index.js +12 -0
  998. package/dist/core/router-uris/index.js.map +1 -0
  999. package/dist/core/router-uris/router.d.ts +2 -0
  1000. package/dist/core/router-uris/router.d.ts.map +1 -0
  1001. package/dist/core/router-uris/router.js +2 -0
  1002. package/dist/core/router-uris/router.js.map +1 -0
  1003. package/dist/core/runtime-credentials.d.ts.map +1 -1
  1004. package/dist/core/runtime-credentials.js.map +1 -1
  1005. package/dist/core/rutas/envoltorio.d.ts +20 -0
  1006. package/dist/core/rutas/envoltorio.d.ts.map +1 -0
  1007. package/dist/core/rutas/envoltorio.js +48 -0
  1008. package/dist/core/rutas/envoltorio.js.map +1 -0
  1009. package/dist/core/rutas/index.d.ts +11 -0
  1010. package/dist/core/rutas/index.d.ts.map +1 -0
  1011. package/dist/core/rutas/index.js +11 -0
  1012. package/dist/core/rutas/index.js.map +1 -0
  1013. package/dist/core/rutas/router.d.ts +82 -0
  1014. package/dist/core/rutas/router.d.ts.map +1 -0
  1015. package/dist/core/rutas/router.js +161 -0
  1016. package/dist/core/rutas/router.js.map +1 -0
  1017. package/dist/core/scheduler/scheduler.d.ts.map +1 -1
  1018. package/dist/core/scheduler/scheduler.js.map +1 -1
  1019. package/dist/core/sdk.d.ts.map +1 -1
  1020. package/dist/core/sdk.js.map +1 -1
  1021. package/dist/core/secretos/extension.d.ts +31 -0
  1022. package/dist/core/secretos/extension.d.ts.map +1 -0
  1023. package/dist/core/secretos/extension.js +64 -0
  1024. package/dist/core/secretos/extension.js.map +1 -0
  1025. package/dist/core/secretos/index.d.ts +75 -0
  1026. package/dist/core/secretos/index.d.ts.map +1 -0
  1027. package/dist/core/secretos/index.js +385 -0
  1028. package/dist/core/secretos/index.js.map +1 -0
  1029. package/dist/core/secretos/message-transform.d.ts +44 -0
  1030. package/dist/core/secretos/message-transform.d.ts.map +1 -0
  1031. package/dist/core/secretos/message-transform.js +246 -0
  1032. package/dist/core/secretos/message-transform.js.map +1 -0
  1033. package/dist/core/secretos/obfuscator.d.ts +30 -0
  1034. package/dist/core/secretos/obfuscator.d.ts.map +1 -0
  1035. package/dist/core/secretos/obfuscator.js +1182 -0
  1036. package/dist/core/secretos/obfuscator.js.map +1 -0
  1037. package/dist/core/secretos/placeholder-scan.d.ts +96 -0
  1038. package/dist/core/secretos/placeholder-scan.d.ts.map +1 -0
  1039. package/dist/core/secretos/placeholder-scan.js +433 -0
  1040. package/dist/core/secretos/placeholder-scan.js.map +1 -0
  1041. package/dist/core/secretos/placeholder.d.ts +95 -0
  1042. package/dist/core/secretos/placeholder.d.ts.map +1 -0
  1043. package/dist/core/secretos/placeholder.js +283 -0
  1044. package/dist/core/secretos/placeholder.js.map +1 -0
  1045. package/dist/core/secretos/regex.d.ts +3 -0
  1046. package/dist/core/secretos/regex.d.ts.map +1 -0
  1047. package/dist/core/secretos/regex.js +19 -0
  1048. package/dist/core/secretos/regex.js.map +1 -0
  1049. package/dist/core/secretos/replacement.d.ts +83 -0
  1050. package/dist/core/secretos/replacement.d.ts.map +1 -0
  1051. package/dist/core/secretos/replacement.js +211 -0
  1052. package/dist/core/secretos/replacement.js.map +1 -0
  1053. package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts.map +1 -1
  1054. package/dist/core/sesion/cerrar-llamadas-abiertas.js.map +1 -1
  1055. package/dist/core/sesion/journal-tree.d.ts +73 -0
  1056. package/dist/core/sesion/journal-tree.d.ts.map +1 -0
  1057. package/dist/core/sesion/journal-tree.js +241 -0
  1058. package/dist/core/sesion/journal-tree.js.map +1 -0
  1059. package/dist/core/sesion/turn-recovery.d.ts +48 -0
  1060. package/dist/core/sesion/turn-recovery.d.ts.map +1 -0
  1061. package/dist/core/sesion/turn-recovery.js +182 -0
  1062. package/dist/core/sesion/turn-recovery.js.map +1 -0
  1063. package/dist/core/session-cwd.d.ts.map +1 -1
  1064. package/dist/core/session-cwd.js.map +1 -1
  1065. package/dist/core/session-manager.d.ts.map +1 -1
  1066. package/dist/core/session-manager.js.map +1 -1
  1067. package/dist/core/settings-diagnostics.d.ts.map +1 -1
  1068. package/dist/core/settings-diagnostics.js.map +1 -1
  1069. package/dist/core/settings-manager.d.ts +2 -2
  1070. package/dist/core/settings-manager.d.ts.map +1 -1
  1071. package/dist/core/settings-manager.js.map +1 -1
  1072. package/dist/core/share/cifrado.d.ts +39 -0
  1073. package/dist/core/share/cifrado.d.ts.map +1 -0
  1074. package/dist/core/share/cifrado.js +81 -0
  1075. package/dist/core/share/cifrado.js.map +1 -0
  1076. package/dist/core/share/exportar.d.ts +69 -0
  1077. package/dist/core/share/exportar.d.ts.map +1 -0
  1078. package/dist/core/share/exportar.js +247 -0
  1079. package/dist/core/share/exportar.js.map +1 -0
  1080. package/dist/core/skills.d.ts.map +1 -1
  1081. package/dist/core/skills.js.map +1 -1
  1082. package/dist/core/slash-commands.d.ts.map +1 -1
  1083. package/dist/core/slash-commands.js.map +1 -1
  1084. package/dist/core/source-info.d.ts.map +1 -1
  1085. package/dist/core/source-info.js.map +1 -1
  1086. package/dist/core/stream-guard/guardia.d.ts +45 -0
  1087. package/dist/core/stream-guard/guardia.d.ts.map +1 -0
  1088. package/dist/core/stream-guard/guardia.js +100 -0
  1089. package/dist/core/stream-guard/guardia.js.map +1 -0
  1090. package/dist/core/stream-guard/index.d.ts +9 -0
  1091. package/dist/core/stream-guard/index.d.ts.map +1 -0
  1092. package/dist/core/stream-guard/index.js +7 -0
  1093. package/dist/core/stream-guard/index.js.map +1 -0
  1094. package/dist/core/stream-guard/replay.d.ts +39 -0
  1095. package/dist/core/stream-guard/replay.d.ts.map +1 -0
  1096. package/dist/core/stream-guard/replay.js +68 -0
  1097. package/dist/core/stream-guard/replay.js.map +1 -0
  1098. package/dist/core/system-prompt.d.ts.map +1 -1
  1099. package/dist/core/system-prompt.js.map +1 -1
  1100. package/dist/core/telemetria/otlp.d.ts.map +1 -1
  1101. package/dist/core/telemetria/otlp.js.map +1 -1
  1102. package/dist/core/telemetry/otel-genai.d.ts +44 -0
  1103. package/dist/core/telemetry/otel-genai.d.ts.map +1 -0
  1104. package/dist/core/telemetry/otel-genai.js +124 -0
  1105. package/dist/core/telemetry/otel-genai.js.map +1 -0
  1106. package/dist/core/telemetry.d.ts.map +1 -1
  1107. package/dist/core/telemetry.js.map +1 -1
  1108. package/dist/core/terminal/backlog-guard.d.ts +53 -0
  1109. package/dist/core/terminal/backlog-guard.d.ts.map +1 -0
  1110. package/dist/core/terminal/backlog-guard.js +122 -0
  1111. package/dist/core/terminal/backlog-guard.js.map +1 -0
  1112. package/dist/core/terminal/conpty.d.ts +29 -0
  1113. package/dist/core/terminal/conpty.d.ts.map +1 -0
  1114. package/dist/core/terminal/conpty.js +67 -0
  1115. package/dist/core/terminal/conpty.js.map +1 -0
  1116. package/dist/core/terminal/conptyChunking.d.ts +2 -0
  1117. package/dist/core/terminal/conptyChunking.d.ts.map +1 -0
  1118. package/dist/core/terminal/conptyChunking.js +2 -0
  1119. package/dist/core/terminal/conptyChunking.js.map +1 -0
  1120. package/dist/core/terminal/index.d.ts +5 -0
  1121. package/dist/core/terminal/index.d.ts.map +1 -0
  1122. package/dist/core/terminal/index.js +5 -0
  1123. package/dist/core/terminal/index.js.map +1 -0
  1124. package/dist/core/terminal/loop-watchdog.d.ts +43 -0
  1125. package/dist/core/terminal/loop-watchdog.d.ts.map +1 -0
  1126. package/dist/core/terminal/loop-watchdog.js +117 -0
  1127. package/dist/core/terminal/loop-watchdog.js.map +1 -0
  1128. package/dist/core/terminal/runner.d.ts +55 -0
  1129. package/dist/core/terminal/runner.d.ts.map +1 -0
  1130. package/dist/core/terminal/runner.js +102 -0
  1131. package/dist/core/terminal/runner.js.map +1 -0
  1132. package/dist/core/timings.d.ts.map +1 -1
  1133. package/dist/core/timings.js.map +1 -1
  1134. package/dist/core/tools/apply_patch.d.ts +29 -0
  1135. package/dist/core/tools/apply_patch.d.ts.map +1 -0
  1136. package/dist/core/tools/apply_patch.js +54 -0
  1137. package/dist/core/tools/apply_patch.js.map +1 -0
  1138. package/dist/core/tools/bash.d.ts.map +1 -1
  1139. package/dist/core/tools/bash.js.map +1 -1
  1140. package/dist/core/tools/coercion-argumentos.d.ts.map +1 -1
  1141. package/dist/core/tools/coercion-argumentos.js.map +1 -1
  1142. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  1143. package/dist/core/tools/edit-diff.js.map +1 -1
  1144. package/dist/core/tools/edit.d.ts.map +1 -1
  1145. package/dist/core/tools/edit.js +43 -1
  1146. package/dist/core/tools/edit.js.map +1 -1
  1147. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  1148. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  1149. package/dist/core/tools/find.d.ts.map +1 -1
  1150. package/dist/core/tools/find.js.map +1 -1
  1151. package/dist/core/tools/grep.d.ts.map +1 -1
  1152. package/dist/core/tools/grep.js.map +1 -1
  1153. package/dist/core/tools/index.d.ts.map +1 -1
  1154. package/dist/core/tools/index.js.map +1 -1
  1155. package/dist/core/tools/json-tolerante.d.ts.map +1 -1
  1156. package/dist/core/tools/json-tolerante.js.map +1 -1
  1157. package/dist/core/tools/ls.d.ts.map +1 -1
  1158. package/dist/core/tools/ls.js.map +1 -1
  1159. package/dist/core/tools/noop-loop-guard.d.ts +46 -0
  1160. package/dist/core/tools/noop-loop-guard.d.ts.map +1 -0
  1161. package/dist/core/tools/noop-loop-guard.js +57 -0
  1162. package/dist/core/tools/noop-loop-guard.js.map +1 -0
  1163. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  1164. package/dist/core/tools/output-accumulator.js.map +1 -1
  1165. package/dist/core/tools/path-utils.d.ts.map +1 -1
  1166. package/dist/core/tools/path-utils.js.map +1 -1
  1167. package/dist/core/tools/project-memory-tool.d.ts.map +1 -1
  1168. package/dist/core/tools/project-memory-tool.js.map +1 -1
  1169. package/dist/core/tools/read.d.ts.map +1 -1
  1170. package/dist/core/tools/read.js.map +1 -1
  1171. package/dist/core/tools/render-utils.d.ts.map +1 -1
  1172. package/dist/core/tools/render-utils.js.map +1 -1
  1173. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  1174. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  1175. package/dist/core/tools/truncate.d.ts.map +1 -1
  1176. package/dist/core/tools/truncate.js.map +1 -1
  1177. package/dist/core/tools/write.d.ts.map +1 -1
  1178. package/dist/core/tools/write.js.map +1 -1
  1179. package/dist/core/trust-manager.d.ts.map +1 -1
  1180. package/dist/core/trust-manager.js.map +1 -1
  1181. package/dist/core/ttsr/captura.d.ts +72 -0
  1182. package/dist/core/ttsr/captura.d.ts.map +1 -0
  1183. package/dist/core/ttsr/captura.js +183 -0
  1184. package/dist/core/ttsr/captura.js.map +1 -0
  1185. package/dist/core/ttsr/index.d.ts +24 -0
  1186. package/dist/core/ttsr/index.d.ts.map +1 -0
  1187. package/dist/core/ttsr/index.js +57 -0
  1188. package/dist/core/ttsr/index.js.map +1 -0
  1189. package/dist/core/ttsr/preview.d.ts +48 -0
  1190. package/dist/core/ttsr/preview.d.ts.map +1 -0
  1191. package/dist/core/ttsr/preview.js +83 -0
  1192. package/dist/core/ttsr/preview.js.map +1 -0
  1193. package/dist/core/turno-vacio/detectar.d.ts.map +1 -1
  1194. package/dist/core/turno-vacio/detectar.js.map +1 -1
  1195. package/dist/core/undo/journal.d.ts.map +1 -1
  1196. package/dist/core/undo/journal.js.map +1 -1
  1197. package/dist/core/urls-internas/auditoria.d.ts.map +1 -1
  1198. package/dist/core/urls-internas/auditoria.js.map +1 -1
  1199. package/dist/core/urls-internas/boveda.d.ts.map +1 -1
  1200. package/dist/core/urls-internas/boveda.js.map +1 -1
  1201. package/dist/core/urls-internas/lector.d.ts +14 -10
  1202. package/dist/core/urls-internas/lector.d.ts.map +1 -1
  1203. package/dist/core/urls-internas/lector.js +50 -36
  1204. package/dist/core/urls-internas/lector.js.map +1 -1
  1205. package/dist/core/urls-internas/memoria.d.ts.map +1 -1
  1206. package/dist/core/urls-internas/memoria.js.map +1 -1
  1207. package/dist/core/urls-internas/parse.d.ts +6 -13
  1208. package/dist/core/urls-internas/parse.d.ts.map +1 -1
  1209. package/dist/core/urls-internas/parse.js +6 -17
  1210. package/dist/core/urls-internas/parse.js.map +1 -1
  1211. package/dist/core/urls-internas/reglas.d.ts.map +1 -1
  1212. package/dist/core/urls-internas/reglas.js.map +1 -1
  1213. package/dist/core/usage/aggregate.d.ts +1 -0
  1214. package/dist/core/usage/aggregate.d.ts.map +1 -1
  1215. package/dist/core/usage/aggregate.js +1 -1
  1216. package/dist/core/usage/aggregate.js.map +1 -1
  1217. package/dist/core/usage/cuota/anthropic.d.ts.map +1 -1
  1218. package/dist/core/usage/cuota/anthropic.js.map +1 -1
  1219. package/dist/core/usage/cuota/cache.d.ts.map +1 -1
  1220. package/dist/core/usage/cuota/cache.js.map +1 -1
  1221. package/dist/core/usage/cuota/github-copilot.d.ts.map +1 -1
  1222. package/dist/core/usage/cuota/github-copilot.js.map +1 -1
  1223. package/dist/core/usage/cuota/google-gemini.d.ts.map +1 -1
  1224. package/dist/core/usage/cuota/google-gemini.js.map +1 -1
  1225. package/dist/core/usage/cuota/index.d.ts.map +1 -1
  1226. package/dist/core/usage/cuota/index.js.map +1 -1
  1227. package/dist/core/usage/cuota/openai-codex.d.ts.map +1 -1
  1228. package/dist/core/usage/cuota/openai-codex.js.map +1 -1
  1229. package/dist/core/usage/cuota/openrouter.d.ts.map +1 -1
  1230. package/dist/core/usage/cuota/openrouter.js.map +1 -1
  1231. package/dist/core/usage/cuota/tipos.d.ts.map +1 -1
  1232. package/dist/core/usage/cuota/tipos.js.map +1 -1
  1233. package/dist/core/usage/index.d.ts +11 -0
  1234. package/dist/core/usage/index.d.ts.map +1 -0
  1235. package/dist/core/usage/index.js +11 -0
  1236. package/dist/core/usage/index.js.map +1 -0
  1237. package/dist/core/usage/multi.d.ts +62 -0
  1238. package/dist/core/usage/multi.d.ts.map +1 -0
  1239. package/dist/core/usage/multi.js +122 -0
  1240. package/dist/core/usage/multi.js.map +1 -0
  1241. package/dist/core/usage/redaccion.d.ts +48 -0
  1242. package/dist/core/usage/redaccion.d.ts.map +1 -0
  1243. package/dist/core/usage/redaccion.js +72 -0
  1244. package/dist/core/usage/redaccion.js.map +1 -0
  1245. package/dist/core/usage-totals.d.ts.map +1 -1
  1246. package/dist/core/usage-totals.js.map +1 -1
  1247. package/dist/core/utils/atomic-write.d.ts +55 -0
  1248. package/dist/core/utils/atomic-write.d.ts.map +1 -0
  1249. package/dist/core/utils/atomic-write.js +293 -0
  1250. package/dist/core/utils/atomic-write.js.map +1 -0
  1251. package/dist/core/utils/git.d.ts +24 -0
  1252. package/dist/core/utils/git.d.ts.map +1 -0
  1253. package/dist/core/utils/git.js +107 -0
  1254. package/dist/core/utils/git.js.map +1 -0
  1255. package/dist/core/utils/logger.d.ts +26 -0
  1256. package/dist/core/utils/logger.d.ts.map +1 -0
  1257. package/dist/core/utils/logger.js +104 -0
  1258. package/dist/core/utils/logger.js.map +1 -0
  1259. package/dist/core/utils/shell-snapshot.d.ts +21 -0
  1260. package/dist/core/utils/shell-snapshot.d.ts.map +1 -0
  1261. package/dist/core/utils/shell-snapshot.js +32 -0
  1262. package/dist/core/utils/shell-snapshot.js.map +1 -0
  1263. package/dist/core/utils/startup-watchdog.d.ts +11 -0
  1264. package/dist/core/utils/startup-watchdog.d.ts.map +1 -0
  1265. package/dist/core/utils/startup-watchdog.js +34 -0
  1266. package/dist/core/utils/startup-watchdog.js.map +1 -0
  1267. package/dist/core/utils/tls-ca-shim.d.ts +17 -0
  1268. package/dist/core/utils/tls-ca-shim.d.ts.map +1 -0
  1269. package/dist/core/utils/tls-ca-shim.js +33 -0
  1270. package/dist/core/utils/tls-ca-shim.js.map +1 -0
  1271. package/dist/core/web/agregador.d.ts +67 -0
  1272. package/dist/core/web/agregador.d.ts.map +1 -0
  1273. package/dist/core/web/agregador.js +182 -0
  1274. package/dist/core/web/agregador.js.map +1 -0
  1275. package/dist/core/web/busqueda-nativa.d.ts.map +1 -1
  1276. package/dist/core/web/busqueda-nativa.js.map +1 -1
  1277. package/dist/core/web/consulta.d.ts +53 -0
  1278. package/dist/core/web/consulta.d.ts.map +1 -0
  1279. package/dist/core/web/consulta.js +213 -0
  1280. package/dist/core/web/consulta.js.map +1 -0
  1281. package/dist/core/web/destino.d.ts +11 -0
  1282. package/dist/core/web/destino.d.ts.map +1 -1
  1283. package/dist/core/web/destino.js +35 -0
  1284. package/dist/core/web/destino.js.map +1 -1
  1285. package/dist/core/web/load-page.d.ts +52 -0
  1286. package/dist/core/web/load-page.d.ts.map +1 -0
  1287. package/dist/core/web/load-page.js +221 -0
  1288. package/dist/core/web/load-page.js.map +1 -0
  1289. package/dist/core/web/proveedores/brave.d.ts.map +1 -1
  1290. package/dist/core/web/proveedores/brave.js.map +1 -1
  1291. package/dist/core/web/proveedores/claves.d.ts.map +1 -1
  1292. package/dist/core/web/proveedores/claves.js.map +1 -1
  1293. package/dist/core/web/proveedores/duckduckgo.d.ts.map +1 -1
  1294. package/dist/core/web/proveedores/duckduckgo.js.map +1 -1
  1295. package/dist/core/web/proveedores/ecosia.d.ts.map +1 -1
  1296. package/dist/core/web/proveedores/ecosia.js.map +1 -1
  1297. package/dist/core/web/proveedores/exa.d.ts.map +1 -1
  1298. package/dist/core/web/proveedores/exa.js.map +1 -1
  1299. package/dist/core/web/proveedores/mojeek.d.ts.map +1 -1
  1300. package/dist/core/web/proveedores/mojeek.js.map +1 -1
  1301. package/dist/core/web/proveedores/navegador.d.ts.map +1 -1
  1302. package/dist/core/web/proveedores/navegador.js.map +1 -1
  1303. package/dist/core/web/proveedores/registro.d.ts.map +1 -1
  1304. package/dist/core/web/proveedores/registro.js.map +1 -1
  1305. package/dist/core/web/proveedores/searxng.d.ts.map +1 -1
  1306. package/dist/core/web/proveedores/searxng.js.map +1 -1
  1307. package/dist/core/web/proveedores/serper.d.ts.map +1 -1
  1308. package/dist/core/web/proveedores/serper.js.map +1 -1
  1309. package/dist/core/web/proveedores/tavily.d.ts.map +1 -1
  1310. package/dist/core/web/proveedores/tavily.js.map +1 -1
  1311. package/dist/core/web/proveedores/tipos.d.ts.map +1 -1
  1312. package/dist/core/web/proveedores/tipos.js.map +1 -1
  1313. package/dist/core/web/registro-red.d.ts.map +1 -1
  1314. package/dist/core/web/registro-red.js.map +1 -1
  1315. package/dist/core/web/scrapers/cisa-kev.d.ts.map +1 -1
  1316. package/dist/core/web/scrapers/cisa-kev.js.map +1 -1
  1317. package/dist/core/web/scrapers/crates-io.d.ts.map +1 -1
  1318. package/dist/core/web/scrapers/crates-io.js.map +1 -1
  1319. package/dist/core/web/scrapers/docs-rs.d.ts.map +1 -1
  1320. package/dist/core/web/scrapers/docs-rs.js.map +1 -1
  1321. package/dist/core/web/scrapers/github.d.ts.map +1 -1
  1322. package/dist/core/web/scrapers/github.js.map +1 -1
  1323. package/dist/core/web/scrapers/go-pkg.d.ts.map +1 -1
  1324. package/dist/core/web/scrapers/go-pkg.js.map +1 -1
  1325. package/dist/core/web/scrapers/hex.d.ts.map +1 -1
  1326. package/dist/core/web/scrapers/hex.js.map +1 -1
  1327. package/dist/core/web/scrapers/maven.d.ts.map +1 -1
  1328. package/dist/core/web/scrapers/maven.js.map +1 -1
  1329. package/dist/core/web/scrapers/mdn.d.ts.map +1 -1
  1330. package/dist/core/web/scrapers/mdn.js.map +1 -1
  1331. package/dist/core/web/scrapers/npm.d.ts.map +1 -1
  1332. package/dist/core/web/scrapers/npm.js.map +1 -1
  1333. package/dist/core/web/scrapers/nuget.d.ts.map +1 -1
  1334. package/dist/core/web/scrapers/nuget.js.map +1 -1
  1335. package/dist/core/web/scrapers/nvd.d.ts.map +1 -1
  1336. package/dist/core/web/scrapers/nvd.js.map +1 -1
  1337. package/dist/core/web/scrapers/pypi.d.ts.map +1 -1
  1338. package/dist/core/web/scrapers/pypi.js.map +1 -1
  1339. package/dist/core/web/scrapers/registro.d.ts.map +1 -1
  1340. package/dist/core/web/scrapers/registro.js.map +1 -1
  1341. package/dist/core/web/scrapers/rubygems.d.ts.map +1 -1
  1342. package/dist/core/web/scrapers/rubygems.js.map +1 -1
  1343. package/dist/core/web/scrapers/stackoverflow.d.ts.map +1 -1
  1344. package/dist/core/web/scrapers/stackoverflow.js.map +1 -1
  1345. package/dist/core/web/scrapers/tipos.d.ts.map +1 -1
  1346. package/dist/core/web/scrapers/tipos.js.map +1 -1
  1347. package/dist/core/web/texto.d.ts.map +1 -1
  1348. package/dist/core/web/texto.js.map +1 -1
  1349. package/dist/core/web/tools.d.ts +1 -8
  1350. package/dist/core/web/tools.d.ts.map +1 -1
  1351. package/dist/core/web/tools.js +2 -33
  1352. package/dist/core/web/tools.js.map +1 -1
  1353. package/dist/core/wiki/almacen.d.ts.map +1 -1
  1354. package/dist/core/wiki/almacen.js.map +1 -1
  1355. package/dist/core/wiki/citas.d.ts.map +1 -1
  1356. package/dist/core/wiki/citas.js.map +1 -1
  1357. package/dist/core/workflows/agent-runner.d.ts.map +1 -1
  1358. package/dist/core/workflows/agent-runner.js.map +1 -1
  1359. package/dist/core/workflows/builtins.d.ts.map +1 -1
  1360. package/dist/core/workflows/builtins.js.map +1 -1
  1361. package/dist/core/workflows/contrato/esquema.d.ts.map +1 -1
  1362. package/dist/core/workflows/contrato/esquema.js.map +1 -1
  1363. package/dist/core/workflows/contrato/reparar-argumentos.d.ts.map +1 -1
  1364. package/dist/core/workflows/contrato/reparar-argumentos.js.map +1 -1
  1365. package/dist/core/workflows/contrato/validador.d.ts.map +1 -1
  1366. package/dist/core/workflows/contrato/validador.js.map +1 -1
  1367. package/dist/core/workflows/contrato/yield.d.ts.map +1 -1
  1368. package/dist/core/workflows/contrato/yield.js.map +1 -1
  1369. package/dist/core/workflows/goal-engine/engine.d.ts +5 -0
  1370. package/dist/core/workflows/goal-engine/engine.d.ts.map +1 -1
  1371. package/dist/core/workflows/goal-engine/engine.js.map +1 -1
  1372. package/dist/core/workflows/goal-engine/errors.d.ts.map +1 -1
  1373. package/dist/core/workflows/goal-engine/errors.js.map +1 -1
  1374. package/dist/core/workflows/goal-engine/index.d.ts.map +1 -1
  1375. package/dist/core/workflows/goal-engine/index.js.map +1 -1
  1376. package/dist/core/workflows/goal-engine/persistence.d.ts.map +1 -1
  1377. package/dist/core/workflows/goal-engine/persistence.js.map +1 -1
  1378. package/dist/core/workflows/goal-engine/prompts.d.ts.map +1 -1
  1379. package/dist/core/workflows/goal-engine/prompts.js.map +1 -1
  1380. package/dist/core/workflows/goal-engine/state.d.ts.map +1 -1
  1381. package/dist/core/workflows/goal-engine/state.js.map +1 -1
  1382. package/dist/core/workflows/goal-engine/tools.d.ts.map +1 -1
  1383. package/dist/core/workflows/goal-engine/tools.js.map +1 -1
  1384. package/dist/core/workflows/goal-engine/types.d.ts.map +1 -1
  1385. package/dist/core/workflows/goal-engine/types.js.map +1 -1
  1386. package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts.map +1 -1
  1387. package/dist/core/workflows/goal-engine/worktree-fingerprint.js.map +1 -1
  1388. package/dist/core/workflows/graph-sync.d.ts.map +1 -1
  1389. package/dist/core/workflows/graph-sync.js.map +1 -1
  1390. package/dist/core/workflows/graph.d.ts.map +1 -1
  1391. package/dist/core/workflows/graph.js.map +1 -1
  1392. package/dist/core/workflows/index.d.ts +6 -0
  1393. package/dist/core/workflows/index.d.ts.map +1 -1
  1394. package/dist/core/workflows/index.js +3 -0
  1395. package/dist/core/workflows/index.js.map +1 -1
  1396. package/dist/core/workflows/journal.d.ts.map +1 -1
  1397. package/dist/core/workflows/journal.js.map +1 -1
  1398. package/dist/core/workflows/manager.d.ts.map +1 -1
  1399. package/dist/core/workflows/manager.js.map +1 -1
  1400. package/dist/core/workflows/provider-caps.d.ts +103 -0
  1401. package/dist/core/workflows/provider-caps.d.ts.map +1 -0
  1402. package/dist/core/workflows/provider-caps.js +235 -0
  1403. package/dist/core/workflows/provider-caps.js.map +1 -0
  1404. package/dist/core/workflows/resolve-script.d.ts.map +1 -1
  1405. package/dist/core/workflows/resolve-script.js.map +1 -1
  1406. package/dist/core/workflows/runtime.d.ts.map +1 -1
  1407. package/dist/core/workflows/runtime.js.map +1 -1
  1408. package/dist/core/workflows/save-as-skill.d.ts.map +1 -1
  1409. package/dist/core/workflows/save-as-skill.js.map +1 -1
  1410. package/dist/core/workflows/shared-store.d.ts.map +1 -1
  1411. package/dist/core/workflows/shared-store.js.map +1 -1
  1412. package/dist/core/workflows/soft-budget.d.ts +27 -0
  1413. package/dist/core/workflows/soft-budget.d.ts.map +1 -0
  1414. package/dist/core/workflows/soft-budget.js +47 -0
  1415. package/dist/core/workflows/soft-budget.js.map +1 -0
  1416. package/dist/core/workflows/subagent-host.d.ts.map +1 -1
  1417. package/dist/core/workflows/subagent-host.js.map +1 -1
  1418. package/dist/core/workflows/tool-scheduling.d.ts +47 -0
  1419. package/dist/core/workflows/tool-scheduling.d.ts.map +1 -0
  1420. package/dist/core/workflows/tool-scheduling.js +102 -0
  1421. package/dist/core/workflows/tool-scheduling.js.map +1 -0
  1422. package/dist/core/workflows/tool-workflow.d.ts.map +1 -1
  1423. package/dist/core/workflows/tool-workflow.js.map +1 -1
  1424. package/dist/core/workflows/types.d.ts.map +1 -1
  1425. package/dist/core/workflows/types.js.map +1 -1
  1426. package/dist/core/workflows/worktree.d.ts.map +1 -1
  1427. package/dist/core/workflows/worktree.js.map +1 -1
  1428. package/dist/extensions/index.d.ts.map +1 -1
  1429. package/dist/extensions/index.js.map +1 -1
  1430. package/dist/extensions/llama/client.d.ts.map +1 -1
  1431. package/dist/extensions/llama/client.js.map +1 -1
  1432. package/dist/extensions/llama/huggingface.d.ts.map +1 -1
  1433. package/dist/extensions/llama/huggingface.js.map +1 -1
  1434. package/dist/extensions/llama/index.d.ts.map +1 -1
  1435. package/dist/extensions/llama/index.js.map +1 -1
  1436. package/dist/extensions/llama/provider.d.ts.map +1 -1
  1437. package/dist/extensions/llama/provider.js.map +1 -1
  1438. package/dist/extensions/llama/ui.d.ts.map +1 -1
  1439. package/dist/extensions/llama/ui.js.map +1 -1
  1440. package/dist/extensions/remoto/index.d.ts.map +1 -1
  1441. package/dist/extensions/remoto/index.js.map +1 -1
  1442. package/dist/index.d.ts.map +1 -1
  1443. package/dist/index.js.map +1 -1
  1444. package/dist/main.d.ts.map +1 -1
  1445. package/dist/main.js +71 -3
  1446. package/dist/main.js.map +1 -1
  1447. package/dist/migrations.d.ts.map +1 -1
  1448. package/dist/migrations.js.map +1 -1
  1449. package/dist/modes/acp/acp-mode.d.ts.map +1 -1
  1450. package/dist/modes/acp/acp-mode.js.map +1 -1
  1451. package/dist/modes/acp/events.d.ts.map +1 -1
  1452. package/dist/modes/acp/events.js.map +1 -1
  1453. package/dist/modes/index.d.ts.map +1 -1
  1454. package/dist/modes/index.js.map +1 -1
  1455. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  1456. package/dist/modes/interactive/components/armin.js.map +1 -1
  1457. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  1458. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  1459. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  1460. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  1461. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  1462. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  1463. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  1464. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  1465. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  1466. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  1467. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  1468. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  1469. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  1470. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  1471. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  1472. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  1473. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  1474. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  1475. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  1476. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  1477. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  1478. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  1479. package/dist/modes/interactive/components/diff.d.ts.map +1 -1
  1480. package/dist/modes/interactive/components/diff.js.map +1 -1
  1481. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  1482. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  1483. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  1484. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  1485. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  1486. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  1487. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  1488. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  1489. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  1490. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  1491. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  1492. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  1493. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  1494. package/dist/modes/interactive/components/footer.js.map +1 -1
  1495. package/dist/modes/interactive/components/home-screen.d.ts +2 -0
  1496. package/dist/modes/interactive/components/home-screen.d.ts.map +1 -1
  1497. package/dist/modes/interactive/components/home-screen.js +5 -6
  1498. package/dist/modes/interactive/components/home-screen.js.map +1 -1
  1499. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  1500. package/dist/modes/interactive/components/index.js.map +1 -1
  1501. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  1502. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  1503. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  1504. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  1505. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -1
  1506. package/dist/modes/interactive/components/markdown-transform.js.map +1 -1
  1507. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
  1508. package/dist/modes/interactive/components/mermaid.js.map +1 -1
  1509. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  1510. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  1511. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  1512. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  1513. package/dist/modes/interactive/components/prompt-optimization.d.ts.map +1 -1
  1514. package/dist/modes/interactive/components/prompt-optimization.js.map +1 -1
  1515. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  1516. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  1517. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  1518. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  1519. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  1520. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  1521. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  1522. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  1523. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
  1524. package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
  1525. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  1526. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  1527. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  1528. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  1529. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  1530. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  1531. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  1532. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  1533. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  1534. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  1535. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  1536. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  1537. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  1538. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  1539. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
  1540. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  1541. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  1542. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  1543. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  1544. package/dist/modes/interactive/components/user-message.js.map +1 -1
  1545. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  1546. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  1547. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  1548. package/dist/modes/interactive/external-editor.js.map +1 -1
  1549. package/dist/modes/interactive/interactive-mode.d.ts +19 -0
  1550. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  1551. package/dist/modes/interactive/interactive-mode.js +29 -0
  1552. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  1553. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -1
  1554. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
  1555. package/dist/modes/interactive/model-search.d.ts.map +1 -1
  1556. package/dist/modes/interactive/model-search.js.map +1 -1
  1557. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  1558. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  1559. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  1560. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  1561. package/dist/modes/interactive/theme/theme.js.map +1 -1
  1562. package/dist/modes/json-event.d.ts.map +1 -1
  1563. package/dist/modes/json-event.js.map +1 -1
  1564. package/dist/modes/print-mode.d.ts.map +1 -1
  1565. package/dist/modes/print-mode.js.map +1 -1
  1566. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  1567. package/dist/modes/rpc/jsonl.js.map +1 -1
  1568. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  1569. package/dist/modes/rpc/rpc-client.js.map +1 -1
  1570. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  1571. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  1572. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  1573. package/dist/modes/rpc/rpc-types.js.map +1 -1
  1574. package/dist/package-manager-cli.d.ts.map +1 -1
  1575. package/dist/package-manager-cli.js.map +1 -1
  1576. package/dist/rpc-entry.d.ts.map +1 -1
  1577. package/dist/rpc-entry.js +0 -0
  1578. package/dist/rpc-entry.js.map +1 -1
  1579. package/dist/server/attach.d.ts.map +1 -1
  1580. package/dist/server/attach.js.map +1 -1
  1581. package/dist/server/create-harness.d.ts.map +1 -1
  1582. package/dist/server/create-harness.js.map +1 -1
  1583. package/dist/server/extension-ops.d.ts.map +1 -1
  1584. package/dist/server/extension-ops.js.map +1 -1
  1585. package/dist/server/pi-server-service.d.ts.map +1 -1
  1586. package/dist/server/pi-server-service.js.map +1 -1
  1587. package/dist/server/scheduler-tick.d.ts.map +1 -1
  1588. package/dist/server/scheduler-tick.js.map +1 -1
  1589. package/dist/server/serve.d.ts.map +1 -1
  1590. package/dist/server/serve.js.map +1 -1
  1591. package/dist/server/transcript.d.ts.map +1 -1
  1592. package/dist/server/transcript.js.map +1 -1
  1593. package/dist/telegram/api.d.ts +6 -0
  1594. package/dist/telegram/api.d.ts.map +1 -1
  1595. package/dist/telegram/api.js.map +1 -1
  1596. package/dist/telegram/bridge.d.ts.map +1 -1
  1597. package/dist/telegram/bridge.js.map +1 -1
  1598. package/dist/telegram/journal.d.ts.map +1 -1
  1599. package/dist/telegram/journal.js.map +1 -1
  1600. package/dist/telegram/servidor.d.ts.map +1 -1
  1601. package/dist/telegram/servidor.js.map +1 -1
  1602. package/dist/utils/abort.d.ts.map +1 -1
  1603. package/dist/utils/abort.js.map +1 -1
  1604. package/dist/utils/ansi.d.ts.map +1 -1
  1605. package/dist/utils/ansi.js.map +1 -1
  1606. package/dist/utils/changelog.d.ts.map +1 -1
  1607. package/dist/utils/changelog.js.map +1 -1
  1608. package/dist/utils/child-process.d.ts.map +1 -1
  1609. package/dist/utils/child-process.js.map +1 -1
  1610. package/dist/utils/clipboard-image.d.ts.map +1 -1
  1611. package/dist/utils/clipboard-image.js.map +1 -1
  1612. package/dist/utils/clipboard-native.d.ts.map +1 -1
  1613. package/dist/utils/clipboard-native.js.map +1 -1
  1614. package/dist/utils/clipboard.d.ts.map +1 -1
  1615. package/dist/utils/clipboard.js.map +1 -1
  1616. package/dist/utils/deprecation.d.ts.map +1 -1
  1617. package/dist/utils/deprecation.js.map +1 -1
  1618. package/dist/utils/exif-orientation.d.ts.map +1 -1
  1619. package/dist/utils/exif-orientation.js.map +1 -1
  1620. package/dist/utils/frontmatter.d.ts.map +1 -1
  1621. package/dist/utils/frontmatter.js.map +1 -1
  1622. package/dist/utils/fs-watch.d.ts.map +1 -1
  1623. package/dist/utils/fs-watch.js.map +1 -1
  1624. package/dist/utils/git.d.ts.map +1 -1
  1625. package/dist/utils/git.js.map +1 -1
  1626. package/dist/utils/html.d.ts.map +1 -1
  1627. package/dist/utils/html.js.map +1 -1
  1628. package/dist/utils/image-convert.d.ts.map +1 -1
  1629. package/dist/utils/image-convert.js.map +1 -1
  1630. package/dist/utils/image-process.d.ts.map +1 -1
  1631. package/dist/utils/image-process.js.map +1 -1
  1632. package/dist/utils/image-resize-core.d.ts.map +1 -1
  1633. package/dist/utils/image-resize-core.js.map +1 -1
  1634. package/dist/utils/image-resize-worker.d.ts.map +1 -1
  1635. package/dist/utils/image-resize-worker.js.map +1 -1
  1636. package/dist/utils/image-resize.d.ts.map +1 -1
  1637. package/dist/utils/image-resize.js.map +1 -1
  1638. package/dist/utils/json.d.ts.map +1 -1
  1639. package/dist/utils/json.js.map +1 -1
  1640. package/dist/utils/management-http.d.ts.map +1 -1
  1641. package/dist/utils/management-http.js.map +1 -1
  1642. package/dist/utils/mime.d.ts.map +1 -1
  1643. package/dist/utils/mime.js.map +1 -1
  1644. package/dist/utils/open-browser.d.ts.map +1 -1
  1645. package/dist/utils/open-browser.js.map +1 -1
  1646. package/dist/utils/paths.d.ts.map +1 -1
  1647. package/dist/utils/paths.js.map +1 -1
  1648. package/dist/utils/photon.d.ts.map +1 -1
  1649. package/dist/utils/photon.js.map +1 -1
  1650. package/dist/utils/pi-user-agent.d.ts.map +1 -1
  1651. package/dist/utils/pi-user-agent.js.map +1 -1
  1652. package/dist/utils/shell.d.ts.map +1 -1
  1653. package/dist/utils/shell.js.map +1 -1
  1654. package/dist/utils/sleep.d.ts.map +1 -1
  1655. package/dist/utils/sleep.js.map +1 -1
  1656. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  1657. package/dist/utils/syntax-highlight.js.map +1 -1
  1658. package/dist/utils/text.d.ts.map +1 -1
  1659. package/dist/utils/text.js.map +1 -1
  1660. package/dist/utils/tool-result-images.d.ts.map +1 -1
  1661. package/dist/utils/tool-result-images.js.map +1 -1
  1662. package/dist/utils/tools-manager.d.ts.map +1 -1
  1663. package/dist/utils/tools-manager.js.map +1 -1
  1664. package/dist/utils/version-check.d.ts.map +1 -1
  1665. package/dist/utils/version-check.js.map +1 -1
  1666. package/dist/utils/windows-self-update.d.ts.map +1 -1
  1667. package/dist/utils/windows-self-update.js.map +1 -1
  1668. package/docs/development-fork.md +170 -0
  1669. package/docs/docs.json +25 -0
  1670. package/docs/modules-infraestructura.md +115 -0
  1671. package/docs/modules-motor.md +160 -0
  1672. package/docs/modules-producto.md +179 -0
  1673. package/docs/modules-seguridad.md +158 -0
  1674. package/package.json +113 -113
  1675. package/dist/core/commit/diff.d.ts.map +0 -1
  1676. package/dist/core/commit/diff.js.map +0 -1
  1677. package/dist/core/commit/mensaje.d.ts +0 -80
  1678. package/dist/core/commit/mensaje.d.ts.map +0 -1
  1679. package/dist/core/commit/mensaje.js +0 -207
  1680. package/dist/core/commit/mensaje.js.map +0 -1
  1681. /package/dist/core/{commit → commits}/diff.d.ts +0 -0
  1682. /package/dist/core/{commit → commits}/diff.js +0 -0
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Broker de daemons por proyecto — mapea projectRoot -> daemon handle.
3
+ *
4
+ * Por qué existe: cada proyecto necesita a lo sumo un daemon vivo (LSP mux,
5
+ * watcher, etc). Sin broker, dos `ada` en el mismo proyecto arrancan dos y
6
+ * pelean por puertos / ficheros. Con broker, el segundo reutiliza el primero.
7
+ *
8
+ * Diseño ponytail: un Map en memoria + heartbeat explícito + verificación de
9
+ * pid por startId. Nada de sockets, locks de fichero ni de redis. El `ps`
10
+ * inspecciona ESE Map; la recolección narra lo que quita. Si hace falta
11
+ * persistir entre procesos, se añade un journal JSONL encima —pero el contrato
12
+ * de `ps` y de `reap` no cambia, así que LSP puede avanzar en modo
13
+ * file-level writethrough sin broker residente y luego integrarse sin reescribir
14
+ * tests.
15
+ */
16
+ import { execFileSync } from "node:child_process";
17
+ import { readFileSync } from "node:fs";
18
+ import { resolve } from "node:path";
19
+ import { ManagedTimers } from "../higiene/managed-timers.js";
20
+ /** Por defecto, un daemon sin latido más de 60 s se considera caducado. */
21
+ export const DEFAULT_HEARTBEAT_TTL_MS = 60_000;
22
+ /** Identidad de arranque del proceso, para no matar un pid reciclado. */
23
+ function startIdForPid(pid) {
24
+ if (!Number.isInteger(pid) || pid <= 0)
25
+ return undefined;
26
+ try {
27
+ const stat = readFileSync(`/proc/${pid}/stat`, "utf8");
28
+ const fields = stat.slice(stat.lastIndexOf(")") + 2).split(" ");
29
+ if (fields[19])
30
+ return `proc:${fields[19]}`;
31
+ }
32
+ catch {
33
+ // macOS / BSD sin /proc
34
+ }
35
+ try {
36
+ const out = execFileSync("ps", ["-p", String(pid), "-o", "lstart="], {
37
+ encoding: "utf-8",
38
+ stdio: ["ignore", "pipe", "ignore"],
39
+ }).trim();
40
+ return out ? `ps:${out}` : undefined;
41
+ }
42
+ catch {
43
+ return undefined;
44
+ }
45
+ }
46
+ function pidVivo(pid) {
47
+ if (!Number.isInteger(pid) || pid <= 0)
48
+ return false;
49
+ try {
50
+ process.kill(pid, 0);
51
+ return true;
52
+ }
53
+ catch (e) {
54
+ const err = e;
55
+ // EPERM = existe pero no tenemos permiso; ESRCH = no existe
56
+ if (err.code === "EPERM")
57
+ return true;
58
+ return false;
59
+ }
60
+ }
61
+ function normalizaRoot(root) {
62
+ const trimmed = root.trim();
63
+ if (!trimmed)
64
+ throw new Error("projectRoot vacío");
65
+ return resolve(trimmed);
66
+ }
67
+ export class Broker {
68
+ daemons = new Map();
69
+ ttlMs;
70
+ timers = new ManagedTimers();
71
+ /** Inyectable para tests: decide si un pid vive. Por defecto usa kill(0). */
72
+ isAlive;
73
+ /** Inyectable para tests: startId. Por defecto lee /proc o ps. */
74
+ resolveStartId;
75
+ constructor(opts) {
76
+ this.ttlMs = opts?.heartbeatTtlMs ?? DEFAULT_HEARTBEAT_TTL_MS;
77
+ this.isAlive = opts?.isAlive ?? pidVivo;
78
+ this.resolveStartId = opts?.resolveStartId ?? startIdForPid;
79
+ }
80
+ /** Registra o re-registra un daemon para el proyecto. Devuelve el handle. */
81
+ register(projectRoot, pid) {
82
+ const root = normalizaRoot(projectRoot);
83
+ const resolvedPid = pid ?? process.pid;
84
+ const now = Date.now();
85
+ const existing = this.daemons.get(root);
86
+ // Re-registro: si el pid es el mismo, se conserva startedAt y se refresca latido.
87
+ if (existing && existing.pid === resolvedPid) {
88
+ existing.lastHeartbeat = now;
89
+ return existing;
90
+ }
91
+ const handle = {
92
+ projectRoot: root,
93
+ pid: resolvedPid,
94
+ startedAt: now,
95
+ lastHeartbeat: now,
96
+ startId: this.resolveStartId(resolvedPid),
97
+ };
98
+ this.daemons.set(root, handle);
99
+ return handle;
100
+ }
101
+ /** Refresca el latido de un proyecto. false = no existía. */
102
+ heartbeat(projectRoot) {
103
+ const root = normalizaRoot(projectRoot);
104
+ const handle = this.daemons.get(root);
105
+ if (!handle)
106
+ return false;
107
+ handle.lastHeartbeat = Date.now();
108
+ return true;
109
+ }
110
+ /** Devuelve el handle crudo o undefined. */
111
+ get(projectRoot) {
112
+ const root = normalizaRoot(projectRoot);
113
+ return this.daemons.get(root);
114
+ }
115
+ /** ¿Cuántos daemons hay registrados? */
116
+ get size() {
117
+ return this.daemons.size;
118
+ }
119
+ /** Lista inspeccionable para `ada ps` — pid, proyecto, uptime, estado. */
120
+ list() {
121
+ const now = Date.now();
122
+ const out = [];
123
+ for (const handle of this.daemons.values()) {
124
+ const uptimeMs = now - handle.startedAt;
125
+ const idleMs = now - handle.lastHeartbeat;
126
+ let estado;
127
+ if (!this.isAlive(handle.pid)) {
128
+ estado = "huerfano";
129
+ }
130
+ else if (idleMs > this.ttlMs) {
131
+ estado = "caducado";
132
+ }
133
+ else {
134
+ estado = "activo";
135
+ }
136
+ out.push({
137
+ projectRoot: handle.projectRoot,
138
+ pid: handle.pid,
139
+ startedAt: handle.startedAt,
140
+ uptimeMs,
141
+ idleMs,
142
+ estado,
143
+ });
144
+ }
145
+ // Orden estable por projectRoot para que `ps` no baile.
146
+ out.sort((a, b) => a.projectRoot.localeCompare(b.projectRoot));
147
+ return out;
148
+ }
149
+ /** Quita el registro del proyecto, si existe. true = había algo. */
150
+ unregister(projectRoot) {
151
+ const root = normalizaRoot(projectRoot);
152
+ return this.daemons.delete(root);
153
+ }
154
+ /**
155
+ * Mata un huérfano por proyecto: verifica identidad antes de señal.
156
+ * Devuelve narrativa de lo hecho.
157
+ */
158
+ killOrphan(projectRoot) {
159
+ const root = normalizaRoot(projectRoot);
160
+ const handle = this.daemons.get(root);
161
+ if (!handle)
162
+ return { killed: false, narrativa: `no hay daemon para ${root}` };
163
+ if (this.isAlive(handle.pid)) {
164
+ return { killed: false, narrativa: `daemon ${root} (pid ${handle.pid}) sigue vivo — no se toca` };
165
+ }
166
+ this.daemons.delete(root);
167
+ const idle = Date.now() - handle.lastHeartbeat;
168
+ return {
169
+ killed: true,
170
+ narrativa: `huérfano recolectado: ${root} (pid ${handle.pid}, ${Math.round(idle / 1000)}s sin latido, estado ${this.estadoPara(handle)})`,
171
+ };
172
+ }
173
+ /**
174
+ * Barre todos los huérfanos (pid muerto) y devuelve narrativa agregada.
175
+ * Los caducados NO se borran automáticamente: requieren `killOrphan` explícito
176
+ * o re-registro — borrar por timeout silencioso es perder trabajo a medias.
177
+ */
178
+ reapOrphans() {
179
+ const entries = this.list();
180
+ const toReap = entries.filter((e) => e.estado === "huerfano");
181
+ const detalle = [];
182
+ const reaped = [];
183
+ for (const entry of toReap) {
184
+ this.daemons.delete(entry.projectRoot);
185
+ reaped.push(entry);
186
+ const linea = `huérfano recolectado: ${entry.projectRoot} (pid ${entry.pid}, ${Math.round(entry.idleMs / 1000)}s sin latido)`;
187
+ detalle.push(linea);
188
+ }
189
+ const narrativa = reaped.length === 0 ? "no hay huérfanos que recolectar" : detalle.join("\n");
190
+ return { reaped, narrativa, detalle };
191
+ }
192
+ estadoPara(handle) {
193
+ if (!this.isAlive(handle.pid))
194
+ return "huerfano";
195
+ if (Date.now() - handle.lastHeartbeat > this.ttlMs)
196
+ return "caducado";
197
+ return "activo";
198
+ }
199
+ /** Solo para tests / inspección: vacía todo. */
200
+ clear() {
201
+ this.daemons.clear();
202
+ }
203
+ /** Higiene B06: acceso al pool de timers para tests/inspección. */
204
+ getTimers() {
205
+ return this.timers;
206
+ }
207
+ /** Programa un callback vía ManagedTimers (unref, disposeAll lo limpia). */
208
+ scheduleReap(callback, delayMs) {
209
+ return this.timers.registerTimeout(callback, delayMs);
210
+ }
211
+ /** Limpia todos los timers pendientes (p. ej. al cerrar proyecto). */
212
+ disposeTimers() {
213
+ this.timers.disposeAll();
214
+ }
215
+ }
216
+ //# sourceMappingURL=broker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../src/core/broker/broker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Barrel del broker por proyecto.
3
+ *
4
+ * API pública:
5
+ * getBroker(projectRoot?) -> Broker | DaemonHandle | undefined
6
+ * getBroker() -> singleton Broker del proceso
7
+ * getBroker(root) -> handle del proyecto (o undefined si no existe)
8
+ * createBroker(opts) -> broker aislado (para tests / LSP sin singleton)
9
+ */
10
+ import { Broker } from "./broker.ts";
11
+ import type { DaemonHandle } from "./types.ts";
12
+ export { Broker, DEFAULT_HEARTBEAT_TTL_MS } from "./broker.ts";
13
+ export { formatPsHuman, formatPsJson, runPs } from "./ps.ts";
14
+ export type { DaemonHandle, EstadoDaemon, PsEntry, ReapResult } from "./types.ts";
15
+ /** Crea un broker aislado (no singleton). Útil para tests. */
16
+ export declare function createBroker(opts?: ConstructorParameters<typeof Broker>[0]): Broker;
17
+ /** Resetea el singleton (solo tests). */
18
+ export declare function resetBrokerForTests(): void;
19
+ export declare function getBroker(): Broker;
20
+ export declare function getBroker(projectRoot: string): DaemonHandle | undefined;
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/broker/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AASlF,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAEnF;AAED,yCAAyC;AACzC,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAGD,wBAAgB,SAAS,IAAI,MAAM,CAAC;AACpC,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Barrel del broker por proyecto.
3
+ *
4
+ * API pública:
5
+ * getBroker(projectRoot?) -> Broker | DaemonHandle | undefined
6
+ * getBroker() -> singleton Broker del proceso
7
+ * getBroker(root) -> handle del proyecto (o undefined si no existe)
8
+ * createBroker(opts) -> broker aislado (para tests / LSP sin singleton)
9
+ */
10
+ import { Broker } from "./broker.js";
11
+ export { Broker, DEFAULT_HEARTBEAT_TTL_MS } from "./broker.js";
12
+ export { formatPsHuman, formatPsJson, runPs } from "./ps.js";
13
+ let singleton;
14
+ function getSingleton() {
15
+ if (!singleton)
16
+ singleton = new Broker();
17
+ return singleton;
18
+ }
19
+ /** Crea un broker aislado (no singleton). Útil para tests. */
20
+ export function createBroker(opts) {
21
+ return new Broker(opts);
22
+ }
23
+ /** Resetea el singleton (solo tests). */
24
+ export function resetBrokerForTests() {
25
+ singleton = undefined;
26
+ }
27
+ export function getBroker(projectRoot) {
28
+ const broker = getSingleton();
29
+ if (projectRoot === undefined)
30
+ return broker;
31
+ return broker.get(projectRoot);
32
+ }
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/broker/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAG7D,IAAI,SAA6B,CAAC;AAElC,SAAS,YAAY;IACpB,IAAI,CAAC,SAAS;QAAE,SAAS,GAAG,IAAI,MAAM,EAAE,CAAC;IACzC,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,YAAY,CAAC,IAA8C;IAC1E,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,mBAAmB;IAClC,SAAS,GAAG,SAAS,CAAC;AACvB,CAAC;AAKD,MAAM,UAAU,SAAS,CAAC,WAAoB;IAC7C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Formateo inspeccionable para `ada ps`.
3
+ *
4
+ * Dos salidas: humana (tabla alineada para terminal) y JSON (para scripts y
5
+ * tests). La humana es la que narra huérfanos; la JSON es la que LSP mux
6
+ * consumirá después sin parsear texto.
7
+ */
8
+ import type { Broker } from "./broker.ts";
9
+ import type { PsEntry } from "./types.ts";
10
+ export declare function formatPsHuman(entries: readonly PsEntry[]): string;
11
+ export declare function formatPsJson(entries: readonly PsEntry[]): string;
12
+ export interface RunPsOptions {
13
+ json?: boolean;
14
+ }
15
+ /**
16
+ * Ejecuta `ps` contra un broker y devuelve el texto para imprimir.
17
+ * No hace console.log: el caller decide dónde va.
18
+ */
19
+ export declare function runPs(broker: Broker, opts?: RunPsOptions): string;
20
+ //# sourceMappingURL=ps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ps.d.ts","sourceRoot":"","sources":["../../../src/core/broker/ps.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAc1C,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAWjE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAahE;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,CAIjE"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Formateo inspeccionable para `ada ps`.
3
+ *
4
+ * Dos salidas: humana (tabla alineada para terminal) y JSON (para scripts y
5
+ * tests). La humana es la que narra huérfanos; la JSON es la que LSP mux
6
+ * consumirá después sin parsear texto.
7
+ */
8
+ function formatUptime(ms) {
9
+ if (ms < 1000)
10
+ return `${ms}ms`;
11
+ const s = Math.floor(ms / 1000);
12
+ if (s < 60)
13
+ return `${s}s`;
14
+ const m = Math.floor(s / 60);
15
+ const remS = s % 60;
16
+ if (m < 60)
17
+ return `${m}m ${remS}s`;
18
+ const h = Math.floor(m / 60);
19
+ const remM = m % 60;
20
+ return `${h}h ${remM}m`;
21
+ }
22
+ export function formatPsHuman(entries) {
23
+ if (entries.length === 0)
24
+ return "no hay daemons activos";
25
+ const header = `${"PID".padEnd(8)} ${"ESTADO".padEnd(10)} ${"UPTIME".padEnd(10)} PROYECTO`;
26
+ const lines = [header, "-".repeat(header.length)];
27
+ for (const e of entries) {
28
+ const pid = String(e.pid).padEnd(8);
29
+ const estado = e.estado.padEnd(10);
30
+ const uptime = formatUptime(e.uptimeMs).padEnd(10);
31
+ lines.push(`${pid} ${estado} ${uptime} ${e.projectRoot}`);
32
+ }
33
+ return lines.join("\n");
34
+ }
35
+ export function formatPsJson(entries) {
36
+ return JSON.stringify(entries.map((e) => ({
37
+ pid: e.pid,
38
+ projectRoot: e.projectRoot,
39
+ uptimeMs: e.uptimeMs,
40
+ idleMs: e.idleMs,
41
+ estado: e.estado,
42
+ startedAt: new Date(e.startedAt).toISOString(),
43
+ })), null, 2);
44
+ }
45
+ /**
46
+ * Ejecuta `ps` contra un broker y devuelve el texto para imprimir.
47
+ * No hace console.log: el caller decide dónde va.
48
+ */
49
+ export function runPs(broker, opts) {
50
+ const entries = broker.list();
51
+ if (opts?.json)
52
+ return formatPsJson(entries);
53
+ return formatPsHuman(entries);
54
+ }
55
+ //# sourceMappingURL=ps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ps.js","sourceRoot":"","sources":["../../../src/core/broker/ps.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,SAAS,YAAY,CAAC,EAAU;IAC/B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,EAAE,IAAI,CAAC;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC;IAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;IACpB,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC;IACpC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;IACpB,OAAO,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA2B;IACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,wBAAwB,CAAC;IAC1D,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;IAC9F,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,MAAM,KAAK,MAAM,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAA2B;IACvD,OAAO,IAAI,CAAC,SAAS,CACpB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;KAC9C,CAAC,CAAC,EACH,IAAI,EACJ,CAAC,CACD,CAAC;AACH,CAAC;AAMD;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc,EAAE,IAAmB;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,IAAI,EAAE,IAAI;QAAE,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Tipos del broker de daemons por proyecto.
3
+ *
4
+ * Tres estados —no dos, no cuatro— porque son los que de verdad aparecen en
5
+ * producción y los que `ada ps` tiene que enseñar sin mentir:
6
+ *
7
+ * activo = el proceso vive y el latido llegó a tiempo. Todo bien.
8
+ * caducado = el proceso puede vivir, pero hace demasiado que no late.
9
+ * No se mata: puede ser una pausa larga de GC o un SIGSTOP.
10
+ * huerfano = el pid ya no existe (o nevera reciclada verificada por startId).
11
+ * Este sí se recoge.
12
+ *
13
+ * Ambos halves cubiertos: el half de registro (activo/caducado) y el half de
14
+ * recolección (huerfano) pasan por la misma estructura, sin capacidad
15
+ * desenchufada — todo lo que se registra es inspeccionable por `ps` y todo lo
16
+ * huérfano es narrable al recolectar.
17
+ */
18
+ export type EstadoDaemon = "activo" | "caducado" | "huerfano";
19
+ export interface DaemonHandle {
20
+ readonly projectRoot: string;
21
+ readonly pid: number;
22
+ readonly startedAt: number;
23
+ lastHeartbeat: number;
24
+ /** Identidad de arranque para no matar un pid reciclado. */
25
+ readonly startId?: string;
26
+ }
27
+ export interface PsEntry {
28
+ readonly projectRoot: string;
29
+ readonly pid: number;
30
+ readonly startedAt: number;
31
+ /** ms desde startedAt hasta ahora */
32
+ readonly uptimeMs: number;
33
+ /** ms desde lastHeartbeat hasta ahora */
34
+ readonly idleMs: number;
35
+ readonly estado: EstadoDaemon;
36
+ }
37
+ export interface ReapResult {
38
+ /** Entradas que se quitaron del broker */
39
+ readonly reaped: readonly PsEntry[];
40
+ /** Narrativa humana, una línea por huérfano recolectado. Vacía si no hubo. */
41
+ readonly narrativa: string;
42
+ /** Detalle estructurado para tests / telemetría */
43
+ readonly detalle: readonly string[];
44
+ }
45
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/broker/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Tipos del broker de daemons por proyecto.
3
+ *
4
+ * Tres estados —no dos, no cuatro— porque son los que de verdad aparecen en
5
+ * producción y los que `ada ps` tiene que enseñar sin mentir:
6
+ *
7
+ * activo = el proceso vive y el latido llegó a tiempo. Todo bien.
8
+ * caducado = el proceso puede vivir, pero hace demasiado que no late.
9
+ * No se mata: puede ser una pausa larga de GC o un SIGSTOP.
10
+ * huerfano = el pid ya no existe (o nevera reciclada verificada por startId).
11
+ * Este sí se recoge.
12
+ *
13
+ * Ambos halves cubiertos: el half de registro (activo/caducado) y el half de
14
+ * recolección (huerfano) pasan por la misma estructura, sin capacidad
15
+ * desenchufada — todo lo que se registra es inspeccionable por `ps` y todo lo
16
+ * huérfano es narrable al recolectar.
17
+ */
18
+ export {};
19
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/broker/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
@@ -1 +1 @@
1
- {"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../../../src/core/browser/cdp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,MAAM,WAAW,WAAW;IAC3B,wEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,aAAa,CAAC;CAC7C;AAED,8EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC7B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,IAAI,IAAI,CAAC;IACd,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;CACzG;AAID,qBAAa,UAAU;IACtB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,OAAO,CAAqD;IACpE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,eAQN;IAED,OAAa,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAkBlF;IAED,0DAA0D;IAC1D,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,SAAsB,GAAG,UAAU,CAErF;IAED,OAAO,CAAC,OAAO;IAwBf,OAAO,CAAC,QAAQ;IAaV,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAY9G;IAED,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAKvE;IAED,MAAM,IAAI,IAAI,CAOb;CACD","sourcesContent":["/**\n * Cliente mínimo del Chrome DevTools Protocol.\n *\n * Sin Playwright ni Puppeteer a propósito. Playwright son cientos de megas y\n * se descarga sus propios navegadores; el mismo coste de cadena de suministro\n * que ya rechazamos dos veces en este repo. CDP es un WebSocket con JSON, y\n * Node trae `WebSocket` nativo desde la 22.\n *\n * Solo cubre lo que necesitan las tools: conectar, pedir y escuchar. No\n * pretende ser una librería.\n */\n\ninterface Pendiente {\n\tresolve: (valor: unknown) => void;\n\treject: (error: Error) => void;\n\ttemporizador: ReturnType<typeof setTimeout>;\n}\n\nexport interface OpcionesCdp {\n\t/** Tope por petición. Una página colgada no puede colgar el turno. */\n\ttimeoutMs?: number;\n\t/** Inyectable para poder probar el enmarcado sin un navegador. */\n\tcrearSocket?: (url: string) => WebSocketLike;\n}\n\n/** Lo mínimo que usamos de un WebSocket, para poder falsearlo en pruebas. */\nexport interface WebSocketLike {\n\tsend(datos: string): void;\n\tclose(): void;\n\taddEventListener(tipo: \"message\" | \"open\" | \"close\" | \"error\", handler: (evento: unknown) => void): void;\n}\n\nconst TIMEOUT_POR_DEFECTO = 30_000;\n\nexport class ClienteCdp {\n\tprivate socket: WebSocketLike;\n\tprivate siguienteId = 1;\n\tprivate pendientes = new Map<number, Pendiente>();\n\tprivate oyentes = new Map<string, Set<(params: unknown) => void>>();\n\tprivate cerrado = false;\n\tprivate timeoutMs: number;\n\n\tprivate constructor(socket: WebSocketLike, timeoutMs: number) {\n\t\tthis.socket = socket;\n\t\tthis.timeoutMs = timeoutMs;\n\t\tthis.socket.addEventListener(\"message\", (evento) => {\n\t\t\tthis.recibir((evento as { data?: unknown }).data);\n\t\t});\n\t\tthis.socket.addEventListener(\"close\", () => this.alCerrar(new Error(\"el navegador cerró la conexión\")));\n\t\tthis.socket.addEventListener(\"error\", () => this.alCerrar(new Error(\"error de conexión con el navegador\")));\n\t}\n\n\tstatic async conectar(url: string, opciones: OpcionesCdp = {}): Promise<ClienteCdp> {\n\t\tconst crear = opciones.crearSocket ?? ((u: string) => new WebSocket(u) as unknown as WebSocketLike);\n\t\tconst socket = crear(url);\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tconst temporizador = setTimeout(\n\t\t\t\t() => reject(new Error(`no se pudo conectar a ${url} en ${opciones.timeoutMs ?? TIMEOUT_POR_DEFECTO} ms`)),\n\t\t\t\topciones.timeoutMs ?? TIMEOUT_POR_DEFECTO,\n\t\t\t);\n\t\t\tsocket.addEventListener(\"open\", () => {\n\t\t\t\tclearTimeout(temporizador);\n\t\t\t\tresolve();\n\t\t\t});\n\t\t\tsocket.addEventListener(\"error\", () => {\n\t\t\t\tclearTimeout(temporizador);\n\t\t\t\treject(new Error(`no se pudo conectar a ${url}`));\n\t\t\t});\n\t\t});\n\t\treturn new ClienteCdp(socket, opciones.timeoutMs ?? TIMEOUT_POR_DEFECTO);\n\t}\n\n\t/** Para pruebas: cliente sobre un socket ya \"abierto\". */\n\tstatic sobreSocket(socket: WebSocketLike, timeoutMs = TIMEOUT_POR_DEFECTO): ClienteCdp {\n\t\treturn new ClienteCdp(socket, timeoutMs);\n\t}\n\n\tprivate recibir(datos: unknown): void {\n\t\tif (typeof datos !== \"string\") return;\n\t\tlet mensaje: { id?: number; method?: string; params?: unknown; result?: unknown; error?: { message?: string } };\n\t\ttry {\n\t\t\tmensaje = JSON.parse(datos);\n\t\t} catch {\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof mensaje.id === \"number\") {\n\t\t\tconst pendiente = this.pendientes.get(mensaje.id);\n\t\t\tif (!pendiente) return;\n\t\t\tthis.pendientes.delete(mensaje.id);\n\t\t\tclearTimeout(pendiente.temporizador);\n\t\t\tif (mensaje.error) pendiente.reject(new Error(mensaje.error.message ?? \"error del navegador\"));\n\t\t\telse pendiente.resolve(mensaje.result ?? {});\n\t\t\treturn;\n\t\t}\n\n\t\tif (mensaje.method) {\n\t\t\tfor (const oyente of this.oyentes.get(mensaje.method) ?? []) oyente(mensaje.params);\n\t\t}\n\t}\n\n\tprivate alCerrar(error: Error): void {\n\t\tif (this.cerrado) return;\n\t\tthis.cerrado = true;\n\t\t// Rechazar TODO lo pendiente: si no, una petición hecha justo antes de que\n\t\t// el navegador se cierre se queda esperando hasta su temporizador y el\n\t\t// turno espera con ella sin motivo.\n\t\tfor (const [, pendiente] of this.pendientes) {\n\t\t\tclearTimeout(pendiente.temporizador);\n\t\t\tpendiente.reject(error);\n\t\t}\n\t\tthis.pendientes.clear();\n\t}\n\n\tasync enviar<T = unknown>(method: string, params: Record<string, unknown> = {}, sessionId?: string): Promise<T> {\n\t\tif (this.cerrado) throw new Error(\"la conexión con el navegador está cerrada\");\n\t\tconst id = this.siguienteId++;\n\t\tconst promesa = new Promise<T>((resolve, reject) => {\n\t\t\tconst temporizador = setTimeout(() => {\n\t\t\t\tthis.pendientes.delete(id);\n\t\t\t\treject(new Error(`'${method}' no respondió en ${this.timeoutMs} ms`));\n\t\t\t}, this.timeoutMs);\n\t\t\tthis.pendientes.set(id, { resolve: resolve as (v: unknown) => void, reject, temporizador });\n\t\t});\n\t\tthis.socket.send(JSON.stringify(sessionId ? { id, method, params, sessionId } : { id, method, params }));\n\t\treturn promesa;\n\t}\n\n\tescuchar(method: string, handler: (params: unknown) => void): () => void {\n\t\tconst conjunto = this.oyentes.get(method) ?? new Set();\n\t\tconjunto.add(handler);\n\t\tthis.oyentes.set(method, conjunto);\n\t\treturn () => conjunto.delete(handler);\n\t}\n\n\tcerrar(): void {\n\t\tthis.alCerrar(new Error(\"conexión cerrada por el agente\"));\n\t\ttry {\n\t\t\tthis.socket.close();\n\t\t} catch {\n\t\t\t// Ya estaba cerrado.\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../../../src/core/browser/cdp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,MAAM,WAAW,WAAW;IAC3B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,aAAa,CAAC;CAC7C;AAED,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC7B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,IAAI,IAAI,CAAC;IACd,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;CACzG;AAID,qBAAa,UAAU;IACtB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,OAAO,CAAqD;IACpE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO;WAUM,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAoBnF,0DAA0D;IAC1D,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,SAAsB,GAAG,UAAU;IAItF,OAAO,CAAC,OAAO;IAwBf,OAAO,CAAC,QAAQ;IAaV,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAc/G,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAOxE,MAAM,IAAI,IAAI;CAQd"}
@@ -1 +1 @@
1
- {"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../../src/core/browser/cdp.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Cliente mínimo del Chrome DevTools Protocol.\n *\n * Sin Playwright ni Puppeteer a propósito. Playwright son cientos de megas y\n * se descarga sus propios navegadores; el mismo coste de cadena de suministro\n * que ya rechazamos dos veces en este repo. CDP es un WebSocket con JSON, y\n * Node trae `WebSocket` nativo desde la 22.\n *\n * Solo cubre lo que necesitan las tools: conectar, pedir y escuchar. No\n * pretende ser una librería.\n */\n\ninterface Pendiente {\n\tresolve: (valor: unknown) => void;\n\treject: (error: Error) => void;\n\ttemporizador: ReturnType<typeof setTimeout>;\n}\n\nexport interface OpcionesCdp {\n\t/** Tope por petición. Una página colgada no puede colgar el turno. */\n\ttimeoutMs?: number;\n\t/** Inyectable para poder probar el enmarcado sin un navegador. */\n\tcrearSocket?: (url: string) => WebSocketLike;\n}\n\n/** Lo mínimo que usamos de un WebSocket, para poder falsearlo en pruebas. */\nexport interface WebSocketLike {\n\tsend(datos: string): void;\n\tclose(): void;\n\taddEventListener(tipo: \"message\" | \"open\" | \"close\" | \"error\", handler: (evento: unknown) => void): void;\n}\n\nconst TIMEOUT_POR_DEFECTO = 30_000;\n\nexport class ClienteCdp {\n\tprivate socket: WebSocketLike;\n\tprivate siguienteId = 1;\n\tprivate pendientes = new Map<number, Pendiente>();\n\tprivate oyentes = new Map<string, Set<(params: unknown) => void>>();\n\tprivate cerrado = false;\n\tprivate timeoutMs: number;\n\n\tprivate constructor(socket: WebSocketLike, timeoutMs: number) {\n\t\tthis.socket = socket;\n\t\tthis.timeoutMs = timeoutMs;\n\t\tthis.socket.addEventListener(\"message\", (evento) => {\n\t\t\tthis.recibir((evento as { data?: unknown }).data);\n\t\t});\n\t\tthis.socket.addEventListener(\"close\", () => this.alCerrar(new Error(\"el navegador cerró la conexión\")));\n\t\tthis.socket.addEventListener(\"error\", () => this.alCerrar(new Error(\"error de conexión con el navegador\")));\n\t}\n\n\tstatic async conectar(url: string, opciones: OpcionesCdp = {}): Promise<ClienteCdp> {\n\t\tconst crear = opciones.crearSocket ?? ((u: string) => new WebSocket(u) as unknown as WebSocketLike);\n\t\tconst socket = crear(url);\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tconst temporizador = setTimeout(\n\t\t\t\t() => reject(new Error(`no se pudo conectar a ${url} en ${opciones.timeoutMs ?? TIMEOUT_POR_DEFECTO} ms`)),\n\t\t\t\topciones.timeoutMs ?? TIMEOUT_POR_DEFECTO,\n\t\t\t);\n\t\t\tsocket.addEventListener(\"open\", () => {\n\t\t\t\tclearTimeout(temporizador);\n\t\t\t\tresolve();\n\t\t\t});\n\t\t\tsocket.addEventListener(\"error\", () => {\n\t\t\t\tclearTimeout(temporizador);\n\t\t\t\treject(new Error(`no se pudo conectar a ${url}`));\n\t\t\t});\n\t\t});\n\t\treturn new ClienteCdp(socket, opciones.timeoutMs ?? TIMEOUT_POR_DEFECTO);\n\t}\n\n\t/** Para pruebas: cliente sobre un socket ya \"abierto\". */\n\tstatic sobreSocket(socket: WebSocketLike, timeoutMs = TIMEOUT_POR_DEFECTO): ClienteCdp {\n\t\treturn new ClienteCdp(socket, timeoutMs);\n\t}\n\n\tprivate recibir(datos: unknown): void {\n\t\tif (typeof datos !== \"string\") return;\n\t\tlet mensaje: { id?: number; method?: string; params?: unknown; result?: unknown; error?: { message?: string } };\n\t\ttry {\n\t\t\tmensaje = JSON.parse(datos);\n\t\t} catch {\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof mensaje.id === \"number\") {\n\t\t\tconst pendiente = this.pendientes.get(mensaje.id);\n\t\t\tif (!pendiente) return;\n\t\t\tthis.pendientes.delete(mensaje.id);\n\t\t\tclearTimeout(pendiente.temporizador);\n\t\t\tif (mensaje.error) pendiente.reject(new Error(mensaje.error.message ?? \"error del navegador\"));\n\t\t\telse pendiente.resolve(mensaje.result ?? {});\n\t\t\treturn;\n\t\t}\n\n\t\tif (mensaje.method) {\n\t\t\tfor (const oyente of this.oyentes.get(mensaje.method) ?? []) oyente(mensaje.params);\n\t\t}\n\t}\n\n\tprivate alCerrar(error: Error): void {\n\t\tif (this.cerrado) return;\n\t\tthis.cerrado = true;\n\t\t// Rechazar TODO lo pendiente: si no, una petición hecha justo antes de que\n\t\t// el navegador se cierre se queda esperando hasta su temporizador y el\n\t\t// turno espera con ella sin motivo.\n\t\tfor (const [, pendiente] of this.pendientes) {\n\t\t\tclearTimeout(pendiente.temporizador);\n\t\t\tpendiente.reject(error);\n\t\t}\n\t\tthis.pendientes.clear();\n\t}\n\n\tasync enviar<T = unknown>(method: string, params: Record<string, unknown> = {}, sessionId?: string): Promise<T> {\n\t\tif (this.cerrado) throw new Error(\"la conexión con el navegador está cerrada\");\n\t\tconst id = this.siguienteId++;\n\t\tconst promesa = new Promise<T>((resolve, reject) => {\n\t\t\tconst temporizador = setTimeout(() => {\n\t\t\t\tthis.pendientes.delete(id);\n\t\t\t\treject(new Error(`'${method}' no respondió en ${this.timeoutMs} ms`));\n\t\t\t}, this.timeoutMs);\n\t\t\tthis.pendientes.set(id, { resolve: resolve as (v: unknown) => void, reject, temporizador });\n\t\t});\n\t\tthis.socket.send(JSON.stringify(sessionId ? { id, method, params, sessionId } : { id, method, params }));\n\t\treturn promesa;\n\t}\n\n\tescuchar(method: string, handler: (params: unknown) => void): () => void {\n\t\tconst conjunto = this.oyentes.get(method) ?? new Set();\n\t\tconjunto.add(handler);\n\t\tthis.oyentes.set(method, conjunto);\n\t\treturn () => conjunto.delete(handler);\n\t}\n\n\tcerrar(): void {\n\t\tthis.alCerrar(new Error(\"conexión cerrada por el agente\"));\n\t\ttry {\n\t\t\tthis.socket.close();\n\t\t} catch {\n\t\t\t// Ya estaba cerrado.\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../../src/core/browser/cdp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"politica.d.ts","sourceRoot":"","sources":["../../../src/core/browser/politica.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,2CAA0C;AAC1C,MAAM,WAAW,QAAO;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,0CAAyC;IACzC,MAAM,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,kBAAkB,SAAQ,KAAK;IAC3C,YAAY,QAAQ,EAAE,MAAM,EAM3B;CACD;AAED,0DAAyD;AACzD,wBAAgB,oBAAmB,CAAC,SAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAO,CAI7F;AAWD,MAAM,WAAW,eAAe;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAK9D;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC3C,cAMC;CACD;AAED;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,8JAO7B,CAAC;AA2BX,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAoB/C;AAYD,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAEjE","sourcesContent":["/**\n * Reglas del navegador. Puro: sin sockets ni procesos.\n *\n * Un agente que conduce un navegador es la superficie más peligrosa que tiene\n * este producto: hay sesiones iniciadas, cookies, correo y banca detrás de las\n * pestañas que ya están abiertas. Por eso las reglas viven aparte y se prueban\n * solas, en vez de estar repartidas por el código que habla con Chrome.\n *\n * Las tres:\n *\n * 1. **Solo se conducen las pestañas que abrió el agente.** Nunca las del\n * usuario. Es la regla que copiamos de ZCode y la más importante: sin ella,\n * \"resume esta página\" puede acabar leyendo el banco.\n * 2. **Las URL pasan por la misma guarda SSRF que `web_fetch`.** Un navegador\n * que puede ir a `169.254.169.254` es una fuga de credenciales de nube.\n * 3. **Nunca se escribe en un campo de contraseña.** Ni aunque se lo pidan.\n */\n\n/** Una pestaña conocida por el agente. */\nexport interface Pestaña {\n\ttargetId: string;\n\turl: string;\n\t/** `true` solo si la abrió el agente. */\n\tpropia: boolean;\n}\n\nexport class PestañaAjenaError extends Error {\n\tconstructor(targetId: string) {\n\t\tsuper(\n\t\t\t`La pestaña ${targetId} no la abrió el agente. Solo se pueden conducir pestañas abiertas con browser_open; ` +\n\t\t\t\t`las del usuario tienen sesiones iniciadas detrás.`,\n\t\t);\n\t\tthis.name = \"PestañaAjenaError\";\n\t}\n}\n\n/** Lanza si la pestaña no es del agente. Ver regla 1. */\nexport function exigirPestañaPropia(pestañas: Map<string, Pestaña>, targetId: string): Pestaña {\n\tconst pestaña = pestañas.get(targetId);\n\tif (!pestaña || !pestaña.propia) throw new PestañaAjenaError(targetId);\n\treturn pestaña;\n}\n\n/**\n * Campos donde el agente no escribe nunca.\n *\n * Se mira el tipo, el nombre, el id y el autocomplete: un formulario puede\n * usar `type=\"text\"` con `autocomplete=\"current-password\"` para su propio\n * gestor, y sigue siendo una contraseña.\n */\nconst PISTAS_SECRETO = /pass(word|wd)?|contrase|secret|token|api[-_ ]?key|cvv|cvc|card[-_ ]?number|tarjeta|iban|ssn/i;\n\nexport interface CampoFormulario {\n\ttype?: string;\n\tname?: string;\n\tid?: string;\n\tautocomplete?: string;\n\tplaceholder?: string;\n\tariaLabel?: string;\n}\n\nexport function esCampoSecreto(campo: CampoFormulario): boolean {\n\tif ((campo.type ?? \"\").toLowerCase() === \"password\") return true;\n\treturn [campo.name, campo.id, campo.autocomplete, campo.placeholder, campo.ariaLabel].some(\n\t\t(v) => typeof v === \"string\" && PISTAS_SECRETO.test(v),\n\t);\n}\n\nexport class CampoSecretoError extends Error {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Ese campo pide una credencial. El agente no escribe contraseñas, tokens ni datos de tarjeta: \" +\n\t\t\t\t\"escríbelo tú, o usa el gestor de contraseñas.\",\n\t\t);\n\t\tthis.name = \"CampoSecretoError\";\n\t}\n}\n\n/**\n * Acciones que no se hacen sin que una persona lo diga en el chat.\n *\n * No es una lista de botones prohibidos: es qué hay que preguntar antes. El\n * agente puede navegar y leer sin permiso; enviar, comprar o publicar, no.\n */\nexport const ACCIONES_QUE_PIDEN_PERMISO = [\n\t\"enviar un formulario\",\n\t\"publicar contenido\",\n\t\"comprar o pagar\",\n\t\"aceptar términos o consentimientos\",\n\t\"conceder permisos OAuth\",\n\t\"borrar datos\",\n] as const;\n\n/**\n * URL a las que el navegador del agente puede ir.\n *\n * Es MÁS PERMISIVA que la de `web_fetch`, y a propósito: `web_fetch` descarga\n * una URL que ha propuesto el modelo, muchas veces leída de un README, y ahí\n * `localhost` no tiene por qué ser cosa del usuario. El navegador es otra cosa:\n * mirar `http://localhost:3000` es EL caso de uso de un agente de programación.\n * Bloquearlo dejaría la herramienta sin su motivo de existir.\n *\n * Lo que sigue prohibido es lo que nunca es \"mi aplicación\":\n * - los endpoints de metadatos de nube, que devuelven credenciales de la\n * instancia y son el objetivo clásico de un SSRF;\n * - el resto de la red privada, que son OTRAS máquinas, no la del usuario;\n * - todo lo que no sea http o https — nada de `file:`, que daría acceso al\n * disco entero a través del navegador.\n */\nconst METADATOS_NUBE = new Set([\"169.254.169.254\", \"metadata.google.internal\", \"metadata\", \"100.100.100.200\"]);\nconst LOOPBACK = /^(?:127\\.\\d+\\.\\d+\\.\\d+|::1|localhost)$/i;\n// Incluye 127/8 a propósito, aunque el loopback se permita: la lista describe\n// \"esto no es internet público\", y la excepción se hace ARRIBA y explícita. Sin\n// el 127 aquí, la rama de loopback era código muerto — quitarla no rompía nada,\n// y una prueba que intentó romperla pasó igual.\nconst RANGOS_NO_PUBLICOS =\n\t/^(?:10\\.|127\\.|192\\.168\\.|172\\.(?:1[6-9]|2\\d|3[01])\\.|169\\.254\\.|100\\.(?:6[4-9]|[7-9]\\d|1[01]\\d|12[0-7])\\.)/;\n\nexport function urlNavegable(bruta: string): URL {\n\tlet url: URL;\n\ttry {\n\t\turl = new URL(bruta);\n\t} catch {\n\t\tthrow new Error(`URL inválida: ${bruta}`);\n\t}\n\tif (url.protocol !== \"http:\" && url.protocol !== \"https:\") {\n\t\tthrow new Error(`Solo se permiten http y https (recibido: ${url.protocol})`);\n\t}\n\tconst host = url.hostname.replace(/^\\[|\\]$/g, \"\").toLowerCase();\n\tif (METADATOS_NUBE.has(host)) {\n\t\tthrow new Error(`Bloqueado: ${host} es el endpoint de metadatos de la nube y devuelve credenciales.`);\n\t}\n\t// El loopback SÍ se permite: es la aplicación del propio usuario.\n\tif (LOOPBACK.test(host)) return url;\n\tif (RANGOS_NO_PUBLICOS.test(host)) {\n\t\tthrow new Error(`Bloqueado: ${host} es una máquina de la red interna, no tu aplicación local.`);\n\t}\n\treturn url;\n}\n\n/**\n * Texto de botones que casi siempre son irreversibles.\n *\n * Sirve para AVISAR, no para bloquear: la decisión es del usuario y una lista\n * de palabras nunca va a ser completa. Bloquear con ella daría una falsa\n * sensación de seguridad y rompería páginas legítimas.\n */\nconst TEXTO_IRREVERSIBLE =\n\t/^\\s*(enviar|send|submit|publicar|publish|post|comprar|buy|pagar|pay|confirmar|confirm|borrar|delete|eliminar|aceptar|accept|agree|allow|permitir)\\b/i;\n\nexport function pareceIrreversible(textoDelBoton: string): boolean {\n\treturn TEXTO_IRREVERSIBLE.test(textoDelBoton);\n}\n"]}
1
+ {"version":3,"file":"politica.d.ts","sourceRoot":"","sources":["../../../src/core/browser/politica.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,0CAA0C;AAC1C,MAAM,WAAW,OAAO;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC/B,QAAQ,EAAE,MAAM;CAO5B;AAED,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAI7F;AAWD,MAAM,WAAW,eAAe;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAK9D;AAED,qBAAa,iBAAkB,SAAQ,KAAK;;CAQ3C;AAED;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,6JAO7B,CAAC;AA2BX,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAoB/C;AAYD,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAEjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"politica.js","sourceRoot":"","sources":["../../../src/core/browser/politica.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Reglas del navegador. Puro: sin sockets ni procesos.\n *\n * Un agente que conduce un navegador es la superficie más peligrosa que tiene\n * este producto: hay sesiones iniciadas, cookies, correo y banca detrás de las\n * pestañas que ya están abiertas. Por eso las reglas viven aparte y se prueban\n * solas, en vez de estar repartidas por el código que habla con Chrome.\n *\n * Las tres:\n *\n * 1. **Solo se conducen las pestañas que abrió el agente.** Nunca las del\n * usuario. Es la regla que copiamos de ZCode y la más importante: sin ella,\n * \"resume esta página\" puede acabar leyendo el banco.\n * 2. **Las URL pasan por la misma guarda SSRF que `web_fetch`.** Un navegador\n * que puede ir a `169.254.169.254` es una fuga de credenciales de nube.\n * 3. **Nunca se escribe en un campo de contraseña.** Ni aunque se lo pidan.\n */\n\n/** Una pestaña conocida por el agente. */\nexport interface Pestaña {\n\ttargetId: string;\n\turl: string;\n\t/** `true` solo si la abrió el agente. */\n\tpropia: boolean;\n}\n\nexport class PestañaAjenaError extends Error {\n\tconstructor(targetId: string) {\n\t\tsuper(\n\t\t\t`La pestaña ${targetId} no la abrió el agente. Solo se pueden conducir pestañas abiertas con browser_open; ` +\n\t\t\t\t`las del usuario tienen sesiones iniciadas detrás.`,\n\t\t);\n\t\tthis.name = \"PestañaAjenaError\";\n\t}\n}\n\n/** Lanza si la pestaña no es del agente. Ver regla 1. */\nexport function exigirPestañaPropia(pestañas: Map<string, Pestaña>, targetId: string): Pestaña {\n\tconst pestaña = pestañas.get(targetId);\n\tif (!pestaña || !pestaña.propia) throw new PestañaAjenaError(targetId);\n\treturn pestaña;\n}\n\n/**\n * Campos donde el agente no escribe nunca.\n *\n * Se mira el tipo, el nombre, el id y el autocomplete: un formulario puede\n * usar `type=\"text\"` con `autocomplete=\"current-password\"` para su propio\n * gestor, y sigue siendo una contraseña.\n */\nconst PISTAS_SECRETO = /pass(word|wd)?|contrase|secret|token|api[-_ ]?key|cvv|cvc|card[-_ ]?number|tarjeta|iban|ssn/i;\n\nexport interface CampoFormulario {\n\ttype?: string;\n\tname?: string;\n\tid?: string;\n\tautocomplete?: string;\n\tplaceholder?: string;\n\tariaLabel?: string;\n}\n\nexport function esCampoSecreto(campo: CampoFormulario): boolean {\n\tif ((campo.type ?? \"\").toLowerCase() === \"password\") return true;\n\treturn [campo.name, campo.id, campo.autocomplete, campo.placeholder, campo.ariaLabel].some(\n\t\t(v) => typeof v === \"string\" && PISTAS_SECRETO.test(v),\n\t);\n}\n\nexport class CampoSecretoError extends Error {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Ese campo pide una credencial. El agente no escribe contraseñas, tokens ni datos de tarjeta: \" +\n\t\t\t\t\"escríbelo tú, o usa el gestor de contraseñas.\",\n\t\t);\n\t\tthis.name = \"CampoSecretoError\";\n\t}\n}\n\n/**\n * Acciones que no se hacen sin que una persona lo diga en el chat.\n *\n * No es una lista de botones prohibidos: es qué hay que preguntar antes. El\n * agente puede navegar y leer sin permiso; enviar, comprar o publicar, no.\n */\nexport const ACCIONES_QUE_PIDEN_PERMISO = [\n\t\"enviar un formulario\",\n\t\"publicar contenido\",\n\t\"comprar o pagar\",\n\t\"aceptar términos o consentimientos\",\n\t\"conceder permisos OAuth\",\n\t\"borrar datos\",\n] as const;\n\n/**\n * URL a las que el navegador del agente puede ir.\n *\n * Es MÁS PERMISIVA que la de `web_fetch`, y a propósito: `web_fetch` descarga\n * una URL que ha propuesto el modelo, muchas veces leída de un README, y ahí\n * `localhost` no tiene por qué ser cosa del usuario. El navegador es otra cosa:\n * mirar `http://localhost:3000` es EL caso de uso de un agente de programación.\n * Bloquearlo dejaría la herramienta sin su motivo de existir.\n *\n * Lo que sigue prohibido es lo que nunca es \"mi aplicación\":\n * - los endpoints de metadatos de nube, que devuelven credenciales de la\n * instancia y son el objetivo clásico de un SSRF;\n * - el resto de la red privada, que son OTRAS máquinas, no la del usuario;\n * - todo lo que no sea http o https — nada de `file:`, que daría acceso al\n * disco entero a través del navegador.\n */\nconst METADATOS_NUBE = new Set([\"169.254.169.254\", \"metadata.google.internal\", \"metadata\", \"100.100.100.200\"]);\nconst LOOPBACK = /^(?:127\\.\\d+\\.\\d+\\.\\d+|::1|localhost)$/i;\n// Incluye 127/8 a propósito, aunque el loopback se permita: la lista describe\n// \"esto no es internet público\", y la excepción se hace ARRIBA y explícita. Sin\n// el 127 aquí, la rama de loopback era código muerto — quitarla no rompía nada,\n// y una prueba que intentó romperla pasó igual.\nconst RANGOS_NO_PUBLICOS =\n\t/^(?:10\\.|127\\.|192\\.168\\.|172\\.(?:1[6-9]|2\\d|3[01])\\.|169\\.254\\.|100\\.(?:6[4-9]|[7-9]\\d|1[01]\\d|12[0-7])\\.)/;\n\nexport function urlNavegable(bruta: string): URL {\n\tlet url: URL;\n\ttry {\n\t\turl = new URL(bruta);\n\t} catch {\n\t\tthrow new Error(`URL inválida: ${bruta}`);\n\t}\n\tif (url.protocol !== \"http:\" && url.protocol !== \"https:\") {\n\t\tthrow new Error(`Solo se permiten http y https (recibido: ${url.protocol})`);\n\t}\n\tconst host = url.hostname.replace(/^\\[|\\]$/g, \"\").toLowerCase();\n\tif (METADATOS_NUBE.has(host)) {\n\t\tthrow new Error(`Bloqueado: ${host} es el endpoint de metadatos de la nube y devuelve credenciales.`);\n\t}\n\t// El loopback SÍ se permite: es la aplicación del propio usuario.\n\tif (LOOPBACK.test(host)) return url;\n\tif (RANGOS_NO_PUBLICOS.test(host)) {\n\t\tthrow new Error(`Bloqueado: ${host} es una máquina de la red interna, no tu aplicación local.`);\n\t}\n\treturn url;\n}\n\n/**\n * Texto de botones que casi siempre son irreversibles.\n *\n * Sirve para AVISAR, no para bloquear: la decisión es del usuario y una lista\n * de palabras nunca va a ser completa. Bloquear con ella daría una falsa\n * sensación de seguridad y rompería páginas legítimas.\n */\nconst TEXTO_IRREVERSIBLE =\n\t/^\\s*(enviar|send|submit|publicar|publish|post|comprar|buy|pagar|pay|confirmar|confirm|borrar|delete|eliminar|aceptar|accept|agree|allow|permitir)\\b/i;\n\nexport function pareceIrreversible(textoDelBoton: string): boolean {\n\treturn TEXTO_IRREVERSIBLE.test(textoDelBoton);\n}\n"]}
1
+ {"version":3,"file":"politica.js","sourceRoot":"","sources":["../../../src/core/browser/politica.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC3C,YAAY,QAAgB;QAC3B,KAAK,CACJ,cAAc,QAAQ,sFAAsF;YAC3G,mDAAmD,CACpD,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IACjC,CAAC;CACD;AAED,yDAAyD;AACzD,MAAM,UAAU,mBAAmB,CAAC,QAA8B,EAAE,QAAgB;IACnF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACvE,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,cAAc,GAAG,8FAA8F,CAAC;AAWtH,MAAM,UAAU,cAAc,CAAC,KAAsB;IACpD,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACjE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CACzF,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CACtD,CAAC;AACH,CAAC;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC3C;QACC,KAAK,CACJ,+FAA+F;YAC9F,+CAA+C,CAChD,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IACjC,CAAC;CACD;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACzC,sBAAsB;IACtB,oBAAoB;IACpB,iBAAiB;IACjB,oCAAoC;IACpC,yBAAyB;IACzB,cAAc;CACL,CAAC;AAEX;;;;;;;;;;;;;;;GAeG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,iBAAiB,EAAE,0BAA0B,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAC/G,MAAM,QAAQ,GAAG,yCAAyC,CAAC;AAC3D,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,gDAAgD;AAChD,MAAM,kBAAkB,GACvB,6GAA6G,CAAC;AAE/G,MAAM,UAAU,YAAY,CAAC,KAAa;IACzC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACJ,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,4CAA4C,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,kEAAkE,CAAC,CAAC;IACvG,CAAC;IACD,kEAAkE;IAClE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,4DAA4D,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,kBAAkB,GACvB,sJAAsJ,CAAC;AAExJ,MAAM,UAAU,kBAAkB,CAAC,aAAqB;IACvD,OAAO,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sesion.d.ts","sourceRoot":"","sources":["../../../src/core/browser/sesion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAAuB,KAAK,QAAO,EAAE,MAAM,eAAe,CAAC;AAclE,wBAAgB,eAAe,CAAC,UAAU,GAAE,MAAM,EAAsB,GAAG,MAAM,GAAG,IAAI,CAEvF;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAqE;IACrE,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED,qBAAa,eAAe;IAC3B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,SAAQ,CAA8B;IAC9C,OAAO,CAAC,iBAAiB,CAA6B;IAItD,OAAO,CAAC,QAAQ,CAAoC;IAEpD,OAAO,eAIN;IAED,OAAa,KAAK,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CAiCxE;IAED,OAAO,CAAC,aAAa;IAKrB,8EAA4E;IACtE,aAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAO,CAAC,CAahD;IAED,OAAO,CAAC,QAAQ;IAOV,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1D;IAED,yEAAuE;IACjE,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAc1E;IAEK,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhD;IAEK,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnG;IAED,IAAI,cAAc,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAEtD;IAEK,cAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKnD;IAED,eAAc,IAAI,QAAO,EAAE,CAE1B;IAED,MAAM,IAAI,IAAI,CAOb;CACD","sourcesContent":["/**\n * El navegador del agente.\n *\n * Arranca Chrome con un **perfil propio y vacío** (`--user-data-dir` dentro de\n * `<agentDir>/browser`). Eso no es un detalle de limpieza: convierte la regla\n * de \"solo se conducen las pestañas del agente\" en algo estructural en vez de\n * una promesa. En ese perfil no hay cookies, ni sesiones iniciadas, ni el\n * correo del usuario — aunque el agente se equivoque, no hay nada que filtrar.\n *\n * El precio es que no puede usar sitios donde el usuario ya está identificado.\n * Es el precio correcto: la alternativa es un agente con acceso al banco.\n */\n\nimport { type ChildProcess, spawn } from \"node:child_process\";\nimport { existsSync, mkdirSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { ClienteCdp } from \"./cdp.ts\";\nimport { exigirPestañaPropia, type Pestaña } from \"./politica.ts\";\n\nconst CANDIDATOS_CHROME = [\n\t\"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome\",\n\t\"/Applications/Chromium.app/Contents/MacOS/Chromium\",\n\t\"/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge\",\n\t\"/Applications/Brave Browser.app/Contents/MacOS/Brave Browser\",\n\t\"/usr/bin/google-chrome\",\n\t\"/usr/bin/chromium\",\n\t\"/usr/bin/chromium-browser\",\n\t\"C:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n\t\"C:\\\\Program Files (x86)\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n];\n\nexport function buscarNavegador(candidatos: string[] = CANDIDATOS_CHROME): string | null {\n\treturn candidatos.find((ruta) => existsSync(ruta)) ?? null;\n}\n\nexport interface OpcionesNavegador {\n\tagentDir: string;\n\t/** 0 = que el sistema elija uno libre, que es lo que queremos. */\n\tpuerto?: number;\n\theadless?: boolean;\n\tejecutable?: string;\n\t/** Ancho y alto iniciales; `browser_viewport` los cambia después. */\n\tviewport?: { width: number; height: number };\n}\n\nexport class NavegadorAgente {\n\tprivate proceso: ChildProcess | null = null;\n\tprivate cliente: ClienteCdp | null = null;\n\tprivate pestañas = new Map<string, Pestaña>();\n\tprivate sesionesPorTarget = new Map<string, string>();\n\n\t// Campo normal y no propiedad de constructor: el repo compila con\n\t// `erasableSyntaxOnly`, que prohíbe la forma corta.\n\tprivate viewport: { width: number; height: number };\n\n\tprivate constructor(proceso: ChildProcess, cliente: ClienteCdp, viewport: { width: number; height: number }) {\n\t\tthis.proceso = proceso;\n\t\tthis.cliente = cliente;\n\t\tthis.viewport = viewport;\n\t}\n\n\tstatic async abrir(opciones: OpcionesNavegador): Promise<NavegadorAgente> {\n\t\tconst ejecutable = opciones.ejecutable ?? buscarNavegador();\n\t\tif (!ejecutable) {\n\t\t\tthrow new Error(\n\t\t\t\t\"No se encontró Chrome, Chromium, Edge ni Brave. Instala uno o pasa la ruta en la configuración.\",\n\t\t\t);\n\t\t}\n\t\tconst perfil = join(opciones.agentDir, \"browser\", \"perfil\");\n\t\tmkdirSync(perfil, { recursive: true, mode: 0o700 });\n\t\tconst viewport = opciones.viewport ?? { width: 1280, height: 800 };\n\n\t\tconst puerto = opciones.puerto ?? 0;\n\t\tconst proceso = spawn(\n\t\t\tejecutable,\n\t\t\t[\n\t\t\t\t`--remote-debugging-port=${puerto}`,\n\t\t\t\t// Perfil propio y vacío: ver la cabecera del fichero.\n\t\t\t\t`--user-data-dir=${perfil}`,\n\t\t\t\t\"--no-first-run\",\n\t\t\t\t\"--no-default-browser-check\",\n\t\t\t\t// Sin esto, Chrome puede reutilizar una instancia ya abierta del\n\t\t\t\t// usuario y acabaríamos conduciendo SU navegador.\n\t\t\t\t\"--disable-features=ChromeWhatsNewUI\",\n\t\t\t\t`--window-size=${viewport.width},${viewport.height}`,\n\t\t\t\t...(opciones.headless ? [\"--headless=new\"] : []),\n\t\t\t\t\"about:blank\",\n\t\t\t],\n\t\t\t{ stdio: [\"ignore\", \"ignore\", \"pipe\"] },\n\t\t);\n\n\t\tconst urlWs = await leerUrlDevTools(proceso);\n\t\tconst cliente = await ClienteCdp.conectar(urlWs);\n\t\treturn new NavegadorAgente(proceso, cliente, viewport);\n\t}\n\n\tprivate exigirCliente(): ClienteCdp {\n\t\tif (!this.cliente) throw new Error(\"el navegador está cerrado\");\n\t\treturn this.cliente;\n\t}\n\n\t/** Abre una pestaña NUEVA. Es la única forma de que el agente tenga una. */\n\tasync abrirPestaña(url: string): Promise<Pestaña> {\n\t\tconst cliente = this.exigirCliente();\n\t\tconst { targetId } = await cliente.enviar<{ targetId: string }>(\"Target.createTarget\", { url });\n\t\tconst { sessionId } = await cliente.enviar<{ sessionId: string }>(\"Target.attachToTarget\", {\n\t\t\ttargetId,\n\t\t\tflatten: true,\n\t\t});\n\t\tthis.sesionesPorTarget.set(targetId, sessionId);\n\t\tconst pestaña: Pestaña = { targetId, url, propia: true };\n\t\tthis.pestañas.set(targetId, pestaña);\n\t\tawait cliente.enviar(\"Page.enable\", {}, sessionId);\n\t\tawait cliente.enviar(\"Runtime.enable\", {}, sessionId);\n\t\treturn pestaña;\n\t}\n\n\tprivate sesionDe(targetId: string): string {\n\t\texigirPestañaPropia(this.pestañas, targetId);\n\t\tconst sessionId = this.sesionesPorTarget.get(targetId);\n\t\tif (!sessionId) throw new Error(`la pestaña ${targetId} no está conectada`);\n\t\treturn sessionId;\n\t}\n\n\tasync navegar(targetId: string, url: string): Promise<void> {\n\t\tconst sessionId = this.sesionDe(targetId);\n\t\tawait this.exigirCliente().enviar(\"Page.navigate\", { url }, sessionId);\n\t\tconst pestaña = this.pestañas.get(targetId);\n\t\tif (pestaña) pestaña.url = url;\n\t}\n\n\t/** Evalúa JavaScript en la pestaña y devuelve el valor serializado. */\n\tasync evaluar<T = unknown>(targetId: string, expresion: string): Promise<T> {\n\t\tconst sessionId = this.sesionDe(targetId);\n\t\tconst respuesta = await this.exigirCliente().enviar<{\n\t\t\tresult?: { value?: T };\n\t\t\texceptionDetails?: { text?: string; exception?: { description?: string } };\n\t\t}>(\"Runtime.evaluate\", { expression: expresion, returnByValue: true, awaitPromise: true }, sessionId);\n\t\tif (respuesta.exceptionDetails) {\n\t\t\tthrow new Error(\n\t\t\t\trespuesta.exceptionDetails.exception?.description ??\n\t\t\t\t\trespuesta.exceptionDetails.text ??\n\t\t\t\t\t\"error en la página\",\n\t\t\t);\n\t\t}\n\t\treturn respuesta.result?.value as T;\n\t}\n\n\tasync capturar(targetId: string): Promise<string> {\n\t\tconst sessionId = this.sesionDe(targetId);\n\t\tconst { data } = await this.exigirCliente().enviar<{ data: string }>(\n\t\t\t\"Page.captureScreenshot\",\n\t\t\t{ format: \"png\" },\n\t\t\tsessionId,\n\t\t);\n\t\treturn data;\n\t}\n\n\tasync cambiarViewport(targetId: string, width: number, height: number, movil = false): Promise<void> {\n\t\tconst sessionId = this.sesionDe(targetId);\n\t\tawait this.exigirCliente().enviar(\n\t\t\t\"Emulation.setDeviceMetricsOverride\",\n\t\t\t{ width, height, deviceScaleFactor: 1, mobile: movil },\n\t\t\tsessionId,\n\t\t);\n\t\tthis.viewport = { width, height };\n\t}\n\n\tget viewportActual(): { width: number; height: number } {\n\t\treturn { ...this.viewport };\n\t}\n\n\tasync cerrarPestaña(targetId: string): Promise<void> {\n\t\tthis.sesionDe(targetId);\n\t\tawait this.exigirCliente().enviar(\"Target.closeTarget\", { targetId });\n\t\tthis.pestañas.delete(targetId);\n\t\tthis.sesionesPorTarget.delete(targetId);\n\t}\n\n\tlistarPestañas(): Pestaña[] {\n\t\treturn [...this.pestañas.values()];\n\t}\n\n\tcerrar(): void {\n\t\tthis.cliente?.cerrar();\n\t\tthis.cliente = null;\n\t\tthis.proceso?.kill();\n\t\tthis.proceso = null;\n\t\tthis.pestañas.clear();\n\t\tthis.sesionesPorTarget.clear();\n\t}\n}\n\n/**\n * Lee la URL de DevTools que Chrome escribe en stderr al arrancar.\n *\n * Se lee del proceso en vez de sondear `http://localhost:<puerto>/json/version`\n * porque con `--remote-debugging-port=0` el puerto lo elige el sistema y no lo\n * sabemos de antemano. Sondear un puerto fijo, además, podría acertar con una\n * instancia de Chrome que ya tuviera el usuario abierta — y acabaríamos\n * conduciendo su navegador con sus sesiones.\n */\nfunction leerUrlDevTools(proceso: ChildProcess, timeoutMs = 15_000): Promise<string> {\n\treturn new Promise((resolve, reject) => {\n\t\tlet acumulado = \"\";\n\t\tconst temporizador = setTimeout(() => {\n\t\t\treject(new Error(`el navegador no anunció su puerto de depuración en ${timeoutMs} ms`));\n\t\t}, timeoutMs);\n\n\t\tconst terminar = (fn: () => void) => {\n\t\t\tclearTimeout(temporizador);\n\t\t\tfn();\n\t\t};\n\n\t\tproceso.stderr?.on(\"data\", (trozo: Buffer) => {\n\t\t\tacumulado += trozo.toString(\"utf8\");\n\t\t\tconst encontrado = acumulado.match(/ws:\\/\\/[^\\s]+/);\n\t\t\tif (encontrado) terminar(() => resolve(encontrado[0]));\n\t\t});\n\t\tproceso.on(\"error\", (error) => terminar(() => reject(error)));\n\t\tproceso.on(\"exit\", (codigo) =>\n\t\t\tterminar(() => reject(new Error(`el navegador se cerró con código ${codigo} antes de arrancar`))),\n\t\t);\n\t});\n}\n"]}
1
+ {"version":3,"file":"sesion.d.ts","sourceRoot":"","sources":["../../../src/core/browser/sesion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAAuB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAclE,wBAAgB,eAAe,CAAC,UAAU,GAAE,MAAM,EAAsB,GAAG,MAAM,GAAG,IAAI,CAEvF;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED,qBAAa,eAAe;IAC3B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,iBAAiB,CAA6B;IAItD,OAAO,CAAC,QAAQ,CAAoC;IAEpD,OAAO;WAMM,KAAK,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAmCzE,OAAO,CAAC,aAAa;IAKrB,4EAA4E;IACtE,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAejD,OAAO,CAAC,QAAQ;IAOV,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3D,uEAAuE;IACjE,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAgBrE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU3C,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpG,IAAI,cAAc,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAEtD;IAEK,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD,cAAc,IAAI,OAAO,EAAE;IAI3B,MAAM,IAAI,IAAI;CAQd"}