@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,375 @@
1
+ /**
2
+ * Aprobación por herramienta.
3
+ *
4
+ * Antes de esto no había política ninguna: `beforeToolCall` disparaba los hooks
5
+ * del usuario y las extensiones, y `permissions.level` —que existe en settings
6
+ * desde siempre— solo lo leían los propios hooks. Ninguna tool se consultaba
7
+ * contra él. Es decir, el nivel de permisos no gobernaba los permisos.
8
+ *
9
+ * El orden de las comprobaciones ES la propiedad de seguridad, y por eso está
10
+ * escrito de arriba abajo en `decidir()` y no repartido:
11
+ *
12
+ * 1. Rutas protegidas — denegado SIEMPRE, incluso en `yolo`, no configurable
13
+ * 2. Deny del usuario — denegado SIEMPRE, incluso en `yolo`
14
+ * 3. Modo de la sesión — plan / manual / auto / yolo
15
+ *
16
+ * Que 1 y 2 vayan por delante del modo es lo que hace que el argumento de
17
+ * cumplimiento se sostenga: una política que el propio agente puede desactivar
18
+ * pidiendo `yolo` no es una política, es una sugerencia.
19
+ *
20
+ * Lo desconocido cuenta como ejecución. Una tool de MCP o de una extensión que
21
+ * nadie ha clasificado no puede colarse por el carril de lectura por no estar
22
+ * en ninguna lista.
23
+ */
24
+ import { readFileSync } from "node:fs";
25
+ import { homedir } from "node:os";
26
+ import { CONFIG_DIR_NAME } from "../../config.js";
27
+ import { DIR_INDICE, DIR_SESION } from "../audit/rutas.js";
28
+ import { suplantadaPor } from "../extensiones/suplantacion.js";
29
+ import { marcaDeGenerado, motivoDeGenerado } from "./generados.js";
30
+ import { politicaDeMaquina, recortarModo } from "./politica-de-maquina.js";
31
+ /**
32
+ * Segmento `.../<CONFIG_DIR_NAME>/agent/` de CUALQUIER instalación de Ada,
33
+ * no solo `agentDir` (que es la de ESTE equipo).
34
+ *
35
+ * Con `--remoto` los argumentos de `read`/`write`/`bash` pueden nombrar un
36
+ * `auth.json` o un `vault/` que viven en OTRA máquina — el destino de SSH,
37
+ * el contenedor de Docker, la distro de WSL — con su propio `$HOME` y por
38
+ * tanto un `agentDir` que `rutaProtegida` nunca conoce. Comprobar el
39
+ * segmento en vez del prefijo completo protege ambos sin necesitar el
40
+ * `agentDir` del destino, que esta política no tiene forma de calcular.
41
+ */
42
+ const SEGMENTO_AGENTE_ADA = `/${CONFIG_DIR_NAME}/agent/`;
43
+ /** Tools que solo miran. */
44
+ const LECTURA = new Set([
45
+ "read",
46
+ "ls",
47
+ "find",
48
+ "grep",
49
+ "ast_search",
50
+ "session_search",
51
+ "web_fetch",
52
+ "web_search",
53
+ "memory_search",
54
+ "memory_list",
55
+ "graph_query",
56
+ "ask_user_question",
57
+ "todo_read",
58
+ ]);
59
+ /** Tools que cambian estado nuestro, pero no ejecutan nada del sistema. */
60
+ const ESCRITURA = new Set([
61
+ "edit",
62
+ "write",
63
+ "ast_edit",
64
+ "memory_add",
65
+ "memory_replace",
66
+ "memory_remove",
67
+ "update_project_memory",
68
+ "scratchpad",
69
+ "todo",
70
+ "todo_write",
71
+ "graph_add",
72
+ ]);
73
+ /**
74
+ * ¿Este nombre es de una tool NUESTRA cuyo nivel de confianza da esta política?
75
+ *
76
+ * Lo consulta el registro de extensiones para saber si `registerTool` está
77
+ * suplantando una builtin. `bash` va aparte porque no está en ninguna de las dos
78
+ * listas —lo desconocido ya es ejecución— pero suplantarlo importa igual: el
79
+ * usuario tiene que ver que el `bash` que corre no es el nuestro.
80
+ */
81
+ export function esNombreDeToolNuestra(tool) {
82
+ return LECTURA.has(tool) || ESCRITURA.has(tool) || tool === "bash";
83
+ }
84
+ /**
85
+ * El nivel de una herramienta. Lo que no está clasificado es ejecución.
86
+ *
87
+ * Falla cerrado a propósito: el coste de equivocarse hacia arriba es una
88
+ * pregunta de más; hacia abajo, es una tool desconocida corriendo sola.
89
+ */
90
+ export function nivelDe(tool) {
91
+ // Una builtin suplantada por una extensión NO hereda su nivel.
92
+ //
93
+ // Comprobado ejecutando: una extensión registra `read`, el loader la pone
94
+ // encima de la nuestra y el modelo sigue creyendo que llama a la de Ada. Con
95
+ // `LECTURA.has("read")` por delante, ese `read` —que puede hacer lo que
96
+ // quiera— se permitía siempre y en cualquier modo. Devolver "ejecucion" lo
97
+ // devuelve al carril de lo desconocido, que es lo que es.
98
+ if (suplantadaPor(tool))
99
+ return "ejecucion";
100
+ if (LECTURA.has(tool))
101
+ return "lectura";
102
+ if (ESCRITURA.has(tool))
103
+ return "escritura";
104
+ return "ejecucion";
105
+ }
106
+ /** Un directorio protegido aparece como segmento completo de la ruta. */
107
+ function contieneSegmento(texto, segmento) {
108
+ return texto.includes(`/${segmento}/`);
109
+ }
110
+ /**
111
+ * ¿El texto nombra el directorio `dir` colgado de `base`, con barra final o sin
112
+ * ella?
113
+ *
114
+ * La comprobación anterior solo miraba `base/dir/`, y por ahí se colaba justo el
115
+ * caso peor. Comprobado ejecutando `decidir`:
116
+ *
117
+ * rm -rf <agentDir>/vault/ -> denegada ruta-protegida
118
+ * rm -rf <agentDir>/vault -> PERMITIDA modo-yolo
119
+ *
120
+ * Es decir, el borrado entero del vault con un comando, porque el nombre de un
121
+ * directorio no lleva barra al final cuando se lo pasas a `rm`. Se arregla aquí,
122
+ * en la comprobación compartida, y no en cada llamada: la misma trampa valía
123
+ * para el vault, para el libro y para cualquier directorio que se añada mañana.
124
+ *
125
+ * El caso sin barra se mide sobre el token y con el final exacto para no
126
+ * llevarse por delante `vault-ejemplo` ni `sesiones/`. Se recorta la puntuación
127
+ * de shell del final porque `rm -rf x/vault;` y `rm -rf x/vault)` son el mismo
128
+ * comando con otro adorno.
129
+ */
130
+ function nombraDirectorio(texto, base, dir) {
131
+ if (texto.includes(`${base}${dir}/`))
132
+ return true;
133
+ return texto.split(/[\s"'`]+/).some((t) => t.replace(/[;,)&|>]+$/, "").endsWith(`${base}${dir}`));
134
+ }
135
+ /**
136
+ * Deja la ruta en la forma con la que se compara.
137
+ *
138
+ * Sin esto la política era papel mojado, y se descubrió EJECUTANDO el producto:
139
+ * el modelo escribe `~/.ada/agent/vault/…`, la tool expande la tilde por dentro
140
+ * y abre el fichero, mientras que la política —que solo ve los argumentos
141
+ * crudos— comparaba contra la ruta absoluta y no reconocía nada. El vault se
142
+ * leyó entero con la política activada y todas las pruebas en verde, porque
143
+ * todas usaban rutas absolutas.
144
+ *
145
+ * Se sustituye en TODO el texto y no solo al principio porque `bash` recibe una
146
+ * línea entera, donde el `~` va detrás del comando.
147
+ */
148
+ function normalizar(texto, home) {
149
+ return texto.replaceAll("$HOME/", `${home}/`).replaceAll("~/", `${home}/`);
150
+ }
151
+ /**
152
+ * Si el texto nombra algo que no se puede tocar, devuelve por qué.
153
+ *
154
+ * Se mira el texto y no una "ruta" porque los argumentos no tienen un nombre
155
+ * común (`path`, `file_path`, `command`…) y porque `bash` recibe una línea de
156
+ * shell entera. Para `bash` esto es MEJOR ESFUERZO y hay que decirlo: quien
157
+ * contiene de verdad un comando es el sandbox del sistema operativo, no esta
158
+ * comprobación. Aquí se para lo evidente, que es lo que hace un agente
159
+ * despistado; lo deliberado lo para el kernel.
160
+ */
161
+ function rutaProtegida(texto, agentDir, escribiendo) {
162
+ if (nombraDirectorio(texto, `${agentDir}/`, "vault"))
163
+ return "el vault cifrado";
164
+ // Generaliza lo de arriba a un vault de Ada en OTRA máquina (ver
165
+ // `SEGMENTO_AGENTE_ADA`): mismo motivo, sin depender del `agentDir` local.
166
+ if (nombraDirectorio(texto, SEGMENTO_AGENTE_ADA, "vault"))
167
+ return "el vault cifrado (de este equipo o de un destino remoto)";
168
+ // El libro de auditoría y su índice.
169
+ //
170
+ // Agujero real, y el más grave que hemos tenido: la política protegía el
171
+ // vault y el `auth.json` y dejaba al agente escribir y BORRAR libremente en
172
+ // `<agentDir>/sesion/`, que es donde está el registro de lo que ha hecho. Es
173
+ // decir, el sujeto de la auditoría tenía permiso de escritura sobre la
174
+ // auditoría. Comprobado ejecutando `decidir`: `rm -rf <agentDir>/sesion/`
175
+ // salía `permitida`.
176
+ //
177
+ // Denegado también para LEER, igual que el vault: el libro guarda hashes y
178
+ // rutas de todo lo que ha pasado por la sesión, y no hay ninguna tarea
179
+ // legítima del agente que necesite leerlo por el sistema de ficheros. Quien
180
+ // tiene que verlo lo ve por `ada-cli audit show`, por `audit://` o por el
181
+ // panel, que no pasan por esta política porque no son el agente.
182
+ for (const dir of [DIR_SESION, DIR_INDICE]) {
183
+ if (nombraDirectorio(texto, `${agentDir}/`, dir))
184
+ return "el libro de auditoría de la sesión";
185
+ if (nombraDirectorio(texto, SEGMENTO_AGENTE_ADA, dir)) {
186
+ return "el libro de auditoría de la sesión (de este equipo o de un destino remoto)";
187
+ }
188
+ }
189
+ // Las credenciales de los proveedores, que viven EN CLARO en `auth.json`.
190
+ //
191
+ // Agujero real y propio: la primera versión de esta política protegía el
192
+ // vault, las claves SSH, AWS y los `.env`, y dejaba abierto justo el fichero
193
+ // donde están las claves con las que corre el agente. Se comprobó
194
+ // ejecutando el producto y las leyó todas. Proteger la caja fuerte y dejar
195
+ // las llaves encima no protege nada.
196
+ //
197
+ // Se compara con el nombre de fichero COMPLETO para no llevarse por delante
198
+ // `auth.json.example`, `auth-storage.ts` ni `auth.md`, que son código y
199
+ // documentación que el agente sí tiene que poder leer.
200
+ for (const parte of texto.split(/[\s"'`]+/)) {
201
+ const base = parte.slice(parte.lastIndexOf("/") + 1);
202
+ if (parte.includes(`${agentDir}/`) && base === "auth.json")
203
+ return "las credenciales de los proveedores";
204
+ // Igual, pero para el `auth.json` de un Ada corriendo en el DESTINO de
205
+ // `--remoto`: no comparte `agentDir` con este equipo, así que el
206
+ // segmento genérico es la única forma de reconocerlo.
207
+ if (parte.includes(SEGMENTO_AGENTE_ADA) && base === "auth.json") {
208
+ return "las credenciales de los proveedores (de este equipo o de un destino remoto)";
209
+ }
210
+ // Y las de las otras herramientas: están en el mismo portátil y sirven
211
+ // para lo mismo. Si el agente no ve las nuestras, no hay motivo para que
212
+ // vea las de Claude Code, Codex, gh, Docker o kubectl.
213
+ if (base === ".credentials.json" || base === ".netrc")
214
+ return "credenciales de otra herramienta";
215
+ if (contieneSegmento(parte, ".codex") && base === "auth.json")
216
+ return "las credenciales de Codex";
217
+ if (contieneSegmento(parte, "gh") && base === "hosts.yml")
218
+ return "las credenciales de GitHub CLI";
219
+ if (contieneSegmento(parte, ".docker") && base === "config.json")
220
+ return "las credenciales de Docker";
221
+ if (contieneSegmento(parte, ".kube") && base === "config")
222
+ return "el acceso al clúster de Kubernetes";
223
+ }
224
+ if (contieneSegmento(texto, ".ssh"))
225
+ return "las claves SSH";
226
+ if (contieneSegmento(texto, ".gnupg"))
227
+ return "las claves GPG";
228
+ if (contieneSegmento(texto, ".aws"))
229
+ return "las credenciales de AWS";
230
+ // `.env` como nombre de fichero completo, no como prefijo: `.environment.ts`
231
+ // es código normal y denegarlo dejaría medio proyecto ilegible sin que nadie
232
+ // entendiera por qué.
233
+ for (const parte of texto.split(/[\s"'`]+/)) {
234
+ const base = parte.slice(parte.lastIndexOf("/") + 1);
235
+ if (base === ".env" || base.startsWith(".env."))
236
+ return "un fichero de entorno";
237
+ }
238
+ // La configuración del agente se puede LEER pero no escribir. El
239
+ // CVE-2026-25725 de Claude Code fue exactamente esto: código dentro del
240
+ // sandbox creaba un settings.json e inyectaba hooks `SessionStart` que
241
+ // corrían FUERA. Nuestro settings.json también ejecuta hooks.
242
+ if (escribiendo && (texto.includes(`${agentDir}/settings.json`) || texto.includes(`${agentDir}/hooks`))) {
243
+ return "la configuración del agente, que ejecuta hooks";
244
+ }
245
+ return null;
246
+ }
247
+ /** Todas las cadenas de los argumentos, a cualquier profundidad. */
248
+ function cadenasDe(valor, acumulado = []) {
249
+ if (typeof valor === "string")
250
+ acumulado.push(valor);
251
+ else if (Array.isArray(valor))
252
+ for (const v of valor)
253
+ cadenasDe(v, acumulado);
254
+ else if (valor && typeof valor === "object")
255
+ for (const v of Object.values(valor))
256
+ cadenasDe(v, acumulado);
257
+ return acumulado;
258
+ }
259
+ /**
260
+ * Lee `permissions.denied` de la configuración, tolerando que no exista.
261
+ *
262
+ * El bloque `permissions` es un `Record<string, unknown>` en settings, así que
263
+ * lo que hay ahí no está tipado y puede ser cualquier cosa: se filtra a cadenas
264
+ * en vez de confiar. Una entrada mal escrita tiene que perderse ella sola, no
265
+ * tumbar la política entera y con ella la sesión.
266
+ */
267
+ export function leerDenegadas(config) {
268
+ const lista = config?.permissions?.denied;
269
+ return Array.isArray(lista) ? lista.filter((x) => typeof x === "string") : [];
270
+ }
271
+ export function decidir({ tool, args, modo, agentDir, home, denegadas, maquina: maquinaDada, }) {
272
+ const casa = home ?? homedir();
273
+ const nivel = nivelDe(tool);
274
+ // 1. Rutas protegidas. Por delante de todo lo demás, incluido `yolo`.
275
+ // `ejecucion` cuenta como escritura: un `bash` puede reescribir el
276
+ // settings.json igual de bien que un `write`.
277
+ const escribiendo = nivel !== "lectura";
278
+ for (const cadena of cadenasDe(args)) {
279
+ const que = rutaProtegida(normalizar(cadena, casa), agentDir, escribiendo);
280
+ if (que) {
281
+ return {
282
+ veredicto: "denegada",
283
+ politica: "ruta-protegida",
284
+ motivo: `Denegado: ${que}. No es configurable y no cambia con el modo de permisos. Si el usuario necesita ese dato, pídeselo.`,
285
+ };
286
+ }
287
+ }
288
+ // 2. Ficheros generados. Escribir en uno es trabajo que desaparece en la
289
+ // siguiente regeneración, y entre medias deja la fuente y el generado
290
+ // diciendo cosas distintas.
291
+ //
292
+ // Va después de las rutas protegidas y antes del modo, porque no es
293
+ // negociable por comodidad — pero sí lo levanta el usuario diciéndolo, y
294
+ // el mensaje se lo explica al modelo para que lo pida en vez de insistir.
295
+ if (escribiendo) {
296
+ for (const cadena of cadenasDe(args)) {
297
+ // El filtro es "se puede abrir", no "parece una ruta".
298
+ //
299
+ // La versión anterior exigía una barra, y con eso `edit` sobre
300
+ // `api.pb.go` —sin directorio— se colaba entera: la guarda estaba
301
+ // puesta, las pruebas en verde, y el fichero generado se editó igual.
302
+ // Solo salió ejecutando el CLI de verdad.
303
+ //
304
+ // Lo que sí se descarta antes de tocar el disco es lo que no puede ser
305
+ // un nombre de fichero: contenido con saltos de línea (el `new_string`
306
+ // de una edición) o cadenas absurdamente largas.
307
+ if (cadena.length === 0 || cadena.length > 400 || cadena.includes("\n"))
308
+ continue;
309
+ let contenido;
310
+ try {
311
+ contenido = readFileSync(normalizar(cadena, casa), "utf-8");
312
+ }
313
+ catch {
314
+ continue; // no existe o no es un fichero: no hay nada que proteger
315
+ }
316
+ const marca = marcaDeGenerado(contenido);
317
+ if (marca) {
318
+ return { veredicto: "denegada", politica: "fichero-generado", motivo: motivoDeGenerado(cadena, marca) };
319
+ }
320
+ }
321
+ }
322
+ // 3. Lo que el usuario ha denegado. También sobrevive a `yolo`: si no,
323
+ // "denegar" significaría "denegar hasta que al agente le convenga".
324
+ if (denegadas?.includes(tool)) {
325
+ return {
326
+ veredicto: "denegada",
327
+ politica: "deny-de-usuario",
328
+ motivo: `Denegado: el usuario ha desactivado \`${tool}\` en su configuración.`,
329
+ };
330
+ }
331
+ // 4. La política de MÁQUINA, que el usuario no puede editar.
332
+ //
333
+ // Va aquí y no en cada llamante porque `decidir()` la invocan siete
334
+ // sitios: un techo que haya que acordarse de poner en cada uno no es un
335
+ // techo. Y va antes del modo porque su único poder es recortarlo.
336
+ //
337
+ // Los dos ámbitos que había —global y proyecto— son ficheros del propio
338
+ // usuario, así que la línea con la que el CISO prohíbe `yolo` la borraba
339
+ // él mismo con un editor de texto. Ver `politica-de-maquina.ts`.
340
+ const maquina = maquinaDada ?? politicaDeMaquina();
341
+ if (maquina.politica?.denegadas?.includes(tool)) {
342
+ return {
343
+ veredicto: "denegada",
344
+ politica: "deny-de-maquina",
345
+ motivo: `Denegado: \`${tool}\` está desactivada por la política de este equipo` +
346
+ (maquina.politica.motivo ? `: ${maquina.politica.motivo}` : ".") +
347
+ " No la levanta el modo de permisos ni la configuración del usuario.",
348
+ };
349
+ }
350
+ const efectivo = recortarModo(modo, maquina);
351
+ // 5. El modo de la sesión, ya recortado.
352
+ if (nivel === "lectura")
353
+ return { veredicto: "permitida", politica: `modo-${efectivo}`, motivo: "" };
354
+ // Que el recorte se NOMBRE en `politica` no es cosmético: ese campo va al
355
+ // libro de sesión, así que un auditor puede ver que la decisión la tomó la
356
+ // política del equipo y no la preferencia del usuario.
357
+ const sufijo = efectivo === modo ? "" : "-por-politica-de-maquina";
358
+ switch (efectivo) {
359
+ case "plan":
360
+ return {
361
+ veredicto: "denegada",
362
+ politica: `modo-plan${sufijo}`,
363
+ motivo: "En modo plan no se actúa: propón el cambio en vez de aplicarlo.",
364
+ };
365
+ case "manual":
366
+ return { veredicto: "preguntar", politica: `modo-manual${sufijo}`, motivo: "" };
367
+ case "auto":
368
+ return nivel === "escritura"
369
+ ? { veredicto: "permitida", politica: `modo-auto${sufijo}`, motivo: "" }
370
+ : { veredicto: "preguntar", politica: `modo-auto${sufijo}`, motivo: "" };
371
+ default:
372
+ return { veredicto: "permitida", politica: `modo-yolo${sufijo}`, motivo: "" };
373
+ }
374
+ }
375
+ //# sourceMappingURL=politica.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"politica.js","sourceRoot":"","sources":["../../../src/core/aprobacion/politica.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Aprobación por herramienta.\n *\n * Antes de esto no había política ninguna: `beforeToolCall` disparaba los hooks\n * del usuario y las extensiones, y `permissions.level` —que existe en settings\n * desde siempre— solo lo leían los propios hooks. Ninguna tool se consultaba\n * contra él. Es decir, el nivel de permisos no gobernaba los permisos.\n *\n * El orden de las comprobaciones ES la propiedad de seguridad, y por eso está\n * escrito de arriba abajo en `decidir()` y no repartido:\n *\n * 1. Rutas protegidas — denegado SIEMPRE, incluso en `yolo`, no configurable\n * 2. Deny del usuario — denegado SIEMPRE, incluso en `yolo`\n * 3. Modo de la sesión — plan / manual / auto / yolo\n *\n * Que 1 y 2 vayan por delante del modo es lo que hace que el argumento de\n * cumplimiento se sostenga: una política que el propio agente puede desactivar\n * pidiendo `yolo` no es una política, es una sugerencia.\n *\n * Lo desconocido cuenta como ejecución. Una tool de MCP o de una extensión que\n * nadie ha clasificado no puede colarse por el carril de lectura por no estar\n * en ninguna lista.\n */\n\nimport { readFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { CONFIG_DIR_NAME } from \"../../config.ts\";\nimport { DIR_INDICE, DIR_SESION } from \"../audit/rutas.ts\";\nimport { suplantadaPor } from \"../extensiones/suplantacion.ts\";\nimport { marcaDeGenerado, motivoDeGenerado } from \"./generados.ts\";\nimport { type LecturaDePolitica, politicaDeMaquina, recortarModo } from \"./politica-de-maquina.ts\";\n\n/**\n * Segmento `.../<CONFIG_DIR_NAME>/agent/` de CUALQUIER instalación de Ada,\n * no solo `agentDir` (que es la de ESTE equipo).\n *\n * Con `--remoto` los argumentos de `read`/`write`/`bash` pueden nombrar un\n * `auth.json` o un `vault/` que viven en OTRA máquina — el destino de SSH,\n * el contenedor de Docker, la distro de WSL — con su propio `$HOME` y por\n * tanto un `agentDir` que `rutaProtegida` nunca conoce. Comprobar el\n * segmento en vez del prefijo completo protege ambos sin necesitar el\n * `agentDir` del destino, que esta política no tiene forma de calcular.\n */\nconst SEGMENTO_AGENTE_ADA = `/${CONFIG_DIR_NAME}/agent/`;\n\nexport type NivelTool = \"lectura\" | \"escritura\" | \"ejecucion\";\nexport type ModoPermiso = \"plan\" | \"manual\" | \"auto\" | \"yolo\";\nexport type VeredictoAprobacion = \"permitida\" | \"denegada\" | \"preguntar\";\n\nexport interface Decision {\n\tveredicto: VeredictoAprobacion;\n\t/** Qué regla decidió. Va al libro de sesión, así que tiene que ser estable. */\n\tpolitica: string;\n\t/** Texto para el modelo y para el usuario. Vacío cuando no hay nada que explicar. */\n\tmotivo: string;\n}\n\n/** Tools que solo miran. */\nconst LECTURA = new Set([\n\t\"read\",\n\t\"ls\",\n\t\"find\",\n\t\"grep\",\n\t\"ast_search\",\n\t\"session_search\",\n\t\"web_fetch\",\n\t\"web_search\",\n\t\"memory_search\",\n\t\"memory_list\",\n\t\"graph_query\",\n\t\"ask_user_question\",\n\t\"todo_read\",\n]);\n\n/** Tools que cambian estado nuestro, pero no ejecutan nada del sistema. */\nconst ESCRITURA = new Set([\n\t\"edit\",\n\t\"write\",\n\t\"ast_edit\",\n\t\"memory_add\",\n\t\"memory_replace\",\n\t\"memory_remove\",\n\t\"update_project_memory\",\n\t\"scratchpad\",\n\t\"todo\",\n\t\"todo_write\",\n\t\"graph_add\",\n]);\n\n/**\n * ¿Este nombre es de una tool NUESTRA cuyo nivel de confianza da esta política?\n *\n * Lo consulta el registro de extensiones para saber si `registerTool` está\n * suplantando una builtin. `bash` va aparte porque no está en ninguna de las dos\n * listas —lo desconocido ya es ejecución— pero suplantarlo importa igual: el\n * usuario tiene que ver que el `bash` que corre no es el nuestro.\n */\nexport function esNombreDeToolNuestra(tool: string): boolean {\n\treturn LECTURA.has(tool) || ESCRITURA.has(tool) || tool === \"bash\";\n}\n\n/**\n * El nivel de una herramienta. Lo que no está clasificado es ejecución.\n *\n * Falla cerrado a propósito: el coste de equivocarse hacia arriba es una\n * pregunta de más; hacia abajo, es una tool desconocida corriendo sola.\n */\nexport function nivelDe(tool: string): NivelTool {\n\t// Una builtin suplantada por una extensión NO hereda su nivel.\n\t//\n\t// Comprobado ejecutando: una extensión registra `read`, el loader la pone\n\t// encima de la nuestra y el modelo sigue creyendo que llama a la de Ada. Con\n\t// `LECTURA.has(\"read\")` por delante, ese `read` —que puede hacer lo que\n\t// quiera— se permitía siempre y en cualquier modo. Devolver \"ejecucion\" lo\n\t// devuelve al carril de lo desconocido, que es lo que es.\n\tif (suplantadaPor(tool)) return \"ejecucion\";\n\tif (LECTURA.has(tool)) return \"lectura\";\n\tif (ESCRITURA.has(tool)) return \"escritura\";\n\treturn \"ejecucion\";\n}\n\n/** Un directorio protegido aparece como segmento completo de la ruta. */\nfunction contieneSegmento(texto: string, segmento: string): boolean {\n\treturn texto.includes(`/${segmento}/`);\n}\n\n/**\n * ¿El texto nombra el directorio `dir` colgado de `base`, con barra final o sin\n * ella?\n *\n * La comprobación anterior solo miraba `base/dir/`, y por ahí se colaba justo el\n * caso peor. Comprobado ejecutando `decidir`:\n *\n * rm -rf <agentDir>/vault/ -> denegada ruta-protegida\n * rm -rf <agentDir>/vault -> PERMITIDA modo-yolo\n *\n * Es decir, el borrado entero del vault con un comando, porque el nombre de un\n * directorio no lleva barra al final cuando se lo pasas a `rm`. Se arregla aquí,\n * en la comprobación compartida, y no en cada llamada: la misma trampa valía\n * para el vault, para el libro y para cualquier directorio que se añada mañana.\n *\n * El caso sin barra se mide sobre el token y con el final exacto para no\n * llevarse por delante `vault-ejemplo` ni `sesiones/`. Se recorta la puntuación\n * de shell del final porque `rm -rf x/vault;` y `rm -rf x/vault)` son el mismo\n * comando con otro adorno.\n */\nfunction nombraDirectorio(texto: string, base: string, dir: string): boolean {\n\tif (texto.includes(`${base}${dir}/`)) return true;\n\treturn texto.split(/[\\s\"'`]+/).some((t) => t.replace(/[;,)&|>]+$/, \"\").endsWith(`${base}${dir}`));\n}\n\n/**\n * Deja la ruta en la forma con la que se compara.\n *\n * Sin esto la política era papel mojado, y se descubrió EJECUTANDO el producto:\n * el modelo escribe `~/.ada/agent/vault/…`, la tool expande la tilde por dentro\n * y abre el fichero, mientras que la política —que solo ve los argumentos\n * crudos— comparaba contra la ruta absoluta y no reconocía nada. El vault se\n * leyó entero con la política activada y todas las pruebas en verde, porque\n * todas usaban rutas absolutas.\n *\n * Se sustituye en TODO el texto y no solo al principio porque `bash` recibe una\n * línea entera, donde el `~` va detrás del comando.\n */\nfunction normalizar(texto: string, home: string): string {\n\treturn texto.replaceAll(\"$HOME/\", `${home}/`).replaceAll(\"~/\", `${home}/`);\n}\n\n/**\n * Si el texto nombra algo que no se puede tocar, devuelve por qué.\n *\n * Se mira el texto y no una \"ruta\" porque los argumentos no tienen un nombre\n * común (`path`, `file_path`, `command`…) y porque `bash` recibe una línea de\n * shell entera. Para `bash` esto es MEJOR ESFUERZO y hay que decirlo: quien\n * contiene de verdad un comando es el sandbox del sistema operativo, no esta\n * comprobación. Aquí se para lo evidente, que es lo que hace un agente\n * despistado; lo deliberado lo para el kernel.\n */\nfunction rutaProtegida(texto: string, agentDir: string, escribiendo: boolean): string | null {\n\tif (nombraDirectorio(texto, `${agentDir}/`, \"vault\")) return \"el vault cifrado\";\n\t// Generaliza lo de arriba a un vault de Ada en OTRA máquina (ver\n\t// `SEGMENTO_AGENTE_ADA`): mismo motivo, sin depender del `agentDir` local.\n\tif (nombraDirectorio(texto, SEGMENTO_AGENTE_ADA, \"vault\"))\n\t\treturn \"el vault cifrado (de este equipo o de un destino remoto)\";\n\n\t// El libro de auditoría y su índice.\n\t//\n\t// Agujero real, y el más grave que hemos tenido: la política protegía el\n\t// vault y el `auth.json` y dejaba al agente escribir y BORRAR libremente en\n\t// `<agentDir>/sesion/`, que es donde está el registro de lo que ha hecho. Es\n\t// decir, el sujeto de la auditoría tenía permiso de escritura sobre la\n\t// auditoría. Comprobado ejecutando `decidir`: `rm -rf <agentDir>/sesion/`\n\t// salía `permitida`.\n\t//\n\t// Denegado también para LEER, igual que el vault: el libro guarda hashes y\n\t// rutas de todo lo que ha pasado por la sesión, y no hay ninguna tarea\n\t// legítima del agente que necesite leerlo por el sistema de ficheros. Quien\n\t// tiene que verlo lo ve por `ada-cli audit show`, por `audit://` o por el\n\t// panel, que no pasan por esta política porque no son el agente.\n\tfor (const dir of [DIR_SESION, DIR_INDICE]) {\n\t\tif (nombraDirectorio(texto, `${agentDir}/`, dir)) return \"el libro de auditoría de la sesión\";\n\t\tif (nombraDirectorio(texto, SEGMENTO_AGENTE_ADA, dir)) {\n\t\t\treturn \"el libro de auditoría de la sesión (de este equipo o de un destino remoto)\";\n\t\t}\n\t}\n\n\t// Las credenciales de los proveedores, que viven EN CLARO en `auth.json`.\n\t//\n\t// Agujero real y propio: la primera versión de esta política protegía el\n\t// vault, las claves SSH, AWS y los `.env`, y dejaba abierto justo el fichero\n\t// donde están las claves con las que corre el agente. Se comprobó\n\t// ejecutando el producto y las leyó todas. Proteger la caja fuerte y dejar\n\t// las llaves encima no protege nada.\n\t//\n\t// Se compara con el nombre de fichero COMPLETO para no llevarse por delante\n\t// `auth.json.example`, `auth-storage.ts` ni `auth.md`, que son código y\n\t// documentación que el agente sí tiene que poder leer.\n\tfor (const parte of texto.split(/[\\s\"'`]+/)) {\n\t\tconst base = parte.slice(parte.lastIndexOf(\"/\") + 1);\n\t\tif (parte.includes(`${agentDir}/`) && base === \"auth.json\") return \"las credenciales de los proveedores\";\n\t\t// Igual, pero para el `auth.json` de un Ada corriendo en el DESTINO de\n\t\t// `--remoto`: no comparte `agentDir` con este equipo, así que el\n\t\t// segmento genérico es la única forma de reconocerlo.\n\t\tif (parte.includes(SEGMENTO_AGENTE_ADA) && base === \"auth.json\") {\n\t\t\treturn \"las credenciales de los proveedores (de este equipo o de un destino remoto)\";\n\t\t}\n\t\t// Y las de las otras herramientas: están en el mismo portátil y sirven\n\t\t// para lo mismo. Si el agente no ve las nuestras, no hay motivo para que\n\t\t// vea las de Claude Code, Codex, gh, Docker o kubectl.\n\t\tif (base === \".credentials.json\" || base === \".netrc\") return \"credenciales de otra herramienta\";\n\t\tif (contieneSegmento(parte, \".codex\") && base === \"auth.json\") return \"las credenciales de Codex\";\n\t\tif (contieneSegmento(parte, \"gh\") && base === \"hosts.yml\") return \"las credenciales de GitHub CLI\";\n\t\tif (contieneSegmento(parte, \".docker\") && base === \"config.json\") return \"las credenciales de Docker\";\n\t\tif (contieneSegmento(parte, \".kube\") && base === \"config\") return \"el acceso al clúster de Kubernetes\";\n\t}\n\n\tif (contieneSegmento(texto, \".ssh\")) return \"las claves SSH\";\n\tif (contieneSegmento(texto, \".gnupg\")) return \"las claves GPG\";\n\tif (contieneSegmento(texto, \".aws\")) return \"las credenciales de AWS\";\n\n\t// `.env` como nombre de fichero completo, no como prefijo: `.environment.ts`\n\t// es código normal y denegarlo dejaría medio proyecto ilegible sin que nadie\n\t// entendiera por qué.\n\tfor (const parte of texto.split(/[\\s\"'`]+/)) {\n\t\tconst base = parte.slice(parte.lastIndexOf(\"/\") + 1);\n\t\tif (base === \".env\" || base.startsWith(\".env.\")) return \"un fichero de entorno\";\n\t}\n\n\t// La configuración del agente se puede LEER pero no escribir. El\n\t// CVE-2026-25725 de Claude Code fue exactamente esto: código dentro del\n\t// sandbox creaba un settings.json e inyectaba hooks `SessionStart` que\n\t// corrían FUERA. Nuestro settings.json también ejecuta hooks.\n\tif (escribiendo && (texto.includes(`${agentDir}/settings.json`) || texto.includes(`${agentDir}/hooks`))) {\n\t\treturn \"la configuración del agente, que ejecuta hooks\";\n\t}\n\treturn null;\n}\n\n/** Todas las cadenas de los argumentos, a cualquier profundidad. */\nfunction cadenasDe(valor: unknown, acumulado: string[] = []): string[] {\n\tif (typeof valor === \"string\") acumulado.push(valor);\n\telse if (Array.isArray(valor)) for (const v of valor) cadenasDe(v, acumulado);\n\telse if (valor && typeof valor === \"object\") for (const v of Object.values(valor)) cadenasDe(v, acumulado);\n\treturn acumulado;\n}\n\nexport interface EntradaDecision {\n\ttool: string;\n\targs: Record<string, unknown>;\n\tmodo: ModoPermiso;\n\tagentDir: string;\n\t/**\n\t * Directorio del usuario, para resolver `~` y `$HOME` antes de comparar.\n\t *\n\t * Opcional y con `homedir()` por defecto para que el punto de llamada no\n\t * tenga que importarlo: `agent-session.ts` es de upstream y está en el tope\n\t * del presupuesto de fork, donde un `import` nuevo cuesta un hunk. Las\n\t * pruebas lo pasan siempre, así que siguen siendo deterministas.\n\t */\n\thome?: string;\n\t/** Tools que el usuario ha denegado explícitamente en su configuración. */\n\tdenegadas?: string[];\n\t/**\n\t * La política de máquina, para las pruebas.\n\t *\n\t * Opcional, y por defecto la del sistema. NO se lee de una variable de\n\t * entorno a propósito: una variable la pone el propio usuario, así que sería\n\t * la puerta trasera que anula toda la política de un `export`. Quien ya\n\t * ejecuta código en este proceso puede saltársela igual —la frontera es el\n\t * proceso, no esta función—, pero no debe haber un camino cómodo.\n\t */\n\tmaquina?: LecturaDePolitica;\n}\n\n/**\n * Lee `permissions.denied` de la configuración, tolerando que no exista.\n *\n * El bloque `permissions` es un `Record<string, unknown>` en settings, así que\n * lo que hay ahí no está tipado y puede ser cualquier cosa: se filtra a cadenas\n * en vez de confiar. Una entrada mal escrita tiene que perderse ella sola, no\n * tumbar la política entera y con ella la sesión.\n */\nexport function leerDenegadas(config: { permissions?: Record<string, unknown> } | undefined): string[] {\n\tconst lista = (config?.permissions as { denied?: unknown } | undefined)?.denied;\n\treturn Array.isArray(lista) ? lista.filter((x): x is string => typeof x === \"string\") : [];\n}\n\nexport function decidir({\n\ttool,\n\targs,\n\tmodo,\n\tagentDir,\n\thome,\n\tdenegadas,\n\tmaquina: maquinaDada,\n}: EntradaDecision): Decision {\n\tconst casa = home ?? homedir();\n\tconst nivel = nivelDe(tool);\n\n\t// 1. Rutas protegidas. Por delante de todo lo demás, incluido `yolo`.\n\t// `ejecucion` cuenta como escritura: un `bash` puede reescribir el\n\t// settings.json igual de bien que un `write`.\n\tconst escribiendo = nivel !== \"lectura\";\n\tfor (const cadena of cadenasDe(args)) {\n\t\tconst que = rutaProtegida(normalizar(cadena, casa), agentDir, escribiendo);\n\t\tif (que) {\n\t\t\treturn {\n\t\t\t\tveredicto: \"denegada\",\n\t\t\t\tpolitica: \"ruta-protegida\",\n\t\t\t\tmotivo: `Denegado: ${que}. No es configurable y no cambia con el modo de permisos. Si el usuario necesita ese dato, pídeselo.`,\n\t\t\t};\n\t\t}\n\t}\n\n\t// 2. Ficheros generados. Escribir en uno es trabajo que desaparece en la\n\t// siguiente regeneración, y entre medias deja la fuente y el generado\n\t// diciendo cosas distintas.\n\t//\n\t// Va después de las rutas protegidas y antes del modo, porque no es\n\t// negociable por comodidad — pero sí lo levanta el usuario diciéndolo, y\n\t// el mensaje se lo explica al modelo para que lo pida en vez de insistir.\n\tif (escribiendo) {\n\t\tfor (const cadena of cadenasDe(args)) {\n\t\t\t// El filtro es \"se puede abrir\", no \"parece una ruta\".\n\t\t\t//\n\t\t\t// La versión anterior exigía una barra, y con eso `edit` sobre\n\t\t\t// `api.pb.go` —sin directorio— se colaba entera: la guarda estaba\n\t\t\t// puesta, las pruebas en verde, y el fichero generado se editó igual.\n\t\t\t// Solo salió ejecutando el CLI de verdad.\n\t\t\t//\n\t\t\t// Lo que sí se descarta antes de tocar el disco es lo que no puede ser\n\t\t\t// un nombre de fichero: contenido con saltos de línea (el `new_string`\n\t\t\t// de una edición) o cadenas absurdamente largas.\n\t\t\tif (cadena.length === 0 || cadena.length > 400 || cadena.includes(\"\\n\")) continue;\n\t\t\tlet contenido: string;\n\t\t\ttry {\n\t\t\t\tcontenido = readFileSync(normalizar(cadena, casa), \"utf-8\");\n\t\t\t} catch {\n\t\t\t\tcontinue; // no existe o no es un fichero: no hay nada que proteger\n\t\t\t}\n\t\t\tconst marca = marcaDeGenerado(contenido);\n\t\t\tif (marca) {\n\t\t\t\treturn { veredicto: \"denegada\", politica: \"fichero-generado\", motivo: motivoDeGenerado(cadena, marca) };\n\t\t\t}\n\t\t}\n\t}\n\n\t// 3. Lo que el usuario ha denegado. También sobrevive a `yolo`: si no,\n\t// \"denegar\" significaría \"denegar hasta que al agente le convenga\".\n\tif (denegadas?.includes(tool)) {\n\t\treturn {\n\t\t\tveredicto: \"denegada\",\n\t\t\tpolitica: \"deny-de-usuario\",\n\t\t\tmotivo: `Denegado: el usuario ha desactivado \\`${tool}\\` en su configuración.`,\n\t\t};\n\t}\n\n\t// 4. La política de MÁQUINA, que el usuario no puede editar.\n\t//\n\t// Va aquí y no en cada llamante porque `decidir()` la invocan siete\n\t// sitios: un techo que haya que acordarse de poner en cada uno no es un\n\t// techo. Y va antes del modo porque su único poder es recortarlo.\n\t//\n\t// Los dos ámbitos que había —global y proyecto— son ficheros del propio\n\t// usuario, así que la línea con la que el CISO prohíbe `yolo` la borraba\n\t// él mismo con un editor de texto. Ver `politica-de-maquina.ts`.\n\tconst maquina = maquinaDada ?? politicaDeMaquina();\n\tif (maquina.politica?.denegadas?.includes(tool)) {\n\t\treturn {\n\t\t\tveredicto: \"denegada\",\n\t\t\tpolitica: \"deny-de-maquina\",\n\t\t\tmotivo:\n\t\t\t\t`Denegado: \\`${tool}\\` está desactivada por la política de este equipo` +\n\t\t\t\t(maquina.politica.motivo ? `: ${maquina.politica.motivo}` : \".\") +\n\t\t\t\t\" No la levanta el modo de permisos ni la configuración del usuario.\",\n\t\t};\n\t}\n\tconst efectivo = recortarModo(modo, maquina);\n\n\t// 5. El modo de la sesión, ya recortado.\n\tif (nivel === \"lectura\") return { veredicto: \"permitida\", politica: `modo-${efectivo}`, motivo: \"\" };\n\n\t// Que el recorte se NOMBRE en `politica` no es cosmético: ese campo va al\n\t// libro de sesión, así que un auditor puede ver que la decisión la tomó la\n\t// política del equipo y no la preferencia del usuario.\n\tconst sufijo = efectivo === modo ? \"\" : \"-por-politica-de-maquina\";\n\n\tswitch (efectivo) {\n\t\tcase \"plan\":\n\t\t\treturn {\n\t\t\t\tveredicto: \"denegada\",\n\t\t\t\tpolitica: `modo-plan${sufijo}`,\n\t\t\t\tmotivo: \"En modo plan no se actúa: propón el cambio en vez de aplicarlo.\",\n\t\t\t};\n\t\tcase \"manual\":\n\t\t\treturn { veredicto: \"preguntar\", politica: `modo-manual${sufijo}`, motivo: \"\" };\n\t\tcase \"auto\":\n\t\t\treturn nivel === \"escritura\"\n\t\t\t\t? { veredicto: \"permitida\", politica: `modo-auto${sufijo}`, motivo: \"\" }\n\t\t\t\t: { veredicto: \"preguntar\", politica: `modo-auto${sufijo}`, motivo: \"\" };\n\t\tdefault:\n\t\t\treturn { veredicto: \"permitida\", politica: `modo-yolo${sufijo}`, motivo: \"\" };\n\t}\n}\n"]}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Arranque del CLI con atajos: decide qué grafo de módulos hay que cargar ANTES
3
+ * de cargarlo.
4
+ *
5
+ * Por qué existe. Medido en este árbol (Node 22, macOS, caché caliente):
6
+ *
7
+ * node dist/cli.js --version -> 1,65 s y 1927 módulos cargados
8
+ * node -e "" -> 0,03 s
9
+ *
10
+ * (contados con un hook `load` de `node:module`; con `module.register()`, que va
11
+ * en otro hilo y no ve algunas cargas, salen 1315 — el número de la puerta
12
+ * `scripts/check-arranque.mjs` es el primero, para que se puedan comparar.)
13
+ *
14
+ * De esos 1927 módulos, 660 son de `typebox` (los esquemas de todas las tools),
15
+ * 206 de `core/` y 171 de `packages/ai`. Ninguno hace falta para imprimir una
16
+ * cadena de versión. El coste no era del lenguaje —Bun tardaba lo mismo— sino de
17
+ * que `cli.ts` importaba `main.ts` de forma estática, y `main.ts` importa
18
+ * ávidamente TODO su grafo (sdk, modos, extensiones, proveedores, motor de
19
+ * control del ordenador) antes de mirar el primer argumento.
20
+ *
21
+ * Lo mismo pasaba con los subcomandos que ya estaban escritos para ser
22
+ * perezosos: `runServeCommand` (audit, discover, banco, review, commit, wiki,
23
+ * usage…) carga sus dependencias con `await import()`, pero se llamaba desde
24
+ * dentro de `main()`, o sea DESPUÉS de haber pagado el grafo entero. La pereza
25
+ * estaba construida y desenchufada.
26
+ *
27
+ * Enganche en upstream: UN solo hunk, el final de `src/cli.ts`. El resto vive
28
+ * aquí, en un fichero nuestro.
29
+ */
30
+ /**
31
+ * ¿Es una invocación que solo pide la versión y nada más?
32
+ *
33
+ * Se exige que sea el ÚNICO argumento a propósito. `ada-cli update --version`
34
+ * lo consume `handlePackageCommand` dentro de `main()` con otro significado (la
35
+ * versión a instalar), y atajarlo aquí cambiaría lo que hace ese comando. Un
36
+ * atajo que se lleva por delante un caso legítimo es peor que no tener atajo.
37
+ */
38
+ export declare function esSoloVersion(args: readonly string[]): boolean;
39
+ /**
40
+ * Punto de entrada real del CLI. Devuelve cuando el trabajo ha terminado.
41
+ *
42
+ * Sin `options`: `cli.ts` nunca las pasó y el SDK no entra por aquí, sino por
43
+ * `createAgentSession`. Un parámetro que nadie rellena es una mentira con tipo.
44
+ */
45
+ export declare function arrancar(args: string[]): Promise<void>;
46
+ //# sourceMappingURL=atajos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atajos.d.ts","sourceRoot":"","sources":["../../../src/core/arranque/atajos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAoBH;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAE9D;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC5D","sourcesContent":["/**\n * Arranque del CLI con atajos: decide qué grafo de módulos hay que cargar ANTES\n * de cargarlo.\n *\n * Por qué existe. Medido en este árbol (Node 22, macOS, caché caliente):\n *\n * node dist/cli.js --version -> 1,65 s y 1927 módulos cargados\n * node -e \"\" -> 0,03 s\n *\n * (contados con un hook `load` de `node:module`; con `module.register()`, que va\n * en otro hilo y no ve algunas cargas, salen 1315 — el número de la puerta\n * `scripts/check-arranque.mjs` es el primero, para que se puedan comparar.)\n *\n * De esos 1927 módulos, 660 son de `typebox` (los esquemas de todas las tools),\n * 206 de `core/` y 171 de `packages/ai`. Ninguno hace falta para imprimir una\n * cadena de versión. El coste no era del lenguaje —Bun tardaba lo mismo— sino de\n * que `cli.ts` importaba `main.ts` de forma estática, y `main.ts` importa\n * ávidamente TODO su grafo (sdk, modos, extensiones, proveedores, motor de\n * control del ordenador) antes de mirar el primer argumento.\n *\n * Lo mismo pasaba con los subcomandos que ya estaban escritos para ser\n * perezosos: `runServeCommand` (audit, discover, banco, review, commit, wiki,\n * usage…) carga sus dependencias con `await import()`, pero se llamaba desde\n * dentro de `main()`, o sea DESPUÉS de haber pagado el grafo entero. La pereza\n * estaba construida y desenchufada.\n *\n * Enganche en upstream: UN solo hunk, el final de `src/cli.ts`. El resto vive\n * aquí, en un fichero nuestro.\n */\n\n/**\n * Prepara el proceso igual que hacía `cli.ts`: título, variables de entorno que\n * leen otros módulos y silenciado de avisos de Node.\n *\n * `configureHttpDispatcher()` NO se llama aquí: es el único trozo del preámbulo\n * que cuesta (carga `undici`, 221 módulos medidos) y solo hace falta cuando algo\n * va a hablar por red. Se llama justo antes de `main()` —donde `runAuthCommand`\n * ya usa la red— y dentro de `runServeCommand`, después de los subcomandos que\n * solo leen ficheros.\n */\nasync function prepararProceso(): Promise<void> {\n\tconst { APP_NAME } = await import(\"../../config.ts\");\n\tprocess.title = APP_NAME;\n\tprocess.env.PI_CODING_AGENT = \"true\";\n\tprocess.env.AI_AGENT = \"pi\";\n\tprocess.emitWarning = (() => {}) as typeof process.emitWarning;\n}\n\n/**\n * ¿Es una invocación que solo pide la versión y nada más?\n *\n * Se exige que sea el ÚNICO argumento a propósito. `ada-cli update --version`\n * lo consume `handlePackageCommand` dentro de `main()` con otro significado (la\n * versión a instalar), y atajarlo aquí cambiaría lo que hace ese comando. Un\n * atajo que se lleva por delante un caso legítimo es peor que no tener atajo.\n */\nexport function esSoloVersion(args: readonly string[]): boolean {\n\treturn args.length === 1 && (args[0] === \"--version\" || args[0] === \"-v\");\n}\n\n/**\n * Punto de entrada real del CLI. Devuelve cuando el trabajo ha terminado.\n *\n * Sin `options`: `cli.ts` nunca las pasó y el SDK no entra por aquí, sino por\n * `createAgentSession`. Un parámetro que nadie rellena es una mentira con tipo.\n */\nexport async function arrancar(args: string[]): Promise<void> {\n\tawait prepararProceso();\n\n\t// Atajo 1: la versión. `VERSION` sale de config.ts, que ya está cargado.\n\tif (esSoloVersion(args)) {\n\t\tconst { VERSION } = await import(\"../../config.ts\");\n\t\tconsole.log(VERSION);\n\t\treturn;\n\t}\n\n\t// `--offline` tiene que estar puesto en el entorno antes de que cualquier\n\t// módulo lo lea. Es lo mismo que hace `main()` en sus primeras líneas; se\n\t// repite aquí porque los subcomandos del atajo 2 ya no pasan por allí.\n\tif (args.includes(\"--offline\") || esBanderaVerdadera(process.env.PI_OFFLINE)) {\n\t\tprocess.env.PI_OFFLINE = \"1\";\n\t\tprocess.env.PI_SKIP_VERSION_CHECK = \"1\";\n\t}\n\n\t// Atajo 2: los subcomandos que no abren el TUI (audit, discover, banco,\n\t// review, commit, usage, wiki, serve, sessions, attach…). Ya cargaban sus\n\t// dependencias de forma perezosa; lo que se gana es no pagar el grafo de\n\t// `main.ts` para llegar hasta ellos.\n\t//\n\t// El orden respecto a `runAuthCommand` (que sigue dentro de `main()`) no\n\t// importa: `auth` no está en la lista de `isServeCommand`, así que los dos\n\t// conjuntos de argumentos son disjuntos.\n\t//\n\t// No se filtra con `isServeCommand` aquí: `runServeCommand` ya empieza por esa\n\t// misma comprobación y devuelve false. Repetirla solo abría la puerta a que\n\t// las dos listas se separaran.\n\tconst { runServeCommand } = await import(\"../../cli/serve-command.ts\");\n\tif (await runServeCommand(args)) return;\n\n\t// Camino normal: el CLI completo. El dispatcher se configura aquí y no antes\n\t// porque `undici` son 221 módulos medidos y los subcomandos que solo leen\n\t// ficheros no los necesitan. Tiene que ser ANTES de `main()`: `runAuthCommand`\n\t// usa la red en las primeras líneas de main, antes de su propia llamada.\n\tconst { configureHttpDispatcher } = await import(\"../http-dispatcher.ts\");\n\tconfigureHttpDispatcher();\n\tconst { main } = await import(\"../../main.ts\");\n\tawait main(args);\n}\n\n/**\n * Copia local de la lectura de banderas de entorno de `main.ts`. Son cuatro\n * líneas y traerlas desde allí obligaría a cargar `main.ts`, que es justo lo que\n * este fichero existe para evitar.\n */\nfunction esBanderaVerdadera(value: string | undefined): boolean {\n\tif (!value) return false;\n\treturn value === \"1\" || value.toLowerCase() === \"true\" || value.toLowerCase() === \"yes\";\n}\n"]}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Arranque del CLI con atajos: decide qué grafo de módulos hay que cargar ANTES
3
+ * de cargarlo.
4
+ *
5
+ * Por qué existe. Medido en este árbol (Node 22, macOS, caché caliente):
6
+ *
7
+ * node dist/cli.js --version -> 1,65 s y 1927 módulos cargados
8
+ * node -e "" -> 0,03 s
9
+ *
10
+ * (contados con un hook `load` de `node:module`; con `module.register()`, que va
11
+ * en otro hilo y no ve algunas cargas, salen 1315 — el número de la puerta
12
+ * `scripts/check-arranque.mjs` es el primero, para que se puedan comparar.)
13
+ *
14
+ * De esos 1927 módulos, 660 son de `typebox` (los esquemas de todas las tools),
15
+ * 206 de `core/` y 171 de `packages/ai`. Ninguno hace falta para imprimir una
16
+ * cadena de versión. El coste no era del lenguaje —Bun tardaba lo mismo— sino de
17
+ * que `cli.ts` importaba `main.ts` de forma estática, y `main.ts` importa
18
+ * ávidamente TODO su grafo (sdk, modos, extensiones, proveedores, motor de
19
+ * control del ordenador) antes de mirar el primer argumento.
20
+ *
21
+ * Lo mismo pasaba con los subcomandos que ya estaban escritos para ser
22
+ * perezosos: `runServeCommand` (audit, discover, banco, review, commit, wiki,
23
+ * usage…) carga sus dependencias con `await import()`, pero se llamaba desde
24
+ * dentro de `main()`, o sea DESPUÉS de haber pagado el grafo entero. La pereza
25
+ * estaba construida y desenchufada.
26
+ *
27
+ * Enganche en upstream: UN solo hunk, el final de `src/cli.ts`. El resto vive
28
+ * aquí, en un fichero nuestro.
29
+ */
30
+ /**
31
+ * Prepara el proceso igual que hacía `cli.ts`: título, variables de entorno que
32
+ * leen otros módulos y silenciado de avisos de Node.
33
+ *
34
+ * `configureHttpDispatcher()` NO se llama aquí: es el único trozo del preámbulo
35
+ * que cuesta (carga `undici`, 221 módulos medidos) y solo hace falta cuando algo
36
+ * va a hablar por red. Se llama justo antes de `main()` —donde `runAuthCommand`
37
+ * ya usa la red— y dentro de `runServeCommand`, después de los subcomandos que
38
+ * solo leen ficheros.
39
+ */
40
+ async function prepararProceso() {
41
+ const { APP_NAME } = await import("../../config.js");
42
+ process.title = APP_NAME;
43
+ process.env.PI_CODING_AGENT = "true";
44
+ process.env.AI_AGENT = "pi";
45
+ process.emitWarning = (() => { });
46
+ }
47
+ /**
48
+ * ¿Es una invocación que solo pide la versión y nada más?
49
+ *
50
+ * Se exige que sea el ÚNICO argumento a propósito. `ada-cli update --version`
51
+ * lo consume `handlePackageCommand` dentro de `main()` con otro significado (la
52
+ * versión a instalar), y atajarlo aquí cambiaría lo que hace ese comando. Un
53
+ * atajo que se lleva por delante un caso legítimo es peor que no tener atajo.
54
+ */
55
+ export function esSoloVersion(args) {
56
+ return args.length === 1 && (args[0] === "--version" || args[0] === "-v");
57
+ }
58
+ /**
59
+ * Punto de entrada real del CLI. Devuelve cuando el trabajo ha terminado.
60
+ *
61
+ * Sin `options`: `cli.ts` nunca las pasó y el SDK no entra por aquí, sino por
62
+ * `createAgentSession`. Un parámetro que nadie rellena es una mentira con tipo.
63
+ */
64
+ export async function arrancar(args) {
65
+ await prepararProceso();
66
+ // Atajo 1: la versión. `VERSION` sale de config.ts, que ya está cargado.
67
+ if (esSoloVersion(args)) {
68
+ const { VERSION } = await import("../../config.js");
69
+ console.log(VERSION);
70
+ return;
71
+ }
72
+ // `--offline` tiene que estar puesto en el entorno antes de que cualquier
73
+ // módulo lo lea. Es lo mismo que hace `main()` en sus primeras líneas; se
74
+ // repite aquí porque los subcomandos del atajo 2 ya no pasan por allí.
75
+ if (args.includes("--offline") || esBanderaVerdadera(process.env.PI_OFFLINE)) {
76
+ process.env.PI_OFFLINE = "1";
77
+ process.env.PI_SKIP_VERSION_CHECK = "1";
78
+ }
79
+ // Atajo 2: los subcomandos que no abren el TUI (audit, discover, banco,
80
+ // review, commit, usage, wiki, serve, sessions, attach…). Ya cargaban sus
81
+ // dependencias de forma perezosa; lo que se gana es no pagar el grafo de
82
+ // `main.ts` para llegar hasta ellos.
83
+ //
84
+ // El orden respecto a `runAuthCommand` (que sigue dentro de `main()`) no
85
+ // importa: `auth` no está en la lista de `isServeCommand`, así que los dos
86
+ // conjuntos de argumentos son disjuntos.
87
+ //
88
+ // No se filtra con `isServeCommand` aquí: `runServeCommand` ya empieza por esa
89
+ // misma comprobación y devuelve false. Repetirla solo abría la puerta a que
90
+ // las dos listas se separaran.
91
+ const { runServeCommand } = await import("../../cli/serve-command.js");
92
+ if (await runServeCommand(args))
93
+ return;
94
+ // Camino normal: el CLI completo. El dispatcher se configura aquí y no antes
95
+ // porque `undici` son 221 módulos medidos y los subcomandos que solo leen
96
+ // ficheros no los necesitan. Tiene que ser ANTES de `main()`: `runAuthCommand`
97
+ // usa la red en las primeras líneas de main, antes de su propia llamada.
98
+ const { configureHttpDispatcher } = await import("../http-dispatcher.js");
99
+ configureHttpDispatcher();
100
+ const { main } = await import("../../main.js");
101
+ await main(args);
102
+ }
103
+ /**
104
+ * Copia local de la lectura de banderas de entorno de `main.ts`. Son cuatro
105
+ * líneas y traerlas desde allí obligaría a cargar `main.ts`, que es justo lo que
106
+ * este fichero existe para evitar.
107
+ */
108
+ function esBanderaVerdadera(value) {
109
+ if (!value)
110
+ return false;
111
+ return value === "1" || value.toLowerCase() === "true" || value.toLowerCase() === "yes";
112
+ }
113
+ //# sourceMappingURL=atajos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atajos.js","sourceRoot":"","sources":["../../../src/core/arranque/atajos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;;GASG;AACH,KAAK,UAAU,eAAe,GAAkB;IAC/C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACrD,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,WAAW,GAAG,CAAC,GAAG,EAAE,CAAC,EAAC,CAAC,CAA+B,CAAC;AAAA,CAC/D;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,IAAuB,EAAW;IAC/D,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAAA,CAC1E;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAc,EAAiB;IAC7D,MAAM,eAAe,EAAE,CAAC;IAExB,2EAAyE;IACzE,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO;IACR,CAAC;IAED,0EAA0E;IAC1E,4EAA0E;IAC1E,yEAAuE;IACvE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,GAAG,CAAC;IACzC,CAAC;IAED,wEAAwE;IACxE,4EAA0E;IAC1E,yEAAyE;IACzE,qCAAqC;IACrC,EAAE;IACF,yEAAyE;IACzE,6EAA2E;IAC3E,yCAAyC;IACzC,EAAE;IACF,gFAA+E;IAC/E,8EAA4E;IAC5E,+BAA+B;IAC/B,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IACvE,IAAI,MAAM,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO;IAExC,8EAA6E;IAC7E,2EAA0E;IAC1E,+EAA+E;IAC/E,0EAAyE;IACzE,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAC1E,uBAAuB,EAAE,CAAC;IAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAC/C,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;AAAA,CACjB;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,KAAyB,EAAW;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;AAAA,CACxF","sourcesContent":["/**\n * Arranque del CLI con atajos: decide qué grafo de módulos hay que cargar ANTES\n * de cargarlo.\n *\n * Por qué existe. Medido en este árbol (Node 22, macOS, caché caliente):\n *\n * node dist/cli.js --version -> 1,65 s y 1927 módulos cargados\n * node -e \"\" -> 0,03 s\n *\n * (contados con un hook `load` de `node:module`; con `module.register()`, que va\n * en otro hilo y no ve algunas cargas, salen 1315 — el número de la puerta\n * `scripts/check-arranque.mjs` es el primero, para que se puedan comparar.)\n *\n * De esos 1927 módulos, 660 son de `typebox` (los esquemas de todas las tools),\n * 206 de `core/` y 171 de `packages/ai`. Ninguno hace falta para imprimir una\n * cadena de versión. El coste no era del lenguaje —Bun tardaba lo mismo— sino de\n * que `cli.ts` importaba `main.ts` de forma estática, y `main.ts` importa\n * ávidamente TODO su grafo (sdk, modos, extensiones, proveedores, motor de\n * control del ordenador) antes de mirar el primer argumento.\n *\n * Lo mismo pasaba con los subcomandos que ya estaban escritos para ser\n * perezosos: `runServeCommand` (audit, discover, banco, review, commit, wiki,\n * usage…) carga sus dependencias con `await import()`, pero se llamaba desde\n * dentro de `main()`, o sea DESPUÉS de haber pagado el grafo entero. La pereza\n * estaba construida y desenchufada.\n *\n * Enganche en upstream: UN solo hunk, el final de `src/cli.ts`. El resto vive\n * aquí, en un fichero nuestro.\n */\n\n/**\n * Prepara el proceso igual que hacía `cli.ts`: título, variables de entorno que\n * leen otros módulos y silenciado de avisos de Node.\n *\n * `configureHttpDispatcher()` NO se llama aquí: es el único trozo del preámbulo\n * que cuesta (carga `undici`, 221 módulos medidos) y solo hace falta cuando algo\n * va a hablar por red. Se llama justo antes de `main()` —donde `runAuthCommand`\n * ya usa la red— y dentro de `runServeCommand`, después de los subcomandos que\n * solo leen ficheros.\n */\nasync function prepararProceso(): Promise<void> {\n\tconst { APP_NAME } = await import(\"../../config.ts\");\n\tprocess.title = APP_NAME;\n\tprocess.env.PI_CODING_AGENT = \"true\";\n\tprocess.env.AI_AGENT = \"pi\";\n\tprocess.emitWarning = (() => {}) as typeof process.emitWarning;\n}\n\n/**\n * ¿Es una invocación que solo pide la versión y nada más?\n *\n * Se exige que sea el ÚNICO argumento a propósito. `ada-cli update --version`\n * lo consume `handlePackageCommand` dentro de `main()` con otro significado (la\n * versión a instalar), y atajarlo aquí cambiaría lo que hace ese comando. Un\n * atajo que se lleva por delante un caso legítimo es peor que no tener atajo.\n */\nexport function esSoloVersion(args: readonly string[]): boolean {\n\treturn args.length === 1 && (args[0] === \"--version\" || args[0] === \"-v\");\n}\n\n/**\n * Punto de entrada real del CLI. Devuelve cuando el trabajo ha terminado.\n *\n * Sin `options`: `cli.ts` nunca las pasó y el SDK no entra por aquí, sino por\n * `createAgentSession`. Un parámetro que nadie rellena es una mentira con tipo.\n */\nexport async function arrancar(args: string[]): Promise<void> {\n\tawait prepararProceso();\n\n\t// Atajo 1: la versión. `VERSION` sale de config.ts, que ya está cargado.\n\tif (esSoloVersion(args)) {\n\t\tconst { VERSION } = await import(\"../../config.ts\");\n\t\tconsole.log(VERSION);\n\t\treturn;\n\t}\n\n\t// `--offline` tiene que estar puesto en el entorno antes de que cualquier\n\t// módulo lo lea. Es lo mismo que hace `main()` en sus primeras líneas; se\n\t// repite aquí porque los subcomandos del atajo 2 ya no pasan por allí.\n\tif (args.includes(\"--offline\") || esBanderaVerdadera(process.env.PI_OFFLINE)) {\n\t\tprocess.env.PI_OFFLINE = \"1\";\n\t\tprocess.env.PI_SKIP_VERSION_CHECK = \"1\";\n\t}\n\n\t// Atajo 2: los subcomandos que no abren el TUI (audit, discover, banco,\n\t// review, commit, usage, wiki, serve, sessions, attach…). Ya cargaban sus\n\t// dependencias de forma perezosa; lo que se gana es no pagar el grafo de\n\t// `main.ts` para llegar hasta ellos.\n\t//\n\t// El orden respecto a `runAuthCommand` (que sigue dentro de `main()`) no\n\t// importa: `auth` no está en la lista de `isServeCommand`, así que los dos\n\t// conjuntos de argumentos son disjuntos.\n\t//\n\t// No se filtra con `isServeCommand` aquí: `runServeCommand` ya empieza por esa\n\t// misma comprobación y devuelve false. Repetirla solo abría la puerta a que\n\t// las dos listas se separaran.\n\tconst { runServeCommand } = await import(\"../../cli/serve-command.ts\");\n\tif (await runServeCommand(args)) return;\n\n\t// Camino normal: el CLI completo. El dispatcher se configura aquí y no antes\n\t// porque `undici` son 221 módulos medidos y los subcomandos que solo leen\n\t// ficheros no los necesitan. Tiene que ser ANTES de `main()`: `runAuthCommand`\n\t// usa la red en las primeras líneas de main, antes de su propia llamada.\n\tconst { configureHttpDispatcher } = await import(\"../http-dispatcher.ts\");\n\tconfigureHttpDispatcher();\n\tconst { main } = await import(\"../../main.ts\");\n\tawait main(args);\n}\n\n/**\n * Copia local de la lectura de banderas de entorno de `main.ts`. Son cuatro\n * líneas y traerlas desde allí obligaría a cargar `main.ts`, que es justo lo que\n * este fichero existe para evitar.\n */\nfunction esBanderaVerdadera(value: string | undefined): boolean {\n\tif (!value) return false;\n\treturn value === \"1\" || value.toLowerCase() === \"true\" || value.toLowerCase() === \"yes\";\n}\n"]}