@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,79 @@
1
+ /**
2
+ * withHostGuard — kit higiene B06.
3
+ * Envuelve Promise de código de terceros (hooks, providers, extensiones)
4
+ * para que nunca propague throw al host. Clasifica error.hostGuard=true,
5
+ * loggea y retorna undefined. Si el host muere, el guard no bloquea
6
+ * (no deja promesas colgando sin resolver).
7
+ */
8
+ function makeHostGuardError(message, cause) {
9
+ const err = new Error(message);
10
+ err.hostGuard = true;
11
+ err.cause = cause;
12
+ if (cause instanceof Error && cause.stack) {
13
+ err.stack = `${err.stack}\nCaused by: ${cause.stack}`;
14
+ }
15
+ return err;
16
+ }
17
+ /**
18
+ * Ejecuta fn() bajo guard. Nunca lanza al caller: cualquier throw
19
+ * o timeout se clasifica con hostGuard y se retorna undefined.
20
+ * El timeout no bloquea: si fn tarda más, se abandona y se resuelve undefined.
21
+ */
22
+ export async function withHostGuard(fn, opts = {}) {
23
+ const timeoutMs = opts.timeoutMs ?? 5000;
24
+ const name = opts.name ?? "hostGuard";
25
+ let timer;
26
+ try {
27
+ const guarded = (async () => {
28
+ try {
29
+ return await fn();
30
+ }
31
+ catch (cause) {
32
+ throw makeHostGuardError(`[${name}] hostGuard capturó throw`, cause);
33
+ }
34
+ })();
35
+ if (timeoutMs <= 0) {
36
+ return await guarded;
37
+ }
38
+ const timeoutPromise = new Promise((_, reject) => {
39
+ timer = setTimeout(() => {
40
+ reject(makeHostGuardError(`[${name}] hostGuard timeout ${timeoutMs}ms`, undefined));
41
+ }, timeoutMs);
42
+ const maybeUnref = timer; // Node Timeout has unref
43
+ maybeUnref.unref?.();
44
+ });
45
+ const result = await Promise.race([guarded, timeoutPromise]);
46
+ return result;
47
+ }
48
+ catch (error) {
49
+ const hostErr = error;
50
+ if (!hostErr.hostGuard) {
51
+ const wrapped = makeHostGuardError(`[${name}] hostGuard fallo no clasificado`, error);
52
+ opts.onError?.(wrapped);
53
+ console.error(wrapped.message, wrapped.cause ?? wrapped);
54
+ return undefined;
55
+ }
56
+ opts.onError?.(hostErr);
57
+ console.error(hostErr.message, hostErr.cause ?? "");
58
+ return undefined;
59
+ }
60
+ finally {
61
+ clearTimeout(timer);
62
+ }
63
+ }
64
+ /**
65
+ * Totem síncrono para callbacks que no son Promise.
66
+ */
67
+ export function withHostGuardSync(fn, opts = {}) {
68
+ const name = opts.name ?? "hostGuardSync";
69
+ try {
70
+ return fn();
71
+ }
72
+ catch (cause) {
73
+ const err = makeHostGuardError(`[${name}] hostGuardSync capturó throw`, cause);
74
+ opts.onError?.(err);
75
+ console.error(err.message, err.cause ?? "");
76
+ return undefined;
77
+ }
78
+ }
79
+ //# sourceMappingURL=withHostGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withHostGuard.js","sourceRoot":"","sources":["../../../src/core/higiene/withHostGuard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,yDAAyD;AACzD,eAAO,MAAM,YAAY,4HAQf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC5B,2EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,aAAa;IAC7B,iEAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC5B,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAYrH;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,aAAa,GAAG,YAAY,GAAG,IAAI,CAiB1E;AAgBD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC/B,UAAU,EAAE,aAAa,EAAE,EAC3B,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,OAAO,GACjB;IAAE,QAAQ,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAyBlD;AAED,iFAAgF;AAChF,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAEtE","sourcesContent":["/**\n * Contrato de los hooks: qué se dispara, y qué puede decidir.\n *\n * Este fichero es PURO a propósito — no lanza procesos ni toca disco. Aquí vive\n * la parte que hay que poder probar sin montar nada: qué hooks casan con un\n * evento, y cómo se combinan sus respuestas.\n *\n * La regla que nos separa del contrato que copiamos: **un hook solo puede\n * estrechar permisos, nunca ampliarlos**. Si un hook pudiera responder \"allow\"\n * y saltarse el modo activo, instalar un plugin de terceros equivaldría a\n * desactivar la gobernanza del producto — que es justo lo que vendemos. Un\n * \"deny\" siempre vale; un \"allow\" solo vale donde el modo ya permitía.\n */\n\n/** Los 7 momentos en los que se puede enganchar algo. */\nexport const EVENTOS_HOOK = [\n\t\"session_start\",\n\t\"user_prompt_submit\",\n\t\"pre_tool_use\",\n\t\"post_tool_use\",\n\t\"notification\",\n\t\"stop\",\n\t\"subagent_stop\",\n] as const;\n\nexport type EventoHook = (typeof EVENTOS_HOOK)[number];\n\nexport type NivelPermiso = \"plan\" | \"manual\" | \"auto\" | \"yolo\";\n\nexport type DecisionPermiso = \"allow\" | \"deny\" | \"ask\";\n\nexport interface HookDefinido {\n\t/** Expresión regular contra el nombre de la herramienta (o el evento). */\n\tmatcher?: string;\n\tcommand: string;\n\ttimeoutMs?: number;\n}\n\nexport interface ConfigHooks {\n\tenabled?: boolean;\n\t/** Sin terminal donde preguntar, un hook que falla debe bloquear, no colar. */\n\tfailClosedHeadless?: boolean;\n\tevents?: Partial<Record<EventoHook, HookDefinido[]>>;\n}\n\nexport interface RespuestaHook {\n\t/** 0 = siguió; 2 = bloquea; cualquier otro = el hook falló. */\n\texitCode: number;\n\tstdout?: string;\n\tstderr?: string;\n}\n\nexport interface DecisionHook {\n\tpermissionDecision?: DecisionPermiso;\n\treason?: string;\n}\n\n/**\n * Qué hooks corren para un evento.\n *\n * El matcher se prueba contra `objetivo` — el nombre de la herramienta en\n * `pre_tool_use`/`post_tool_use`, y el propio evento en los demás. Un matcher\n * ausente casa con todo.\n *\n * Un matcher con una expresión regular inválida NO casa y no revienta: un\n * `settings.json` con una errata no puede tumbar la sesión, y tampoco puede\n * convertirse en un comodín silencioso que dispare hooks de más.\n */\nexport function planificarHooks(config: ConfigHooks | undefined, evento: EventoHook, objetivo: string): HookDefinido[] {\n\tif (!config || config.enabled === false) return [];\n\tconst definidos = config.events?.[evento] ?? [];\n\treturn definidos.filter((hook) => {\n\t\tif (!hook.command) return false;\n\t\tif (!hook.matcher) return true;\n\t\ttry {\n\t\t\treturn new RegExp(hook.matcher).test(objetivo);\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t});\n}\n\n/**\n * Lee la decisión que un hook escribe en stdout.\n *\n * Devuelve `null` si no dijo nada legible, que es el caso normal: la mayoría de\n * los hooks solo quieren correr y salir con 0.\n */\nexport function leerDecision(respuesta: RespuestaHook): DecisionHook | null {\n\tconst texto = (respuesta.stdout ?? \"\").trim();\n\tif (!texto) return null;\n\ttry {\n\t\tconst dato = JSON.parse(texto) as Record<string, unknown>;\n\t\tconst decision = dato.permissionDecision;\n\t\tif (decision !== \"allow\" && decision !== \"deny\" && decision !== \"ask\") {\n\t\t\treturn typeof dato.reason === \"string\" ? { reason: dato.reason } : null;\n\t\t}\n\t\treturn {\n\t\t\tpermissionDecision: decision,\n\t\t\treason: typeof dato.reason === \"string\" ? dato.reason : undefined,\n\t\t};\n\t} catch {\n\t\t// stdout que no es JSON es solo registro del hook, no una decisión.\n\t\treturn null;\n\t}\n}\n\n/** Lo que el modo activo concede por sí solo, sin hooks de por medio. */\nfunction techoDelModo(nivel: NivelPermiso): DecisionPermiso {\n\tswitch (nivel) {\n\t\tcase \"plan\":\n\t\t\treturn \"deny\";\n\t\tcase \"manual\":\n\t\t\treturn \"ask\";\n\t\tdefault:\n\t\t\treturn \"allow\";\n\t}\n}\n\nconst ORDEN: Record<DecisionPermiso, number> = { allow: 0, ask: 1, deny: 2 };\n\n/**\n * Combina las respuestas de todos los hooks de un evento con el modo activo.\n *\n * Gana siempre la más restrictiva, incluido el techo del modo. Por eso un hook\n * que responde \"allow\" en modo manual acaba en \"ask\", y en modo plan en \"deny\":\n * puede apretar, no aflojar.\n *\n * Salir con 2 equivale a \"deny\" aunque el hook no escriba JSON — es el atajo\n * del contrato para un script de una línea. Salir con cualquier otro código\n * distinto de 0 es un hook roto: bloquea si `failClosed`, y si no se ignora\n * (pero el motivo se devuelve para poder registrarlo).\n */\nexport function resolverDecision(\n\trespuestas: RespuestaHook[],\n\tnivel: NivelPermiso,\n\tfailClosed: boolean,\n): { decision: DecisionPermiso; motivos: string[] } {\n\tlet peor: DecisionPermiso = techoDelModo(nivel);\n\tconst motivos: string[] = [];\n\n\tfor (const respuesta of respuestas) {\n\t\tconst leida = leerDecision(respuesta);\n\t\tif (leida?.reason) motivos.push(leida.reason);\n\n\t\tlet candidata: DecisionPermiso | null = null;\n\t\tif (respuesta.exitCode === 2) {\n\t\t\tcandidata = \"deny\";\n\t\t\tif (!leida?.reason && respuesta.stderr?.trim()) motivos.push(respuesta.stderr.trim());\n\t\t} else if (respuesta.exitCode !== 0) {\n\t\t\tif (failClosed) {\n\t\t\t\tcandidata = \"deny\";\n\t\t\t\tmotivos.push(`hook falló con código ${respuesta.exitCode}`);\n\t\t\t}\n\t\t} else if (leida?.permissionDecision) {\n\t\t\tcandidata = leida.permissionDecision;\n\t\t}\n\n\t\tif (candidata && ORDEN[candidata] > ORDEN[peor]) peor = candidata;\n\t}\n\n\treturn { decision: peor, motivos };\n}\n\n/** Cuántas veces seguidas puede un hook `stop` impedir que el turno termine. */\nexport const MAX_BLOQUEOS_STOP = 3;\n\n/**\n * ¿Se honra este bloqueo de `stop`?\n *\n * Con tope, porque sin él un hook mal escrito deja al agente dando vueltas para\n * siempre y consumiendo dinero. A la cuarta se ignora y el turno termina.\n */\nexport function permiteBloquearParada(bloqueosPrevios: number): boolean {\n\treturn bloqueosPrevios < MAX_BLOQUEOS_STOP;\n}\n"]}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,yDAAyD;AACzD,eAAO,MAAM,YAAY,4HAQf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC5B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,aAAa;IAC7B,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC5B,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAYrH;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,aAAa,GAAG,YAAY,GAAG,IAAI,CAiB1E;AAgBD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC/B,UAAU,EAAE,aAAa,EAAE,EAC3B,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,OAAO,GACjB;IAAE,QAAQ,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAyBlD;AAED,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAEtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/core/hooks/contract.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Contrato de los hooks: qué se dispara, y qué puede decidir.\n *\n * Este fichero es PURO a propósito — no lanza procesos ni toca disco. Aquí vive\n * la parte que hay que poder probar sin montar nada: qué hooks casan con un\n * evento, y cómo se combinan sus respuestas.\n *\n * La regla que nos separa del contrato que copiamos: **un hook solo puede\n * estrechar permisos, nunca ampliarlos**. Si un hook pudiera responder \"allow\"\n * y saltarse el modo activo, instalar un plugin de terceros equivaldría a\n * desactivar la gobernanza del producto — que es justo lo que vendemos. Un\n * \"deny\" siempre vale; un \"allow\" solo vale donde el modo ya permitía.\n */\n\n/** Los 7 momentos en los que se puede enganchar algo. */\nexport const EVENTOS_HOOK = [\n\t\"session_start\",\n\t\"user_prompt_submit\",\n\t\"pre_tool_use\",\n\t\"post_tool_use\",\n\t\"notification\",\n\t\"stop\",\n\t\"subagent_stop\",\n] as const;\n\nexport type EventoHook = (typeof EVENTOS_HOOK)[number];\n\nexport type NivelPermiso = \"plan\" | \"manual\" | \"auto\" | \"yolo\";\n\nexport type DecisionPermiso = \"allow\" | \"deny\" | \"ask\";\n\nexport interface HookDefinido {\n\t/** Expresión regular contra el nombre de la herramienta (o el evento). */\n\tmatcher?: string;\n\tcommand: string;\n\ttimeoutMs?: number;\n}\n\nexport interface ConfigHooks {\n\tenabled?: boolean;\n\t/** Sin terminal donde preguntar, un hook que falla debe bloquear, no colar. */\n\tfailClosedHeadless?: boolean;\n\tevents?: Partial<Record<EventoHook, HookDefinido[]>>;\n}\n\nexport interface RespuestaHook {\n\t/** 0 = siguió; 2 = bloquea; cualquier otro = el hook falló. */\n\texitCode: number;\n\tstdout?: string;\n\tstderr?: string;\n}\n\nexport interface DecisionHook {\n\tpermissionDecision?: DecisionPermiso;\n\treason?: string;\n}\n\n/**\n * Qué hooks corren para un evento.\n *\n * El matcher se prueba contra `objetivo` — el nombre de la herramienta en\n * `pre_tool_use`/`post_tool_use`, y el propio evento en los demás. Un matcher\n * ausente casa con todo.\n *\n * Un matcher con una expresión regular inválida NO casa y no revienta: un\n * `settings.json` con una errata no puede tumbar la sesión, y tampoco puede\n * convertirse en un comodín silencioso que dispare hooks de más.\n */\nexport function planificarHooks(config: ConfigHooks | undefined, evento: EventoHook, objetivo: string): HookDefinido[] {\n\tif (!config || config.enabled === false) return [];\n\tconst definidos = config.events?.[evento] ?? [];\n\treturn definidos.filter((hook) => {\n\t\tif (!hook.command) return false;\n\t\tif (!hook.matcher) return true;\n\t\ttry {\n\t\t\treturn new RegExp(hook.matcher).test(objetivo);\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t});\n}\n\n/**\n * Lee la decisión que un hook escribe en stdout.\n *\n * Devuelve `null` si no dijo nada legible, que es el caso normal: la mayoría de\n * los hooks solo quieren correr y salir con 0.\n */\nexport function leerDecision(respuesta: RespuestaHook): DecisionHook | null {\n\tconst texto = (respuesta.stdout ?? \"\").trim();\n\tif (!texto) return null;\n\ttry {\n\t\tconst dato = JSON.parse(texto) as Record<string, unknown>;\n\t\tconst decision = dato.permissionDecision;\n\t\tif (decision !== \"allow\" && decision !== \"deny\" && decision !== \"ask\") {\n\t\t\treturn typeof dato.reason === \"string\" ? { reason: dato.reason } : null;\n\t\t}\n\t\treturn {\n\t\t\tpermissionDecision: decision,\n\t\t\treason: typeof dato.reason === \"string\" ? dato.reason : undefined,\n\t\t};\n\t} catch {\n\t\t// stdout que no es JSON es solo registro del hook, no una decisión.\n\t\treturn null;\n\t}\n}\n\n/** Lo que el modo activo concede por sí solo, sin hooks de por medio. */\nfunction techoDelModo(nivel: NivelPermiso): DecisionPermiso {\n\tswitch (nivel) {\n\t\tcase \"plan\":\n\t\t\treturn \"deny\";\n\t\tcase \"manual\":\n\t\t\treturn \"ask\";\n\t\tdefault:\n\t\t\treturn \"allow\";\n\t}\n}\n\nconst ORDEN: Record<DecisionPermiso, number> = { allow: 0, ask: 1, deny: 2 };\n\n/**\n * Combina las respuestas de todos los hooks de un evento con el modo activo.\n *\n * Gana siempre la más restrictiva, incluido el techo del modo. Por eso un hook\n * que responde \"allow\" en modo manual acaba en \"ask\", y en modo plan en \"deny\":\n * puede apretar, no aflojar.\n *\n * Salir con 2 equivale a \"deny\" aunque el hook no escriba JSON — es el atajo\n * del contrato para un script de una línea. Salir con cualquier otro código\n * distinto de 0 es un hook roto: bloquea si `failClosed`, y si no se ignora\n * (pero el motivo se devuelve para poder registrarlo).\n */\nexport function resolverDecision(\n\trespuestas: RespuestaHook[],\n\tnivel: NivelPermiso,\n\tfailClosed: boolean,\n): { decision: DecisionPermiso; motivos: string[] } {\n\tlet peor: DecisionPermiso = techoDelModo(nivel);\n\tconst motivos: string[] = [];\n\n\tfor (const respuesta of respuestas) {\n\t\tconst leida = leerDecision(respuesta);\n\t\tif (leida?.reason) motivos.push(leida.reason);\n\n\t\tlet candidata: DecisionPermiso | null = null;\n\t\tif (respuesta.exitCode === 2) {\n\t\t\tcandidata = \"deny\";\n\t\t\tif (!leida?.reason && respuesta.stderr?.trim()) motivos.push(respuesta.stderr.trim());\n\t\t} else if (respuesta.exitCode !== 0) {\n\t\t\tif (failClosed) {\n\t\t\t\tcandidata = \"deny\";\n\t\t\t\tmotivos.push(`hook falló con código ${respuesta.exitCode}`);\n\t\t\t}\n\t\t} else if (leida?.permissionDecision) {\n\t\t\tcandidata = leida.permissionDecision;\n\t\t}\n\n\t\tif (candidata && ORDEN[candidata] > ORDEN[peor]) peor = candidata;\n\t}\n\n\treturn { decision: peor, motivos };\n}\n\n/** Cuántas veces seguidas puede un hook `stop` impedir que el turno termine. */\nexport const MAX_BLOQUEOS_STOP = 3;\n\n/**\n * ¿Se honra este bloqueo de `stop`?\n *\n * Con tope, porque sin él un hook mal escrito deja al agente dando vueltas para\n * siempre y consumiendo dinero. A la cuarta se ignora y el turno termina.\n */\nexport function permiteBloquearParada(bloqueosPrevios: number): boolean {\n\treturn bloqueosPrevios < MAX_BLOQUEOS_STOP;\n}\n"]}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/core/hooks/contract.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAM7E,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CACjC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,EACtB,QAAQ,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAO,GACxC,OAAO,CAAC,aAAa,CAAC,CAiDxB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAClC,KAAK,EAAE,YAAY,EAAE,EACrB,QAAQ,EAAE,YAAY,EACtB,QAAQ,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAO,GACxC,OAAO,CAAC,aAAa,EAAE,CAAC,CAM1B","sourcesContent":["/**\n * Ejecuta los hooks. Todo lo que decide vive en `contract.ts`; aquí solo se\n * lanzan procesos y se recogen sus respuestas.\n *\n * El contrato con el proceso es deliberadamente pobre, para que escribir un\n * hook sea cosa de tres líneas de shell: recibe un JSON por stdin, y contesta\n * con su código de salida (0 sigue, 2 bloquea) y, si quiere afinar, un JSON por\n * stdout.\n */\n\nimport { spawn } from \"node:child_process\";\nimport type { EventoHook, HookDefinido, RespuestaHook } from \"./contract.ts\";\n\n/** Un hook que escupe sin parar no puede tumbar el proceso del agente. */\nconst MAX_SALIDA = 64 * 1024;\nconst TIMEOUT_POR_DEFECTO_MS = 10_000;\n\nexport interface ContextoHook {\n\tevento: EventoHook;\n\tsessionId: string;\n\tcwd: string;\n\ttoolName?: string;\n\ttoolInput?: unknown;\n\ttoolResult?: unknown;\n\tprompt?: string;\n\tmessage?: string;\n}\n\n/**\n * Lanza un hook y espera su respuesta.\n *\n * Nunca lanza excepción: un hook que no existe, que peta o que se cuelga se\n * traduce a un `exitCode` distinto de 0, y es `resolverDecision` quien decide\n * si eso bloquea o se ignora. Si esto lanzara, un hook roto tumbaría el turno\n * saltándose la política de `failClosed`.\n */\nexport async function ejecutarHook(\n\thook: HookDefinido,\n\tcontexto: ContextoHook,\n\topciones: { env?: NodeJS.ProcessEnv } = {},\n): Promise<RespuestaHook> {\n\tconst entrada = JSON.stringify(contexto);\n\tconst timeoutMs = hook.timeoutMs && hook.timeoutMs > 0 ? hook.timeoutMs : TIMEOUT_POR_DEFECTO_MS;\n\n\treturn new Promise<RespuestaHook>((resolve) => {\n\t\tlet hijo: ReturnType<typeof spawn>;\n\t\ttry {\n\t\t\thijo = spawn(hook.command, {\n\t\t\t\tshell: true,\n\t\t\t\tcwd: contexto.cwd,\n\t\t\t\t// El evento va también por entorno: un hook de una línea puede\n\t\t\t\t// ramificar con `$ADA_HOOK_EVENT` sin parsear el JSON.\n\t\t\t\tenv: { ...process.env, ...opciones.env, ADA_HOOK_EVENT: contexto.evento },\n\t\t\t\tstdio: [\"pipe\", \"pipe\", \"pipe\"],\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tresolve({ exitCode: 127, stderr: error instanceof Error ? error.message : String(error) });\n\t\t\treturn;\n\t\t}\n\n\t\tlet stdout = \"\";\n\t\tlet stderr = \"\";\n\t\tlet resuelto = false;\n\t\tconst terminar = (respuesta: RespuestaHook) => {\n\t\t\tif (resuelto) return;\n\t\t\tresuelto = true;\n\t\t\tclearTimeout(reloj);\n\t\t\tresolve(respuesta);\n\t\t};\n\n\t\tconst reloj = setTimeout(() => {\n\t\t\thijo.kill(\"SIGKILL\");\n\t\t\tterminar({ exitCode: 124, stdout, stderr: `${stderr}\\nhook agotó su tiempo (${timeoutMs} ms)` });\n\t\t}, timeoutMs);\n\n\t\thijo.stdout?.on(\"data\", (trozo: Buffer) => {\n\t\t\tif (stdout.length < MAX_SALIDA) stdout += trozo.toString(\"utf8\");\n\t\t});\n\t\thijo.stderr?.on(\"data\", (trozo: Buffer) => {\n\t\t\tif (stderr.length < MAX_SALIDA) stderr += trozo.toString(\"utf8\");\n\t\t});\n\t\thijo.on(\"error\", (error) => terminar({ exitCode: 127, stdout, stderr: error.message }));\n\t\thijo.on(\"close\", (codigo) => terminar({ exitCode: codigo ?? 0, stdout, stderr }));\n\n\t\t// Cerrar stdin siempre: sin esto, un hook que lea hasta EOF se cuelga\n\t\t// hasta agotar el temporizador y todo el turno espera con él.\n\t\thijo.stdin?.on(\"error\", () => {});\n\t\thijo.stdin?.end(entrada);\n\t});\n}\n\n/**\n * Ejecuta varios hooks en serie.\n *\n * En serie y no en paralelo a propósito: los hooks de `pre_tool_use` existen\n * para vetar, y dos vetos concurrentes sobre el mismo fichero se pisan. El\n * coste es aceptable porque cada uno tiene su propio tope de tiempo.\n */\nexport async function ejecutarHooks(\n\thooks: HookDefinido[],\n\tcontexto: ContextoHook,\n\topciones: { env?: NodeJS.ProcessEnv } = {},\n): Promise<RespuestaHook[]> {\n\tconst respuestas: RespuestaHook[] = [];\n\tfor (const hook of hooks) {\n\t\trespuestas.push(await ejecutarHook(hook, contexto, opciones));\n\t}\n\treturn respuestas;\n}\n"]}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAM7E,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CACjC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,EACtB,QAAQ,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAO,GACxC,OAAO,CAAC,aAAa,CAAC,CAiDxB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAClC,KAAK,EAAE,YAAY,EAAE,EACrB,QAAQ,EAAE,YAAY,EACtB,QAAQ,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAO,GACxC,OAAO,CAAC,aAAa,EAAE,CAAC,CAM1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/core/hooks/runner.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Ejecuta los hooks. Todo lo que decide vive en `contract.ts`; aquí solo se\n * lanzan procesos y se recogen sus respuestas.\n *\n * El contrato con el proceso es deliberadamente pobre, para que escribir un\n * hook sea cosa de tres líneas de shell: recibe un JSON por stdin, y contesta\n * con su código de salida (0 sigue, 2 bloquea) y, si quiere afinar, un JSON por\n * stdout.\n */\n\nimport { spawn } from \"node:child_process\";\nimport type { EventoHook, HookDefinido, RespuestaHook } from \"./contract.ts\";\n\n/** Un hook que escupe sin parar no puede tumbar el proceso del agente. */\nconst MAX_SALIDA = 64 * 1024;\nconst TIMEOUT_POR_DEFECTO_MS = 10_000;\n\nexport interface ContextoHook {\n\tevento: EventoHook;\n\tsessionId: string;\n\tcwd: string;\n\ttoolName?: string;\n\ttoolInput?: unknown;\n\ttoolResult?: unknown;\n\tprompt?: string;\n\tmessage?: string;\n}\n\n/**\n * Lanza un hook y espera su respuesta.\n *\n * Nunca lanza excepción: un hook que no existe, que peta o que se cuelga se\n * traduce a un `exitCode` distinto de 0, y es `resolverDecision` quien decide\n * si eso bloquea o se ignora. Si esto lanzara, un hook roto tumbaría el turno\n * saltándose la política de `failClosed`.\n */\nexport async function ejecutarHook(\n\thook: HookDefinido,\n\tcontexto: ContextoHook,\n\topciones: { env?: NodeJS.ProcessEnv } = {},\n): Promise<RespuestaHook> {\n\tconst entrada = JSON.stringify(contexto);\n\tconst timeoutMs = hook.timeoutMs && hook.timeoutMs > 0 ? hook.timeoutMs : TIMEOUT_POR_DEFECTO_MS;\n\n\treturn new Promise<RespuestaHook>((resolve) => {\n\t\tlet hijo: ReturnType<typeof spawn>;\n\t\ttry {\n\t\t\thijo = spawn(hook.command, {\n\t\t\t\tshell: true,\n\t\t\t\tcwd: contexto.cwd,\n\t\t\t\t// El evento va también por entorno: un hook de una línea puede\n\t\t\t\t// ramificar con `$ADA_HOOK_EVENT` sin parsear el JSON.\n\t\t\t\tenv: { ...process.env, ...opciones.env, ADA_HOOK_EVENT: contexto.evento },\n\t\t\t\tstdio: [\"pipe\", \"pipe\", \"pipe\"],\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tresolve({ exitCode: 127, stderr: error instanceof Error ? error.message : String(error) });\n\t\t\treturn;\n\t\t}\n\n\t\tlet stdout = \"\";\n\t\tlet stderr = \"\";\n\t\tlet resuelto = false;\n\t\tconst terminar = (respuesta: RespuestaHook) => {\n\t\t\tif (resuelto) return;\n\t\t\tresuelto = true;\n\t\t\tclearTimeout(reloj);\n\t\t\tresolve(respuesta);\n\t\t};\n\n\t\tconst reloj = setTimeout(() => {\n\t\t\thijo.kill(\"SIGKILL\");\n\t\t\tterminar({ exitCode: 124, stdout, stderr: `${stderr}\\nhook agotó su tiempo (${timeoutMs} ms)` });\n\t\t}, timeoutMs);\n\n\t\thijo.stdout?.on(\"data\", (trozo: Buffer) => {\n\t\t\tif (stdout.length < MAX_SALIDA) stdout += trozo.toString(\"utf8\");\n\t\t});\n\t\thijo.stderr?.on(\"data\", (trozo: Buffer) => {\n\t\t\tif (stderr.length < MAX_SALIDA) stderr += trozo.toString(\"utf8\");\n\t\t});\n\t\thijo.on(\"error\", (error) => terminar({ exitCode: 127, stdout, stderr: error.message }));\n\t\thijo.on(\"close\", (codigo) => terminar({ exitCode: codigo ?? 0, stdout, stderr }));\n\n\t\t// Cerrar stdin siempre: sin esto, un hook que lea hasta EOF se cuelga\n\t\t// hasta agotar el temporizador y todo el turno espera con él.\n\t\thijo.stdin?.on(\"error\", () => {});\n\t\thijo.stdin?.end(entrada);\n\t});\n}\n\n/**\n * Ejecuta varios hooks en serie.\n *\n * En serie y no en paralelo a propósito: los hooks de `pre_tool_use` existen\n * para vetar, y dos vetos concurrentes sobre el mismo fichero se pisan. El\n * coste es aceptable porque cada uno tiene su propio tope de tiempo.\n */\nexport async function ejecutarHooks(\n\thooks: HookDefinido[],\n\tcontexto: ContextoHook,\n\topciones: { env?: NodeJS.ProcessEnv } = {},\n): Promise<RespuestaHook[]> {\n\tconst respuestas: RespuestaHook[] = [];\n\tfor (const hook of hooks) {\n\t\trespuestas.push(await ejecutarHook(hook, contexto, opciones));\n\t}\n\treturn respuestas;\n}\n"]}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/core/hooks/runner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-hooks.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/session-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,aAAa,CAAC;AAE/D,UAAU,cAAc;IACvB,KAAK,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAC;KAC1F,CAAC;IACF,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACpC;AAiBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CAarE;AAED,MAAM,WAAW,cAAc;IAC9B,4CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CACf;AAID;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAClC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,GACpC,OAAO,CAAC,cAAc,CAAC,CAqBzB","sourcesContent":["/**\n * Pegamento entre la sesión y los hooks.\n *\n * Vive aparte de `agent-session.ts` a propósito: ese fichero es de upstream y\n * cada línea que le añadimos se paga en cada sincronización. Aquí cabe toda la\n * lógica y allí queda una llamada.\n *\n * Regla de oro del enganche: **si no hay hooks configurados para este evento,\n * esto no debe cambiar absolutamente nada**. `resolverDecision` devuelve el\n * techo del modo cuando no hay respuestas, y aplicar ese techo aquí bloquearía\n * cada herramienta en modo manual aunque el usuario no haya configurado un solo\n * hook. Por eso se sale antes de consultar nada.\n */\n\nimport type { EventoHook, NivelPermiso } from \"./contract.ts\";\nimport { planificarHooks, resolverDecision } from \"./contract.ts\";\nimport { type ContextoHook, ejecutarHooks } from \"./runner.ts\";\n\ninterface ConfigDelMotor {\n\thooks?: {\n\t\tenabled?: boolean;\n\t\tfailClosedHeadless?: boolean;\n\t\tevents?: Record<string, Array<{ matcher?: string; command: string; timeoutMs?: number }>>;\n\t};\n\tpermissions?: { level?: string };\n\tgoalEngine?: { planOnly?: boolean };\n}\n\n/** Los cuatro que existen de verdad. Si esta lista crece, crece el tipo. */\nconst NIVELES: readonly NivelPermiso[] = [\"plan\", \"manual\", \"auto\", \"yolo\"];\n\n/**\n * Nombres que la gente escribe esperando otra cosa, con su equivalente real.\n *\n * `ask` y `full` estaban en nuestro README y NO existen en el código. Un\n * comprador que ponía `level: \"full\"` esperando plena autonomía se quedaba en\n * `auto` —que aún pregunta en `bash`— y uno que ponía `\"ask\"` esperando\n * confirmación por acción también. Se traducen en vez de rechazarlos porque el\n * README los prometió: romperle la configuración a quien nos creyó sería\n * cobrarle nuestro error.\n */\nconst SINONIMOS: Readonly<Record<string, NivelPermiso>> = { ask: \"manual\", full: \"yolo\" };\n\n/**\n * El nivel de permisos efectivo.\n *\n * UN VALOR DESCONOCIDO NO SE LEE COMO EL POR DEFECTO. Antes, cualquier cosa que\n * no fuera `manual` ni `yolo` caía a `auto` en silencio: una errata como\n * `\"manaul\"` dejaba al usuario con más permisos de los que pidió y sin ningún\n * aviso. En una configuración de permisos, «no te he entendido» y «has elegido\n * el valor por defecto» son cosas distintas, y confundirlas es la familia de\n * fallos que más cara nos ha salido.\n *\n * Se avisa por `stderr` y se cae al MÁS RESTRICTIVO de los dos —`manual`, no\n * `auto`—: ante la duda, preguntar antes de escribir.\n */\nexport function nivelDesdeConfig(config: ConfigDelMotor): NivelPermiso {\n\tif (config.goalEngine?.planOnly === true) return \"plan\";\n\tconst nivel = config.permissions?.level;\n\tif (nivel === undefined || nivel === \"\") return \"auto\";\n\tif ((NIVELES as readonly string[]).includes(nivel)) return nivel as NivelPermiso;\n\tconst sinonimo = SINONIMOS[nivel];\n\tif (sinonimo) return sinonimo;\n\tconsole.error(\n\t\t`Ada: \"permissions.level\" vale \"${nivel}\", que no es ninguno de ${NIVELES.join(\", \")}. ` +\n\t\t\t'Se usa \"manual\" (pregunta antes de cada escritura) por ser el más restrictivo: un valor que no ' +\n\t\t\t\"se entiende no puede dar más permisos de los que pediste.\",\n\t);\n\treturn \"manual\";\n}\n\nexport interface ResultadoHooks {\n\t/** `true` si hay que impedir la acción. */\n\tbloquea: boolean;\n\tmotivo: string;\n}\n\nconst SIN_HOOKS: ResultadoHooks = { bloquea: false, motivo: \"\" };\n\n/**\n * Dispara los hooks de un evento y dice si hay que parar.\n *\n * `ask` se trata como bloqueo: aquí no hay a quién preguntar —el enganche corre\n * dentro de la llamada a la herramienta, no en el bucle de la interfaz—, y ante\n * la duda se cierra. El motivo lo explica al usuario, que puede reintentar tras\n * ajustar el hook o el modo.\n */\nexport async function dispararHooks(\n\tconfig: ConfigDelMotor,\n\tevento: EventoHook,\n\tobjetivo: string,\n\tcontexto: Omit<ContextoHook, \"evento\">,\n): Promise<ResultadoHooks> {\n\tconst hooks = planificarHooks(config.hooks, evento, objetivo);\n\t// Salida temprana: sin hooks configurados, ni se mira el modo. Ver cabecera.\n\tif (hooks.length === 0) return SIN_HOOKS;\n\n\tconst respuestas = await ejecutarHooks(hooks, { ...contexto, evento });\n\tconst { decision, motivos } = resolverDecision(\n\t\trespuestas,\n\t\tnivelDesdeConfig(config),\n\t\tconfig.hooks?.failClosedHeadless ?? true,\n\t);\n\tif (decision === \"allow\") return SIN_HOOKS;\n\n\tconst explicacion = motivos.filter(Boolean).join(\"; \");\n\treturn {\n\t\tbloquea: true,\n\t\tmotivo:\n\t\t\tdecision === \"deny\"\n\t\t\t\t? `Bloqueado por un hook${explicacion ? `: ${explicacion}` : \"\"}`\n\t\t\t\t: `Un hook pide aprobación explícita${explicacion ? `: ${explicacion}` : \"\"}`,\n\t};\n}\n"]}
1
+ {"version":3,"file":"session-hooks.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/session-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,aAAa,CAAC;AAE/D,UAAU,cAAc;IACvB,KAAK,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAC;KAC1F,CAAC;IACF,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACpC;AAiBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CAarE;AAED,MAAM,WAAW,cAAc;IAC9B,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CACf;AAID;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAClC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,GACpC,OAAO,CAAC,cAAc,CAAC,CAqBzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-hooks.js","sourceRoot":"","sources":["../../../src/core/hooks/session-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAqB,aAAa,EAAE,MAAM,aAAa,CAAC;AAY/D,4EAA4E;AAC5E,MAAM,OAAO,GAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5E;;;;;;;;;GASG;AACH,MAAM,SAAS,GAA2C,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAE1F;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAsB,EAAgB;IACtE,IAAI,MAAM,CAAC,UAAU,EAAE,QAAQ,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC;IACxC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC;IACvD,IAAK,OAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAqB,CAAC;IACjF,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,CAAC,KAAK,CACZ,kCAAkC,KAAK,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACvF,kGAAiG;QACjG,4DAA2D,CAC5D,CAAC;IACF,OAAO,QAAQ,CAAC;AAAA,CAChB;AAQD,MAAM,SAAS,GAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,MAAsB,EACtB,MAAkB,EAClB,QAAgB,EAChB,QAAsC,EACZ;IAC1B,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9D,6EAA6E;IAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACvE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAC7C,UAAU,EACV,gBAAgB,CAAC,MAAM,CAAC,EACxB,MAAM,CAAC,KAAK,EAAE,kBAAkB,IAAI,IAAI,CACxC,CAAC;IACF,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAE3C,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EACL,QAAQ,KAAK,MAAM;YAClB,CAAC,CAAC,wBAAwB,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YACjE,CAAC,CAAC,sCAAoC,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;KAC/E,CAAC;AAAA,CACF","sourcesContent":["/**\n * Pegamento entre la sesión y los hooks.\n *\n * Vive aparte de `agent-session.ts` a propósito: ese fichero es de upstream y\n * cada línea que le añadimos se paga en cada sincronización. Aquí cabe toda la\n * lógica y allí queda una llamada.\n *\n * Regla de oro del enganche: **si no hay hooks configurados para este evento,\n * esto no debe cambiar absolutamente nada**. `resolverDecision` devuelve el\n * techo del modo cuando no hay respuestas, y aplicar ese techo aquí bloquearía\n * cada herramienta en modo manual aunque el usuario no haya configurado un solo\n * hook. Por eso se sale antes de consultar nada.\n */\n\nimport type { EventoHook, NivelPermiso } from \"./contract.ts\";\nimport { planificarHooks, resolverDecision } from \"./contract.ts\";\nimport { type ContextoHook, ejecutarHooks } from \"./runner.ts\";\n\ninterface ConfigDelMotor {\n\thooks?: {\n\t\tenabled?: boolean;\n\t\tfailClosedHeadless?: boolean;\n\t\tevents?: Record<string, Array<{ matcher?: string; command: string; timeoutMs?: number }>>;\n\t};\n\tpermissions?: { level?: string };\n\tgoalEngine?: { planOnly?: boolean };\n}\n\n/** Los cuatro que existen de verdad. Si esta lista crece, crece el tipo. */\nconst NIVELES: readonly NivelPermiso[] = [\"plan\", \"manual\", \"auto\", \"yolo\"];\n\n/**\n * Nombres que la gente escribe esperando otra cosa, con su equivalente real.\n *\n * `ask` y `full` estaban en nuestro README y NO existen en el código. Un\n * comprador que ponía `level: \"full\"` esperando plena autonomía se quedaba en\n * `auto` —que aún pregunta en `bash`— y uno que ponía `\"ask\"` esperando\n * confirmación por acción también. Se traducen en vez de rechazarlos porque el\n * README los prometió: romperle la configuración a quien nos creyó sería\n * cobrarle nuestro error.\n */\nconst SINONIMOS: Readonly<Record<string, NivelPermiso>> = { ask: \"manual\", full: \"yolo\" };\n\n/**\n * El nivel de permisos efectivo.\n *\n * UN VALOR DESCONOCIDO NO SE LEE COMO EL POR DEFECTO. Antes, cualquier cosa que\n * no fuera `manual` ni `yolo` caía a `auto` en silencio: una errata como\n * `\"manaul\"` dejaba al usuario con más permisos de los que pidió y sin ningún\n * aviso. En una configuración de permisos, «no te he entendido» y «has elegido\n * el valor por defecto» son cosas distintas, y confundirlas es la familia de\n * fallos que más cara nos ha salido.\n *\n * Se avisa por `stderr` y se cae al MÁS RESTRICTIVO de los dos —`manual`, no\n * `auto`—: ante la duda, preguntar antes de escribir.\n */\nexport function nivelDesdeConfig(config: ConfigDelMotor): NivelPermiso {\n\tif (config.goalEngine?.planOnly === true) return \"plan\";\n\tconst nivel = config.permissions?.level;\n\tif (nivel === undefined || nivel === \"\") return \"auto\";\n\tif ((NIVELES as readonly string[]).includes(nivel)) return nivel as NivelPermiso;\n\tconst sinonimo = SINONIMOS[nivel];\n\tif (sinonimo) return sinonimo;\n\tconsole.error(\n\t\t`Ada: \"permissions.level\" vale \"${nivel}\", que no es ninguno de ${NIVELES.join(\", \")}. ` +\n\t\t\t'Se usa \"manual\" (pregunta antes de cada escritura) por ser el más restrictivo: un valor que no ' +\n\t\t\t\"se entiende no puede dar más permisos de los que pediste.\",\n\t);\n\treturn \"manual\";\n}\n\nexport interface ResultadoHooks {\n\t/** `true` si hay que impedir la acción. */\n\tbloquea: boolean;\n\tmotivo: string;\n}\n\nconst SIN_HOOKS: ResultadoHooks = { bloquea: false, motivo: \"\" };\n\n/**\n * Dispara los hooks de un evento y dice si hay que parar.\n *\n * `ask` se trata como bloqueo: aquí no hay a quién preguntar —el enganche corre\n * dentro de la llamada a la herramienta, no en el bucle de la interfaz—, y ante\n * la duda se cierra. El motivo lo explica al usuario, que puede reintentar tras\n * ajustar el hook o el modo.\n */\nexport async function dispararHooks(\n\tconfig: ConfigDelMotor,\n\tevento: EventoHook,\n\tobjetivo: string,\n\tcontexto: Omit<ContextoHook, \"evento\">,\n): Promise<ResultadoHooks> {\n\tconst hooks = planificarHooks(config.hooks, evento, objetivo);\n\t// Salida temprana: sin hooks configurados, ni se mira el modo. Ver cabecera.\n\tif (hooks.length === 0) return SIN_HOOKS;\n\n\tconst respuestas = await ejecutarHooks(hooks, { ...contexto, evento });\n\tconst { decision, motivos } = resolverDecision(\n\t\trespuestas,\n\t\tnivelDesdeConfig(config),\n\t\tconfig.hooks?.failClosedHeadless ?? true,\n\t);\n\tif (decision === \"allow\") return SIN_HOOKS;\n\n\tconst explicacion = motivos.filter(Boolean).join(\"; \");\n\treturn {\n\t\tbloquea: true,\n\t\tmotivo:\n\t\t\tdecision === \"deny\"\n\t\t\t\t? `Bloqueado por un hook${explicacion ? `: ${explicacion}` : \"\"}`\n\t\t\t\t: `Un hook pide aprobación explícita${explicacion ? `: ${explicacion}` : \"\"}`,\n\t};\n}\n"]}
1
+ {"version":3,"file":"session-hooks.js","sourceRoot":"","sources":["../../../src/core/hooks/session-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAqB,aAAa,EAAE,MAAM,aAAa,CAAC;AAY/D,4EAA4E;AAC5E,MAAM,OAAO,GAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5E;;;;;;;;;GASG;AACH,MAAM,SAAS,GAA2C,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAE1F;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAsB;IACtD,IAAI,MAAM,CAAC,UAAU,EAAE,QAAQ,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC;IACxC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC;IACvD,IAAK,OAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAqB,CAAC;IACjF,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,CAAC,KAAK,CACZ,kCAAkC,KAAK,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACvF,iGAAiG;QACjG,2DAA2D,CAC5D,CAAC;IACF,OAAO,QAAQ,CAAC;AACjB,CAAC;AAQD,MAAM,SAAS,GAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,MAAsB,EACtB,MAAkB,EAClB,QAAgB,EAChB,QAAsC;IAEtC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9D,6EAA6E;IAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACvE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAC7C,UAAU,EACV,gBAAgB,CAAC,MAAM,CAAC,EACxB,MAAM,CAAC,KAAK,EAAE,kBAAkB,IAAI,IAAI,CACxC,CAAC;IACF,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAE3C,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EACL,QAAQ,KAAK,MAAM;YAClB,CAAC,CAAC,wBAAwB,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YACjE,CAAC,CAAC,oCAAoC,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;KAC/E,CAAC;AACH,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Cargador de hooks TypeScript in-process — B05.
3
+ *
4
+ * Usa jiti, el mismo cargador que las extensions: un hook es un fichero .ts
5
+ * que se compila al vuelo y se importa como módulo. La diferencia con una
6
+ * extensión es el contrato: aquí no hay factory con API, solo un objeto
7
+ * `{matcher?, onToolCall}` validado con `esModuloHookTs` ANTES de usarse.
8
+ *
9
+ * Fail-closed: este módulo nunca lanza. Un hook que no existe, que no
10
+ * compila o que exporta otra cosa se traduce en `null` (o en el error
11
+ * legible del resultado), y es cosa del runner decidir qué hacer con él.
12
+ */
13
+ import { type HookTsCargado } from "./tipos.ts";
14
+ /** Timeout por defecto por hook; igual que el runner de hooks de shell. */
15
+ export declare const TIMEOUT_HOOK_TS_POR_DEFECTO_MS = 10000;
16
+ export interface ResultadoCargaHook {
17
+ hook: HookTsCargado | null;
18
+ /** Motivo legible cuando `hook` es null: compilación, forma o export vacío. */
19
+ error: string | null;
20
+ }
21
+ /**
22
+ * Carga un hook TS desde disco y valida su forma.
23
+ *
24
+ * Acepta default export y named export (`hook`): ambos son cómodos de
25
+ * escribir a mano y ninguno puede confundirse con otra cosa, porque después
26
+ * pasa el mismo `esModuloHookTs`.
27
+ */
28
+ export declare function cargarHookTs(rutaAbsoluta: string): Promise<ResultadoCargaHook>;
29
+ //# sourceMappingURL=cargador.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cargador.d.ts","sourceRoot":"","sources":["../../../src/core/hooks-ts/cargador.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,2EAA2E;AAC3E,eAAO,MAAM,8BAA8B,QAAS,CAAC;AAErD,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3B,+EAA+E;IAC/E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAaD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiBpF"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Cargador de hooks TypeScript in-process — B05.
3
+ *
4
+ * Usa jiti, el mismo cargador que las extensions: un hook es un fichero .ts
5
+ * que se compila al vuelo y se importa como módulo. La diferencia con una
6
+ * extensión es el contrato: aquí no hay factory con API, solo un objeto
7
+ * `{matcher?, onToolCall}` validado con `esModuloHookTs` ANTES de usarse.
8
+ *
9
+ * Fail-closed: este módulo nunca lanza. Un hook que no existe, que no
10
+ * compila o que exporta otra cosa se traduce en `null` (o en el error
11
+ * legible del resultado), y es cosa del runner decidir qué hacer con él.
12
+ */
13
+ import { createJiti } from "jiti/static";
14
+ import { esModuloHookTs } from "./tipos.js";
15
+ /** Timeout por defecto por hook; igual que el runner de hooks de shell. */
16
+ export const TIMEOUT_HOOK_TS_POR_DEFECTO_MS = 10_000;
17
+ let _jiti = null;
18
+ function jitiDelCargador() {
19
+ if (!_jiti) {
20
+ // moduleCache: false — editar el .ts del hook debe surtir efecto sin
21
+ // reiniciar, igual que las extensions.
22
+ _jiti = createJiti(import.meta.url, { moduleCache: false });
23
+ }
24
+ return _jiti;
25
+ }
26
+ /**
27
+ * Carga un hook TS desde disco y valida su forma.
28
+ *
29
+ * Acepta default export y named export (`hook`): ambos son cómodos de
30
+ * escribir a mano y ninguno puede confundirse con otra cosa, porque después
31
+ * pasa el mismo `esModuloHookTs`.
32
+ */
33
+ export async function cargarHookTs(rutaAbsoluta) {
34
+ let modulo;
35
+ try {
36
+ modulo = await jitiDelCargador().import(rutaAbsoluta);
37
+ }
38
+ catch (err) {
39
+ return { hook: null, error: `No se pudo cargar el hook ${rutaAbsoluta}: ${String(err)}` };
40
+ }
41
+ const candidatos = typeof modulo === "object" && modulo !== null
42
+ ? [modulo.default, modulo.hook, modulo]
43
+ : [modulo];
44
+ for (const candidato of candidatos) {
45
+ if (esModuloHookTs(candidato)) {
46
+ return { hook: { origen: rutaAbsoluta, hook: candidato }, error: null };
47
+ }
48
+ }
49
+ return { hook: null, error: `${rutaAbsoluta} no exporta un hook TS válido ({matcher?, onToolCall})` };
50
+ }
51
+ //# sourceMappingURL=cargador.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cargador.js","sourceRoot":"","sources":["../../../src/core/hooks-ts/cargador.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAsB,MAAM,YAAY,CAAC;AAEhE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAQrD,IAAI,KAAK,GAAyC,IAAI,CAAC;AAEvD,SAAS,eAAe;IACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,qEAAqE;QACrE,uCAAuC;QACvC,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,YAAoB;IACtD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,6BAA6B,YAAY,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAC3F,CAAC;IACD,MAAM,UAAU,GACf,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAC5C,CAAC,CAAC,CAAE,MAAkC,CAAC,OAAO,EAAG,MAAkC,CAAC,IAAI,EAAE,MAAM,CAAC;QACjG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACb,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzE,CAAC;IACF,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,YAAY,wDAAwD,EAAE,CAAC;AACvG,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Hooks TypeScript in-process — B05.
3
+ *
4
+ * Complementa (no sustituye) los hooks de shell de `core/hooks/`: mismos
5
+ * reflejos — matcher con la semántica de `planificarHooks`, fail-closed por
6
+ * defecto, nunca lanzar desde el runner — pero recibiendo objetos tipados y
7
+ * pudiendo REESCRIBIR el input de una tool.
8
+ *
9
+ * Contrato del consumidor (invariante de seguridad, ver runner.ts):
10
+ *
11
+ * const r = await ejecutarHooksTs(hooks, entrada);
12
+ * if (r.bloquea) return bloquear(r.motivo);
13
+ * let input = entrada.input;
14
+ * if (r.requiereAprobacion) {
15
+ * // «approve one thing, run another»: re-aprobar SIEMPRE sobre
16
+ * // effectiveParams, nunca sobre el input original que se aprobó antes.
17
+ * input = await reaprobar(entrada.toolName, r.effectiveParams!);
18
+ * }
19
+ * // ejecutar con `input`
20
+ *
21
+ */
22
+ export { cargarHookTs, TIMEOUT_HOOK_TS_POR_DEFECTO_MS } from "./cargador.ts";
23
+ export { ejecutarHooksTs, type OpcionesRunnerHooksTs, type ResultadoHooksTs } from "./runner.ts";
24
+ export { casaMatcher, type EntradaToolCall, esModuloHookTs, esVeredictoHookTs, type HookTsCargado, type ModuloHookTs, VEREDICTOS_HOOK_TS, type Veredicto, type VeredictoHookTs, } from "./tipos.ts";
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/hooks-ts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,YAAY,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EACN,WAAW,EACX,KAAK,eAAe,EACpB,cAAc,EACd,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,kBAAkB,EAClB,KAAK,SAAS,EACd,KAAK,eAAe,GACpB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Hooks TypeScript in-process — B05.
3
+ *
4
+ * Complementa (no sustituye) los hooks de shell de `core/hooks/`: mismos
5
+ * reflejos — matcher con la semántica de `planificarHooks`, fail-closed por
6
+ * defecto, nunca lanzar desde el runner — pero recibiendo objetos tipados y
7
+ * pudiendo REESCRIBIR el input de una tool.
8
+ *
9
+ * Contrato del consumidor (invariante de seguridad, ver runner.ts):
10
+ *
11
+ * const r = await ejecutarHooksTs(hooks, entrada);
12
+ * if (r.bloquea) return bloquear(r.motivo);
13
+ * let input = entrada.input;
14
+ * if (r.requiereAprobacion) {
15
+ * // «approve one thing, run another»: re-aprobar SIEMPRE sobre
16
+ * // effectiveParams, nunca sobre el input original que se aprobó antes.
17
+ * input = await reaprobar(entrada.toolName, r.effectiveParams!);
18
+ * }
19
+ * // ejecutar con `input`
20
+ *
21
+ */
22
+ export { cargarHookTs, TIMEOUT_HOOK_TS_POR_DEFECTO_MS } from "./cargador.js";
23
+ export { ejecutarHooksTs } from "./runner.js";
24
+ export { casaMatcher, esModuloHookTs, esVeredictoHookTs, VEREDICTOS_HOOK_TS, } from "./tipos.js";
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/hooks-ts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,YAAY,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAqD,MAAM,aAAa,CAAC;AACjG,OAAO,EACN,WAAW,EAEX,cAAc,EACd,iBAAiB,EAGjB,kBAAkB,GAGlB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Runner de los hooks TypeScript in-process — B05.
3
+ *
4
+ * Ejecuta los hooks en orden determinista (ordenados por `origen`, el primer
5
+ * veredicto que bloquea gana) y compite cada `onToolCall` contra un timer con
6
+ * `raceHandlerWithTimeout` del kit de higiene: un hook colgado o que revienta
7
+ * queda aislado y se resuelve según `failClosed` (por defecto, cerrar).
8
+ *
9
+ * El invariante que da nombre a la brecha que cierra («approve one thing,
10
+ * run another»): una reescritura NUNCA sale de aquí lista para aplicar. Si
11
+ * `effectiveParams` difiere del input recibido, el resultado lleva
12
+ * `requiereAprobacion: true` y el consumidor está obligado a re-aprobar SOBRE
13
+ * LOS PARÁMETROS EFECTIVOS antes de ejecutar nada. No existe camino por el
14
+ * que este runner devuelva `effectiveParams` sin esa marca.
15
+ */
16
+ import { type EntradaToolCall, type HookTsCargado } from "./tipos.ts";
17
+ export interface ResultadoHooksTs {
18
+ /** true = no ejecutar la herramienta. */
19
+ bloquea: boolean;
20
+ motivo: string;
21
+ /**
22
+ * Invariante de seguridad B05. true ⇔ algún hook propuso `effectiveParams`
23
+ * distinto del input con el que entró la llamada. El consumidor debe
24
+ * re-aprobar sobre esos parámetros antes de usarlos; aplicarlos directo
25
+ * ejecutaría algo que nadie aprobó.
26
+ */
27
+ requiereAprobacion: boolean;
28
+ effectiveParams?: Record<string, unknown>;
29
+ }
30
+ export interface OpcionesRunnerHooksTs {
31
+ timeoutMs?: number;
32
+ /** Un hook que se cuelga o revienta cierra el paso. Por defecto true. */
33
+ failClosed?: boolean;
34
+ }
35
+ /**
36
+ * Ejecuta los hooks TS sobre una llamada a tool y devuelve la decisión
37
+ * agregada. Nunca lanza: un módulo dinámico no puede tumbar el turno.
38
+ */
39
+ export declare function ejecutarHooksTs(hooks: readonly HookTsCargado[], entrada: EntradaToolCall, opciones?: OpcionesRunnerHooksTs): Promise<ResultadoHooksTs>;
40
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/core/hooks-ts/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAEN,KAAK,eAAe,EAEpB,KAAK,aAAa,EAGlB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAgB;IAChC,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,qBAAqB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAWD;;;GAGG;AACH,wBAAsB,eAAe,CACpC,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,OAAO,EAAE,eAAe,EACxB,QAAQ,GAAE,qBAA0B,GAClC,OAAO,CAAC,gBAAgB,CAAC,CAqE3B"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Runner de los hooks TypeScript in-process — B05.
3
+ *
4
+ * Ejecuta los hooks en orden determinista (ordenados por `origen`, el primer
5
+ * veredicto que bloquea gana) y compite cada `onToolCall` contra un timer con
6
+ * `raceHandlerWithTimeout` del kit de higiene: un hook colgado o que revienta
7
+ * queda aislado y se resuelve según `failClosed` (por defecto, cerrar).
8
+ *
9
+ * El invariante que da nombre a la brecha que cierra («approve one thing,
10
+ * run another»): una reescritura NUNCA sale de aquí lista para aplicar. Si
11
+ * `effectiveParams` difiere del input recibido, el resultado lleva
12
+ * `requiereAprobacion: true` y el consumidor está obligado a re-aprobar SOBRE
13
+ * LOS PARÁMETROS EFECTIVOS antes de ejecutar nada. No existe camino por el
14
+ * que este runner devuelva `effectiveParams` sin esa marca.
15
+ */
16
+ import { raceHandlerWithTimeout } from "../higiene/race-handler.js";
17
+ import { TIMEOUT_HOOK_TS_POR_DEFECTO_MS } from "./cargador.js";
18
+ import { casaMatcher, esVeredictoHookTs, igualesProfundo, } from "./tipos.js";
19
+ const SIN_HOOKS = { bloquea: false, motivo: "", requiereAprobacion: false };
20
+ /** Centinela interno: distingue «el handler llegó tarde o revientó» de un veredicto real. */
21
+ const FALLO_INTERNO = Symbol("hook-ts-fallo");
22
+ function ordenDeterminista(hooks) {
23
+ return [...hooks].sort((a, b) => (a.origen < b.origen ? -1 : a.origen > b.origen ? 1 : 0));
24
+ }
25
+ /**
26
+ * Ejecuta los hooks TS sobre una llamada a tool y devuelve la decisión
27
+ * agregada. Nunca lanza: un módulo dinámico no puede tumbar el turno.
28
+ */
29
+ export async function ejecutarHooksTs(hooks, entrada, opciones = {}) {
30
+ if (hooks.length === 0)
31
+ return SIN_HOOKS;
32
+ const failClosed = opciones.failClosed ?? true;
33
+ const timeoutMs = opciones.timeoutMs ?? TIMEOUT_HOOK_TS_POR_DEFECTO_MS;
34
+ // Los hooks posteriores ven lo que va a ejecutarse DE VERDAD: tras una
35
+ // reescritura pendiente de aprobar, evalúan sobre effectiveParams.
36
+ let inputVigente = entrada.input;
37
+ let reescrituraPendiente = null;
38
+ for (const cargado of ordenDeterminista(hooks)) {
39
+ const { hook, origen } = cargado;
40
+ if (!casaMatcher(hook.matcher, entrada.toolName))
41
+ continue;
42
+ let veredicto;
43
+ try {
44
+ const promesa = Promise.resolve(hook.onToolCall({ ...entrada, input: inputVigente }));
45
+ veredicto = await raceHandlerWithTimeout(promesa, timeoutMs, FALLO_INTERNO);
46
+ }
47
+ catch {
48
+ veredicto = FALLO_INTERNO;
49
+ }
50
+ if (veredicto === FALLO_INTERNO || !esVeredictoHookTs(veredicto)) {
51
+ if (!failClosed)
52
+ continue;
53
+ return {
54
+ bloquea: true,
55
+ motivo: `Hook TS ${origen} falló o excedió ${timeoutMs}ms — fail-closed`,
56
+ requiereAprobacion: false,
57
+ };
58
+ }
59
+ switch (veredicto.veredicto) {
60
+ case "rechazar":
61
+ return {
62
+ bloquea: true,
63
+ motivo: veredicto.motivo ?? `Rechazado por hook TS ${origen}`,
64
+ requiereAprobacion: false,
65
+ };
66
+ case "permitir":
67
+ continue;
68
+ case "reescribir": {
69
+ if (!veredicto.effectiveParams) {
70
+ // Reescribir sin parámetros es un veredicto ilegible: ni pasar
71
+ // silenciosamente ni fabricar un input vacío.
72
+ if (!failClosed)
73
+ continue;
74
+ return {
75
+ bloquea: true,
76
+ motivo: `Hook TS ${origen} pidió reescribir sin effectiveParams — fail-closed`,
77
+ requiereAprobacion: false,
78
+ };
79
+ }
80
+ if (igualesProfundo(veredicto.effectiveParams, inputVigente))
81
+ continue;
82
+ reescrituraPendiente = {
83
+ bloquea: false,
84
+ motivo: veredicto.motivo ?? `Reescritura propuesta por hook TS ${origen}`,
85
+ requiereAprobacion: true,
86
+ effectiveParams: veredicto.effectiveParams,
87
+ };
88
+ inputVigente = veredicto.effectiveParams;
89
+ continue;
90
+ }
91
+ }
92
+ }
93
+ return reescrituraPendiente ?? SIN_HOOKS;
94
+ }
95
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/core/hooks-ts/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Contrato de los hooks TypeScript in-process — B05.
3
+ *
4
+ * Este fichero es PURO a propósito: tipos, validación y comparación. Nada
5
+ * carga módulos ni toca el reloj, igual que `core/hooks/contract.ts` para los
6
+ * hooks de shell.
7
+ *
8
+ * Diferencia clave con los hooks de shell: aquí el hook recibe objetos
9
+ * tipados y puede REESCRIBIR el input que ejecutará la tool. Ese poder es
10
+ * exactamente la brecha «approve one thing, run another»: si un hook
11
+ * reescribe `{file: "a.txt"}` a `{file: ".env"}`, la aprobación que el humano
12
+ * dio fue para `a.txt`. Por eso la reescritura NUNCA se aplica directa: el
13
+ * runner marca `requiereAprobacion` y el consumidor está obligado a
14
+ * re-aprobar sobre `effectiveParams` antes de ejecutar nada.
15
+ */
16
+ /** Los tres veredictos que un hook TS puede emitir. */
17
+ export declare const VEREDICTOS_HOOK_TS: readonly ["permitir", "rechazar", "reescribir"];
18
+ export type Veredicto = (typeof VEREDICTOS_HOOK_TS)[number];
19
+ /** Lo que el hook ve de la llamada a tool. */
20
+ export interface EntradaToolCall {
21
+ toolName: string;
22
+ toolCallId?: string;
23
+ /** Input tal cual llegará a la tool si nadie lo toca. */
24
+ input: Record<string, unknown>;
25
+ sessionId?: string;
26
+ cwd?: string;
27
+ }
28
+ /** Lo que un hook TS responde a onToolCall. */
29
+ export interface VeredictoHookTs {
30
+ veredicto: Veredicto;
31
+ effectiveParams?: Record<string, unknown>;
32
+ motivo?: string;
33
+ }
34
+ /**
35
+ * Un hook TS: un módulo que exporta esto.
36
+ *
37
+ * `matcher` es una expresión regular contra `toolName`; ausente casa con todo;
38
+ * inválida NO casa y no revienta (misma regla que `planificarHooks`).
39
+ */
40
+ export interface ModuloHookTs {
41
+ matcher?: string;
42
+ onToolCall(entrada: EntradaToolCall): VeredictoHookTs | Promise<VeredictoHookTs>;
43
+ }
44
+ /** Hook ya cargado, con su origen para orden determinista y diagnóstico. */
45
+ export interface HookTsCargado {
46
+ origen: string;
47
+ hook: ModuloHookTs;
48
+ }
49
+ /**
50
+ * Validación fail-closed de un módulo cargado dinámicamente: cualquier cosa
51
+ * que no sea exactamente un hook devuelve false y el runner lo ignora (o
52
+ * bloquea, según su política), nunca lo invoca a ciegas.
53
+ */
54
+ export declare function esModuloHookTs(valor: unknown): valor is ModuloHookTs;
55
+ /**
56
+ * Validación del VEREDICTO que devuelve un módulo dinámico. El módulo pasó
57
+ * jiti y no es de confianza estructural: un `veredicto` que no sea uno de los
58
+ * tres, o una reescritura cuyo `effectiveParams` no sea un objeto plano, es
59
+ * un veredicto ilegible y el runner lo trata como fallo del hook.
60
+ */
61
+ export declare function esVeredictoHookTs(valor: unknown): valor is VeredictoHookTs;
62
+ /**
63
+ * ¿Casa este matcher con el nombre de la tool? Misma semántica que los hooks
64
+ * de shell: matcher ausente casa con todo; regex inválida no casa ni revienta.
65
+ */
66
+ export declare function casaMatcher(matcher: string | undefined, toolName: string): boolean;
67
+ /** Igualdad estructural estable: la usamos para saber si la reescritura cambia algo de verdad. */
68
+ export declare function igualesProfundo(a: unknown, b: unknown): boolean;
69
+ //# sourceMappingURL=tipos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tipos.d.ts","sourceRoot":"","sources":["../../../src/core/hooks-ts/tipos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,iDAAkD,CAAC;AAElF,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACjF;AAED,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;CACnB;AAYD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAIpE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAM1E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOlF;AAED,kGAAkG;AAClG,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAe/D"}