@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,11 @@
1
+ /**
2
+ * `ada-cli cleanse` — arregla en paralelo lo que ya reportan los
3
+ * comprobadores del proyecto (lint/typecheck/test), sin inventarse ninguno.
4
+ *
5
+ * La lógica vive en `core/limpieza/`: detección (comprobadores.ts), parseo
6
+ * (parseo.ts) y orquestación (reparacion.ts). Este fichero solo traduce
7
+ * argv ↔ texto, igual que `undo-command.ts` y `audit-command.ts`.
8
+ */
9
+ /** Devuelve true si consumió los argumentos. */
10
+ export declare function runCleanseCommand(args: string[], agentDir: string): Promise<boolean>;
11
+ //# sourceMappingURL=cleanse-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanse-command.d.ts","sourceRoot":"","sources":["../../src/cli/cleanse-command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH,iDAAgD;AAChD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoF1F","sourcesContent":["/**\n * `ada-cli cleanse` — arregla en paralelo lo que ya reportan los\n * comprobadores del proyecto (lint/typecheck/test), sin inventarse ninguno.\n *\n * La lógica vive en `core/limpieza/`: detección (comprobadores.ts), parseo\n * (parseo.ts) y orquestación (reparacion.ts). Este fichero solo traduce\n * argv ↔ texto, igual que `undo-command.ts` y `audit-command.ts`.\n */\n\nimport { ejecutarCleanse } from \"../core/limpieza/reparacion.ts\";\n\nconst AYUDA = `Uso:\n ada-cli cleanse [--dry-run] [--concurrency N] [--model <provider/model>]\n\nDetecta los comprobadores YA configurados en el proyecto (scripts de\npackage.json, tsconfig, biome/eslint, ruff, cargo clippy, go vet) MIRANDO\nlo que hay — si no encuentra ninguno, lo dice con lo que ha mirado; no se\ninventa uno.\n\nAgrupa sus diagnósticos por fichero (diez problemas del mismo fichero son\nuna lectura, no diez) y lanza un subagente por fichero en paralelo, bajo un\ntope de concurrencia. Cada arreglo se verifica RE-EJECUTANDO el comprobador\nque lo generó: se acepta solo si el diagnóstico desaparece y no aparece\nninguno nuevo; si no, el fichero se revierte a como estaba.\n\n --dry-run Enseña el plan (comprobadores, ficheros, conteos) sin tocar nada\n --concurrency N Tope de subagentes de reparación en paralelo (por defecto 4)\n --model <provider/model> Modelo de los subagentes; por defecto el más barato configurado`;\n\n/** Devuelve true si consumió los argumentos. */\nexport async function runCleanseCommand(args: string[], agentDir: string): Promise<boolean> {\n\tif (args[0] !== \"cleanse\") return false;\n\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(AYUDA);\n\t\treturn true;\n\t}\n\n\tconst iConcurrencia = args.indexOf(\"--concurrency\");\n\tconst concurrenciaTexto = iConcurrencia >= 0 ? args[iConcurrencia + 1] : undefined;\n\tconst concurrencia = concurrenciaTexto !== undefined ? Number(concurrenciaTexto) : undefined;\n\tif (concurrencia !== undefined && (!Number.isInteger(concurrencia) || concurrencia <= 0)) {\n\t\tconsole.error(\"--concurrency necesita un entero positivo.\");\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\tconst iModelo = args.indexOf(\"--model\");\n\tconst modeloSpec = iModelo >= 0 ? args[iModelo + 1] : undefined;\n\tconst dryRun = args.includes(\"--dry-run\");\n\n\tconst cwd = process.cwd();\n\t// Carga perezosa: el subagente de producción trae el SDK entero, y\n\t// `--dry-run`/`--help` no deberían pagar ese coste.\n\tconst { createSubagentSession } = await import(\"../core/workflows/subagent-host.ts\");\n\n\tconst resultado = await ejecutarCleanse(cwd, {\n\t\tagentDir,\n\t\tcrearSesion: createSubagentSession,\n\t\tmodeloSpec,\n\t\tconcurrencia,\n\t\tdryRun,\n\t\tlog: (linea) => console.log(linea),\n\t});\n\n\tif (resultado.estado === \"sin_comprobadores\") {\n\t\tconsole.log(\"No se encontró ningún comprobador ejecutable. Se ha mirado en:\");\n\t\tfor (const sitio of resultado.mirado) console.log(` - ${sitio}`);\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\n\tconsole.log(`Comprobadores: ${resultado.comprobadores.join(\", \")}`);\n\tfor (const f of resultado.fallidos) {\n\t\tconsole.log(` aviso: ${f.etiqueta} no se pudo ejecutar (${f.motivo})`);\n\t}\n\n\t// Si TODOS los comprobadores detectados fallaron al ejecutarse, \"0\n\t// diagnósticos\" no significa que el proyecto esté limpio — significa que\n\t// no se pudo verificar nada. Decirlo como \"Limpio\" sería el fallo que se\n\t// lee como éxito que este comando existe para evitar.\n\tif (resultado.fallidos.length > 0 && resultado.fallidos.length === resultado.comprobadores.length) {\n\t\tconsole.error(\"\\nNingún comprobador pudo ejecutarse: no se ha verificado nada.\");\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\n\tif (resultado.estado === \"limpio\" && resultado.grupos.length === 0) {\n\t\tconsole.log(\"Limpio: ningún comprobador reportó diagnósticos.\");\n\t\treturn true;\n\t}\n\n\tconsole.log(\n\t\t`${resultado.diagnosticosIniciales} diagnóstico${resultado.diagnosticosIniciales === 1 ? \"\" : \"s\"} en ${resultado.grupos.length} fichero(s):`,\n\t);\n\tfor (const g of resultado.grupos) {\n\t\tconsole.log(` - ${g.ruta ?? \"<proyecto>\"}: ${g.diagnosticos.length}`);\n\t}\n\n\tif (dryRun) {\n\t\tconsole.log(\"\\n--dry-run: no se ha tocado nada.\");\n\t\treturn true;\n\t}\n\n\tif (resultado.estado === \"limpio\") {\n\t\tconsole.log(\"\\nLimpio: todos los diagnósticos detectados se resolvieron y verificaron.\");\n\t\treturn true;\n\t}\n\n\tconsole.error(`\\nQuedan ${resultado.diagnosticosFinales} diagnóstico(s) sin resolver.`);\n\tfor (const r of resultado.reparaciones.filter((r) => !r.aceptado)) {\n\t\tconsole.error(` - ${r.ruta ?? \"<proyecto>\"}: ${r.motivo}`);\n\t}\n\tprocess.exitCode = 1;\n\treturn true;\n}\n"]}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * `ada-cli cleanse` — arregla en paralelo lo que ya reportan los
3
+ * comprobadores del proyecto (lint/typecheck/test), sin inventarse ninguno.
4
+ *
5
+ * La lógica vive en `core/limpieza/`: detección (comprobadores.ts), parseo
6
+ * (parseo.ts) y orquestación (reparacion.ts). Este fichero solo traduce
7
+ * argv ↔ texto, igual que `undo-command.ts` y `audit-command.ts`.
8
+ */
9
+ import { ejecutarCleanse } from "../core/limpieza/reparacion.js";
10
+ const AYUDA = `Uso:
11
+ ada-cli cleanse [--dry-run] [--concurrency N] [--model <provider/model>]
12
+
13
+ Detecta los comprobadores YA configurados en el proyecto (scripts de
14
+ package.json, tsconfig, biome/eslint, ruff, cargo clippy, go vet) MIRANDO
15
+ lo que hay — si no encuentra ninguno, lo dice con lo que ha mirado; no se
16
+ inventa uno.
17
+
18
+ Agrupa sus diagnósticos por fichero (diez problemas del mismo fichero son
19
+ una lectura, no diez) y lanza un subagente por fichero en paralelo, bajo un
20
+ tope de concurrencia. Cada arreglo se verifica RE-EJECUTANDO el comprobador
21
+ que lo generó: se acepta solo si el diagnóstico desaparece y no aparece
22
+ ninguno nuevo; si no, el fichero se revierte a como estaba.
23
+
24
+ --dry-run Enseña el plan (comprobadores, ficheros, conteos) sin tocar nada
25
+ --concurrency N Tope de subagentes de reparación en paralelo (por defecto 4)
26
+ --model <provider/model> Modelo de los subagentes; por defecto el más barato configurado`;
27
+ /** Devuelve true si consumió los argumentos. */
28
+ export async function runCleanseCommand(args, agentDir) {
29
+ if (args[0] !== "cleanse")
30
+ return false;
31
+ if (args.includes("--help") || args.includes("-h")) {
32
+ console.log(AYUDA);
33
+ return true;
34
+ }
35
+ const iConcurrencia = args.indexOf("--concurrency");
36
+ const concurrenciaTexto = iConcurrencia >= 0 ? args[iConcurrencia + 1] : undefined;
37
+ const concurrencia = concurrenciaTexto !== undefined ? Number(concurrenciaTexto) : undefined;
38
+ if (concurrencia !== undefined && (!Number.isInteger(concurrencia) || concurrencia <= 0)) {
39
+ console.error("--concurrency necesita un entero positivo.");
40
+ process.exitCode = 1;
41
+ return true;
42
+ }
43
+ const iModelo = args.indexOf("--model");
44
+ const modeloSpec = iModelo >= 0 ? args[iModelo + 1] : undefined;
45
+ const dryRun = args.includes("--dry-run");
46
+ const cwd = process.cwd();
47
+ // Carga perezosa: el subagente de producción trae el SDK entero, y
48
+ // `--dry-run`/`--help` no deberían pagar ese coste.
49
+ const { createSubagentSession } = await import("../core/workflows/subagent-host.js");
50
+ const resultado = await ejecutarCleanse(cwd, {
51
+ agentDir,
52
+ crearSesion: createSubagentSession,
53
+ modeloSpec,
54
+ concurrencia,
55
+ dryRun,
56
+ log: (linea) => console.log(linea),
57
+ });
58
+ if (resultado.estado === "sin_comprobadores") {
59
+ console.log("No se encontró ningún comprobador ejecutable. Se ha mirado en:");
60
+ for (const sitio of resultado.mirado)
61
+ console.log(` - ${sitio}`);
62
+ process.exitCode = 1;
63
+ return true;
64
+ }
65
+ console.log(`Comprobadores: ${resultado.comprobadores.join(", ")}`);
66
+ for (const f of resultado.fallidos) {
67
+ console.log(` aviso: ${f.etiqueta} no se pudo ejecutar (${f.motivo})`);
68
+ }
69
+ // Si TODOS los comprobadores detectados fallaron al ejecutarse, "0
70
+ // diagnósticos" no significa que el proyecto esté limpio — significa que
71
+ // no se pudo verificar nada. Decirlo como "Limpio" sería el fallo que se
72
+ // lee como éxito que este comando existe para evitar.
73
+ if (resultado.fallidos.length > 0 && resultado.fallidos.length === resultado.comprobadores.length) {
74
+ console.error("\nNingún comprobador pudo ejecutarse: no se ha verificado nada.");
75
+ process.exitCode = 1;
76
+ return true;
77
+ }
78
+ if (resultado.estado === "limpio" && resultado.grupos.length === 0) {
79
+ console.log("Limpio: ningún comprobador reportó diagnósticos.");
80
+ return true;
81
+ }
82
+ console.log(`${resultado.diagnosticosIniciales} diagnóstico${resultado.diagnosticosIniciales === 1 ? "" : "s"} en ${resultado.grupos.length} fichero(s):`);
83
+ for (const g of resultado.grupos) {
84
+ console.log(` - ${g.ruta ?? "<proyecto>"}: ${g.diagnosticos.length}`);
85
+ }
86
+ if (dryRun) {
87
+ console.log("\n--dry-run: no se ha tocado nada.");
88
+ return true;
89
+ }
90
+ if (resultado.estado === "limpio") {
91
+ console.log("\nLimpio: todos los diagnósticos detectados se resolvieron y verificaron.");
92
+ return true;
93
+ }
94
+ console.error(`\nQuedan ${resultado.diagnosticosFinales} diagnóstico(s) sin resolver.`);
95
+ for (const r of resultado.reparaciones.filter((r) => !r.aceptado)) {
96
+ console.error(` - ${r.ruta ?? "<proyecto>"}: ${r.motivo}`);
97
+ }
98
+ process.exitCode = 1;
99
+ return true;
100
+ }
101
+ //# sourceMappingURL=cleanse-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanse-command.js","sourceRoot":"","sources":["../../src/cli/cleanse-command.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `ada-cli cleanse` — arregla en paralelo lo que ya reportan los\n * comprobadores del proyecto (lint/typecheck/test), sin inventarse ninguno.\n *\n * La lógica vive en `core/limpieza/`: detección (comprobadores.ts), parseo\n * (parseo.ts) y orquestación (reparacion.ts). Este fichero solo traduce\n * argv ↔ texto, igual que `undo-command.ts` y `audit-command.ts`.\n */\n\nimport { ejecutarCleanse } from \"../core/limpieza/reparacion.ts\";\n\nconst AYUDA = `Uso:\n ada-cli cleanse [--dry-run] [--concurrency N] [--model <provider/model>]\n\nDetecta los comprobadores YA configurados en el proyecto (scripts de\npackage.json, tsconfig, biome/eslint, ruff, cargo clippy, go vet) MIRANDO\nlo que hay — si no encuentra ninguno, lo dice con lo que ha mirado; no se\ninventa uno.\n\nAgrupa sus diagnósticos por fichero (diez problemas del mismo fichero son\nuna lectura, no diez) y lanza un subagente por fichero en paralelo, bajo un\ntope de concurrencia. Cada arreglo se verifica RE-EJECUTANDO el comprobador\nque lo generó: se acepta solo si el diagnóstico desaparece y no aparece\nninguno nuevo; si no, el fichero se revierte a como estaba.\n\n --dry-run Enseña el plan (comprobadores, ficheros, conteos) sin tocar nada\n --concurrency N Tope de subagentes de reparación en paralelo (por defecto 4)\n --model <provider/model> Modelo de los subagentes; por defecto el más barato configurado`;\n\n/** Devuelve true si consumió los argumentos. */\nexport async function runCleanseCommand(args: string[], agentDir: string): Promise<boolean> {\n\tif (args[0] !== \"cleanse\") return false;\n\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(AYUDA);\n\t\treturn true;\n\t}\n\n\tconst iConcurrencia = args.indexOf(\"--concurrency\");\n\tconst concurrenciaTexto = iConcurrencia >= 0 ? args[iConcurrencia + 1] : undefined;\n\tconst concurrencia = concurrenciaTexto !== undefined ? Number(concurrenciaTexto) : undefined;\n\tif (concurrencia !== undefined && (!Number.isInteger(concurrencia) || concurrencia <= 0)) {\n\t\tconsole.error(\"--concurrency necesita un entero positivo.\");\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\tconst iModelo = args.indexOf(\"--model\");\n\tconst modeloSpec = iModelo >= 0 ? args[iModelo + 1] : undefined;\n\tconst dryRun = args.includes(\"--dry-run\");\n\n\tconst cwd = process.cwd();\n\t// Carga perezosa: el subagente de producción trae el SDK entero, y\n\t// `--dry-run`/`--help` no deberían pagar ese coste.\n\tconst { createSubagentSession } = await import(\"../core/workflows/subagent-host.ts\");\n\n\tconst resultado = await ejecutarCleanse(cwd, {\n\t\tagentDir,\n\t\tcrearSesion: createSubagentSession,\n\t\tmodeloSpec,\n\t\tconcurrencia,\n\t\tdryRun,\n\t\tlog: (linea) => console.log(linea),\n\t});\n\n\tif (resultado.estado === \"sin_comprobadores\") {\n\t\tconsole.log(\"No se encontró ningún comprobador ejecutable. Se ha mirado en:\");\n\t\tfor (const sitio of resultado.mirado) console.log(` - ${sitio}`);\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\n\tconsole.log(`Comprobadores: ${resultado.comprobadores.join(\", \")}`);\n\tfor (const f of resultado.fallidos) {\n\t\tconsole.log(` aviso: ${f.etiqueta} no se pudo ejecutar (${f.motivo})`);\n\t}\n\n\t// Si TODOS los comprobadores detectados fallaron al ejecutarse, \"0\n\t// diagnósticos\" no significa que el proyecto esté limpio — significa que\n\t// no se pudo verificar nada. Decirlo como \"Limpio\" sería el fallo que se\n\t// lee como éxito que este comando existe para evitar.\n\tif (resultado.fallidos.length > 0 && resultado.fallidos.length === resultado.comprobadores.length) {\n\t\tconsole.error(\"\\nNingún comprobador pudo ejecutarse: no se ha verificado nada.\");\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\n\tif (resultado.estado === \"limpio\" && resultado.grupos.length === 0) {\n\t\tconsole.log(\"Limpio: ningún comprobador reportó diagnósticos.\");\n\t\treturn true;\n\t}\n\n\tconsole.log(\n\t\t`${resultado.diagnosticosIniciales} diagnóstico${resultado.diagnosticosIniciales === 1 ? \"\" : \"s\"} en ${resultado.grupos.length} fichero(s):`,\n\t);\n\tfor (const g of resultado.grupos) {\n\t\tconsole.log(` - ${g.ruta ?? \"<proyecto>\"}: ${g.diagnosticos.length}`);\n\t}\n\n\tif (dryRun) {\n\t\tconsole.log(\"\\n--dry-run: no se ha tocado nada.\");\n\t\treturn true;\n\t}\n\n\tif (resultado.estado === \"limpio\") {\n\t\tconsole.log(\"\\nLimpio: todos los diagnósticos detectados se resolvieron y verificaron.\");\n\t\treturn true;\n\t}\n\n\tconsole.error(`\\nQuedan ${resultado.diagnosticosFinales} diagnóstico(s) sin resolver.`);\n\tfor (const r of resultado.reparaciones.filter((r) => !r.aceptado)) {\n\t\tconsole.error(` - ${r.ruta ?? \"<proyecto>\"}: ${r.motivo}`);\n\t}\n\tprocess.exitCode = 1;\n\treturn true;\n}\n"]}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `ada-cli commit` — mensaje de commit por map-reduce sobre lo que hay en el
3
+ * índice.
4
+ *
5
+ * Lee SIEMPRE el estado de índice (`git diff --cached`), no el árbol de
6
+ * trabajo: el mensaje tiene que describir lo que se va a commitear, y si
7
+ * describiera además lo que no está en el índice sería un mensaje falso desde
8
+ * el primer día.
9
+ *
10
+ * Y no commitea por su cuenta salvo `--hacer`. Por defecto imprime el mensaje
11
+ * por stdout y ya: así se puede canalizar (`ada-cli commit | git commit -F -`),
12
+ * revisar antes, o meterlo en un editor. Un comando que escribe en la historia
13
+ * de git sin que se lo pidan se desinstala el primer día que se equivoca.
14
+ *
15
+ * LOS TRES ESTADOS, que aquí son códigos de salida distintos:
16
+ * - índice vacío → no hay nada que describir (stderr, salida 1)
17
+ * - el modelo falla → no se ha podido describir (stderr, salida 1)
18
+ * - titular genérico → se ha descrito mal (stderr, salida 1)
19
+ * En los tres casos stdout queda VACÍO. Es lo que impide que un fallo se
20
+ * encadene a `git commit -F -` y acabe en la historia como si fuera un éxito.
21
+ */
22
+ /** La primera línea con contenido de lo que git escupió por stderr. */
23
+ export declare function primeraLineaDelFallo(error: unknown): string;
24
+ export interface DependenciasCommit {
25
+ /** Llama al modelo. Debe LANZAR si falla; devolver "" cuenta como fallo. */
26
+ llamar: (sistema: string, usuario: string) => Promise<string>;
27
+ cwd?: string;
28
+ }
29
+ /** Devuelve true si consumió los argumentos. */
30
+ export declare function runCommitCommand(args: string[], deps: DependenciasCommit): Promise<boolean>;
31
+ //# sourceMappingURL=commit-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-command.d.ts","sourceRoot":"","sources":["../../src/cli/commit-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA6EH,yEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAM3D;AAED,MAAM,WAAW,kBAAkB;IAClC,4EAA4E;IAC5E,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,iDAAgD;AAChD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CA6DjG","sourcesContent":["/**\n * `ada-cli commit` — mensaje de commit por map-reduce sobre lo que hay en el\n * índice.\n *\n * Lee SIEMPRE el estado de índice (`git diff --cached`), no el árbol de\n * trabajo: el mensaje tiene que describir lo que se va a commitear, y si\n * describiera además lo que no está en el índice sería un mensaje falso desde\n * el primer día.\n *\n * Y no commitea por su cuenta salvo `--hacer`. Por defecto imprime el mensaje\n * por stdout y ya: así se puede canalizar (`ada-cli commit | git commit -F -`),\n * revisar antes, o meterlo en un editor. Un comando que escribe en la historia\n * de git sin que se lo pidan se desinstala el primer día que se equivoca.\n *\n * LOS TRES ESTADOS, que aquí son códigos de salida distintos:\n * - índice vacío → no hay nada que describir (stderr, salida 1)\n * - el modelo falla → no se ha podido describir (stderr, salida 1)\n * - titular genérico → se ha descrito mal (stderr, salida 1)\n * En los tres casos stdout queda VACÍO. Es lo que impide que un fallo se\n * encadene a `git commit -F -` y acabe en la historia como si fuera un éxito.\n */\n\nimport { execFileSync } from \"node:child_process\";\nimport { ErrorDeMensaje, generarMensaje } from \"../core/commit/mensaje.ts\";\n\nconst AYUDA = `Uso:\n ada-cli commit [--hacer] [--model <p/m>] [--detalle]\n\nLee lo que hay EN EL ÍNDICE (git add), resume cada fichero por separado (map,\nen paralelo) y sintetiza el mensaje del conjunto (reduce). Un diff grande no\ncabe en contexto de una vez, y resumirlo entero da titulares genéricos.\n\n --hacer Además de imprimirlo, hace el commit con ese mensaje\n --model Usa un modelo concreto (proveedor/modelo)\n --detalle Escribe por stderr el resumen de cada fichero\n\nSin --hacer solo imprime. Se puede encadenar: ada-cli commit | git commit -F -\n\nSale con código 1 y stdout VACÍO si el índice está vacío, si el modelo falla o\nsi el titular sale genérico: un mensaje que no se ha podido generar no debe\npoder colarse en la historia de git.`;\n\n/**\n * Lo que hay en el índice, con contexto suficiente para entender el cambio.\n *\n * Los argumentos de más NO son cosmética: apagan la configuración de git del\n * USUARIO, que es de donde salió el peor fallo de este comando. `rutaDelTrozo`\n * y el separador de `trocearPorFichero` dan por hecho el formato\n * `diff --git a/x b/x`, y hay cuatro ajustes corrientes que lo cambian sin\n * avisar. Comprobado ejecutando `ada-cli commit --detalle` sobre un índice con\n * dos ficheros (uno de ellos un lockfile):\n *\n * - `diff.mnemonicPrefix=true` → `diff --git c/x i/x`. Salida 0, mensaje con\n * pinta de bueno, y `• (desconocido) (2): …`. El modelo nunca supo qué\n * fichero era. Lo apagan `--src-prefix`/`--dst-prefix`.\n * - `diff.noprefix=true` → `diff --git x x`. Idéntico, salida 0 y\n * `(desconocido)`. Y de paso mata `esRuido`, que casa contra la ruta: el\n * lockfile dejó de detectarse y se le mandó al modelo.\n * - `color.ui=always` → cada línea envuelta en ANSI, así que `^diff --git `\n * no casa NUNCA: cero trozos, y con el índice LLENO contestaba «El diff no\n * contiene ningún fichero». Es «no puedo» disfrazado de «no hay», que es\n * justo lo que este comando existe para no hacer. Lo apaga `--no-color`.\n * - `GIT_EXTERNAL_DIFF` (difftastic y compañía) → una salida sin cabeceras de\n * git en absoluto. Lo mismo. Lo apaga `--no-ext-diff`.\n *\n * `core.quotepath=false` es de la misma familia: por defecto git escribe\n * `diff --git \"a/a\\303\\261adido.ts\" …` en cuanto la ruta lleva una tilde, y con\n * las comillas delante ninguna expresión de `rutaDelTrozo` casa. En un\n * repositorio donde los nombres van en español eso no es un caso raro.\n *\n * Y capturar stderr tampoco es cosmética: por defecto `execFileSync` vuelca el\n * stderr del hijo al nuestro, y fuera de un repositorio git eso son 262 líneas\n * de la ayuda de `git diff` con el aviso de verdad enterrado en medio.\n */\nfunction diffDelIndice(cwd: string): string {\n\treturn execFileSync(\n\t\t\"git\",\n\t\t[\n\t\t\t\"-c\",\n\t\t\t\"core.quotepath=false\",\n\t\t\t\"diff\",\n\t\t\t\"--cached\",\n\t\t\t\"-U5\",\n\t\t\t\"--no-color\",\n\t\t\t\"--no-ext-diff\",\n\t\t\t\"--src-prefix=a/\",\n\t\t\t\"--dst-prefix=b/\",\n\t\t],\n\t\t{\n\t\t\tcwd,\n\t\t\tencoding: \"utf8\",\n\t\t\tmaxBuffer: 64 * 1024 * 1024,\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t},\n\t);\n}\n\n/** La primera línea con contenido de lo que git escupió por stderr. */\nexport function primeraLineaDelFallo(error: unknown): string {\n\tconst stderr = (error as { stderr?: unknown } | null)?.stderr;\n\tconst texto = typeof stderr === \"string\" ? stderr : \"\";\n\tconst linea = texto.split(\"\\n\").find((l) => l.trim() !== \"\");\n\tif (linea) return linea.trim();\n\treturn (error instanceof Error ? error.message : String(error)).split(\"\\n\")[0].trim();\n}\n\nexport interface DependenciasCommit {\n\t/** Llama al modelo. Debe LANZAR si falla; devolver \"\" cuenta como fallo. */\n\tllamar: (sistema: string, usuario: string) => Promise<string>;\n\tcwd?: string;\n}\n\n/** Devuelve true si consumió los argumentos. */\nexport async function runCommitCommand(args: string[], deps: DependenciasCommit): Promise<boolean> {\n\tif (args[0] !== \"commit\") return false;\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(AYUDA);\n\t\treturn true;\n\t}\n\n\tconst cwd = deps.cwd ?? process.cwd();\n\n\tlet diff: string;\n\ttry {\n\t\tdiff = diffDelIndice(cwd);\n\t} catch (error) {\n\t\t// «No he podido mirar» es un tercer estado: no es un índice vacío. Fuera\n\t\t// de un repositorio git, decir \"no hay nada en el índice\" mandaría al\n\t\t// usuario a hacer `git add` de algo que no tiene dónde añadirse.\n\t\tconsole.error(`No se ha podido leer el índice de git: ${primeraLineaDelFallo(error)}`);\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\n\tif (diff.trim() === \"\") {\n\t\tconsole.error(\"No hay nada en el índice. Añade lo que quieras commitear con `git add` y vuelve a intentarlo.\");\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\n\tlet generado: Awaited<ReturnType<typeof generarMensaje>>;\n\ttry {\n\t\tgenerado = await generarMensaje(diff, { llamar: deps.llamar });\n\t} catch (error) {\n\t\tconst razon =\n\t\t\terror instanceof ErrorDeMensaje && error.causa === \"generico\"\n\t\t\t\t? \"El mensaje ha salido genérico y no se imprime: escríbelo a mano.\"\n\t\t\t\t: \"No se ha podido generar el mensaje. El índice sigue intacto.\";\n\t\tconsole.error(`${razon}\\n${error instanceof Error ? error.message : String(error)}`);\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\n\tif (args.includes(\"--detalle\")) {\n\t\tfor (const r of generado.resumenes) {\n\t\t\tconsole.error(` ${r.ruido ? \"·\" : \"•\"} ${r.ruta} (${r.sustancia}): ${r.resumen}`);\n\t\t}\n\t}\n\n\tconsole.log(generado.mensaje);\n\n\tif (args.includes(\"--hacer\")) {\n\t\ttry {\n\t\t\texecFileSync(\"git\", [\"commit\", \"-F\", \"-\"], {\n\t\t\t\tcwd,\n\t\t\t\tinput: generado.mensaje,\n\t\t\t\tstdio: [\"pipe\", \"inherit\", \"inherit\"],\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tconsole.error(`El commit falló: ${error instanceof Error ? error.message : String(error)}`);\n\t\t\tprocess.exitCode = 1;\n\t\t}\n\t}\n\treturn true;\n}\n"]}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * `ada-cli commit` — mensaje de commit por map-reduce sobre lo que hay en el
3
+ * índice.
4
+ *
5
+ * Lee SIEMPRE el estado de índice (`git diff --cached`), no el árbol de
6
+ * trabajo: el mensaje tiene que describir lo que se va a commitear, y si
7
+ * describiera además lo que no está en el índice sería un mensaje falso desde
8
+ * el primer día.
9
+ *
10
+ * Y no commitea por su cuenta salvo `--hacer`. Por defecto imprime el mensaje
11
+ * por stdout y ya: así se puede canalizar (`ada-cli commit | git commit -F -`),
12
+ * revisar antes, o meterlo en un editor. Un comando que escribe en la historia
13
+ * de git sin que se lo pidan se desinstala el primer día que se equivoca.
14
+ *
15
+ * LOS TRES ESTADOS, que aquí son códigos de salida distintos:
16
+ * - índice vacío → no hay nada que describir (stderr, salida 1)
17
+ * - el modelo falla → no se ha podido describir (stderr, salida 1)
18
+ * - titular genérico → se ha descrito mal (stderr, salida 1)
19
+ * En los tres casos stdout queda VACÍO. Es lo que impide que un fallo se
20
+ * encadene a `git commit -F -` y acabe en la historia como si fuera un éxito.
21
+ */
22
+ import { execFileSync } from "node:child_process";
23
+ import { ErrorDeMensaje, generarMensaje } from "../core/commit/mensaje.js";
24
+ const AYUDA = `Uso:
25
+ ada-cli commit [--hacer] [--model <p/m>] [--detalle]
26
+
27
+ Lee lo que hay EN EL ÍNDICE (git add), resume cada fichero por separado (map,
28
+ en paralelo) y sintetiza el mensaje del conjunto (reduce). Un diff grande no
29
+ cabe en contexto de una vez, y resumirlo entero da titulares genéricos.
30
+
31
+ --hacer Además de imprimirlo, hace el commit con ese mensaje
32
+ --model Usa un modelo concreto (proveedor/modelo)
33
+ --detalle Escribe por stderr el resumen de cada fichero
34
+
35
+ Sin --hacer solo imprime. Se puede encadenar: ada-cli commit | git commit -F -
36
+
37
+ Sale con código 1 y stdout VACÍO si el índice está vacío, si el modelo falla o
38
+ si el titular sale genérico: un mensaje que no se ha podido generar no debe
39
+ poder colarse en la historia de git.`;
40
+ /**
41
+ * Lo que hay en el índice, con contexto suficiente para entender el cambio.
42
+ *
43
+ * Los argumentos de más NO son cosmética: apagan la configuración de git del
44
+ * USUARIO, que es de donde salió el peor fallo de este comando. `rutaDelTrozo`
45
+ * y el separador de `trocearPorFichero` dan por hecho el formato
46
+ * `diff --git a/x b/x`, y hay cuatro ajustes corrientes que lo cambian sin
47
+ * avisar. Comprobado ejecutando `ada-cli commit --detalle` sobre un índice con
48
+ * dos ficheros (uno de ellos un lockfile):
49
+ *
50
+ * - `diff.mnemonicPrefix=true` → `diff --git c/x i/x`. Salida 0, mensaje con
51
+ * pinta de bueno, y `• (desconocido) (2): …`. El modelo nunca supo qué
52
+ * fichero era. Lo apagan `--src-prefix`/`--dst-prefix`.
53
+ * - `diff.noprefix=true` → `diff --git x x`. Idéntico, salida 0 y
54
+ * `(desconocido)`. Y de paso mata `esRuido`, que casa contra la ruta: el
55
+ * lockfile dejó de detectarse y se le mandó al modelo.
56
+ * - `color.ui=always` → cada línea envuelta en ANSI, así que `^diff --git `
57
+ * no casa NUNCA: cero trozos, y con el índice LLENO contestaba «El diff no
58
+ * contiene ningún fichero». Es «no puedo» disfrazado de «no hay», que es
59
+ * justo lo que este comando existe para no hacer. Lo apaga `--no-color`.
60
+ * - `GIT_EXTERNAL_DIFF` (difftastic y compañía) → una salida sin cabeceras de
61
+ * git en absoluto. Lo mismo. Lo apaga `--no-ext-diff`.
62
+ *
63
+ * `core.quotepath=false` es de la misma familia: por defecto git escribe
64
+ * `diff --git "a/a\303\261adido.ts" …` en cuanto la ruta lleva una tilde, y con
65
+ * las comillas delante ninguna expresión de `rutaDelTrozo` casa. En un
66
+ * repositorio donde los nombres van en español eso no es un caso raro.
67
+ *
68
+ * Y capturar stderr tampoco es cosmética: por defecto `execFileSync` vuelca el
69
+ * stderr del hijo al nuestro, y fuera de un repositorio git eso son 262 líneas
70
+ * de la ayuda de `git diff` con el aviso de verdad enterrado en medio.
71
+ */
72
+ function diffDelIndice(cwd) {
73
+ return execFileSync("git", [
74
+ "-c",
75
+ "core.quotepath=false",
76
+ "diff",
77
+ "--cached",
78
+ "-U5",
79
+ "--no-color",
80
+ "--no-ext-diff",
81
+ "--src-prefix=a/",
82
+ "--dst-prefix=b/",
83
+ ], {
84
+ cwd,
85
+ encoding: "utf8",
86
+ maxBuffer: 64 * 1024 * 1024,
87
+ stdio: ["ignore", "pipe", "pipe"],
88
+ });
89
+ }
90
+ /** La primera línea con contenido de lo que git escupió por stderr. */
91
+ export function primeraLineaDelFallo(error) {
92
+ const stderr = error?.stderr;
93
+ const texto = typeof stderr === "string" ? stderr : "";
94
+ const linea = texto.split("\n").find((l) => l.trim() !== "");
95
+ if (linea)
96
+ return linea.trim();
97
+ return (error instanceof Error ? error.message : String(error)).split("\n")[0].trim();
98
+ }
99
+ /** Devuelve true si consumió los argumentos. */
100
+ export async function runCommitCommand(args, deps) {
101
+ if (args[0] !== "commit")
102
+ return false;
103
+ if (args.includes("--help") || args.includes("-h")) {
104
+ console.log(AYUDA);
105
+ return true;
106
+ }
107
+ const cwd = deps.cwd ?? process.cwd();
108
+ let diff;
109
+ try {
110
+ diff = diffDelIndice(cwd);
111
+ }
112
+ catch (error) {
113
+ // «No he podido mirar» es un tercer estado: no es un índice vacío. Fuera
114
+ // de un repositorio git, decir "no hay nada en el índice" mandaría al
115
+ // usuario a hacer `git add` de algo que no tiene dónde añadirse.
116
+ console.error(`No se ha podido leer el índice de git: ${primeraLineaDelFallo(error)}`);
117
+ process.exitCode = 1;
118
+ return true;
119
+ }
120
+ if (diff.trim() === "") {
121
+ console.error("No hay nada en el índice. Añade lo que quieras commitear con `git add` y vuelve a intentarlo.");
122
+ process.exitCode = 1;
123
+ return true;
124
+ }
125
+ let generado;
126
+ try {
127
+ generado = await generarMensaje(diff, { llamar: deps.llamar });
128
+ }
129
+ catch (error) {
130
+ const razon = error instanceof ErrorDeMensaje && error.causa === "generico"
131
+ ? "El mensaje ha salido genérico y no se imprime: escríbelo a mano."
132
+ : "No se ha podido generar el mensaje. El índice sigue intacto.";
133
+ console.error(`${razon}\n${error instanceof Error ? error.message : String(error)}`);
134
+ process.exitCode = 1;
135
+ return true;
136
+ }
137
+ if (args.includes("--detalle")) {
138
+ for (const r of generado.resumenes) {
139
+ console.error(` ${r.ruido ? "·" : "•"} ${r.ruta} (${r.sustancia}): ${r.resumen}`);
140
+ }
141
+ }
142
+ console.log(generado.mensaje);
143
+ if (args.includes("--hacer")) {
144
+ try {
145
+ execFileSync("git", ["commit", "-F", "-"], {
146
+ cwd,
147
+ input: generado.mensaje,
148
+ stdio: ["pipe", "inherit", "inherit"],
149
+ });
150
+ }
151
+ catch (error) {
152
+ console.error(`El commit falló: ${error instanceof Error ? error.message : String(error)}`);
153
+ process.exitCode = 1;
154
+ }
155
+ }
156
+ return true;
157
+ }
158
+ //# sourceMappingURL=commit-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-command.js","sourceRoot":"","sources":["../../src/cli/commit-command.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `ada-cli commit` — mensaje de commit por map-reduce sobre lo que hay en el\n * índice.\n *\n * Lee SIEMPRE el estado de índice (`git diff --cached`), no el árbol de\n * trabajo: el mensaje tiene que describir lo que se va a commitear, y si\n * describiera además lo que no está en el índice sería un mensaje falso desde\n * el primer día.\n *\n * Y no commitea por su cuenta salvo `--hacer`. Por defecto imprime el mensaje\n * por stdout y ya: así se puede canalizar (`ada-cli commit | git commit -F -`),\n * revisar antes, o meterlo en un editor. Un comando que escribe en la historia\n * de git sin que se lo pidan se desinstala el primer día que se equivoca.\n *\n * LOS TRES ESTADOS, que aquí son códigos de salida distintos:\n * - índice vacío → no hay nada que describir (stderr, salida 1)\n * - el modelo falla → no se ha podido describir (stderr, salida 1)\n * - titular genérico → se ha descrito mal (stderr, salida 1)\n * En los tres casos stdout queda VACÍO. Es lo que impide que un fallo se\n * encadene a `git commit -F -` y acabe en la historia como si fuera un éxito.\n */\n\nimport { execFileSync } from \"node:child_process\";\nimport { ErrorDeMensaje, generarMensaje } from \"../core/commit/mensaje.ts\";\n\nconst AYUDA = `Uso:\n ada-cli commit [--hacer] [--model <p/m>] [--detalle]\n\nLee lo que hay EN EL ÍNDICE (git add), resume cada fichero por separado (map,\nen paralelo) y sintetiza el mensaje del conjunto (reduce). Un diff grande no\ncabe en contexto de una vez, y resumirlo entero da titulares genéricos.\n\n --hacer Además de imprimirlo, hace el commit con ese mensaje\n --model Usa un modelo concreto (proveedor/modelo)\n --detalle Escribe por stderr el resumen de cada fichero\n\nSin --hacer solo imprime. Se puede encadenar: ada-cli commit | git commit -F -\n\nSale con código 1 y stdout VACÍO si el índice está vacío, si el modelo falla o\nsi el titular sale genérico: un mensaje que no se ha podido generar no debe\npoder colarse en la historia de git.`;\n\n/**\n * Lo que hay en el índice, con contexto suficiente para entender el cambio.\n *\n * Los argumentos de más NO son cosmética: apagan la configuración de git del\n * USUARIO, que es de donde salió el peor fallo de este comando. `rutaDelTrozo`\n * y el separador de `trocearPorFichero` dan por hecho el formato\n * `diff --git a/x b/x`, y hay cuatro ajustes corrientes que lo cambian sin\n * avisar. Comprobado ejecutando `ada-cli commit --detalle` sobre un índice con\n * dos ficheros (uno de ellos un lockfile):\n *\n * - `diff.mnemonicPrefix=true` → `diff --git c/x i/x`. Salida 0, mensaje con\n * pinta de bueno, y `• (desconocido) (2): …`. El modelo nunca supo qué\n * fichero era. Lo apagan `--src-prefix`/`--dst-prefix`.\n * - `diff.noprefix=true` → `diff --git x x`. Idéntico, salida 0 y\n * `(desconocido)`. Y de paso mata `esRuido`, que casa contra la ruta: el\n * lockfile dejó de detectarse y se le mandó al modelo.\n * - `color.ui=always` → cada línea envuelta en ANSI, así que `^diff --git `\n * no casa NUNCA: cero trozos, y con el índice LLENO contestaba «El diff no\n * contiene ningún fichero». Es «no puedo» disfrazado de «no hay», que es\n * justo lo que este comando existe para no hacer. Lo apaga `--no-color`.\n * - `GIT_EXTERNAL_DIFF` (difftastic y compañía) → una salida sin cabeceras de\n * git en absoluto. Lo mismo. Lo apaga `--no-ext-diff`.\n *\n * `core.quotepath=false` es de la misma familia: por defecto git escribe\n * `diff --git \"a/a\\303\\261adido.ts\" …` en cuanto la ruta lleva una tilde, y con\n * las comillas delante ninguna expresión de `rutaDelTrozo` casa. En un\n * repositorio donde los nombres van en español eso no es un caso raro.\n *\n * Y capturar stderr tampoco es cosmética: por defecto `execFileSync` vuelca el\n * stderr del hijo al nuestro, y fuera de un repositorio git eso son 262 líneas\n * de la ayuda de `git diff` con el aviso de verdad enterrado en medio.\n */\nfunction diffDelIndice(cwd: string): string {\n\treturn execFileSync(\n\t\t\"git\",\n\t\t[\n\t\t\t\"-c\",\n\t\t\t\"core.quotepath=false\",\n\t\t\t\"diff\",\n\t\t\t\"--cached\",\n\t\t\t\"-U5\",\n\t\t\t\"--no-color\",\n\t\t\t\"--no-ext-diff\",\n\t\t\t\"--src-prefix=a/\",\n\t\t\t\"--dst-prefix=b/\",\n\t\t],\n\t\t{\n\t\t\tcwd,\n\t\t\tencoding: \"utf8\",\n\t\t\tmaxBuffer: 64 * 1024 * 1024,\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t},\n\t);\n}\n\n/** La primera línea con contenido de lo que git escupió por stderr. */\nexport function primeraLineaDelFallo(error: unknown): string {\n\tconst stderr = (error as { stderr?: unknown } | null)?.stderr;\n\tconst texto = typeof stderr === \"string\" ? stderr : \"\";\n\tconst linea = texto.split(\"\\n\").find((l) => l.trim() !== \"\");\n\tif (linea) return linea.trim();\n\treturn (error instanceof Error ? error.message : String(error)).split(\"\\n\")[0].trim();\n}\n\nexport interface DependenciasCommit {\n\t/** Llama al modelo. Debe LANZAR si falla; devolver \"\" cuenta como fallo. */\n\tllamar: (sistema: string, usuario: string) => Promise<string>;\n\tcwd?: string;\n}\n\n/** Devuelve true si consumió los argumentos. */\nexport async function runCommitCommand(args: string[], deps: DependenciasCommit): Promise<boolean> {\n\tif (args[0] !== \"commit\") return false;\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(AYUDA);\n\t\treturn true;\n\t}\n\n\tconst cwd = deps.cwd ?? process.cwd();\n\n\tlet diff: string;\n\ttry {\n\t\tdiff = diffDelIndice(cwd);\n\t} catch (error) {\n\t\t// «No he podido mirar» es un tercer estado: no es un índice vacío. Fuera\n\t\t// de un repositorio git, decir \"no hay nada en el índice\" mandaría al\n\t\t// usuario a hacer `git add` de algo que no tiene dónde añadirse.\n\t\tconsole.error(`No se ha podido leer el índice de git: ${primeraLineaDelFallo(error)}`);\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\n\tif (diff.trim() === \"\") {\n\t\tconsole.error(\"No hay nada en el índice. Añade lo que quieras commitear con `git add` y vuelve a intentarlo.\");\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\n\tlet generado: Awaited<ReturnType<typeof generarMensaje>>;\n\ttry {\n\t\tgenerado = await generarMensaje(diff, { llamar: deps.llamar });\n\t} catch (error) {\n\t\tconst razon =\n\t\t\terror instanceof ErrorDeMensaje && error.causa === \"generico\"\n\t\t\t\t? \"El mensaje ha salido genérico y no se imprime: escríbelo a mano.\"\n\t\t\t\t: \"No se ha podido generar el mensaje. El índice sigue intacto.\";\n\t\tconsole.error(`${razon}\\n${error instanceof Error ? error.message : String(error)}`);\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\n\tif (args.includes(\"--detalle\")) {\n\t\tfor (const r of generado.resumenes) {\n\t\t\tconsole.error(` ${r.ruido ? \"·\" : \"•\"} ${r.ruta} (${r.sustancia}): ${r.resumen}`);\n\t\t}\n\t}\n\n\tconsole.log(generado.mensaje);\n\n\tif (args.includes(\"--hacer\")) {\n\t\ttry {\n\t\t\texecFileSync(\"git\", [\"commit\", \"-F\", \"-\"], {\n\t\t\t\tcwd,\n\t\t\t\tinput: generado.mensaje,\n\t\t\t\tstdio: [\"pipe\", \"inherit\", \"inherit\"],\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tconsole.error(`El commit falló: ${error instanceof Error ? error.message : String(error)}`);\n\t\t\tprocess.exitCode = 1;\n\t\t}\n\t}\n\treturn true;\n}\n"]}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `ada-cli computer` — el equivalente en terminal del panel de Ajustes.
3
+ *
4
+ * El control del ordenador no puede ser una función solo del escritorio: quien
5
+ * usa el CLI o el SDK necesita las mismas tres cosas —saber si el motor está,
6
+ * instalarlo y conceder los permisos del sistema— sin abrir una interfaz
7
+ * gráfica.
8
+ *
9
+ * La lógica vive en `core/computer/driver.ts`; aquí solo se formatea.
10
+ */
11
+ export declare function runComputerCommand(args: string[]): Promise<boolean>;
12
+ //# sourceMappingURL=computer-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computer-command.d.ts","sourceRoot":"","sources":["../../src/cli/computer-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgDH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA8FzE","sourcesContent":["/**\n * `ada-cli computer` — el equivalente en terminal del panel de Ajustes.\n *\n * El control del ordenador no puede ser una función solo del escritorio: quien\n * usa el CLI o el SDK necesita las mismas tres cosas —saber si el motor está,\n * instalarlo y conceder los permisos del sistema— sin abrir una interfaz\n * gráfica.\n *\n * La lógica vive en `core/computer/driver.ts`; aquí solo se formatea.\n */\n\nimport type { EstadoMotor } from \"../core/computer/driver.ts\";\nimport {\n\testadoDelMotor,\n\tinstalarMotor,\n\tpedirPermisos,\n\trecomprobarPermisos,\n\tVERSION_MOTOR,\n} from \"../core/computer/driver.ts\";\n\nfunction imprimirEstado(e: EstadoMotor): void {\n\tif (!e.instalado) {\n\t\tconsole.log(\"Motor: NO instalado\");\n\t\tif (e.detalle) console.log(` ${e.detalle}`);\n\t\tconsole.log(`\\nInstálalo con: ada-cli computer install`);\n\t\treturn;\n\t}\n\tconsole.log(`Motor: instalado (${e.version ?? \"versión desconocida\"})`);\n\tif (e.consultaFallida) {\n\t\t// No es lo mismo que denegados: aquí no hemos podido ni preguntar, y\n\t\t// mandar al usuario a Ajustes del Sistema sería mandarlo a mirar unos\n\t\t// interruptores que probablemente ya estén bien.\n\t\tconsole.log(\" No se pudo consultar el estado de los permisos: el motor no contestó.\");\n\t\tif (e.detalle) console.log(` ${e.detalle}`);\n\t\tconsole.log(\"\\nReintenta con: ada-cli computer recheck\");\n\t\treturn;\n\t}\n\tif (!e.permisosRelevantes) {\n\t\t// En Linux y Windows no hay nada que conceder. Enseñar aquí un aviso de\n\t\t// permisos sería inventarse un problema.\n\t\tconsole.log(\"Permisos del sistema: no hacen falta en esta plataforma.\");\n\t\treturn;\n\t}\n\tconsole.log(` 1. Accesibilidad: ${e.accesibilidad ? \"concedida\" : \"FALTA\"}`);\n\tconsole.log(` 2. Grabación de pantalla: ${e.grabacionPantalla ? \"concedida\" : \"FALTA\"}`);\n\tif (e.pantallaDeOtraApp) {\n\t\t// El caso que deja atascado a cualquiera: el interruptor se ve encendido\n\t\t// en Ajustes y aun así no se puede capturar.\n\t\tconsole.log(\" macOS lo da por concedido, pero la captura falla: el permiso\");\n\t\tconsole.log(\" pertenece a otra versión de la app. Quítala de la lista con el\");\n\t\tconsole.log(\" «−» y vuelve a concederlo.\");\n\t}\n\tif (!e.accesibilidad || !e.grabacionPantalla) {\n\t\tconsole.log(\"\\nSon dos paneles distintos. Concédelos con: ada-cli computer permissions\");\n\t}\n}\n\nexport async function runComputerCommand(args: string[]): Promise<boolean> {\n\tconst sub = args[1] ?? \"status\";\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(`Uso:\n ada-cli computer status ¿Está el motor listo? (por defecto)\n ada-cli computer install Instala el motor ${VERSION_MOTOR} (helper nativo)\n ada-cli computer permissions Abre el panel del permiso que falte (macOS)\n ada-cli computer recheck Reinicia el helper y vuelve a mirar los permisos\n\nEn macOS el motor se instala como una aplicación FIRMADA en ~/Applications:\nlos permisos de Accesibilidad se conceden a una aplicación, no a un binario\nsuelto. Actívalo además en settings.json:\n\n { \"computerUse\": { \"enabled\": true } }\n\nSin lista de aplicaciones que mantener: lo que limita cada una es su categoría.\nLos navegadores solo se pueden ver (usa las tools browser_*), las terminales e\nIDE solo pulsar (usa bash), y los gestores de credenciales no se tocan.`);\n\t\treturn true;\n\t}\n\n\tif (sub === \"status\") {\n\t\timprimirEstado(await estadoDelMotor());\n\t\treturn true;\n\t}\n\n\tif (sub === \"install\") {\n\t\tconst previo = await estadoDelMotor();\n\t\tif (previo.instalado) {\n\t\t\tconsole.log(`Ya está instalado (${previo.version ?? \"?\"}).`);\n\t\t\timprimirEstado(previo);\n\t\t\treturn true;\n\t\t}\n\t\tconsole.log(`Instalando el motor ${VERSION_MOTOR}…`);\n\t\tconst r = await instalarMotor();\n\t\t// La salida de npm se enseña entera: un \"listo\" opaco esconde los avisos\n\t\t// y, si falla, el motivo.\n\t\tif (r.salida) console.log(r.salida);\n\t\tif (!r.ok) {\n\t\t\tconsole.error(\"\\nLa instalación falló.\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\timprimirEstado(await estadoDelMotor());\n\t\treturn true;\n\t}\n\n\tif (sub === \"permissions\") {\n\t\tconst antes = await estadoDelMotor();\n\t\tif (!antes.instalado) {\n\t\t\tconsole.error(\"El motor no está instalado. Usa 'ada-cli computer install' primero.\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\tif (!antes.permisosRelevantes) {\n\t\t\tconsole.log(\"En esta plataforma no hacen falta permisos del sistema.\");\n\t\t\treturn true;\n\t\t}\n\t\t// De uno en uno, y el que falte primero. Son DOS paneles distintos de\n\t\t// Ajustes del Sistema: abrirlos los dos a la vez le pone al usuario dos\n\t\t// ventanas encima sin decirle cuál es cuál.\n\t\tconst cual = antes.accesibilidad ? \"pantalla\" : \"accesibilidad\";\n\t\tconst nombre = cual === \"pantalla\" ? \"Grabación de pantalla\" : \"Accesibilidad\";\n\t\tconst paso = cual === \"pantalla\" ? 2 : 1;\n\t\tconsole.log(`Paso ${paso} de 2 — abriendo el panel de ${nombre}…`);\n\t\tconsole.log(\"Ada ya aparece en la lista: solo tienes que darle al interruptor.\\n\");\n\t\tconst despues = await pedirPermisos({ permiso: cual });\n\t\timprimirEstado(despues);\n\t\tif (!despues.accesibilidad || !despues.grabacionPantalla) {\n\t\t\t// No se da por bueno hasta comprobarlo: el usuario tarda en conceder,\n\t\t\t// y decir \"listo\" sin mirar sería mentir.\n\t\t\tconsole.log(\"\\nCuando lo hayas concedido: ada-cli computer recheck\");\n\t\t\tprocess.exitCode = 1;\n\t\t}\n\t\treturn true;\n\t}\n\n\tif (sub === \"recheck\") {\n\t\t// Reinicia el helper antes de mirar: macOS cachea los permisos por\n\t\t// proceso, así que un \"acabo de concederlo\" se sigue leyendo como\n\t\t// denegado hasta que el helper vuelve a arrancar.\n\t\tconsole.log(\"Reiniciando el motor y volviendo a comprobar…\\n\");\n\t\tconst e = await recomprobarPermisos();\n\t\timprimirEstado(e);\n\t\tif (e.permisosRelevantes && (!e.accesibilidad || !e.grabacionPantalla)) {\n\t\t\tconsole.log(\"\\nFalta alguno todavía: ada-cli computer permissions\");\n\t\t\tprocess.exitCode = 1;\n\t\t}\n\t\treturn true;\n\t}\n\n\tconsole.error(`Subcomando desconocido: ${sub}. Usa 'ada-cli computer --help'.`);\n\tprocess.exitCode = 1;\n\treturn true;\n}\n"]}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * `ada-cli computer` — el equivalente en terminal del panel de Ajustes.
3
+ *
4
+ * El control del ordenador no puede ser una función solo del escritorio: quien
5
+ * usa el CLI o el SDK necesita las mismas tres cosas —saber si el motor está,
6
+ * instalarlo y conceder los permisos del sistema— sin abrir una interfaz
7
+ * gráfica.
8
+ *
9
+ * La lógica vive en `core/computer/driver.ts`; aquí solo se formatea.
10
+ */
11
+ import { estadoDelMotor, instalarMotor, pedirPermisos, recomprobarPermisos, VERSION_MOTOR, } from "../core/computer/driver.js";
12
+ function imprimirEstado(e) {
13
+ if (!e.instalado) {
14
+ console.log("Motor: NO instalado");
15
+ if (e.detalle)
16
+ console.log(` ${e.detalle}`);
17
+ console.log(`\nInstálalo con: ada-cli computer install`);
18
+ return;
19
+ }
20
+ console.log(`Motor: instalado (${e.version ?? "versión desconocida"})`);
21
+ if (e.consultaFallida) {
22
+ // No es lo mismo que denegados: aquí no hemos podido ni preguntar, y
23
+ // mandar al usuario a Ajustes del Sistema sería mandarlo a mirar unos
24
+ // interruptores que probablemente ya estén bien.
25
+ console.log(" No se pudo consultar el estado de los permisos: el motor no contestó.");
26
+ if (e.detalle)
27
+ console.log(` ${e.detalle}`);
28
+ console.log("\nReintenta con: ada-cli computer recheck");
29
+ return;
30
+ }
31
+ if (!e.permisosRelevantes) {
32
+ // En Linux y Windows no hay nada que conceder. Enseñar aquí un aviso de
33
+ // permisos sería inventarse un problema.
34
+ console.log("Permisos del sistema: no hacen falta en esta plataforma.");
35
+ return;
36
+ }
37
+ console.log(` 1. Accesibilidad: ${e.accesibilidad ? "concedida" : "FALTA"}`);
38
+ console.log(` 2. Grabación de pantalla: ${e.grabacionPantalla ? "concedida" : "FALTA"}`);
39
+ if (e.pantallaDeOtraApp) {
40
+ // El caso que deja atascado a cualquiera: el interruptor se ve encendido
41
+ // en Ajustes y aun así no se puede capturar.
42
+ console.log(" macOS lo da por concedido, pero la captura falla: el permiso");
43
+ console.log(" pertenece a otra versión de la app. Quítala de la lista con el");
44
+ console.log(" «−» y vuelve a concederlo.");
45
+ }
46
+ if (!e.accesibilidad || !e.grabacionPantalla) {
47
+ console.log("\nSon dos paneles distintos. Concédelos con: ada-cli computer permissions");
48
+ }
49
+ }
50
+ export async function runComputerCommand(args) {
51
+ const sub = args[1] ?? "status";
52
+ if (args.includes("--help") || args.includes("-h")) {
53
+ console.log(`Uso:
54
+ ada-cli computer status ¿Está el motor listo? (por defecto)
55
+ ada-cli computer install Instala el motor ${VERSION_MOTOR} (helper nativo)
56
+ ada-cli computer permissions Abre el panel del permiso que falte (macOS)
57
+ ada-cli computer recheck Reinicia el helper y vuelve a mirar los permisos
58
+
59
+ En macOS el motor se instala como una aplicación FIRMADA en ~/Applications:
60
+ los permisos de Accesibilidad se conceden a una aplicación, no a un binario
61
+ suelto. Actívalo además en settings.json:
62
+
63
+ { "computerUse": { "enabled": true } }
64
+
65
+ Sin lista de aplicaciones que mantener: lo que limita cada una es su categoría.
66
+ Los navegadores solo se pueden ver (usa las tools browser_*), las terminales e
67
+ IDE solo pulsar (usa bash), y los gestores de credenciales no se tocan.`);
68
+ return true;
69
+ }
70
+ if (sub === "status") {
71
+ imprimirEstado(await estadoDelMotor());
72
+ return true;
73
+ }
74
+ if (sub === "install") {
75
+ const previo = await estadoDelMotor();
76
+ if (previo.instalado) {
77
+ console.log(`Ya está instalado (${previo.version ?? "?"}).`);
78
+ imprimirEstado(previo);
79
+ return true;
80
+ }
81
+ console.log(`Instalando el motor ${VERSION_MOTOR}…`);
82
+ const r = await instalarMotor();
83
+ // La salida de npm se enseña entera: un "listo" opaco esconde los avisos
84
+ // y, si falla, el motivo.
85
+ if (r.salida)
86
+ console.log(r.salida);
87
+ if (!r.ok) {
88
+ console.error("\nLa instalación falló.");
89
+ process.exitCode = 1;
90
+ return true;
91
+ }
92
+ imprimirEstado(await estadoDelMotor());
93
+ return true;
94
+ }
95
+ if (sub === "permissions") {
96
+ const antes = await estadoDelMotor();
97
+ if (!antes.instalado) {
98
+ console.error("El motor no está instalado. Usa 'ada-cli computer install' primero.");
99
+ process.exitCode = 1;
100
+ return true;
101
+ }
102
+ if (!antes.permisosRelevantes) {
103
+ console.log("En esta plataforma no hacen falta permisos del sistema.");
104
+ return true;
105
+ }
106
+ // De uno en uno, y el que falte primero. Son DOS paneles distintos de
107
+ // Ajustes del Sistema: abrirlos los dos a la vez le pone al usuario dos
108
+ // ventanas encima sin decirle cuál es cuál.
109
+ const cual = antes.accesibilidad ? "pantalla" : "accesibilidad";
110
+ const nombre = cual === "pantalla" ? "Grabación de pantalla" : "Accesibilidad";
111
+ const paso = cual === "pantalla" ? 2 : 1;
112
+ console.log(`Paso ${paso} de 2 — abriendo el panel de ${nombre}…`);
113
+ console.log("Ada ya aparece en la lista: solo tienes que darle al interruptor.\n");
114
+ const despues = await pedirPermisos({ permiso: cual });
115
+ imprimirEstado(despues);
116
+ if (!despues.accesibilidad || !despues.grabacionPantalla) {
117
+ // No se da por bueno hasta comprobarlo: el usuario tarda en conceder,
118
+ // y decir "listo" sin mirar sería mentir.
119
+ console.log("\nCuando lo hayas concedido: ada-cli computer recheck");
120
+ process.exitCode = 1;
121
+ }
122
+ return true;
123
+ }
124
+ if (sub === "recheck") {
125
+ // Reinicia el helper antes de mirar: macOS cachea los permisos por
126
+ // proceso, así que un "acabo de concederlo" se sigue leyendo como
127
+ // denegado hasta que el helper vuelve a arrancar.
128
+ console.log("Reiniciando el motor y volviendo a comprobar…\n");
129
+ const e = await recomprobarPermisos();
130
+ imprimirEstado(e);
131
+ if (e.permisosRelevantes && (!e.accesibilidad || !e.grabacionPantalla)) {
132
+ console.log("\nFalta alguno todavía: ada-cli computer permissions");
133
+ process.exitCode = 1;
134
+ }
135
+ return true;
136
+ }
137
+ console.error(`Subcomando desconocido: ${sub}. Usa 'ada-cli computer --help'.`);
138
+ process.exitCode = 1;
139
+ return true;
140
+ }
141
+ //# sourceMappingURL=computer-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computer-command.js","sourceRoot":"","sources":["../../src/cli/computer-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EACN,cAAc,EACd,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,aAAa,GACb,MAAM,4BAA4B,CAAC;AAEpC,SAAS,cAAc,CAAC,CAAc,EAAQ;IAC7C,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,6CAA4C,CAAC,CAAC;QAC1D,OAAO;IACR,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,OAAO,IAAI,sBAAqB,GAAG,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QACvB,sEAAqE;QACrE,uEAAsE;QACtE,kDAAiD;QACjD,OAAO,CAAC,GAAG,CAAC,0EAAyE,CAAC,CAAC;QACvF,IAAI,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO;IACR,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAC3B,0EAAwE;QACxE,0CAAyC;QACzC,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO;IACR,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,gCAA+B,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1F,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACzB,yEAAyE;QACzE,8CAA6C;QAC7C,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,uEAAqE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,qCAAiC,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,6EAA4E,CAAC,CAAC;IAC3F,CAAC;AAAA,CACD;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAc,EAAoB;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC;;oDAEsC,aAAa;;;;;;;;;;;;wEAYO,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACtB,cAAc,CAAC,MAAM,cAAc,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,uBAAsB,MAAM,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC;YAC7D,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,aAAa,KAAG,CAAC,CAAC;QACrD,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,0EAAyE;QACzE,0BAA0B;QAC1B,IAAI,CAAC,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,2BAAyB,CAAC,CAAC;YACzC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,cAAc,CAAC,MAAM,cAAc,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,sEAAqE,CAAC,CAAC;YACrF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QACb,CAAC;QACD,sEAAsE;QACtE,wEAAwE;QACxE,8CAA4C;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,wBAAuB,CAAC,CAAC,CAAC,eAAe,CAAC;QAC/E,MAAM,IAAI,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,kCAAgC,MAAM,KAAG,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;QACnF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,cAAc,CAAC,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC1D,sEAAsE;YACtE,2CAA0C;YAC1C,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACvB,mEAAmE;QACnE,mEAAkE;QAClE,kDAAkD;QAClD,OAAO,CAAC,GAAG,CAAC,mDAAiD,CAAC,CAAC;QAC/D,MAAM,CAAC,GAAG,MAAM,mBAAmB,EAAE,CAAC;QACtC,cAAc,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,wDAAuD,CAAC,CAAC;YACrE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,kCAAkC,CAAC,CAAC;IAChF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO,IAAI,CAAC;AAAA,CACZ","sourcesContent":["/**\n * `ada-cli computer` — el equivalente en terminal del panel de Ajustes.\n *\n * El control del ordenador no puede ser una función solo del escritorio: quien\n * usa el CLI o el SDK necesita las mismas tres cosas —saber si el motor está,\n * instalarlo y conceder los permisos del sistema— sin abrir una interfaz\n * gráfica.\n *\n * La lógica vive en `core/computer/driver.ts`; aquí solo se formatea.\n */\n\nimport type { EstadoMotor } from \"../core/computer/driver.ts\";\nimport {\n\testadoDelMotor,\n\tinstalarMotor,\n\tpedirPermisos,\n\trecomprobarPermisos,\n\tVERSION_MOTOR,\n} from \"../core/computer/driver.ts\";\n\nfunction imprimirEstado(e: EstadoMotor): void {\n\tif (!e.instalado) {\n\t\tconsole.log(\"Motor: NO instalado\");\n\t\tif (e.detalle) console.log(` ${e.detalle}`);\n\t\tconsole.log(`\\nInstálalo con: ada-cli computer install`);\n\t\treturn;\n\t}\n\tconsole.log(`Motor: instalado (${e.version ?? \"versión desconocida\"})`);\n\tif (e.consultaFallida) {\n\t\t// No es lo mismo que denegados: aquí no hemos podido ni preguntar, y\n\t\t// mandar al usuario a Ajustes del Sistema sería mandarlo a mirar unos\n\t\t// interruptores que probablemente ya estén bien.\n\t\tconsole.log(\" No se pudo consultar el estado de los permisos: el motor no contestó.\");\n\t\tif (e.detalle) console.log(` ${e.detalle}`);\n\t\tconsole.log(\"\\nReintenta con: ada-cli computer recheck\");\n\t\treturn;\n\t}\n\tif (!e.permisosRelevantes) {\n\t\t// En Linux y Windows no hay nada que conceder. Enseñar aquí un aviso de\n\t\t// permisos sería inventarse un problema.\n\t\tconsole.log(\"Permisos del sistema: no hacen falta en esta plataforma.\");\n\t\treturn;\n\t}\n\tconsole.log(` 1. Accesibilidad: ${e.accesibilidad ? \"concedida\" : \"FALTA\"}`);\n\tconsole.log(` 2. Grabación de pantalla: ${e.grabacionPantalla ? \"concedida\" : \"FALTA\"}`);\n\tif (e.pantallaDeOtraApp) {\n\t\t// El caso que deja atascado a cualquiera: el interruptor se ve encendido\n\t\t// en Ajustes y aun así no se puede capturar.\n\t\tconsole.log(\" macOS lo da por concedido, pero la captura falla: el permiso\");\n\t\tconsole.log(\" pertenece a otra versión de la app. Quítala de la lista con el\");\n\t\tconsole.log(\" «−» y vuelve a concederlo.\");\n\t}\n\tif (!e.accesibilidad || !e.grabacionPantalla) {\n\t\tconsole.log(\"\\nSon dos paneles distintos. Concédelos con: ada-cli computer permissions\");\n\t}\n}\n\nexport async function runComputerCommand(args: string[]): Promise<boolean> {\n\tconst sub = args[1] ?? \"status\";\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(`Uso:\n ada-cli computer status ¿Está el motor listo? (por defecto)\n ada-cli computer install Instala el motor ${VERSION_MOTOR} (helper nativo)\n ada-cli computer permissions Abre el panel del permiso que falte (macOS)\n ada-cli computer recheck Reinicia el helper y vuelve a mirar los permisos\n\nEn macOS el motor se instala como una aplicación FIRMADA en ~/Applications:\nlos permisos de Accesibilidad se conceden a una aplicación, no a un binario\nsuelto. Actívalo además en settings.json:\n\n { \"computerUse\": { \"enabled\": true } }\n\nSin lista de aplicaciones que mantener: lo que limita cada una es su categoría.\nLos navegadores solo se pueden ver (usa las tools browser_*), las terminales e\nIDE solo pulsar (usa bash), y los gestores de credenciales no se tocan.`);\n\t\treturn true;\n\t}\n\n\tif (sub === \"status\") {\n\t\timprimirEstado(await estadoDelMotor());\n\t\treturn true;\n\t}\n\n\tif (sub === \"install\") {\n\t\tconst previo = await estadoDelMotor();\n\t\tif (previo.instalado) {\n\t\t\tconsole.log(`Ya está instalado (${previo.version ?? \"?\"}).`);\n\t\t\timprimirEstado(previo);\n\t\t\treturn true;\n\t\t}\n\t\tconsole.log(`Instalando el motor ${VERSION_MOTOR}…`);\n\t\tconst r = await instalarMotor();\n\t\t// La salida de npm se enseña entera: un \"listo\" opaco esconde los avisos\n\t\t// y, si falla, el motivo.\n\t\tif (r.salida) console.log(r.salida);\n\t\tif (!r.ok) {\n\t\t\tconsole.error(\"\\nLa instalación falló.\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\timprimirEstado(await estadoDelMotor());\n\t\treturn true;\n\t}\n\n\tif (sub === \"permissions\") {\n\t\tconst antes = await estadoDelMotor();\n\t\tif (!antes.instalado) {\n\t\t\tconsole.error(\"El motor no está instalado. Usa 'ada-cli computer install' primero.\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\tif (!antes.permisosRelevantes) {\n\t\t\tconsole.log(\"En esta plataforma no hacen falta permisos del sistema.\");\n\t\t\treturn true;\n\t\t}\n\t\t// De uno en uno, y el que falte primero. Son DOS paneles distintos de\n\t\t// Ajustes del Sistema: abrirlos los dos a la vez le pone al usuario dos\n\t\t// ventanas encima sin decirle cuál es cuál.\n\t\tconst cual = antes.accesibilidad ? \"pantalla\" : \"accesibilidad\";\n\t\tconst nombre = cual === \"pantalla\" ? \"Grabación de pantalla\" : \"Accesibilidad\";\n\t\tconst paso = cual === \"pantalla\" ? 2 : 1;\n\t\tconsole.log(`Paso ${paso} de 2 — abriendo el panel de ${nombre}…`);\n\t\tconsole.log(\"Ada ya aparece en la lista: solo tienes que darle al interruptor.\\n\");\n\t\tconst despues = await pedirPermisos({ permiso: cual });\n\t\timprimirEstado(despues);\n\t\tif (!despues.accesibilidad || !despues.grabacionPantalla) {\n\t\t\t// No se da por bueno hasta comprobarlo: el usuario tarda en conceder,\n\t\t\t// y decir \"listo\" sin mirar sería mentir.\n\t\t\tconsole.log(\"\\nCuando lo hayas concedido: ada-cli computer recheck\");\n\t\t\tprocess.exitCode = 1;\n\t\t}\n\t\treturn true;\n\t}\n\n\tif (sub === \"recheck\") {\n\t\t// Reinicia el helper antes de mirar: macOS cachea los permisos por\n\t\t// proceso, así que un \"acabo de concederlo\" se sigue leyendo como\n\t\t// denegado hasta que el helper vuelve a arrancar.\n\t\tconsole.log(\"Reiniciando el motor y volviendo a comprobar…\\n\");\n\t\tconst e = await recomprobarPermisos();\n\t\timprimirEstado(e);\n\t\tif (e.permisosRelevantes && (!e.accesibilidad || !e.grabacionPantalla)) {\n\t\t\tconsole.log(\"\\nFalta alguno todavía: ada-cli computer permissions\");\n\t\t\tprocess.exitCode = 1;\n\t\t}\n\t\treturn true;\n\t}\n\n\tconsole.error(`Subcomando desconocido: ${sub}. Usa 'ada-cli computer --help'.`);\n\tprocess.exitCode = 1;\n\treturn true;\n}\n"]}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * `ada-cli discover` — qué han dejado otras herramientas en este proyecto:
3
+ * servidores MCP, skills y comandos de barra.
4
+ *
5
+ * Lee, no activa nada por sorpresa. Un servidor MCP `stdio` se LISTA, nunca
6
+ * se lanza (ver el motivo en cada entrada). Una skill descubierta en
7
+ * `.claude/skills` o `.github/skills` SÍ queda disponible en la sesión: se
8
+ * enlaza dentro de `.ada/skills`, que `core/skills.ts` ya recorre en cada
9
+ * sesión sin que se le haya tocado una línea (ver `descubrimiento/skills.ts`
10
+ * para el motivo de por qué es un symlink y no un `additionalSkillPaths` en
11
+ * `agent-session-services.ts`: el presupuesto de sincronización estaba a
12
+ * 115/115). Los comandos de barra, por ahora, solo se listan.
13
+ *
14
+ * Un proyecto vacío no dice "nada": dice DÓNDE ha mirado, para cada una de
15
+ * las tres cosas.
16
+ */
17
+ export declare function runDiscoverCommand(args: string[]): Promise<boolean>;
18
+ //# sourceMappingURL=discover-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover-command.d.ts","sourceRoot":"","sources":["../../src/cli/discover-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAqBH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAqEzE","sourcesContent":["/**\n * `ada-cli discover` — qué han dejado otras herramientas en este proyecto:\n * servidores MCP, skills y comandos de barra.\n *\n * Lee, no activa nada por sorpresa. Un servidor MCP `stdio` se LISTA, nunca\n * se lanza (ver el motivo en cada entrada). Una skill descubierta en\n * `.claude/skills` o `.github/skills` SÍ queda disponible en la sesión: se\n * enlaza dentro de `.ada/skills`, que `core/skills.ts` ya recorre en cada\n * sesión sin que se le haya tocado una línea (ver `descubrimiento/skills.ts`\n * para el motivo de por qué es un symlink y no un `additionalSkillPaths` en\n * `agent-session-services.ts`: el presupuesto de sincronización estaba a\n * 115/115). Los comandos de barra, por ahora, solo se listan.\n *\n * Un proyecto vacío no dice \"nada\": dice DÓNDE ha mirado, para cada una de\n * las tres cosas.\n */\n\nimport { descubrirComandos } from \"../core/descubrimiento/comandos.ts\";\nimport { descubrirServidoresMcp } from \"../core/descubrimiento/mcp.ts\";\nimport { descubrirSkills, instalarSkillsDescubiertas } from \"../core/descubrimiento/skills.ts\";\n\nconst AYUDA = `Uso:\n ada-cli discover Lista lo que hay: servidores MCP, skills y\n comandos de otras herramientas en este proyecto\n ada-cli discover --instalar Además, enlaza las skills descubiertas en\n .ada/skills para que la próxima sesión las cargue\n\nNO ACTIVA NADA POR SU CUENTA. Un servidor MCP stdio se marca \"no soportado\"\n(el cliente MCP de Ada solo habla HTTP a propósito) y nunca se lanza; los\ncomandos de barra ajenos solo se listan; y las skills solo se enlazan si lo\npides con --instalar.\n\nEnlazar escribe symlinks DENTRO de tu proyecto (.ada/skills), que es donde\nviven las skills de proyecto — y por eso no se hace sin pedirlo: un comando\nque se llama \"descubrir\" no debería dejar ficheros que acaben en un commit.`;\n\nexport async function runDiscoverCommand(args: string[]): Promise<boolean> {\n\tif (args[0] !== \"discover\") return false;\n\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(AYUDA);\n\t\treturn true;\n\t}\n\n\tconst cwd = process.cwd();\n\n\tconsole.log(\"Servidores MCP:\");\n\tconst mcp = descubrirServidoresMcp(cwd);\n\tif (mcp.servidores.length === 0) {\n\t\tconsole.log(` (ninguno encontrado) — mirado en:`);\n\t\tfor (const ruta of mcp.ficherosMirados) console.log(` ${ruta}`);\n\t} else {\n\t\tfor (const servidor of mcp.servidores) {\n\t\t\tconst estado = servidor.soportado ? \"activo\" : `no soportado — ${servidor.motivo}`;\n\t\t\tconst destino = servidor.url ?? servidor.comando ?? \"\";\n\t\t\tconsole.log(` [${servidor.origen}] ${servidor.nombre} (${servidor.transporte}) ${estado}`);\n\t\t\tconsole.log(` ${destino} — ${servidor.ruta}`);\n\t\t}\n\t}\n\tfor (const error of mcp.errores) console.log(` ! ${error.ruta}: ${error.motivo}`);\n\n\tconsole.log(\"\\nSkills:\");\n\tconst skills = descubrirSkills(cwd);\n\tif (skills.skills.length === 0) {\n\t\tconsole.log(` (ninguna encontrada) — mirado en:`);\n\t\tfor (const dir of skills.directoriosMirados) console.log(` ${dir}`);\n\t} else {\n\t\t// Enlazar ANTES de listar: si falla el enlace de una, se sigue listando\n\t\t// igual — \"listada pero no disponible\" es mejor que tragarse el error.\n\t\t// Solo con `--instalar`. Listar no escribe: ver la nota de la ayuda.\n\t\tconst instalar = args.includes(\"--instalar\") || args.includes(\"--install\");\n\t\tconst instaladas = instalar\n\t\t\t? new Map(instalarSkillsDescubiertas(cwd).map((s) => [`${s.origen}:${s.nombre}`, s.enlace]))\n\t\t\t: new Map<string, string>();\n\t\tfor (const skill of skills.skills) {\n\t\t\tconst enlace = instaladas.get(`${skill.origen}:${skill.nombre}`);\n\t\t\t// Tres estados, no dos: enlazada · no se ha pedido enlazar · se pidió y\n\t\t\t// falló. Juntar los dos últimos haría que un fallo de enlace se leyera\n\t\t\t// como \"no lo pediste\".\n\t\t\tconst disponibilidad = enlace\n\t\t\t\t? `disponible en la sesión vía ${enlace}`\n\t\t\t\t: instalar\n\t\t\t\t\t? \"NO se pudo enlazar en .ada/skills\"\n\t\t\t\t\t: \"no enlazada (usa --instalar)\";\n\t\t\tconsole.log(` [${skill.origen}] ${skill.nombre} — ${skill.descripcion}`);\n\t\t\tconsole.log(` ${skill.ruta} (${disponibilidad})`);\n\t\t}\n\t}\n\tfor (const error of skills.errores) console.log(` ! ${error.ruta}: ${error.motivo}`);\n\n\tconsole.log(\"\\nComandos de barra:\");\n\tconst comandos = descubrirComandos(cwd);\n\tif (comandos.comandos.length === 0) {\n\t\tconsole.log(` (ninguno encontrado) — mirado en:`);\n\t\tfor (const dir of comandos.directoriosMirados) console.log(` ${dir}`);\n\t} else {\n\t\tfor (const comando of comandos.comandos) {\n\t\t\tconst descripcion = comando.descripcion ? ` — ${comando.descripcion}` : \"\";\n\t\t\tconsole.log(` [${comando.origen}] /${comando.nombre}${descripcion}`);\n\t\t\tconsole.log(` ${comando.ruta}`);\n\t\t}\n\t}\n\tfor (const error of comandos.errores) console.log(` ! ${error.ruta}: ${error.motivo}`);\n\n\treturn true;\n}\n"]}