@hoilab/ada-cli 0.84.21 → 0.85.0

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 (1337) hide show
  1. package/CHANGELOG.md +49 -2
  2. package/README.es.md +174 -0
  3. package/README.md +203 -658
  4. package/dist/ada-publico.d.ts +35 -0
  5. package/dist/ada-publico.d.ts.map +1 -0
  6. package/dist/ada-publico.js +40 -0
  7. package/dist/ada-publico.js.map +1 -0
  8. package/dist/cli/args.d.ts +3 -0
  9. package/dist/cli/args.d.ts.map +1 -1
  10. package/dist/cli/args.js +11 -0
  11. package/dist/cli/args.js.map +1 -1
  12. package/dist/cli/audit-command.d.ts +15 -0
  13. package/dist/cli/audit-command.d.ts.map +1 -0
  14. package/dist/cli/audit-command.js +280 -0
  15. package/dist/cli/audit-command.js.map +1 -0
  16. package/dist/cli/banco-command.d.ts +15 -0
  17. package/dist/cli/banco-command.d.ts.map +1 -0
  18. package/dist/cli/banco-command.js +213 -0
  19. package/dist/cli/banco-command.js.map +1 -0
  20. package/dist/cli/cleanse-command.d.ts +11 -0
  21. package/dist/cli/cleanse-command.d.ts.map +1 -0
  22. package/dist/cli/cleanse-command.js +101 -0
  23. package/dist/cli/cleanse-command.js.map +1 -0
  24. package/dist/cli/commit-command.d.ts +31 -0
  25. package/dist/cli/commit-command.d.ts.map +1 -0
  26. package/dist/cli/commit-command.js +158 -0
  27. package/dist/cli/commit-command.js.map +1 -0
  28. package/dist/cli/computer-command.d.ts +12 -0
  29. package/dist/cli/computer-command.d.ts.map +1 -0
  30. package/dist/cli/computer-command.js +141 -0
  31. package/dist/cli/computer-command.js.map +1 -0
  32. package/dist/cli/discover-command.d.ts +18 -0
  33. package/dist/cli/discover-command.d.ts.map +1 -0
  34. package/dist/cli/discover-command.js +108 -0
  35. package/dist/cli/discover-command.js.map +1 -0
  36. package/dist/cli/file-processor.d.ts.map +1 -1
  37. package/dist/cli/file-processor.js +2 -1
  38. package/dist/cli/file-processor.js.map +1 -1
  39. package/dist/cli/hashline-command.d.ts +11 -0
  40. package/dist/cli/hashline-command.d.ts.map +1 -0
  41. package/dist/cli/hashline-command.js +106 -0
  42. package/dist/cli/hashline-command.js.map +1 -0
  43. package/dist/cli/home-screen.d.ts.map +1 -1
  44. package/dist/cli/home-screen.js +2 -2
  45. package/dist/cli/home-screen.js.map +1 -1
  46. package/dist/cli/import-command.d.ts +35 -0
  47. package/dist/cli/import-command.d.ts.map +1 -0
  48. package/dist/cli/import-command.js +164 -0
  49. package/dist/cli/import-command.js.map +1 -0
  50. package/dist/cli/politica-command.d.ts +20 -0
  51. package/dist/cli/politica-command.d.ts.map +1 -0
  52. package/dist/cli/politica-command.js +93 -0
  53. package/dist/cli/politica-command.js.map +1 -0
  54. package/dist/cli/refine-command.d.ts +18 -0
  55. package/dist/cli/refine-command.d.ts.map +1 -0
  56. package/dist/cli/refine-command.js +101 -0
  57. package/dist/cli/refine-command.js.map +1 -0
  58. package/dist/cli/review-command.d.ts +24 -0
  59. package/dist/cli/review-command.d.ts.map +1 -0
  60. package/dist/cli/review-command.js +168 -0
  61. package/dist/cli/review-command.js.map +1 -0
  62. package/dist/cli/schedule-command.d.ts +17 -0
  63. package/dist/cli/schedule-command.d.ts.map +1 -0
  64. package/dist/cli/schedule-command.js +117 -0
  65. package/dist/cli/schedule-command.js.map +1 -0
  66. package/dist/cli/serve-command.d.ts +72 -0
  67. package/dist/cli/serve-command.d.ts.map +1 -0
  68. package/dist/cli/serve-command.js +568 -0
  69. package/dist/cli/serve-command.js.map +1 -0
  70. package/dist/cli/startup-ui.d.ts.map +1 -1
  71. package/dist/cli/startup-ui.js +9 -3
  72. package/dist/cli/startup-ui.js.map +1 -1
  73. package/dist/cli/telegram-command.d.ts +18 -0
  74. package/dist/cli/telegram-command.d.ts.map +1 -0
  75. package/dist/cli/telegram-command.js +137 -0
  76. package/dist/cli/telegram-command.js.map +1 -0
  77. package/dist/cli/telemetria-command.d.ts +22 -0
  78. package/dist/cli/telemetria-command.d.ts.map +1 -0
  79. package/dist/cli/telemetria-command.js +127 -0
  80. package/dist/cli/telemetria-command.js.map +1 -0
  81. package/dist/cli/undo-command.d.ts +9 -0
  82. package/dist/cli/undo-command.d.ts.map +1 -0
  83. package/dist/cli/undo-command.js +56 -0
  84. package/dist/cli/undo-command.js.map +1 -0
  85. package/dist/cli/usage-command.d.ts +10 -0
  86. package/dist/cli/usage-command.d.ts.map +1 -0
  87. package/dist/cli/usage-command.js +209 -0
  88. package/dist/cli/usage-command.js.map +1 -0
  89. package/dist/cli/wiki-command.d.ts +9 -0
  90. package/dist/cli/wiki-command.d.ts.map +1 -0
  91. package/dist/cli/wiki-command.js +76 -0
  92. package/dist/cli/wiki-command.js.map +1 -0
  93. package/dist/cli.d.ts +6 -0
  94. package/dist/cli.d.ts.map +1 -1
  95. package/dist/cli.js +10 -11
  96. package/dist/cli.js.map +1 -1
  97. package/dist/config.d.ts +1 -1
  98. package/dist/config.d.ts.map +1 -1
  99. package/dist/config.js +3 -2
  100. package/dist/config.js.map +1 -1
  101. package/dist/core/ada.d.ts +58 -0
  102. package/dist/core/ada.d.ts.map +1 -0
  103. package/dist/core/ada.js +61 -0
  104. package/dist/core/ada.js.map +1 -0
  105. package/dist/core/advisor/guarda.d.ts +66 -0
  106. package/dist/core/advisor/guarda.d.ts.map +1 -0
  107. package/dist/core/advisor/guarda.js +191 -0
  108. package/dist/core/advisor/guarda.js.map +1 -0
  109. package/dist/core/advisor/runtime.d.ts +66 -0
  110. package/dist/core/advisor/runtime.d.ts.map +1 -0
  111. package/dist/core/advisor/runtime.js +121 -0
  112. package/dist/core/advisor/runtime.js.map +1 -0
  113. package/dist/core/advisor/sesion.d.ts +109 -0
  114. package/dist/core/advisor/sesion.d.ts.map +1 -0
  115. package/dist/core/advisor/sesion.js +139 -0
  116. package/dist/core/advisor/sesion.js.map +1 -0
  117. package/dist/core/agent-session.d.ts +85 -7
  118. package/dist/core/agent-session.d.ts.map +1 -1
  119. package/dist/core/agent-session.js +862 -78
  120. package/dist/core/agent-session.js.map +1 -1
  121. package/dist/core/agents/loader.d.ts +77 -0
  122. package/dist/core/agents/loader.d.ts.map +1 -0
  123. package/dist/core/agents/loader.js +154 -0
  124. package/dist/core/agents/loader.js.map +1 -0
  125. package/dist/core/aprobacion/generados.d.ts +37 -0
  126. package/dist/core/aprobacion/generados.d.ts.map +1 -0
  127. package/dist/core/aprobacion/generados.js +85 -0
  128. package/dist/core/aprobacion/generados.js.map +1 -0
  129. package/dist/core/aprobacion/politica-de-maquina.d.ts +90 -0
  130. package/dist/core/aprobacion/politica-de-maquina.d.ts.map +1 -0
  131. package/dist/core/aprobacion/politica-de-maquina.js +212 -0
  132. package/dist/core/aprobacion/politica-de-maquina.js.map +1 -0
  133. package/dist/core/aprobacion/politica.d.ts +90 -0
  134. package/dist/core/aprobacion/politica.d.ts.map +1 -0
  135. package/dist/core/aprobacion/politica.js +375 -0
  136. package/dist/core/aprobacion/politica.js.map +1 -0
  137. package/dist/core/arranque/atajos.d.ts +46 -0
  138. package/dist/core/arranque/atajos.d.ts.map +1 -0
  139. package/dist/core/arranque/atajos.js +113 -0
  140. package/dist/core/arranque/atajos.js.map +1 -0
  141. package/dist/core/audit/exportacion.d.ts +54 -0
  142. package/dist/core/audit/exportacion.d.ts.map +1 -0
  143. package/dist/core/audit/exportacion.js +265 -0
  144. package/dist/core/audit/exportacion.js.map +1 -0
  145. package/dist/core/audit/libro.d.ts +318 -0
  146. package/dist/core/audit/libro.d.ts.map +1 -0
  147. package/dist/core/audit/libro.js +508 -0
  148. package/dist/core/audit/libro.js.map +1 -0
  149. package/dist/core/audit/registro-sesion.d.ts +78 -0
  150. package/dist/core/audit/registro-sesion.d.ts.map +1 -0
  151. package/dist/core/audit/registro-sesion.js +202 -0
  152. package/dist/core/audit/registro-sesion.js.map +1 -0
  153. package/dist/core/audit/retencion.d.ts +82 -0
  154. package/dist/core/audit/retencion.d.ts.map +1 -0
  155. package/dist/core/audit/retencion.js +152 -0
  156. package/dist/core/audit/retencion.js.map +1 -0
  157. package/dist/core/audit/rutas.d.ts +23 -0
  158. package/dist/core/audit/rutas.d.ts.map +1 -0
  159. package/dist/core/audit/rutas.js +23 -0
  160. package/dist/core/audit/rutas.js.map +1 -0
  161. package/dist/core/auth-storage.d.ts +0 -3
  162. package/dist/core/auth-storage.d.ts.map +1 -1
  163. package/dist/core/auth-storage.js +21 -8
  164. package/dist/core/auth-storage.js.map +1 -1
  165. package/dist/core/banco/almacenamiento.d.ts +18 -0
  166. package/dist/core/banco/almacenamiento.d.ts.map +1 -0
  167. package/dist/core/banco/almacenamiento.js +50 -0
  168. package/dist/core/banco/almacenamiento.js.map +1 -0
  169. package/dist/core/banco/analisis.d.ts +37 -0
  170. package/dist/core/banco/analisis.d.ts.map +1 -0
  171. package/dist/core/banco/analisis.js +164 -0
  172. package/dist/core/banco/analisis.js.map +1 -0
  173. package/dist/core/banco/bloques.d.ts +39 -0
  174. package/dist/core/banco/bloques.d.ts.map +1 -0
  175. package/dist/core/banco/bloques.js +84 -0
  176. package/dist/core/banco/bloques.js.map +1 -0
  177. package/dist/core/banco/cargas.d.ts +84 -0
  178. package/dist/core/banco/cargas.d.ts.map +1 -0
  179. package/dist/core/banco/cargas.js +520 -0
  180. package/dist/core/banco/cargas.js.map +1 -0
  181. package/dist/core/banco/comparar.d.ts +29 -0
  182. package/dist/core/banco/comparar.d.ts.map +1 -0
  183. package/dist/core/banco/comparar.js +28 -0
  184. package/dist/core/banco/comparar.js.map +1 -0
  185. package/dist/core/banco/ejecutar.d.ts +44 -0
  186. package/dist/core/banco/ejecutar.d.ts.map +1 -0
  187. package/dist/core/banco/ejecutar.js +183 -0
  188. package/dist/core/banco/ejecutar.js.map +1 -0
  189. package/dist/core/banco/generar.d.ts +24 -0
  190. package/dist/core/banco/generar.d.ts.map +1 -0
  191. package/dist/core/banco/generar.js +159 -0
  192. package/dist/core/banco/generar.js.map +1 -0
  193. package/dist/core/banco/mutaciones.d.ts +25 -0
  194. package/dist/core/banco/mutaciones.d.ts.map +1 -0
  195. package/dist/core/banco/mutaciones.js +215 -0
  196. package/dist/core/banco/mutaciones.js.map +1 -0
  197. package/dist/core/banco/tipos.d.ts +121 -0
  198. package/dist/core/banco/tipos.d.ts.map +1 -0
  199. package/dist/core/banco/tipos.js +16 -0
  200. package/dist/core/banco/tipos.js.map +1 -0
  201. package/dist/core/blobs/almacen.d.ts +81 -0
  202. package/dist/core/blobs/almacen.d.ts.map +1 -0
  203. package/dist/core/blobs/almacen.js +198 -0
  204. package/dist/core/blobs/almacen.js.map +1 -0
  205. package/dist/core/blobs/broker.d.ts +103 -0
  206. package/dist/core/blobs/broker.d.ts.map +1 -0
  207. package/dist/core/blobs/broker.js +204 -0
  208. package/dist/core/blobs/broker.js.map +1 -0
  209. package/dist/core/blobs/index.d.ts +70 -0
  210. package/dist/core/blobs/index.d.ts.map +1 -0
  211. package/dist/core/blobs/index.js +232 -0
  212. package/dist/core/blobs/index.js.map +1 -0
  213. package/dist/core/blobs/payload.d.ts +55 -0
  214. package/dist/core/blobs/payload.d.ts.map +1 -0
  215. package/dist/core/blobs/payload.js +255 -0
  216. package/dist/core/blobs/payload.js.map +1 -0
  217. package/dist/core/blobs/proveedor.d.ts +85 -0
  218. package/dist/core/blobs/proveedor.d.ts.map +1 -0
  219. package/dist/core/blobs/proveedor.js +196 -0
  220. package/dist/core/blobs/proveedor.js.map +1 -0
  221. package/dist/core/browser/cdp.d.ts +41 -0
  222. package/dist/core/browser/cdp.d.ts.map +1 -0
  223. package/dist/core/browser/cdp.js +119 -0
  224. package/dist/core/browser/cdp.js.map +1 -0
  225. package/dist/core/browser/politica.d.ts +51 -0
  226. package/dist/core/browser/politica.d.ts.map +1 -0
  227. package/dist/core/browser/politica.js +123 -0
  228. package/dist/core/browser/politica.js.map +1 -0
  229. package/dist/core/browser/sesion.d.ts +52 -0
  230. package/dist/core/browser/sesion.d.ts.map +1 -0
  231. package/dist/core/browser/sesion.js +176 -0
  232. package/dist/core/browser/sesion.js.map +1 -0
  233. package/dist/core/browser/tools.d.ts +16 -0
  234. package/dist/core/browser/tools.d.ts.map +1 -0
  235. package/dist/core/browser/tools.js +279 -0
  236. package/dist/core/browser/tools.js.map +1 -0
  237. package/dist/core/commit/diff.d.ts +56 -0
  238. package/dist/core/commit/diff.d.ts.map +1 -0
  239. package/dist/core/commit/diff.js +145 -0
  240. package/dist/core/commit/diff.js.map +1 -0
  241. package/dist/core/commit/mensaje.d.ts +80 -0
  242. package/dist/core/commit/mensaje.d.ts.map +1 -0
  243. package/dist/core/commit/mensaje.js +207 -0
  244. package/dist/core/commit/mensaje.js.map +1 -0
  245. package/dist/core/compactar/index.d.ts +52 -0
  246. package/dist/core/compactar/index.d.ts.map +1 -0
  247. package/dist/core/compactar/index.js +91 -0
  248. package/dist/core/compactar/index.js.map +1 -0
  249. package/dist/core/compactar/registro-denso.d.ts +160 -0
  250. package/dist/core/compactar/registro-denso.d.ts.map +1 -0
  251. package/dist/core/compactar/registro-denso.js +620 -0
  252. package/dist/core/compactar/registro-denso.js.map +1 -0
  253. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  254. package/dist/core/compaction/branch-summarization.js +3 -0
  255. package/dist/core/compaction/branch-summarization.js.map +1 -1
  256. package/dist/core/compaction/compaction.d.ts +4 -3
  257. package/dist/core/compaction/compaction.d.ts.map +1 -1
  258. package/dist/core/compaction/compaction.js +41 -32
  259. package/dist/core/compaction/compaction.js.map +1 -1
  260. package/dist/core/computer/captura.d.ts +35 -0
  261. package/dist/core/computer/captura.d.ts.map +1 -0
  262. package/dist/core/computer/captura.js +140 -0
  263. package/dist/core/computer/captura.js.map +1 -0
  264. package/dist/core/computer/driver.d.ts +130 -0
  265. package/dist/core/computer/driver.d.ts.map +1 -0
  266. package/dist/core/computer/driver.js +206 -0
  267. package/dist/core/computer/driver.js.map +1 -0
  268. package/dist/core/computer/motor/actions.d.ts +109 -0
  269. package/dist/core/computer/motor/actions.d.ts.map +1 -0
  270. package/dist/core/computer/motor/actions.js +157 -0
  271. package/dist/core/computer/motor/actions.js.map +1 -0
  272. package/dist/core/computer/motor/bridge.d.ts +232 -0
  273. package/dist/core/computer/motor/bridge.d.ts.map +1 -0
  274. package/dist/core/computer/motor/bridge.js +2335 -0
  275. package/dist/core/computer/motor/bridge.js.map +1 -0
  276. package/dist/core/computer/motor/cdp.d.ts +107 -0
  277. package/dist/core/computer/motor/cdp.d.ts.map +1 -0
  278. package/dist/core/computer/motor/cdp.js +659 -0
  279. package/dist/core/computer/motor/cdp.js.map +1 -0
  280. package/dist/core/computer/motor/config.d.ts +23 -0
  281. package/dist/core/computer/motor/config.d.ts.map +1 -0
  282. package/dist/core/computer/motor/config.js +100 -0
  283. package/dist/core/computer/motor/config.js.map +1 -0
  284. package/dist/core/computer/motor/contract.d.ts +81 -0
  285. package/dist/core/computer/motor/contract.d.ts.map +1 -0
  286. package/dist/core/computer/motor/contract.js +14 -0
  287. package/dist/core/computer/motor/contract.js.map +1 -0
  288. package/dist/core/computer/motor/note.d.ts +37 -0
  289. package/dist/core/computer/motor/note.d.ts.map +1 -0
  290. package/dist/core/computer/motor/note.js +162 -0
  291. package/dist/core/computer/motor/note.js.map +1 -0
  292. package/dist/core/computer/motor/outline.d.ts +155 -0
  293. package/dist/core/computer/motor/outline.d.ts.map +1 -0
  294. package/dist/core/computer/motor/outline.js +590 -0
  295. package/dist/core/computer/motor/outline.js.map +1 -0
  296. package/dist/core/computer/motor/output.d.ts +18 -0
  297. package/dist/core/computer/motor/output.d.ts.map +1 -0
  298. package/dist/core/computer/motor/output.js +148 -0
  299. package/dist/core/computer/motor/output.js.map +1 -0
  300. package/dist/core/computer/motor/permissions.d.ts +41 -0
  301. package/dist/core/computer/motor/permissions.d.ts.map +1 -0
  302. package/dist/core/computer/motor/permissions.js +51 -0
  303. package/dist/core/computer/motor/permissions.js.map +1 -0
  304. package/dist/core/computer/motor/platform/architecture.d.ts +5 -0
  305. package/dist/core/computer/motor/platform/architecture.d.ts.map +1 -0
  306. package/dist/core/computer/motor/platform/architecture.js +21 -0
  307. package/dist/core/computer/motor/platform/architecture.js.map +1 -0
  308. package/dist/core/computer/motor/platform/coerce.d.ts +4 -0
  309. package/dist/core/computer/motor/platform/coerce.d.ts.map +1 -0
  310. package/dist/core/computer/motor/platform/coerce.js +17 -0
  311. package/dist/core/computer/motor/platform/coerce.js.map +1 -0
  312. package/dist/core/computer/motor/platform/index.d.ts +4 -0
  313. package/dist/core/computer/motor/platform/index.d.ts.map +1 -0
  314. package/dist/core/computer/motor/platform/index.js +79 -0
  315. package/dist/core/computer/motor/platform/index.js.map +1 -0
  316. package/dist/core/computer/motor/platform/linux/backend.d.ts +3 -0
  317. package/dist/core/computer/motor/platform/linux/backend.d.ts.map +1 -0
  318. package/dist/core/computer/motor/platform/linux/backend.js +173 -0
  319. package/dist/core/computer/motor/platform/linux/backend.js.map +1 -0
  320. package/dist/core/computer/motor/platform/linux/helper.d.ts +29 -0
  321. package/dist/core/computer/motor/platform/linux/helper.d.ts.map +1 -0
  322. package/dist/core/computer/motor/platform/linux/helper.js +261 -0
  323. package/dist/core/computer/motor/platform/linux/helper.js.map +1 -0
  324. package/dist/core/computer/motor/platform/macos/backend.d.ts +3 -0
  325. package/dist/core/computer/motor/platform/macos/backend.d.ts.map +1 -0
  326. package/dist/core/computer/motor/platform/macos/backend.js +124 -0
  327. package/dist/core/computer/motor/platform/macos/backend.js.map +1 -0
  328. package/dist/core/computer/motor/platform/macos/browser.d.ts +7 -0
  329. package/dist/core/computer/motor/platform/macos/browser.d.ts.map +1 -0
  330. package/dist/core/computer/motor/platform/macos/browser.js +101 -0
  331. package/dist/core/computer/motor/platform/macos/browser.js.map +1 -0
  332. package/dist/core/computer/motor/platform/macos/helper-path.mjs +34 -0
  333. package/dist/core/computer/motor/platform/macos/helper.d.ts +32 -0
  334. package/dist/core/computer/motor/platform/macos/helper.d.ts.map +1 -0
  335. package/dist/core/computer/motor/platform/macos/helper.js +277 -0
  336. package/dist/core/computer/motor/platform/macos/helper.js.map +1 -0
  337. package/dist/core/computer/motor/platform/macos/permissions.d.ts +4 -0
  338. package/dist/core/computer/motor/platform/macos/permissions.d.ts.map +1 -0
  339. package/dist/core/computer/motor/platform/macos/permissions.js +118 -0
  340. package/dist/core/computer/motor/platform/macos/permissions.js.map +1 -0
  341. package/dist/core/computer/motor/platform/types.d.ts +263 -0
  342. package/dist/core/computer/motor/platform/types.d.ts.map +1 -0
  343. package/dist/core/computer/motor/platform/types.js +2 -0
  344. package/dist/core/computer/motor/platform/types.js.map +1 -0
  345. package/dist/core/computer/motor/platform/windows/backend.d.ts +3 -0
  346. package/dist/core/computer/motor/platform/windows/backend.d.ts.map +1 -0
  347. package/dist/core/computer/motor/platform/windows/backend.js +163 -0
  348. package/dist/core/computer/motor/platform/windows/backend.js.map +1 -0
  349. package/dist/core/computer/motor/platform/windows/helper.d.ts +18 -0
  350. package/dist/core/computer/motor/platform/windows/helper.d.ts.map +1 -0
  351. package/dist/core/computer/motor/platform/windows/helper.js +174 -0
  352. package/dist/core/computer/motor/platform/windows/helper.js.map +1 -0
  353. package/dist/core/computer/motor/root-selection.d.ts +6 -0
  354. package/dist/core/computer/motor/root-selection.d.ts.map +1 -0
  355. package/dist/core/computer/motor/root-selection.js +28 -0
  356. package/dist/core/computer/motor/root-selection.js.map +1 -0
  357. package/dist/core/computer/motor/runtime.d.ts +50 -0
  358. package/dist/core/computer/motor/runtime.d.ts.map +1 -0
  359. package/dist/core/computer/motor/runtime.js +119 -0
  360. package/dist/core/computer/motor/runtime.js.map +1 -0
  361. package/dist/core/computer/motor/state.d.ts +68 -0
  362. package/dist/core/computer/motor/state.d.ts.map +1 -0
  363. package/dist/core/computer/motor/state.js +100 -0
  364. package/dist/core/computer/motor/state.js.map +1 -0
  365. package/dist/core/computer/motor/view.d.ts +6 -0
  366. package/dist/core/computer/motor/view.d.ts.map +1 -0
  367. package/dist/core/computer/motor/view.js +185 -0
  368. package/dist/core/computer/motor/view.js.map +1 -0
  369. package/dist/core/computer/motor-ada.d.ts +159 -0
  370. package/dist/core/computer/motor-ada.d.ts.map +1 -0
  371. package/dist/core/computer/motor-ada.js +412 -0
  372. package/dist/core/computer/motor-ada.js.map +1 -0
  373. package/dist/core/computer/politica.d.ts +56 -0
  374. package/dist/core/computer/politica.d.ts.map +1 -0
  375. package/dist/core/computer/politica.js +163 -0
  376. package/dist/core/computer/politica.js.map +1 -0
  377. package/dist/core/computer/tools.d.ts +26 -0
  378. package/dist/core/computer/tools.d.ts.map +1 -0
  379. package/dist/core/computer/tools.js +399 -0
  380. package/dist/core/computer/tools.js.map +1 -0
  381. package/dist/core/context-breakdown.d.ts +80 -0
  382. package/dist/core/context-breakdown.d.ts.map +1 -0
  383. package/dist/core/context-breakdown.js +87 -0
  384. package/dist/core/context-breakdown.js.map +1 -0
  385. package/dist/core/credenciales/cliente.d.ts +60 -0
  386. package/dist/core/credenciales/cliente.d.ts.map +1 -0
  387. package/dist/core/credenciales/cliente.js +81 -0
  388. package/dist/core/credenciales/cliente.js.map +1 -0
  389. package/dist/core/credenciales/pool.d.ts +96 -0
  390. package/dist/core/credenciales/pool.d.ts.map +1 -0
  391. package/dist/core/credenciales/pool.js +128 -0
  392. package/dist/core/credenciales/pool.js.map +1 -0
  393. package/dist/core/credenciales/reposo.d.ts +93 -0
  394. package/dist/core/credenciales/reposo.d.ts.map +1 -0
  395. package/dist/core/credenciales/reposo.js +489 -0
  396. package/dist/core/credenciales/reposo.js.map +1 -0
  397. package/dist/core/credenciales/servidor.d.ts +55 -0
  398. package/dist/core/credenciales/servidor.d.ts.map +1 -0
  399. package/dist/core/credenciales/servidor.js +205 -0
  400. package/dist/core/credenciales/servidor.js.map +1 -0
  401. package/dist/core/defaults.d.ts +1 -0
  402. package/dist/core/defaults.d.ts.map +1 -1
  403. package/dist/core/defaults.js +9 -0
  404. package/dist/core/defaults.js.map +1 -1
  405. package/dist/core/descubrimiento/comandos.d.ts +30 -0
  406. package/dist/core/descubrimiento/comandos.d.ts.map +1 -0
  407. package/dist/core/descubrimiento/comandos.js +76 -0
  408. package/dist/core/descubrimiento/comandos.js.map +1 -0
  409. package/dist/core/descubrimiento/mcp.d.ts +42 -0
  410. package/dist/core/descubrimiento/mcp.d.ts.map +1 -0
  411. package/dist/core/descubrimiento/mcp.js +130 -0
  412. package/dist/core/descubrimiento/mcp.js.map +1 -0
  413. package/dist/core/descubrimiento/reglas.d.ts +61 -0
  414. package/dist/core/descubrimiento/reglas.d.ts.map +1 -0
  415. package/dist/core/descubrimiento/reglas.js +134 -0
  416. package/dist/core/descubrimiento/reglas.js.map +1 -0
  417. package/dist/core/descubrimiento/skills.d.ts +57 -0
  418. package/dist/core/descubrimiento/skills.d.ts.map +1 -0
  419. package/dist/core/descubrimiento/skills.js +113 -0
  420. package/dist/core/descubrimiento/skills.js.map +1 -0
  421. package/dist/core/dificultad/clasificador.d.ts +133 -0
  422. package/dist/core/dificultad/clasificador.d.ts.map +1 -0
  423. package/dist/core/dificultad/clasificador.js +288 -0
  424. package/dist/core/dificultad/clasificador.js.map +1 -0
  425. package/dist/core/edicion/diario.d.ts +37 -0
  426. package/dist/core/edicion/diario.d.ts.map +1 -0
  427. package/dist/core/edicion/diario.js +51 -0
  428. package/dist/core/edicion/diario.js.map +1 -0
  429. package/dist/core/edicion/hashline.d.ts +71 -0
  430. package/dist/core/edicion/hashline.d.ts.map +1 -0
  431. package/dist/core/edicion/hashline.js +111 -0
  432. package/dist/core/edicion/hashline.js.map +1 -0
  433. package/dist/core/edicion/hueco.d.ts +64 -0
  434. package/dist/core/edicion/hueco.d.ts.map +1 -0
  435. package/dist/core/edicion/hueco.js +162 -0
  436. package/dist/core/edicion/hueco.js.map +1 -0
  437. package/dist/core/edicion/limpiar-carga.d.ts +39 -0
  438. package/dist/core/edicion/limpiar-carga.d.ts.map +1 -0
  439. package/dist/core/edicion/limpiar-carga.js +121 -0
  440. package/dist/core/edicion/limpiar-carga.js.map +1 -0
  441. package/dist/core/edicion/observador.d.ts +80 -0
  442. package/dist/core/edicion/observador.d.ts.map +1 -0
  443. package/dist/core/edicion/observador.js +183 -0
  444. package/dist/core/edicion/observador.js.map +1 -0
  445. package/dist/core/edicion/parecido.d.ts +53 -0
  446. package/dist/core/edicion/parecido.d.ts.map +1 -0
  447. package/dist/core/edicion/parecido.js +145 -0
  448. package/dist/core/edicion/parecido.js.map +1 -0
  449. package/dist/core/edicion/parseo.d.ts +58 -0
  450. package/dist/core/edicion/parseo.d.ts.map +1 -0
  451. package/dist/core/edicion/parseo.js +124 -0
  452. package/dist/core/edicion/parseo.js.map +1 -0
  453. package/dist/core/edicion/reparacion.d.ts +67 -0
  454. package/dist/core/edicion/reparacion.d.ts.map +1 -0
  455. package/dist/core/edicion/reparacion.js +202 -0
  456. package/dist/core/edicion/reparacion.js.map +1 -0
  457. package/dist/core/edicion/sangria.d.ts +121 -0
  458. package/dist/core/edicion/sangria.d.ts.map +1 -0
  459. package/dist/core/edicion/sangria.js +341 -0
  460. package/dist/core/edicion/sangria.js.map +1 -0
  461. package/dist/core/edicion/tipos.d.ts +58 -0
  462. package/dist/core/edicion/tipos.d.ts.map +1 -0
  463. package/dist/core/edicion/tipos.js +160 -0
  464. package/dist/core/edicion/tipos.js.map +1 -0
  465. package/dist/core/engine-personality.d.ts +12 -0
  466. package/dist/core/engine-personality.d.ts.map +1 -0
  467. package/dist/core/engine-personality.js +53 -0
  468. package/dist/core/engine-personality.js.map +1 -0
  469. package/dist/core/errores/proveedor.d.ts +53 -0
  470. package/dist/core/errores/proveedor.d.ts.map +1 -0
  471. package/dist/core/errores/proveedor.js +191 -0
  472. package/dist/core/errores/proveedor.js.map +1 -0
  473. package/dist/core/estructural/buscar.d.ts +61 -0
  474. package/dist/core/estructural/buscar.d.ts.map +1 -0
  475. package/dist/core/estructural/buscar.js +261 -0
  476. package/dist/core/estructural/buscar.js.map +1 -0
  477. package/dist/core/estructural/editar.d.ts +36 -0
  478. package/dist/core/estructural/editar.d.ts.map +1 -0
  479. package/dist/core/estructural/editar.js +123 -0
  480. package/dist/core/estructural/editar.js.map +1 -0
  481. package/dist/core/estructural/tools.d.ts +11 -0
  482. package/dist/core/estructural/tools.d.ts.map +1 -0
  483. package/dist/core/estructural/tools.js +100 -0
  484. package/dist/core/estructural/tools.js.map +1 -0
  485. package/dist/core/experimental.d.ts.map +1 -1
  486. package/dist/core/experimental.js +10 -1
  487. package/dist/core/experimental.js.map +1 -1
  488. package/dist/core/extensiones/suplantacion.d.ts +49 -0
  489. package/dist/core/extensiones/suplantacion.d.ts.map +1 -0
  490. package/dist/core/extensiones/suplantacion.js +61 -0
  491. package/dist/core/extensiones/suplantacion.js.map +1 -0
  492. package/dist/core/extensiones/vigilancia.d.ts +54 -0
  493. package/dist/core/extensiones/vigilancia.d.ts.map +1 -0
  494. package/dist/core/extensiones/vigilancia.js +217 -0
  495. package/dist/core/extensiones/vigilancia.js.map +1 -0
  496. package/dist/core/extensions/index.d.ts +1 -1
  497. package/dist/core/extensions/index.d.ts.map +1 -1
  498. package/dist/core/extensions/index.js.map +1 -1
  499. package/dist/core/extensions/loader.d.ts.map +1 -1
  500. package/dist/core/extensions/loader.js +21 -6
  501. package/dist/core/extensions/loader.js.map +1 -1
  502. package/dist/core/extensions/types.d.ts +23 -4
  503. package/dist/core/extensions/types.d.ts.map +1 -1
  504. package/dist/core/extensions/types.js.map +1 -1
  505. package/dist/core/harness/fuentes-de-contexto.d.ts +29 -0
  506. package/dist/core/harness/fuentes-de-contexto.d.ts.map +1 -0
  507. package/dist/core/harness/fuentes-de-contexto.js +44 -0
  508. package/dist/core/harness/fuentes-de-contexto.js.map +1 -0
  509. package/dist/core/harness/refine.d.ts +40 -0
  510. package/dist/core/harness/refine.d.ts.map +1 -0
  511. package/dist/core/harness/refine.js +109 -0
  512. package/dist/core/harness/refine.js.map +1 -0
  513. package/dist/core/harness/store.d.ts +75 -0
  514. package/dist/core/harness/store.d.ts.map +1 -0
  515. package/dist/core/harness/store.js +149 -0
  516. package/dist/core/harness/store.js.map +1 -0
  517. package/dist/core/hooks/contract.d.ts +85 -0
  518. package/dist/core/hooks/contract.d.ts.map +1 -0
  519. package/dist/core/hooks/contract.js +140 -0
  520. package/dist/core/hooks/contract.js.map +1 -0
  521. package/dist/core/hooks/runner.d.ts +42 -0
  522. package/dist/core/hooks/runner.d.ts.map +1 -0
  523. package/dist/core/hooks/runner.js +85 -0
  524. package/dist/core/hooks/runner.js.map +1 -0
  525. package/dist/core/hooks/session-hooks.d.ts +62 -0
  526. package/dist/core/hooks/session-hooks.d.ts.map +1 -0
  527. package/dist/core/hooks/session-hooks.js +84 -0
  528. package/dist/core/hooks/session-hooks.js.map +1 -0
  529. package/dist/core/importar/formatos.d.ts +69 -0
  530. package/dist/core/importar/formatos.d.ts.map +1 -0
  531. package/dist/core/importar/formatos.js +235 -0
  532. package/dist/core/importar/formatos.js.map +1 -0
  533. package/dist/core/interactivo/deteccion.d.ts +44 -0
  534. package/dist/core/interactivo/deteccion.d.ts.map +1 -0
  535. package/dist/core/interactivo/deteccion.js +82 -0
  536. package/dist/core/interactivo/deteccion.js.map +1 -0
  537. package/dist/core/interactivo/sesion.d.ts +50 -0
  538. package/dist/core/interactivo/sesion.d.ts.map +1 -0
  539. package/dist/core/interactivo/sesion.js +156 -0
  540. package/dist/core/interactivo/sesion.js.map +1 -0
  541. package/dist/core/interactivo/tools.d.ts +21 -0
  542. package/dist/core/interactivo/tools.d.ts.map +1 -0
  543. package/dist/core/interactivo/tools.js +122 -0
  544. package/dist/core/interactivo/tools.js.map +1 -0
  545. package/dist/core/keybindings.d.ts.map +1 -1
  546. package/dist/core/keybindings.js +2 -1
  547. package/dist/core/keybindings.js.map +1 -1
  548. package/dist/core/lectura/mapa.d.ts +70 -0
  549. package/dist/core/lectura/mapa.d.ts.map +1 -0
  550. package/dist/core/lectura/mapa.js +177 -0
  551. package/dist/core/lectura/mapa.js.map +1 -0
  552. package/dist/core/lectura/pdf.d.ts +49 -0
  553. package/dist/core/lectura/pdf.d.ts.map +1 -0
  554. package/dist/core/lectura/pdf.js +337 -0
  555. package/dist/core/lectura/pdf.js.map +1 -0
  556. package/dist/core/limpieza/comprobadores.d.ts +28 -0
  557. package/dist/core/limpieza/comprobadores.d.ts.map +1 -0
  558. package/dist/core/limpieza/comprobadores.js +311 -0
  559. package/dist/core/limpieza/comprobadores.js.map +1 -0
  560. package/dist/core/limpieza/parseo.d.ts +19 -0
  561. package/dist/core/limpieza/parseo.d.ts.map +1 -0
  562. package/dist/core/limpieza/parseo.js +124 -0
  563. package/dist/core/limpieza/parseo.js.map +1 -0
  564. package/dist/core/limpieza/reparacion.d.ts +77 -0
  565. package/dist/core/limpieza/reparacion.d.ts.map +1 -0
  566. package/dist/core/limpieza/reparacion.js +254 -0
  567. package/dist/core/limpieza/reparacion.js.map +1 -0
  568. package/dist/core/limpieza/tipos.d.ts +56 -0
  569. package/dist/core/limpieza/tipos.d.ts.map +1 -0
  570. package/dist/core/limpieza/tipos.js +9 -0
  571. package/dist/core/limpieza/tipos.js.map +1 -0
  572. package/dist/core/lsp/cliente.d.ts +52 -0
  573. package/dist/core/lsp/cliente.d.ts.map +1 -0
  574. package/dist/core/lsp/cliente.js +232 -0
  575. package/dist/core/lsp/cliente.js.map +1 -0
  576. package/dist/core/lsp/descubrimiento.d.ts +62 -0
  577. package/dist/core/lsp/descubrimiento.d.ts.map +1 -0
  578. package/dist/core/lsp/descubrimiento.js +152 -0
  579. package/dist/core/lsp/descubrimiento.js.map +1 -0
  580. package/dist/core/lsp/ediciones.d.ts +59 -0
  581. package/dist/core/lsp/ediciones.d.ts.map +1 -0
  582. package/dist/core/lsp/ediciones.js +89 -0
  583. package/dist/core/lsp/ediciones.js.map +1 -0
  584. package/dist/core/lsp/extension.d.ts +28 -0
  585. package/dist/core/lsp/extension.d.ts.map +1 -0
  586. package/dist/core/lsp/extension.js +34 -0
  587. package/dist/core/lsp/extension.js.map +1 -0
  588. package/dist/core/lsp/tools.d.ts +45 -0
  589. package/dist/core/lsp/tools.d.ts.map +1 -0
  590. package/dist/core/lsp/tools.js +265 -0
  591. package/dist/core/lsp/tools.js.map +1 -0
  592. package/dist/core/mcp/client.d.ts +60 -0
  593. package/dist/core/mcp/client.d.ts.map +1 -0
  594. package/dist/core/mcp/client.js +139 -0
  595. package/dist/core/mcp/client.js.map +1 -0
  596. package/dist/core/mcp/manager.d.ts +86 -0
  597. package/dist/core/mcp/manager.d.ts.map +1 -0
  598. package/dist/core/mcp/manager.js +124 -0
  599. package/dist/core/mcp/manager.js.map +1 -0
  600. package/dist/core/mcp/tools.d.ts +15 -0
  601. package/dist/core/mcp/tools.d.ts.map +1 -0
  602. package/dist/core/mcp/tools.js +84 -0
  603. package/dist/core/mcp/tools.js.map +1 -0
  604. package/dist/core/memory-engine/audit-export.d.ts +56 -0
  605. package/dist/core/memory-engine/audit-export.d.ts.map +1 -0
  606. package/dist/core/memory-engine/audit-export.js +100 -0
  607. package/dist/core/memory-engine/audit-export.js.map +1 -0
  608. package/dist/core/memory-engine/audit-indice.d.ts +153 -0
  609. package/dist/core/memory-engine/audit-indice.d.ts.map +1 -0
  610. package/dist/core/memory-engine/audit-indice.js +271 -0
  611. package/dist/core/memory-engine/audit-indice.js.map +1 -0
  612. package/dist/core/memory-engine/audit.d.ts +18 -6
  613. package/dist/core/memory-engine/audit.d.ts.map +1 -1
  614. package/dist/core/memory-engine/audit.js +32 -50
  615. package/dist/core/memory-engine/audit.js.map +1 -1
  616. package/dist/core/memory-engine/engine.d.ts +21 -4
  617. package/dist/core/memory-engine/engine.d.ts.map +1 -1
  618. package/dist/core/memory-engine/engine.js +219 -55
  619. package/dist/core/memory-engine/engine.js.map +1 -1
  620. package/dist/core/memory-engine/inverted-index.d.ts.map +1 -1
  621. package/dist/core/memory-engine/inverted-index.js +67 -10
  622. package/dist/core/memory-engine/inverted-index.js.map +1 -1
  623. package/dist/core/memory-engine/keychain.d.ts.map +1 -1
  624. package/dist/core/memory-engine/keychain.js +1 -6
  625. package/dist/core/memory-engine/keychain.js.map +1 -1
  626. package/dist/core/memory-engine/observation-store.d.ts +0 -1
  627. package/dist/core/memory-engine/observation-store.d.ts.map +1 -1
  628. package/dist/core/memory-engine/observation-store.js +40 -12
  629. package/dist/core/memory-engine/observation-store.js.map +1 -1
  630. package/dist/core/memory-engine/refinements.d.ts +51 -0
  631. package/dist/core/memory-engine/refinements.d.ts.map +1 -0
  632. package/dist/core/memory-engine/refinements.js +99 -0
  633. package/dist/core/memory-engine/refinements.js.map +1 -0
  634. package/dist/core/memory-engine/scanner.d.ts.map +1 -1
  635. package/dist/core/memory-engine/scanner.js +25 -5
  636. package/dist/core/memory-engine/scanner.js.map +1 -1
  637. package/dist/core/memory-engine/security.d.ts.map +1 -1
  638. package/dist/core/memory-engine/security.js +131 -23
  639. package/dist/core/memory-engine/security.js.map +1 -1
  640. package/dist/core/memory-engine/session-indexer.d.ts.map +1 -1
  641. package/dist/core/memory-engine/session-indexer.js +8 -2
  642. package/dist/core/memory-engine/session-indexer.js.map +1 -1
  643. package/dist/core/memory-engine/tools.d.ts +2 -2
  644. package/dist/core/memory-engine/tools.d.ts.map +1 -1
  645. package/dist/core/memory-engine/tools.js +41 -8
  646. package/dist/core/memory-engine/tools.js.map +1 -1
  647. package/dist/core/memory-engine/types.d.ts +2 -0
  648. package/dist/core/memory-engine/types.d.ts.map +1 -1
  649. package/dist/core/memory-engine/types.js.map +1 -1
  650. package/dist/core/memory-engine/vault.d.ts.map +1 -1
  651. package/dist/core/memory-engine/vault.js +2 -2
  652. package/dist/core/memory-engine/vault.js.map +1 -1
  653. package/dist/core/model-config.d.ts.map +1 -1
  654. package/dist/core/model-config.js +2 -1
  655. package/dist/core/model-config.js.map +1 -1
  656. package/dist/core/model-resolver.d.ts +1 -0
  657. package/dist/core/model-resolver.d.ts.map +1 -1
  658. package/dist/core/model-resolver.js +19 -7
  659. package/dist/core/model-resolver.js.map +1 -1
  660. package/dist/core/models-store.d.ts.map +1 -1
  661. package/dist/core/models-store.js +2 -1
  662. package/dist/core/models-store.js.map +1 -1
  663. package/dist/core/muestreo-restringido.d.ts +49 -0
  664. package/dist/core/muestreo-restringido.d.ts.map +1 -0
  665. package/dist/core/muestreo-restringido.js +65 -0
  666. package/dist/core/muestreo-restringido.js.map +1 -0
  667. package/dist/core/orphan-process-journal.d.ts +48 -0
  668. package/dist/core/orphan-process-journal.d.ts.map +1 -0
  669. package/dist/core/orphan-process-journal.js +116 -0
  670. package/dist/core/orphan-process-journal.js.map +1 -0
  671. package/dist/core/package-manager.d.ts.map +1 -1
  672. package/dist/core/package-manager.js +11 -6
  673. package/dist/core/package-manager.js.map +1 -1
  674. package/dist/core/pi-manifest.d.ts.map +1 -1
  675. package/dist/core/pi-manifest.js +2 -1
  676. package/dist/core/pi-manifest.js.map +1 -1
  677. package/dist/core/privacidad/categorias-especiales.d.ts +186 -0
  678. package/dist/core/privacidad/categorias-especiales.d.ts.map +1 -0
  679. package/dist/core/privacidad/categorias-especiales.js +745 -0
  680. package/dist/core/privacidad/categorias-especiales.js.map +1 -0
  681. package/dist/core/privacidad/tapar.d.ts +48 -0
  682. package/dist/core/privacidad/tapar.d.ts.map +1 -0
  683. package/dist/core/privacidad/tapar.js +66 -0
  684. package/dist/core/privacidad/tapar.js.map +1 -0
  685. package/dist/core/prompt-cache/diagnostics.d.ts +33 -0
  686. package/dist/core/prompt-cache/diagnostics.d.ts.map +1 -0
  687. package/dist/core/prompt-cache/diagnostics.js +100 -0
  688. package/dist/core/prompt-cache/diagnostics.js.map +1 -0
  689. package/dist/core/prompt-cache/index.d.ts +33 -0
  690. package/dist/core/prompt-cache/index.d.ts.map +1 -0
  691. package/dist/core/prompt-cache/index.js +189 -0
  692. package/dist/core/prompt-cache/index.js.map +1 -0
  693. package/dist/core/prompt-cache/payload.d.ts +58 -0
  694. package/dist/core/prompt-cache/payload.d.ts.map +1 -0
  695. package/dist/core/prompt-cache/payload.js +122 -0
  696. package/dist/core/prompt-cache/payload.js.map +1 -0
  697. package/dist/core/prompt-cache/stabilize.d.ts +65 -0
  698. package/dist/core/prompt-cache/stabilize.d.ts.map +1 -0
  699. package/dist/core/prompt-cache/stabilize.js +137 -0
  700. package/dist/core/prompt-cache/stabilize.js.map +1 -0
  701. package/dist/core/prompt-cache/stats.d.ts +55 -0
  702. package/dist/core/prompt-cache/stats.d.ts.map +1 -0
  703. package/dist/core/prompt-cache/stats.js +158 -0
  704. package/dist/core/prompt-cache/stats.js.map +1 -0
  705. package/dist/core/prompt-eleccion.d.ts +38 -0
  706. package/dist/core/prompt-eleccion.d.ts.map +1 -0
  707. package/dist/core/prompt-eleccion.js +46 -0
  708. package/dist/core/prompt-eleccion.js.map +1 -0
  709. package/dist/core/prompt-optimizer.d.ts +53 -0
  710. package/dist/core/prompt-optimizer.d.ts.map +1 -0
  711. package/dist/core/prompt-optimizer.js +138 -0
  712. package/dist/core/prompt-optimizer.js.map +1 -0
  713. package/dist/core/prompts/montar.d.ts +75 -0
  714. package/dist/core/prompts/montar.d.ts.map +1 -0
  715. package/dist/core/prompts/montar.js +146 -0
  716. package/dist/core/prompts/montar.js.map +1 -0
  717. package/dist/core/prompts/plantilla.d.ts +54 -0
  718. package/dist/core/prompts/plantilla.d.ts.map +1 -0
  719. package/dist/core/prompts/plantilla.js +153 -0
  720. package/dist/core/prompts/plantilla.js.map +1 -0
  721. package/dist/core/prompts/sistema.md +134 -0
  722. package/dist/core/provider-attribution.d.ts +24 -2
  723. package/dist/core/provider-attribution.d.ts.map +1 -1
  724. package/dist/core/provider-attribution.js +24 -42
  725. package/dist/core/provider-attribution.js.map +1 -1
  726. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  727. package/dist/core/remote-catalog-provider.js +2 -1
  728. package/dist/core/remote-catalog-provider.js.map +1 -1
  729. package/dist/core/remoto/destino.d.ts +38 -0
  730. package/dist/core/remoto/destino.d.ts.map +1 -0
  731. package/dist/core/remoto/destino.js +105 -0
  732. package/dist/core/remoto/destino.js.map +1 -0
  733. package/dist/core/remoto/ejecutor.d.ts +59 -0
  734. package/dist/core/remoto/ejecutor.d.ts.map +1 -0
  735. package/dist/core/remoto/ejecutor.js +225 -0
  736. package/dist/core/remoto/ejecutor.js.map +1 -0
  737. package/dist/core/remoto/ficheros.d.ts +29 -0
  738. package/dist/core/remoto/ficheros.d.ts.map +1 -0
  739. package/dist/core/remoto/ficheros.js +90 -0
  740. package/dist/core/remoto/ficheros.js.map +1 -0
  741. package/dist/core/remoto/registro-extension.d.ts +15 -0
  742. package/dist/core/remoto/registro-extension.d.ts.map +1 -0
  743. package/dist/core/remoto/registro-extension.js +17 -0
  744. package/dist/core/remoto/registro-extension.js.map +1 -0
  745. package/dist/core/remoto/tools.d.ts +28 -0
  746. package/dist/core/remoto/tools.d.ts.map +1 -0
  747. package/dist/core/remoto/tools.js +31 -0
  748. package/dist/core/remoto/tools.js.map +1 -0
  749. package/dist/core/resource-loader.d.ts +58 -0
  750. package/dist/core/resource-loader.d.ts.map +1 -1
  751. package/dist/core/resource-loader.js +326 -8
  752. package/dist/core/resource-loader.js.map +1 -1
  753. package/dist/core/revision/hallazgo.d.ts +51 -0
  754. package/dist/core/revision/hallazgo.d.ts.map +1 -0
  755. package/dist/core/revision/hallazgo.js +73 -0
  756. package/dist/core/revision/hallazgo.js.map +1 -0
  757. package/dist/core/revision/revisor.d.ts +81 -0
  758. package/dist/core/revision/revisor.d.ts.map +1 -0
  759. package/dist/core/revision/revisor.js +132 -0
  760. package/dist/core/revision/revisor.js.map +1 -0
  761. package/dist/core/revision/sarif.d.ts +30 -0
  762. package/dist/core/revision/sarif.d.ts.map +1 -0
  763. package/dist/core/revision/sarif.js +83 -0
  764. package/dist/core/revision/sarif.js.map +1 -0
  765. package/dist/core/scheduler/scheduler.d.ts +87 -0
  766. package/dist/core/scheduler/scheduler.d.ts.map +1 -0
  767. package/dist/core/scheduler/scheduler.js +178 -0
  768. package/dist/core/scheduler/scheduler.js.map +1 -0
  769. package/dist/core/sdk.d.ts +8 -0
  770. package/dist/core/sdk.d.ts.map +1 -1
  771. package/dist/core/sdk.js +11 -1
  772. package/dist/core/sdk.js.map +1 -1
  773. package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts +49 -0
  774. package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts.map +1 -0
  775. package/dist/core/sesion/cerrar-llamadas-abiertas.js +77 -0
  776. package/dist/core/sesion/cerrar-llamadas-abiertas.js.map +1 -0
  777. package/dist/core/session-manager.d.ts.map +1 -1
  778. package/dist/core/session-manager.js +2 -1
  779. package/dist/core/session-manager.js.map +1 -1
  780. package/dist/core/settings-diagnostics.d.ts +9 -0
  781. package/dist/core/settings-diagnostics.d.ts.map +1 -0
  782. package/dist/core/settings-diagnostics.js +21 -0
  783. package/dist/core/settings-diagnostics.js.map +1 -0
  784. package/dist/core/settings-manager.d.ts +156 -0
  785. package/dist/core/settings-manager.d.ts.map +1 -1
  786. package/dist/core/settings-manager.js +255 -10
  787. package/dist/core/settings-manager.js.map +1 -1
  788. package/dist/core/skills.d.ts.map +1 -1
  789. package/dist/core/skills.js +51 -33
  790. package/dist/core/skills.js.map +1 -1
  791. package/dist/core/slash-commands.d.ts.map +1 -1
  792. package/dist/core/slash-commands.js +2 -1
  793. package/dist/core/slash-commands.js.map +1 -1
  794. package/dist/core/system-prompt.d.ts +17 -0
  795. package/dist/core/system-prompt.d.ts.map +1 -1
  796. package/dist/core/system-prompt.js +13 -5
  797. package/dist/core/system-prompt.js.map +1 -1
  798. package/dist/core/telemetria/otlp.d.ts +122 -0
  799. package/dist/core/telemetria/otlp.d.ts.map +1 -0
  800. package/dist/core/telemetria/otlp.js +373 -0
  801. package/dist/core/telemetria/otlp.js.map +1 -0
  802. package/dist/core/tools/coercion-argumentos.d.ts +48 -0
  803. package/dist/core/tools/coercion-argumentos.d.ts.map +1 -0
  804. package/dist/core/tools/coercion-argumentos.js +99 -0
  805. package/dist/core/tools/coercion-argumentos.js.map +1 -0
  806. package/dist/core/tools/edit-diff.d.ts +0 -12
  807. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  808. package/dist/core/tools/edit-diff.js +234 -12
  809. package/dist/core/tools/edit-diff.js.map +1 -1
  810. package/dist/core/tools/edit.d.ts.map +1 -1
  811. package/dist/core/tools/edit.js +28 -5
  812. package/dist/core/tools/edit.js.map +1 -1
  813. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  814. package/dist/core/tools/file-mutation-queue.js +5 -0
  815. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  816. package/dist/core/tools/index.d.ts.map +1 -1
  817. package/dist/core/tools/index.js +2 -2
  818. package/dist/core/tools/index.js.map +1 -1
  819. package/dist/core/tools/json-tolerante.d.ts +30 -0
  820. package/dist/core/tools/json-tolerante.d.ts.map +1 -0
  821. package/dist/core/tools/json-tolerante.js +70 -0
  822. package/dist/core/tools/json-tolerante.js.map +1 -0
  823. package/dist/core/tools/project-memory-tool.d.ts.map +1 -1
  824. package/dist/core/tools/project-memory-tool.js +4 -1
  825. package/dist/core/tools/project-memory-tool.js.map +1 -1
  826. package/dist/core/tools/read.d.ts.map +1 -1
  827. package/dist/core/tools/read.js +17 -0
  828. package/dist/core/tools/read.js.map +1 -1
  829. package/dist/core/tools/tool-definition-wrapper.d.ts +14 -1
  830. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  831. package/dist/core/tools/tool-definition-wrapper.js +17 -1
  832. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  833. package/dist/core/trust-manager.d.ts.map +1 -1
  834. package/dist/core/trust-manager.js +2 -1
  835. package/dist/core/trust-manager.js.map +1 -1
  836. package/dist/core/turno-vacio/detectar.d.ts +38 -0
  837. package/dist/core/turno-vacio/detectar.d.ts.map +1 -0
  838. package/dist/core/turno-vacio/detectar.js +66 -0
  839. package/dist/core/turno-vacio/detectar.js.map +1 -0
  840. package/dist/core/undo/journal.d.ts +57 -0
  841. package/dist/core/undo/journal.d.ts.map +1 -0
  842. package/dist/core/undo/journal.js +178 -0
  843. package/dist/core/undo/journal.js.map +1 -0
  844. package/dist/core/urls-internas/auditoria.d.ts +10 -0
  845. package/dist/core/urls-internas/auditoria.d.ts.map +1 -0
  846. package/dist/core/urls-internas/auditoria.js +42 -0
  847. package/dist/core/urls-internas/auditoria.js.map +1 -0
  848. package/dist/core/urls-internas/boveda.d.ts +13 -0
  849. package/dist/core/urls-internas/boveda.d.ts.map +1 -0
  850. package/dist/core/urls-internas/boveda.js +40 -0
  851. package/dist/core/urls-internas/boveda.js.map +1 -0
  852. package/dist/core/urls-internas/lector.d.ts +30 -0
  853. package/dist/core/urls-internas/lector.d.ts.map +1 -0
  854. package/dist/core/urls-internas/lector.js +56 -0
  855. package/dist/core/urls-internas/lector.js.map +1 -0
  856. package/dist/core/urls-internas/memoria.d.ts +11 -0
  857. package/dist/core/urls-internas/memoria.d.ts.map +1 -0
  858. package/dist/core/urls-internas/memoria.js +25 -0
  859. package/dist/core/urls-internas/memoria.js.map +1 -0
  860. package/dist/core/urls-internas/parse.d.ts +28 -0
  861. package/dist/core/urls-internas/parse.d.ts.map +1 -0
  862. package/dist/core/urls-internas/parse.js +32 -0
  863. package/dist/core/urls-internas/parse.js.map +1 -0
  864. package/dist/core/urls-internas/reglas.d.ts +10 -0
  865. package/dist/core/urls-internas/reglas.d.ts.map +1 -0
  866. package/dist/core/urls-internas/reglas.js +31 -0
  867. package/dist/core/urls-internas/reglas.js.map +1 -0
  868. package/dist/core/usage/aggregate.d.ts +68 -0
  869. package/dist/core/usage/aggregate.d.ts.map +1 -0
  870. package/dist/core/usage/aggregate.js +93 -0
  871. package/dist/core/usage/aggregate.js.map +1 -0
  872. package/dist/core/usage/cuota/anthropic.d.ts +10 -0
  873. package/dist/core/usage/cuota/anthropic.d.ts.map +1 -0
  874. package/dist/core/usage/cuota/anthropic.js +63 -0
  875. package/dist/core/usage/cuota/anthropic.js.map +1 -0
  876. package/dist/core/usage/cuota/cache.d.ts +20 -0
  877. package/dist/core/usage/cuota/cache.d.ts.map +1 -0
  878. package/dist/core/usage/cuota/cache.js +36 -0
  879. package/dist/core/usage/cuota/cache.js.map +1 -0
  880. package/dist/core/usage/cuota/github-copilot.d.ts +9 -0
  881. package/dist/core/usage/cuota/github-copilot.d.ts.map +1 -0
  882. package/dist/core/usage/cuota/github-copilot.js +67 -0
  883. package/dist/core/usage/cuota/github-copilot.js.map +1 -0
  884. package/dist/core/usage/cuota/google-gemini.d.ts +9 -0
  885. package/dist/core/usage/cuota/google-gemini.d.ts.map +1 -0
  886. package/dist/core/usage/cuota/google-gemini.js +72 -0
  887. package/dist/core/usage/cuota/google-gemini.js.map +1 -0
  888. package/dist/core/usage/cuota/index.d.ts +25 -0
  889. package/dist/core/usage/cuota/index.d.ts.map +1 -0
  890. package/dist/core/usage/cuota/index.js +50 -0
  891. package/dist/core/usage/cuota/index.js.map +1 -0
  892. package/dist/core/usage/cuota/openai-codex.d.ts +9 -0
  893. package/dist/core/usage/cuota/openai-codex.d.ts.map +1 -0
  894. package/dist/core/usage/cuota/openai-codex.js +59 -0
  895. package/dist/core/usage/cuota/openai-codex.js.map +1 -0
  896. package/dist/core/usage/cuota/openrouter.d.ts +10 -0
  897. package/dist/core/usage/cuota/openrouter.d.ts.map +1 -0
  898. package/dist/core/usage/cuota/openrouter.js +47 -0
  899. package/dist/core/usage/cuota/openrouter.js.map +1 -0
  900. package/dist/core/usage/cuota/tipos.d.ts +50 -0
  901. package/dist/core/usage/cuota/tipos.d.ts.map +1 -0
  902. package/dist/core/usage/cuota/tipos.js +25 -0
  903. package/dist/core/usage/cuota/tipos.js.map +1 -0
  904. package/dist/core/web/busqueda-nativa.d.ts +82 -0
  905. package/dist/core/web/busqueda-nativa.d.ts.map +1 -0
  906. package/dist/core/web/busqueda-nativa.js +163 -0
  907. package/dist/core/web/busqueda-nativa.js.map +1 -0
  908. package/dist/core/web/destino.d.ts +58 -0
  909. package/dist/core/web/destino.d.ts.map +1 -0
  910. package/dist/core/web/destino.js +127 -0
  911. package/dist/core/web/destino.js.map +1 -0
  912. package/dist/core/web/proveedores/brave.d.ts +6 -0
  913. package/dist/core/web/proveedores/brave.d.ts.map +1 -0
  914. package/dist/core/web/proveedores/brave.js +20 -0
  915. package/dist/core/web/proveedores/brave.js.map +1 -0
  916. package/dist/core/web/proveedores/claves.d.ts +19 -0
  917. package/dist/core/web/proveedores/claves.d.ts.map +1 -0
  918. package/dist/core/web/proveedores/claves.js +36 -0
  919. package/dist/core/web/proveedores/claves.js.map +1 -0
  920. package/dist/core/web/proveedores/duckduckgo.d.ts +3 -0
  921. package/dist/core/web/proveedores/duckduckgo.d.ts.map +1 -0
  922. package/dist/core/web/proveedores/duckduckgo.js +109 -0
  923. package/dist/core/web/proveedores/duckduckgo.js.map +1 -0
  924. package/dist/core/web/proveedores/ecosia.d.ts +3 -0
  925. package/dist/core/web/proveedores/ecosia.d.ts.map +1 -0
  926. package/dist/core/web/proveedores/ecosia.js +72 -0
  927. package/dist/core/web/proveedores/ecosia.js.map +1 -0
  928. package/dist/core/web/proveedores/exa.d.ts +6 -0
  929. package/dist/core/web/proveedores/exa.d.ts.map +1 -0
  930. package/dist/core/web/proveedores/exa.js +24 -0
  931. package/dist/core/web/proveedores/exa.js.map +1 -0
  932. package/dist/core/web/proveedores/mojeek.d.ts +3 -0
  933. package/dist/core/web/proveedores/mojeek.d.ts.map +1 -0
  934. package/dist/core/web/proveedores/mojeek.js +65 -0
  935. package/dist/core/web/proveedores/mojeek.js.map +1 -0
  936. package/dist/core/web/proveedores/navegador.d.ts +10 -0
  937. package/dist/core/web/proveedores/navegador.d.ts.map +1 -0
  938. package/dist/core/web/proveedores/navegador.js +13 -0
  939. package/dist/core/web/proveedores/navegador.js.map +1 -0
  940. package/dist/core/web/proveedores/registro.d.ts +43 -0
  941. package/dist/core/web/proveedores/registro.d.ts.map +1 -0
  942. package/dist/core/web/proveedores/registro.js +49 -0
  943. package/dist/core/web/proveedores/registro.js.map +1 -0
  944. package/dist/core/web/proveedores/searxng.d.ts +9 -0
  945. package/dist/core/web/proveedores/searxng.d.ts.map +1 -0
  946. package/dist/core/web/proveedores/searxng.js +17 -0
  947. package/dist/core/web/proveedores/searxng.js.map +1 -0
  948. package/dist/core/web/proveedores/serper.d.ts +9 -0
  949. package/dist/core/web/proveedores/serper.d.ts.map +1 -0
  950. package/dist/core/web/proveedores/serper.js +19 -0
  951. package/dist/core/web/proveedores/serper.js.map +1 -0
  952. package/dist/core/web/proveedores/tavily.d.ts +6 -0
  953. package/dist/core/web/proveedores/tavily.d.ts.map +1 -0
  954. package/dist/core/web/proveedores/tavily.js +19 -0
  955. package/dist/core/web/proveedores/tavily.js.map +1 -0
  956. package/dist/core/web/proveedores/tipos.d.ts +36 -0
  957. package/dist/core/web/proveedores/tipos.d.ts.map +1 -0
  958. package/dist/core/web/proveedores/tipos.js +10 -0
  959. package/dist/core/web/proveedores/tipos.js.map +1 -0
  960. package/dist/core/web/registro-red.d.ts +43 -0
  961. package/dist/core/web/registro-red.d.ts.map +1 -0
  962. package/dist/core/web/registro-red.js +86 -0
  963. package/dist/core/web/registro-red.js.map +1 -0
  964. package/dist/core/web/scrapers/cisa-kev.d.ts +10 -0
  965. package/dist/core/web/scrapers/cisa-kev.d.ts.map +1 -0
  966. package/dist/core/web/scrapers/cisa-kev.js +38 -0
  967. package/dist/core/web/scrapers/cisa-kev.js.map +1 -0
  968. package/dist/core/web/scrapers/crates-io.d.ts +11 -0
  969. package/dist/core/web/scrapers/crates-io.d.ts.map +1 -0
  970. package/dist/core/web/scrapers/crates-io.js +29 -0
  971. package/dist/core/web/scrapers/crates-io.js.map +1 -0
  972. package/dist/core/web/scrapers/docs-rs.d.ts +10 -0
  973. package/dist/core/web/scrapers/docs-rs.d.ts.map +1 -0
  974. package/dist/core/web/scrapers/docs-rs.js +35 -0
  975. package/dist/core/web/scrapers/docs-rs.js.map +1 -0
  976. package/dist/core/web/scrapers/github.d.ts +3 -0
  977. package/dist/core/web/scrapers/github.d.ts.map +1 -0
  978. package/dist/core/web/scrapers/github.js +72 -0
  979. package/dist/core/web/scrapers/github.js.map +1 -0
  980. package/dist/core/web/scrapers/go-pkg.d.ts +7 -0
  981. package/dist/core/web/scrapers/go-pkg.d.ts.map +1 -0
  982. package/dist/core/web/scrapers/go-pkg.js +30 -0
  983. package/dist/core/web/scrapers/go-pkg.js.map +1 -0
  984. package/dist/core/web/scrapers/hex.d.ts +6 -0
  985. package/dist/core/web/scrapers/hex.d.ts.map +1 -0
  986. package/dist/core/web/scrapers/hex.js +27 -0
  987. package/dist/core/web/scrapers/hex.js.map +1 -0
  988. package/dist/core/web/scrapers/maven.d.ts +8 -0
  989. package/dist/core/web/scrapers/maven.d.ts.map +1 -0
  990. package/dist/core/web/scrapers/maven.js +41 -0
  991. package/dist/core/web/scrapers/maven.js.map +1 -0
  992. package/dist/core/web/scrapers/mdn.d.ts +6 -0
  993. package/dist/core/web/scrapers/mdn.d.ts.map +1 -0
  994. package/dist/core/web/scrapers/mdn.js +28 -0
  995. package/dist/core/web/scrapers/mdn.js.map +1 -0
  996. package/dist/core/web/scrapers/npm.d.ts +11 -0
  997. package/dist/core/web/scrapers/npm.d.ts.map +1 -0
  998. package/dist/core/web/scrapers/npm.js +57 -0
  999. package/dist/core/web/scrapers/npm.js.map +1 -0
  1000. package/dist/core/web/scrapers/nuget.d.ts +8 -0
  1001. package/dist/core/web/scrapers/nuget.d.ts.map +1 -0
  1002. package/dist/core/web/scrapers/nuget.js +22 -0
  1003. package/dist/core/web/scrapers/nuget.js.map +1 -0
  1004. package/dist/core/web/scrapers/nvd.d.ts +7 -0
  1005. package/dist/core/web/scrapers/nvd.d.ts.map +1 -0
  1006. package/dist/core/web/scrapers/nvd.js +37 -0
  1007. package/dist/core/web/scrapers/nvd.js.map +1 -0
  1008. package/dist/core/web/scrapers/pypi.d.ts +6 -0
  1009. package/dist/core/web/scrapers/pypi.d.ts.map +1 -0
  1010. package/dist/core/web/scrapers/pypi.js +31 -0
  1011. package/dist/core/web/scrapers/pypi.js.map +1 -0
  1012. package/dist/core/web/scrapers/registro.d.ts +13 -0
  1013. package/dist/core/web/scrapers/registro.d.ts.map +1 -0
  1014. package/dist/core/web/scrapers/registro.js +65 -0
  1015. package/dist/core/web/scrapers/registro.js.map +1 -0
  1016. package/dist/core/web/scrapers/rubygems.d.ts +6 -0
  1017. package/dist/core/web/scrapers/rubygems.d.ts.map +1 -0
  1018. package/dist/core/web/scrapers/rubygems.js +23 -0
  1019. package/dist/core/web/scrapers/rubygems.js.map +1 -0
  1020. package/dist/core/web/scrapers/stackoverflow.d.ts +3 -0
  1021. package/dist/core/web/scrapers/stackoverflow.d.ts.map +1 -0
  1022. package/dist/core/web/scrapers/stackoverflow.js +46 -0
  1023. package/dist/core/web/scrapers/stackoverflow.js.map +1 -0
  1024. package/dist/core/web/scrapers/tipos.d.ts +42 -0
  1025. package/dist/core/web/scrapers/tipos.d.ts.map +1 -0
  1026. package/dist/core/web/scrapers/tipos.js +23 -0
  1027. package/dist/core/web/scrapers/tipos.js.map +1 -0
  1028. package/dist/core/web/texto.d.ts +10 -0
  1029. package/dist/core/web/texto.d.ts.map +1 -0
  1030. package/dist/core/web/texto.js +26 -0
  1031. package/dist/core/web/texto.js.map +1 -0
  1032. package/dist/core/web/tools.d.ts +91 -0
  1033. package/dist/core/web/tools.d.ts.map +1 -0
  1034. package/dist/core/web/tools.js +304 -0
  1035. package/dist/core/web/tools.js.map +1 -0
  1036. package/dist/core/wiki/almacen.d.ts +33 -0
  1037. package/dist/core/wiki/almacen.d.ts.map +1 -0
  1038. package/dist/core/wiki/almacen.js +93 -0
  1039. package/dist/core/wiki/almacen.js.map +1 -0
  1040. package/dist/core/wiki/citas.d.ts +111 -0
  1041. package/dist/core/wiki/citas.d.ts.map +1 -0
  1042. package/dist/core/wiki/citas.js +146 -0
  1043. package/dist/core/wiki/citas.js.map +1 -0
  1044. package/dist/core/workflows/agent-runner.d.ts +88 -0
  1045. package/dist/core/workflows/agent-runner.d.ts.map +1 -0
  1046. package/dist/core/workflows/agent-runner.js +312 -0
  1047. package/dist/core/workflows/agent-runner.js.map +1 -0
  1048. package/dist/core/workflows/builtins.d.ts +41 -0
  1049. package/dist/core/workflows/builtins.d.ts.map +1 -0
  1050. package/dist/core/workflows/builtins.js +283 -0
  1051. package/dist/core/workflows/builtins.js.map +1 -0
  1052. package/dist/core/workflows/contrato/esquema.d.ts +32 -0
  1053. package/dist/core/workflows/contrato/esquema.d.ts.map +1 -0
  1054. package/dist/core/workflows/contrato/esquema.js +25 -0
  1055. package/dist/core/workflows/contrato/esquema.js.map +1 -0
  1056. package/dist/core/workflows/contrato/reparar-argumentos.d.ts +69 -0
  1057. package/dist/core/workflows/contrato/reparar-argumentos.d.ts.map +1 -0
  1058. package/dist/core/workflows/contrato/reparar-argumentos.js +117 -0
  1059. package/dist/core/workflows/contrato/reparar-argumentos.js.map +1 -0
  1060. package/dist/core/workflows/contrato/validador.d.ts +30 -0
  1061. package/dist/core/workflows/contrato/validador.d.ts.map +1 -0
  1062. package/dist/core/workflows/contrato/validador.js +56 -0
  1063. package/dist/core/workflows/contrato/validador.js.map +1 -0
  1064. package/dist/core/workflows/contrato/yield.d.ts +65 -0
  1065. package/dist/core/workflows/contrato/yield.d.ts.map +1 -0
  1066. package/dist/core/workflows/contrato/yield.js +80 -0
  1067. package/dist/core/workflows/contrato/yield.js.map +1 -0
  1068. package/dist/core/workflows/goal-engine/engine.d.ts +151 -0
  1069. package/dist/core/workflows/goal-engine/engine.d.ts.map +1 -0
  1070. package/dist/core/workflows/goal-engine/engine.js +503 -0
  1071. package/dist/core/workflows/goal-engine/engine.js.map +1 -0
  1072. package/dist/core/workflows/goal-engine/errors.d.ts +7 -0
  1073. package/dist/core/workflows/goal-engine/errors.d.ts.map +1 -0
  1074. package/dist/core/workflows/goal-engine/errors.js +9 -0
  1075. package/dist/core/workflows/goal-engine/errors.js.map +1 -0
  1076. package/dist/core/workflows/goal-engine/index.d.ts +13 -0
  1077. package/dist/core/workflows/goal-engine/index.d.ts.map +1 -0
  1078. package/dist/core/workflows/goal-engine/index.js +8 -0
  1079. package/dist/core/workflows/goal-engine/index.js.map +1 -0
  1080. package/dist/core/workflows/goal-engine/persistence.d.ts +31 -0
  1081. package/dist/core/workflows/goal-engine/persistence.d.ts.map +1 -0
  1082. package/dist/core/workflows/goal-engine/persistence.js +145 -0
  1083. package/dist/core/workflows/goal-engine/persistence.js.map +1 -0
  1084. package/dist/core/workflows/goal-engine/prompts.d.ts +37 -0
  1085. package/dist/core/workflows/goal-engine/prompts.d.ts.map +1 -0
  1086. package/dist/core/workflows/goal-engine/prompts.js +131 -0
  1087. package/dist/core/workflows/goal-engine/prompts.js.map +1 -0
  1088. package/dist/core/workflows/goal-engine/state.d.ts +41 -0
  1089. package/dist/core/workflows/goal-engine/state.d.ts.map +1 -0
  1090. package/dist/core/workflows/goal-engine/state.js +397 -0
  1091. package/dist/core/workflows/goal-engine/state.js.map +1 -0
  1092. package/dist/core/workflows/goal-engine/tools.d.ts +31 -0
  1093. package/dist/core/workflows/goal-engine/tools.d.ts.map +1 -0
  1094. package/dist/core/workflows/goal-engine/tools.js +211 -0
  1095. package/dist/core/workflows/goal-engine/tools.js.map +1 -0
  1096. package/dist/core/workflows/goal-engine/types.d.ts +286 -0
  1097. package/dist/core/workflows/goal-engine/types.d.ts.map +1 -0
  1098. package/dist/core/workflows/goal-engine/types.js +17 -0
  1099. package/dist/core/workflows/goal-engine/types.js.map +1 -0
  1100. package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts +23 -0
  1101. package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts.map +1 -0
  1102. package/dist/core/workflows/goal-engine/worktree-fingerprint.js +72 -0
  1103. package/dist/core/workflows/goal-engine/worktree-fingerprint.js.map +1 -0
  1104. package/dist/core/workflows/graph-sync.d.ts +67 -0
  1105. package/dist/core/workflows/graph-sync.d.ts.map +1 -0
  1106. package/dist/core/workflows/graph-sync.js +188 -0
  1107. package/dist/core/workflows/graph-sync.js.map +1 -0
  1108. package/dist/core/workflows/graph.d.ts +143 -0
  1109. package/dist/core/workflows/graph.d.ts.map +1 -0
  1110. package/dist/core/workflows/graph.js +319 -0
  1111. package/dist/core/workflows/graph.js.map +1 -0
  1112. package/dist/core/workflows/index.d.ts +26 -0
  1113. package/dist/core/workflows/index.d.ts.map +1 -0
  1114. package/dist/core/workflows/index.js +18 -0
  1115. package/dist/core/workflows/index.js.map +1 -0
  1116. package/dist/core/workflows/journal.d.ts +68 -0
  1117. package/dist/core/workflows/journal.d.ts.map +1 -0
  1118. package/dist/core/workflows/journal.js +83 -0
  1119. package/dist/core/workflows/journal.js.map +1 -0
  1120. package/dist/core/workflows/manager.d.ts +122 -0
  1121. package/dist/core/workflows/manager.d.ts.map +1 -0
  1122. package/dist/core/workflows/manager.js +351 -0
  1123. package/dist/core/workflows/manager.js.map +1 -0
  1124. package/dist/core/workflows/resolve-script.d.ts +35 -0
  1125. package/dist/core/workflows/resolve-script.d.ts.map +1 -0
  1126. package/dist/core/workflows/resolve-script.js +66 -0
  1127. package/dist/core/workflows/resolve-script.js.map +1 -0
  1128. package/dist/core/workflows/runtime.d.ts +62 -0
  1129. package/dist/core/workflows/runtime.d.ts.map +1 -0
  1130. package/dist/core/workflows/runtime.js +380 -0
  1131. package/dist/core/workflows/runtime.js.map +1 -0
  1132. package/dist/core/workflows/save-as-skill.d.ts +27 -0
  1133. package/dist/core/workflows/save-as-skill.d.ts.map +1 -0
  1134. package/dist/core/workflows/save-as-skill.js +54 -0
  1135. package/dist/core/workflows/save-as-skill.js.map +1 -0
  1136. package/dist/core/workflows/shared-store.d.ts +31 -0
  1137. package/dist/core/workflows/shared-store.d.ts.map +1 -0
  1138. package/dist/core/workflows/shared-store.js +80 -0
  1139. package/dist/core/workflows/shared-store.js.map +1 -0
  1140. package/dist/core/workflows/subagent-host.d.ts +50 -0
  1141. package/dist/core/workflows/subagent-host.d.ts.map +1 -0
  1142. package/dist/core/workflows/subagent-host.js +225 -0
  1143. package/dist/core/workflows/subagent-host.js.map +1 -0
  1144. package/dist/core/workflows/tool-workflow.d.ts +22 -0
  1145. package/dist/core/workflows/tool-workflow.d.ts.map +1 -0
  1146. package/dist/core/workflows/tool-workflow.js +120 -0
  1147. package/dist/core/workflows/tool-workflow.js.map +1 -0
  1148. package/dist/core/workflows/types.d.ts +191 -0
  1149. package/dist/core/workflows/types.d.ts.map +1 -0
  1150. package/dist/core/workflows/types.js +26 -0
  1151. package/dist/core/workflows/types.js.map +1 -0
  1152. package/dist/core/workflows/worktree.d.ts +42 -0
  1153. package/dist/core/workflows/worktree.d.ts.map +1 -0
  1154. package/dist/core/workflows/worktree.js +107 -0
  1155. package/dist/core/workflows/worktree.js.map +1 -0
  1156. package/dist/extensions/llama/index.d.ts.map +1 -1
  1157. package/dist/extensions/llama/index.js +2 -0
  1158. package/dist/extensions/llama/index.js.map +1 -1
  1159. package/dist/extensions/llama/provider.d.ts.map +1 -1
  1160. package/dist/extensions/llama/provider.js +6 -2
  1161. package/dist/extensions/llama/provider.js.map +1 -1
  1162. package/dist/extensions/remoto/index.d.ts +22 -0
  1163. package/dist/extensions/remoto/index.d.ts.map +1 -0
  1164. package/dist/extensions/remoto/index.js +54 -0
  1165. package/dist/extensions/remoto/index.js.map +1 -0
  1166. package/dist/index.d.ts +1 -13
  1167. package/dist/index.d.ts.map +1 -1
  1168. package/dist/index.js +7 -13
  1169. package/dist/index.js.map +1 -1
  1170. package/dist/main.d.ts +4 -0
  1171. package/dist/main.d.ts.map +1 -1
  1172. package/dist/main.js +26 -15
  1173. package/dist/main.js.map +1 -1
  1174. package/dist/migrations.d.ts.map +1 -1
  1175. package/dist/migrations.js +4 -3
  1176. package/dist/migrations.js.map +1 -1
  1177. package/dist/modes/acp/acp-mode.d.ts +42 -0
  1178. package/dist/modes/acp/acp-mode.d.ts.map +1 -0
  1179. package/dist/modes/acp/acp-mode.js +190 -0
  1180. package/dist/modes/acp/acp-mode.js.map +1 -0
  1181. package/dist/modes/acp/events.d.ts +74 -0
  1182. package/dist/modes/acp/events.d.ts.map +1 -0
  1183. package/dist/modes/acp/events.js +116 -0
  1184. package/dist/modes/acp/events.js.map +1 -0
  1185. package/dist/modes/interactive/components/home-screen.d.ts.map +1 -1
  1186. package/dist/modes/interactive/components/home-screen.js +2 -2
  1187. package/dist/modes/interactive/components/home-screen.js.map +1 -1
  1188. package/dist/modes/interactive/components/model-selector.d.ts +9 -3
  1189. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  1190. package/dist/modes/interactive/components/model-selector.js +56 -12
  1191. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  1192. package/dist/modes/interactive/components/prompt-optimization.d.ts +16 -0
  1193. package/dist/modes/interactive/components/prompt-optimization.d.ts.map +1 -0
  1194. package/dist/modes/interactive/components/prompt-optimization.js +46 -0
  1195. package/dist/modes/interactive/components/prompt-optimization.js.map +1 -0
  1196. package/dist/modes/interactive/components/settings-selector.d.ts +19 -2
  1197. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  1198. package/dist/modes/interactive/components/settings-selector.js +180 -56
  1199. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  1200. package/dist/modes/interactive/components/settings-submenu.d.ts +72 -0
  1201. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -0
  1202. package/dist/modes/interactive/components/settings-submenu.js +165 -0
  1203. package/dist/modes/interactive/components/settings-submenu.js.map +1 -0
  1204. package/dist/modes/interactive/components/thinking-selector.d.ts +15 -3
  1205. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  1206. package/dist/modes/interactive/components/thinking-selector.js +74 -17
  1207. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  1208. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  1209. package/dist/modes/interactive/external-editor.js +2 -1
  1210. package/dist/modes/interactive/external-editor.js.map +1 -1
  1211. package/dist/modes/interactive/interactive-mode.d.ts +21 -1
  1212. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  1213. package/dist/modes/interactive/interactive-mode.js +709 -75
  1214. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  1215. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  1216. package/dist/modes/interactive/theme/theme.js +4 -3
  1217. package/dist/modes/interactive/theme/theme.js.map +1 -1
  1218. package/dist/modes/json-event.d.ts +16 -13
  1219. package/dist/modes/json-event.d.ts.map +1 -1
  1220. package/dist/modes/json-event.js +20 -6
  1221. package/dist/modes/json-event.js.map +1 -1
  1222. package/dist/modes/print-mode.d.ts.map +1 -1
  1223. package/dist/modes/print-mode.js +11 -0
  1224. package/dist/modes/print-mode.js.map +1 -1
  1225. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  1226. package/dist/modes/rpc/rpc-mode.js +173 -0
  1227. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  1228. package/dist/modes/rpc/rpc-types.d.ts +29 -0
  1229. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  1230. package/dist/modes/rpc/rpc-types.js.map +1 -1
  1231. package/dist/package-manager-cli.d.ts.map +1 -1
  1232. package/dist/package-manager-cli.js +27 -5
  1233. package/dist/package-manager-cli.js.map +1 -1
  1234. package/dist/server/attach.d.ts +56 -0
  1235. package/dist/server/attach.d.ts.map +1 -0
  1236. package/dist/server/attach.js +130 -0
  1237. package/dist/server/attach.js.map +1 -0
  1238. package/dist/server/extension-ops.d.ts +40 -0
  1239. package/dist/server/extension-ops.d.ts.map +1 -0
  1240. package/dist/server/extension-ops.js +146 -0
  1241. package/dist/server/extension-ops.js.map +1 -0
  1242. package/dist/server/pi-server-service.d.ts +85 -0
  1243. package/dist/server/pi-server-service.d.ts.map +1 -0
  1244. package/dist/server/pi-server-service.js +213 -0
  1245. package/dist/server/pi-server-service.js.map +1 -0
  1246. package/dist/server/scheduler-tick.d.ts +32 -0
  1247. package/dist/server/scheduler-tick.d.ts.map +1 -0
  1248. package/dist/server/scheduler-tick.js +47 -0
  1249. package/dist/server/scheduler-tick.js.map +1 -0
  1250. package/dist/server/serve.d.ts +25 -0
  1251. package/dist/server/serve.d.ts.map +1 -0
  1252. package/dist/server/serve.js +83 -0
  1253. package/dist/server/serve.js.map +1 -0
  1254. package/dist/server/transcript.d.ts +38 -0
  1255. package/dist/server/transcript.d.ts.map +1 -0
  1256. package/dist/server/transcript.js +176 -0
  1257. package/dist/server/transcript.js.map +1 -0
  1258. package/dist/skills/ada-engine/SKILL.md +153 -0
  1259. package/dist/skills/skill-creator/SKILL.md +90 -0
  1260. package/dist/telegram/api.d.ts +75 -0
  1261. package/dist/telegram/api.d.ts.map +1 -0
  1262. package/dist/telegram/api.js +104 -0
  1263. package/dist/telegram/api.js.map +1 -0
  1264. package/dist/telegram/bridge.d.ts +85 -0
  1265. package/dist/telegram/bridge.d.ts.map +1 -0
  1266. package/dist/telegram/bridge.js +182 -0
  1267. package/dist/telegram/bridge.js.map +1 -0
  1268. package/dist/telegram/journal.d.ts +67 -0
  1269. package/dist/telegram/journal.d.ts.map +1 -0
  1270. package/dist/telegram/journal.js +119 -0
  1271. package/dist/telegram/journal.js.map +1 -0
  1272. package/dist/telegram/servidor.d.ts +15 -0
  1273. package/dist/telegram/servidor.d.ts.map +1 -0
  1274. package/dist/telegram/servidor.js +74 -0
  1275. package/dist/telegram/servidor.js.map +1 -0
  1276. package/dist/utils/frontmatter.d.ts.map +1 -1
  1277. package/dist/utils/frontmatter.js +2 -1
  1278. package/dist/utils/frontmatter.js.map +1 -1
  1279. package/dist/utils/management-http.d.ts +5 -3
  1280. package/dist/utils/management-http.d.ts.map +1 -1
  1281. package/dist/utils/management-http.js +14 -10
  1282. package/dist/utils/management-http.js.map +1 -1
  1283. package/dist/utils/shell.d.ts +11 -0
  1284. package/dist/utils/shell.d.ts.map +1 -1
  1285. package/dist/utils/shell.js +11 -0
  1286. package/dist/utils/shell.js.map +1 -1
  1287. package/dist/utils/text.d.ts +8 -0
  1288. package/dist/utils/text.d.ts.map +1 -0
  1289. package/dist/utils/text.js +9 -0
  1290. package/dist/utils/text.js.map +1 -0
  1291. package/dist/utils/version-check.d.ts.map +1 -1
  1292. package/dist/utils/version-check.js +29 -1
  1293. package/dist/utils/version-check.js.map +1 -1
  1294. package/docs/compaction.md +25 -10
  1295. package/docs/compliance.md +241 -0
  1296. package/docs/containerization.md +24 -24
  1297. package/docs/custom-provider.md +15 -12
  1298. package/docs/development.md +47 -10
  1299. package/docs/docs.json +14 -2
  1300. package/docs/environment-variables.md +20 -17
  1301. package/docs/extensions.md +62 -51
  1302. package/docs/index.md +15 -21
  1303. package/docs/json.md +10 -5
  1304. package/docs/keybindings.md +5 -5
  1305. package/docs/llama-cpp.md +9 -7
  1306. package/docs/models.md +18 -12
  1307. package/docs/packages.md +45 -45
  1308. package/docs/prompt-templates.md +5 -5
  1309. package/docs/providers.md +12 -12
  1310. package/docs/quickstart.md +39 -39
  1311. package/docs/rpc.md +21 -15
  1312. package/docs/sdk.md +38 -38
  1313. package/docs/security.md +26 -21
  1314. package/docs/session-format.md +7 -7
  1315. package/docs/sessions.md +14 -14
  1316. package/docs/settings.md +47 -22
  1317. package/docs/shell-aliases.md +2 -2
  1318. package/docs/skills.md +14 -13
  1319. package/docs/terminal-setup.md +14 -14
  1320. package/docs/termux.md +7 -7
  1321. package/docs/themes.md +11 -11
  1322. package/docs/tmux.md +4 -4
  1323. package/docs/tui.md +3 -3
  1324. package/docs/usage.md +54 -54
  1325. package/docs/windows.md +2 -2
  1326. package/examples/extensions/border-status-editor.ts +1 -1
  1327. package/examples/extensions/git-checkpoint.ts +2 -2
  1328. package/examples/extensions/notify.ts +3 -1
  1329. package/examples/extensions/subagent/README.md +1 -1
  1330. package/examples/extensions/subagent/index.ts +6 -1
  1331. package/examples/extensions/titlebar-spinner.ts +1 -1
  1332. package/examples/rpc-extension-ui.ts +1 -1
  1333. package/examples/sdk/06-extensions.ts +1 -1
  1334. package/examples/sdk/12-full-control.ts +9 -0
  1335. package/examples/sdk/README.md +1 -1
  1336. package/npm-shrinkwrap.json +35 -261
  1337. package/package.json +9 -3
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Ejecuta los hooks. Todo lo que decide vive en `contract.ts`; aquí solo se
3
+ * lanzan procesos y se recogen sus respuestas.
4
+ *
5
+ * El contrato con el proceso es deliberadamente pobre, para que escribir un
6
+ * hook sea cosa de tres líneas de shell: recibe un JSON por stdin, y contesta
7
+ * con su código de salida (0 sigue, 2 bloquea) y, si quiere afinar, un JSON por
8
+ * stdout.
9
+ */
10
+ import { spawn } from "node:child_process";
11
+ /** Un hook que escupe sin parar no puede tumbar el proceso del agente. */
12
+ const MAX_SALIDA = 64 * 1024;
13
+ const TIMEOUT_POR_DEFECTO_MS = 10_000;
14
+ /**
15
+ * Lanza un hook y espera su respuesta.
16
+ *
17
+ * Nunca lanza excepción: un hook que no existe, que peta o que se cuelga se
18
+ * traduce a un `exitCode` distinto de 0, y es `resolverDecision` quien decide
19
+ * si eso bloquea o se ignora. Si esto lanzara, un hook roto tumbaría el turno
20
+ * saltándose la política de `failClosed`.
21
+ */
22
+ export async function ejecutarHook(hook, contexto, opciones = {}) {
23
+ const entrada = JSON.stringify(contexto);
24
+ const timeoutMs = hook.timeoutMs && hook.timeoutMs > 0 ? hook.timeoutMs : TIMEOUT_POR_DEFECTO_MS;
25
+ return new Promise((resolve) => {
26
+ let hijo;
27
+ try {
28
+ hijo = spawn(hook.command, {
29
+ shell: true,
30
+ cwd: contexto.cwd,
31
+ // El evento va también por entorno: un hook de una línea puede
32
+ // ramificar con `$ADA_HOOK_EVENT` sin parsear el JSON.
33
+ env: { ...process.env, ...opciones.env, ADA_HOOK_EVENT: contexto.evento },
34
+ stdio: ["pipe", "pipe", "pipe"],
35
+ });
36
+ }
37
+ catch (error) {
38
+ resolve({ exitCode: 127, stderr: error instanceof Error ? error.message : String(error) });
39
+ return;
40
+ }
41
+ let stdout = "";
42
+ let stderr = "";
43
+ let resuelto = false;
44
+ const terminar = (respuesta) => {
45
+ if (resuelto)
46
+ return;
47
+ resuelto = true;
48
+ clearTimeout(reloj);
49
+ resolve(respuesta);
50
+ };
51
+ const reloj = setTimeout(() => {
52
+ hijo.kill("SIGKILL");
53
+ terminar({ exitCode: 124, stdout, stderr: `${stderr}\nhook agotó su tiempo (${timeoutMs} ms)` });
54
+ }, timeoutMs);
55
+ hijo.stdout?.on("data", (trozo) => {
56
+ if (stdout.length < MAX_SALIDA)
57
+ stdout += trozo.toString("utf8");
58
+ });
59
+ hijo.stderr?.on("data", (trozo) => {
60
+ if (stderr.length < MAX_SALIDA)
61
+ stderr += trozo.toString("utf8");
62
+ });
63
+ hijo.on("error", (error) => terminar({ exitCode: 127, stdout, stderr: error.message }));
64
+ hijo.on("close", (codigo) => terminar({ exitCode: codigo ?? 0, stdout, stderr }));
65
+ // Cerrar stdin siempre: sin esto, un hook que lea hasta EOF se cuelga
66
+ // hasta agotar el temporizador y todo el turno espera con él.
67
+ hijo.stdin?.on("error", () => { });
68
+ hijo.stdin?.end(entrada);
69
+ });
70
+ }
71
+ /**
72
+ * Ejecuta varios hooks en serie.
73
+ *
74
+ * En serie y no en paralelo a propósito: los hooks de `pre_tool_use` existen
75
+ * para vetar, y dos vetos concurrentes sobre el mismo fichero se pisan. El
76
+ * coste es aceptable porque cada uno tiene su propio tope de tiempo.
77
+ */
78
+ export async function ejecutarHooks(hooks, contexto, opciones = {}) {
79
+ const respuestas = [];
80
+ for (const hook of hooks) {
81
+ respuestas.push(await ejecutarHook(hook, contexto, opciones));
82
+ }
83
+ return respuestas;
84
+ }
85
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/core/hooks/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,0EAA0E;AAC1E,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC;AAC7B,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAatC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,IAAkB,EAClB,QAAsB,EACtB,QAAQ,GAAgC,EAAE,EACjB;IACzB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAEjG,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9C,IAAI,IAA8B,CAAC;QACnC,IAAI,CAAC;YACJ,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;gBAC1B,KAAK,EAAE,IAAI;gBACX,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,iEAA+D;gBAC/D,uDAAuD;gBACvD,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,CAAC,MAAM,EAAE;gBACzE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAC/B,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3F,OAAO;QACR,CAAC;QAED,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,QAAQ,GAAG,CAAC,SAAwB,EAAE,EAAE,CAAC;YAC9C,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,SAAS,CAAC,CAAC;QAAA,CACnB,CAAC;QAEF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrB,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,4BAA2B,SAAS,MAAM,EAAE,CAAC,CAAC;QAAA,CACjG,EAAE,SAAS,CAAC,CAAC;QAEd,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAA,CACjE,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAA,CACjE,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAElF,sEAAsE;QACtE,+DAA8D;QAC9D,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAAA,CACzB,CAAC,CAAC;AAAA,CACH;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,KAAqB,EACrB,QAAsB,EACtB,QAAQ,GAAgC,EAAE,EACf;IAC3B,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,UAAU,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,UAAU,CAAC;AAAA,CAClB","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"]}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Pegamento entre la sesión y los hooks.
3
+ *
4
+ * Vive aparte de `agent-session.ts` a propósito: ese fichero es de upstream y
5
+ * cada línea que le añadimos se paga en cada sincronización. Aquí cabe toda la
6
+ * lógica y allí queda una llamada.
7
+ *
8
+ * Regla de oro del enganche: **si no hay hooks configurados para este evento,
9
+ * esto no debe cambiar absolutamente nada**. `resolverDecision` devuelve el
10
+ * techo del modo cuando no hay respuestas, y aplicar ese techo aquí bloquearía
11
+ * cada herramienta en modo manual aunque el usuario no haya configurado un solo
12
+ * hook. Por eso se sale antes de consultar nada.
13
+ */
14
+ import type { EventoHook, NivelPermiso } from "./contract.ts";
15
+ import { type ContextoHook } from "./runner.ts";
16
+ interface ConfigDelMotor {
17
+ hooks?: {
18
+ enabled?: boolean;
19
+ failClosedHeadless?: boolean;
20
+ events?: Record<string, Array<{
21
+ matcher?: string;
22
+ command: string;
23
+ timeoutMs?: number;
24
+ }>>;
25
+ };
26
+ permissions?: {
27
+ level?: string;
28
+ };
29
+ goalEngine?: {
30
+ planOnly?: boolean;
31
+ };
32
+ }
33
+ /**
34
+ * El nivel de permisos efectivo.
35
+ *
36
+ * UN VALOR DESCONOCIDO NO SE LEE COMO EL POR DEFECTO. Antes, cualquier cosa que
37
+ * no fuera `manual` ni `yolo` caía a `auto` en silencio: una errata como
38
+ * `"manaul"` dejaba al usuario con más permisos de los que pidió y sin ningún
39
+ * aviso. En una configuración de permisos, «no te he entendido» y «has elegido
40
+ * el valor por defecto» son cosas distintas, y confundirlas es la familia de
41
+ * fallos que más cara nos ha salido.
42
+ *
43
+ * Se avisa por `stderr` y se cae al MÁS RESTRICTIVO de los dos —`manual`, no
44
+ * `auto`—: ante la duda, preguntar antes de escribir.
45
+ */
46
+ export declare function nivelDesdeConfig(config: ConfigDelMotor): NivelPermiso;
47
+ export interface ResultadoHooks {
48
+ /** `true` si hay que impedir la acción. */
49
+ bloquea: boolean;
50
+ motivo: string;
51
+ }
52
+ /**
53
+ * Dispara los hooks de un evento y dice si hay que parar.
54
+ *
55
+ * `ask` se trata como bloqueo: aquí no hay a quién preguntar —el enganche corre
56
+ * dentro de la llamada a la herramienta, no en el bucle de la interfaz—, y ante
57
+ * la duda se cierra. El motivo lo explica al usuario, que puede reintentar tras
58
+ * ajustar el hook o el modo.
59
+ */
60
+ export declare function dispararHooks(config: ConfigDelMotor, evento: EventoHook, objetivo: string, contexto: Omit<ContextoHook, "evento">): Promise<ResultadoHooks>;
61
+ export {};
62
+ //# sourceMappingURL=session-hooks.d.ts.map
@@ -0,0 +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"]}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Pegamento entre la sesión y los hooks.
3
+ *
4
+ * Vive aparte de `agent-session.ts` a propósito: ese fichero es de upstream y
5
+ * cada línea que le añadimos se paga en cada sincronización. Aquí cabe toda la
6
+ * lógica y allí queda una llamada.
7
+ *
8
+ * Regla de oro del enganche: **si no hay hooks configurados para este evento,
9
+ * esto no debe cambiar absolutamente nada**. `resolverDecision` devuelve el
10
+ * techo del modo cuando no hay respuestas, y aplicar ese techo aquí bloquearía
11
+ * cada herramienta en modo manual aunque el usuario no haya configurado un solo
12
+ * hook. Por eso se sale antes de consultar nada.
13
+ */
14
+ import { planificarHooks, resolverDecision } from "./contract.js";
15
+ import { ejecutarHooks } from "./runner.js";
16
+ /** Los cuatro que existen de verdad. Si esta lista crece, crece el tipo. */
17
+ const NIVELES = ["plan", "manual", "auto", "yolo"];
18
+ /**
19
+ * Nombres que la gente escribe esperando otra cosa, con su equivalente real.
20
+ *
21
+ * `ask` y `full` estaban en nuestro README y NO existen en el código. Un
22
+ * comprador que ponía `level: "full"` esperando plena autonomía se quedaba en
23
+ * `auto` —que aún pregunta en `bash`— y uno que ponía `"ask"` esperando
24
+ * confirmación por acción también. Se traducen en vez de rechazarlos porque el
25
+ * README los prometió: romperle la configuración a quien nos creyó sería
26
+ * cobrarle nuestro error.
27
+ */
28
+ const SINONIMOS = { ask: "manual", full: "yolo" };
29
+ /**
30
+ * El nivel de permisos efectivo.
31
+ *
32
+ * UN VALOR DESCONOCIDO NO SE LEE COMO EL POR DEFECTO. Antes, cualquier cosa que
33
+ * no fuera `manual` ni `yolo` caía a `auto` en silencio: una errata como
34
+ * `"manaul"` dejaba al usuario con más permisos de los que pidió y sin ningún
35
+ * aviso. En una configuración de permisos, «no te he entendido» y «has elegido
36
+ * el valor por defecto» son cosas distintas, y confundirlas es la familia de
37
+ * fallos que más cara nos ha salido.
38
+ *
39
+ * Se avisa por `stderr` y se cae al MÁS RESTRICTIVO de los dos —`manual`, no
40
+ * `auto`—: ante la duda, preguntar antes de escribir.
41
+ */
42
+ export function nivelDesdeConfig(config) {
43
+ if (config.goalEngine?.planOnly === true)
44
+ return "plan";
45
+ const nivel = config.permissions?.level;
46
+ if (nivel === undefined || nivel === "")
47
+ return "auto";
48
+ if (NIVELES.includes(nivel))
49
+ return nivel;
50
+ const sinonimo = SINONIMOS[nivel];
51
+ if (sinonimo)
52
+ return sinonimo;
53
+ console.error(`Ada: "permissions.level" vale "${nivel}", que no es ninguno de ${NIVELES.join(", ")}. ` +
54
+ 'Se usa "manual" (pregunta antes de cada escritura) por ser el más restrictivo: un valor que no ' +
55
+ "se entiende no puede dar más permisos de los que pediste.");
56
+ return "manual";
57
+ }
58
+ const SIN_HOOKS = { bloquea: false, motivo: "" };
59
+ /**
60
+ * Dispara los hooks de un evento y dice si hay que parar.
61
+ *
62
+ * `ask` se trata como bloqueo: aquí no hay a quién preguntar —el enganche corre
63
+ * dentro de la llamada a la herramienta, no en el bucle de la interfaz—, y ante
64
+ * la duda se cierra. El motivo lo explica al usuario, que puede reintentar tras
65
+ * ajustar el hook o el modo.
66
+ */
67
+ export async function dispararHooks(config, evento, objetivo, contexto) {
68
+ const hooks = planificarHooks(config.hooks, evento, objetivo);
69
+ // Salida temprana: sin hooks configurados, ni se mira el modo. Ver cabecera.
70
+ if (hooks.length === 0)
71
+ return SIN_HOOKS;
72
+ const respuestas = await ejecutarHooks(hooks, { ...contexto, evento });
73
+ const { decision, motivos } = resolverDecision(respuestas, nivelDesdeConfig(config), config.hooks?.failClosedHeadless ?? true);
74
+ if (decision === "allow")
75
+ return SIN_HOOKS;
76
+ const explicacion = motivos.filter(Boolean).join("; ");
77
+ return {
78
+ bloquea: true,
79
+ motivo: decision === "deny"
80
+ ? `Bloqueado por un hook${explicacion ? `: ${explicacion}` : ""}`
81
+ : `Un hook pide aprobación explícita${explicacion ? `: ${explicacion}` : ""}`,
82
+ };
83
+ }
84
+ //# sourceMappingURL=session-hooks.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Importar sesiones de Claude Code y de Codex.
3
+ *
4
+ * Es coste de cambio. Quien lleva meses trabajando con otra herramienta tiene
5
+ * ahí su historial: lo que decidió, por qué, y las conversaciones que busca
6
+ * cuando vuelve a un proyecto. Pedirle que lo deje atrás es pedirle que empiece
7
+ * de cero, y eso pesa más que cualquier comparativa de capacidades.
8
+ *
9
+ * QUÉ SE IMPORTA Y QUÉ NO, dicho antes de que alguien lo descubra por su
10
+ * cuenta: se importa la CONVERSACIÓN —lo que se dijo, en orden y con su
11
+ * estructura de padres— y no el ESTADO. Las llamadas a herramientas y sus
12
+ * resultados se aplanan a texto legible, porque no se pueden reproducir: los
13
+ * ficheros han cambiado, los procesos murieron y los identificadores de
14
+ * herramienta no significan nada aquí. Una sesión importada sirve para leerla,
15
+ * buscarla y continuarla con contexto; no para rebobinarla.
16
+ *
17
+ * Fingir lo contrario sería peor que no importar: el usuario haría `undo` sobre
18
+ * una sesión importada y no pasaría nada.
19
+ */
20
+ /** Una entrada del fichero de sesión de Ada. */
21
+ export interface EntradaAda {
22
+ type: "session" | "message";
23
+ id: string;
24
+ parentId?: string;
25
+ timestamp: number;
26
+ cwd?: string;
27
+ version?: number;
28
+ message?: {
29
+ role: string;
30
+ content: Array<{
31
+ type: string;
32
+ text: string;
33
+ }>;
34
+ timestamp: number;
35
+ };
36
+ }
37
+ export type Formato = "claude-code" | "codex";
38
+ /** Resumen de una sesión importable, para poder elegir sin abrirla. */
39
+ export interface ResumenSesion {
40
+ formato: Formato;
41
+ ruta: string;
42
+ cwd: string;
43
+ mensajes: number;
44
+ primerPrompt: string;
45
+ cuando: number;
46
+ }
47
+ /**
48
+ * Claude Code: un JSONL con entradas `user` y `assistant` encadenadas por
49
+ * `parentUuid`. El resto de tipos (`attachment`, `queue-operation`, `mode`…) es
50
+ * estado interno suyo y no tiene sentido aquí.
51
+ */
52
+ export declare function convertirClaudeCode(lineas: string[], idSesion: string): EntradaAda[];
53
+ /**
54
+ * Codex: un «rollout» con `session_meta` y `response_item`.
55
+ *
56
+ * No trae cadena de padres, así que se encadena por orden de aparición, que es
57
+ * como se leyó la conversación. Los mensajes de rol `developer` son la
58
+ * inyección de sistema de su harness y no forman parte de lo que dijo nadie.
59
+ */
60
+ export declare function convertirCodex(lineas: string[], idSesion: string): EntradaAda[];
61
+ /** Reconoce el formato por la forma de sus líneas, no por la extensión. */
62
+ export declare function detectarFormato(lineas: string[]): Formato | null;
63
+ export declare function convertir(lineas: string[], idSesion: string): {
64
+ formato: Formato;
65
+ entradas: EntradaAda[];
66
+ } | null;
67
+ /** Lo que hace falta para elegir una sesión de una lista. */
68
+ export declare function resumir(entradas: EntradaAda[], formato: Formato, ruta: string): ResumenSesion;
69
+ //# sourceMappingURL=formatos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatos.d.ts","sourceRoot":"","sources":["../../../src/core/importar/formatos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,iDAAgD;AAChD,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9F;AAED,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAE9C,wEAAuE;AACvE,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CACf;AAkED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CA8BpF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CAmC/E;AAED,6EAA2E;AAC3E,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAWhE;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAE,GAAG,IAAI,CAKjH;AAwBD,8DAA6D;AAC7D,wBAAgB,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAa7F","sourcesContent":["/**\n * Importar sesiones de Claude Code y de Codex.\n *\n * Es coste de cambio. Quien lleva meses trabajando con otra herramienta tiene\n * ahí su historial: lo que decidió, por qué, y las conversaciones que busca\n * cuando vuelve a un proyecto. Pedirle que lo deje atrás es pedirle que empiece\n * de cero, y eso pesa más que cualquier comparativa de capacidades.\n *\n * QUÉ SE IMPORTA Y QUÉ NO, dicho antes de que alguien lo descubra por su\n * cuenta: se importa la CONVERSACIÓN —lo que se dijo, en orden y con su\n * estructura de padres— y no el ESTADO. Las llamadas a herramientas y sus\n * resultados se aplanan a texto legible, porque no se pueden reproducir: los\n * ficheros han cambiado, los procesos murieron y los identificadores de\n * herramienta no significan nada aquí. Una sesión importada sirve para leerla,\n * buscarla y continuarla con contexto; no para rebobinarla.\n *\n * Fingir lo contrario sería peor que no importar: el usuario haría `undo` sobre\n * una sesión importada y no pasaría nada.\n */\n\n/** Una entrada del fichero de sesión de Ada. */\nexport interface EntradaAda {\n\ttype: \"session\" | \"message\";\n\tid: string;\n\tparentId?: string;\n\ttimestamp: number;\n\tcwd?: string;\n\tversion?: number;\n\tmessage?: { role: string; content: Array<{ type: string; text: string }>; timestamp: number };\n}\n\nexport type Formato = \"claude-code\" | \"codex\";\n\n/** Resumen de una sesión importable, para poder elegir sin abrirla. */\nexport interface ResumenSesion {\n\tformato: Formato;\n\truta: string;\n\tcwd: string;\n\tmensajes: number;\n\tprimerPrompt: string;\n\tcuando: number;\n}\n\nfunction aMilisegundos(valor: unknown): number {\n\tif (typeof valor === \"number\") return valor;\n\tif (typeof valor === \"string\") {\n\t\tconst t = Date.parse(valor);\n\t\tif (!Number.isNaN(t)) return t;\n\t}\n\treturn 0;\n}\n\n/**\n * Aplana el contenido de un mensaje a bloques de texto.\n *\n * Las llamadas a herramienta se convierten en una línea legible en vez de\n * desaparecer: leer «⚙ bash: npm test» explica el hilo de la conversación,\n * mientras que quitarlo deja saltos que no se entienden.\n */\nfunction aTexto(contenido: unknown): Array<{ type: string; text: string }> {\n\tif (typeof contenido === \"string\") return contenido.trim() ? [{ type: \"text\", text: contenido }] : [];\n\tif (!Array.isArray(contenido)) return [];\n\tconst bloques: Array<{ type: string; text: string }> = [];\n\tfor (const bruto of contenido) {\n\t\tif (typeof bruto === \"string\") {\n\t\t\tif (bruto.trim()) bloques.push({ type: \"text\", text: bruto });\n\t\t\tcontinue;\n\t\t}\n\t\tif (!bruto || typeof bruto !== \"object\") continue;\n\t\tconst b = bruto as Record<string, unknown>;\n\t\tswitch (b.type) {\n\t\t\tcase \"text\":\n\t\t\tcase \"input_text\":\n\t\t\tcase \"output_text\":\n\t\t\t\tif (typeof b.text === \"string\" && b.text.trim()) bloques.push({ type: \"text\", text: b.text });\n\t\t\t\tbreak;\n\t\t\tcase \"thinking\":\n\t\t\tcase \"reasoning\":\n\t\t\t\tif (typeof b.thinking === \"string\" && b.thinking.trim()) bloques.push({ type: \"text\", text: b.thinking });\n\t\t\t\tbreak;\n\t\t\tcase \"tool_use\":\n\t\t\tcase \"function_call\":\n\t\t\t\tbloques.push({\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: `⚙ ${String(b.name ?? \"herramienta\")}: ${JSON.stringify(b.input ?? b.arguments ?? {}).slice(0, 400)}`,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"tool_result\":\n\t\t\tcase \"function_call_output\": {\n\t\t\t\tconst salida = aTexto(b.content ?? b.output)\n\t\t\t\t\t.map((x) => x.text)\n\t\t\t\t\t.join(\"\\n\");\n\t\t\t\tif (salida.trim()) bloques.push({ type: \"text\", text: `↩ ${salida.slice(0, 800)}` });\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\treturn bloques;\n}\n\n/** La cabecera que abre un fichero de sesión de Ada. */\nfunction cabecera(id: string, cwd: string, cuando: number): EntradaAda {\n\treturn { type: \"session\", id, cwd, timestamp: cuando, version: 1 };\n}\n\n/**\n * Claude Code: un JSONL con entradas `user` y `assistant` encadenadas por\n * `parentUuid`. El resto de tipos (`attachment`, `queue-operation`, `mode`…) es\n * estado interno suyo y no tiene sentido aquí.\n */\nexport function convertirClaudeCode(lineas: string[], idSesion: string): EntradaAda[] {\n\tconst salida: EntradaAda[] = [];\n\tlet cwd = \"\";\n\tlet primero = 0;\n\tfor (const linea of lineas) {\n\t\tlet d: Record<string, unknown>;\n\t\ttry {\n\t\t\td = JSON.parse(linea) as Record<string, unknown>;\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\t\tif (d.type !== \"user\" && d.type !== \"assistant\") continue;\n\t\tconst mensaje = d.message as { role?: string; content?: unknown } | undefined;\n\t\tif (!mensaje) continue;\n\t\tconst bloques = aTexto(mensaje.content);\n\t\tif (bloques.length === 0) continue;\n\t\tconst cuando = aMilisegundos(d.timestamp);\n\t\tif (!cwd && typeof d.cwd === \"string\") cwd = d.cwd;\n\t\tif (!primero) primero = cuando;\n\t\tsalida.push({\n\t\t\ttype: \"message\",\n\t\t\tid: String(d.uuid ?? `${salida.length}`),\n\t\t\t// Se conserva la cadena de padres del origen: es lo que permite que\n\t\t\t// las ramas de la conversación sigan siendo ramas al importarlas.\n\t\t\t...(typeof d.parentUuid === \"string\" ? { parentId: d.parentUuid } : {}),\n\t\t\ttimestamp: cuando,\n\t\t\tmessage: { role: String(mensaje.role ?? d.type), content: bloques, timestamp: cuando },\n\t\t});\n\t}\n\treturn salida.length === 0 ? [] : [cabecera(idSesion, cwd, primero), ...salida];\n}\n\n/**\n * Codex: un «rollout» con `session_meta` y `response_item`.\n *\n * No trae cadena de padres, así que se encadena por orden de aparición, que es\n * como se leyó la conversación. Los mensajes de rol `developer` son la\n * inyección de sistema de su harness y no forman parte de lo que dijo nadie.\n */\nexport function convertirCodex(lineas: string[], idSesion: string): EntradaAda[] {\n\tconst salida: EntradaAda[] = [];\n\tlet cwd = \"\";\n\tlet primero = 0;\n\tlet anterior: string | undefined;\n\tfor (const linea of lineas) {\n\t\tlet d: Record<string, unknown>;\n\t\ttry {\n\t\t\td = JSON.parse(linea) as Record<string, unknown>;\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\t\tconst carga = d.payload as Record<string, unknown> | undefined;\n\t\tif (d.type === \"session_meta\" && carga && typeof carga.cwd === \"string\") {\n\t\t\tcwd = carga.cwd;\n\t\t\tcontinue;\n\t\t}\n\t\tif (d.type !== \"response_item\" || !carga || carga.type !== \"message\") continue;\n\t\tconst rol = String(carga.role ?? \"\");\n\t\tif (rol === \"developer\" || rol === \"system\") continue;\n\t\tconst bloques = aTexto(carga.content);\n\t\tif (bloques.length === 0) continue;\n\t\tconst cuando = aMilisegundos(d.timestamp);\n\t\tif (!primero) primero = cuando;\n\t\tconst id = String(carga.id ?? `${salida.length}`);\n\t\tsalida.push({\n\t\t\ttype: \"message\",\n\t\t\tid,\n\t\t\t...(anterior ? { parentId: anterior } : {}),\n\t\t\ttimestamp: cuando,\n\t\t\tmessage: { role: rol, content: bloques, timestamp: cuando },\n\t\t});\n\t\tanterior = id;\n\t}\n\treturn salida.length === 0 ? [] : [cabecera(idSesion, cwd, primero), ...salida];\n}\n\n/** Reconoce el formato por la forma de sus líneas, no por la extensión. */\nexport function detectarFormato(lineas: string[]): Formato | null {\n\tfor (const linea of lineas.slice(0, 40)) {\n\t\ttry {\n\t\t\tconst d = JSON.parse(linea) as Record<string, unknown>;\n\t\t\tif (d.type === \"session_meta\" || (d.type === \"response_item\" && d.payload)) return \"codex\";\n\t\t\tif ((d.type === \"user\" || d.type === \"assistant\") && d.message && d.sessionId) return \"claude-code\";\n\t\t} catch {\n\t\t\t// Una línea ilegible no dice nada del formato del fichero.\n\t\t}\n\t}\n\treturn null;\n}\n\nexport function convertir(lineas: string[], idSesion: string): { formato: Formato; entradas: EntradaAda[] } | null {\n\tconst formato = detectarFormato(lineas);\n\tif (!formato) return null;\n\tconst entradas = formato === \"codex\" ? convertirCodex(lineas, idSesion) : convertirClaudeCode(lineas, idSesion);\n\treturn entradas.length === 0 ? null : { formato, entradas };\n}\n\n/**\n * ¿Este mensaje de usuario lo escribió una persona, o lo inyectó el harness?\n *\n * Codex mete su `<environment_context>` y el AGENTS.md del proyecto como\n * mensajes de rol `user`, así que el \"primer prompt\" de media sesión importada\n * salía siendo un volcado de configuración. Se importan igual —formaban parte\n * del contexto— pero no sirven para que alguien reconozca su sesión en una\n * lista, que es para lo que existe el resumen.\n *\n * Se descubrió convirtiendo ficheros reales, no las muestras.\n */\nfunction pareceInyeccion(texto: string): boolean {\n\tconst inicio = texto.trimStart().slice(0, 120);\n\treturn (\n\t\tinicio.startsWith(\"<environment_context>\") ||\n\t\tinicio.startsWith(\"<INSTRUCTIONS>\") ||\n\t\tinicio.startsWith(\"# AGENTS.md\") ||\n\t\tinicio.startsWith(\"<skills_instructions>\") ||\n\t\tinicio.startsWith(\"<system-reminder>\")\n\t);\n}\n\n/** Lo que hace falta para elegir una sesión de una lista. */\nexport function resumir(entradas: EntradaAda[], formato: Formato, ruta: string): ResumenSesion {\n\tconst mensajes = entradas.filter((e) => e.type === \"message\");\n\tconst primerUsuario = mensajes.find(\n\t\t(e) => e.message?.role === \"user\" && !pareceInyeccion(e.message.content[0]?.text ?? \"\"),\n\t);\n\treturn {\n\t\tformato,\n\t\truta,\n\t\tcwd: entradas[0]?.cwd ?? \"\",\n\t\tmensajes: mensajes.length,\n\t\tprimerPrompt: (primerUsuario?.message?.content[0]?.text ?? \"\").replace(/\\s+/g, \" \").slice(0, 80),\n\t\tcuando: entradas[0]?.timestamp ?? 0,\n\t};\n}\n"]}
@@ -0,0 +1,235 @@
1
+ /**
2
+ * Importar sesiones de Claude Code y de Codex.
3
+ *
4
+ * Es coste de cambio. Quien lleva meses trabajando con otra herramienta tiene
5
+ * ahí su historial: lo que decidió, por qué, y las conversaciones que busca
6
+ * cuando vuelve a un proyecto. Pedirle que lo deje atrás es pedirle que empiece
7
+ * de cero, y eso pesa más que cualquier comparativa de capacidades.
8
+ *
9
+ * QUÉ SE IMPORTA Y QUÉ NO, dicho antes de que alguien lo descubra por su
10
+ * cuenta: se importa la CONVERSACIÓN —lo que se dijo, en orden y con su
11
+ * estructura de padres— y no el ESTADO. Las llamadas a herramientas y sus
12
+ * resultados se aplanan a texto legible, porque no se pueden reproducir: los
13
+ * ficheros han cambiado, los procesos murieron y los identificadores de
14
+ * herramienta no significan nada aquí. Una sesión importada sirve para leerla,
15
+ * buscarla y continuarla con contexto; no para rebobinarla.
16
+ *
17
+ * Fingir lo contrario sería peor que no importar: el usuario haría `undo` sobre
18
+ * una sesión importada y no pasaría nada.
19
+ */
20
+ function aMilisegundos(valor) {
21
+ if (typeof valor === "number")
22
+ return valor;
23
+ if (typeof valor === "string") {
24
+ const t = Date.parse(valor);
25
+ if (!Number.isNaN(t))
26
+ return t;
27
+ }
28
+ return 0;
29
+ }
30
+ /**
31
+ * Aplana el contenido de un mensaje a bloques de texto.
32
+ *
33
+ * Las llamadas a herramienta se convierten en una línea legible en vez de
34
+ * desaparecer: leer «⚙ bash: npm test» explica el hilo de la conversación,
35
+ * mientras que quitarlo deja saltos que no se entienden.
36
+ */
37
+ function aTexto(contenido) {
38
+ if (typeof contenido === "string")
39
+ return contenido.trim() ? [{ type: "text", text: contenido }] : [];
40
+ if (!Array.isArray(contenido))
41
+ return [];
42
+ const bloques = [];
43
+ for (const bruto of contenido) {
44
+ if (typeof bruto === "string") {
45
+ if (bruto.trim())
46
+ bloques.push({ type: "text", text: bruto });
47
+ continue;
48
+ }
49
+ if (!bruto || typeof bruto !== "object")
50
+ continue;
51
+ const b = bruto;
52
+ switch (b.type) {
53
+ case "text":
54
+ case "input_text":
55
+ case "output_text":
56
+ if (typeof b.text === "string" && b.text.trim())
57
+ bloques.push({ type: "text", text: b.text });
58
+ break;
59
+ case "thinking":
60
+ case "reasoning":
61
+ if (typeof b.thinking === "string" && b.thinking.trim())
62
+ bloques.push({ type: "text", text: b.thinking });
63
+ break;
64
+ case "tool_use":
65
+ case "function_call":
66
+ bloques.push({
67
+ type: "text",
68
+ text: `⚙ ${String(b.name ?? "herramienta")}: ${JSON.stringify(b.input ?? b.arguments ?? {}).slice(0, 400)}`,
69
+ });
70
+ break;
71
+ case "tool_result":
72
+ case "function_call_output": {
73
+ const salida = aTexto(b.content ?? b.output)
74
+ .map((x) => x.text)
75
+ .join("\n");
76
+ if (salida.trim())
77
+ bloques.push({ type: "text", text: `↩ ${salida.slice(0, 800)}` });
78
+ break;
79
+ }
80
+ default:
81
+ break;
82
+ }
83
+ }
84
+ return bloques;
85
+ }
86
+ /** La cabecera que abre un fichero de sesión de Ada. */
87
+ function cabecera(id, cwd, cuando) {
88
+ return { type: "session", id, cwd, timestamp: cuando, version: 1 };
89
+ }
90
+ /**
91
+ * Claude Code: un JSONL con entradas `user` y `assistant` encadenadas por
92
+ * `parentUuid`. El resto de tipos (`attachment`, `queue-operation`, `mode`…) es
93
+ * estado interno suyo y no tiene sentido aquí.
94
+ */
95
+ export function convertirClaudeCode(lineas, idSesion) {
96
+ const salida = [];
97
+ let cwd = "";
98
+ let primero = 0;
99
+ for (const linea of lineas) {
100
+ let d;
101
+ try {
102
+ d = JSON.parse(linea);
103
+ }
104
+ catch {
105
+ continue;
106
+ }
107
+ if (d.type !== "user" && d.type !== "assistant")
108
+ continue;
109
+ const mensaje = d.message;
110
+ if (!mensaje)
111
+ continue;
112
+ const bloques = aTexto(mensaje.content);
113
+ if (bloques.length === 0)
114
+ continue;
115
+ const cuando = aMilisegundos(d.timestamp);
116
+ if (!cwd && typeof d.cwd === "string")
117
+ cwd = d.cwd;
118
+ if (!primero)
119
+ primero = cuando;
120
+ salida.push({
121
+ type: "message",
122
+ id: String(d.uuid ?? `${salida.length}`),
123
+ // Se conserva la cadena de padres del origen: es lo que permite que
124
+ // las ramas de la conversación sigan siendo ramas al importarlas.
125
+ ...(typeof d.parentUuid === "string" ? { parentId: d.parentUuid } : {}),
126
+ timestamp: cuando,
127
+ message: { role: String(mensaje.role ?? d.type), content: bloques, timestamp: cuando },
128
+ });
129
+ }
130
+ return salida.length === 0 ? [] : [cabecera(idSesion, cwd, primero), ...salida];
131
+ }
132
+ /**
133
+ * Codex: un «rollout» con `session_meta` y `response_item`.
134
+ *
135
+ * No trae cadena de padres, así que se encadena por orden de aparición, que es
136
+ * como se leyó la conversación. Los mensajes de rol `developer` son la
137
+ * inyección de sistema de su harness y no forman parte de lo que dijo nadie.
138
+ */
139
+ export function convertirCodex(lineas, idSesion) {
140
+ const salida = [];
141
+ let cwd = "";
142
+ let primero = 0;
143
+ let anterior;
144
+ for (const linea of lineas) {
145
+ let d;
146
+ try {
147
+ d = JSON.parse(linea);
148
+ }
149
+ catch {
150
+ continue;
151
+ }
152
+ const carga = d.payload;
153
+ if (d.type === "session_meta" && carga && typeof carga.cwd === "string") {
154
+ cwd = carga.cwd;
155
+ continue;
156
+ }
157
+ if (d.type !== "response_item" || !carga || carga.type !== "message")
158
+ continue;
159
+ const rol = String(carga.role ?? "");
160
+ if (rol === "developer" || rol === "system")
161
+ continue;
162
+ const bloques = aTexto(carga.content);
163
+ if (bloques.length === 0)
164
+ continue;
165
+ const cuando = aMilisegundos(d.timestamp);
166
+ if (!primero)
167
+ primero = cuando;
168
+ const id = String(carga.id ?? `${salida.length}`);
169
+ salida.push({
170
+ type: "message",
171
+ id,
172
+ ...(anterior ? { parentId: anterior } : {}),
173
+ timestamp: cuando,
174
+ message: { role: rol, content: bloques, timestamp: cuando },
175
+ });
176
+ anterior = id;
177
+ }
178
+ return salida.length === 0 ? [] : [cabecera(idSesion, cwd, primero), ...salida];
179
+ }
180
+ /** Reconoce el formato por la forma de sus líneas, no por la extensión. */
181
+ export function detectarFormato(lineas) {
182
+ for (const linea of lineas.slice(0, 40)) {
183
+ try {
184
+ const d = JSON.parse(linea);
185
+ if (d.type === "session_meta" || (d.type === "response_item" && d.payload))
186
+ return "codex";
187
+ if ((d.type === "user" || d.type === "assistant") && d.message && d.sessionId)
188
+ return "claude-code";
189
+ }
190
+ catch {
191
+ // Una línea ilegible no dice nada del formato del fichero.
192
+ }
193
+ }
194
+ return null;
195
+ }
196
+ export function convertir(lineas, idSesion) {
197
+ const formato = detectarFormato(lineas);
198
+ if (!formato)
199
+ return null;
200
+ const entradas = formato === "codex" ? convertirCodex(lineas, idSesion) : convertirClaudeCode(lineas, idSesion);
201
+ return entradas.length === 0 ? null : { formato, entradas };
202
+ }
203
+ /**
204
+ * ¿Este mensaje de usuario lo escribió una persona, o lo inyectó el harness?
205
+ *
206
+ * Codex mete su `<environment_context>` y el AGENTS.md del proyecto como
207
+ * mensajes de rol `user`, así que el "primer prompt" de media sesión importada
208
+ * salía siendo un volcado de configuración. Se importan igual —formaban parte
209
+ * del contexto— pero no sirven para que alguien reconozca su sesión en una
210
+ * lista, que es para lo que existe el resumen.
211
+ *
212
+ * Se descubrió convirtiendo ficheros reales, no las muestras.
213
+ */
214
+ function pareceInyeccion(texto) {
215
+ const inicio = texto.trimStart().slice(0, 120);
216
+ return (inicio.startsWith("<environment_context>") ||
217
+ inicio.startsWith("<INSTRUCTIONS>") ||
218
+ inicio.startsWith("# AGENTS.md") ||
219
+ inicio.startsWith("<skills_instructions>") ||
220
+ inicio.startsWith("<system-reminder>"));
221
+ }
222
+ /** Lo que hace falta para elegir una sesión de una lista. */
223
+ export function resumir(entradas, formato, ruta) {
224
+ const mensajes = entradas.filter((e) => e.type === "message");
225
+ const primerUsuario = mensajes.find((e) => e.message?.role === "user" && !pareceInyeccion(e.message.content[0]?.text ?? ""));
226
+ return {
227
+ formato,
228
+ ruta,
229
+ cwd: entradas[0]?.cwd ?? "",
230
+ mensajes: mensajes.length,
231
+ primerPrompt: (primerUsuario?.message?.content[0]?.text ?? "").replace(/\s+/g, " ").slice(0, 80),
232
+ cuando: entradas[0]?.timestamp ?? 0,
233
+ };
234
+ }
235
+ //# sourceMappingURL=formatos.js.map