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,307 @@
1
+ /**
2
+ * FactPack Types
3
+ *
4
+ * Shared type definitions for FactPack extractors.
5
+ *
6
+ * Design Philosophy: Generic First, Specific Second
7
+ * - Base detection (always populated) - generic facts that work on any page
8
+ * - Classification (optional) - specific categorization with confidence scores
9
+ * - 'unknown'/'generic' are valid results, not failures
10
+ */
11
+ import type { NodeKind, SemanticRegion, BBox } from '../snapshot/snapshot.types.js';
12
+ /**
13
+ * Dialog type classification.
14
+ * May be 'unknown' if dialog is detected but type cannot be determined.
15
+ */
16
+ export type DialogType = 'modal' | 'alert' | 'confirm' | 'cookie-consent' | 'newsletter' | 'login-prompt' | 'age-gate' | 'unknown';
17
+ /** How the dialog was detected */
18
+ export type DialogDetectionMethod = 'role-dialog' | 'role-alertdialog' | 'html-dialog' | 'aria-modal' | 'heuristic';
19
+ /** Action role within a dialog */
20
+ export type DialogActionRole = 'primary' | 'secondary' | 'dismiss' | 'unknown';
21
+ /**
22
+ * An interactive action within a dialog.
23
+ */
24
+ export interface DialogAction {
25
+ node_id: string;
26
+ backend_node_id: number;
27
+ label: string;
28
+ role: DialogActionRole;
29
+ kind: NodeKind;
30
+ }
31
+ /**
32
+ * A detected dialog element.
33
+ * Base detection fields are always populated.
34
+ * Classification fields may indicate 'unknown'.
35
+ */
36
+ export interface DetectedDialog {
37
+ /** Container node ID */
38
+ node_id: string;
39
+ /** Backend node ID for CDP interaction */
40
+ backend_node_id: number;
41
+ /** Bounding box */
42
+ bbox: BBox;
43
+ /** Is this a modal (blocks interaction with rest of page)? */
44
+ is_modal: boolean;
45
+ /** Title/heading if found */
46
+ title?: string;
47
+ /** Interactive elements within dialog */
48
+ actions: DialogAction[];
49
+ /** How was this detected? */
50
+ detection_method: DialogDetectionMethod;
51
+ /** Classified type (may be 'unknown') */
52
+ type: DialogType;
53
+ /** Classification confidence (0-1). Low for 'unknown'. */
54
+ type_confidence: number;
55
+ /** Signals that contributed to classification */
56
+ classification_signals: string[];
57
+ }
58
+ /**
59
+ * Result of dialog detection.
60
+ */
61
+ export interface DialogDetectionResult {
62
+ /** All detected dialogs (always includes generically detected ones) */
63
+ dialogs: DetectedDialog[];
64
+ /** Is any blocking dialog present? */
65
+ has_blocking_dialog: boolean;
66
+ /** Stats */
67
+ meta: {
68
+ total_detected: number;
69
+ /** How many have type !== 'unknown' */
70
+ classified_count: number;
71
+ detection_time_ms: number;
72
+ };
73
+ }
74
+ /**
75
+ * Form purpose (inferred).
76
+ * May be 'generic' if form is detected but purpose cannot be determined.
77
+ */
78
+ export type FormPurpose = 'login' | 'signup' | 'checkout' | 'contact' | 'search' | 'newsletter' | 'shipping' | 'billing' | 'profile' | 'password-reset' | 'generic';
79
+ /**
80
+ * Field semantic type (inferred).
81
+ * May be 'unknown' if field purpose cannot be determined.
82
+ */
83
+ export type FieldSemanticType = 'username' | 'email' | 'password' | 'password-confirm' | 'phone' | 'first-name' | 'last-name' | 'full-name' | 'address-line1' | 'address-line2' | 'city' | 'state' | 'postal-code' | 'country' | 'card-number' | 'card-expiry' | 'card-cvv' | 'search-query' | 'message' | 'date' | 'number' | 'url' | 'unknown';
84
+ /**
85
+ * A form field with extracted information.
86
+ */
87
+ export interface FormField {
88
+ node_id: string;
89
+ backend_node_id: number;
90
+ kind: NodeKind;
91
+ label: string;
92
+ /** From attributes.input_type or 'text' */
93
+ input_type: string;
94
+ required: boolean;
95
+ invalid: boolean;
96
+ disabled: boolean;
97
+ readonly: boolean;
98
+ /** Whether field has a value (not the value itself for privacy) */
99
+ has_value: boolean;
100
+ placeholder?: string;
101
+ autocomplete?: string;
102
+ /** Inferred semantic type (may be 'unknown') */
103
+ semantic_type: FieldSemanticType;
104
+ /** Confidence in semantic_type (0-1) */
105
+ semantic_confidence: number;
106
+ }
107
+ /**
108
+ * Submit button for a form.
109
+ */
110
+ export interface FormSubmitButton {
111
+ node_id: string;
112
+ backend_node_id: number;
113
+ label: string;
114
+ enabled: boolean;
115
+ visible: boolean;
116
+ }
117
+ /**
118
+ * Form validation state.
119
+ */
120
+ export interface FormValidation {
121
+ has_errors: boolean;
122
+ error_count: number;
123
+ required_unfilled: number;
124
+ /** Can form likely be submitted? (enabled submit + no errors) */
125
+ ready_to_submit: boolean;
126
+ }
127
+ /**
128
+ * A detected form with extracted fields.
129
+ * Base detection fields are always populated.
130
+ * Purpose inference may indicate 'generic'.
131
+ */
132
+ export interface DetectedForm {
133
+ node_id: string;
134
+ backend_node_id: number;
135
+ /** Heading context or title */
136
+ title?: string;
137
+ /** Form method/action (if explicit form element) */
138
+ action?: string;
139
+ method?: string;
140
+ /** Fields in document order */
141
+ fields: FormField[];
142
+ /** Submit button (may be undefined for implicit forms) */
143
+ submit_button?: FormSubmitButton;
144
+ /** Validation state */
145
+ validation: FormValidation;
146
+ /** Inferred purpose (may be 'generic') */
147
+ purpose: FormPurpose;
148
+ /** Confidence in purpose (0-1) */
149
+ purpose_confidence: number;
150
+ /** Signals that contributed to purpose inference */
151
+ purpose_signals: string[];
152
+ }
153
+ /**
154
+ * Result of form detection.
155
+ */
156
+ export interface FormDetectionResult {
157
+ /** All detected forms */
158
+ forms: DetectedForm[];
159
+ /** Primary form (largest/most prominent) */
160
+ primary_form?: DetectedForm;
161
+ /** Stats */
162
+ meta: {
163
+ total_detected: number;
164
+ /** How many have purpose !== 'generic' */
165
+ classified_count: number;
166
+ detection_time_ms: number;
167
+ };
168
+ }
169
+ /**
170
+ * Page type classification.
171
+ * May be 'unknown' if page type cannot be determined.
172
+ */
173
+ export type PageType = 'homepage' | 'product' | 'product-listing' | 'category' | 'search-results' | 'article' | 'login' | 'signup' | 'checkout' | 'cart' | 'account' | 'contact' | 'about' | 'documentation' | 'error' | 'unknown';
174
+ /** Source of a classification signal */
175
+ export type PageSignalSource = 'url' | 'title' | 'content' | 'form' | 'element';
176
+ /**
177
+ * A signal that contributed to page classification.
178
+ */
179
+ export interface PageSignal {
180
+ source: PageSignalSource;
181
+ /** Signal identifier (e.g., 'url-pattern-product', 'form-purpose-login') */
182
+ signal: string;
183
+ /** Human-readable evidence */
184
+ evidence: string;
185
+ /** Weight contribution (0-1) */
186
+ weight: number;
187
+ }
188
+ /** Type of extracted page entity */
189
+ export type PageEntityType = 'product-name' | 'price' | 'article-title' | 'error-code' | 'search-query' | 'category-name' | 'unknown';
190
+ /**
191
+ * An extracted entity from the page.
192
+ */
193
+ export interface PageEntity {
194
+ type: PageEntityType;
195
+ value: string;
196
+ node_id?: string;
197
+ confidence: number;
198
+ }
199
+ /**
200
+ * Page classification result.
201
+ * Summary fields (has_forms, has_navigation, etc.) are always useful
202
+ * even when type is 'unknown'.
203
+ */
204
+ export interface PageClassification {
205
+ /** Primary page type (may be 'unknown') */
206
+ type: PageType;
207
+ /** Confidence (0-1). Low confidence for 'unknown'. */
208
+ confidence: number;
209
+ /** Alternative type if ambiguous */
210
+ secondary_type?: PageType;
211
+ secondary_confidence?: number;
212
+ /** Signals that contributed to classification */
213
+ signals: PageSignal[];
214
+ /** Extracted entities (may be empty) */
215
+ entities: PageEntity[];
216
+ /** Does page have forms? */
217
+ has_forms: boolean;
218
+ /** Does page have navigation? */
219
+ has_navigation: boolean;
220
+ /** Primary content region detected? */
221
+ has_main_content: boolean;
222
+ /** Is there a search box? */
223
+ has_search: boolean;
224
+ }
225
+ /**
226
+ * Result of page classification.
227
+ */
228
+ export interface PageClassificationResult {
229
+ classification: PageClassification;
230
+ meta: {
231
+ signals_evaluated: number;
232
+ classification_time_ms: number;
233
+ };
234
+ }
235
+ /**
236
+ * Action category.
237
+ * May be 'generic' if action cannot be categorized.
238
+ */
239
+ export type ActionCategory = 'primary-cta' | 'secondary-cta' | 'navigation' | 'form-submit' | 'search' | 'cart-action' | 'auth-action' | 'dialog-action' | 'media-control' | 'generic';
240
+ /**
241
+ * A signal that contributed to action scoring.
242
+ */
243
+ export interface ActionSignal {
244
+ type: string;
245
+ weight: number;
246
+ }
247
+ /**
248
+ * A selected key action.
249
+ */
250
+ export interface SelectedAction {
251
+ node_id: string;
252
+ backend_node_id: number;
253
+ label: string;
254
+ kind: NodeKind;
255
+ region: SemanticRegion;
256
+ /** Locator for interaction */
257
+ locator: string;
258
+ /** Is action enabled? */
259
+ enabled: boolean;
260
+ /** Relevance score (0-1) */
261
+ score: number;
262
+ /** Scoring signals */
263
+ signals: ActionSignal[];
264
+ /** Action category (may be 'generic') */
265
+ category: ActionCategory;
266
+ /** Confidence in category (0-1) */
267
+ category_confidence: number;
268
+ }
269
+ /**
270
+ * Result of action selection.
271
+ */
272
+ export interface ActionSelectionResult {
273
+ /** Top actions sorted by score */
274
+ actions: SelectedAction[];
275
+ /** Highest-scoring primary CTA (if identifiable) */
276
+ primary_cta?: SelectedAction;
277
+ /** Stats */
278
+ meta: {
279
+ candidates_evaluated: number;
280
+ selection_time_ms: number;
281
+ };
282
+ }
283
+ /**
284
+ * Complete FactPack extraction result.
285
+ */
286
+ export interface FactPack {
287
+ page_type: PageClassificationResult;
288
+ dialogs: DialogDetectionResult;
289
+ forms: FormDetectionResult;
290
+ actions: ActionSelectionResult;
291
+ meta: {
292
+ snapshot_id: string;
293
+ extraction_time_ms: number;
294
+ };
295
+ }
296
+ /**
297
+ * Options for FactPack extraction.
298
+ */
299
+ export interface FactPackOptions {
300
+ /** Max actions to select (default: 12) */
301
+ max_actions?: number;
302
+ /** Min action score threshold (default: 0.2) */
303
+ min_action_score?: number;
304
+ /** Include disabled form fields (default: true) */
305
+ include_disabled_fields?: boolean;
306
+ }
307
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factpack/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * FactPack Types
3
+ *
4
+ * Shared type definitions for FactPack extractors.
5
+ *
6
+ * Design Philosophy: Generic First, Specific Second
7
+ * - Base detection (always populated) - generic facts that work on any page
8
+ * - Classification (optional) - specific categorization with confidence scores
9
+ * - 'unknown'/'generic' are valid results, not failures
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factpack/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Dependency Tracker
3
+ *
4
+ * Tracks observed dependencies between form fields by correlating
5
+ * actions with their effects. Dependencies are learned through
6
+ * interaction, not predicted.
7
+ *
8
+ * Key concept: After each action, record "what changed" and
9
+ * attribute the change to the action with a confidence score.
10
+ *
11
+ * @module form/dependency-tracker
12
+ */
13
+ import type { FieldDependency, ObservedEffect } from './types.js';
14
+ /**
15
+ * Dependency tracker configuration
16
+ */
17
+ export interface DependencyTrackerConfig {
18
+ /** Minimum confidence to report a dependency (default: 0.3) */
19
+ minConfidence: number;
20
+ /** Maximum number of observations to keep per trigger (default: 10) */
21
+ maxObservationsPerTrigger: number;
22
+ /** Time window to consider effects as caused by action (ms, default: 2000) */
23
+ effectTimeWindow: number;
24
+ }
25
+ /**
26
+ * Dependency Tracker class.
27
+ *
28
+ * Maintains a per-page record of observed dependencies between fields.
29
+ * Dependencies are inferred from action->effect correlations.
30
+ */
31
+ export declare class DependencyTracker {
32
+ private readonly config;
33
+ /** Observed effects per page: pageId -> triggerEid -> effects */
34
+ private readonly effectsByPage;
35
+ /** Tracked dependencies per page: pageId -> Map<"source:target", TrackedDependency> */
36
+ private readonly dependenciesByPage;
37
+ constructor(config?: Partial<DependencyTrackerConfig>);
38
+ /**
39
+ * Record an observed effect after an action.
40
+ *
41
+ * @param pageId - Page identifier
42
+ * @param effect - The observed effect
43
+ */
44
+ recordEffect(pageId: string, effect: ObservedEffect): void;
45
+ /**
46
+ * Update tracked dependencies based on an observed effect.
47
+ */
48
+ private updateDependencies;
49
+ /**
50
+ * Track or update a dependency.
51
+ */
52
+ private trackDependency;
53
+ /**
54
+ * Get dependencies for a specific field.
55
+ *
56
+ * @param pageId - Page identifier
57
+ * @param targetEid - EID of the field to get dependencies for
58
+ * @returns Array of dependencies that affect this field
59
+ */
60
+ getDependenciesFor(pageId: string, targetEid: string): FieldDependency[];
61
+ /**
62
+ * Get all observed dependencies for a page.
63
+ *
64
+ * @param pageId - Page identifier
65
+ * @returns Map of target EID -> dependencies
66
+ */
67
+ getAllDependencies(pageId: string): Map<string, FieldDependency[]>;
68
+ /**
69
+ * Get fields that depend on a given source field.
70
+ *
71
+ * @param pageId - Page identifier
72
+ * @param sourceEid - EID of the source field
73
+ * @returns Array of field EIDs that depend on the source
74
+ */
75
+ getDependentsOf(pageId: string, sourceEid: string): string[];
76
+ /**
77
+ * Compute confidence score for a tracked dependency.
78
+ */
79
+ private computeConfidence;
80
+ /**
81
+ * Clear all tracked data for a page.
82
+ *
83
+ * @param pageId - Page identifier
84
+ */
85
+ clearPage(pageId: string): void;
86
+ /**
87
+ * Clear all tracked data.
88
+ */
89
+ clearAll(): void;
90
+ }
91
+ /**
92
+ * Get the global dependency tracker instance.
93
+ */
94
+ export declare function getDependencyTracker(): DependencyTracker;
95
+ /**
96
+ * Create an ObservedEffect from before/after state comparison.
97
+ *
98
+ * @param triggerEid - EID of the element that was acted upon
99
+ * @param actionType - Type of action performed
100
+ * @param beforeEids - Map of EID -> enabled state before action
101
+ * @param afterEids - Map of EID -> enabled state after action
102
+ * @param beforeVisible - Set of EIDs that were visible before
103
+ * @param afterVisible - Set of EIDs that are visible after
104
+ * @param valueChanges - EIDs of fields whose values changed
105
+ * @returns ObservedEffect object
106
+ */
107
+ export declare function createObservedEffect(triggerEid: string, actionType: ObservedEffect['action_type'], beforeEids: Map<string, boolean>, afterEids: Map<string, boolean>, beforeVisible: Set<string>, afterVisible: Set<string>, valueChanges?: string[]): ObservedEffect;
108
+ //# sourceMappingURL=dependency-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-tracker.d.ts","sourceRoot":"","sources":["../../../src/form/dependency-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,eAAe,EAGf,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IAEtB,uEAAuE;IACvE,yBAAyB,EAAE,MAAM,CAAC;IAElC,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAoBD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD,iEAAiE;IACjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6C;IAE3E,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8C;gBAErE,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAMrD;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAyB1D;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmD1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE;IAuBxE;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;IAsBlE;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAoB5D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B;;OAEG;IACH,QAAQ,IAAI,IAAI;CAIjB;AAQD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CAGxD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,EACzC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAC1B,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EACzB,YAAY,GAAE,MAAM,EAAO,GAC1B,cAAc,CAsDhB"}