@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 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/core/computer/motor/state.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { CdpPageSnapshot } from \"./cdp.ts\";\nimport type { ImageMode } from \"./contract.ts\";\nimport type { WindowNote } from \"./note.ts\";\nimport {\n\ttype LookResponse,\n\ttype Outline,\n\trestoreOutline,\n\ttype SerializedOutline,\n\tserializeOutline,\n} from \"./outline.ts\";\nimport { StateStore, type StoredState } from \"./runtime.ts\";\n\ninterface StateTargetSnapshot {\n\tpid: number;\n\twindowId: number;\n\twindowRef?: string;\n}\n\nexport interface CurrentTarget {\n\tappName: string;\n\tbundleId?: string;\n\tpid: number;\n\twindowTitle: string;\n\twindowId: number;\n\twindowRef?: string;\n\tnativeWindowRef?: string;\n}\n\nexport interface CurrentCapture {\n\tstateId: string;\n\twidth: number;\n\theight: number;\n\tscaleFactor: number;\n\ttimestamp: number;\n}\n\nexport interface OperationState {\n\tcurrentTarget?: CurrentTarget;\n\tcurrentCapture?: CurrentCapture;\n\tcurrentStateTarget?: StateTargetSnapshot;\n\tcurrentImageMode?: ImageMode;\n\tcurrentLook?: LookResponse;\n\tcurrentOutline?: Outline;\n\tcurrentNote?: WindowNote;\n\tresourceKey?: string;\n\tepoch?: number;\n\tlastSearchOcrEscalatedLookId?: string;\n\tbrowserSnapshot?: CdpPageSnapshot;\n\tcontextId?: string;\n}\n\ninterface DesktopObservation {\n\tkind: \"desktop\";\n\ttarget: CurrentTarget;\n\tcapture: CurrentCapture;\n\tlook: Omit<LookResponse, \"parsedOutline\" | \"outline\">;\n\toutline: SerializedOutline;\n\tnote?: WindowNote;\n\timageMode?: ImageMode;\n}\n\ninterface BrowserObservation {\n\tkind: \"browser\";\n\tsnapshot: CdpPageSnapshot;\n\toutline: SerializedOutline;\n}\n\nexport type UiObservation = DesktopObservation | BrowserObservation;\n\nexport class SavedStates {\n\treadonly store = new StateStore<UiObservation>(128);\n\treadonly operations = new AsyncLocalStorage<OperationState>();\n\n\tcurrent(): OperationState {\n\t\tconst state = this.operations.getStore();\n\t\tif (!state) throw new Error(\"Computer-use operation state is unavailable.\");\n\t\treturn state;\n\t}\n\n\tget(stateId: string): StoredState<UiObservation> | undefined {\n\t\treturn this.store.get(stateId);\n\t}\n\n\tset(record: StoredState<UiObservation>): void {\n\t\tthis.store.set(record);\n\t}\n\n\tclear(): void {\n\t\tthis.store.clear();\n\t}\n\n\thydrate(record: StoredState<UiObservation> | undefined): OperationState {\n\t\tif (!record) return {};\n\t\tif (record.value.kind === \"browser\") {\n\t\t\tconst outline = restoreOutline(record.value.outline);\n\t\t\treturn {\n\t\t\t\tcurrentCapture: {\n\t\t\t\t\tstateId: record.stateId,\n\t\t\t\t\twidth: 0,\n\t\t\t\t\theight: 0,\n\t\t\t\t\tscaleFactor: 1,\n\t\t\t\t\ttimestamp: record.value.snapshot.capturedAt,\n\t\t\t\t},\n\t\t\t\tcurrentLook: {\n\t\t\t\t\tlookId: record.value.snapshot.snapshotId,\n\t\t\t\t\tcapturedAt: record.value.snapshot.capturedAt / 1000,\n\t\t\t\t\twindow: {\n\t\t\t\t\t\twindowId: 0,\n\t\t\t\t\t\tframePoints: { x: 0, y: 0, w: 1, h: 1 },\n\t\t\t\t\t\tscaleFactor: 1,\n\t\t\t\t\t\tisModal: false,\n\t\t\t\t\t\trole: \"document\",\n\t\t\t\t\t\tsubrole: \"\",\n\t\t\t\t\t},\n\t\t\t\t\toutline: outline.root,\n\t\t\t\t\ttimings: {},\n\t\t\t\t\tparsedOutline: outline,\n\t\t\t\t},\n\t\t\t\tcurrentOutline: outline,\n\t\t\t\tresourceKey: record.resourceKey,\n\t\t\t\tepoch: record.epoch,\n\t\t\t\tbrowserSnapshot: record.value.snapshot,\n\t\t\t\tcontextId: record.value.snapshot.contextId,\n\t\t\t};\n\t\t}\n\t\tconst outline = restoreOutline(record.value.outline);\n\t\treturn {\n\t\t\tcurrentTarget: { ...record.value.target },\n\t\t\tcurrentCapture: { ...record.value.capture },\n\t\t\tcurrentStateTarget: {\n\t\t\t\tpid: record.value.target.pid,\n\t\t\t\twindowId: record.value.target.windowId,\n\t\t\t\twindowRef: record.value.target.windowRef,\n\t\t\t},\n\t\t\tcurrentImageMode: record.value.imageMode,\n\t\t\tcurrentLook: { ...record.value.look, outline: outline.root, parsedOutline: outline },\n\t\t\tcurrentOutline: outline,\n\t\t\tcurrentNote: record.value.note ? structuredClone(record.value.note) : undefined,\n\t\t\tresourceKey: record.resourceKey,\n\t\t\tepoch: record.epoch,\n\t\t};\n\t}\n\n\tsaveDesktop(state: OperationState, resourceKey: string, epoch: number): void {\n\t\tif (!state.currentTarget || !state.currentCapture || !state.currentLook || !state.currentOutline) return;\n\t\tthis.store.set({\n\t\t\tstateId: state.currentCapture.stateId,\n\t\t\tresourceKey,\n\t\t\tepoch,\n\t\t\tvalue: {\n\t\t\t\tkind: \"desktop\",\n\t\t\t\ttarget: { ...state.currentTarget },\n\t\t\t\tcapture: { ...state.currentCapture },\n\t\t\t\tlook: {\n\t\t\t\t\tlookId: state.currentLook.lookId,\n\t\t\t\t\tcapturedAt: state.currentLook.capturedAt,\n\t\t\t\t\twindow: structuredClone(state.currentLook.window),\n\t\t\t\t\timage: state.currentLook.image ? { ...state.currentLook.image } : undefined,\n\t\t\t\t\ttimings: { ...state.currentLook.timings },\n\t\t\t\t\treadText: state.currentLook.readText ? { ...state.currentLook.readText } : undefined,\n\t\t\t\t},\n\t\t\t\toutline: serializeOutline(state.currentOutline),\n\t\t\t\tnote: state.currentNote ? structuredClone(state.currentNote) : undefined,\n\t\t\t\timageMode: state.currentImageMode,\n\t\t\t},\n\t\t});\n\t}\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { type Outline, type OutlineChange, type OutlineDiff } from "./outline.ts";
2
+ /** Preserve public refs only when native or structural identity is unambiguous. */
3
+ export declare function stabilizeRefs(base: Outline | undefined, next: Outline): Outline;
4
+ export declare function changesBetween(base: Outline, next: Outline): OutlineDiff;
5
+ export declare function renderChanges(changes: OutlineChange[]): string;
6
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../../src/core/computer/motor/view.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,WAAW,EAIhB,MAAM,cAAc,CAAC;AA0CtB,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CA6B/E;AAwCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,WAAW,CA0CxE;AAiBD,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CAoB9D","sourcesContent":["import {\n\ttype Outline,\n\ttype OutlineChange,\n\ttype OutlineDiff,\n\ttype OutlineNode,\n\ttype SerializedOutlineNode,\n\tserializeOutlineNode,\n} from \"./outline.ts\";\n\nfunction numericRef(ref: string): number {\n\tconst match = /^@e(\\d+)$/.exec(ref);\n\treturn match ? Number(match[1]) : 0;\n}\n\nfunction rebuildIndexes(outline: Outline): void {\n\toutline.nodes = [];\n\toutline.refToWireRef = new Map();\n\toutline.wireRefToRef = new Map();\n\tconst queue = [outline.root];\n\twhile (queue.length > 0) {\n\t\tconst node = queue.shift()!;\n\t\toutline.nodes.push(node);\n\t\tif (node.wireRef) {\n\t\t\toutline.refToWireRef.set(node.ref, node.wireRef);\n\t\t\toutline.wireRefToRef.set(node.wireRef, node.ref);\n\t\t}\n\t\tqueue.push(...node.children);\n\t}\n}\n\nfunction structuralToken(node: OutlineNode): string {\n\treturn [node.role, node.subrole, node.identifier, node.title, node.description]\n\t\t.map((value) => value.trim().toLowerCase())\n\t\t.join(\"|\");\n}\n\nfunction structuralKey(node: OutlineNode): string {\n\tconst parts: string[] = [];\n\tlet current: OutlineNode | undefined = node;\n\twhile (current) {\n\t\tconst token = structuralToken(current);\n\t\tconst siblings = current.parent?.children ?? [current];\n\t\tconst peers = siblings.filter((candidate) => structuralToken(candidate) === token);\n\t\tparts.unshift(`${token}#${Math.max(0, peers.indexOf(current))}`);\n\t\tcurrent = current.parent;\n\t}\n\treturn parts.join(\">\");\n}\n\n/** Preserve public refs only when native or structural identity is unambiguous. */\nexport function stabilizeRefs(base: Outline | undefined, next: Outline): Outline {\n\tif (!base) return next;\n\tconst reserved = new Set<string>();\n\tconst assigned = new Set<OutlineNode>();\n\tconst byWireRef = new Map(base.nodes.filter((node) => node.wireRef).map((node) => [node.wireRef!, node.ref]));\n\tconst structuralGroups = new Map<string, OutlineNode[]>();\n\tfor (const node of base.nodes) {\n\t\tconst key = structuralKey(node);\n\t\tstructuralGroups.set(key, [...(structuralGroups.get(key) ?? []), node]);\n\t}\n\tlet nextIndex = Math.max(0, ...base.nodes.map((node) => numericRef(node.ref))) + 1;\n\tfor (const node of next.nodes) {\n\t\tconst wireStable = node.wireRef ? byWireRef.get(node.wireRef) : undefined;\n\t\tconst structuralMatches = structuralGroups.get(structuralKey(node)) ?? [];\n\t\tconst stable = wireStable ?? (structuralMatches.length === 1 ? structuralMatches[0].ref : undefined);\n\t\tif (stable && !reserved.has(stable)) {\n\t\t\tnode.ref = stable;\n\t\t\treserved.add(stable);\n\t\t\tassigned.add(node);\n\t\t}\n\t}\n\tfor (const node of next.nodes) {\n\t\tif (assigned.has(node)) continue;\n\t\twhile (reserved.has(`@e${nextIndex}`)) nextIndex += 1;\n\t\tnode.ref = `@e${nextIndex++}`;\n\t\treserved.add(node.ref);\n\t}\n\trebuildIndexes(next);\n\treturn next;\n}\n\nfunction comparable(node: OutlineNode): Omit<SerializedOutlineNode, \"children\"> {\n\tconst { children: _children, ...fields } = serializeOutlineNode(node);\n\treturn {\n\t\t...fields,\n\t\trect: fields.rect\n\t\t\t? {\n\t\t\t\t\tx: Math.round(fields.rect.x),\n\t\t\t\t\ty: Math.round(fields.rect.y),\n\t\t\t\t\tw: Math.round(fields.rect.w),\n\t\t\t\t\th: Math.round(fields.rect.h),\n\t\t\t\t}\n\t\t\t: undefined,\n\t\ttext: fields.text.map((item) => ({ string: item.string, confidence: Math.round(item.confidence * 100) / 100 })),\n\t};\n}\n\nfunction changedFields(base: OutlineNode, next: OutlineNode): Partial<Omit<SerializedOutlineNode, \"children\">> {\n\tconst before = comparable(base);\n\tconst after = comparable(next);\n\tconst fields: Partial<Omit<SerializedOutlineNode, \"children\">> = {};\n\tfor (const key of Object.keys(after) as Array<keyof typeof after>) {\n\t\tif (key === \"ref\" || key === \"wireRef\") continue;\n\t\tif (JSON.stringify(before[key]) !== JSON.stringify(after[key]))\n\t\t\t(fields as Record<string, unknown>)[key] = after[key];\n\t}\n\treturn fields;\n}\n\nfunction refPath(node: OutlineNode): string[] {\n\tconst refs: string[] = [];\n\tlet current: OutlineNode | undefined = node;\n\twhile (current) {\n\t\trefs.unshift(current.ref);\n\t\tcurrent = current.parent;\n\t}\n\treturn refs;\n}\n\nexport function changesBetween(base: Outline, next: Outline): OutlineDiff {\n\tif (base.root.role !== next.root.role || base.root.subrole !== next.root.subrole) {\n\t\treturn {\n\t\t\tchanges: [],\n\t\t\tchangedNodeCount: next.nodes.length,\n\t\t\tfullNodeCount: next.nodes.length,\n\t\t\tuseFullView: true,\n\t\t\treason: \"root_replaced\",\n\t\t};\n\t}\n\tconst before = new Map(base.nodes.map((node) => [node.ref, node]));\n\tconst after = new Map(next.nodes.map((node) => [node.ref, node]));\n\tconst changes: OutlineChange[] = [];\n\tfor (const node of next.nodes) {\n\t\tconst previous = before.get(node.ref);\n\t\tif (!previous)\n\t\t\tchanges.push({\n\t\t\t\ttype: \"added\",\n\t\t\t\tref: node.ref,\n\t\t\t\tparent: node.parent?.ref,\n\t\t\t\tnode: { ...serializeOutlineNode(node), children: [] },\n\t\t\t});\n\t\telse {\n\t\t\tconst fields = changedFields(previous, node);\n\t\t\tif (Object.keys(fields).length > 0)\n\t\t\t\tchanges.push({ type: \"updated\", ref: node.ref, path: refPath(node), fields });\n\t\t}\n\t}\n\tfor (const node of base.nodes)\n\t\tif (!after.has(node.ref)) changes.push({ type: \"removed\", ref: node.ref, parent: node.parent?.ref });\n\tconst identityConfidence =\n\t\tnext.nodes.length === 0 ? 1 : next.nodes.filter((node) => before.has(node.ref)).length / next.nodes.length;\n\tconst changeRatio = changes.length / Math.max(1, Math.max(base.nodes.length, next.nodes.length));\n\tconst identityLow = next.nodes.length > 8 && identityConfidence < 0.4;\n\tconst overBudget = changes.length > 100 || (changes.length > 20 && changeRatio > 0.65);\n\treturn {\n\t\tchanges,\n\t\tchangedNodeCount: changes.length,\n\t\tfullNodeCount: next.nodes.length,\n\t\tuseFullView: identityLow || overBudget,\n\t\treason: identityLow ? \"identity_confidence_low\" : overBudget ? \"change_budget_exceeded\" : undefined,\n\t};\n}\n\nfunction label(node: SerializedOutlineNode): string {\n\treturn (\n\t\tnode.title ||\n\t\tnode.description ||\n\t\tnode.value ||\n\t\tnode.identifier ||\n\t\tnode.text\n\t\t\t.map((item) => item.string)\n\t\t\t.join(\" \")\n\t\t\t.trim() ||\n\t\tnode.role ||\n\t\t\"node\"\n\t);\n}\n\nexport function renderChanges(changes: OutlineChange[]): string {\n\treturn changes\n\t\t.map((change) => {\n\t\t\tif (change.type === \"added\")\n\t\t\t\treturn `+ ${change.ref}${change.parent ? ` under ${change.parent}` : \"\"} ${JSON.stringify(label(change.node))}`;\n\t\t\tif (change.type === \"removed\") return `- ${change.ref}${change.parent ? ` from ${change.parent}` : \"\"}`;\n\t\t\tconst fields = Object.entries(change.fields)\n\t\t\t\t.filter(([key]) => ![\"rect\", \"text\", \"actions\"].includes(key))\n\t\t\t\t.slice(0, 6)\n\t\t\t\t.map(([key, value]) => `${key}=${JSON.stringify(value)}`)\n\t\t\t\t.join(\", \");\n\t\t\tconst supplemental = [\n\t\t\t\tchange.fields.text ? `text=${JSON.stringify(change.fields.text.map((item) => item.string))}` : undefined,\n\t\t\t\tchange.fields.actions ? `actions=${JSON.stringify(change.fields.actions)}` : undefined,\n\t\t\t]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\", \");\n\t\t\treturn `~ ${change.ref} (${change.path.join(\" > \")}) ${[fields, supplemental].filter(Boolean).join(\", \") || \"changed\"}`;\n\t\t})\n\t\t.join(\"\\n\");\n}\n"]}
@@ -0,0 +1,185 @@
1
+ import { serializeOutlineNode, } from "./outline.js";
2
+ function numericRef(ref) {
3
+ const match = /^@e(\d+)$/.exec(ref);
4
+ return match ? Number(match[1]) : 0;
5
+ }
6
+ function rebuildIndexes(outline) {
7
+ outline.nodes = [];
8
+ outline.refToWireRef = new Map();
9
+ outline.wireRefToRef = new Map();
10
+ const queue = [outline.root];
11
+ while (queue.length > 0) {
12
+ const node = queue.shift();
13
+ outline.nodes.push(node);
14
+ if (node.wireRef) {
15
+ outline.refToWireRef.set(node.ref, node.wireRef);
16
+ outline.wireRefToRef.set(node.wireRef, node.ref);
17
+ }
18
+ queue.push(...node.children);
19
+ }
20
+ }
21
+ function structuralToken(node) {
22
+ return [node.role, node.subrole, node.identifier, node.title, node.description]
23
+ .map((value) => value.trim().toLowerCase())
24
+ .join("|");
25
+ }
26
+ function structuralKey(node) {
27
+ const parts = [];
28
+ let current = node;
29
+ while (current) {
30
+ const token = structuralToken(current);
31
+ const siblings = current.parent?.children ?? [current];
32
+ const peers = siblings.filter((candidate) => structuralToken(candidate) === token);
33
+ parts.unshift(`${token}#${Math.max(0, peers.indexOf(current))}`);
34
+ current = current.parent;
35
+ }
36
+ return parts.join(">");
37
+ }
38
+ /** Preserve public refs only when native or structural identity is unambiguous. */
39
+ export function stabilizeRefs(base, next) {
40
+ if (!base)
41
+ return next;
42
+ const reserved = new Set();
43
+ const assigned = new Set();
44
+ const byWireRef = new Map(base.nodes.filter((node) => node.wireRef).map((node) => [node.wireRef, node.ref]));
45
+ const structuralGroups = new Map();
46
+ for (const node of base.nodes) {
47
+ const key = structuralKey(node);
48
+ structuralGroups.set(key, [...(structuralGroups.get(key) ?? []), node]);
49
+ }
50
+ let nextIndex = Math.max(0, ...base.nodes.map((node) => numericRef(node.ref))) + 1;
51
+ for (const node of next.nodes) {
52
+ const wireStable = node.wireRef ? byWireRef.get(node.wireRef) : undefined;
53
+ const structuralMatches = structuralGroups.get(structuralKey(node)) ?? [];
54
+ const stable = wireStable ?? (structuralMatches.length === 1 ? structuralMatches[0].ref : undefined);
55
+ if (stable && !reserved.has(stable)) {
56
+ node.ref = stable;
57
+ reserved.add(stable);
58
+ assigned.add(node);
59
+ }
60
+ }
61
+ for (const node of next.nodes) {
62
+ if (assigned.has(node))
63
+ continue;
64
+ while (reserved.has(`@e${nextIndex}`))
65
+ nextIndex += 1;
66
+ node.ref = `@e${nextIndex++}`;
67
+ reserved.add(node.ref);
68
+ }
69
+ rebuildIndexes(next);
70
+ return next;
71
+ }
72
+ function comparable(node) {
73
+ const { children: _children, ...fields } = serializeOutlineNode(node);
74
+ return {
75
+ ...fields,
76
+ rect: fields.rect
77
+ ? {
78
+ x: Math.round(fields.rect.x),
79
+ y: Math.round(fields.rect.y),
80
+ w: Math.round(fields.rect.w),
81
+ h: Math.round(fields.rect.h),
82
+ }
83
+ : undefined,
84
+ text: fields.text.map((item) => ({ string: item.string, confidence: Math.round(item.confidence * 100) / 100 })),
85
+ };
86
+ }
87
+ function changedFields(base, next) {
88
+ const before = comparable(base);
89
+ const after = comparable(next);
90
+ const fields = {};
91
+ for (const key of Object.keys(after)) {
92
+ if (key === "ref" || key === "wireRef")
93
+ continue;
94
+ if (JSON.stringify(before[key]) !== JSON.stringify(after[key]))
95
+ fields[key] = after[key];
96
+ }
97
+ return fields;
98
+ }
99
+ function refPath(node) {
100
+ const refs = [];
101
+ let current = node;
102
+ while (current) {
103
+ refs.unshift(current.ref);
104
+ current = current.parent;
105
+ }
106
+ return refs;
107
+ }
108
+ export function changesBetween(base, next) {
109
+ if (base.root.role !== next.root.role || base.root.subrole !== next.root.subrole) {
110
+ return {
111
+ changes: [],
112
+ changedNodeCount: next.nodes.length,
113
+ fullNodeCount: next.nodes.length,
114
+ useFullView: true,
115
+ reason: "root_replaced",
116
+ };
117
+ }
118
+ const before = new Map(base.nodes.map((node) => [node.ref, node]));
119
+ const after = new Map(next.nodes.map((node) => [node.ref, node]));
120
+ const changes = [];
121
+ for (const node of next.nodes) {
122
+ const previous = before.get(node.ref);
123
+ if (!previous)
124
+ changes.push({
125
+ type: "added",
126
+ ref: node.ref,
127
+ parent: node.parent?.ref,
128
+ node: { ...serializeOutlineNode(node), children: [] },
129
+ });
130
+ else {
131
+ const fields = changedFields(previous, node);
132
+ if (Object.keys(fields).length > 0)
133
+ changes.push({ type: "updated", ref: node.ref, path: refPath(node), fields });
134
+ }
135
+ }
136
+ for (const node of base.nodes)
137
+ if (!after.has(node.ref))
138
+ changes.push({ type: "removed", ref: node.ref, parent: node.parent?.ref });
139
+ const identityConfidence = next.nodes.length === 0 ? 1 : next.nodes.filter((node) => before.has(node.ref)).length / next.nodes.length;
140
+ const changeRatio = changes.length / Math.max(1, Math.max(base.nodes.length, next.nodes.length));
141
+ const identityLow = next.nodes.length > 8 && identityConfidence < 0.4;
142
+ const overBudget = changes.length > 100 || (changes.length > 20 && changeRatio > 0.65);
143
+ return {
144
+ changes,
145
+ changedNodeCount: changes.length,
146
+ fullNodeCount: next.nodes.length,
147
+ useFullView: identityLow || overBudget,
148
+ reason: identityLow ? "identity_confidence_low" : overBudget ? "change_budget_exceeded" : undefined,
149
+ };
150
+ }
151
+ function label(node) {
152
+ return (node.title ||
153
+ node.description ||
154
+ node.value ||
155
+ node.identifier ||
156
+ node.text
157
+ .map((item) => item.string)
158
+ .join(" ")
159
+ .trim() ||
160
+ node.role ||
161
+ "node");
162
+ }
163
+ export function renderChanges(changes) {
164
+ return changes
165
+ .map((change) => {
166
+ if (change.type === "added")
167
+ return `+ ${change.ref}${change.parent ? ` under ${change.parent}` : ""} ${JSON.stringify(label(change.node))}`;
168
+ if (change.type === "removed")
169
+ return `- ${change.ref}${change.parent ? ` from ${change.parent}` : ""}`;
170
+ const fields = Object.entries(change.fields)
171
+ .filter(([key]) => !["rect", "text", "actions"].includes(key))
172
+ .slice(0, 6)
173
+ .map(([key, value]) => `${key}=${JSON.stringify(value)}`)
174
+ .join(", ");
175
+ const supplemental = [
176
+ change.fields.text ? `text=${JSON.stringify(change.fields.text.map((item) => item.string))}` : undefined,
177
+ change.fields.actions ? `actions=${JSON.stringify(change.fields.actions)}` : undefined,
178
+ ]
179
+ .filter(Boolean)
180
+ .join(", ");
181
+ return `~ ${change.ref} (${change.path.join(" > ")}) ${[fields, supplemental].filter(Boolean).join(", ") || "changed"}`;
182
+ })
183
+ .join("\n");
184
+ }
185
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../../src/core/computer/motor/view.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype Outline,\n\ttype OutlineChange,\n\ttype OutlineDiff,\n\ttype OutlineNode,\n\ttype SerializedOutlineNode,\n\tserializeOutlineNode,\n} from \"./outline.ts\";\n\nfunction numericRef(ref: string): number {\n\tconst match = /^@e(\\d+)$/.exec(ref);\n\treturn match ? Number(match[1]) : 0;\n}\n\nfunction rebuildIndexes(outline: Outline): void {\n\toutline.nodes = [];\n\toutline.refToWireRef = new Map();\n\toutline.wireRefToRef = new Map();\n\tconst queue = [outline.root];\n\twhile (queue.length > 0) {\n\t\tconst node = queue.shift()!;\n\t\toutline.nodes.push(node);\n\t\tif (node.wireRef) {\n\t\t\toutline.refToWireRef.set(node.ref, node.wireRef);\n\t\t\toutline.wireRefToRef.set(node.wireRef, node.ref);\n\t\t}\n\t\tqueue.push(...node.children);\n\t}\n}\n\nfunction structuralToken(node: OutlineNode): string {\n\treturn [node.role, node.subrole, node.identifier, node.title, node.description]\n\t\t.map((value) => value.trim().toLowerCase())\n\t\t.join(\"|\");\n}\n\nfunction structuralKey(node: OutlineNode): string {\n\tconst parts: string[] = [];\n\tlet current: OutlineNode | undefined = node;\n\twhile (current) {\n\t\tconst token = structuralToken(current);\n\t\tconst siblings = current.parent?.children ?? [current];\n\t\tconst peers = siblings.filter((candidate) => structuralToken(candidate) === token);\n\t\tparts.unshift(`${token}#${Math.max(0, peers.indexOf(current))}`);\n\t\tcurrent = current.parent;\n\t}\n\treturn parts.join(\">\");\n}\n\n/** Preserve public refs only when native or structural identity is unambiguous. */\nexport function stabilizeRefs(base: Outline | undefined, next: Outline): Outline {\n\tif (!base) return next;\n\tconst reserved = new Set<string>();\n\tconst assigned = new Set<OutlineNode>();\n\tconst byWireRef = new Map(base.nodes.filter((node) => node.wireRef).map((node) => [node.wireRef!, node.ref]));\n\tconst structuralGroups = new Map<string, OutlineNode[]>();\n\tfor (const node of base.nodes) {\n\t\tconst key = structuralKey(node);\n\t\tstructuralGroups.set(key, [...(structuralGroups.get(key) ?? []), node]);\n\t}\n\tlet nextIndex = Math.max(0, ...base.nodes.map((node) => numericRef(node.ref))) + 1;\n\tfor (const node of next.nodes) {\n\t\tconst wireStable = node.wireRef ? byWireRef.get(node.wireRef) : undefined;\n\t\tconst structuralMatches = structuralGroups.get(structuralKey(node)) ?? [];\n\t\tconst stable = wireStable ?? (structuralMatches.length === 1 ? structuralMatches[0].ref : undefined);\n\t\tif (stable && !reserved.has(stable)) {\n\t\t\tnode.ref = stable;\n\t\t\treserved.add(stable);\n\t\t\tassigned.add(node);\n\t\t}\n\t}\n\tfor (const node of next.nodes) {\n\t\tif (assigned.has(node)) continue;\n\t\twhile (reserved.has(`@e${nextIndex}`)) nextIndex += 1;\n\t\tnode.ref = `@e${nextIndex++}`;\n\t\treserved.add(node.ref);\n\t}\n\trebuildIndexes(next);\n\treturn next;\n}\n\nfunction comparable(node: OutlineNode): Omit<SerializedOutlineNode, \"children\"> {\n\tconst { children: _children, ...fields } = serializeOutlineNode(node);\n\treturn {\n\t\t...fields,\n\t\trect: fields.rect\n\t\t\t? {\n\t\t\t\t\tx: Math.round(fields.rect.x),\n\t\t\t\t\ty: Math.round(fields.rect.y),\n\t\t\t\t\tw: Math.round(fields.rect.w),\n\t\t\t\t\th: Math.round(fields.rect.h),\n\t\t\t\t}\n\t\t\t: undefined,\n\t\ttext: fields.text.map((item) => ({ string: item.string, confidence: Math.round(item.confidence * 100) / 100 })),\n\t};\n}\n\nfunction changedFields(base: OutlineNode, next: OutlineNode): Partial<Omit<SerializedOutlineNode, \"children\">> {\n\tconst before = comparable(base);\n\tconst after = comparable(next);\n\tconst fields: Partial<Omit<SerializedOutlineNode, \"children\">> = {};\n\tfor (const key of Object.keys(after) as Array<keyof typeof after>) {\n\t\tif (key === \"ref\" || key === \"wireRef\") continue;\n\t\tif (JSON.stringify(before[key]) !== JSON.stringify(after[key]))\n\t\t\t(fields as Record<string, unknown>)[key] = after[key];\n\t}\n\treturn fields;\n}\n\nfunction refPath(node: OutlineNode): string[] {\n\tconst refs: string[] = [];\n\tlet current: OutlineNode | undefined = node;\n\twhile (current) {\n\t\trefs.unshift(current.ref);\n\t\tcurrent = current.parent;\n\t}\n\treturn refs;\n}\n\nexport function changesBetween(base: Outline, next: Outline): OutlineDiff {\n\tif (base.root.role !== next.root.role || base.root.subrole !== next.root.subrole) {\n\t\treturn {\n\t\t\tchanges: [],\n\t\t\tchangedNodeCount: next.nodes.length,\n\t\t\tfullNodeCount: next.nodes.length,\n\t\t\tuseFullView: true,\n\t\t\treason: \"root_replaced\",\n\t\t};\n\t}\n\tconst before = new Map(base.nodes.map((node) => [node.ref, node]));\n\tconst after = new Map(next.nodes.map((node) => [node.ref, node]));\n\tconst changes: OutlineChange[] = [];\n\tfor (const node of next.nodes) {\n\t\tconst previous = before.get(node.ref);\n\t\tif (!previous)\n\t\t\tchanges.push({\n\t\t\t\ttype: \"added\",\n\t\t\t\tref: node.ref,\n\t\t\t\tparent: node.parent?.ref,\n\t\t\t\tnode: { ...serializeOutlineNode(node), children: [] },\n\t\t\t});\n\t\telse {\n\t\t\tconst fields = changedFields(previous, node);\n\t\t\tif (Object.keys(fields).length > 0)\n\t\t\t\tchanges.push({ type: \"updated\", ref: node.ref, path: refPath(node), fields });\n\t\t}\n\t}\n\tfor (const node of base.nodes)\n\t\tif (!after.has(node.ref)) changes.push({ type: \"removed\", ref: node.ref, parent: node.parent?.ref });\n\tconst identityConfidence =\n\t\tnext.nodes.length === 0 ? 1 : next.nodes.filter((node) => before.has(node.ref)).length / next.nodes.length;\n\tconst changeRatio = changes.length / Math.max(1, Math.max(base.nodes.length, next.nodes.length));\n\tconst identityLow = next.nodes.length > 8 && identityConfidence < 0.4;\n\tconst overBudget = changes.length > 100 || (changes.length > 20 && changeRatio > 0.65);\n\treturn {\n\t\tchanges,\n\t\tchangedNodeCount: changes.length,\n\t\tfullNodeCount: next.nodes.length,\n\t\tuseFullView: identityLow || overBudget,\n\t\treason: identityLow ? \"identity_confidence_low\" : overBudget ? \"change_budget_exceeded\" : undefined,\n\t};\n}\n\nfunction label(node: SerializedOutlineNode): string {\n\treturn (\n\t\tnode.title ||\n\t\tnode.description ||\n\t\tnode.value ||\n\t\tnode.identifier ||\n\t\tnode.text\n\t\t\t.map((item) => item.string)\n\t\t\t.join(\" \")\n\t\t\t.trim() ||\n\t\tnode.role ||\n\t\t\"node\"\n\t);\n}\n\nexport function renderChanges(changes: OutlineChange[]): string {\n\treturn changes\n\t\t.map((change) => {\n\t\t\tif (change.type === \"added\")\n\t\t\t\treturn `+ ${change.ref}${change.parent ? ` under ${change.parent}` : \"\"} ${JSON.stringify(label(change.node))}`;\n\t\t\tif (change.type === \"removed\") return `- ${change.ref}${change.parent ? ` from ${change.parent}` : \"\"}`;\n\t\t\tconst fields = Object.entries(change.fields)\n\t\t\t\t.filter(([key]) => ![\"rect\", \"text\", \"actions\"].includes(key))\n\t\t\t\t.slice(0, 6)\n\t\t\t\t.map(([key, value]) => `${key}=${JSON.stringify(value)}`)\n\t\t\t\t.join(\", \");\n\t\t\tconst supplemental = [\n\t\t\t\tchange.fields.text ? `text=${JSON.stringify(change.fields.text.map((item) => item.string))}` : undefined,\n\t\t\t\tchange.fields.actions ? `actions=${JSON.stringify(change.fields.actions)}` : undefined,\n\t\t\t]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\", \");\n\t\t\treturn `~ ${change.ref} (${change.path.join(\" > \")}) ${[fields, supplemental].filter(Boolean).join(\", \") || \"changed\"}`;\n\t\t})\n\t\t.join(\"\\n\");\n}\n"]}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Puente entre nuestras tools y el motor forkeado.
3
+ *
4
+ * Sustituye al driver anterior, que hablaba por CLI con `open-computer-use`.
5
+ * Aquel motor tenía seis acciones y le faltaban las dos que importan: esperar a
6
+ * que algo cambie, y buscar dentro de la interfaz. Sin espera se actúa sobre
7
+ * ventanas que aún no están listas — el fallo que apareció al probarlo contra
8
+ * TextEdit, donde la escritura se dio por buena y el fichero quedó vacío.
9
+ *
10
+ * El modelo del motor nuevo trae una garantía que antes no teníamos: **para
11
+ * actuar hace falta el `lookId` de una observación previa**. Nuestra guía "lee
12
+ * antes de pulsar" deja de ser un consejo en el prompt y pasa a ser un
13
+ * requisito que el motor impone. Actuar sobre estado viejo ya no compila.
14
+ *
15
+ * Aquí NO vive ninguna regla de permisos: eso es `politica.ts`, y lo aplica
16
+ * `tools.ts` antes de llamar a nada de esto.
17
+ */
18
+ import { type Outline } from "./motor/outline.ts";
19
+ import type { HelperActResult } from "./motor/platform/types.ts";
20
+ /** Una observación viva. El `lookId` es lo que autoriza a actuar. */
21
+ export interface Observacion {
22
+ lookId: string;
23
+ pid?: number;
24
+ /** Título de la ventana observada, para que el agente sepa dónde está. */
25
+ titulo?: string;
26
+ /** Texto legible del árbol, tal y como lo devuelve el motor. */
27
+ resumen: string;
28
+ elementos: number;
29
+ /**
30
+ * El árbol indexado. NO se le enseña al agente: es para comprobar por
31
+ * nuestra cuenta si una acción surtió efecto, sin fiarnos de lo que diga el
32
+ * motor. Ver `actuar`.
33
+ */
34
+ arbol?: Outline;
35
+ /** Captura de la ventana, solo si se pidió `conImagen`. */
36
+ imagen?: {
37
+ datos: string;
38
+ mimeType: string;
39
+ };
40
+ }
41
+ /**
42
+ * Arranca el demonio nativo si hace falta.
43
+ *
44
+ * Es idempotente y se llama antes de cada operación: el demonio puede haberse
45
+ * caído entre dos acciones, y descubrirlo con un ENOENT de socket es peor que
46
+ * volver a levantarlo.
47
+ */
48
+ export declare function asegurarMotor(): Promise<void>;
49
+ export interface AppAbierta {
50
+ nombre: string;
51
+ bundleId?: string;
52
+ pid?: number;
53
+ }
54
+ export declare function listarApps(signal?: AbortSignal): Promise<AppAbierta[]>;
55
+ export declare function appEnPrimerPlano(signal?: AbortSignal): Promise<AppAbierta>;
56
+ /** Localiza el pid de una aplicación por su nombre. */
57
+ export declare function pidDe(nombreApp: string, signal?: AbortSignal): Promise<number | undefined>;
58
+ /**
59
+ * Observa una ventana y devuelve la observación con la que se puede actuar.
60
+ *
61
+ * `readText: "auto"` deja al motor decidir cuánto texto trae: pedir siempre
62
+ * todo el texto de una ventana grande llena el contexto de ruido, y no pedirlo
63
+ * nunca obliga a una segunda llamada para cada etiqueta.
64
+ */
65
+ export declare function observar(pid: number, opciones?: {
66
+ scopeRef?: string;
67
+ signal?: AbortSignal;
68
+ timeoutMs?: number;
69
+ conImagen?: boolean;
70
+ }): Promise<Observacion>;
71
+ export type AccionMotor = {
72
+ tipo: "click";
73
+ ref: string;
74
+ boton?: "left" | "right" | "middle";
75
+ veces?: number;
76
+ } | {
77
+ tipo: "escribir";
78
+ ref: string;
79
+ texto: string;
80
+ } | {
81
+ tipo: "teclas";
82
+ ref?: string;
83
+ teclas: string[];
84
+ } | {
85
+ tipo: "desplazar";
86
+ ref: string;
87
+ x: number;
88
+ y: number;
89
+ };
90
+ /**
91
+ * Actúa sobre una observación.
92
+ *
93
+ * Exige el `lookId`: el motor rechaza actuar sobre una observación que ya no
94
+ * refleja la pantalla. Eso convierte en imposible el fallo de escribir en una
95
+ * ventana que se cerró en medio.
96
+ */
97
+ export declare function actuar(observacion: Observacion, accion: AccionMotor, opciones?: {
98
+ signal?: AbortSignal;
99
+ timeoutMs?: number;
100
+ }): Promise<{
101
+ ok: boolean;
102
+ detalle: string;
103
+ }>;
104
+ /**
105
+ * Traduce la respuesta del motor a "¿pasó o no pasó?".
106
+ *
107
+ * El motor NO responde con un booleano: responde con `outcome`, que tiene tres
108
+ * valores. Y el tercero es el que importa:
109
+ *
110
+ * - `worked` — lo hizo y lo comprobó.
111
+ * - `didnt` — lo intentó y NO surtió efecto. Sin error: el clic salió, la
112
+ * interfaz no se movió.
113
+ * - `unknown` — lo hizo pero no pudo verificarlo.
114
+ *
115
+ * Tratar `didnt` como éxito es justo el fallo que motivó cambiar de motor: se
116
+ * dio por escrito un texto y el fichero quedó vacío. Solo `worked` es un sí.
117
+ * `unknown` se devuelve como fallo A PROPÓSITO, diciendo que no se pudo
118
+ * comprobar: es preferible que el agente vuelva a mirar con `computer_read` a
119
+ * que encadene diez acciones sobre una suposición.
120
+ *
121
+ * Es una función aparte, y pura, para poder probar los tres casos sin un
122
+ * ordenador delante — el motivo por el que el fallo anterior sobrevivió es que
123
+ * esto vivía dentro de una llamada al sistema que las pruebas nunca alcanzaban.
124
+ */
125
+ export declare function interpretarResultado(r: HelperActResult): {
126
+ ok: boolean;
127
+ detalle: string;
128
+ };
129
+ /**
130
+ * Espera a que algo aparezca (o desaparezca) en una ventana.
131
+ *
132
+ * Es la pieza por la que se cambió de motor. Sin ella, la única forma de
133
+ * "esperar" era dormir un rato fijo y cruzar los dedos: demasiado corto falla,
134
+ * demasiado largo desperdicia el turno, y ninguno de los dos sabe si lo que
135
+ * esperabas llegó.
136
+ */
137
+ export declare function esperar(pid: number, criterio: {
138
+ texto?: string;
139
+ rol?: string;
140
+ desaparezca?: boolean;
141
+ timeoutMs?: number;
142
+ }, opciones?: {
143
+ signal?: AbortSignal;
144
+ }): Promise<{
145
+ encontrado: boolean;
146
+ detalle: string;
147
+ }>;
148
+ /** Lee el texto de un elemento, por trozos. */
149
+ export declare function leerTexto(observacion: Observacion, elementRef: string, opciones?: {
150
+ offset?: number;
151
+ limit?: number;
152
+ signal?: AbortSignal;
153
+ }): Promise<{
154
+ texto: string;
155
+ hayMas: boolean;
156
+ total: number;
157
+ }>;
158
+ export declare function cerrarMotor(): void;
159
+ //# sourceMappingURL=motor-ada.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motor-ada.d.ts","sourceRoot":"","sources":["../../../src/core/computer/motor-ada.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Puente entre nuestras tools y el motor forkeado.\n *\n * Sustituye al driver anterior, que hablaba por CLI con `open-computer-use`.\n * Aquel motor tenía seis acciones y le faltaban las dos que importan: esperar a\n * que algo cambie, y buscar dentro de la interfaz. Sin espera se actúa sobre\n * ventanas que aún no están listas — el fallo que apareció al probarlo contra\n * TextEdit, donde la escritura se dio por buena y el fichero quedó vacío.\n *\n * El modelo del motor nuevo trae una garantía que antes no teníamos: **para\n * actuar hace falta el `lookId` de una observación previa**. Nuestra guía \"lee\n * antes de pulsar\" deja de ser un consejo en el prompt y pasa a ser un\n * requisito que el motor impone. Actuar sobre estado viejo ya no compila.\n *\n * Aquí NO vive ninguna regla de permisos: eso es `politica.ts`, y lo aplica\n * `tools.ts` antes de llamar a nada de esto.\n */\n\nimport { countOutlineNodes, foldToBudget, type LookResponse, nodeByRef, type Outline } from \"./motor/outline.ts\";\nimport { currentPlatformBackend } from \"./motor/platform/index.ts\";\nimport { macosHelper } from \"./motor/platform/macos/helper.ts\";\nimport type { HelperActResult, PlatformActRequest } from \"./motor/platform/types.ts\";\nimport { scoreWindow } from \"./motor/root-selection.ts\";\n\n/** Una observación viva. El `lookId` es lo que autoriza a actuar. */\nexport interface Observacion {\n\tlookId: string;\n\tpid?: number;\n\t/** Título de la ventana observada, para que el agente sepa dónde está. */\n\ttitulo?: string;\n\t/** Texto legible del árbol, tal y como lo devuelve el motor. */\n\tresumen: string;\n\telementos: number;\n\t/**\n\t * El árbol indexado. NO se le enseña al agente: es para comprobar por\n\t * nuestra cuenta si una acción surtió efecto, sin fiarnos de lo que diga el\n\t * motor. Ver `actuar`.\n\t */\n\tarbol?: Outline;\n\t/** Captura de la ventana, solo si se pidió `conImagen`. */\n\timagen?: { datos: string; mimeType: string };\n}\n\nlet arrancado = false;\n\n/**\n * Arranca el demonio nativo si hace falta.\n *\n * Es idempotente y se llama antes de cada operación: el demonio puede haberse\n * caído entre dos acciones, y descubrirlo con un ENOENT de socket es peor que\n * volver a levantarlo.\n */\nexport async function asegurarMotor(): Promise<void> {\n\tif (process.platform !== \"darwin\") return;\n\tif (arrancado) return;\n\tawait macosHelper.ensureInstalled();\n\tawait macosHelper.ensureDaemon();\n\tarrancado = true;\n}\n\nexport interface AppAbierta {\n\tnombre: string;\n\tbundleId?: string;\n\tpid?: number;\n}\n\nexport async function listarApps(signal?: AbortSignal): Promise<AppAbierta[]> {\n\tawait asegurarMotor();\n\tconst apps = await currentPlatformBackend.listApps(signal);\n\treturn apps.map((a) => ({\n\t\tnombre: (a as { appName?: string }).appName ?? (a as { bundleId?: string }).bundleId ?? \"(sin nombre)\",\n\t\tbundleId: (a as { bundleId?: string }).bundleId,\n\t\tpid: (a as { pid?: number }).pid,\n\t}));\n}\n\nexport async function appEnPrimerPlano(signal?: AbortSignal): Promise<AppAbierta> {\n\tawait asegurarMotor();\n\tconst f = (await currentPlatformBackend.getFrontmost(signal)) as {\n\t\tappName?: string;\n\t\tbundleId?: string;\n\t\tpid?: number;\n\t};\n\treturn { nombre: f.appName ?? \"(desconocida)\", bundleId: f.bundleId, pid: f.pid };\n}\n\n/** Localiza el pid de una aplicación por su nombre. */\nexport async function pidDe(nombreApp: string, signal?: AbortSignal): Promise<number | undefined> {\n\tconst apps = await listarApps(signal);\n\tconst buscado = nombreApp.trim().toLowerCase();\n\treturn apps.find((a) => a.nombre.trim().toLowerCase() === buscado)?.pid;\n}\n\n/**\n * Por qué una aplicación viva no enseña ninguna ventana.\n *\n * Hay dos motivos y se parecen desde fuera: o de verdad no tiene ventanas, o\n * macOS nos está negando la Accesibilidad y por eso el árbol llega vacío.\n *\n * Distinguirlos no es cosmético. Se descubrió probándolo: con los permisos sin\n * conceder, `computer_read` sobre TextEdit —que estaba abierto y salía en la\n * lista de aplicaciones— contestaba \"no tiene ninguna ventana abierta\". Un\n * agente que lea eso intentará ABRIR una ventana, que no arregla nada. El error\n * no solo era inútil: empujaba en la dirección contraria.\n *\n * Solo se pregunta al fallar, no en cada observación: el diagnóstico cuesta una\n * ida y vuelta al helper y el caso normal es que haya ventanas.\n */\nasync function porQueNoHayVentanas(pid: number, signal?: AbortSignal): Promise<string> {\n\tconst sinVentanas = `El proceso ${pid} no tiene ninguna ventana abierta. Puede estar en segundo plano o minimizado.`;\n\tif (process.platform !== \"darwin\") return sinVentanas;\n\ttry {\n\t\tconst d = (await macosHelper.diagnosticsCommand(signal)) as { accessibility?: boolean };\n\t\tif (d.accessibility === true) return sinVentanas;\n\t\treturn (\n\t\t\t`macOS está negando el permiso de Accesibilidad, así que no se puede leer la interfaz de ninguna ` +\n\t\t\t`aplicación (el proceso ${pid} sí está vivo). Concédelo con 'ada-cli computer permissions', o en ` +\n\t\t\t`Ajustes del Sistema → Privacidad y seguridad → Accesibilidad.`\n\t\t);\n\t} catch {\n\t\t// Si ni el diagnóstico contesta, no se inventa un motivo.\n\t\treturn sinVentanas;\n\t}\n}\n\n/**\n * Traduce un fallo de captura a algo accionable.\n *\n * Leer una ventana necesita LOS DOS permisos, no solo Accesibilidad: el motor\n * captura para situar los elementos. Con la Accesibilidad concedida y la\n * Grabación de pantalla no, macOS devuelve \"El usuario ha rechazado las\n * preferencias de TCC para la captura…\" — que dice la causa y ningún remedio, y\n * además contradice lo que el usuario acaba de hacer (conceder un permiso).\n *\n * Se detecta por el texto porque es lo que hay: el error llega como cadena del\n * sistema, traducida al idioma del Mac. Por eso se buscan las dos palabras que\n * no cambian de forma —TCC y capture/captura— en vez de una frase entera.\n */\nfunction explicarFalloDeCaptura(error: unknown): string {\n\tconst mensaje = error instanceof Error ? error.message : String(error);\n\tconst esTcc = /\\bTCC\\b/i.test(mensaje) || /captur/i.test(mensaje);\n\tif (!esTcc) return mensaje;\n\treturn (\n\t\t`${mensaje}\\n\\n` +\n\t\t`Leer una ventana necesita TAMBIÉN el permiso de Grabación de pantalla, no solo el de ` +\n\t\t`Accesibilidad: el motor captura la pantalla para situar los elementos. Ábrelo con ` +\n\t\t`'ada-cli computer permissions' y, después de concederlo, 'ada-cli computer recheck' — ` +\n\t\t`macOS cachea los permisos por proceso y hasta que el motor no se reinicie seguirá creyendo ` +\n\t\t`que no lo tiene.`\n\t);\n}\n\n/**\n * Observa una ventana y devuelve la observación con la que se puede actuar.\n *\n * `readText: \"auto\"` deja al motor decidir cuánto texto trae: pedir siempre\n * todo el texto de una ventana grande llena el contexto de ruido, y no pedirlo\n * nunca obliga a una segunda llamada para cada etiqueta.\n */\nexport async function observar(\n\tpid: number,\n\topciones: { scopeRef?: string; signal?: AbortSignal; timeoutMs?: number; conImagen?: boolean } = {},\n): Promise<Observacion> {\n\tawait asegurarMotor();\n\n\t// Hay que resolver la VENTANA primero. Observar por pid a secas falla con\n\t// \"Root is not owned by a running app\": un proceso puede tener cero, una o\n\t// diez ventanas, y el motor necesita saber cuál.\n\tconst raices = await currentPlatformBackend.listRoots({ pid }, opciones.signal);\n\tif (raices.length === 0) throw new Error(await porQueNoHayVentanas(pid, opciones.signal));\n\n\t// Estar minimizada se FILTRA, no se puntúa. Es una precondición, no una\n\t// preferencia: una ventana minimizada no se puede observar en absoluto.\n\t//\n\t// Esto no es teórico. `scoreWindow` (del propio motor) da +180 a `isModal`,\n\t// más que a todo lo demás junto, y las ventanas de TextEdit se declaran\n\t// `AXDialog` → modales. Resultado con TextEdit abierto: una ventana\n\t// minimizada ganaba a la única usable, y el motor contestaba \"Root is not\n\t// owned by a running app\" — que no menciona ni ventanas ni minimizado. El\n\t// propio `root-selection.ts` avisa de la trampa: \"AXDialog can describe a\n\t// background main window, so modality alone is insufficient\".\n\t//\n\t// Entre las que SÍ sirven, `scoreWindow` ordena bien: foco, principal, en\n\t// pantalla. Ahí sí es preferencia.\n\tconst usables = raices.filter((r) => !r.isMinimized);\n\tconst [raiz] = (usables.length > 0 ? usables : raices).sort((a, b) => scoreWindow(b) - scoreWindow(a));\n\tif (usables.length === 0) {\n\t\t// Todas minimizadas: es un estado del que el agente PUEDE salir, pero solo\n\t\t// si se lo dicen. El error del motor no lo menciona.\n\t\tconst cuales = raices\n\t\t\t.map((r) => `\"${r.title}\"`)\n\t\t\t.slice(0, 5)\n\t\t\t.join(\", \");\n\t\tthrow new Error(\n\t\t\t`Todas las ventanas de este proceso están minimizadas (${cuales}), y una ventana minimizada no se puede leer. ` +\n\t\t\t\t`Pídele al usuario que la restaure, o abre la aplicación desde el Dock.`,\n\t\t);\n\t}\n\n\tlet r: LookResponse;\n\ttry {\n\t\tr = (await currentPlatformBackend.observe(\n\t\t\t{\n\t\t\t\ttarget: { pid, windowId: raiz.windowId },\n\t\t\t\treadText: \"auto\",\n\t\t\t\tscopeRef: opciones.scopeRef,\n\t\t\t\tincludeImage: opciones.conImagen === true,\n\t\t\t},\n\t\t\t{ signal: opciones.signal, timeoutMs: opciones.timeoutMs },\n\t\t)) as LookResponse;\n\t} catch (error) {\n\t\tthrow new Error(explicarFalloDeCaptura(error));\n\t}\n\n\t// `outline` NO es texto: es el árbol, con referencias al padre en cada nodo.\n\t// Un `JSON.stringify` revienta con \"circular structure\" — y solo revienta\n\t// cuando hay permisos, porque sin ellos nunca se llega hasta aquí.\n\t//\n\t// El motor trae su propio renderizador, `foldToBudget`, que además PLIEGA:\n\t// una ventana real tiene miles de nodos y volcarlos todos llenaría el\n\t// contexto de ruido dejando lo importante enterrado. Se despliega lo que\n\t// tiene el foco y lo accionable, se pliega el resto.\n\t// `parsedOutline` es el árbol INDEXADO (con el mapa de referencias); `outline`\n\t// a secas es solo el nodo raíz, que no basta para plegar. El backend lo rellena\n\t// al parsear la respuesta del helper.\n\tconst arbol = r.parsedOutline;\n\treturn {\n\t\tlookId: r.lookId ?? \"\",\n\t\tpid,\n\t\ttitulo: raiz.title,\n\t\tresumen: arbol ? foldToBudget(arbol).text : \"(el motor no devolvió ningún árbol)\",\n\t\telementos: countOutlineNodes(r.outline),\n\t\tarbol,\n\t\timagen: r.image ? { datos: r.image.jpegBase64, mimeType: r.image.mimeType ?? \"image/jpeg\" } : undefined,\n\t};\n}\n\nexport type AccionMotor =\n\t| { tipo: \"click\"; ref: string; boton?: \"left\" | \"right\" | \"middle\"; veces?: number }\n\t| { tipo: \"escribir\"; ref: string; texto: string }\n\t| { tipo: \"teclas\"; ref?: string; teclas: string[] }\n\t| { tipo: \"desplazar\"; ref: string; x: number; y: number };\n\n/**\n * Actúa sobre una observación.\n *\n * Exige el `lookId`: el motor rechaza actuar sobre una observación que ya no\n * refleja la pantalla. Eso convierte en imposible el fallo de escribir en una\n * ventana que se cerró en medio.\n */\nexport async function actuar(\n\tobservacion: Observacion,\n\taccion: AccionMotor,\n\topciones: { signal?: AbortSignal; timeoutMs?: number } = {},\n): Promise<{ ok: boolean; detalle: string }> {\n\tawait asegurarMotor();\n\n\t// Tipado explícito y SIN casts: es la única comprobación automática de que\n\t// los nombres de acción que enviamos existen de verdad en el motor. El\n\t// `screenshot` fantasma del motor anterior sobrevivió a las pruebas porque\n\t// aquella llamada iba por texto libre; aquí un nombre inventado no compila.\n\tconst construir = (politica: \"background\" | \"foreground\"): PlatformActRequest => {\n\t\t// El motor deriva el transporte de la política: en primer plano manda\n\t\t// eventos HID (como un teclado de verdad), en segundo plano los entrega al\n\t\t// proceso. Sin este campo la entrega queda a medias y la escritura se\n\t\t// acepta sin surtir efecto.\n\t\tconst delivery = politica === \"foreground\" ? (\"hid\" as const) : (\"pid\" as const);\n\t\tconst base = { lookId: observacion.lookId, pid: observacion.pid, policy: politica };\n\t\tswitch (accion.tipo) {\n\t\t\tcase \"click\":\n\t\t\t\treturn {\n\t\t\t\t\t...base,\n\t\t\t\t\ttarget: { ref: accion.ref },\n\t\t\t\t\taction: \"click\" as const,\n\t\t\t\t\tparams: { button: accion.boton ?? \"left\", clickCount: accion.veces ?? 1, delivery },\n\t\t\t\t};\n\t\t\tcase \"escribir\":\n\t\t\t\treturn {\n\t\t\t\t\t...base,\n\t\t\t\t\ttarget: { ref: accion.ref },\n\t\t\t\t\taction: \"typeText\" as const,\n\t\t\t\t\tparams: { text: accion.texto, delivery },\n\t\t\t\t};\n\t\t\tcase \"teclas\":\n\t\t\t\treturn {\n\t\t\t\t\t...base,\n\t\t\t\t\ttarget: accion.ref ? { ref: accion.ref } : { ref: \"\" },\n\t\t\t\t\taction: \"keypress\" as const,\n\t\t\t\t\tparams: { keys: accion.teclas, delivery },\n\t\t\t\t};\n\t\t\tcase \"desplazar\":\n\t\t\t\treturn {\n\t\t\t\t\t...base,\n\t\t\t\t\ttarget: { ref: accion.ref },\n\t\t\t\t\taction: \"scroll\" as const,\n\t\t\t\t\tparams: { scrollX: accion.x, scrollY: accion.y, delivery },\n\t\t\t\t};\n\t\t}\n\t};\n\n\t// Escribir tarda proporcionalmente a lo que se escribe. Un timeout fijo corta\n\t// los textos largos por la mitad, y medio texto escrito es peor que ninguno.\n\tconst texto = accion.tipo === \"escribir\" ? accion.texto : \"\";\n\tconst timeoutMs = opciones.timeoutMs ?? Math.max(15_000, texto.length * 25 + 4_000);\n\tconst ejecutar = (politica: \"background\" | \"foreground\") =>\n\t\tcurrentPlatformBackend.act(construir(politica), { signal: opciones.signal, timeoutMs });\n\n\t// Segundo plano PRIMERO. Es la diferencia entre trabajar mientras el usuario\n\t// usa su ordenador y robarle la ventana en cada acción.\n\t//\n\t// Pero el segundo plano falla en aplicaciones que exigen ser la de delante\n\t// para aceptar entrada — TextEdit entre ellas: el motor contesta \"the\n\t// background accessibility value write was accepted but did not take effect\".\n\t// Entonces se ESCALA a primer plano, que levanta la ventana y manda eventos\n\t// HID reales. Solo para escribir y teclas: repetir un clic podría pulsar dos\n\t// veces algo que ya funcionó, y esa es la asimetría que el propio motor fija\n\t// en `canRetryInForeground`.\n\tconst puedeEscalar = accion.tipo === \"escribir\" || accion.tipo === \"teclas\";\n\ttry {\n\t\tconst primero = await ejecutar(\"background\");\n\t\tif (primero.outcome !== \"didnt\" || !puedeEscalar) return interpretarResultado(primero);\n\n\t\t// ANTES de repetir, comprobarlo por nuestra cuenta.\n\t\t//\n\t\t// El motor decide `didnt` mirando su propia evidencia, y con TextEdit esa\n\t\t// evidencia es un FALSO NEGATIVO: dice `valueChanged: false, value: \"\"`\n\t\t// mientras el texto está escrito y se ve en el árbol. Escalando a ciegas\n\t\t// se escribía DOS VECES — \"HOLA'ADAHOLA'ADA\" en el documento de prueba.\n\t\t//\n\t\t// Y duplicar es peor que fallar: fallar se ve, duplicar no. Así que la\n\t\t// escalada solo ocurre si el valor del elemento sigue igual que antes. No\n\t\t// se compara con el texto pedido (la aplicación puede transformarlo — la\n\t\t// sustitución tipográfica de TextEdit convierte los guiones en comillas),\n\t\t// sino con el valor previo: cualquier cambio significa que entró.\n\t\tif (await yaSurtioEfecto(observacion, accion, opciones.signal)) {\n\t\t\treturn { ok: true, detalle: \"Hecho (el motor no pudo verificarlo, pero el valor cambió).\" };\n\t\t}\n\t\treturn interpretarResultado(await ejecutar(\"foreground\"));\n\t} catch (error) {\n\t\t// El motor pide primer plano explícitamente con este código.\n\t\tconst codigo = (error as { code?: string })?.code;\n\t\tif (codigo === \"foreground_required\") {\n\t\t\ttry {\n\t\t\t\treturn interpretarResultado(await ejecutar(\"foreground\"));\n\t\t\t} catch (segundo) {\n\t\t\t\treturn { ok: false, detalle: segundo instanceof Error ? segundo.message : String(segundo) };\n\t\t\t}\n\t\t}\n\t\treturn { ok: false, detalle: error instanceof Error ? error.message : String(error) };\n\t}\n}\n\n/**\n * Busca un nodo tolerando la arroba.\n *\n * En el árbol el ref se guarda como `\"@e10\"`, pero en el texto que ve el agente\n * aparece como `@e10` dentro de una línea, y tanto el agente como el motor\n * aceptan `e10` a secas. Es decir: hay dos formas del mismo identificador\n * circulando. El motor las normaliza al actuar; `nodeByRef` no, y devolvía\n * `undefined` en silencio — que en `yaSurtioEfecto` significaba \"no lo puedo\n * comprobar\" y disparaba la escalada. De ahí el texto duplicado.\n */\nfunction nodoDe(arbol: Outline, ref: string) {\n\tconst limpio = ref.replace(/^@/, \"\");\n\treturn nodeByRef(arbol, ref) ?? nodeByRef(arbol, `@${limpio}`) ?? nodeByRef(arbol, limpio);\n}\n\n/**\n * ¿Cambió el valor del elemento, aunque el motor diga que no?\n *\n * Se vuelve a observar y se compara el valor del MISMO ref con el que tenía en\n * la observación de partida. Cualquier diferencia cuenta como éxito: no se\n * compara con el texto que se pidió escribir porque la aplicación puede\n * transformarlo al vuelo.\n *\n * Ante la duda devuelve `false` — es decir, deja que se escale. Un fallo por\n * duplicar texto es silencioso; un fallo por no escribir se ve enseguida.\n */\nasync function yaSurtioEfecto(observacion: Observacion, accion: AccionMotor, signal?: AbortSignal): Promise<boolean> {\n\tif (accion.tipo !== \"escribir\" || !observacion.arbol || observacion.pid === undefined) return false;\n\tconst antes = nodoDe(observacion.arbol, accion.ref)?.value;\n\tif (antes === undefined) return false;\n\ttry {\n\t\tconst ahora = await observar(observacion.pid, { signal });\n\t\tconst despues = ahora.arbol ? nodoDe(ahora.arbol, accion.ref)?.value : undefined;\n\t\treturn despues !== undefined && despues !== antes;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n/**\n * Traduce la respuesta del motor a \"¿pasó o no pasó?\".\n *\n * El motor NO responde con un booleano: responde con `outcome`, que tiene tres\n * valores. Y el tercero es el que importa:\n *\n * - `worked` — lo hizo y lo comprobó.\n * - `didnt` — lo intentó y NO surtió efecto. Sin error: el clic salió, la\n * interfaz no se movió.\n * - `unknown` — lo hizo pero no pudo verificarlo.\n *\n * Tratar `didnt` como éxito es justo el fallo que motivó cambiar de motor: se\n * dio por escrito un texto y el fichero quedó vacío. Solo `worked` es un sí.\n * `unknown` se devuelve como fallo A PROPÓSITO, diciendo que no se pudo\n * comprobar: es preferible que el agente vuelva a mirar con `computer_read` a\n * que encadene diez acciones sobre una suposición.\n *\n * Es una función aparte, y pura, para poder probar los tres casos sin un\n * ordenador delante — el motivo por el que el fallo anterior sobrevivió es que\n * esto vivía dentro de una llamada al sistema que las pruebas nunca alcanzaban.\n */\nexport function interpretarResultado(r: HelperActResult): { ok: boolean; detalle: string } {\n\tconst cambios = (r.rootDelta ?? [])\n\t\t.map((d) => `${d.change}: ${d.title ?? d.kind}`)\n\t\t.slice(0, 5)\n\t\t.join(\"; \");\n\n\tif (r.outcome === \"worked\") {\n\t\treturn { ok: true, detalle: cambios ? `Hecho. Cambios en pantalla — ${cambios}` : \"Hecho.\" };\n\t}\n\n\tconst motivo = r.error?.message ?? r.error?.code;\n\tif (r.outcome === \"didnt\") {\n\t\treturn {\n\t\t\tok: false,\n\t\t\tdetalle: motivo\n\t\t\t\t? `La acción no surtió efecto: ${motivo}`\n\t\t\t\t: \"La acción no surtió efecto. El elemento puede estar deshabilitado, tapado o no aceptar esta acción.\",\n\t\t};\n\t}\n\n\treturn {\n\t\tok: false,\n\t\tdetalle: `No se pudo comprobar si la acción surtió efecto${motivo ? `: ${motivo}` : \"\"}. Vuelve a leer la ventana con computer_read antes de seguir.`,\n\t};\n}\n\n/**\n * Espera a que algo aparezca (o desaparezca) en una ventana.\n *\n * Es la pieza por la que se cambió de motor. Sin ella, la única forma de\n * \"esperar\" era dormir un rato fijo y cruzar los dedos: demasiado corto falla,\n * demasiado largo desperdicia el turno, y ninguno de los dos sabe si lo que\n * esperabas llegó.\n */\nexport async function esperar(\n\tpid: number,\n\tcriterio: { texto?: string; rol?: string; desaparezca?: boolean; timeoutMs?: number },\n\topciones: { signal?: AbortSignal } = {},\n): Promise<{ encontrado: boolean; detalle: string }> {\n\tawait asegurarMotor();\n\tconst timeoutMs = Math.min(Math.max(criterio.timeoutMs ?? 10_000, 500), 60_000);\n\ttry {\n\t\tconst r = (await currentPlatformBackend.waitFor(\n\t\t\t{ pid, text: criterio.texto, role: criterio.rol, gone: criterio.desaparezca === true, timeoutMs },\n\t\t\t{ signal: opciones.signal, timeoutMs: timeoutMs + 5_000 },\n\t\t)) as { found?: boolean; timedOut?: boolean };\n\t\treturn {\n\t\t\tencontrado: r.found === true,\n\t\t\tdetalle: r.found ? \"encontrado\" : r.timedOut ? `no apareció en ${timeoutMs} ms` : \"no encontrado\",\n\t\t};\n\t} catch (error) {\n\t\treturn { encontrado: false, detalle: error instanceof Error ? error.message : String(error) };\n\t}\n}\n\n/** Lee el texto de un elemento, por trozos. */\nexport async function leerTexto(\n\tobservacion: Observacion,\n\telementRef: string,\n\topciones: { offset?: number; limit?: number; signal?: AbortSignal } = {},\n): Promise<{ texto: string; hayMas: boolean; total: number }> {\n\tawait asegurarMotor();\n\tconst r = await currentPlatformBackend.readText(\n\t\t{\n\t\t\tlookId: observacion.lookId,\n\t\t\telementRef,\n\t\t\toffset: opciones.offset ?? 0,\n\t\t\tlimit: Math.min(opciones.limit ?? 4000, 20_000),\n\t\t},\n\t\t{ signal: opciones.signal },\n\t);\n\treturn { texto: r.text, hayMas: r.hasMore, total: r.totalChars };\n}\n\nexport function cerrarMotor(): void {\n\tarrancado = false;\n\tvoid currentPlatformBackend.shutdown?.();\n}\n"]}