agent-web-interface 4.0.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 (395) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +226 -0
  3. package/dist/src/browser/ensure-browser.d.ts +39 -0
  4. package/dist/src/browser/ensure-browser.d.ts.map +1 -0
  5. package/dist/src/browser/ensure-browser.js +65 -0
  6. package/dist/src/browser/ensure-browser.js.map +1 -0
  7. package/dist/src/browser/index.d.ts +8 -0
  8. package/dist/src/browser/index.d.ts.map +1 -0
  9. package/dist/src/browser/index.js +8 -0
  10. package/dist/src/browser/index.js.map +1 -0
  11. package/dist/src/browser/page-network-tracker.d.ts +96 -0
  12. package/dist/src/browser/page-network-tracker.d.ts.map +1 -0
  13. package/dist/src/browser/page-network-tracker.js +235 -0
  14. package/dist/src/browser/page-network-tracker.js.map +1 -0
  15. package/dist/src/browser/page-registry.d.ts +137 -0
  16. package/dist/src/browser/page-registry.d.ts.map +1 -0
  17. package/dist/src/browser/page-registry.js +194 -0
  18. package/dist/src/browser/page-registry.js.map +1 -0
  19. package/dist/src/browser/page-stabilization.d.ts +35 -0
  20. package/dist/src/browser/page-stabilization.d.ts.map +1 -0
  21. package/dist/src/browser/page-stabilization.js +42 -0
  22. package/dist/src/browser/page-stabilization.js.map +1 -0
  23. package/dist/src/browser/session-manager.d.ts +336 -0
  24. package/dist/src/browser/session-manager.d.ts.map +1 -0
  25. package/dist/src/browser/session-manager.js +964 -0
  26. package/dist/src/browser/session-manager.js.map +1 -0
  27. package/dist/src/cdp/cdp-client.interface.d.ts +193 -0
  28. package/dist/src/cdp/cdp-client.interface.d.ts.map +1 -0
  29. package/dist/src/cdp/cdp-client.interface.js +9 -0
  30. package/dist/src/cdp/cdp-client.interface.js.map +1 -0
  31. package/dist/src/cdp/index.d.ts +9 -0
  32. package/dist/src/cdp/index.d.ts.map +1 -0
  33. package/dist/src/cdp/index.js +8 -0
  34. package/dist/src/cdp/index.js.map +1 -0
  35. package/dist/src/cdp/puppeteer-cdp-client.d.ts +97 -0
  36. package/dist/src/cdp/puppeteer-cdp-client.d.ts.map +1 -0
  37. package/dist/src/cdp/puppeteer-cdp-client.js +273 -0
  38. package/dist/src/cdp/puppeteer-cdp-client.js.map +1 -0
  39. package/dist/src/cli/args.d.ts +35 -0
  40. package/dist/src/cli/args.d.ts.map +1 -0
  41. package/dist/src/cli/args.js +76 -0
  42. package/dist/src/cli/args.js.map +1 -0
  43. package/dist/src/delta/dom-stabilizer.d.ts +46 -0
  44. package/dist/src/delta/dom-stabilizer.d.ts.map +1 -0
  45. package/dist/src/delta/dom-stabilizer.js +121 -0
  46. package/dist/src/delta/dom-stabilizer.js.map +1 -0
  47. package/dist/src/delta/index.d.ts +8 -0
  48. package/dist/src/delta/index.d.ts.map +1 -0
  49. package/dist/src/delta/index.js +7 -0
  50. package/dist/src/delta/index.js.map +1 -0
  51. package/dist/src/factpack/action-selector.d.ts +36 -0
  52. package/dist/src/factpack/action-selector.d.ts.map +1 -0
  53. package/dist/src/factpack/action-selector.js +367 -0
  54. package/dist/src/factpack/action-selector.js.map +1 -0
  55. package/dist/src/factpack/dialog-detector.d.ts +19 -0
  56. package/dist/src/factpack/dialog-detector.d.ts.map +1 -0
  57. package/dist/src/factpack/dialog-detector.js +354 -0
  58. package/dist/src/factpack/dialog-detector.js.map +1 -0
  59. package/dist/src/factpack/form-detector.d.ts +28 -0
  60. package/dist/src/factpack/form-detector.d.ts.map +1 -0
  61. package/dist/src/factpack/form-detector.js +555 -0
  62. package/dist/src/factpack/form-detector.js.map +1 -0
  63. package/dist/src/factpack/index.d.ts +32 -0
  64. package/dist/src/factpack/index.d.ts.map +1 -0
  65. package/dist/src/factpack/index.js +73 -0
  66. package/dist/src/factpack/index.js.map +1 -0
  67. package/dist/src/factpack/page-classifier.d.ts +22 -0
  68. package/dist/src/factpack/page-classifier.d.ts.map +1 -0
  69. package/dist/src/factpack/page-classifier.js +526 -0
  70. package/dist/src/factpack/page-classifier.js.map +1 -0
  71. package/dist/src/factpack/types.d.ts +307 -0
  72. package/dist/src/factpack/types.d.ts.map +1 -0
  73. package/dist/src/factpack/types.js +12 -0
  74. package/dist/src/factpack/types.js.map +1 -0
  75. package/dist/src/form/dependency-tracker.d.ts +108 -0
  76. package/dist/src/form/dependency-tracker.d.ts.map +1 -0
  77. package/dist/src/form/dependency-tracker.js +298 -0
  78. package/dist/src/form/dependency-tracker.js.map +1 -0
  79. package/dist/src/form/field-extractor.d.ts +32 -0
  80. package/dist/src/form/field-extractor.d.ts.map +1 -0
  81. package/dist/src/form/field-extractor.js +544 -0
  82. package/dist/src/form/field-extractor.js.map +1 -0
  83. package/dist/src/form/form-detector.d.ts +103 -0
  84. package/dist/src/form/form-detector.d.ts.map +1 -0
  85. package/dist/src/form/form-detector.js +704 -0
  86. package/dist/src/form/form-detector.js.map +1 -0
  87. package/dist/src/form/form-state.d.ts +23 -0
  88. package/dist/src/form/form-state.d.ts.map +1 -0
  89. package/dist/src/form/form-state.js +39 -0
  90. package/dist/src/form/form-state.js.map +1 -0
  91. package/dist/src/form/index.d.ts +23 -0
  92. package/dist/src/form/index.d.ts.map +1 -0
  93. package/dist/src/form/index.js +27 -0
  94. package/dist/src/form/index.js.map +1 -0
  95. package/dist/src/form/runtime-value-reader.d.ts +72 -0
  96. package/dist/src/form/runtime-value-reader.d.ts.map +1 -0
  97. package/dist/src/form/runtime-value-reader.js +232 -0
  98. package/dist/src/form/runtime-value-reader.js.map +1 -0
  99. package/dist/src/form/types.d.ts +384 -0
  100. package/dist/src/form/types.d.ts.map +1 -0
  101. package/dist/src/form/types.js +17 -0
  102. package/dist/src/form/types.js.map +1 -0
  103. package/dist/src/index.d.ts +8 -0
  104. package/dist/src/index.d.ts.map +1 -0
  105. package/dist/src/index.js +212 -0
  106. package/dist/src/index.js.map +1 -0
  107. package/dist/src/lib/constants.d.ts +27 -0
  108. package/dist/src/lib/constants.d.ts.map +1 -0
  109. package/dist/src/lib/constants.js +63 -0
  110. package/dist/src/lib/constants.js.map +1 -0
  111. package/dist/src/lib/index.d.ts +12 -0
  112. package/dist/src/lib/index.d.ts.map +1 -0
  113. package/dist/src/lib/index.js +17 -0
  114. package/dist/src/lib/index.js.map +1 -0
  115. package/dist/src/lib/regions.d.ts +29 -0
  116. package/dist/src/lib/regions.d.ts.map +1 -0
  117. package/dist/src/lib/regions.js +93 -0
  118. package/dist/src/lib/regions.js.map +1 -0
  119. package/dist/src/lib/scoring.d.ts +47 -0
  120. package/dist/src/lib/scoring.d.ts.map +1 -0
  121. package/dist/src/lib/scoring.js +79 -0
  122. package/dist/src/lib/scoring.js.map +1 -0
  123. package/dist/src/lib/selectors.d.ts +42 -0
  124. package/dist/src/lib/selectors.d.ts.map +1 -0
  125. package/dist/src/lib/selectors.js +138 -0
  126. package/dist/src/lib/selectors.js.map +1 -0
  127. package/dist/src/lib/text-utils.d.ts +155 -0
  128. package/dist/src/lib/text-utils.d.ts.map +1 -0
  129. package/dist/src/lib/text-utils.js +391 -0
  130. package/dist/src/lib/text-utils.js.map +1 -0
  131. package/dist/src/observation/eid-linker.d.ts +104 -0
  132. package/dist/src/observation/eid-linker.d.ts.map +1 -0
  133. package/dist/src/observation/eid-linker.js +403 -0
  134. package/dist/src/observation/eid-linker.js.map +1 -0
  135. package/dist/src/observation/index.d.ts +12 -0
  136. package/dist/src/observation/index.d.ts.map +1 -0
  137. package/dist/src/observation/index.js +15 -0
  138. package/dist/src/observation/index.js.map +1 -0
  139. package/dist/src/observation/observation-accumulator.d.ts +58 -0
  140. package/dist/src/observation/observation-accumulator.d.ts.map +1 -0
  141. package/dist/src/observation/observation-accumulator.js +213 -0
  142. package/dist/src/observation/observation-accumulator.js.map +1 -0
  143. package/dist/src/observation/observation.types.d.ts +139 -0
  144. package/dist/src/observation/observation.types.d.ts.map +1 -0
  145. package/dist/src/observation/observation.types.js +59 -0
  146. package/dist/src/observation/observation.types.js.map +1 -0
  147. package/dist/src/observation/observer-script.d.ts +19 -0
  148. package/dist/src/observation/observer-script.d.ts.map +1 -0
  149. package/dist/src/observation/observer-script.js +569 -0
  150. package/dist/src/observation/observer-script.js.map +1 -0
  151. package/dist/src/query/index.d.ts +9 -0
  152. package/dist/src/query/index.d.ts.map +1 -0
  153. package/dist/src/query/index.js +10 -0
  154. package/dist/src/query/index.js.map +1 -0
  155. package/dist/src/query/query-engine.d.ts +111 -0
  156. package/dist/src/query/query-engine.d.ts.map +1 -0
  157. package/dist/src/query/query-engine.js +509 -0
  158. package/dist/src/query/query-engine.js.map +1 -0
  159. package/dist/src/query/types/index.d.ts +5 -0
  160. package/dist/src/query/types/index.d.ts.map +1 -0
  161. package/dist/src/query/types/index.js +5 -0
  162. package/dist/src/query/types/index.js.map +1 -0
  163. package/dist/src/query/types/query.types.d.ts +141 -0
  164. package/dist/src/query/types/query.types.d.ts.map +1 -0
  165. package/dist/src/query/types/query.types.js +19 -0
  166. package/dist/src/query/types/query.types.js.map +1 -0
  167. package/dist/src/renderer/budget-manager.d.ts +46 -0
  168. package/dist/src/renderer/budget-manager.d.ts.map +1 -0
  169. package/dist/src/renderer/budget-manager.js +133 -0
  170. package/dist/src/renderer/budget-manager.js.map +1 -0
  171. package/dist/src/renderer/constants.d.ts +38 -0
  172. package/dist/src/renderer/constants.d.ts.map +1 -0
  173. package/dist/src/renderer/constants.js +29 -0
  174. package/dist/src/renderer/constants.js.map +1 -0
  175. package/dist/src/renderer/index.d.ts +12 -0
  176. package/dist/src/renderer/index.d.ts.map +1 -0
  177. package/dist/src/renderer/index.js +16 -0
  178. package/dist/src/renderer/index.js.map +1 -0
  179. package/dist/src/renderer/section-renderers.d.ts +42 -0
  180. package/dist/src/renderer/section-renderers.d.ts.map +1 -0
  181. package/dist/src/renderer/section-renderers.js +252 -0
  182. package/dist/src/renderer/section-renderers.js.map +1 -0
  183. package/dist/src/renderer/token-counter.d.ts +45 -0
  184. package/dist/src/renderer/token-counter.d.ts.map +1 -0
  185. package/dist/src/renderer/token-counter.js +65 -0
  186. package/dist/src/renderer/token-counter.js.map +1 -0
  187. package/dist/src/renderer/types.d.ts +71 -0
  188. package/dist/src/renderer/types.d.ts.map +1 -0
  189. package/dist/src/renderer/types.js +7 -0
  190. package/dist/src/renderer/types.js.map +1 -0
  191. package/dist/src/renderer/xml-renderer.d.ts +42 -0
  192. package/dist/src/renderer/xml-renderer.d.ts.map +1 -0
  193. package/dist/src/renderer/xml-renderer.js +103 -0
  194. package/dist/src/renderer/xml-renderer.js.map +1 -0
  195. package/dist/src/server/index.d.ts +8 -0
  196. package/dist/src/server/index.d.ts.map +1 -0
  197. package/dist/src/server/index.js +8 -0
  198. package/dist/src/server/index.js.map +1 -0
  199. package/dist/src/server/mcp-server.d.ts +59 -0
  200. package/dist/src/server/mcp-server.d.ts.map +1 -0
  201. package/dist/src/server/mcp-server.js +140 -0
  202. package/dist/src/server/mcp-server.js.map +1 -0
  203. package/dist/src/server/server-config.d.ts +41 -0
  204. package/dist/src/server/server-config.d.ts.map +1 -0
  205. package/dist/src/server/server-config.js +80 -0
  206. package/dist/src/server/server-config.js.map +1 -0
  207. package/dist/src/server/session-store.d.ts +148 -0
  208. package/dist/src/server/session-store.d.ts.map +1 -0
  209. package/dist/src/server/session-store.js +224 -0
  210. package/dist/src/server/session-store.js.map +1 -0
  211. package/dist/src/shared/errors/browser-session.error.d.ts +102 -0
  212. package/dist/src/shared/errors/browser-session.error.d.ts.map +1 -0
  213. package/dist/src/shared/errors/browser-session.error.js +153 -0
  214. package/dist/src/shared/errors/browser-session.error.js.map +1 -0
  215. package/dist/src/shared/errors/index.d.ts +5 -0
  216. package/dist/src/shared/errors/index.d.ts.map +1 -0
  217. package/dist/src/shared/errors/index.js +5 -0
  218. package/dist/src/shared/errors/index.js.map +1 -0
  219. package/dist/src/shared/services/dom-transformer.service.d.ts +71 -0
  220. package/dist/src/shared/services/dom-transformer.service.d.ts.map +1 -0
  221. package/dist/src/shared/services/dom-transformer.service.js +190 -0
  222. package/dist/src/shared/services/dom-transformer.service.js.map +1 -0
  223. package/dist/src/shared/services/index.d.ts +7 -0
  224. package/dist/src/shared/services/index.d.ts.map +1 -0
  225. package/dist/src/shared/services/index.js +7 -0
  226. package/dist/src/shared/services/index.js.map +1 -0
  227. package/dist/src/shared/services/logging.service.d.ts +154 -0
  228. package/dist/src/shared/services/logging.service.d.ts.map +1 -0
  229. package/dist/src/shared/services/logging.service.js +267 -0
  230. package/dist/src/shared/services/logging.service.js.map +1 -0
  231. package/dist/src/shared/services/selector-builder.service.d.ts +53 -0
  232. package/dist/src/shared/services/selector-builder.service.d.ts.map +1 -0
  233. package/dist/src/shared/services/selector-builder.service.js +240 -0
  234. package/dist/src/shared/services/selector-builder.service.js.map +1 -0
  235. package/dist/src/shared/types/base.types.d.ts +45 -0
  236. package/dist/src/shared/types/base.types.d.ts.map +1 -0
  237. package/dist/src/shared/types/base.types.js +8 -0
  238. package/dist/src/shared/types/base.types.js.map +1 -0
  239. package/dist/src/shared/types/index.d.ts +5 -0
  240. package/dist/src/shared/types/index.d.ts.map +1 -0
  241. package/dist/src/shared/types/index.js +5 -0
  242. package/dist/src/shared/types/index.js.map +1 -0
  243. package/dist/src/snapshot/element-resolver.d.ts +102 -0
  244. package/dist/src/snapshot/element-resolver.d.ts.map +1 -0
  245. package/dist/src/snapshot/element-resolver.js +379 -0
  246. package/dist/src/snapshot/element-resolver.js.map +1 -0
  247. package/dist/src/snapshot/extractors/attribute-extractor.d.ts +40 -0
  248. package/dist/src/snapshot/extractors/attribute-extractor.d.ts.map +1 -0
  249. package/dist/src/snapshot/extractors/attribute-extractor.js +237 -0
  250. package/dist/src/snapshot/extractors/attribute-extractor.js.map +1 -0
  251. package/dist/src/snapshot/extractors/ax-extractor.d.ts +36 -0
  252. package/dist/src/snapshot/extractors/ax-extractor.d.ts.map +1 -0
  253. package/dist/src/snapshot/extractors/ax-extractor.js +144 -0
  254. package/dist/src/snapshot/extractors/ax-extractor.js.map +1 -0
  255. package/dist/src/snapshot/extractors/dom-extractor.d.ts +21 -0
  256. package/dist/src/snapshot/extractors/dom-extractor.d.ts.map +1 -0
  257. package/dist/src/snapshot/extractors/dom-extractor.js +137 -0
  258. package/dist/src/snapshot/extractors/dom-extractor.js.map +1 -0
  259. package/dist/src/snapshot/extractors/grouping-resolver.d.ts +39 -0
  260. package/dist/src/snapshot/extractors/grouping-resolver.d.ts.map +1 -0
  261. package/dist/src/snapshot/extractors/grouping-resolver.js +260 -0
  262. package/dist/src/snapshot/extractors/grouping-resolver.js.map +1 -0
  263. package/dist/src/snapshot/extractors/index.d.ts +19 -0
  264. package/dist/src/snapshot/extractors/index.d.ts.map +1 -0
  265. package/dist/src/snapshot/extractors/index.js +27 -0
  266. package/dist/src/snapshot/extractors/index.js.map +1 -0
  267. package/dist/src/snapshot/extractors/label-resolver.d.ts +44 -0
  268. package/dist/src/snapshot/extractors/label-resolver.d.ts.map +1 -0
  269. package/dist/src/snapshot/extractors/label-resolver.js +173 -0
  270. package/dist/src/snapshot/extractors/label-resolver.js.map +1 -0
  271. package/dist/src/snapshot/extractors/layout-extractor.d.ts +52 -0
  272. package/dist/src/snapshot/extractors/layout-extractor.d.ts.map +1 -0
  273. package/dist/src/snapshot/extractors/layout-extractor.js +382 -0
  274. package/dist/src/snapshot/extractors/layout-extractor.js.map +1 -0
  275. package/dist/src/snapshot/extractors/locator-builder.d.ts +27 -0
  276. package/dist/src/snapshot/extractors/locator-builder.d.ts.map +1 -0
  277. package/dist/src/snapshot/extractors/locator-builder.js +223 -0
  278. package/dist/src/snapshot/extractors/locator-builder.js.map +1 -0
  279. package/dist/src/snapshot/extractors/region-resolver.d.ts +31 -0
  280. package/dist/src/snapshot/extractors/region-resolver.d.ts.map +1 -0
  281. package/dist/src/snapshot/extractors/region-resolver.js +168 -0
  282. package/dist/src/snapshot/extractors/region-resolver.js.map +1 -0
  283. package/dist/src/snapshot/extractors/state-extractor.d.ts +30 -0
  284. package/dist/src/snapshot/extractors/state-extractor.d.ts.map +1 -0
  285. package/dist/src/snapshot/extractors/state-extractor.js +181 -0
  286. package/dist/src/snapshot/extractors/state-extractor.js.map +1 -0
  287. package/dist/src/snapshot/extractors/types.d.ts +213 -0
  288. package/dist/src/snapshot/extractors/types.d.ts.map +1 -0
  289. package/dist/src/snapshot/extractors/types.js +145 -0
  290. package/dist/src/snapshot/extractors/types.js.map +1 -0
  291. package/dist/src/snapshot/index.d.ts +14 -0
  292. package/dist/src/snapshot/index.d.ts.map +1 -0
  293. package/dist/src/snapshot/index.js +18 -0
  294. package/dist/src/snapshot/index.js.map +1 -0
  295. package/dist/src/snapshot/snapshot-compiler.d.ts +73 -0
  296. package/dist/src/snapshot/snapshot-compiler.d.ts.map +1 -0
  297. package/dist/src/snapshot/snapshot-compiler.js +763 -0
  298. package/dist/src/snapshot/snapshot-compiler.js.map +1 -0
  299. package/dist/src/snapshot/snapshot-health.d.ts +97 -0
  300. package/dist/src/snapshot/snapshot-health.d.ts.map +1 -0
  301. package/dist/src/snapshot/snapshot-health.js +214 -0
  302. package/dist/src/snapshot/snapshot-health.js.map +1 -0
  303. package/dist/src/snapshot/snapshot-store.d.ts +137 -0
  304. package/dist/src/snapshot/snapshot-store.d.ts.map +1 -0
  305. package/dist/src/snapshot/snapshot-store.js +202 -0
  306. package/dist/src/snapshot/snapshot-store.js.map +1 -0
  307. package/dist/src/snapshot/snapshot.types.d.ts +250 -0
  308. package/dist/src/snapshot/snapshot.types.d.ts.map +1 -0
  309. package/dist/src/snapshot/snapshot.types.js +54 -0
  310. package/dist/src/snapshot/snapshot.types.js.map +1 -0
  311. package/dist/src/state/actionables-filter.d.ts +47 -0
  312. package/dist/src/state/actionables-filter.d.ts.map +1 -0
  313. package/dist/src/state/actionables-filter.js +173 -0
  314. package/dist/src/state/actionables-filter.js.map +1 -0
  315. package/dist/src/state/atoms-extractor.d.ts +23 -0
  316. package/dist/src/state/atoms-extractor.d.ts.map +1 -0
  317. package/dist/src/state/atoms-extractor.js +160 -0
  318. package/dist/src/state/atoms-extractor.js.map +1 -0
  319. package/dist/src/state/constants.d.ts +125 -0
  320. package/dist/src/state/constants.d.ts.map +1 -0
  321. package/dist/src/state/constants.js +131 -0
  322. package/dist/src/state/constants.js.map +1 -0
  323. package/dist/src/state/diff-engine.d.ts +23 -0
  324. package/dist/src/state/diff-engine.d.ts.map +1 -0
  325. package/dist/src/state/diff-engine.js +475 -0
  326. package/dist/src/state/diff-engine.js.map +1 -0
  327. package/dist/src/state/element-identity.d.ts +75 -0
  328. package/dist/src/state/element-identity.d.ts.map +1 -0
  329. package/dist/src/state/element-identity.js +129 -0
  330. package/dist/src/state/element-identity.js.map +1 -0
  331. package/dist/src/state/element-ref.types.d.ts +135 -0
  332. package/dist/src/state/element-ref.types.d.ts.map +1 -0
  333. package/dist/src/state/element-ref.types.js +13 -0
  334. package/dist/src/state/element-ref.types.js.map +1 -0
  335. package/dist/src/state/element-registry.d.ts +118 -0
  336. package/dist/src/state/element-registry.d.ts.map +1 -0
  337. package/dist/src/state/element-registry.js +222 -0
  338. package/dist/src/state/element-registry.js.map +1 -0
  339. package/dist/src/state/health.types.d.ts +93 -0
  340. package/dist/src/state/health.types.d.ts.map +1 -0
  341. package/dist/src/state/health.types.js +56 -0
  342. package/dist/src/state/health.types.js.map +1 -0
  343. package/dist/src/state/layer-detector.d.ts +23 -0
  344. package/dist/src/state/layer-detector.d.ts.map +1 -0
  345. package/dist/src/state/layer-detector.js +368 -0
  346. package/dist/src/state/layer-detector.js.map +1 -0
  347. package/dist/src/state/locator-generator.d.ts +21 -0
  348. package/dist/src/state/locator-generator.d.ts.map +1 -0
  349. package/dist/src/state/locator-generator.js +137 -0
  350. package/dist/src/state/locator-generator.js.map +1 -0
  351. package/dist/src/state/state-manager.d.ts +104 -0
  352. package/dist/src/state/state-manager.d.ts.map +1 -0
  353. package/dist/src/state/state-manager.js +618 -0
  354. package/dist/src/state/state-manager.js.map +1 -0
  355. package/dist/src/state/state-renderer.d.ts +63 -0
  356. package/dist/src/state/state-renderer.d.ts.map +1 -0
  357. package/dist/src/state/state-renderer.js +340 -0
  358. package/dist/src/state/state-renderer.js.map +1 -0
  359. package/dist/src/state/types.d.ts +353 -0
  360. package/dist/src/state/types.d.ts.map +1 -0
  361. package/dist/src/state/types.js +8 -0
  362. package/dist/src/state/types.js.map +1 -0
  363. package/dist/src/tools/browser-tools.d.ts +140 -0
  364. package/dist/src/tools/browser-tools.d.ts.map +1 -0
  365. package/dist/src/tools/browser-tools.js +657 -0
  366. package/dist/src/tools/browser-tools.js.map +1 -0
  367. package/dist/src/tools/errors.d.ts +63 -0
  368. package/dist/src/tools/errors.d.ts.map +1 -0
  369. package/dist/src/tools/errors.js +86 -0
  370. package/dist/src/tools/errors.js.map +1 -0
  371. package/dist/src/tools/execute-action.d.ts +135 -0
  372. package/dist/src/tools/execute-action.d.ts.map +1 -0
  373. package/dist/src/tools/execute-action.js +579 -0
  374. package/dist/src/tools/execute-action.js.map +1 -0
  375. package/dist/src/tools/form-tools.d.ts +109 -0
  376. package/dist/src/tools/form-tools.d.ts.map +1 -0
  377. package/dist/src/tools/form-tools.js +434 -0
  378. package/dist/src/tools/form-tools.js.map +1 -0
  379. package/dist/src/tools/index.d.ts +11 -0
  380. package/dist/src/tools/index.d.ts.map +1 -0
  381. package/dist/src/tools/index.js +49 -0
  382. package/dist/src/tools/index.js.map +1 -0
  383. package/dist/src/tools/response-builder.d.ts +98 -0
  384. package/dist/src/tools/response-builder.d.ts.map +1 -0
  385. package/dist/src/tools/response-builder.js +219 -0
  386. package/dist/src/tools/response-builder.js.map +1 -0
  387. package/dist/src/tools/tool-schemas.d.ts +2482 -0
  388. package/dist/src/tools/tool-schemas.d.ts.map +1 -0
  389. package/dist/src/tools/tool-schemas.js +606 -0
  390. package/dist/src/tools/tool-schemas.js.map +1 -0
  391. package/dist/vitest.config.d.ts +3 -0
  392. package/dist/vitest.config.d.ts.map +1 -0
  393. package/dist/vitest.config.js +16 -0
  394. package/dist/vitest.config.js.map +1 -0
  395. package/package.json +76 -0
@@ -0,0 +1,63 @@
1
+ /**
2
+ * State Renderer
3
+ *
4
+ * Converts internal state representation (StateResponse) into a dense XML format
5
+ * optimized for LLM context windows.
6
+ *
7
+ * In diff mode, only renders changed elements (added + changed) to minimize tokens.
8
+ * In baseline mode, renders all actionables.
9
+ */
10
+ import type { StateResponseObject, ActionableInfo, RenderOptions } from './types.js';
11
+ import type { DOMObservation, ObservationGroups } from '../observation/observation.types.js';
12
+ /**
13
+ * Trim a region's elements to head + tail, dropping the middle.
14
+ *
15
+ * @param elements - Full list of actionable elements in a region
16
+ * @param limits - How many to keep from the start (head) and end (tail)
17
+ * @returns The kept elements and count of trimmed elements
18
+ */
19
+ export declare function trimRegionElements(elements: ActionableInfo[], limits: {
20
+ head: number;
21
+ tail: number;
22
+ }): {
23
+ kept: ActionableInfo[];
24
+ trimmedCount: number;
25
+ };
26
+ /**
27
+ * Render a StateResponseObject as a dense XML string.
28
+ *
29
+ * @param response - Internal state response object
30
+ * @param options - Optional rendering options (e.g., trimRegions)
31
+ * @returns Dense XML string
32
+ */
33
+ export declare function renderStateXml(response: StateResponseObject, options?: RenderOptions): string;
34
+ /**
35
+ * Render observations section if there are any significant observations.
36
+ *
37
+ * Output format (flattened, no wrapper elements):
38
+ * <observations>
39
+ * <appeared when="action" eid="dialog-001" role="dialog">...</appeared>
40
+ * <appeared when="prior" eid="toast-002" role="alert" age_ms="1500">...</appeared>
41
+ * </observations>
42
+ */
43
+ export declare function renderObservations(observations: ObservationGroups): string[];
44
+ /**
45
+ * Render a single observation as XML lines.
46
+ *
47
+ * Output format:
48
+ * <appeared when="action" eid="dialog-001" role="dialog" delay_ms="200">
49
+ * <heading eid="dlg-title">My Cart</heading>
50
+ * <text>Your cart is empty.</text>
51
+ * <button eid="btn-shop">Continue Shopping</button>
52
+ * </appeared>
53
+ *
54
+ * Or without children:
55
+ * <appeared when="action" eid="toast-001" role="alert">Error message</appeared>
56
+ *
57
+ * @param obs - The observation to render
58
+ * @param when - 'action' for duringAction, 'prior' for sincePrevious
59
+ * @param indent - Number of spaces for indentation
60
+ * @returns Array of XML lines
61
+ */
62
+ export declare function renderSingleObservation(obs: DOMObservation, when: 'action' | 'prior', indent: number): string[];
63
+ //# sourceMappingURL=state-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-renderer.d.ts","sourceRoot":"","sources":["../../../src/state/state-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AA2B7F;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,cAAc,EAAE,EAC1B,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CASlD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAiG7F;AAkJD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAwB5E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,QAAQ,GAAG,OAAO,EACxB,MAAM,EAAE,MAAM,GACb,MAAM,EAAE,CA2BV"}
@@ -0,0 +1,340 @@
1
+ /**
2
+ * State Renderer
3
+ *
4
+ * Converts internal state representation (StateResponse) into a dense XML format
5
+ * optimized for LLM context windows.
6
+ *
7
+ * In diff mode, only renders changed elements (added + changed) to minimize tokens.
8
+ * In baseline mode, renders all actionables.
9
+ */
10
+ import { escapeXml } from '../lib/text-utils.js';
11
+ // ============================================================================
12
+ // Region Trimming Configuration
13
+ // ============================================================================
14
+ /** When 'false', disables region trimming globally regardless of per-tool options. Default: enabled. */
15
+ const TRIM_ENABLED = process.env.AWI_TRIM_REGIONS !== 'false';
16
+ /**
17
+ * Per-region limits for trimming actionable elements in snapshot responses.
18
+ * For each region, keep the first `head` and last `tail` elements; trim the middle.
19
+ */
20
+ const REGION_TRIM_LIMITS = {
21
+ header: { head: 3, tail: 2 },
22
+ nav: { head: 3, tail: 2 },
23
+ main: { head: 5, tail: 5 },
24
+ aside: { head: 3, tail: 2 },
25
+ footer: { head: 2, tail: 2 },
26
+ dialog: { head: 5, tail: 5 },
27
+ search: { head: 2, tail: 2 },
28
+ form: { head: 5, tail: 3 },
29
+ };
30
+ const DEFAULT_TRIM_LIMITS = { head: 5, tail: 3 };
31
+ /**
32
+ * Trim a region's elements to head + tail, dropping the middle.
33
+ *
34
+ * @param elements - Full list of actionable elements in a region
35
+ * @param limits - How many to keep from the start (head) and end (tail)
36
+ * @returns The kept elements and count of trimmed elements
37
+ */
38
+ export function trimRegionElements(elements, limits) {
39
+ const total = limits.head + limits.tail;
40
+ if (elements.length <= total)
41
+ return { kept: elements, trimmedCount: 0 };
42
+ const head = elements.slice(0, limits.head);
43
+ const tail = limits.tail > 0 ? elements.slice(-limits.tail) : [];
44
+ const trimmedCount = elements.length - total;
45
+ return { kept: [...head, ...tail], trimmedCount };
46
+ }
47
+ /**
48
+ * Render a StateResponseObject as a dense XML string.
49
+ *
50
+ * @param response - Internal state response object
51
+ * @param options - Optional rendering options (e.g., trimRegions)
52
+ * @returns Dense XML string
53
+ */
54
+ export function renderStateXml(response, options) {
55
+ const { state, diff, actionables, atoms } = response;
56
+ const lines = [];
57
+ // 1. Root and Meta
58
+ lines.push(`<state step="${state.step}" title="${escapeXml(state.doc.title)}" url="${escapeXml(state.doc.url)}">`);
59
+ const view = `${atoms.viewport.w}x${atoms.viewport.h}`;
60
+ const scroll = `${atoms.scroll.x},${atoms.scroll.y}`;
61
+ lines.push(` <meta view="${view}" scroll="${scroll}" layer="${state.layer.active}" />`);
62
+ // 2. Diff/Baseline indicator
63
+ if (diff.mode === 'baseline') {
64
+ lines.push(` <baseline reason="${diff.reason}"${diff.error ? ` error="${escapeXml(diff.error)}"` : ''} />`);
65
+ }
66
+ else {
67
+ const d = diff;
68
+ // Build flattened diff attributes
69
+ const diffAttrs = ['type="mutation"'];
70
+ if (d.diff.doc) {
71
+ diffAttrs.push(`nav="${d.diff.doc.nav_type}"`);
72
+ }
73
+ if (d.diff.actionables.added.length > 0) {
74
+ diffAttrs.push(`added="${d.diff.actionables.added.length}"`);
75
+ }
76
+ if (d.diff.actionables.removed.length > 0) {
77
+ diffAttrs.push(`removed="${d.diff.actionables.removed.length}"`);
78
+ }
79
+ // Check if there are mutations to render inline
80
+ const { textChanged, statusAppeared } = d.diff.mutations;
81
+ const hasMutations = textChanged.length > 0 || statusAppeared.length > 0;
82
+ if (hasMutations) {
83
+ lines.push(` <diff ${diffAttrs.join(' ')}>`);
84
+ // Render mutations directly without wrapper
85
+ for (const change of textChanged) {
86
+ const from = escapeXml(change.from);
87
+ const to = escapeXml(change.to);
88
+ lines.push(` <text-changed id="${change.eid}">${from} → ${to}</text-changed>`);
89
+ }
90
+ for (const status of statusAppeared) {
91
+ const text = escapeXml(status.text);
92
+ lines.push(` <status id="${status.eid}" role="${status.role}">${text}</status>`);
93
+ }
94
+ lines.push(` </diff>`);
95
+ }
96
+ else {
97
+ lines.push(` <diff ${diffAttrs.join(' ')} />`);
98
+ }
99
+ }
100
+ // 3. Observations (if present)
101
+ if (response.observations) {
102
+ const obsLines = renderObservations(response.observations);
103
+ if (obsLines.length > 0) {
104
+ lines.push(...obsLines);
105
+ }
106
+ }
107
+ // 4. Actionables (Grouped by Region)
108
+ // In diff mode: only render added/changed elements (unless in overlay layer)
109
+ // In baseline mode: render all elements
110
+ const activeLayer = state.layer.active;
111
+ const filteredActionables = filterActionablesForMode(actionables, diff, activeLayer);
112
+ const regions = groupActionablesByRegion(filteredActionables);
113
+ const shouldTrim = TRIM_ENABLED && options?.trimRegions === true;
114
+ for (const [regionName, items] of Object.entries(regions)) {
115
+ const limits = REGION_TRIM_LIMITS[regionName] ?? DEFAULT_TRIM_LIMITS;
116
+ const { kept, trimmedCount } = shouldTrim
117
+ ? trimRegionElements(items, limits)
118
+ : { kept: items, trimmedCount: 0 };
119
+ lines.push(` <region name="${regionName}">`);
120
+ for (const item of kept) {
121
+ lines.push(` ${renderActionable(item, diff)}`);
122
+ }
123
+ if (trimmedCount > 0) {
124
+ lines.push(` <!-- trimmed ${trimmedCount} items. Use find_elements with region=${regionName} to see all -->`);
125
+ }
126
+ lines.push(` </region>`);
127
+ }
128
+ lines.push(`</state>`);
129
+ return lines.join('\n');
130
+ }
131
+ /**
132
+ * Overlay layer types that should always show all actionables.
133
+ * When in these layers, we show all elements regardless of diff mode
134
+ * because the user needs to see the overlay content to interact with it.
135
+ *
136
+ * These values correspond to non-'main' values of LayerDetectionResult.active.
137
+ * See layer-detector.ts for detection logic.
138
+ */
139
+ const OVERLAY_LAYERS = new Set(['modal', 'popover', 'drawer']);
140
+ /**
141
+ * Filter actionables based on diff mode and active layer.
142
+ *
143
+ * In baseline mode: return all actionables
144
+ * In diff mode with overlay layer: return all actionables (user needs to see overlay content)
145
+ * In diff mode with main layer: return only added elements + elements with property changes
146
+ * (visibility, enabled, checked, selected, expanded, focused, value, label)
147
+ */
148
+ function filterActionablesForMode(actionables, diff, activeLayer) {
149
+ // Baseline mode: return all
150
+ if (diff.mode === 'baseline') {
151
+ return actionables;
152
+ }
153
+ // Overlay layers (modal, popover, drawer): always show all actionables
154
+ // The user needs to see the overlay content to interact with it
155
+ if (OVERLAY_LAYERS.has(activeLayer)) {
156
+ return actionables;
157
+ }
158
+ // Diff mode with main layer: only include added and changed elements
159
+ const d = diff;
160
+ const addedSet = new Set(d.diff.actionables.added);
161
+ const changedSet = new Set(d.diff.actionables.changed.map((c) => c.eid));
162
+ return actionables.filter((item) => addedSet.has(item.eid) || changedSet.has(item.eid));
163
+ }
164
+ /**
165
+ * Render a single actionable element as XML.
166
+ * In diff mode, can optionally mark elements as 'new' if they were just added.
167
+ */
168
+ function renderActionable(item, _diff) {
169
+ const tag = mapKindToTag(item.kind);
170
+ const attrs = [`id="${item.eid}"`];
171
+ // State flags (descriptive names with boolean values)
172
+ if (!item.ena)
173
+ attrs.push(`enabled="false"`);
174
+ if (!item.vis)
175
+ attrs.push(`visible="false"`);
176
+ if (item.chk)
177
+ attrs.push(`checked="true"`);
178
+ if (item.sel)
179
+ attrs.push(`selected="true"`);
180
+ if (item.exp)
181
+ attrs.push(`expanded="true"`);
182
+ if (item.foc)
183
+ attrs.push(`focused="true"`);
184
+ // Attributes
185
+ if (item.val_hint)
186
+ attrs.push(`val="${escapeXml(item.val_hint)}"`);
187
+ if (item.type)
188
+ attrs.push(`type="${escapeXml(item.type)}"`);
189
+ if (item.href)
190
+ attrs.push(`href="${escapeXml(item.href)}"`);
191
+ const attrStr = attrs.length > 0 ? ' ' + attrs.join(' ') : '';
192
+ const content = escapeXml(item.name);
193
+ return `<${tag}${attrStr}>${content}</${tag}>`;
194
+ }
195
+ /**
196
+ * Map semantic kind to short XML tag names.
197
+ */
198
+ function mapKindToTag(kind) {
199
+ switch (kind.toLowerCase()) {
200
+ case 'button':
201
+ return 'btn';
202
+ case 'link':
203
+ return 'link';
204
+ case 'textbox':
205
+ return 'inp';
206
+ case 'checkbox':
207
+ return 'chk';
208
+ case 'radio':
209
+ return 'rad';
210
+ case 'combobox':
211
+ return 'sel';
212
+ case 'image':
213
+ return 'img';
214
+ case 'heading':
215
+ return 'h';
216
+ default:
217
+ return 'elt';
218
+ }
219
+ }
220
+ /**
221
+ * Group actionables by their semantic region.
222
+ */
223
+ function groupActionablesByRegion(actionables) {
224
+ const regions = {};
225
+ for (const item of actionables) {
226
+ // Use semantic region, fallback to 'main' if unknown
227
+ const region = item.ctx.region === 'unknown' ? 'main' : item.ctx.region;
228
+ if (!regions[region])
229
+ regions[region] = [];
230
+ regions[region].push(item);
231
+ }
232
+ return regions;
233
+ }
234
+ // ============================================================================
235
+ // Observation Rendering
236
+ // ============================================================================
237
+ /**
238
+ * Deduplicate observations by tag + text content.
239
+ * When multiple observations have the same tag and text (e.g., nested wrapper divs),
240
+ * keep only the one with the highest significance score.
241
+ *
242
+ * This prevents noisy duplicate entries from nested DOM structures like:
243
+ * <div class="toast"><div class="wrapper"><span>message</span></div></div>
244
+ * where multiple divs would all report the same text content.
245
+ */
246
+ function deduplicateObservations(observations) {
247
+ if (observations.length <= 1) {
248
+ return observations;
249
+ }
250
+ // Group by tag + truncated text (first 50 chars to handle slight variations)
251
+ const byContent = new Map();
252
+ for (const obs of observations) {
253
+ const textKey = obs.content.text.substring(0, 50).trim();
254
+ const key = `${obs.content.tag}:${textKey}`;
255
+ const existing = byContent.get(key);
256
+ if (!existing || obs.significance > existing.significance) {
257
+ // Keep the observation with higher significance
258
+ byContent.set(key, obs);
259
+ }
260
+ }
261
+ return Array.from(byContent.values());
262
+ }
263
+ /**
264
+ * Render observations section if there are any significant observations.
265
+ *
266
+ * Output format (flattened, no wrapper elements):
267
+ * <observations>
268
+ * <appeared when="action" eid="dialog-001" role="dialog">...</appeared>
269
+ * <appeared when="prior" eid="toast-002" role="alert" age_ms="1500">...</appeared>
270
+ * </observations>
271
+ */
272
+ export function renderObservations(observations) {
273
+ const { duringAction, sincePrevious } = observations;
274
+ if (duringAction.length === 0 && sincePrevious.length === 0) {
275
+ return [];
276
+ }
277
+ // Deduplicate observations to avoid noisy duplicates from nested elements
278
+ const dedupedDuringAction = deduplicateObservations(duringAction);
279
+ const dedupedSincePrevious = deduplicateObservations(sincePrevious);
280
+ const lines = [];
281
+ lines.push(' <observations>');
282
+ // Render all observations with when="action" or when="prior" attribute
283
+ for (const obs of dedupedDuringAction) {
284
+ lines.push(...renderSingleObservation(obs, 'action', 4));
285
+ }
286
+ for (const obs of dedupedSincePrevious) {
287
+ lines.push(...renderSingleObservation(obs, 'prior', 4));
288
+ }
289
+ lines.push(' </observations>');
290
+ return lines;
291
+ }
292
+ /**
293
+ * Render a single observation as XML lines.
294
+ *
295
+ * Output format:
296
+ * <appeared when="action" eid="dialog-001" role="dialog" delay_ms="200">
297
+ * <heading eid="dlg-title">My Cart</heading>
298
+ * <text>Your cart is empty.</text>
299
+ * <button eid="btn-shop">Continue Shopping</button>
300
+ * </appeared>
301
+ *
302
+ * Or without children:
303
+ * <appeared when="action" eid="toast-001" role="alert">Error message</appeared>
304
+ *
305
+ * @param obs - The observation to render
306
+ * @param when - 'action' for duringAction, 'prior' for sincePrevious
307
+ * @param indent - Number of spaces for indentation
308
+ * @returns Array of XML lines
309
+ */
310
+ export function renderSingleObservation(obs, when, indent) {
311
+ const pad = ' '.repeat(indent);
312
+ const lines = [];
313
+ // Build attributes (flattened, no nested elements)
314
+ const attrs = [`when="${when}"`];
315
+ if (obs.eid)
316
+ attrs.push(`eid="${obs.eid}"`);
317
+ if (obs.content.role)
318
+ attrs.push(`role="${obs.content.role}"`);
319
+ if (obs.delayMs)
320
+ attrs.push(`delay_ms="${obs.delayMs}"`);
321
+ if (obs.ageMs)
322
+ attrs.push(`age_ms="${obs.ageMs}"`);
323
+ if (obs.signals.wasShortLived)
324
+ attrs.push('transient="true"');
325
+ const hasChildren = obs.children && obs.children.length > 0;
326
+ if (hasChildren) {
327
+ lines.push(`${pad}<${obs.type} ${attrs.join(' ')}>`);
328
+ for (const child of obs.children) {
329
+ const childAttrs = child.eid ? ` eid="${child.eid}"` : '';
330
+ lines.push(`${pad} <${child.tag}${childAttrs}>${escapeXml(child.text)}</${child.tag}>`);
331
+ }
332
+ lines.push(`${pad}</${obs.type}>`);
333
+ }
334
+ else {
335
+ const text = escapeXml(obs.content.text);
336
+ lines.push(`${pad}<${obs.type} ${attrs.join(' ')}>${text}</${obs.type}>`);
337
+ }
338
+ return lines;
339
+ }
340
+ //# sourceMappingURL=state-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-renderer.js","sourceRoot":"","sources":["../../../src/state/state-renderer.ts"],"names":[],"mappings":"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"}