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,53 @@
1
+ /**
2
+ * Selector Builder Service
3
+ *
4
+ * Generates CSS, XPath, and accessibility selectors for DOM elements
5
+ */
6
+ import type { CdpClient } from '../../cdp/cdp-client.interface.js';
7
+ import type { Selectors } from '../types/index.js';
8
+ export declare class SelectorBuilderService {
9
+ private readonly cdpClient;
10
+ constructor(cdpClient: CdpClient);
11
+ /**
12
+ * Build comprehensive selectors for a given node
13
+ */
14
+ buildSelectors(nodeId: number, _frameId: string): Promise<Selectors>;
15
+ /**
16
+ * Build a CSS selector for an element
17
+ * Strategy: Use ID if available, otherwise build a path using classes/nth-child
18
+ */
19
+ private buildCssSelector;
20
+ /**
21
+ * Build a CSS path using tag names and nth-child
22
+ */
23
+ private buildCssPath;
24
+ /**
25
+ * Build an XPath selector for an element
26
+ */
27
+ private buildXPathSelector;
28
+ /**
29
+ * Build an accessibility selector (role-based)
30
+ */
31
+ private buildAccessibilitySelector;
32
+ /**
33
+ * Get node description from CDP
34
+ */
35
+ private getNodeDescription;
36
+ /**
37
+ * Get parent node ID
38
+ */
39
+ private getParentNode;
40
+ /**
41
+ * Get the nth-child position of a node among its siblings
42
+ */
43
+ private getNthChildPosition;
44
+ /**
45
+ * Check if a CSS selector uniquely identifies a single element
46
+ */
47
+ private isSelectorUnique;
48
+ /**
49
+ * Parse CDP attributes array to key-value pairs
50
+ */
51
+ private parseAttributes;
52
+ }
53
+ //# sourceMappingURL=selector-builder.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector-builder.service.d.ts","sourceRoot":"","sources":["../../../../src/shared/services/selector-builder.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAWnD,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAEjD;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAU1E;;;OAGG;YACW,gBAAgB;IA8B9B;;OAEG;YACW,YAAY;IAmC1B;;OAEG;YACW,kBAAkB;IAsChC;;OAEG;YACW,0BAA0B;IAyBxC;;OAEG;YACW,kBAAkB;IAMhC;;OAEG;YACW,aAAa;IAmC3B;;OAEG;YACW,mBAAmB;IAiCjC;;OAEG;YACW,gBAAgB;IAe9B;;OAEG;IACH,OAAO,CAAC,eAAe;CAOxB"}
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Selector Builder Service
3
+ *
4
+ * Generates CSS, XPath, and accessibility selectors for DOM elements
5
+ */
6
+ export class SelectorBuilderService {
7
+ cdpClient;
8
+ constructor(cdpClient) {
9
+ this.cdpClient = cdpClient;
10
+ }
11
+ /**
12
+ * Build comprehensive selectors for a given node
13
+ */
14
+ async buildSelectors(nodeId, _frameId) {
15
+ const [css, xpath, ax] = await Promise.all([
16
+ this.buildCssSelector(nodeId),
17
+ this.buildXPathSelector(nodeId),
18
+ this.buildAccessibilitySelector(nodeId),
19
+ ]);
20
+ return { css, xpath, ax };
21
+ }
22
+ /**
23
+ * Build a CSS selector for an element
24
+ * Strategy: Use ID if available, otherwise build a path using classes/nth-child
25
+ */
26
+ async buildCssSelector(nodeId) {
27
+ try {
28
+ const nodeInfo = await this.getNodeDescription(nodeId);
29
+ const attributes = this.parseAttributes(nodeInfo.node.attributes ?? []);
30
+ // Strategy 1: Use ID (most specific)
31
+ if (attributes.id) {
32
+ return `#${attributes.id}`;
33
+ }
34
+ // Strategy 2: Use unique class combination
35
+ if (attributes.class) {
36
+ const classes = attributes.class.split(/\s+/).filter(Boolean);
37
+ if (classes.length > 0) {
38
+ const classSelector = `.${classes.join('.')}`;
39
+ const isUnique = await this.isSelectorUnique(classSelector);
40
+ if (isUnique) {
41
+ return classSelector;
42
+ }
43
+ }
44
+ }
45
+ // Strategy 3: Build a path using tag names and nth-child
46
+ const path = await this.buildCssPath(nodeId);
47
+ return path;
48
+ }
49
+ catch {
50
+ return undefined;
51
+ }
52
+ }
53
+ /**
54
+ * Build a CSS path using tag names and nth-child
55
+ */
56
+ async buildCssPath(nodeId) {
57
+ const segments = [];
58
+ let currentNodeId = nodeId;
59
+ try {
60
+ while (currentNodeId) {
61
+ const nodeInfo = await this.getNodeDescription(currentNodeId);
62
+ const tagName = nodeInfo.node.localName.toLowerCase();
63
+ // Get the nth-child position
64
+ const position = await this.getNthChildPosition(currentNodeId);
65
+ if (tagName === 'html') {
66
+ segments.unshift('html');
67
+ break;
68
+ }
69
+ if (position > 1) {
70
+ segments.unshift(`${tagName}:nth-child(${position})`);
71
+ }
72
+ else {
73
+ segments.unshift(tagName);
74
+ }
75
+ // Get parent node
76
+ const parent = await this.getParentNode(currentNodeId);
77
+ if (!parent)
78
+ break;
79
+ currentNodeId = parent;
80
+ }
81
+ return segments.join(' > ');
82
+ }
83
+ catch {
84
+ return 'body';
85
+ }
86
+ }
87
+ /**
88
+ * Build an XPath selector for an element
89
+ */
90
+ async buildXPathSelector(nodeId) {
91
+ try {
92
+ const segments = [];
93
+ let currentNodeId = nodeId;
94
+ while (currentNodeId) {
95
+ const nodeInfo = await this.getNodeDescription(currentNodeId);
96
+ const tagName = nodeInfo.node.localName.toLowerCase();
97
+ const attributes = this.parseAttributes(nodeInfo.node.attributes ?? []);
98
+ // Use ID if available
99
+ if (attributes.id) {
100
+ segments.unshift(`//*[@id="${attributes.id}"]`);
101
+ break;
102
+ }
103
+ // Get position among siblings
104
+ const position = await this.getNthChildPosition(currentNodeId);
105
+ if (tagName === 'html') {
106
+ segments.unshift('/html');
107
+ break;
108
+ }
109
+ segments.unshift(`/${tagName}[${position}]`);
110
+ // Get parent node
111
+ const parent = await this.getParentNode(currentNodeId);
112
+ if (!parent)
113
+ break;
114
+ currentNodeId = parent;
115
+ }
116
+ return segments.join('');
117
+ }
118
+ catch {
119
+ return undefined;
120
+ }
121
+ }
122
+ /**
123
+ * Build an accessibility selector (role-based)
124
+ */
125
+ async buildAccessibilitySelector(nodeId) {
126
+ try {
127
+ const nodeInfo = await this.getNodeDescription(nodeId);
128
+ const attributes = this.parseAttributes(nodeInfo.node.attributes ?? []);
129
+ const role = attributes.role ?? attributes['aria-role'];
130
+ const label = attributes['aria-label'];
131
+ const name = attributes.name;
132
+ if (role && label) {
133
+ return `role=${role}[label="${label}"]`;
134
+ }
135
+ if (role && name) {
136
+ return `role=${role}[name="${name}"]`;
137
+ }
138
+ if (role) {
139
+ return `role=${role}`;
140
+ }
141
+ return undefined;
142
+ }
143
+ catch {
144
+ return undefined;
145
+ }
146
+ }
147
+ /**
148
+ * Get node description from CDP
149
+ */
150
+ async getNodeDescription(nodeId) {
151
+ return this.cdpClient.send('DOM.describeNode', {
152
+ nodeId,
153
+ });
154
+ }
155
+ /**
156
+ * Get parent node ID
157
+ */
158
+ async getParentNode(nodeId) {
159
+ try {
160
+ const resolved = await this.cdpClient.send('DOM.resolveNode', { nodeId });
161
+ const objectId = resolved.object?.objectId;
162
+ if (!objectId) {
163
+ return null;
164
+ }
165
+ const parentResult = await this.cdpClient.send('Runtime.callFunctionOn', {
166
+ objectId,
167
+ functionDeclaration: 'function() { return this.parentElement; }',
168
+ returnByValue: false,
169
+ });
170
+ const parentObjectId = parentResult.result.objectId;
171
+ if (!parentObjectId) {
172
+ return null;
173
+ }
174
+ const parentNode = await this.cdpClient.send('DOM.describeNode', {
175
+ objectId: parentObjectId,
176
+ });
177
+ return parentNode.node.nodeId;
178
+ }
179
+ catch {
180
+ return null;
181
+ }
182
+ }
183
+ /**
184
+ * Get the nth-child position of a node among its siblings
185
+ */
186
+ async getNthChildPosition(nodeId) {
187
+ try {
188
+ const resolved = await this.cdpClient.send('DOM.resolveNode', { nodeId });
189
+ const objectId = resolved.object?.objectId;
190
+ if (!objectId)
191
+ return 1;
192
+ const result = await this.cdpClient.send('Runtime.callFunctionOn', {
193
+ objectId,
194
+ functionDeclaration: `
195
+ function() {
196
+ if (!this.parentElement) {
197
+ return 1;
198
+ }
199
+ const siblings = Array.from(this.parentElement.children).filter(
200
+ (child) => child.tagName === this.tagName
201
+ );
202
+ const index = siblings.indexOf(this);
203
+ return index === -1 ? 1 : index + 1;
204
+ }
205
+ `,
206
+ returnByValue: true,
207
+ });
208
+ return result.result.value ?? 1;
209
+ }
210
+ catch {
211
+ return 1;
212
+ }
213
+ }
214
+ /**
215
+ * Check if a CSS selector uniquely identifies a single element
216
+ */
217
+ async isSelectorUnique(selector) {
218
+ try {
219
+ const result = await this.cdpClient.send('Runtime.evaluate', {
220
+ expression: `document.querySelectorAll(${JSON.stringify(selector)}).length`,
221
+ returnByValue: true,
222
+ });
223
+ return result.result.value === 1;
224
+ }
225
+ catch {
226
+ return false;
227
+ }
228
+ }
229
+ /**
230
+ * Parse CDP attributes array to key-value pairs
231
+ */
232
+ parseAttributes(attrs) {
233
+ const result = {};
234
+ for (let i = 0; i < attrs.length; i += 2) {
235
+ result[attrs[i]] = attrs[i + 1];
236
+ }
237
+ return result;
238
+ }
239
+ }
240
+ //# sourceMappingURL=selector-builder.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector-builder.service.js","sourceRoot":"","sources":["../../../../src/shared/services/selector-builder.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Shared base types
3
+ *
4
+ * Minimal types kept for the new semantic snapshot system.
5
+ * New types for BaseSnapshot, ReadableNode, etc. will be added here.
6
+ */
7
+ /**
8
+ * Bounding box for element geometry
9
+ */
10
+ export interface BBox {
11
+ x: number;
12
+ y: number;
13
+ w: number;
14
+ h: number;
15
+ }
16
+ /**
17
+ * Network request/response event
18
+ */
19
+ export interface NetworkEvent {
20
+ requestId: string;
21
+ url: string;
22
+ method: string;
23
+ status?: number;
24
+ headers?: Record<string, string>;
25
+ }
26
+ /**
27
+ * Selector types for element location
28
+ */
29
+ export interface Selectors {
30
+ ax?: string;
31
+ css?: string;
32
+ xpath?: string;
33
+ }
34
+ /**
35
+ * DOM tree node representation (used by dom-transformer service)
36
+ */
37
+ export interface DomTreeNode {
38
+ id: string;
39
+ nodeId?: number;
40
+ tag: string;
41
+ attrs?: string[];
42
+ text?: string;
43
+ children?: DomTreeNode[];
44
+ }
45
+ //# sourceMappingURL=base.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/base.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Shared base types
3
+ *
4
+ * Minimal types kept for the new semantic snapshot system.
5
+ * New types for BaseSnapshot, ReadableNode, etc. will be added here.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=base.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.types.js","sourceRoot":"","sources":["../../../../src/shared/types/base.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Shared types re-exports
3
+ */
4
+ export * from './base.types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Shared types re-exports
3
+ */
4
+ export * from './base.types.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Element Resolver
3
+ *
4
+ * Resolves node_id from snapshot to actionable element.
5
+ * Provides CDP-based clicking using backendNodeId for guaranteed uniqueness.
6
+ */
7
+ import type { CdpClient } from '../cdp/cdp-client.interface.js';
8
+ /**
9
+ * Click an element using CDP's backendNodeId directly.
10
+ *
11
+ * This bypasses Playwright's locator system to avoid strict mode violations
12
+ * when multiple elements match the same selector. The backendNodeId is
13
+ * guaranteed unique per DOM element within a CDP session.
14
+ *
15
+ * @param cdp - CDP client instance
16
+ * @param backendNodeId - CDP backend node ID (stable within session)
17
+ * @throws Error if element not found, not visible, or click fails
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // Click using the unique backendNodeId from snapshot
22
+ * await clickByBackendNodeId(cdp, node.backend_node_id);
23
+ * ```
24
+ */
25
+ export declare function clickByBackendNodeId(cdp: CdpClient, backendNodeId: number): Promise<void>;
26
+ /**
27
+ * CDP Input modifier bitmask values.
28
+ * These are ORed together for combined modifiers.
29
+ */
30
+ export declare const MODIFIER_ALT = 1;
31
+ export declare const MODIFIER_CTRL = 2;
32
+ export declare const MODIFIER_META = 4;
33
+ export declare const MODIFIER_SHIFT = 8;
34
+ /**
35
+ * Clear text in the currently focused element using Ctrl+A then Delete.
36
+ *
37
+ * This helper is used by typeByBackendNodeId and can be used directly
38
+ * when typing into an already-focused element.
39
+ *
40
+ * @param cdp - CDP client instance
41
+ */
42
+ export declare function clearFocusedText(cdp: CdpClient): Promise<void>;
43
+ /**
44
+ * Type text into an element using CDP.
45
+ *
46
+ * Focuses the element first (via click), optionally clears existing text,
47
+ * then inserts the new text.
48
+ *
49
+ * @param cdp - CDP client instance
50
+ * @param backendNodeId - Element to type into
51
+ * @param text - Text to type
52
+ * @param options.clear - If true, clears existing text first (Ctrl+A, Delete)
53
+ */
54
+ export declare function typeByBackendNodeId(cdp: CdpClient, backendNodeId: number, text: string, options?: {
55
+ clear?: boolean;
56
+ }): Promise<void>;
57
+ /**
58
+ * Press a keyboard key using CDP.
59
+ *
60
+ * Sends keyDown and keyUp events for the specified key.
61
+ *
62
+ * @param cdp - CDP client instance
63
+ * @param key - Key name (e.g., 'Enter', 'Tab', 'Escape', 'ArrowDown')
64
+ * @param modifiers - Optional modifier keys ['Control', 'Shift', 'Alt', 'Meta']
65
+ */
66
+ export declare function pressKey(cdp: CdpClient, key: string, modifiers?: string[]): Promise<void>;
67
+ /**
68
+ * Select an option from a <select> element.
69
+ *
70
+ * Uses Runtime.callFunctionOn to set the select value and dispatch a change event.
71
+ *
72
+ * @param cdp - CDP client instance
73
+ * @param backendNodeId - The <select> element's backendNodeId
74
+ * @param value - Option value or visible text to select
75
+ * @returns The selected option's visible text
76
+ */
77
+ export declare function selectOption(cdp: CdpClient, backendNodeId: number, value: string): Promise<string>;
78
+ /**
79
+ * Hover over an element using CDP.
80
+ *
81
+ * Scrolls the element into view and moves the mouse to its center.
82
+ *
83
+ * @param cdp - CDP client instance
84
+ * @param backendNodeId - Element to hover over
85
+ */
86
+ export declare function hoverByBackendNodeId(cdp: CdpClient, backendNodeId: number): Promise<void>;
87
+ /**
88
+ * Scroll an element into view using CDP.
89
+ *
90
+ * @param cdp - CDP client instance
91
+ * @param backendNodeId - Element to scroll into view
92
+ */
93
+ export declare function scrollIntoView(cdp: CdpClient, backendNodeId: number): Promise<void>;
94
+ /**
95
+ * Scroll the page by a specified amount.
96
+ *
97
+ * @param cdp - CDP client instance
98
+ * @param direction - 'up' or 'down'
99
+ * @param amount - Pixels to scroll (default: 500)
100
+ */
101
+ export declare function scrollPage(cdp: CdpClient, direction: 'up' | 'down', amount?: number): Promise<void>;
102
+ //# sourceMappingURL=element-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-resolver.d.ts","sourceRoot":"","sources":["../../../src/snapshot/element-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiE/F;AAMD;;;GAGG;AACH,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,cAAc,IAAI,CAAC;AAuHhC;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BpE;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,SAAS,EACd,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B,OAAO,CAAC,IAAI,CAAC,CAWf;AAMD;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B/F;AAMD;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,SAAS,EACd,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAMD;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ/F;AAMD;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUzF;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,IAAI,GAAG,MAAM,EACxB,MAAM,SAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAMf"}