@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":"bridge.js","sourceRoot":"","sources":["../../../../src/core/computer/motor/bridge.ts"],"names":[],"mappings":"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","sourcesContent":["import { type ChildProcess, spawn } from \"node:child_process\";\nimport { randomUUID } from \"node:crypto\";\nimport { constants as fsConstants } from \"node:fs\";\nimport { access } from \"node:fs/promises\";\nimport net from \"node:net\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport type { AgentToolResult, AgentToolUpdateCallback, ExtensionContext } from \"../../extensions/types.ts\";\nimport {\n\ttype ActionState,\n\tcanRetryInForeground,\n\toutcomeAfterCheck,\n\toutcomeAfterObservedValues,\n\ttype PreparedAction,\n\tprepareAction,\n} from \"./actions.ts\";\nimport {\n\ttype CdpConsoleEntry,\n\ttype CdpPageSnapshot,\n\tcdpClickForContext,\n\tcdpDragForContext,\n\tcdpEvaluateForContext,\n\tcdpKeypressForContext,\n\tcdpMouseForContext,\n\tcdpNavigateContext,\n\tcdpScrollForContext,\n\tcdpSnapshotForContext,\n\tcdpTabForWindow,\n\tcdpTypeFocusedForContext,\n\tcdpTypeForContext,\n\tdisconnectCdp,\n\tlistCdpPageContexts,\n} from \"./cdp.ts\";\nimport { getComputerUseConfig, isBrowserUseEnabled, isHeadlessMode, loadComputerUseConfig } from \"./config.ts\";\nimport {\n\ttype ActParams,\n\tAGENT_TOOL_NAMES,\n\ttype EvaluateBrowserParams,\n\ttype ExpandUiParams,\n\ttype FindParams,\n\ttype ImageMode,\n\ttype InspectUiParams,\n\ttype LaunchBrowserParams,\n\ttype NavigateBrowserParams,\n\ttype ObserveParams,\n\ttype ObserveTargetParams,\n\ttype ReadTextParams,\n\ttype RootSelector,\n\ttype SearchUiParams,\n\ttype UiAction,\n\ttype WaitForParams,\n} from \"./contract.ts\";\nimport { noteAfterAct, noteFromLook, noteRegionKeyForRef, renderNote, type WindowNote } from \"./note.ts\";\nimport {\n\tfoldToBudget,\n\tgraftScopedOutline,\n\ttype LookResponse,\n\tnodeByRef,\n\ttype Outline,\n\ttype OutlineChange,\n\ttype OutlineNode,\n\ttype OutlineSearchMatch,\n\toutlineNodeLabel,\n\toutlineNodePath,\n\trankedTextMatch,\n\trestoreOutline,\n\ttype SerializedOutline,\n\ttype SerializedOutlineNode,\n\ttype SerializedOutlineSearchMatch,\n\tsearchOutline,\n\tsearchOutlineRanked,\n\tserializeOutline,\n\tserializeOutlineNodeShallow,\n\tserializeOutlineSearchMatch,\n} from \"./outline.ts\";\nimport {\n\tapplyOutputEnvelope,\n\tboundToolError,\n\tclearStoredOutputs,\n\treadStoredOutput,\n\tUI_TEXT_PAGE_CHARS,\n} from \"./output.ts\";\nimport type { PermissionStatus } from \"./permissions.ts\";\nimport { toFiniteNumber } from \"./platform/coerce.ts\";\nimport { currentPlatformBackend } from \"./platform/index.ts\";\nimport type {\n\tFramePoints,\n\tPlatformFrontmostResult as FrontmostResult,\n\tHelperActPerformed,\n\tHelperActResult,\n\tPlatformApp as HelperApp,\n\tPlatformRoot as HelperWindow,\n\tNativeInputDelivery,\n\tPlatformActRequest,\n\tPlatformDiagnostics,\n} from \"./platform/types.ts\";\nimport { scoreWindow, shouldPreferForegroundModalWindow } from \"./root-selection.ts\";\nimport { ResourceScheduler } from \"./runtime.ts\";\nimport { type CurrentCapture, type CurrentTarget, type OperationState, SavedStates } from \"./state.ts\";\nimport { changesBetween, renderChanges, stabilizeRefs } from \"./view.ts\";\n\nexport type {\n\tActParams,\n\tEvaluateBrowserParams,\n\tExpandUiParams,\n\tFindParams,\n\tImageMode,\n\tInspectUiParams,\n\tLaunchBrowserParams,\n\tMouseButtonName,\n\tNavigateBrowserParams,\n\tObserveParams,\n\tObserveTargetParams,\n\tReadTextParams,\n\tRootSelector,\n\tSearchUiParams,\n\tStateTargetParams,\n\tUiAction,\n\tWaitForParams,\n} from \"./contract.ts\";\n\ninterface ActivationFlags {\n\tactivated: boolean;\n\tunminimized: boolean;\n\traised: boolean;\n}\n\ntype ExecutionVariant = \"stealth\" | \"default\";\ntype ActionDelivery = \"ax\" | NativeInputDelivery;\ntype DeliveryPolicy = \"ax_only\" | \"background\" | \"default\" | \"foreground\";\ntype ActOutcome = \"worked\" | \"didnt\" | \"unknown\";\n\ninterface ExecutionTrace {\n\tstrategy: \"look\" | \"act\" | \"wait\" | \"browser_open_location\" | \"cdp_navigate\";\n\truntimeMode?: ExecutionVariant;\n\tvariant?: ExecutionVariant;\n\tstealthCompatible?: boolean;\n\tdelivery?: ActionDelivery;\n\tdeliveryPolicy?: DeliveryPolicy;\n\toutcome?: ActOutcome;\n\tperformed?: HelperActPerformed;\n\tevidence?: Record<string, unknown>;\n\terror?: HelperActResult[\"error\"];\n\trootDelta?: HelperActResult[\"rootDelta\"];\n\tsteps?: ExecutionTrace[];\n\tactionCount?: number;\n\tstoppedAt?: number;\n\tbackgroundFirst?: boolean;\n\tescalatedToForeground?: boolean;\n\tescalationReason?: string;\n\tbackgroundAttempt?: { outcome: \"foreground_required\" | \"didnt\"; reason: string };\n\tverification?: {\n\t\tstatus: \"verified\" | \"preexisting\" | \"failed\";\n\t\ttext?: string;\n\t\trole?: string;\n\t\tvalue?: string;\n\t\tgone?: boolean;\n\t\ttimeoutMs: number;\n\t};\n}\n\ninterface ComputerUseDetails {\n\ttool: string;\n\ttarget: {\n\t\tapp: string;\n\t\tbundleId?: string;\n\t\tpid: number;\n\t\twindowTitle: string;\n\t\twindowId: number;\n\t\twindowRef?: string;\n\t\tnativeWindowRef?: string;\n\t};\n\tcapture: {\n\t\tstateId: string;\n\t\twidth: number;\n\t\theight: number;\n\t\tscaleFactor: number;\n\t\ttimestamp: number;\n\t\tcoordinateSpace: \"window-relative-screenshot-pixels\";\n\t};\n\tlookId?: string;\n\tview: \"full\" | \"diff\";\n\tbaseStateId?: string;\n\tchanges?: OutlineChange[];\n\tviewReason?: \"root_replaced\" | \"change_budget_exceeded\" | \"identity_confidence_low\";\n\trenderedOutline?: string;\n\toutline?: SerializedOutline;\n\tnote?: WindowNote;\n\tactivation: ActivationFlags;\n\texecution: ExecutionTrace;\n\tconfig?: {\n\t\tbrowser_use: boolean;\n\t\theadless: boolean;\n\t};\n\thelper?: PlatformDiagnostics;\n\tstatus?: \"ok\";\n\taxDiagnostics?: {\n\t\treason?: string;\n\t\tmessage?: string;\n\t\tdebug?: unknown;\n\t};\n\t/** Recent browser console messages/exceptions; only present when CDP is active. */\n\tconsole?: CdpConsoleEntry[];\n\timageReason?:\n\t\t| \"fallback_recovery\"\n\t\t| \"browser_ax_window_unavailable\"\n\t\t| \"no_ax_targets\"\n\t\t| \"sparse_ax_targets\"\n\t\t| \"weak_ax_targets\"\n\t\t| \"unlabeled_ax_targets\"\n\t\t| \"duplicated_ax_labels\"\n\t\t| \"browser_wait_verification\";\n}\ninterface TerminalDesktopActionDetails {\n\ttool: \"act_ui\";\n\tstatus: \"target_closed\" | \"post_action_observation_failed\";\n\tbaseStateId: string;\n\ttarget: {\n\t\tapp: string;\n\t\tbundleId?: string;\n\t\tpid: number;\n\t\twindowTitle: string;\n\t\twindowId: number;\n\t\twindowRef?: string;\n\t\tnativeWindowRef?: string;\n\t};\n\texecution: ExecutionTrace;\n\terror: { code: string; message: string };\n}\n\ninterface ListWindowsDetails {\n\ttool: \"find_roots\";\n\tquery: FindParams;\n\ttotalMatches?: number;\n\treturned?: number;\n\thasMore?: boolean;\n\twindows: Array<{\n\t\tapp: string;\n\t\tbundleId?: string;\n\t\tpid: number;\n\t\tkind: string;\n\t\twindowTitle: string;\n\t\twindowId?: number;\n\t\twindowRef: string;\n\t\tnativeWindowRef?: string;\n\t\tframePoints: FramePoints;\n\t\tscaleFactor: number;\n\t\tisMinimized: boolean;\n\t\tisOnscreen: boolean;\n\t\tisMain: boolean;\n\t\tisFocused: boolean;\n\t\tisModal: boolean;\n\t\tsheetCount?: number;\n\t\trole?: string;\n\t\tsubrole?: string;\n\t\tpairing?: { confidence: \"exact\" | \"high\" | \"low\"; score: number };\n\t\tzOrder: number;\n\t\tbrowserUseAllowed: boolean;\n\t\tscore: number;\n\t\turl?: string;\n\t}>;\n\tconfig: {\n\t\tbrowser_use: boolean;\n\t\theadless: boolean;\n\t};\n}\n\ninterface BrowserObservationDetails {\n\ttool: string;\n\tkind: \"browser_page\";\n\tstateId: string;\n\tbaseStateId?: string;\n\tview: \"full\" | \"diff\";\n\tchanges?: OutlineChange[];\n\troot: { ref: string; kind: \"browser_page\"; title: string; url: string };\n\toutline: SerializedOutline;\n\trenderedOutline: string;\n}\n\ninterface EvaluateBrowserDetails {\n\ttool: \"evaluate_browser\";\n\tbaseStateId: string;\n\tstateId: string;\n\tview: \"full\" | \"diff\";\n\tchanges?: OutlineChange[];\n\toutline: SerializedOutline;\n\trenderedOutline: string;\n}\n\ninterface ReadTextDetails {\n\ttool: \"read_text\";\n\tref?: string;\n\toffset: number;\n\tlimit: number;\n\ttotalChars?: number;\n\ttotalBytes?: number;\n\thasMore: boolean;\n\tcomplete?: boolean;\n\ttext: string;\n}\n\ninterface WaitForDetails {\n\ttool: \"wait_for\";\n\tstateId: string;\n\tbaseStateId?: string;\n\tview: \"full\" | \"diff\";\n\tchanges?: OutlineChange[];\n\tfound: boolean;\n\tgone?: boolean;\n\ttimedOut?: boolean;\n\ttarget?: SerializedOutlineSearchMatch;\n\tnodeCount?: number;\n\ttext?: string;\n\trole?: string;\n\tvalue?: string;\n\tscopeRef?: string;\n\toutline: SerializedOutline;\n\trenderedOutline: string;\n}\n\ninterface OutlineToolDetails {\n\ttool: \"search_ui\" | \"expand_ui\" | \"inspect_ui\";\n\tstateId?: string;\n\tlookId?: string;\n\toutline?: SerializedOutline;\n\trenderedOutline?: string;\n\ttotalMatches?: number;\n\treturned?: number;\n\thasMore?: boolean;\n\tmatches?: SerializedOutlineSearchMatch[];\n\ttarget?: SerializedOutlineNode;\n\tnote?: WindowNote;\n}\n\ninterface ResolvedTarget extends CurrentTarget {\n\tframePoints: FramePoints;\n\tscaleFactor: number;\n\tisMinimized: boolean;\n\tisOnscreen: boolean;\n\tisMain: boolean;\n\tisFocused: boolean;\n}\n\ninterface WindowRefRecord {\n\tref: string;\n\tappName: string;\n\tbundleId?: string;\n\tpid: number;\n\twindowTitle: string;\n\twindowId?: number;\n\tnativeWindowRef?: string;\n\tframePoints: FramePoints;\n\tscaleFactor: number;\n\tisMinimized: boolean;\n\tisOnscreen: boolean;\n\tisMain: boolean;\n\tisFocused: boolean;\n}\n\ninterface RuntimeState {\n\twindowRefs: Map<string, WindowRefRecord>;\n\twindowRefByIdentity: Map<string, string>;\n\tbrowserRootByContext: Map<string, string>;\n\tbrowserContextByRoot: Map<string, string>;\n\tnextRootRefIndex: number;\n\tmanagedBrowser?: ChildProcess;\n\tmanagedBrowserCdpPort?: string;\n\tpreviousCdpPort?: string;\n\tpermissionStatus?: PermissionStatus;\n\thelperDiagnostics?: PlatformDiagnostics;\n\tlastPermissionCheckAt: number;\n}\n\nconst MISSING_TARGET_ERROR = \"No current controlled window. Call observe_ui first to choose a target window.\";\nconst CURRENT_TARGET_GONE_ERROR =\n\t\"The current controlled window is no longer available. Call observe_ui to choose a new target window.\";\n\nconst COMMAND_TIMEOUT_MS = 15_000;\nconst LOOK_TIMEOUT_MS = 33_000;\n\nconst ACTION_SETTLE_MS = 280;\n\nconst BROWSER_CONTEXT_PREFIX = \"browser:\";\nconst MANAGED_BROWSER_READY_TIMEOUT_MS = 15_000;\nconst AUTO_IMAGE_MAX_DIMENSION = 900;\nconst EXPLICIT_IMAGE_MAX_DIMENSION = 1_600;\nconst BROWSER_TRANSACTION_ACTIONS = new Set<UiAction[\"action\"]>([\n\t\"press\",\n\t\"click\",\n\t\"setText\",\n\t\"typeText\",\n\t\"keypress\",\n\t\"scroll\",\n\t\"drag\",\n\t\"moveMouse\",\n]);\n\nconst runtimeState: RuntimeState = {\n\tlastPermissionCheckAt: 0,\n\twindowRefs: new Map(),\n\twindowRefByIdentity: new Map(),\n\tbrowserRootByContext: new Map(),\n\tbrowserContextByRoot: new Map(),\n\tnextRootRefIndex: 1,\n};\n\nconst savedStates = new SavedStates();\nlet resourceScheduler = new ResourceScheduler();\n\nfunction operationState(): OperationState {\n\treturn savedStates.current();\n}\n\nfunction desktopResourceKey(target: Pick<CurrentTarget, \"pid\">): string {\n\treturn `desktop-pid:${target.pid}`;\n}\n\nfunction persistOperation(state: OperationState): void {\n\tif (!state.currentTarget || !state.currentCapture || !state.currentLook || !state.currentOutline) return;\n\tconst resourceKey = state.resourceKey ?? desktopResourceKey(state.currentTarget);\n\tconst epoch = state.epoch ?? resourceScheduler.epoch(resourceKey);\n\tsavedStates.saveDesktop(state, resourceKey, epoch);\n}\n\n/** Release handles and state owned by the current Pi session. */\nexport async function shutdownComputerUseSession(): Promise<void> {\n\tawait resourceScheduler.close();\n\tresourceScheduler = new ResourceScheduler();\n\tdisconnectCdp();\n\n\tconst managedBrowser = runtimeState.managedBrowser;\n\truntimeState.managedBrowser = undefined;\n\tif (managedBrowser) {\n\t\tmanagedBrowser.kill(\"SIGTERM\");\n\t\tmanagedBrowser.unref();\n\t}\n\tif (\n\t\truntimeState.managedBrowserCdpPort &&\n\t\tprocess.env.ADA_COMPUTER_USE_CDP_PORT === runtimeState.managedBrowserCdpPort\n\t) {\n\t\tif (runtimeState.previousCdpPort === undefined) delete process.env.ADA_COMPUTER_USE_CDP_PORT;\n\t\telse process.env.ADA_COMPUTER_USE_CDP_PORT = runtimeState.previousCdpPort;\n\t}\n\truntimeState.managedBrowserCdpPort = undefined;\n\truntimeState.previousCdpPort = undefined;\n\n\tsavedStates.clear();\n\tclearStoredOutputs();\n\truntimeState.windowRefs.clear();\n\truntimeState.windowRefByIdentity.clear();\n\truntimeState.browserRootByContext.clear();\n\truntimeState.browserContextByRoot.clear();\n\truntimeState.nextRootRefIndex = 1;\n\truntimeState.permissionStatus = undefined;\n\truntimeState.helperDiagnostics = undefined;\n\truntimeState.lastPermissionCheckAt = 0;\n\tawait currentPlatformBackend.shutdown?.();\n}\n\nfunction currentRuntimeMode(): ExecutionVariant {\n\treturn isHeadlessMode() ? \"stealth\" : \"default\";\n}\n\nfunction currentDeliveryPolicy(): DeliveryPolicy {\n\tif (isHeadlessMode()) return \"background\";\n\tconst value = (\n\t\tprocess.env.ADA_COMPUTER_USE_DELIVERY_POLICY ??\n\t\tprocess.env.ADA_COMPUTER_USE_EVENT_DELIVERY ??\n\t\t\"default\"\n\t).toLowerCase();\n\treturn value === \"background\" || value === \"pid\"\n\t\t? \"background\"\n\t\t: value === \"foreground\" || value === \"hid\"\n\t\t\t? \"foreground\"\n\t\t\t: value === \"ax_only\" || value === \"ax-only\"\n\t\t\t\t? \"ax_only\"\n\t\t\t\t: \"default\";\n}\n\nfunction nativeInputDelivery(policy = currentDeliveryPolicy()): NativeInputDelivery {\n\treturn policy === \"foreground\" ? \"hid\" : \"pid\";\n}\n\nfunction executionTrace(\n\tstrategy: ExecutionTrace[\"strategy\"],\n\tvariant: ExecutionVariant,\n\tmetadata: Omit<ExecutionTrace, \"strategy\" | \"runtimeMode\" | \"variant\" | \"stealthCompatible\"> = {},\n): ExecutionTrace {\n\treturn {\n\t\tstrategy,\n\t\truntimeMode: currentRuntimeMode(),\n\t\tvariant,\n\t\tstealthCompatible: variant === \"stealth\",\n\t\t...metadata,\n\t};\n}\n\nfunction settleMsForExecution(execution: ExecutionTrace): number {\n\t// Any deltaSource means the helper already awaited UI quiescence; the\n\t// bridge must not double-pay with its own settle sleep.\n\tif (execution.performed?.deltaSource) return 0;\n\tif (execution.variant === \"stealth\") {\n\t\tswitch (execution.strategy) {\n\t\t\tcase \"browser_open_location\":\n\t\t\t\treturn 120;\n\t\t\tdefault:\n\t\t\t\treturn 120;\n\t\t}\n\t}\n\treturn ACTION_SETTLE_MS;\n}\n\nfunction throwIfAborted(signal?: AbortSignal): void {\n\tif (signal?.aborted) {\n\t\tthrow new Error(\"Operation aborted.\");\n\t}\n}\n\nasync function sleep(ms: number, signal?: AbortSignal): Promise<void> {\n\tif (ms <= 0) return;\n\tthrowIfAborted(signal);\n\n\tawait new Promise<void>((resolve, reject) => {\n\t\tconst timer = setTimeout(() => {\n\t\t\tcleanup();\n\t\t\tresolve();\n\t\t}, ms);\n\n\t\tconst onAbort = () => {\n\t\t\tcleanup();\n\t\t\treject(new Error(\"Operation aborted.\"));\n\t\t};\n\n\t\tconst cleanup = () => {\n\t\t\tclearTimeout(timer);\n\t\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\t};\n\n\t\tsignal?.addEventListener(\"abort\", onAbort, { once: true });\n\t});\n}\n\nasync function withWindowWriteLock<T>(target: ResolvedTarget | CurrentTarget, work: () => Promise<T>): Promise<T> {\n\tconst state = operationState();\n\tconst key = desktopResourceKey(target);\n\tconst baseEpoch = state.epoch ?? resourceScheduler.epoch(key);\n\tconst result = await resourceScheduler.write(key, baseEpoch, async (nextEpoch) => {\n\t\tstate.resourceKey = key;\n\t\tstate.epoch = nextEpoch;\n\t\treturn await work();\n\t});\n\treturn result.value;\n}\n\nfunction trimOrUndefined(value: string | undefined): string | undefined {\n\tif (typeof value !== \"string\") return undefined;\n\tconst trimmed = value.trim();\n\treturn trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction normalizeText(value: string | undefined): string {\n\treturn (value ?? \"\").trim().toLowerCase();\n}\n\nfunction toBoolean(value: unknown): boolean {\n\treturn value === true;\n}\n\nfunction outlineNodeCenter(node: OutlineNode): { x: number; y: number } {\n\tif (!node.rect) {\n\t\tthrow new Error(\n\t\t\t`Outline ref '${node.ref}' has no full-look coordinates after scoped expansion. Re-observe for coordinates.`,\n\t\t);\n\t}\n\treturn { x: node.rect.x + node.rect.w / 2, y: node.rect.y + node.rect.h / 2 };\n}\n\nfunction validateStateId(stateId?: string): CurrentCapture {\n\tconst state = operationState();\n\tif (!state.currentCapture) {\n\t\tthrow new Error(\"No observation state is available. Call observe_ui first.\");\n\t}\n\tconst supplied = stateId;\n\tif (supplied && state.currentCapture.stateId !== supplied) {\n\t\tthrow new Error(\n\t\t\t`Stale state '${supplied}'. The active operation state is '${state.currentCapture.stateId}'. Observe the root again and retry.`,\n\t\t);\n\t}\n\tconst stateTarget = state.currentStateTarget;\n\tif (\n\t\tstateTarget &&\n\t\tstate.currentTarget &&\n\t\t(stateTarget.pid !== state.currentTarget.pid || stateTarget.windowId !== state.currentTarget.windowId)\n\t) {\n\t\tthrow new Error(\n\t\t\t\"The latest state belongs to a different window. Call observe_ui for the target window and retry.\",\n\t\t);\n\t}\n\treturn state.currentCapture;\n}\n\nfunction formatOutlineNodeLabel(node: OutlineNode): string {\n\tconst label = outlineNodeLabel(node) || \"(unlabeled)\";\n\tconst identifier = node.identifier ? ` id=${JSON.stringify(node.identifier)}` : \"\";\n\tconst capabilities = [\n\t\tnode.canSetValue ? \"setValue\" : undefined,\n\t\tnode.canPress ? \"press\" : undefined,\n\t\tnode.canFocus ? \"focus\" : undefined,\n\t\tnode.canScroll ? \"scroll\" : undefined,\n\t\tnode.canIncrement || node.canDecrement ? \"adjust\" : undefined,\n\t\tnode.pictureOnly ? \"pictureOnly\" : undefined,\n\t].filter((item): item is string => Boolean(item));\n\treturn `${node.ref} ${node.role}${node.subrole ? `/${node.subrole}` : \"\"}${identifier} ${JSON.stringify(label)}${capabilities.length ? ` [${capabilities.join(\",\")}]` : \"\"}`;\n}\n\nfunction outlineNodeByRef(ref: string): OutlineNode {\n\tconst state = operationState();\n\tconst outline = state.currentOutline;\n\tconst node = outline ? nodeByRef(outline, ref) : undefined;\n\tif (!node) {\n\t\tconst windowHint = state.currentTarget?.windowRef ? `({ root: \"${state.currentTarget.windowRef}\" })` : \"\";\n\t\tthrow new Error(\n\t\t\t`Outline ref '${ref}' is stale or not available for the latest state. Call observe_ui${windowHint} again and choose a current @e ref.`,\n\t\t);\n\t}\n\treturn node;\n}\n\nfunction wireRefForNode(node: OutlineNode): string {\n\tif (node.pictureOnly || !node.wireRef) {\n\t\tthrow new Error(\n\t\t\t`Outline ref '${node.ref}' is pictureOnly and has no semantic element. It can be clicked by coordinates, but semantic-only actions are not available.`,\n\t\t);\n\t}\n\treturn node.wireRef;\n}\n\nfunction imageFallbackReason(\n\ttool: string,\n\tresult: CaptureResult,\n\timageMode: ImageMode = \"auto\",\n): { reason: NonNullable<ComputerUseDetails[\"imageReason\"]>; message: string } | undefined {\n\tif (imageMode === \"never\") return undefined;\n\tif (imageMode === \"always\")\n\t\treturn { reason: \"fallback_recovery\", message: \"An image was requested explicitly for visual verification.\" };\n\tconst outline = result.outline;\n\tconst labeled = outline.nodes.filter((node) => outlineNodeLabel(node)).length;\n\tif (outline.nodes.length < 3) {\n\t\treturn {\n\t\t\treason: \"sparse_ax_targets\",\n\t\t\tmessage: \"Only a few outline nodes were found, so the look image is attached for context.\",\n\t\t};\n\t}\n\tif (labeled * 3 < outline.nodes.length) {\n\t\treturn {\n\t\t\treason: \"unlabeled_ax_targets\",\n\t\t\tmessage: \"Most outline nodes are unlabeled, so the look image is attached for context.\",\n\t\t};\n\t}\n\tif (tool === \"wait\" && currentPlatformBackend.isBrowserApp(result.target.appName, result.target.bundleId)) {\n\t\treturn {\n\t\t\treason: \"browser_wait_verification\",\n\t\t\tmessage: \"Browser content may have changed visually during wait, so an image is attached for fallback.\",\n\t\t};\n\t}\n\treturn undefined;\n}\n\nfunction currentTargetOrThrow(): CurrentTarget {\n\tconst target = operationState().currentTarget;\n\tif (!target) {\n\t\tthrow new Error(MISSING_TARGET_ERROR);\n\t}\n\treturn target;\n}\n\nfunction emptyActivation(): ActivationFlags {\n\treturn { activated: false, unminimized: false, raised: false };\n}\n\nasync function ensureReady(ctx: ExtensionContext, signal?: AbortSignal): Promise<void> {\n\tloadComputerUseConfig(ctx.cwd);\n\n\tthrowIfAborted(signal);\n\tconst ready = await currentPlatformBackend.ensureReady(\n\t\tctx,\n\t\t{\n\t\t\tpermissionStatus: runtimeState.permissionStatus,\n\t\t\tlastPermissionCheckAt: runtimeState.lastPermissionCheckAt,\n\t\t\thelperDiagnostics: runtimeState.helperDiagnostics,\n\t\t},\n\t\tsignal,\n\t);\n\truntimeState.permissionStatus = ready.permissionStatus;\n\truntimeState.lastPermissionCheckAt = ready.lastPermissionCheckAt;\n\truntimeState.helperDiagnostics = ready.helperDiagnostics;\n}\n\nexport async function ensureComputerUseSetup(ctx: ExtensionContext, signal?: AbortSignal): Promise<void> {\n\tawait ensureReady(ctx, signal);\n}\n\nasync function listApps(signal?: AbortSignal): Promise<HelperApp[]> {\n\treturn await currentPlatformBackend.listApps(signal);\n}\n\nasync function listWindows(pid: number, signal?: AbortSignal): Promise<HelperWindow[]> {\n\treturn await currentPlatformBackend.listRoots({ pid }, signal);\n}\n\nfunction appMatchesWindowQuery(app: HelperApp, query: FindParams): boolean {\n\tconst appQuery = trimOrUndefined(query.app);\n\tconst bundleQuery = trimOrUndefined(query.bundleId);\n\tconst pidQuery = Number.isFinite(query.pid) ? Math.trunc(query.pid!) : undefined;\n\n\tif (pidQuery !== undefined && app.pid !== pidQuery) return false;\n\tif (bundleQuery && normalizeText(app.bundleId ?? \"\") !== normalizeText(bundleQuery)) return false;\n\tif (appQuery && normalizeText(app.appName) !== normalizeText(appQuery)) return false;\n\treturn true;\n}\n\nfunction platformRootSheetCount(window: Pick<HelperWindow, \"metadata\">): number | undefined {\n\tconst value = window.metadata?.sheetCount;\n\treturn typeof value === \"number\" && Number.isFinite(value) ? Math.max(0, Math.trunc(value)) : undefined;\n}\n\nfunction platformRootPairing(\n\twindow: Pick<HelperWindow, \"metadata\">,\n): { confidence: \"exact\" | \"high\" | \"low\"; score: number } | undefined {\n\tconst value = window.metadata?.pairing;\n\tif (!value || typeof value !== \"object\") return undefined;\n\tconst pairing = value as { confidence?: unknown; score?: unknown };\n\tif (pairing.confidence !== \"exact\" && pairing.confidence !== \"high\" && pairing.confidence !== \"low\")\n\t\treturn undefined;\n\treturn {\n\t\tconfidence: pairing.confidence,\n\t\tscore:\n\t\t\ttypeof pairing.score === \"number\" && Number.isFinite(pairing.score) ? pairing.score : Number.NEGATIVE_INFINITY,\n\t};\n}\n\nfunction formatWindowLine(window: ListWindowsDetails[\"windows\"][number]): string {\n\tif (window.kind === \"browser_page\")\n\t\treturn `- ${window.windowRef} browser_page ${JSON.stringify(window.windowTitle)}${window.url ? ` — ${window.url}` : \"\"}`;\n\tconst flags = [\n\t\twindow.isFocused ? \"focused\" : undefined,\n\t\twindow.isMain ? \"main\" : undefined,\n\t\twindow.isModal ? \"modal\" : undefined,\n\t\twindow.sheetCount ? `sheets=${window.sheetCount}` : undefined,\n\t\twindow.isOnscreen ? \"onscreen\" : undefined,\n\t\twindow.isMinimized ? \"minimized\" : undefined,\n\t\twindow.browserUseAllowed ? undefined : \"browser_use_disabled\",\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\", \");\n\tconst frame = `${Math.round(window.framePoints.x)},${Math.round(window.framePoints.y)} ${Math.round(window.framePoints.w)}x${Math.round(window.framePoints.h)}`;\n\tconst id = window.windowId\n\t\t? `windowId ${window.windowId}`\n\t\t: window.nativeWindowRef\n\t\t\t? `nativeRootRef ${window.nativeWindowRef}`\n\t\t\t: \"unstable root id\";\n\tconst pairing = window.pairing ? `, pairing ${window.pairing.confidence}/${Math.round(window.pairing.score)}` : \"\";\n\treturn `- ${window.windowRef} ${window.kind} ${window.app} pid ${window.pid} — ${window.windowTitle || \"(untitled)\"} (z ${window.zOrder}, ${id}, frame ${frame}${pairing}${flags ? `, ${flags}` : \"\"})`;\n}\n\nasync function getFrontmost(signal?: AbortSignal): Promise<FrontmostResult> {\n\treturn await currentPlatformBackend.getFrontmost(signal);\n}\n\nfunction assertBrowserUseAllowed(target: { appName: string; bundleId?: string }): void {\n\tif (!isBrowserUseEnabled() && currentPlatformBackend.isBrowserApp(target.appName, target.bundleId)) {\n\t\tthrow new Error(\n\t\t\t`Browser use is disabled by ada-computer-use config, so '${target.appName}' cannot be controlled. Enable browser_use in ~/.pi/agent/extensions/ada-computer-use.json or .pi/computer-use.json to allow browser windows.`,\n\t\t);\n\t}\n}\n\nfunction windowRecordIdentity(\n\trecord: Pick<WindowRefRecord, \"pid\" | \"windowId\" | \"nativeWindowRef\" | \"windowTitle\" | \"framePoints\">,\n): string {\n\tif (record.windowId && record.windowId > 0) {\n\t\treturn `pid:${record.pid}|id:${record.windowId}`;\n\t}\n\tif (record.nativeWindowRef) {\n\t\treturn `pid:${record.pid}|ref:${record.nativeWindowRef}`;\n\t}\n\tconst { x, y, w, h } = record.framePoints;\n\treturn `pid:${record.pid}|title:${normalizeText(record.windowTitle)}|frame:${Math.round(x)},${Math.round(y)},${Math.round(w)},${Math.round(h)}`;\n}\n\nfunction storeWindowRef(record: Omit<WindowRefRecord, \"ref\">): WindowRefRecord {\n\tconst identity = windowRecordIdentity(record);\n\tconst existingRef = runtimeState.windowRefByIdentity.get(identity);\n\tif (existingRef) {\n\t\tconst existing = runtimeState.windowRefs.get(existingRef);\n\t\tif (existing) {\n\t\t\tconst updated = { ...record, ref: existingRef };\n\t\t\truntimeState.windowRefs.set(existingRef, updated);\n\t\t\treturn updated;\n\t\t}\n\t}\n\n\tconst ref = `@r${runtimeState.nextRootRefIndex++}`;\n\tconst stored = { ...record, ref };\n\truntimeState.windowRefByIdentity.set(identity, ref);\n\truntimeState.windowRefs.set(ref, stored);\n\treturn stored;\n}\n\nfunction storeBrowserRootRef(contextId: string): string {\n\tconst existing = runtimeState.browserRootByContext.get(contextId);\n\tif (existing) return existing;\n\tconst ref = `@r${runtimeState.nextRootRefIndex++}`;\n\truntimeState.browserRootByContext.set(contextId, ref);\n\truntimeState.browserContextByRoot.set(ref, contextId);\n\treturn ref;\n}\n\nfunction storeWindowRefForTarget(target: ResolvedTarget): string {\n\treturn storeWindowRef({\n\t\tappName: target.appName,\n\t\tbundleId: target.bundleId,\n\t\tpid: target.pid,\n\t\twindowTitle: target.windowTitle,\n\t\twindowId: target.windowId > 0 ? target.windowId : undefined,\n\t\tframePoints: target.framePoints,\n\t\tscaleFactor: target.scaleFactor,\n\t\tisMinimized: target.isMinimized,\n\t\tisOnscreen: target.isOnscreen,\n\t\tisMain: target.isMain,\n\t\tisFocused: target.isFocused,\n\t}).ref;\n}\n\nfunction storeWindowRefForAppWindow(app: HelperApp, window: HelperWindow): WindowRefRecord {\n\treturn storeWindowRef({\n\t\tappName: app.appName,\n\t\tbundleId: app.bundleId,\n\t\tpid: app.pid,\n\t\twindowTitle: window.title || \"(untitled)\",\n\t\twindowId: window.windowId,\n\t\tnativeWindowRef: window.windowRef,\n\t\tframePoints: window.framePoints,\n\t\tscaleFactor: window.scaleFactor,\n\t\tisMinimized: window.isMinimized,\n\t\tisOnscreen: window.isOnscreen,\n\t\tisMain: window.isMain,\n\t\tisFocused: window.isFocused,\n\t});\n}\n\nfunction choosePreferredWindow(windows: HelperWindow[], appName: string): HelperWindow {\n\tif (!windows.length) {\n\t\tthrow new Error(`No controllable root was found in app '${appName}'.`);\n\t}\n\n\tconst scored = [...windows].sort((a, b) => scoreWindow(b) - scoreWindow(a));\n\treturn scored[0];\n}\n\nfunction summarizeWindowCandidate(window: HelperWindow): string {\n\tconst flags = [\n\t\twindow.isFocused ? \"focused\" : undefined,\n\t\twindow.isMain ? \"main\" : undefined,\n\t\twindow.isOnscreen ? \"onscreen\" : undefined,\n\t\twindow.isMinimized ? \"minimized\" : undefined,\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\",\");\n\treturn `${window.title || \"(untitled)\"} [score=${scoreWindow(window)}${flags ? `, ${flags}` : \"\"}]`;\n}\n\nfunction summarizeWindowCandidates(windows: HelperWindow[], limit = 6): string {\n\treturn [...windows]\n\t\t.sort((a, b) => scoreWindow(b) - scoreWindow(a))\n\t\t.slice(0, limit)\n\t\t.map(summarizeWindowCandidate)\n\t\t.join(\"; \");\n}\n\nfunction chooseRankedWindowOrUndefined(windows: HelperWindow[]): HelperWindow | undefined {\n\tif (windows.length === 0) return undefined;\n\tconst ranked = [...windows].sort((a, b) => scoreWindow(b) - scoreWindow(a));\n\tif (ranked.length === 1) return ranked[0];\n\tconst topScore = scoreWindow(ranked[0]);\n\tconst nextScore = scoreWindow(ranked[1]);\n\treturn topScore >= nextScore + 25 ? ranked[0] : undefined;\n}\n\nfunction toResolvedTarget(app: HelperApp, window: HelperWindow): ResolvedTarget {\n\tconst baseTarget = {\n\t\tappName: app.appName,\n\t\tbundleId: app.bundleId,\n\t\tpid: app.pid,\n\t\twindowTitle: window.title || \"(untitled)\",\n\t\twindowId: typeof window.windowId === \"number\" ? window.windowId : 0,\n\t\tnativeWindowRef: window.windowRef,\n\t\tframePoints: window.framePoints,\n\t\tscaleFactor: window.scaleFactor,\n\t\tisMinimized: window.isMinimized,\n\t\tisOnscreen: window.isOnscreen,\n\t\tisMain: window.isMain,\n\t\tisFocused: window.isFocused,\n\t};\n\treturn { ...baseTarget, windowRef: storeWindowRefForAppWindow(app, window).ref };\n}\n\nfunction nativeWindowRequest(target: Pick<CurrentTarget, \"pid\" | \"windowId\" | \"nativeWindowRef\">): {\n\tpid: number;\n\twindowId: number;\n\twindowRef?: string;\n} {\n\treturn { pid: target.pid, windowId: target.windowId, windowRef: target.nativeWindowRef };\n}\n\nfunction setCurrentTarget(target: ResolvedTarget): void {\n\tassertBrowserUseAllowed(target);\n\tconst windowRef = target.windowRef ?? storeWindowRefForTarget(target);\n\toperationState().currentTarget = {\n\t\tappName: target.appName,\n\t\tbundleId: target.bundleId,\n\t\tpid: target.pid,\n\t\twindowTitle: target.windowTitle,\n\t\twindowId: target.windowId,\n\t\twindowRef,\n\t\tnativeWindowRef: target.nativeWindowRef,\n\t};\n}\n\nfunction normalizeWindowSelector(selector: RootSelector | undefined): string | undefined {\n\tif (typeof selector === \"number\" && Number.isFinite(selector)) return String(Math.trunc(selector));\n\tif (typeof selector === \"string\") return trimOrUndefined(selector);\n\treturn undefined;\n}\n\nasync function resolveTargetByWindowSelector(selector: RootSelector, signal?: AbortSignal): Promise<ResolvedTarget> {\n\tconst normalized = normalizeWindowSelector(selector);\n\tif (!normalized) {\n\t\tthrow new Error(\"root target must be a non-empty @r ref or numeric windowId.\");\n\t}\n\n\tconst current = operationState().currentTarget;\n\tif (current?.windowRef === normalized) {\n\t\treturn await resolveCurrentTarget(signal);\n\t}\n\n\tconst fromRef = runtimeState.windowRefs.get(normalized);\n\tif (fromRef) {\n\t\tconst app: HelperApp = { appName: fromRef.appName, bundleId: fromRef.bundleId, pid: fromRef.pid };\n\t\tconst windows = await listWindows(fromRef.pid, signal);\n\t\tconst match =\n\t\t\t(fromRef.windowId ? windows.find((window) => window.windowId === fromRef.windowId) : undefined) ??\n\t\t\t(fromRef.nativeWindowRef\n\t\t\t\t? windows.find((window) => window.windowRef === fromRef.nativeWindowRef)\n\t\t\t\t: undefined) ??\n\t\t\twindows.find((window) => normalizeText(window.title || \"(untitled)\") === normalizeText(fromRef.windowTitle));\n\t\tif (!match) {\n\t\t\tthrow new Error(`Root ref '${normalized}' is stale. Call find_roots again and choose a current window.`);\n\t\t}\n\t\tconst resolved = toResolvedTarget(app, match);\n\t\tsetCurrentTarget(resolved);\n\t\treturn resolved;\n\t}\n\n\tconst numericWindowId = Number(normalized);\n\tif (Number.isInteger(numericWindowId) && numericWindowId > 0) {\n\t\tconst apps = await listApps(signal);\n\t\tfor (const app of apps) {\n\t\t\tconst windows = await listWindows(app.pid, signal);\n\t\t\tconst match = windows.find((window) => window.windowId === numericWindowId);\n\t\t\tif (match) {\n\t\t\t\tassertBrowserUseAllowed(app);\n\t\t\t\tconst resolved = toResolvedTarget(app, match);\n\t\t\t\tsetCurrentTarget(resolved);\n\t\t\t\treturn resolved;\n\t\t\t}\n\t\t}\n\t\tthrow new Error(\n\t\t\t`Window id '${numericWindowId}' was not found. Call find_roots again and choose a current window.`,\n\t\t);\n\t}\n\n\tif (normalized.startsWith(\"@r\")) {\n\t\tthrow new Error(`Root ref '${normalized}' is not available in this session. Call find_roots first.`);\n\t}\n\n\tconst config = getComputerUseConfig();\n\tconst candidates = await collectWindowDetails(await listApps(signal), config, signal);\n\tconst query = normalizeText(normalized);\n\tconst exact = candidates.filter(\n\t\t(candidate) => normalizeText(candidate.app) === query || normalizeText(candidate.windowTitle) === query,\n\t);\n\tconst fuzzy =\n\t\texact.length > 0\n\t\t\t? exact\n\t\t\t: candidates.filter((candidate) =>\n\t\t\t\t\t`${normalizeText(candidate.app)} ${normalizeText(candidate.windowTitle)}`.includes(query),\n\t\t\t\t);\n\tconst match = fuzzy.sort((a, b) => Number(b.isFocused) - Number(a.isFocused) || a.zOrder - b.zOrder)[0];\n\tif (!match)\n\t\tthrow new Error(`Root query '${normalized}' did not match any current root. Call find_roots to inspect roots.`);\n\tconst app: HelperApp = { appName: match.app, bundleId: match.bundleId, pid: match.pid };\n\tconst roots = await listWindows(match.pid, signal);\n\tconst helperRoot =\n\t\troots.find(\n\t\t\t(root) =>\n\t\t\t\troot.rootRef === match.nativeWindowRef ||\n\t\t\t\troot.windowRef === match.nativeWindowRef ||\n\t\t\t\troot.windowId === match.windowId,\n\t\t) ?? roots[0];\n\tconst resolved = toResolvedTarget(app, helperRoot);\n\tsetCurrentTarget(resolved);\n\treturn resolved;\n}\n\nasync function resolveCurrentTarget(signal?: AbortSignal): Promise<ResolvedTarget> {\n\tconst current = currentTargetOrThrow();\n\tconst windows = await listWindows(current.pid, signal);\n\tif (!windows.length) {\n\t\tthrow new Error(CURRENT_TARGET_GONE_ERROR);\n\t}\n\n\tconst hadStableWindowId = current.windowId > 0;\n\tconst titleQuery = normalizeText(current.windowTitle);\n\tlet match = current.nativeWindowRef\n\t\t? windows.find(\n\t\t\t\t(window) => window.windowRef === current.nativeWindowRef || window.rootRef === current.nativeWindowRef,\n\t\t\t)\n\t\t: undefined;\n\tmatch ??= hadStableWindowId\n\t\t? windows.find((window) => window.windowId !== undefined && window.windowId === current.windowId)\n\t\t: undefined;\n\tif (!match) {\n\t\tconst exactTitleMatches =\n\t\t\ttitleQuery && titleQuery !== \"(untitled)\"\n\t\t\t\t? windows.filter((window) => normalizeText(window.title) === titleQuery)\n\t\t\t\t: [];\n\t\tif (exactTitleMatches.length === 1) {\n\t\t\tmatch = exactTitleMatches[0];\n\t\t} else if (exactTitleMatches.length > 1) {\n\t\t\tmatch = chooseRankedWindowOrUndefined(exactTitleMatches);\n\t\t\tif (!match) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`${CURRENT_TARGET_GONE_ERROR} Multiple windows now match '${current.windowTitle}': ${summarizeWindowCandidates(exactTitleMatches)}.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!match && !hadStableWindowId) {\n\t\tmatch = chooseRankedWindowOrUndefined(windows);\n\t}\n\n\tif (!match) {\n\t\tthrow new Error(CURRENT_TARGET_GONE_ERROR);\n\t}\n\n\tconst modal = windows\n\t\t.filter((window) => shouldPreferForegroundModalWindow(match!, window))\n\t\t.sort((a, b) => scoreWindow(b) - scoreWindow(a))[0];\n\tif (modal) match = modal;\n\n\tconst app: HelperApp = {\n\t\tappName: current.appName,\n\t\tbundleId: current.bundleId,\n\t\tpid: current.pid,\n\t};\n\n\tconst resolved = toResolvedTarget(app, match);\n\tsetCurrentTarget(resolved);\n\treturn resolved;\n}\n\nasync function resolveFrontmostTarget(signal?: AbortSignal): Promise<ResolvedTarget> {\n\tconst frontmost = await getFrontmost(signal);\n\tconst apps = await listApps(signal);\n\tconst app = apps.find((candidate) => candidate.pid === frontmost.pid) ?? {\n\t\tappName: frontmost.appName,\n\t\tbundleId: frontmost.bundleId,\n\t\tpid: frontmost.pid,\n\t};\n\n\tconst windows = await listWindows(frontmost.pid, signal);\n\tif (!windows.length) {\n\t\tthrow new Error(\"No frontmost controllable root was found. Open an app window and call observe_ui again.\");\n\t}\n\n\tif (currentPlatformBackend.isBrowserApp(app.appName, app.bundleId)) {\n\t\tassertBrowserUseAllowed(app);\n\t}\n\n\tlet selected = windows.find((window) => window.windowId !== undefined && window.windowId === frontmost.windowId);\n\tif (!selected && frontmost.windowTitle) {\n\t\tselected = windows.find((window) => normalizeText(window.title) === normalizeText(frontmost.windowTitle));\n\t}\n\tselected ??= choosePreferredWindow(windows, app.appName);\n\n\tconst resolved = toResolvedTarget(app, selected);\n\tsetCurrentTarget(resolved);\n\treturn resolved;\n}\n\nfunction matchesObserveSelection(target: ResolvedTarget, selection: ObserveTargetParams): boolean {\n\tconst root = normalizeWindowSelector(selection.root);\n\treturn !root || target.windowRef === root;\n}\n\nasync function resolveTargetForObserve(signal?: AbortSignal): Promise<ResolvedTarget> {\n\treturn operationState().currentTarget ? await resolveCurrentTarget(signal) : await resolveFrontmostTarget(signal);\n}\n\nasync function ensureTargetWindowId(target: ResolvedTarget, signal?: AbortSignal): Promise<ResolvedTarget> {\n\tif (target.windowId > 0 || target.nativeWindowRef) {\n\t\treturn target;\n\t}\n\n\tconst refreshed = await resolveCurrentTarget(signal);\n\tif (refreshed.windowId <= 0 && !refreshed.nativeWindowRef) {\n\t\tthrow new Error(CURRENT_TARGET_GONE_ERROR);\n\t}\n\treturn refreshed;\n}\n\ninterface CaptureResult {\n\ttarget: ResolvedTarget;\n\tcapture: CurrentCapture;\n\tlook: LookResponse;\n\toutline: Outline;\n\tactivation: ActivationFlags;\n}\n\nfunction captureForLook(look: LookResponse): CurrentCapture {\n\treturn {\n\t\tstateId: randomUUID(),\n\t\twidth: look.image?.width ?? 0,\n\t\theight: look.image?.height ?? 0,\n\t\tscaleFactor: look.window.scaleFactor,\n\t\ttimestamp: Date.now(),\n\t};\n}\n\nasync function performLook(\n\ttarget: ResolvedTarget,\n\toptions: {\n\t\treadText: \"auto\" | \"always\" | \"never\";\n\t\tbaseLookId?: string;\n\t\tscopeRef?: string;\n\t\tmaxDimension?: number;\n\t\tincludeImage?: boolean;\n\t},\n\tsignal?: AbortSignal,\n): Promise<LookResponse> {\n\tif ((!Number.isFinite(target.windowId) || target.windowId <= 0) && !target.nativeWindowRef)\n\t\tthrow new Error(\n\t\t\t`Current platform requires a stable root id to observe '${target.windowTitle}'. Call find_roots and select a root with a stable id.`,\n\t\t);\n\treturn await currentPlatformBackend.observe(\n\t\t{\n\t\t\ttarget: nativeWindowRequest(target),\n\t\t\tbaseLookId: options.baseLookId,\n\t\t\treadText: options.readText,\n\t\t\tscopeRef: options.scopeRef,\n\t\t\tmaxDimension: options.maxDimension,\n\t\t\tincludeImage: options.includeImage,\n\t\t},\n\t\t{ signal, timeoutMs: LOOK_TIMEOUT_MS },\n\t);\n}\n\nfunction noteWindowForTarget(target: ResolvedTarget | CurrentTarget, look?: LookResponse) {\n\treturn {\n\t\twindowRef: target.windowRef,\n\t\ttitle: target.windowTitle,\n\t\tpairing:\n\t\t\tlook?.window.metadata?.pairing && typeof look.window.metadata.pairing === \"object\"\n\t\t\t\t? (look.window.metadata.pairing as { confidence?: \"exact\" | \"high\" | \"low\" }).confidence\n\t\t\t\t: undefined,\n\t\tpairingScore:\n\t\t\tlook?.window.metadata?.pairing && typeof look.window.metadata.pairing === \"object\"\n\t\t\t\t? (look.window.metadata.pairing as { score?: number }).score\n\t\t\t\t: undefined,\n\t};\n}\n\nasync function captureCurrentTarget(\n\tsignal?: AbortSignal,\n\treadText: \"auto\" | \"always\" | \"never\" = \"auto\",\n\tmaxDimension = AUTO_IMAGE_MAX_DIMENSION,\n\ttargetOverride?: ResolvedTarget,\n\tincludeImage = true,\n): Promise<CaptureResult> {\n\tconst state = operationState();\n\tconst baseOutline = state.currentOutline;\n\tconst baseTarget = state.currentTarget;\n\tlet target = targetOverride ?? (await resolveCurrentTarget(signal));\n\ttarget = await ensureTargetWindowId(target, signal);\n\tconst look = await performLook(target, { maxDimension, readText, includeImage }, signal);\n\tconst outline = stabilizeRefs(\n\t\tbaseTarget && sameRootIdentity(baseTarget, target) ? baseOutline : undefined,\n\t\tlook.parsedOutline!,\n\t);\n\tlook.parsedOutline = outline;\n\tlook.outline = outline.root;\n\tconst capture = captureForLook(look);\n\n\tsetCurrentTarget(target);\n\tstate.currentCapture = capture;\n\tstate.currentStateTarget = { pid: target.pid, windowId: target.windowId, windowRef: target.windowRef };\n\tstate.currentLook = look;\n\tstate.currentOutline = outline;\n\tstate.currentNote = noteFromLook(state.currentNote, outline, noteWindowForTarget(target, look));\n\tstate.resourceKey = desktopResourceKey(target);\n\tstate.epoch ??= resourceScheduler.epoch(state.resourceKey);\n\n\treturn {\n\t\ttarget,\n\t\tcapture,\n\t\tlook,\n\t\toutline,\n\t\tactivation: emptyActivation(),\n\t};\n}\n\nasync function buildToolResult(\n\ttool: string,\n\tsummary: string,\n\tresult: CaptureResult,\n\texecution: ExecutionTrace,\n\t_signal?: AbortSignal,\n\timageMode: ImageMode = operationState().currentImageMode ?? \"auto\",\n\tbase?: { stateId: string; outline: Outline },\n): Promise<AgentToolResult<ComputerUseDetails>> {\n\tconst state = operationState();\n\tconst fallbackReason = imageFallbackReason(tool, result, imageMode);\n\tconst transition = base ? changesBetween(base.outline, result.outline) : undefined;\n\tconst useDiff = Boolean(transition && !transition.useFullView);\n\tconst folded = foldToBudget(result.outline);\n\tconst renderedNote = renderNote(state.currentNote);\n\n\tconst details: ComputerUseDetails = {\n\t\ttool,\n\t\ttarget: {\n\t\t\tapp: result.target.appName,\n\t\t\tbundleId: result.target.bundleId,\n\t\t\tpid: result.target.pid,\n\t\t\twindowTitle: result.target.windowTitle,\n\t\t\twindowId: result.target.windowId,\n\t\t\twindowRef: result.target.windowRef ?? state.currentTarget?.windowRef,\n\t\t\tnativeWindowRef: result.target.nativeWindowRef ?? state.currentTarget?.nativeWindowRef,\n\t\t},\n\t\tcapture: {\n\t\t\tstateId: result.capture.stateId,\n\t\t\twidth: result.capture.width,\n\t\t\theight: result.capture.height,\n\t\t\tscaleFactor: result.capture.scaleFactor,\n\t\t\ttimestamp: result.capture.timestamp,\n\t\t\tcoordinateSpace: \"window-relative-screenshot-pixels\",\n\t\t},\n\t\tlookId: result.look.lookId,\n\t\tview: useDiff ? \"diff\" : \"full\",\n\t\tbaseStateId: transition ? base?.stateId : undefined,\n\t\tchanges: useDiff ? transition?.changes : undefined,\n\t\tviewReason: transition?.useFullView ? transition.reason : undefined,\n\t\trenderedOutline: folded.text,\n\t\toutline: serializeOutline(result.outline),\n\t\tnote: state.currentNote,\n\t\tactivation: result.activation,\n\t\texecution,\n\t\tstatus: \"ok\",\n\t\tconfig: getComputerUseConfig(),\n\t\thelper: runtimeState.helperDiagnostics,\n\t\timageReason: fallbackReason?.reason,\n\t};\n\n\t// Console piggyback: when a CDP connection is active for this browser\n\t// window, surface console output collected since the last tool result.\n\tlet consoleText = \"\";\n\tif (currentPlatformBackend.isChromeFamilyApp(result.target.appName, result.target.bundleId)) {\n\t\tconst tab = await cdpTabForWindow(result.target.windowTitle, result.target.framePoints);\n\t\tconst entries = tab?.drainConsole() ?? [];\n\t\tif (entries.length > 0) {\n\t\t\tdetails.console = entries;\n\t\t\tconsoleText = `\\n\\nBrowser console since the last action:\\n${entries.map((entry) => `[${entry.level}] ${entry.text}`).join(\"\\n\")}`;\n\t\t}\n\t}\n\n\tconst noteText = renderedNote ? `\\n\\n${renderedNote}` : \"\";\n\t// The model must echo capture.stateId into follow-up tools. Exposing only the\n\t// helper-internal lookId here makes a plausible but invalid stateId easy to use.\n\tconst renderedChanges = useDiff ? renderChanges(transition!.changes) : \"\";\n\tconst outlineText = useDiff\n\t\t? `\\n\\nChanges (${transition!.changedNodeCount}, ${base!.stateId} → ${result.capture.stateId}):\\n${renderedChanges || \"(no element changes)\"}\\nUse stateId ${result.capture.stateId} for subsequent actions and queries.`\n\t\t: `\\n\\nOutline (${folded.nodeCount} nodes, stateId ${result.capture.stateId}${transition?.reason ? `, full view: ${transition.reason}` : \"\"}${folded.truncated ? \", folded output truncated\" : \"\"}):\\n${folded.text}`;\n\tconst fallbackText = fallbackReason ? `\\n\\n${fallbackReason.message}` : \"\";\n\tconst deltaText = rootDeltaLines(execution).join(\"\\n\");\n\tconst content: AgentToolResult<ComputerUseDetails>[\"content\"] = [\n\t\t{\n\t\t\ttype: \"text\",\n\t\t\ttext: `${summary}${deltaText ? `\\n${deltaText}` : \"\"}${consoleText}${noteText}${outlineText}${fallbackText}`,\n\t\t},\n\t];\n\tif (fallbackReason && result.look.image?.jpegBase64) {\n\t\tcontent.push({\n\t\t\ttype: \"image\",\n\t\t\tdata: result.look.image.jpegBase64,\n\t\t\tmimeType: result.look.image.mimeType ?? \"image/jpeg\",\n\t\t});\n\t}\n\n\treturn { content, details };\n}\n\ntype NativePreparedAction = Exclude<PreparedAction, { action: \"wait\" }>;\n\nfunction currentLookOrThrow(): LookResponse {\n\tconst state = operationState();\n\tif (!state.currentLook || !state.currentCapture) {\n\t\tthrow new Error(\"No current look. Call observe_ui first, then act using refs or coordinates from that look.\");\n\t}\n\treturn state.currentLook;\n}\n\nfunction ensurePointIsInLookImage(x: number, y: number, look: LookResponse, errorPrefix = \"Coordinates\"): void {\n\tif (!look.image?.jpegBase64) {\n\t\tthrow new Error(\n\t\t\t`${errorPrefix} require an image-bearing root. This look is outline-only; use an @e ref with a semantic action or observe an image-bearing root.`,\n\t\t);\n\t}\n\tif (!Number.isFinite(x) || !Number.isFinite(y)) {\n\t\tthrow new Error(`${errorPrefix} must be finite numbers.`);\n\t}\n\tif (x < 0 || y < 0 || x >= look.image.width || y >= look.image.height) {\n\t\tthrow new Error(\n\t\t\t`${errorPrefix} (${Math.round(x)},${Math.round(y)}) are outside the latest look image bounds (${look.image.width}x${look.image.height}). Call observe_ui again and retry.`,\n\t\t);\n\t}\n}\n\nfunction modelRefForRootDelta(delta: NonNullable<HelperActResult[\"rootDelta\"]>[number]): string | undefined {\n\tif (!delta.ref) return undefined;\n\tif (delta.ref.startsWith(\"@r\")) return delta.ref;\n\tfor (const record of runtimeState.windowRefs.values()) {\n\t\tif (record.nativeWindowRef === delta.ref || record.ref === delta.ref) return record.ref;\n\t}\n\tconst ref = `@r${runtimeState.nextRootRefIndex++}`;\n\tconst current = operationState().currentTarget;\n\tconst record: WindowRefRecord = {\n\t\tref,\n\t\tappName: current?.pid === delta.pid ? current.appName : \"Unknown App\",\n\t\tbundleId: current?.pid === delta.pid ? current.bundleId : undefined,\n\t\tpid: delta.pid,\n\t\twindowTitle: delta.title ?? \"(untitled)\",\n\t\tnativeWindowRef: delta.ref,\n\t\tframePoints: { x: 0, y: 0, w: 1, h: 1 },\n\t\tscaleFactor: 1,\n\t\tisMinimized: false,\n\t\tisOnscreen: true,\n\t\tisMain: false,\n\t\tisFocused: delta.change === \"focused\",\n\t};\n\truntimeState.windowRefs.set(ref, record);\n\truntimeState.windowRefByIdentity.set(windowRecordIdentity(record), ref);\n\treturn ref;\n}\n\nfunction executionTraceFromAct(result: HelperActResult, policy = currentDeliveryPolicy()): ExecutionTrace {\n\tconst rootDelta = result.rootDelta?.map((delta) => ({ ...delta, ref: modelRefForRootDelta(delta) }));\n\treturn executionTrace(\"act\", result.performed?.delivery === \"ax\" ? \"stealth\" : \"default\", {\n\t\toutcome: result.outcome,\n\t\tperformed: result.performed,\n\t\tevidence: result.evidence,\n\t\terror: result.error,\n\t\tstoppedAt: result.stoppedAt,\n\t\trootDelta,\n\t\tdelivery: result.performed?.delivery,\n\t\tdeliveryPolicy: policy,\n\t});\n}\n\nasync function helperAct(\n\ttarget: ResolvedTarget,\n\taction: NativePreparedAction,\n\theadless: boolean,\n\tsignal?: AbortSignal,\n): Promise<ExecutionTrace> {\n\tconst checked = (candidate: HelperActResult): HelperActResult => {\n\t\tif (!candidate || ![\"worked\", \"didnt\", \"unknown\"].includes(candidate.outcome)) {\n\t\t\tthrow new Error(\"Helper act returned an invalid result without an outcome.\");\n\t\t}\n\t\treturn candidate;\n\t};\n\tconst textTimeout = \"text\" in action.params ? action.params.text.length * 25 + 4_000 : COMMAND_TIMEOUT_MS;\n\tconst timeoutMs = Math.max(COMMAND_TIMEOUT_MS, textTimeout);\n\tif ((action.usesCurrentFocus || action.needsForeground) && !headless) {\n\t\tconst foreground = checked(\n\t\t\tawait currentPlatformBackend.act(helperActRequest(target, action, \"foreground\"), { signal, timeoutMs }),\n\t\t);\n\t\tconst trace = executionTraceFromAct(foreground, \"foreground\");\n\t\ttrace.backgroundFirst = false;\n\t\treturn trace;\n\t}\n\ttry {\n\t\tconst initialPolicy = headless ? \"ax_only\" : \"background\";\n\t\tconst result = checked(\n\t\t\tawait currentPlatformBackend.act(helperActRequest(target, action, initialPolicy), { signal, timeoutMs }),\n\t\t);\n\t\tif (canRetryInForeground(action, result.outcome, headless)) {\n\t\t\tconst foreground = checked(\n\t\t\t\tawait currentPlatformBackend.act(helperActRequest(target, action, \"foreground\"), { signal, timeoutMs }),\n\t\t\t);\n\t\t\tconst trace = executionTraceFromAct(foreground, \"foreground\");\n\t\t\ttrace.backgroundFirst = true;\n\t\t\ttrace.escalatedToForeground = true;\n\t\t\ttrace.escalationReason = \"side_effect_free_didnt\";\n\t\t\ttrace.backgroundAttempt = {\n\t\t\t\toutcome: \"didnt\",\n\t\t\t\treason: \"Background input produced no observable value change; a foreground retry was safe.\",\n\t\t\t};\n\t\t\treturn trace;\n\t\t}\n\t\tconst trace = executionTraceFromAct(result, \"background\");\n\t\ttrace.backgroundFirst = true;\n\t\treturn trace;\n\t} catch (error) {\n\t\tconst code = (error as Error & { code?: string })?.code;\n\t\tif (code !== \"foreground_required\" || headless) throw error;\n\t\tconst foreground = checked(\n\t\t\tawait currentPlatformBackend.act(helperActRequest(target, action, \"foreground\"), { signal, timeoutMs }),\n\t\t);\n\t\tconst trace = executionTraceFromAct(foreground, \"foreground\");\n\t\ttrace.backgroundFirst = true;\n\t\ttrace.escalatedToForeground = true;\n\t\ttrace.escalationReason = code;\n\t\ttrace.backgroundAttempt = {\n\t\t\toutcome: \"foreground_required\",\n\t\t\treason: error instanceof Error ? error.message : String(error),\n\t\t};\n\t\treturn trace;\n\t}\n}\n\nfunction helperActRequest(\n\ttarget: ResolvedTarget,\n\taction: NativePreparedAction,\n\tpolicy = currentDeliveryPolicy(),\n): PlatformActRequest {\n\tconst look = currentLookOrThrow();\n\tconst delivery = nativeInputDelivery(policy);\n\tconst base = { lookId: look.lookId, pid: target.pid, target: action.target, policy };\n\treturn (() => {\n\t\tswitch (action.action) {\n\t\t\tcase \"press\":\n\t\t\tcase \"click\":\n\t\t\t\treturn { ...base, action: action.action, params: { ...action.params, delivery } };\n\t\t\tcase \"setText\":\n\t\t\t\treturn { ...base, action: action.action, params: { text: action.params.text, delivery } };\n\t\t\tcase \"typeText\":\n\t\t\t\treturn { ...base, action: action.action, params: { text: action.params.text, delivery } };\n\t\t\tcase \"keypress\":\n\t\t\t\treturn { ...base, action: action.action, params: { keys: action.params.keys, delivery } };\n\t\t\tcase \"scroll\":\n\t\t\t\treturn {\n\t\t\t\t\t...base,\n\t\t\t\t\taction: action.action,\n\t\t\t\t\tparams: { scrollX: action.params.scrollX, scrollY: action.params.scrollY, delivery },\n\t\t\t\t};\n\t\t\tcase \"drag\":\n\t\t\t\treturn { ...base, action: action.action, params: { path: action.params.path, delivery } };\n\t\t\tcase \"moveMouse\":\n\t\t\t\treturn { ...base, action: action.action, params: { delivery } };\n\t\t}\n\t})();\n}\n\nfunction rootDeltaLines(execution: ExecutionTrace): string[] {\n\treturn (execution.rootDelta ?? []).map((delta) => {\n\t\tconst quotedTitle = delta.title ? ` ${JSON.stringify(delta.title)}` : \"\";\n\t\tconst ref = delta.ref ? ` (${delta.ref.startsWith(\"@\") ? delta.ref : `@${delta.ref}`})` : \"\";\n\t\tconst sheetCount =\n\t\t\ttypeof delta.metadata?.sheetCount === \"number\" && Number.isFinite(delta.metadata.sheetCount)\n\t\t\t\t? Math.max(0, Math.trunc(delta.metadata.sheetCount))\n\t\t\t\t: undefined;\n\t\tconst flags = [delta.isModal ? \"modal\" : undefined, sheetCount ? `sheets=${sheetCount}` : undefined]\n\t\t\t.filter(Boolean)\n\t\t\t.join(\", \");\n\t\tconst suffix = `${quotedTitle}${flags ? ` (${flags})` : \"\"}${ref}`;\n\t\tif (delta.change === \"appeared\") return `New root: ${delta.kind}${suffix}`;\n\t\tif (delta.change === \"closed\") return `Root closed: ${delta.kind}${suffix}`;\n\t\treturn `Root focused: ${delta.kind}${suffix}`;\n\t});\n}\n\nfunction windowDetails(\n\tapp: HelperApp,\n\twindow: HelperWindow,\n\tconfig: ReturnType<typeof getComputerUseConfig>,\n): ListWindowsDetails[\"windows\"][number] {\n\tconst storedRef = storeWindowRefForAppWindow(app, window);\n\treturn {\n\t\tapp: app.appName,\n\t\tbundleId: app.bundleId,\n\t\tpid: app.pid,\n\t\tkind: window.kind,\n\t\twindowTitle: window.title || \"(untitled)\",\n\t\twindowId: window.windowId,\n\t\twindowRef: storedRef.ref,\n\t\tnativeWindowRef: window.windowRef,\n\t\tframePoints: window.framePoints,\n\t\tscaleFactor: window.scaleFactor,\n\t\tisMinimized: window.isMinimized,\n\t\tisOnscreen: window.isOnscreen,\n\t\tisMain: window.isMain,\n\t\tisFocused: window.isFocused,\n\t\tisModal: window.isModal,\n\t\tsheetCount: platformRootSheetCount(window),\n\t\trole: window.role,\n\t\tsubrole: window.subrole,\n\t\tpairing: platformRootPairing(window),\n\t\tzOrder: window.zOrder,\n\t\tbrowserUseAllowed: config.browser_use || !currentPlatformBackend.isBrowserApp(app.appName, app.bundleId),\n\t\tscore: scoreWindow(window),\n\t};\n}\n\nfunction sortWindowDetails(windows: ListWindowsDetails[\"windows\"]): ListWindowsDetails[\"windows\"] {\n\treturn windows.sort(\n\t\t(a, b) => b.score - a.score || a.app.localeCompare(b.app) || a.windowTitle.localeCompare(b.windowTitle),\n\t);\n}\n\n// Side effect: stores stable @r refs for discovered windows in runtimeState.\nasync function collectWindowDetails(\n\tapps: HelperApp[],\n\tconfig: ReturnType<typeof getComputerUseConfig>,\n\tsignal?: AbortSignal,\n): Promise<ListWindowsDetails[\"windows\"]> {\n\tconst perApp = await Promise.all(apps.map(async (app) => ({ app, windows: await listWindows(app.pid, signal) })));\n\treturn sortWindowDetails(\n\t\tperApp.flatMap(({ app, windows }) => windows.map((window) => windowDetails(app, window, config))),\n\t);\n}\n\nfunction collectBroadWindowDetails(\n\troots: HelperWindow[],\n\tconfig: ReturnType<typeof getComputerUseConfig>,\n): ListWindowsDetails[\"windows\"] {\n\tconst windows: ListWindowsDetails[\"windows\"] = [];\n\tfor (const window of roots) {\n\t\tif (!window.pid) continue;\n\t\twindows.push(\n\t\t\twindowDetails(\n\t\t\t\t{ appName: window.appName ?? \"Unknown App\", bundleId: window.bundleId, pid: window.pid },\n\t\t\t\twindow,\n\t\t\t\tconfig,\n\t\t\t),\n\t\t);\n\t}\n\treturn sortWindowDetails(windows);\n}\n\nasync function windowDetailsForFind(\n\tquery: FindParams,\n\tconfig: ReturnType<typeof getComputerUseConfig>,\n\tsignal?: AbortSignal,\n): Promise<ListWindowsDetails[\"windows\"]> {\n\tif (!query.app && !query.bundleId && !Number.isFinite(query.pid)) {\n\t\treturn collectBroadWindowDetails(await currentPlatformBackend.listRoots({}, signal), config);\n\t}\n\tconst apps = (await listApps(signal)).filter((app) => appMatchesWindowQuery(app, query));\n\treturn await collectWindowDetails(apps, config, signal);\n}\n\nasync function performListWindows(\n\tparams: FindParams,\n\tsignal?: AbortSignal,\n): Promise<AgentToolResult<ListWindowsDetails>> {\n\tconst rawParams = params ?? {};\n\tconst query: FindParams = {\n\t\ttext: trimOrUndefined(rawParams.text),\n\t\tapp: trimOrUndefined(rawParams.app),\n\t\tbundleId: trimOrUndefined(rawParams.bundleId),\n\t\tpid: Number.isFinite(rawParams.pid) ? Math.trunc(rawParams.pid!) : undefined,\n\t\tkind: rawParams.kind,\n\t};\n\tconst config = getComputerUseConfig();\n\tconst desktopForest = await windowDetailsForFind(query, config, signal);\n\tconst includeBrowserPages =\n\t\t!query.pid && !query.bundleId && (!query.app || normalizeText(query.app) === \"browser\") && config.browser_use;\n\tconst browserForest: ListWindowsDetails[\"windows\"] = !includeBrowserPages\n\t\t? []\n\t\t: (await listCdpPageContexts().catch(() => [])).map((page) => ({\n\t\t\t\tapp: \"Browser\",\n\t\t\t\tpid: 0,\n\t\t\t\tkind: \"browser_page\",\n\t\t\t\twindowTitle: page.title || page.url,\n\t\t\t\twindowRef: storeBrowserRootRef(page.contextId),\n\t\t\t\tframePoints: { x: 0, y: 0, w: 1, h: 1 },\n\t\t\t\tscaleFactor: 1,\n\t\t\t\tisMinimized: false,\n\t\t\t\tisOnscreen: true,\n\t\t\t\tisMain: false,\n\t\t\t\tisFocused: false,\n\t\t\t\tisModal: false,\n\t\t\t\tzOrder: Number.MAX_SAFE_INTEGER,\n\t\t\t\tbrowserUseAllowed: true,\n\t\t\t\tscore: 0,\n\t\t\t\turl: page.url,\n\t\t\t}));\n\tconst allRoots = [...desktopForest, ...browserForest];\n\tconst forest = allRoots.filter((root) => !query.kind || root.kind === query.kind);\n\tconst ranked = forest\n\t\t.map((root, order) => ({\n\t\t\troot,\n\t\t\torder,\n\t\t\tmatch: query.text\n\t\t\t\t? rankedTextMatch([root.app, root.windowTitle], query.text)\n\t\t\t\t: { reason: \"filter\" as const, score: 1 },\n\t\t}))\n\t\t.filter((entry) => entry.match)\n\t\t.sort(\n\t\t\t(a, b) =>\n\t\t\t\tb.match!.score - a.match!.score ||\n\t\t\t\tNumber(b.root.isFocused) - Number(a.root.isFocused) ||\n\t\t\t\ta.root.zOrder - b.root.zOrder ||\n\t\t\t\ta.order - b.order,\n\t\t);\n\tconst totalMatches = ranked.length;\n\tconst windows = ranked.slice(0, 12).map((entry) => entry.root);\n\tconst details: ListWindowsDetails = {\n\t\ttool: \"find_roots\",\n\t\tquery,\n\t\twindows,\n\t\ttotalMatches,\n\t\treturned: windows.length,\n\t\thasMore: totalMatches > windows.length,\n\t\tconfig,\n\t};\n\tconst lines = windows.map(formatWindowLine);\n\tconst text = lines.length\n\t\t? `Found ${totalMatches} matching root${totalMatches === 1 ? \"\" : \"s\"}; returned ${windows.length}${totalMatches > windows.length ? \". Refine the filters for additional roots\" : \"\"}. Use @r refs with observe_ui({ root: \"@rN\" }).\\n${lines.join(\"\\n\")}`\n\t\t: query.text || query.app || query.bundleId || query.pid || query.kind\n\t\t\t? \"No roots matched the supplied filters.\"\n\t\t\t: \"No roots are currently visible to ada-computer-use.\";\n\treturn { content: [{ type: \"text\", text }], details };\n}\n\nfunction normalizeImageMode(value: unknown): ImageMode {\n\treturn value === \"always\" || value === \"never\" ? value : \"auto\";\n}\n\nfunction isBrowserContextId(contextId: string | undefined): contextId is string {\n\treturn Boolean(contextId?.startsWith(BROWSER_CONTEXT_PREFIX));\n}\n\nfunction browserSnapshotTarget(\n\tsnapshotId: string | undefined,\n\tref: string | undefined,\n): { contextId: string; backendNodeId?: number } | undefined {\n\tif (!snapshotId || !ref) return undefined;\n\tconst record = savedStates.get(snapshotId);\n\tconst snapshot = record?.value.kind === \"browser\" ? record.value.snapshot : undefined;\n\tconst target = snapshot?.targets.find((candidate) => candidate.ref === ref);\n\tif (!snapshot || !target) return undefined;\n\treturn { contextId: snapshot.contextId, backendNodeId: target.backendNodeId };\n}\n\nfunction browserContextForOperation(): string | undefined {\n\tconst contextId = operationState().contextId;\n\treturn isBrowserContextId(contextId) ? contextId : undefined;\n}\n\nasync function withBrowserWrite<T>(contextId: string, work: () => Promise<T>): Promise<T> {\n\tconst state = operationState();\n\tconst targetId = contextId.slice(BROWSER_CONTEXT_PREFIX.length);\n\tconst resourceKey = `cdp:${targetId}`;\n\tconst baseEpoch = state.epoch ?? resourceScheduler.epoch(resourceKey);\n\tconst result = await resourceScheduler.write(resourceKey, baseEpoch, async (nextEpoch) => {\n\t\tstate.resourceKey = resourceKey;\n\t\tstate.epoch = nextEpoch;\n\t\treturn await work();\n\t});\n\treturn result.value;\n}\n\nfunction browserObservationResult(\n\tbrowser: CdpPageSnapshot,\n\tresourceKey: string,\n\tepoch: number,\n\ttool: string,\n\tbase?: { stateId: string; outline: SerializedOutline },\n): AgentToolResult<BrowserObservationDetails> {\n\tsavedStates.set({\n\t\tstateId: browser.snapshotId,\n\t\tresourceKey,\n\t\tepoch,\n\t\tvalue: { kind: \"browser\", snapshot: browser, outline: browser.outline },\n\t});\n\tconst currentOutline = restoreOutline(browser.outline);\n\tconst transition = base ? changesBetween(restoreOutline(base.outline), currentOutline) : undefined;\n\tconst useDiff = Boolean(transition && !transition.useFullView);\n\tconst folded = foldToBudget(currentOutline);\n\tconst root = {\n\t\tref: storeBrowserRootRef(browser.contextId),\n\t\tkind: \"browser_page\" as const,\n\t\ttitle: browser.title,\n\t\turl: browser.url,\n\t};\n\tconst details: BrowserObservationDetails = {\n\t\ttool,\n\t\tkind: \"browser_page\",\n\t\tstateId: browser.snapshotId,\n\t\tbaseStateId: base?.stateId,\n\t\tview: useDiff ? \"diff\" : \"full\",\n\t\tchanges: useDiff ? transition?.changes : undefined,\n\t\troot,\n\t\toutline: browser.outline,\n\t\trenderedOutline: folded.text,\n\t};\n\tconst viewText = useDiff\n\t\t? `Changes (${transition!.changedNodeCount}, ${base!.stateId} → ${browser.snapshotId}):\\n${renderChanges(transition!.changes) || \"(no element changes)\"}\\nUse stateId ${browser.snapshotId} for subsequent actions and queries.`\n\t\t: folded.text;\n\treturn {\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: `${tool} completed for ${root.ref} ${JSON.stringify(browser.title)}. State ${browser.snapshotId}.\\n${viewText}`,\n\t\t\t},\n\t\t],\n\t\tdetails,\n\t};\n}\n\nasync function refreshBrowserSnapshot(\n\tcontextId: string,\n\ttool: string,\n\tbase?: { stateId: string; outline: SerializedOutline },\n): Promise<AgentToolResult<BrowserObservationDetails>> {\n\tconst browser = await cdpSnapshotForContext(contextId);\n\tif (!browser)\n\t\tthrow new Error(`Browser root '${contextId}' is no longer available. Call find_roots and observe_ui again.`);\n\tconst state = operationState();\n\tconst resourceKey = state.resourceKey ?? `cdp:${browser.targetId}`;\n\treturn browserObservationResult(\n\t\tbrowser,\n\t\tresourceKey,\n\t\tstate.epoch ?? resourceScheduler.epoch(resourceKey),\n\t\ttool,\n\t\tbase,\n\t);\n}\n\nfunction sliceText(\n\tvalue: string,\n\toffsetValue: unknown,\n\t_limitValue?: unknown,\n): Pick<ReadTextDetails, \"offset\" | \"limit\" | \"totalChars\" | \"hasMore\" | \"text\"> {\n\tconst offset = Math.max(0, Math.trunc(toFiniteNumber(offsetValue, 0)));\n\tconst limit = UI_TEXT_PAGE_CHARS;\n\tconst characters = Array.from(value);\n\tconst end = Math.min(characters.length, offset + limit);\n\treturn {\n\t\toffset,\n\t\tlimit,\n\t\ttotalChars: characters.length,\n\t\thasMore: end < characters.length,\n\t\ttext: offset >= characters.length ? \"\" : characters.slice(offset, end).join(\"\"),\n\t};\n}\n\nasync function performReadText(\n\tparams: ReadTextParams,\n\tsignal?: AbortSignal,\n): Promise<AgentToolResult<ReadTextDetails>> {\n\tconst ref = trimOrUndefined(params.ref);\n\tif (ref?.startsWith(\"@o\")) {\n\t\tconst page = readStoredOutput(ref, params.offset);\n\t\tif (!page) throw new Error(`Output ref '${ref}' is unavailable or was evicted. Rerun the focused query.`);\n\t\tconst details: ReadTextDetails = { tool: \"read_text\", ref, ...page };\n\t\tconst suffix = page.hasMore\n\t\t\t? `\\n\\ncontinue: read_text({ ref: \"${ref}\", offset: ${page.offset + page.limit} })`\n\t\t\t: page.complete\n\t\t\t\t? \"\"\n\t\t\t\t: \"\\n\\ncontinuation storage limit reached; rerun a more focused query for the remainder\";\n\t\treturn { content: [{ type: \"text\", text: `${page.text || \"(empty output page)\"}${suffix}` }], details };\n\t}\n\tconst contextId = operationState().contextId;\n\tif (isBrowserContextId(contextId)) {\n\t\tconst snapshot = operationState().browserSnapshot;\n\t\tif (!snapshot || snapshot.contextId !== contextId)\n\t\t\tthrow new Error(`Browser state '${params.stateId}' is unavailable. Observe the browser root again.`);\n\t\tif (!ref)\n\t\t\tthrow new Error(\n\t\t\t\t\"read_text requires an @e ref for browser contexts; use the outline root ref for whole-page text.\",\n\t\t\t);\n\t\tconst outline = restoreOutline(snapshot.outline);\n\t\tconst node = nodeByRef(outline, ref);\n\t\tif (!node) throw new Error(`Browser text ref '${ref}' is unavailable in this state.`);\n\t\tconst collect = (current: OutlineNode): string[] =>\n\t\t\t[\n\t\t\t\toutlineNodeLabel(current),\n\t\t\t\t...current.text.map((item) => item.string),\n\t\t\t\t...current.children.flatMap(collect),\n\t\t\t].filter(Boolean);\n\t\tconst value = node === outline.root ? snapshot.text : [...new Set(collect(node))].join(\"\\n\");\n\t\tconst sliced = sliceText(value, params.offset);\n\t\tconst details: ReadTextDetails = { tool: \"read_text\", ref, ...sliced };\n\t\treturn { content: [{ type: \"text\", text: sliced.text || \"(empty text slice)\" }], details };\n\t}\n\n\tvalidateStateId(params.stateId);\n\tif (!ref)\n\t\tthrow new Error(\n\t\t\t\"read_text requires ref for desktop contexts. Call observe_ui/inspect_ui and use a text-bearing outline ref.\",\n\t\t);\n\tconst node = outlineNodeByRef(ref);\n\tconst state = operationState();\n\tif (!state.resourceKey || state.epoch === undefined)\n\t\tthrow new Error(\"The observation has no live resource identity. Observe again.\");\n\tconst raw = (\n\t\tawait resourceScheduler.readAt(\n\t\t\tstate.resourceKey,\n\t\t\tstate.epoch,\n\t\t\tasync () =>\n\t\t\t\tawait currentPlatformBackend.readText(\n\t\t\t\t\t{\n\t\t\t\t\t\tlookId: state.currentOutline!.lookId,\n\t\t\t\t\t\telementRef: wireRefForNode(node),\n\t\t\t\t\t\toffset: Math.max(0, Math.trunc(toFiniteNumber(params.offset, 0))),\n\t\t\t\t\t\tlimit: UI_TEXT_PAGE_CHARS,\n\t\t\t\t\t},\n\t\t\t\t\t{ signal, timeoutMs: COMMAND_TIMEOUT_MS },\n\t\t\t\t),\n\t\t)\n\t).value;\n\tconst text = raw.text;\n\tconst details: ReadTextDetails = {\n\t\ttool: \"read_text\",\n\t\tref,\n\t\toffset: raw.offset,\n\t\tlimit: raw.limit,\n\t\ttotalChars: raw.totalChars,\n\t\thasMore: raw.hasMore,\n\t\ttext,\n\t};\n\treturn { content: [{ type: \"text\", text: text || \"(empty text slice)\" }], details };\n}\n\nfunction normalizeWaitTimeoutMs(value: unknown): number {\n\treturn Math.max(100, Math.min(60_000, Math.trunc(toFiniteNumber(value, 10_000))));\n}\n\nfunction conditionScopeRef(params: WaitForParams | NonNullable<ActParams[\"expect\"]>): string | undefined {\n\tconst ref = trimOrUndefined(params.ref);\n\tconst scopeRef = trimOrUndefined(params.scopeRef);\n\tif (ref && scopeRef) throw new Error(\"A UI condition accepts ref or scopeRef, not both.\");\n\treturn ref ?? scopeRef;\n}\n\nfunction validateCondition(params: WaitForParams | NonNullable<ActParams[\"expect\"]>): {\n\ttext?: string;\n\trole?: string;\n\tvalue?: string;\n\tscopeRef?: string;\n\tscopeExact: boolean;\n\tgone: boolean;\n\ttimeoutMs: number;\n} {\n\tconst text = trimOrUndefined(params.text);\n\tconst role = trimOrUndefined(params.role);\n\tconst value = trimOrUndefined(params.value);\n\tconst scopeRef = conditionScopeRef(params);\n\tif (!text && !role && !value) throw new Error(\"A UI condition requires text, role, or value.\");\n\tif (role && !text && !value && !scopeRef) throw new Error(\"A role-only UI condition requires ref or scopeRef.\");\n\tif (value && !params.ref) throw new Error(\"A value UI condition requires an exact ref.\");\n\treturn {\n\t\ttext,\n\t\trole,\n\t\tvalue,\n\t\tscopeRef,\n\t\tscopeExact: Boolean(params.ref),\n\t\tgone: params.until === \"absent\",\n\t\ttimeoutMs: normalizeWaitTimeoutMs(params.timeoutMs),\n\t};\n}\n\nfunction nodeWithinScope(node: OutlineNode, scopeRef: string | undefined, scopeExact: boolean): boolean {\n\tif (!scopeRef) return true;\n\tif (scopeExact) return node.ref === scopeRef;\n\tlet current: OutlineNode | undefined = node;\n\twhile (current) {\n\t\tif (current.ref === scopeRef) return true;\n\t\tcurrent = current.parent;\n\t}\n\treturn false;\n}\n\nfunction normalizedRole(value: string): string {\n\treturn value\n\t\t.toLowerCase()\n\t\t.replace(/^ax/, \"\")\n\t\t.replace(/[ _-]+/g, \"\");\n}\n\nfunction platformRole(outline: Outline, role: string | undefined): string | undefined {\n\tif (!role) return undefined;\n\treturn outline.nodes.find((node) => normalizedRole(node.role) === normalizedRole(role))?.role ?? role;\n}\n\nfunction outlineConditionPresent(outline: Outline, condition: ReturnType<typeof validateCondition>): boolean {\n\treturn searchOutline(outline, condition.text, undefined, undefined, outline.nodes.length).some(\n\t\t(match) =>\n\t\t\t(!condition.role || normalizedRole(match.node.role) === normalizedRole(condition.role)) &&\n\t\t\tnodeWithinScope(match.node, condition.scopeRef, condition.scopeExact) &&\n\t\t\t(!condition.value || normalizeText(match.node.value) === normalizeText(condition.value)),\n\t);\n}\n\nfunction conditionScopeNode(\n\toutline: Outline,\n\tcondition: ReturnType<typeof validateCondition>,\n): OutlineNode | undefined {\n\tconst scopeNode = condition.scopeRef ? nodeByRef(outline, condition.scopeRef) : undefined;\n\tif (condition.scopeRef && !scopeNode)\n\t\tthrow new Error(`Condition scope ref '${condition.scopeRef}' is unavailable in this state.`);\n\treturn scopeNode;\n}\n\nasync function performWaitFor(params: WaitForParams, signal?: AbortSignal): Promise<AgentToolResult<WaitForDetails>> {\n\tconst contextId = operationState().contextId;\n\tconst condition = validateCondition(params);\n\tconst { text, role, value, scopeRef, scopeExact, gone, timeoutMs } = condition;\n\n\tif (isBrowserContextId(contextId)) {\n\t\tconst state = operationState();\n\t\tif (!state.resourceKey) throw new Error(\"The browser observation has no live resource identity. Observe again.\");\n\t\tconst baseSnapshot = state.browserSnapshot;\n\t\tif (!baseSnapshot) throw new Error(\"Browser wait requires a complete base observation.\");\n\t\tconditionScopeNode(restoreOutline(baseSnapshot.outline), condition);\n\t\tconst deadline = Date.now() + timeoutMs;\n\t\tlet lastSnapshot: CdpPageSnapshot | undefined;\n\t\tlet lastEpoch = state.epoch ?? resourceScheduler.epoch(state.resourceKey);\n\t\tconst finish = (found: boolean, timedOut?: boolean): AgentToolResult<WaitForDetails> => {\n\t\t\tif (!lastSnapshot) throw new Error(\"Browser wait completed without an observation.\");\n\t\t\tsavedStates.set({\n\t\t\t\tstateId: lastSnapshot.snapshotId,\n\t\t\t\tresourceKey: state.resourceKey!,\n\t\t\t\tepoch: lastEpoch,\n\t\t\t\tvalue: { kind: \"browser\", snapshot: lastSnapshot, outline: lastSnapshot.outline },\n\t\t\t});\n\t\t\tconst successorOutline = restoreOutline(lastSnapshot.outline);\n\t\t\tconst transition = changesBetween(restoreOutline(baseSnapshot.outline), successorOutline);\n\t\t\tconst useDiff = !transition.useFullView;\n\t\t\tconst renderedOutline = foldToBudget(successorOutline).text;\n\t\t\tconst details: WaitForDetails = {\n\t\t\t\ttool: \"wait_for\",\n\t\t\t\tstateId: lastSnapshot.snapshotId,\n\t\t\t\tbaseStateId: baseSnapshot.snapshotId,\n\t\t\t\tview: useDiff ? \"diff\" : \"full\",\n\t\t\t\tchanges: useDiff ? transition.changes : undefined,\n\t\t\t\tfound,\n\t\t\t\tgone: (found && gone) || undefined,\n\t\t\t\ttimedOut,\n\t\t\t\tnodeCount: lastSnapshot.targets.length,\n\t\t\t\ttext,\n\t\t\t\trole,\n\t\t\t\tvalue,\n\t\t\t\tscopeRef,\n\t\t\t\toutline: lastSnapshot.outline,\n\t\t\t\trenderedOutline,\n\t\t\t};\n\t\t\tconst message = found\n\t\t\t\t? gone\n\t\t\t\t\t? \"Condition disappeared.\"\n\t\t\t\t\t: \"Condition appeared.\"\n\t\t\t\t: `Timed out after ${timeoutMs}ms waiting for condition.`;\n\t\t\tconst viewText = useDiff\n\t\t\t\t? `${renderChanges(transition.changes) || \"(no element changes)\"}\\nUse stateId ${lastSnapshot.snapshotId} for subsequent actions and queries.`\n\t\t\t\t: renderedOutline;\n\t\t\treturn { content: [{ type: \"text\", text: `${message}\\n${viewText}` }], details };\n\t\t};\n\t\tdo {\n\t\t\tconst scheduled = await resourceScheduler.read(\n\t\t\t\tstate.resourceKey,\n\t\t\t\tasync () => await cdpSnapshotForContext(contextId),\n\t\t\t);\n\t\t\tlastSnapshot = scheduled.value;\n\t\t\tlastEpoch = scheduled.epoch;\n\t\t\tif (!lastSnapshot)\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Browser root '${contextId}' is no longer available. Call find_roots and observe_ui again.`,\n\t\t\t\t);\n\t\t\tconst present = outlineConditionPresent(restoreOutline(lastSnapshot.outline), condition);\n\t\t\tif (present !== gone) return finish(true);\n\t\t\tawait sleep(200, signal);\n\t\t} while (Date.now() < deadline);\n\t\treturn finish(false, true);\n\t}\n\n\tconst state = operationState();\n\tconst baseView = { stateId: state.currentCapture!.stateId, outline: state.currentOutline! };\n\tlet target = await resolveCurrentTarget(signal);\n\ttarget = await ensureTargetWindowId(target, signal);\n\tconst scopeNode = conditionScopeNode(state.currentOutline!, condition);\n\tconst raw = await currentPlatformBackend.waitFor(\n\t\t{\n\t\t\t...nativeWindowRequest(target),\n\t\t\tlookId: state.currentOutline!.lookId,\n\t\t\ttext,\n\t\t\trole: platformRole(state.currentOutline!, role),\n\t\t\tvalue,\n\t\t\tscopeRef: scopeNode ? wireRefForNode(scopeNode) : undefined,\n\t\t\tscopeExact,\n\t\t\tgone,\n\t\t\ttimeoutMs,\n\t\t},\n\t\t{ signal, timeoutMs: timeoutMs + 2_000 },\n\t);\n\tif (!state.resourceKey || state.epoch === undefined)\n\t\tthrow new Error(\"The observation has no live resource identity. Observe again.\");\n\tconst refreshed = (\n\t\tawait resourceScheduler.readAt(\n\t\t\tstate.resourceKey,\n\t\t\tstate.epoch,\n\t\t\tasync () => await captureCurrentTarget(signal, \"auto\"),\n\t\t)\n\t).value;\n\tconst transition = changesBetween(baseView.outline, refreshed.outline);\n\tconst useDiff = !transition.useFullView;\n\tconst matches = searchOutline(refreshed.outline, text, role, undefined, 1);\n\tconst foundTarget = matches[0];\n\tconst details: WaitForDetails = {\n\t\ttool: \"wait_for\",\n\t\tstateId: refreshed.capture.stateId,\n\t\tbaseStateId: baseView.stateId,\n\t\tview: useDiff ? \"diff\" : \"full\",\n\t\tchanges: useDiff ? transition.changes : undefined,\n\t\tfound: raw.found,\n\t\tgone: raw.gone || undefined,\n\t\ttimedOut: raw.timedOut || undefined,\n\t\ttarget: foundTarget ? serializeOutlineSearchMatch(foundTarget) : undefined,\n\t\tnodeCount: Number.isFinite(raw.nodeCount) ? Number(raw.nodeCount) : refreshed.outline.nodes.length,\n\t\ttext,\n\t\trole,\n\t\tvalue,\n\t\tscopeRef,\n\t\toutline: serializeOutline(refreshed.outline),\n\t\trenderedOutline: foldToBudget(refreshed.outline).text,\n\t};\n\tconst message = details.found\n\t\t? details.gone\n\t\t\t? \"Condition disappeared.\"\n\t\t\t: \"Condition appeared.\"\n\t\t: `Timed out after ${timeoutMs}ms waiting for condition.`;\n\tconst viewText = useDiff\n\t\t? `${renderChanges(transition.changes) || \"(no element changes)\"}\\nUse stateId ${refreshed.capture.stateId} for subsequent actions and queries.`\n\t\t: details.renderedOutline;\n\treturn { content: [{ type: \"text\", text: `${message}\\n${viewText}` }], details };\n}\n\nfunction sameRootIdentity(a: CurrentTarget, b: CurrentTarget): boolean {\n\tif (a.pid !== b.pid) return false;\n\tif (a.windowId > 0 && b.windowId > 0) return a.windowId === b.windowId;\n\tif (a.nativeWindowRef && b.nativeWindowRef) return a.nativeWindowRef === b.nativeWindowRef;\n\treturn normalizeText(a.windowTitle) === normalizeText(b.windowTitle);\n}\n\n/** Side effects: captures/updates current target, capture state, look, and parsed outline. */\nasync function performObserve(\n\tparams: ObserveParams,\n\tsignal?: AbortSignal,\n): Promise<AgentToolResult<ComputerUseDetails | BrowserObservationDetails>> {\n\tconst requestedRoot = typeof params.root === \"string\" ? params.root : undefined;\n\tif (requestedRoot && !/^@r\\d+$/.test(requestedRoot))\n\t\tthrow new Error(\"observe_ui.root must be an exact @r ref issued by find_roots.\");\n\tconst browserContextId = requestedRoot ? runtimeState.browserContextByRoot.get(requestedRoot) : undefined;\n\tif (isBrowserContextId(browserContextId)) {\n\t\tconst targetId = browserContextId.slice(BROWSER_CONTEXT_PREFIX.length);\n\t\tconst resourceKey = `cdp:${targetId}`;\n\t\tconst scheduled = await resourceScheduler.read(\n\t\t\tresourceKey,\n\t\t\tasync () => await cdpSnapshotForContext(browserContextId),\n\t\t);\n\t\tconst browser = scheduled.value;\n\t\tif (!browser)\n\t\t\tthrow new Error(`Browser context '${browserContextId}' is no longer available. Call find_roots again.`);\n\t\treturn browserObservationResult(browser, resourceKey, scheduled.epoch, \"observe_ui\");\n\t}\n\tconst state = operationState();\n\tconst mode = params.mode ?? \"fused\";\n\tconst image = mode === \"semantic\" ? \"never\" : mode === \"visual\" ? \"always\" : \"auto\";\n\tconst defaultReadText = mode === \"semantic\" ? \"never\" : mode === \"visual\" ? \"always\" : \"auto\";\n\tconst readText = params.readText ?? defaultReadText;\n\tstate.currentImageMode = normalizeImageMode(image);\n\tconst selection: ObserveTargetParams = { root: normalizeWindowSelector(params.root) };\n\tconst requestedTarget = selection.root\n\t\t? await resolveTargetByWindowSelector(params.root!, signal)\n\t\t: await resolveTargetForObserve(signal);\n\tconst imageMode = normalizeImageMode(image);\n\tconst resourceKey = desktopResourceKey(requestedTarget);\n\tconst scheduled = await resourceScheduler.read(resourceKey, async (epoch) => {\n\t\tstate.resourceKey = resourceKey;\n\t\tstate.epoch = epoch;\n\t\treturn await captureCurrentTarget(\n\t\t\tsignal,\n\t\t\treadText,\n\t\t\timageMode === \"always\" ? EXPLICIT_IMAGE_MAX_DIMENSION : AUTO_IMAGE_MAX_DIMENSION,\n\t\t\trequestedTarget,\n\t\t\timageMode !== \"never\",\n\t\t);\n\t});\n\tconst captureResult = scheduled.value;\n\t// Model @r refs are re-minted on re-resolution, so ref string equality\n\t// alone false-positives as drift for the same root; compare stable\n\t// identity against the resolved request too.\n\tif (\n\t\t!matchesObserveSelection(captureResult.target, selection) &&\n\t\t!sameRootIdentity(captureResult.target, requestedTarget)\n\t) {\n\t\tthrow new Error(\n\t\t\t`Observation target drifted from the requested selection. Requested ${requestedTarget.appName} — ${requestedTarget.windowTitle}, captured ${captureResult.target.appName} — ${captureResult.target.windowTitle}. Call observe_ui again or specify a more exact window title.`,\n\t\t);\n\t}\n\tconst summary = `Observed ${mode} ${captureResult.target.windowRef ? `${captureResult.target.windowRef} ` : \"\"}${captureResult.target.appName} — ${captureResult.target.windowTitle}. Returned the latest outline state.`;\n\treturn await buildToolResult(\n\t\t\"observe_ui\",\n\t\tsummary,\n\t\tcaptureResult,\n\t\texecutionTrace(\"look\", \"stealth\"),\n\t\tsignal,\n\t\timageMode,\n\t);\n}\n\nfunction currentOutlineOrThrow(stateId?: string): Outline {\n\tvalidateStateId(stateId);\n\tconst outline = operationState().currentOutline;\n\tif (!outline) throw new Error(\"No observation outline is available. Call observe_ui first.\");\n\treturn outline;\n}\n\nfunction matchIsNonActionableStatic(match: OutlineSearchMatch): boolean {\n\tconst node = match.node;\n\treturn !node.canPress && !node.canFocus && !node.canSetValue && node.actions.length === 0 && !node.pictureOnly;\n}\n\nfunction shouldEscalateSearchOCR(matches: OutlineSearchMatch[], _text?: string): boolean {\n\treturn matches.length === 0 || matches.every(matchIsNonActionableStatic);\n}\n\n/** Pure outline query unless a window selector is supplied, in which case current target selection may change. */\nasync function performSearchUi(\n\tparams: SearchUiParams,\n\tsignal?: AbortSignal,\n): Promise<AgentToolResult<OutlineToolDetails>> {\n\tconst state = operationState();\n\tlet outline = currentOutlineOrThrow(params.stateId);\n\tconst text = trimOrUndefined(params.text);\n\tconst role = trimOrUndefined(params.role);\n\tconst capability = trimOrUndefined(params.capability);\n\tif (!text && !role && !capability)\n\t\tthrow new Error(\"search_ui requires text, role, or capability. Use observe_ui for a bounded overview.\");\n\tconst limit = 12;\n\tlet ranked = searchOutlineRanked(outline, text, role, capability, limit);\n\tlet matches = ranked.matches;\n\tlet escalatedOCR = false;\n\tconst look = state.currentLook;\n\tif (\n\t\tshouldEscalateSearchOCR(matches, text) &&\n\t\tlook &&\n\t\tlook.readText?.requested !== \"never\" &&\n\t\t!look.readText?.executed &&\n\t\tstate.lastSearchOcrEscalatedLookId !== look.lookId\n\t) {\n\t\tstate.lastSearchOcrEscalatedLookId = look.lookId;\n\t\tconst currentTarget = await ensureTargetWindowId(await resolveCurrentTarget(signal), signal);\n\t\t// captureCurrentTarget adopts the new look/outline/capture into\n\t\t// runtimeState, so refs in these matches stay actable. Keep the image\n\t\t// payload: OCR-only matches are clicked by coordinate, and coordinate\n\t\t// acts require the current look to be image-bearing.\n\t\tif (!state.resourceKey || state.epoch === undefined)\n\t\t\tthrow new Error(\"The observation has no live resource identity. Observe again.\");\n\t\tconst captureResult = (\n\t\t\tawait resourceScheduler.readAt(\n\t\t\t\tstate.resourceKey,\n\t\t\t\tstate.epoch,\n\t\t\t\tasync () => await captureCurrentTarget(signal, \"always\", AUTO_IMAGE_MAX_DIMENSION, currentTarget),\n\t\t\t)\n\t\t).value;\n\t\toutline = captureResult.outline;\n\t\tranked = searchOutlineRanked(outline, text, role, capability, limit);\n\t\tmatches = ranked.matches;\n\t\tescalatedOCR = true;\n\t}\n\tconst detailMatches = matches.map(serializeOutlineSearchMatch);\n\tconst details: OutlineToolDetails = {\n\t\ttool: \"search_ui\",\n\t\tstateId: state.currentCapture?.stateId,\n\t\tlookId: outline.lookId,\n\t\tmatches: detailMatches,\n\t\ttotalMatches: ranked.totalMatches,\n\t\treturned: matches.length,\n\t\thasMore: ranked.totalMatches > matches.length,\n\t\tnote: state.currentNote,\n\t};\n\tconst lines = matches.map(\n\t\t(match) =>\n\t\t\t`${match.ref} ${match.role || \"Unknown\"} ${JSON.stringify(match.label || \"(unlabeled)\")} [${match.matchReason}${match.matchReason === \"fuzzy\" ? ` ${match.score?.toFixed(2)}` : \"\"}]\\n path: ${match.path}`,\n\t);\n\tconst noteHeader = renderNote(state.currentNote);\n\tconst noteText = noteHeader ? `${noteHeader}\\n\\n` : \"\";\n\tconst escalationText = escalatedOCR\n\t\t? \" OCR text was escalated for this search after the cached outline had no matches.\"\n\t\t: \"\";\n\tconst moreText =\n\t\tranked.totalMatches > matches.length\n\t\t\t? ` Refine the query to inspect ${ranked.totalMatches - matches.length} additional matches.`\n\t\t\t: \"\";\n\treturn {\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: `${noteText}Found ${ranked.totalMatches} outline match${ranked.totalMatches === 1 ? \"\" : \"es\"}; returned ${matches.length}.${moreText}${escalationText}\\n${lines.join(\"\\n\")}`,\n\t\t\t},\n\t\t],\n\t\tdetails,\n\t};\n}\n\n/** Reads cached outline; truncated refs trigger a scoped look. */\nasync function performExpandUi(\n\tparams: ExpandUiParams,\n\tsignal?: AbortSignal,\n): Promise<AgentToolResult<OutlineToolDetails>> {\n\tconst state = operationState();\n\tconst outline = currentOutlineOrThrow(params.stateId);\n\tconst ref = trimOrUndefined(params.ref);\n\tif (!ref) throw new Error(\"expand_ui.ref is required.\");\n\tconst initialTarget = nodeByRef(outline, ref);\n\tif (!initialTarget) throw new Error(`Outline ref '${ref}' is not available in the current outline.`);\n\tlet target: OutlineNode = initialTarget;\n\tconst depth = Math.max(1, Math.min(8, Math.trunc(toFiniteNumber(params.depth, 3))));\n\tconst regionKey = noteRegionKeyForRef(outline, ref);\n\tconst regionChanged = Boolean(\n\t\tregionKey && state.currentNote?.regions.some((region) => region.key === regionKey && region.status === \"changed\"),\n\t);\n\tif (target.truncated || regionChanged) {\n\t\tconst currentTarget = await ensureTargetWindowId(await resolveCurrentTarget(signal), signal);\n\t\tconst targetWireRef = wireRefForNode(target);\n\t\tif (!state.resourceKey || state.epoch === undefined)\n\t\t\tthrow new Error(\"The observation has no live resource identity. Observe again.\");\n\t\tconst scoped = (\n\t\t\tawait resourceScheduler.readAt(\n\t\t\t\tstate.resourceKey,\n\t\t\t\tstate.epoch,\n\t\t\t\tasync () =>\n\t\t\t\t\tawait performLook(\n\t\t\t\t\t\tcurrentTarget,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadText: \"auto\",\n\t\t\t\t\t\t\tbaseLookId: outline.lookId,\n\t\t\t\t\t\t\tscopeRef: targetWireRef,\n\t\t\t\t\t\t\tmaxDimension: 1,\n\t\t\t\t\t\t\tincludeImage: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t),\n\t\t\t)\n\t\t).value;\n\t\ttarget = graftScopedOutline(outline, target.ref, scoped.parsedOutline!);\n\t\toutline.lookId = scoped.lookId;\n\t\tstate.currentOutline = outline;\n\t\tstate.currentLook = { ...scoped, image: state.currentLook?.image, outline: outline.root, parsedOutline: outline };\n\t\tpersistOperation(state);\n\t}\n\tconst folded = foldToBudget(outline, { maxDepth: depth, maxNodes: 150 }, [target.ref]);\n\tconst details: OutlineToolDetails = {\n\t\ttool: \"expand_ui\",\n\t\tstateId: state.currentCapture?.stateId,\n\t\tlookId: outline.lookId,\n\t\ttarget: serializeOutlineNodeShallow(target),\n\t\trenderedOutline: folded.text,\n\t\tnote: state.currentNote,\n\t};\n\treturn {\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: `${formatOutlineNodeLabel(target)}\\npath: ${outlineNodePath(target)}\\n\\n${folded.text}`,\n\t\t\t},\n\t\t],\n\t\tdetails,\n\t};\n}\n\n/** Pure cached-outline inspection. */\nasync function performInspectUi(params: InspectUiParams): Promise<AgentToolResult<OutlineToolDetails>> {\n\tconst state = operationState();\n\tconst outline = currentOutlineOrThrow(params.stateId);\n\tconst ref = trimOrUndefined(params.ref);\n\tif (!ref) throw new Error(\"inspect_ui.ref is required.\");\n\tconst target = nodeByRef(outline, ref);\n\tif (!target) throw new Error(`Outline ref '${ref}' is not available in the current outline.`);\n\tconst details: OutlineToolDetails = {\n\t\ttool: \"inspect_ui\",\n\t\tstateId: state.currentCapture?.stateId,\n\t\tlookId: outline.lookId,\n\t\ttarget: serializeOutlineNodeShallow(target),\n\t\tnote: state.currentNote,\n\t};\n\tconst fields = [\n\t\tformatOutlineNodeLabel(target),\n\t\t`path: ${outlineNodePath(target)}`,\n\t\t`rect: ${JSON.stringify(target.rect)}`,\n\t\t`actions: ${target.actions.join(\",\") || \"none\"}`,\n\t\t`capabilities: ${\n\t\t\t[\n\t\t\t\ttarget.canPress ? \"press\" : undefined,\n\t\t\t\ttarget.canFocus ? \"focus\" : undefined,\n\t\t\t\ttarget.canSetValue ? \"setValue\" : undefined,\n\t\t\t\ttarget.canScroll ? \"scroll\" : undefined,\n\t\t\t\ttarget.canIncrement ? \"increment\" : undefined,\n\t\t\t\ttarget.canDecrement ? \"decrement\" : undefined,\n\t\t\t\ttarget.isTextInput ? \"textInput\" : undefined,\n\t\t\t]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\",\") || \"none\"\n\t\t}`,\n\t\t`annotations: ${\n\t\t\t[\n\t\t\t\ttarget.offscreen ? \"offscreen\" : undefined,\n\t\t\t\ttarget.pictureOnly ? \"pictureOnly\" : undefined,\n\t\t\t\ttarget.truncated ? \"truncated\" : undefined,\n\t\t\t\ttarget.scrollExtent ? `scrollable ${target.scrollExtent.seen}/${target.scrollExtent.total}` : undefined,\n\t\t\t]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\",\") || \"none\"\n\t\t}`,\n\t];\n\treturn { content: [{ type: \"text\", text: fields.join(\"\\n\") }], details };\n}\n\nfunction prepareUiAction(action: UiAction, state: ActionState, look: LookResponse, headless: boolean): PreparedAction {\n\treturn prepareAction(action, state, {\n\t\theadless,\n\t\timage: look.image,\n\t\tnode: outlineNodeByRef,\n\t\tcenter: outlineNodeCenter,\n\t\tvalidatePoint: (x, y, label) => ensurePointIsInLookImage(x, y, look, label),\n\t});\n}\n\nasync function dispatchUiAction(\n\taction: UiAction,\n\ttarget: ResolvedTarget,\n\tlook: LookResponse,\n\theadless: boolean,\n\tstate: ActionState,\n\tsignal?: AbortSignal,\n): Promise<ExecutionTrace> {\n\tconst prepared = prepareUiAction(action, state, look, headless);\n\tif (prepared.action === \"wait\") {\n\t\tawait sleep(prepared.params.ms, signal);\n\t\treturn executionTrace(\"wait\", \"stealth\", { outcome: \"worked\" });\n\t}\n\tconst trace = await helperAct(target, prepared, headless, signal);\n\tif (!headless && (prepared.establishesFocus || (prepared.action === \"click\" && \"x\" in prepared.target))) {\n\t\tstate.currentFocus = true;\n\t}\n\treturn trace;\n}\n\nasync function dispatchUiTransaction(\n\tactions: UiAction[],\n\ttarget: ResolvedTarget,\n\tlook: LookResponse,\n\theadless: boolean,\n\tsignal?: AbortSignal,\n): Promise<ExecutionTrace> {\n\t// Strict-headless batches have one immutable delivery class. When foreground\n\t// fallback is permitted, decide independently per action so a completed\n\t// background prefix is never replayed as part of a foreground batch.\n\tif (headless && currentPlatformBackend.actBatch) {\n\t\tconst actionState: ActionState = { currentFocus: false };\n\t\tconst requests = actions.map((action) =>\n\t\t\thelperActRequest(target, prepareUiAction(action, actionState, look, true) as NativePreparedAction, \"ax_only\"),\n\t\t);\n\t\tconst textLength = actions.reduce((sum, action) => sum + (action.text?.length ?? 0), 0);\n\t\tconst result = await currentPlatformBackend.actBatch(requests, {\n\t\t\tsignal,\n\t\t\ttimeoutMs: Math.max(COMMAND_TIMEOUT_MS, textLength * 25 + 6_000),\n\t\t});\n\t\tif (!result.steps || result.steps.length === 0)\n\t\t\tthrow new Error(\"Native action transaction returned no checked steps.\");\n\t\tconst execution = aggregateExecutions(result.steps.map((step) => executionTraceFromAct(step, \"ax_only\")));\n\t\tconst batchTrace = executionTraceFromAct(result, \"ax_only\");\n\t\texecution.outcome = result.outcome;\n\t\texecution.performed = result.performed;\n\t\texecution.rootDelta = batchTrace.rootDelta;\n\t\texecution.stoppedAt = result.stoppedAt;\n\t\treturn execution;\n\t}\n\tconst steps: ExecutionTrace[] = [];\n\tconst actionState: ActionState = { currentFocus: false };\n\tfor (const action of actions) {\n\t\tconst step = await dispatchUiAction(action, target, look, headless, actionState, signal);\n\t\tsteps.push(step);\n\t\tif (step.outcome === \"didnt\") break;\n\t}\n\treturn aggregateExecutions(steps);\n}\n\nfunction aggregateExecutions(steps: ExecutionTrace[]): ExecutionTrace {\n\tconst outcomes = steps.map((step) => step.outcome);\n\tconst outcome: ActOutcome = outcomes.includes(\"didnt\")\n\t\t? \"didnt\"\n\t\t: outcomes.includes(\"unknown\")\n\t\t\t? \"unknown\"\n\t\t\t: \"worked\";\n\tconst fallback = steps.find((step) => step.escalatedToForeground);\n\treturn executionTrace(\"act\", steps.every((step) => step.variant === \"stealth\") ? \"stealth\" : \"default\", {\n\t\toutcome,\n\t\tsteps,\n\t\tactionCount: steps.length,\n\t\trootDelta: steps.flatMap((step) => step.rootDelta ?? []),\n\t\tbackgroundFirst: true,\n\t\tescalatedToForeground: Boolean(fallback),\n\t\tescalationReason: fallback?.escalationReason,\n\t\tbackgroundAttempt: fallback?.backgroundAttempt,\n\t});\n}\n\nfunction exactPlatformRootMatchesTarget(root: HelperWindow, target: ResolvedTarget): boolean {\n\tif (root.pid !== target.pid) return false;\n\tconst nativeRefMatches = Boolean(\n\t\ttarget.nativeWindowRef && (root.rootRef === target.nativeWindowRef || root.windowRef === target.nativeWindowRef),\n\t);\n\tconst windowIdMatches = target.windowId > 0 && root.windowId === target.windowId;\n\treturn nativeRefMatches || windowIdMatches;\n}\n\nfunction clearDesktopOperationState(state: OperationState): void {\n\tstate.currentTarget = undefined;\n\tstate.currentCapture = undefined;\n\tstate.currentStateTarget = undefined;\n\tstate.currentLook = undefined;\n\tstate.currentOutline = undefined;\n\tstate.currentNote = undefined;\n}\n\nasync function terminalDesktopActionResult(\n\ttarget: ResolvedTarget,\n\tbaseStateId: string,\n\texecution: ExecutionTrace,\n\terror: unknown,\n\tcondition?: ReturnType<typeof validateCondition>,\n): Promise<AgentToolResult<TerminalDesktopActionDetails>> {\n\tlet exactRootAvailable: boolean | undefined;\n\ttry {\n\t\tfor (let attempt = 0; attempt < 3; attempt += 1) {\n\t\t\tconst roots = await currentPlatformBackend.listRoots({ pid: target.pid });\n\t\t\texactRootAvailable = roots.some((root) => exactPlatformRootMatchesTarget(root, target));\n\t\t\tif (exactRootAvailable) break;\n\t\t\tif (attempt < 2) await sleep(75);\n\t\t}\n\t} catch {\n\t\t// A failed identity probe cannot prove that the root closed.\n\t}\n\tconst targetClosed = exactRootAvailable === false;\n\tif (\n\t\ttargetClosed &&\n\t\t!(execution.rootDelta ?? []).some(\n\t\t\t(delta) =>\n\t\t\t\tdelta.change === \"closed\" &&\n\t\t\t\tdelta.pid === target.pid &&\n\t\t\t\t(delta.ref === target.windowRef || delta.ref === target.nativeWindowRef),\n\t\t)\n\t) {\n\t\texecution.rootDelta = [\n\t\t\t...(execution.rootDelta ?? []),\n\t\t\t{\n\t\t\t\tchange: \"closed\",\n\t\t\t\tkind: \"window\",\n\t\t\t\tref: target.windowRef,\n\t\t\t\ttitle: target.windowTitle,\n\t\t\t\tpid: target.pid,\n\t\t\t\tmetadata: { source: \"post_action_identity_probe\" },\n\t\t\t},\n\t\t];\n\t}\n\tif (targetClosed && condition) {\n\t\tconst verificationStatus = condition.gone ? \"verified\" : \"failed\";\n\t\texecution.verification = {\n\t\t\tstatus: verificationStatus,\n\t\t\ttext: condition.text,\n\t\t\trole: condition.role,\n\t\t\tvalue: condition.value,\n\t\t\tgone: condition.gone || undefined,\n\t\t\ttimeoutMs: condition.timeoutMs,\n\t\t};\n\t\texecution.outcome = outcomeAfterCheck(execution.outcome ?? \"unknown\", verificationStatus);\n\t\tif (verificationStatus === \"failed\") {\n\t\t\texecution.error = {\n\t\t\t\tcode: \"postcondition_failed\",\n\t\t\t\tmessage: \"The source root closed before the requested presence or value postcondition could be verified.\",\n\t\t\t};\n\t\t}\n\t}\n\tconst status = targetClosed ? \"target_closed\" : \"post_action_observation_failed\";\n\tconst code = targetClosed ? \"target_closed\" : \"post_action_observation_failed\";\n\tconst message = error instanceof Error ? error.message : String(error);\n\tclearDesktopOperationState(operationState());\n\tconst details: TerminalDesktopActionDetails = {\n\t\ttool: \"act_ui\",\n\t\tstatus,\n\t\tbaseStateId,\n\t\ttarget: {\n\t\t\tapp: target.appName,\n\t\t\tbundleId: target.bundleId,\n\t\t\tpid: target.pid,\n\t\t\twindowTitle: target.windowTitle,\n\t\t\twindowId: target.windowId,\n\t\t\twindowRef: target.windowRef,\n\t\t\tnativeWindowRef: target.nativeWindowRef,\n\t\t},\n\t\texecution,\n\t\terror: { code, message },\n\t};\n\tconst result = targetClosed\n\t\t? `The action was delivered, and its source root ${target.appName} — ${target.windowTitle} closed before a successor observation could be captured.`\n\t\t: `The action was delivered, but its source root ${target.appName} — ${target.windowTitle} could not be observed afterward: ${message}`;\n\treturn {\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: `${result}\\nNo successor state was created. Call find_roots, then observe_ui to continue.`,\n\t\t\t},\n\t\t],\n\t\tdetails,\n\t};\n}\n\nasync function performDesktopTransaction(\n\tparams: ActParams,\n\tactions: UiAction[],\n\tsignal?: AbortSignal,\n): Promise<AgentToolResult<ComputerUseDetails | TerminalDesktopActionDetails>> {\n\tconst state = operationState();\n\tstate.currentImageMode = \"auto\";\n\tvalidateStateId(params.stateId);\n\tconst look = currentLookOrThrow();\n\tconst baseView = { stateId: state.currentCapture!.stateId, outline: state.currentOutline! };\n\tconst condition = params.expect ? validateCondition(params.expect) : undefined;\n\tconst scopeNode = condition ? conditionScopeNode(look.parsedOutline!, condition) : undefined;\n\tconst target = await ensureTargetWindowId(await resolveCurrentTarget(signal), signal);\n\tconst noteBefore = state.currentNote;\n\treturn await withWindowWriteLock(target, async () => {\n\t\tconst headless = getComputerUseConfig().headless;\n\t\tconst execution = await dispatchUiTransaction(actions, target, look, headless, signal);\n\t\tconst executedActions = actions.slice(0, execution.actionCount ?? actions.length);\n\t\ttry {\n\t\t\tif (condition) {\n\t\t\t\tconst {\n\t\t\t\t\ttext: expectedText,\n\t\t\t\t\trole: expectedRole,\n\t\t\t\t\tvalue: expectedValue,\n\t\t\t\t\tscopeExact,\n\t\t\t\t\tgone,\n\t\t\t\t\ttimeoutMs,\n\t\t\t\t} = condition;\n\t\t\t\tconst beforePresent = outlineConditionPresent(look.parsedOutline!, condition);\n\t\t\t\tconst desiredWasPreexisting = beforePresent !== gone;\n\t\t\t\tconst verification = await currentPlatformBackend.waitFor(\n\t\t\t\t\t{\n\t\t\t\t\t\t...nativeWindowRequest(target),\n\t\t\t\t\t\tlookId: look.parsedOutline!.lookId,\n\t\t\t\t\t\ttext: expectedText,\n\t\t\t\t\t\trole: platformRole(look.parsedOutline!, expectedRole),\n\t\t\t\t\t\tvalue: expectedValue,\n\t\t\t\t\t\tscopeRef: scopeNode ? wireRefForNode(scopeNode) : undefined,\n\t\t\t\t\t\tscopeExact,\n\t\t\t\t\t\tgone,\n\t\t\t\t\t\ttimeoutMs,\n\t\t\t\t\t},\n\t\t\t\t\t{ signal, timeoutMs: timeoutMs + 2_000 },\n\t\t\t\t);\n\t\t\t\texecution.verification = {\n\t\t\t\t\tstatus: verification.found ? (desiredWasPreexisting ? \"preexisting\" : \"verified\") : \"failed\",\n\t\t\t\t\ttext: expectedText,\n\t\t\t\t\trole: expectedRole,\n\t\t\t\t\tvalue: expectedValue,\n\t\t\t\t\tgone: gone || undefined,\n\t\t\t\t\ttimeoutMs,\n\t\t\t\t};\n\t\t\t\texecution.outcome = outcomeAfterCheck(execution.outcome ?? \"unknown\", execution.verification.status);\n\t\t\t\tif (!verification.found) {\n\t\t\t\t\texecution.error = {\n\t\t\t\t\t\tcode: \"postcondition_failed\",\n\t\t\t\t\t\tmessage: `The action was delivered but its postcondition was not satisfied within ${timeoutMs}ms.`,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tawait sleep(settleMsForExecution(execution), signal);\n\t\t\t}\n\t\t\tconst capture = await captureCurrentTarget(signal, \"auto\", AUTO_IMAGE_MAX_DIMENSION, target);\n\t\t\texecution.outcome = outcomeAfterObservedValues(\n\t\t\t\texecution.outcome ?? \"unknown\",\n\t\t\t\texecutedActions,\n\t\t\t\t(ref) => nodeByRef(capture.outline, ref)?.value,\n\t\t\t);\n\t\t\tfor (const action of executedActions) {\n\t\t\t\tstate.currentNote = noteAfterAct(state.currentNote ?? noteBefore, action.ref, capture.outline, {\n\t\t\t\t\twindow: noteWindowForTarget(capture.target, capture.look),\n\t\t\t\t\trootDelta: execution.rootDelta,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn await buildToolResult(\n\t\t\t\t\"act_ui\",\n\t\t\t\t`Executed ${executedActions.length} checked UI action${executedActions.length === 1 ? \"\" : \"s\"} in ${target.appName} — ${target.windowTitle}. Returned state ${capture.capture.stateId}.`,\n\t\t\t\tcapture,\n\t\t\t\texecution,\n\t\t\t\tsignal,\n\t\t\t\tstate.currentImageMode,\n\t\t\t\tbaseView,\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tif (signal?.aborted) {\n\t\t\t\tclearDesktopOperationState(state);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\treturn await terminalDesktopActionResult(target, baseView.stateId, execution, error, condition);\n\t\t}\n\t});\n}\n\nasync function performBrowserTransaction(\n\tparams: ActParams,\n\tactions: UiAction[],\n\tsignal?: AbortSignal,\n): Promise<AgentToolResult<BrowserObservationDetails>> {\n\tconst contextId = browserContextForOperation();\n\tif (!contextId) throw new Error(\"Browser transaction requires a browser observation state.\");\n\tconst baseSnapshot = operationState().browserSnapshot;\n\tif (!baseSnapshot) throw new Error(\"Browser transaction requires a complete base observation.\");\n\tconst baseView = { stateId: baseSnapshot.snapshotId, outline: baseSnapshot.outline };\n\tconst condition = params.expect ? validateCondition(params.expect) : undefined;\n\tif (condition) conditionScopeNode(restoreOutline(baseSnapshot.outline), condition);\n\tconst prepared = actions.map((action) => {\n\t\tif (!BROWSER_TRANSACTION_ACTIONS.has(action.action))\n\t\t\tthrow new Error(`Browser transactions do not support '${action.action}'.`);\n\t\tif (action.action === \"click\" && action.ref && action.button && action.button !== \"left\")\n\t\t\tthrow new Error(\n\t\t\t\t\"Browser ref clicks support only the left button; use coordinate clicks for right or middle buttons.\",\n\t\t\t);\n\t\tconst target = browserSnapshotTarget(params.stateId, trimOrUndefined(action.ref));\n\t\tif (\n\t\t\t(action.action === \"press\" ||\n\t\t\t\taction.action === \"setText\" ||\n\t\t\t\t(action.action === \"click\" && action.ref) ||\n\t\t\t\t(action.action === \"typeText\" && action.ref)) &&\n\t\t\t!Number.isFinite(target?.backendNodeId)\n\t\t) {\n\t\t\tthrow new Error(`Browser ${action.action} requires an actionable @e ref owned by ${params.stateId}.`);\n\t\t}\n\t\tif (action.ref && (!target || target.contextId !== contextId))\n\t\t\tthrow new Error(`Browser ${action.action} ref must be owned by ${params.stateId}.`);\n\t\treturn { action, target };\n\t});\n\treturn await withBrowserWrite(contextId, async () => {\n\t\tfor (const { action, target } of prepared) {\n\t\t\tlet worked = false;\n\t\t\tif (action.action === \"press\" || (action.action === \"click\" && action.ref)) {\n\t\t\t\tworked = true;\n\t\t\t\tfor (let count = 0; count < (action.clickCount ?? 1); count += 1)\n\t\t\t\t\tworked = (await cdpClickForContext(contextId, target!.backendNodeId!)) && worked;\n\t\t\t} else if (action.action === \"click\") {\n\t\t\t\tworked =\n\t\t\t\t\t(await cdpMouseForContext(\n\t\t\t\t\t\tcontextId,\n\t\t\t\t\t\taction.x!,\n\t\t\t\t\t\taction.y!,\n\t\t\t\t\t\t\"mousePressed\",\n\t\t\t\t\t\taction.button ?? \"left\",\n\t\t\t\t\t\taction.clickCount ?? 1,\n\t\t\t\t\t)) &&\n\t\t\t\t\t(await cdpMouseForContext(\n\t\t\t\t\t\tcontextId,\n\t\t\t\t\t\taction.x!,\n\t\t\t\t\t\taction.y!,\n\t\t\t\t\t\t\"mouseReleased\",\n\t\t\t\t\t\taction.button ?? \"left\",\n\t\t\t\t\t\taction.clickCount ?? 1,\n\t\t\t\t\t));\n\t\t\t} else if (action.action === \"setText\")\n\t\t\t\tworked = await cdpTypeForContext(contextId, target!.backendNodeId!, action.text ?? \"\", true);\n\t\t\telse if (action.action === \"typeText\")\n\t\t\t\tworked = target?.backendNodeId\n\t\t\t\t\t? await cdpTypeForContext(contextId, target.backendNodeId, action.text ?? \"\", false)\n\t\t\t\t\t: await cdpTypeFocusedForContext(contextId, action.text ?? \"\");\n\t\t\telse if (action.action === \"keypress\") worked = await cdpKeypressForContext(contextId, action.keys ?? []);\n\t\t\telse if (action.action === \"scroll\")\n\t\t\t\tworked = await cdpScrollForContext(\n\t\t\t\t\tcontextId,\n\t\t\t\t\ttoFiniteNumber(action.scrollX, 0),\n\t\t\t\t\ttoFiniteNumber(action.scrollY, 0),\n\t\t\t\t\ttarget?.backendNodeId,\n\t\t\t\t);\n\t\t\telse if (action.action === \"drag\")\n\t\t\t\tworked = await cdpDragForContext(contextId, normalizeActionPath(action.path));\n\t\t\telse if (action.action === \"moveMouse\")\n\t\t\t\tworked = await cdpMouseForContext(contextId, action.x!, action.y!, \"mouseMoved\");\n\t\t\tif (!worked)\n\t\t\t\tthrow new Error(\"The browser root became unavailable during the action transaction. Observe it again.\");\n\t\t}\n\t\tif (condition) {\n\t\t\tconst deadline = Date.now() + condition.timeoutMs;\n\t\t\tlet satisfied = false;\n\t\t\tdo {\n\t\t\t\tconst snapshot = await cdpSnapshotForContext(contextId);\n\t\t\t\tif (!snapshot) throw new Error(`Browser root '${contextId}' is no longer available. Observe it again.`);\n\t\t\t\tconst present = outlineConditionPresent(restoreOutline(snapshot.outline), condition);\n\t\t\t\tsatisfied = present !== condition.gone;\n\t\t\t\tif (!satisfied) await sleep(100, signal);\n\t\t\t} while (!satisfied && Date.now() < deadline);\n\t\t\tif (!satisfied)\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`The browser action was delivered but its postcondition was not satisfied within ${condition.timeoutMs}ms.`,\n\t\t\t\t);\n\t\t}\n\t\treturn await refreshBrowserSnapshot(contextId, \"act_ui\", baseView);\n\t});\n}\n\nfunction normalizeActionPath(path: UiAction[\"path\"]): Array<{ x: number; y: number }> {\n\treturn (path ?? []).map((point) =>\n\t\tArray.isArray(point)\n\t\t\t? { x: toFiniteNumber(point[0], 0), y: toFiniteNumber(point[1], 0) }\n\t\t\t: { x: toFiniteNumber(point.x, 0), y: toFiniteNumber(point.y, 0) },\n\t);\n}\n\nfunction validateActionTarget(action: UiAction): void {\n\tconst hasRef = Boolean(trimOrUndefined(action.ref));\n\tconst hasX = Number.isFinite(action.x);\n\tconst hasY = Number.isFinite(action.y);\n\tif (hasX !== hasY) throw new Error(`${action.action} coordinates require both x and y.`);\n\tconst hasPoint = hasX && hasY;\n\tif ((action.action === \"click\" || action.action === \"moveMouse\") && hasRef === hasPoint) {\n\t\tthrow new Error(`${action.action} requires exactly one target: ref or x/y coordinates.`);\n\t}\n\tif (action.action === \"press\" && !hasRef) throw new Error(\"press requires an actionable ref.\");\n\tif (action.action === \"scroll\" && toFiniteNumber(action.scrollX, 0) === 0 && toFiniteNumber(action.scrollY, 0) === 0)\n\t\tthrow new Error(\"scroll requires a non-zero scrollX or scrollY delta.\");\n\tif (\n\t\taction.clickCount !== undefined &&\n\t\t(!Number.isInteger(action.clickCount) || action.clickCount < 1 || action.clickCount > 3)\n\t)\n\t\tthrow new Error(\"clickCount must be an integer from 1 to 3.\");\n}\n\nasync function performAct(\n\tparams: ActParams,\n\tsignal?: AbortSignal,\n): Promise<AgentToolResult<ComputerUseDetails | TerminalDesktopActionDetails | BrowserObservationDetails>> {\n\tconst actions = Array.isArray(params.actions) ? params.actions : [];\n\tif (actions.length === 0) throw new Error(\"act_ui.actions must contain at least one action.\");\n\tif (actions.length > 20) throw new Error(\"act_ui supports at most 20 actions per transaction.\");\n\tfor (const action of actions) validateActionTarget(action);\n\tif (operationState().contextId) return await performBrowserTransaction(params, actions, signal);\n\treturn await performDesktopTransaction(params, actions, signal);\n}\n\nfunction managedBrowserExecutableCandidates(browser: \"helium\" | \"chrome\"): string[] {\n\tconst overrideName =\n\t\tbrowser === \"helium\" ? \"ADA_COMPUTER_USE_HELIUM_EXECUTABLE\" : \"ADA_COMPUTER_USE_CHROME_EXECUTABLE\";\n\tconst override = trimOrUndefined(process.env[overrideName]);\n\tif (override) return [path.resolve(override)];\n\n\tconst platformCandidates =\n\t\tprocess.platform === \"darwin\"\n\t\t\t? browser === \"helium\"\n\t\t\t\t? [\n\t\t\t\t\t\t\"/Applications/Helium.app/Contents/MacOS/Helium\",\n\t\t\t\t\t\tpath.join(os.homedir(), \"Applications\", \"Helium.app\", \"Contents\", \"MacOS\", \"Helium\"),\n\t\t\t\t\t]\n\t\t\t\t: [\n\t\t\t\t\t\t\"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome\",\n\t\t\t\t\t\tpath.join(os.homedir(), \"Applications\", \"Google Chrome.app\", \"Contents\", \"MacOS\", \"Google Chrome\"),\n\t\t\t\t\t]\n\t\t\t: process.platform === \"win32\"\n\t\t\t\t? browser === \"helium\"\n\t\t\t\t\t? [\n\t\t\t\t\t\t\tprocess.env.LOCALAPPDATA &&\n\t\t\t\t\t\t\t\tpath.join(process.env.LOCALAPPDATA, \"Helium\", \"Application\", \"helium.exe\"),\n\t\t\t\t\t\t\tprocess.env.PROGRAMFILES &&\n\t\t\t\t\t\t\t\tpath.join(process.env.PROGRAMFILES, \"Helium\", \"Application\", \"helium.exe\"),\n\t\t\t\t\t\t]\n\t\t\t\t\t: [\n\t\t\t\t\t\t\tprocess.env.LOCALAPPDATA &&\n\t\t\t\t\t\t\t\tpath.join(process.env.LOCALAPPDATA, \"Google\", \"Chrome\", \"Application\", \"chrome.exe\"),\n\t\t\t\t\t\t\tprocess.env.PROGRAMFILES &&\n\t\t\t\t\t\t\t\tpath.join(process.env.PROGRAMFILES, \"Google\", \"Chrome\", \"Application\", \"chrome.exe\"),\n\t\t\t\t\t\t\tprocess.env[\"PROGRAMFILES(X86)\"] &&\n\t\t\t\t\t\t\t\tpath.join(process.env[\"PROGRAMFILES(X86)\"], \"Google\", \"Chrome\", \"Application\", \"chrome.exe\"),\n\t\t\t\t\t\t]\n\t\t\t\t: browser === \"helium\"\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t\"/usr/bin/helium\",\n\t\t\t\t\t\t\t\"/usr/bin/helium-browser\",\n\t\t\t\t\t\t\t\"/opt/helium/chrome\",\n\t\t\t\t\t\t\tpath.join(os.homedir(), \".local\", \"helium\", \"chrome\"),\n\t\t\t\t\t\t]\n\t\t\t\t\t: [\n\t\t\t\t\t\t\t\"/usr/bin/google-chrome\",\n\t\t\t\t\t\t\t\"/usr/bin/google-chrome-stable\",\n\t\t\t\t\t\t\t\"/usr/bin/chromium\",\n\t\t\t\t\t\t\t\"/usr/bin/chromium-browser\",\n\t\t\t\t\t\t\t\"/snap/bin/chromium\",\n\t\t\t\t\t\t];\n\tconst pathNames =\n\t\tbrowser === \"helium\"\n\t\t\t? process.platform === \"win32\"\n\t\t\t\t? [\"helium.exe\"]\n\t\t\t\t: [\"helium\", \"helium-browser\"]\n\t\t\t: process.platform === \"win32\"\n\t\t\t\t? [\"chrome.exe\"]\n\t\t\t\t: [\"google-chrome\", \"google-chrome-stable\", \"chromium\", \"chromium-browser\"];\n\tconst pathCandidates = (process.env.PATH ?? \"\")\n\t\t.split(path.delimiter)\n\t\t.filter(Boolean)\n\t\t.flatMap((directory) => pathNames.map((name) => path.join(directory, name)));\n\treturn [\n\t\t...new Set([\n\t\t\t...platformCandidates.filter((candidate): candidate is string => Boolean(candidate)),\n\t\t\t...pathCandidates,\n\t\t]),\n\t];\n}\n\nasync function managedBrowserExecutable(browser: \"helium\" | \"chrome\"): Promise<string> {\n\tconst candidates = managedBrowserExecutableCandidates(browser);\n\tfor (const candidate of candidates) {\n\t\ttry {\n\t\t\tawait access(candidate, fsConstants.X_OK);\n\t\t\treturn candidate;\n\t\t} catch {\n\t\t\t// Try the next platform-appropriate installation location.\n\t\t}\n\t}\n\tconst overrideName =\n\t\tbrowser === \"helium\" ? \"ADA_COMPUTER_USE_HELIUM_EXECUTABLE\" : \"ADA_COMPUTER_USE_CHROME_EXECUTABLE\";\n\tif (trimOrUndefined(process.env[overrideName])) {\n\t\tthrow new Error(\n\t\t\t`${browser} executable from ${overrideName} was not found or is not executable: ${candidates[0]}.`,\n\t\t);\n\t}\n\tthrow new Error(`${browser} executable was not found. Set ${overrideName} to its absolute path.`);\n}\n\nfunction freeTcpPort(): Promise<number> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst server = net.createServer();\n\t\tserver.on(\"error\", reject);\n\t\tserver.listen(0, \"127.0.0.1\", () => {\n\t\t\tconst address = server.address();\n\t\t\tconst port = typeof address === \"object\" && address ? address.port : 0;\n\t\t\tserver.close(() => (port > 0 ? resolve(port) : reject(new Error(\"Could not allocate a local CDP port.\"))));\n\t\t});\n\t});\n}\n\nasync function waitForCdpPort(port: number, signal?: AbortSignal): Promise<void> {\n\tconst deadline = Date.now() + MANAGED_BROWSER_READY_TIMEOUT_MS;\n\twhile (Date.now() < deadline) {\n\t\tif (signal?.aborted) throw new Error(\"Browser launch was aborted.\");\n\t\ttry {\n\t\t\tconst response = await fetch(`http://127.0.0.1:${port}/json/version`, { signal: AbortSignal.timeout(500) });\n\t\t\tif (response.ok) return;\n\t\t} catch {\n\t\t\t// Browser is still starting.\n\t\t}\n\t\tawait sleep(200, signal);\n\t}\n\tthrow new Error(`Managed browser did not expose CDP on port ${port} within ${MANAGED_BROWSER_READY_TIMEOUT_MS}ms.`);\n}\n\n// Side effects: starts a Pi-managed browser process, replaces any previous managed browser,\n// and sets ADA_COMPUTER_USE_CDP_PORT for subsequent CDP context discovery.\nasync function performLaunchBrowser(\n\tparams: LaunchBrowserParams,\n\tsignal?: AbortSignal,\n): Promise<AgentToolResult<BrowserObservationDetails>> {\n\tconst browser = getComputerUseConfig().managed_browser;\n\tconst executable = await managedBrowserExecutable(browser);\n\tconst port = await freeTcpPort();\n\tconst requestedUrl = trimOrUndefined(params.url);\n\tif (requestedUrl && !/^https?:\\/\\//i.test(requestedUrl))\n\t\tthrow new Error(\"launch_browser.url must be an absolute HTTP(S) URL.\");\n\tconst url = requestedUrl ?? \"about:blank\";\n\tconst profileDir = path.join(os.tmpdir(), `pi-${browser}-cdp-${port}`);\n\tdisconnectCdp();\n\truntimeState.managedBrowser?.kill(\"SIGTERM\");\n\tconst args = [\n\t\t`--remote-debugging-port=${port}`,\n\t\t`--user-data-dir=${profileDir}`,\n\t\t\"--no-first-run\",\n\t\t\"--no-default-browser-check\",\n\t\turl,\n\t];\n\tif (runtimeState.previousCdpPort === undefined && runtimeState.managedBrowserCdpPort === undefined) {\n\t\truntimeState.previousCdpPort = process.env.ADA_COMPUTER_USE_CDP_PORT;\n\t}\n\tconst managedBrowser = spawn(executable, args, { stdio: \"ignore\", detached: false });\n\tmanagedBrowser.unref();\n\truntimeState.managedBrowser = managedBrowser;\n\truntimeState.managedBrowserCdpPort = String(port);\n\tprocess.env.ADA_COMPUTER_USE_CDP_PORT = String(port);\n\ttry {\n\t\tawait waitForCdpPort(port, signal);\n\t} catch (error) {\n\t\tif (runtimeState.managedBrowser === managedBrowser) {\n\t\t\truntimeState.managedBrowser = undefined;\n\t\t\tmanagedBrowser.kill(\"SIGTERM\");\n\t\t\tif (runtimeState.previousCdpPort === undefined) delete process.env.ADA_COMPUTER_USE_CDP_PORT;\n\t\t\telse process.env.ADA_COMPUTER_USE_CDP_PORT = runtimeState.previousCdpPort;\n\t\t\truntimeState.managedBrowserCdpPort = undefined;\n\t\t\truntimeState.previousCdpPort = undefined;\n\t\t}\n\t\tthrow error;\n\t}\n\tconst page = (await listCdpPageContexts())[0];\n\tif (!page) throw new Error(\"Managed browser launched without a CDP page context.\");\n\tconst resourceKey = `cdp:${page.targetId}`;\n\tconst scheduled = await resourceScheduler.read(resourceKey, async () => await cdpSnapshotForContext(page.contextId));\n\tif (!scheduled.value) throw new Error(\"Managed browser page could not be observed after launch.\");\n\treturn browserObservationResult(scheduled.value, resourceKey, scheduled.epoch, \"launch_browser\");\n}\n\nasync function performNavigateBrowser(\n\tparams: NavigateBrowserParams,\n): Promise<AgentToolResult<BrowserObservationDetails>> {\n\tconst contextId = browserContextForOperation();\n\tconst url = trimOrUndefined(params.url);\n\tif (!contextId)\n\t\tthrow new Error(\n\t\t\t\"navigate_browser.stateId must belong to a CDP browser-page observation. Native browser windows use act_ui.\",\n\t\t);\n\tif (!url || !/^https?:\\/\\//i.test(url)) throw new Error(\"navigate_browser.url must be an absolute HTTP(S) URL.\");\n\tconst baseSnapshot = operationState().browserSnapshot;\n\tif (!baseSnapshot) throw new Error(\"Browser navigation requires a complete base observation.\");\n\treturn await withBrowserWrite(contextId, async () => {\n\t\tconst ok = await cdpNavigateContext(contextId, url);\n\t\tif (!ok) throw new Error(`Browser context '${contextId}' is no longer available. Observe it again.`);\n\t\treturn await refreshBrowserSnapshot(contextId, \"navigate_browser\", {\n\t\t\tstateId: baseSnapshot.snapshotId,\n\t\t\toutline: baseSnapshot.outline,\n\t\t});\n\t});\n}\n\nasync function performEvaluateBrowser(params: EvaluateBrowserParams): Promise<AgentToolResult<EvaluateBrowserDetails>> {\n\tconst contextId = browserContextForOperation();\n\tconst expression = typeof params.expression === \"string\" ? params.expression : \"\";\n\tif (!contextId) throw new Error(\"evaluate_browser.stateId must belong to a browser observation.\");\n\tif (!expression.trim()) throw new Error(\"evaluate_browser.expression must be non-empty JavaScript.\");\n\tconst baseSnapshot = operationState().browserSnapshot;\n\tif (!baseSnapshot) throw new Error(\"Browser evaluation requires a complete base observation.\");\n\treturn await withBrowserWrite(contextId, async () => {\n\t\tconst result = await cdpEvaluateForContext(contextId, expression);\n\t\tif (!result) throw new Error(`Browser context '${contextId}' is no longer available. Observe it again.`);\n\t\tconst successor = await refreshBrowserSnapshot(contextId, \"evaluate_browser\", {\n\t\t\tstateId: baseSnapshot.snapshotId,\n\t\t\toutline: baseSnapshot.outline,\n\t\t});\n\t\tconst details: EvaluateBrowserDetails = {\n\t\t\ttool: \"evaluate_browser\",\n\t\t\tbaseStateId: baseSnapshot.snapshotId,\n\t\t\tstateId: successor.details.stateId,\n\t\t\tview: successor.details.view,\n\t\t\tchanges: successor.details.changes,\n\t\t\toutline: successor.details.outline,\n\t\t\trenderedOutline: successor.details.renderedOutline,\n\t\t};\n\t\treturn {\n\t\t\tcontent: [...successor.content, { type: \"text\", text: `Evaluation value: ${JSON.stringify(result.value)}` }],\n\t\t\tdetails,\n\t\t};\n\t});\n}\n\nasync function executeTool<P, T>(\n\tctx: ExtensionContext,\n\tparams: P,\n\tsignal: AbortSignal | undefined,\n\trun: () => Promise<T>,\n): Promise<T> {\n\tconst outputRef = trimOrUndefined((params as { ref?: string } | undefined)?.ref)?.startsWith(\"@o\") === true;\n\tconst requestedStateId = outputRef\n\t\t? undefined\n\t\t: trimOrUndefined((params as { stateId?: string } | undefined)?.stateId);\n\tconst stateRecord = requestedStateId ? savedStates.get(requestedStateId) : undefined;\n\tif (requestedStateId && !stateRecord) {\n\t\tthrow new Error(`State '${requestedStateId}' is unavailable or was evicted. Observe the root again.`);\n\t}\n\tconst operation = savedStates.hydrate(stateRecord);\n\treturn await savedStates.operations.run(operation, async () => {\n\t\tawait resourceScheduler.read(\"session-lifecycle\", async () => await ensureReady(ctx, signal));\n\t\tthrowIfAborted(signal);\n\t\tconst result = await run();\n\t\tpersistOperation(operation);\n\t\treturn result;\n\t});\n}\n\nfunction makeToolExecutor<P, D>(\n\ttool: string,\n\tperform: (params: P, signal?: AbortSignal) => Promise<AgentToolResult<D>>,\n) {\n\treturn async (\n\t\t_toolCallId: string,\n\t\tparams: P,\n\t\tsignal: AbortSignal | undefined,\n\t\t_onUpdate: AgentToolUpdateCallback<D> | undefined,\n\t\tctx: ExtensionContext,\n\t): Promise<AgentToolResult<D>> => {\n\t\ttry {\n\t\t\treturn applyOutputEnvelope(tool, await executeTool(ctx, params, signal, () => perform(params, signal)));\n\t\t} catch (error) {\n\t\t\tthrow boundToolError(tool, error);\n\t\t}\n\t};\n}\n\nexport const executeFind = makeToolExecutor(\"find_roots\", performListWindows);\nexport const executeReadText = makeToolExecutor(\"read_text\", performReadText);\nexport const executeWaitFor = makeToolExecutor(\"wait_for\", performWaitFor);\nexport const executeObserve = makeToolExecutor(\"observe_ui\", performObserve);\nexport const executeSearchUi = makeToolExecutor(\"search_ui\", performSearchUi);\nexport const executeExpandUi = makeToolExecutor(\"expand_ui\", performExpandUi);\nexport const executeInspectUi = makeToolExecutor(\"inspect_ui\", performInspectUi);\nexport const executeAct = makeToolExecutor<\n\tActParams,\n\tComputerUseDetails | TerminalDesktopActionDetails | BrowserObservationDetails\n>(\"act_ui\", performAct);\nexport const executeNavigateBrowser = makeToolExecutor(\"navigate_browser\", performNavigateBrowser);\nexport const executeEvaluateBrowser = makeToolExecutor(\"evaluate_browser\", performEvaluateBrowser);\nexport const executeLaunchBrowser = makeToolExecutor(\"launch_browser\", performLaunchBrowser);\n\nexport function reconstructStateFromBranch(ctx: ExtensionContext): void {\n\tsavedStates.clear();\n\tclearStoredOutputs();\n\truntimeState.windowRefs.clear();\n\truntimeState.windowRefByIdentity.clear();\n\truntimeState.nextRootRefIndex = 1;\n\n\tconst restoredResources = new Set<string>();\n\tfor (const entry of [...ctx.sessionManager.getBranch()].reverse()) {\n\t\tif ((entry as any)?.type !== \"message\") continue;\n\t\tconst message = (entry as any).message;\n\t\tif (!message || message.role !== \"toolResult\") continue;\n\t\tif (!AGENT_TOOL_NAMES.has(message.toolName)) continue;\n\n\t\tconst rawDetails = message.details as any;\n\t\tif (rawDetails?.tool === \"find_roots\" && Array.isArray(rawDetails.windows)) {\n\t\t\tfor (const window of rawDetails.windows) {\n\t\t\t\tif (typeof window?.windowRef !== \"string\" || !Number.isFinite(window?.pid)) continue;\n\t\t\t\tconst record: WindowRefRecord = {\n\t\t\t\t\tref: window.windowRef,\n\t\t\t\t\tappName: typeof window.app === \"string\" ? window.app : \"Unknown App\",\n\t\t\t\t\tbundleId: typeof window.bundleId === \"string\" ? window.bundleId : undefined,\n\t\t\t\t\tpid: Math.trunc(window.pid),\n\t\t\t\t\twindowTitle: typeof window.windowTitle === \"string\" ? window.windowTitle : \"(untitled)\",\n\t\t\t\t\twindowId: Number.isFinite(window.windowId) ? Math.trunc(window.windowId) : undefined,\n\t\t\t\t\tnativeWindowRef: typeof window.nativeWindowRef === \"string\" ? window.nativeWindowRef : undefined,\n\t\t\t\t\tframePoints: {\n\t\t\t\t\t\tx: toFiniteNumber(window.framePoints?.x, 0),\n\t\t\t\t\t\ty: toFiniteNumber(window.framePoints?.y, 0),\n\t\t\t\t\t\tw: Math.max(1, toFiniteNumber(window.framePoints?.w, 1)),\n\t\t\t\t\t\th: Math.max(1, toFiniteNumber(window.framePoints?.h, 1)),\n\t\t\t\t\t},\n\t\t\t\t\tscaleFactor: Math.max(1, toFiniteNumber(window.scaleFactor, 1)),\n\t\t\t\t\tisMinimized: toBoolean(window.isMinimized),\n\t\t\t\t\tisOnscreen: toBoolean(window.isOnscreen),\n\t\t\t\t\tisMain: toBoolean(window.isMain),\n\t\t\t\t\tisFocused: toBoolean(window.isFocused),\n\t\t\t\t};\n\t\t\t\truntimeState.windowRefs.set(record.ref, record);\n\t\t\t\truntimeState.windowRefByIdentity.set(windowRecordIdentity(record), record.ref);\n\t\t\t\tconst match = /^@r(\\d+)$/.exec(record.ref);\n\t\t\t\tif (match) runtimeState.nextRootRefIndex = Math.max(runtimeState.nextRootRefIndex, Number(match[1]) + 1);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst details = rawDetails as Partial<ComputerUseDetails> | undefined;\n\t\tif (!details?.target || !details?.capture) continue;\n\n\t\tconst app = typeof details.target.app === \"string\" ? details.target.app : undefined;\n\n\t\tif (!app) continue;\n\t\tif (!Number.isFinite(details.target.pid) || !Number.isFinite(details.target.windowId)) continue;\n\t\tif (typeof details.capture.stateId !== \"string\") continue;\n\n\t\tconst target: CurrentTarget = {\n\t\t\tappName: app,\n\t\t\tbundleId: details.target.bundleId,\n\t\t\tpid: Math.trunc(details.target.pid),\n\t\t\twindowTitle: details.target.windowTitle ?? \"(untitled)\",\n\t\t\twindowId: Math.trunc(details.target.windowId),\n\t\t\twindowRef: typeof details.target.windowRef === \"string\" ? details.target.windowRef : undefined,\n\t\t\tnativeWindowRef:\n\t\t\t\ttypeof (details.target as any).nativeWindowRef === \"string\"\n\t\t\t\t\t? (details.target as any).nativeWindowRef\n\t\t\t\t\t: undefined,\n\t\t};\n\n\t\tconst resourceKey = desktopResourceKey(target);\n\t\tif (restoredResources.has(resourceKey)) continue;\n\t\tconst capture: CurrentCapture = {\n\t\t\tstateId: details.capture.stateId,\n\t\t\twidth: Math.max(1, Math.trunc(toFiniteNumber(details.capture.width, 1))),\n\t\t\theight: Math.max(1, Math.trunc(toFiniteNumber(details.capture.height, 1))),\n\t\t\tscaleFactor: Math.max(1, toFiniteNumber(details.capture.scaleFactor, 1)),\n\t\t\ttimestamp: Number.isFinite(details.capture.timestamp) ? details.capture.timestamp : Date.now(),\n\t\t};\n\t\tif (details.outline?.root && typeof details.outline.lookId === \"string\") {\n\t\t\tconst epoch = 0;\n\t\t\tresourceScheduler.restoreEpoch(resourceKey, epoch);\n\t\t\tsavedStates.set({\n\t\t\t\tstateId: capture.stateId,\n\t\t\t\tresourceKey,\n\t\t\t\tepoch,\n\t\t\t\tvalue: {\n\t\t\t\t\tkind: \"desktop\",\n\t\t\t\t\ttarget,\n\t\t\t\t\tcapture,\n\t\t\t\t\toutline: details.outline,\n\t\t\t\t\tlook: {\n\t\t\t\t\t\tlookId: details.outline.lookId,\n\t\t\t\t\t\tcapturedAt: details.capture.timestamp / 1000,\n\t\t\t\t\t\twindow: {\n\t\t\t\t\t\t\twindowId: Math.trunc(details.target.windowId),\n\t\t\t\t\t\t\tframePoints: { x: 0, y: 0, w: details.capture.width, h: details.capture.height },\n\t\t\t\t\t\t\tscaleFactor: details.capture.scaleFactor,\n\t\t\t\t\t\t\tisModal: false,\n\t\t\t\t\t\t\trole: \"\",\n\t\t\t\t\t\t\tsubrole: \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\timage: { jpegBase64: \"\", width: details.capture.width, height: details.capture.height },\n\t\t\t\t\t\ttimings: {},\n\t\t\t\t\t},\n\t\t\t\t\tnote: details.note,\n\t\t\t\t},\n\t\t\t});\n\t\t\trestoredResources.add(resourceKey);\n\t\t}\n\t}\n}\n"]}