agent-web-interface 4.3.0 → 4.4.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 (251) hide show
  1. package/dist/src/browser/connection-utils.d.ts +48 -0
  2. package/dist/src/browser/connection-utils.d.ts.map +1 -0
  3. package/dist/src/browser/connection-utils.js +129 -0
  4. package/dist/src/browser/connection-utils.js.map +1 -0
  5. package/dist/src/browser/index.d.ts +3 -1
  6. package/dist/src/browser/index.d.ts.map +1 -1
  7. package/dist/src/browser/index.js +2 -1
  8. package/dist/src/browser/index.js.map +1 -1
  9. package/dist/src/browser/session-manager.d.ts +1 -89
  10. package/dist/src/browser/session-manager.d.ts.map +1 -1
  11. package/dist/src/browser/session-manager.js +1 -116
  12. package/dist/src/browser/session-manager.js.map +1 -1
  13. package/dist/src/browser/session-manager.types.d.ts +90 -0
  14. package/dist/src/browser/session-manager.types.d.ts.map +1 -0
  15. package/dist/src/browser/session-manager.types.js +7 -0
  16. package/dist/src/browser/session-manager.types.js.map +1 -0
  17. package/dist/src/form/constraint-extraction.d.ts +31 -0
  18. package/dist/src/form/constraint-extraction.d.ts.map +1 -0
  19. package/dist/src/form/constraint-extraction.js +110 -0
  20. package/dist/src/form/constraint-extraction.js.map +1 -0
  21. package/dist/src/form/field-extractor.d.ts.map +1 -1
  22. package/dist/src/form/field-extractor.js +3 -444
  23. package/dist/src/form/field-extractor.js.map +1 -1
  24. package/dist/src/form/field-state-extractor.d.ts +22 -0
  25. package/dist/src/form/field-state-extractor.d.ts.map +1 -0
  26. package/dist/src/form/field-state-extractor.js +55 -0
  27. package/dist/src/form/field-state-extractor.js.map +1 -0
  28. package/dist/src/form/form-actions.d.ts +45 -0
  29. package/dist/src/form/form-actions.d.ts.map +1 -0
  30. package/dist/src/form/form-actions.js +108 -0
  31. package/dist/src/form/form-actions.js.map +1 -0
  32. package/dist/src/form/form-detector.d.ts +0 -36
  33. package/dist/src/form/form-detector.d.ts.map +1 -1
  34. package/dist/src/form/form-detector.js +11 -376
  35. package/dist/src/form/form-detector.js.map +1 -1
  36. package/dist/src/form/input-clustering.d.ts +15 -0
  37. package/dist/src/form/input-clustering.d.ts.map +1 -0
  38. package/dist/src/form/input-clustering.js +61 -0
  39. package/dist/src/form/input-clustering.js.map +1 -0
  40. package/dist/src/form/intent-inference.d.ts +28 -0
  41. package/dist/src/form/intent-inference.d.ts.map +1 -0
  42. package/dist/src/form/intent-inference.js +137 -0
  43. package/dist/src/form/intent-inference.js.map +1 -0
  44. package/dist/src/form/purpose-inference.d.ts +50 -0
  45. package/dist/src/form/purpose-inference.d.ts.map +1 -0
  46. package/dist/src/form/purpose-inference.js +313 -0
  47. package/dist/src/form/purpose-inference.js.map +1 -0
  48. package/dist/src/form/submit-detection.d.ts +36 -0
  49. package/dist/src/form/submit-detection.d.ts.map +1 -0
  50. package/dist/src/form/submit-detection.js +101 -0
  51. package/dist/src/form/submit-detection.js.map +1 -0
  52. package/dist/src/form/types.d.ts +2 -2
  53. package/dist/src/index.js +52 -47
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/observation/observation-accumulator.d.ts +1 -1
  56. package/dist/src/observation/observation-accumulator.js +1 -1
  57. package/dist/src/observation/observer-script.d.ts +1 -1
  58. package/dist/src/observation/observer-script.d.ts.map +1 -1
  59. package/dist/src/observation/observer-script.js +129 -7
  60. package/dist/src/observation/observer-script.js.map +1 -1
  61. package/dist/src/query/disambiguation.d.ts +18 -0
  62. package/dist/src/query/disambiguation.d.ts.map +1 -0
  63. package/dist/src/query/disambiguation.js +123 -0
  64. package/dist/src/query/disambiguation.js.map +1 -0
  65. package/dist/src/query/fuzzy-match.d.ts +17 -0
  66. package/dist/src/query/fuzzy-match.d.ts.map +1 -0
  67. package/dist/src/query/fuzzy-match.js +34 -0
  68. package/dist/src/query/fuzzy-match.js.map +1 -0
  69. package/dist/src/query/index.d.ts +3 -0
  70. package/dist/src/query/index.d.ts.map +1 -1
  71. package/dist/src/query/index.js +6 -0
  72. package/dist/src/query/index.js.map +1 -1
  73. package/dist/src/query/query-engine.d.ts +0 -35
  74. package/dist/src/query/query-engine.d.ts.map +1 -1
  75. package/dist/src/query/query-engine.js +9 -309
  76. package/dist/src/query/query-engine.js.map +1 -1
  77. package/dist/src/query/scoring.d.ts +52 -0
  78. package/dist/src/query/scoring.d.ts.map +1 -0
  79. package/dist/src/query/scoring.js +162 -0
  80. package/dist/src/query/scoring.js.map +1 -0
  81. package/dist/src/snapshot/element-resolver.d.ts +24 -13
  82. package/dist/src/snapshot/element-resolver.d.ts.map +1 -1
  83. package/dist/src/snapshot/element-resolver.js +117 -87
  84. package/dist/src/snapshot/element-resolver.js.map +1 -1
  85. package/dist/src/snapshot/extractors/ax-extractor.d.ts +1 -1
  86. package/dist/src/snapshot/extractors/ax-extractor.d.ts.map +1 -1
  87. package/dist/src/snapshot/extractors/ax-extractor.js +4 -1
  88. package/dist/src/snapshot/extractors/ax-extractor.js.map +1 -1
  89. package/dist/src/snapshot/extractors/index.d.ts +1 -1
  90. package/dist/src/snapshot/extractors/index.d.ts.map +1 -1
  91. package/dist/src/snapshot/extractors/index.js +1 -1
  92. package/dist/src/snapshot/extractors/index.js.map +1 -1
  93. package/dist/src/snapshot/extractors/region-resolver.d.ts.map +1 -1
  94. package/dist/src/snapshot/extractors/region-resolver.js +8 -0
  95. package/dist/src/snapshot/extractors/region-resolver.js.map +1 -1
  96. package/dist/src/snapshot/extractors/types.d.ts +8 -0
  97. package/dist/src/snapshot/extractors/types.d.ts.map +1 -1
  98. package/dist/src/snapshot/extractors/types.js +16 -0
  99. package/dist/src/snapshot/extractors/types.js.map +1 -1
  100. package/dist/src/snapshot/frame-context.d.ts +68 -0
  101. package/dist/src/snapshot/frame-context.d.ts.map +1 -0
  102. package/dist/src/snapshot/frame-context.js +131 -0
  103. package/dist/src/snapshot/frame-context.js.map +1 -0
  104. package/dist/src/snapshot/heading-index.d.ts +28 -0
  105. package/dist/src/snapshot/heading-index.d.ts.map +1 -0
  106. package/dist/src/snapshot/heading-index.js +108 -0
  107. package/dist/src/snapshot/heading-index.js.map +1 -0
  108. package/dist/src/snapshot/index.d.ts +5 -3
  109. package/dist/src/snapshot/index.d.ts.map +1 -1
  110. package/dist/src/snapshot/index.js +3 -2
  111. package/dist/src/snapshot/index.js.map +1 -1
  112. package/dist/src/snapshot/kind-mapping.d.ts +30 -0
  113. package/dist/src/snapshot/kind-mapping.d.ts.map +1 -0
  114. package/dist/src/snapshot/kind-mapping.js +114 -0
  115. package/dist/src/snapshot/kind-mapping.js.map +1 -0
  116. package/dist/src/snapshot/node-filter.d.ts +31 -0
  117. package/dist/src/snapshot/node-filter.d.ts.map +1 -0
  118. package/dist/src/snapshot/node-filter.js +137 -0
  119. package/dist/src/snapshot/node-filter.js.map +1 -0
  120. package/dist/src/snapshot/node-synthesizer.d.ts +62 -0
  121. package/dist/src/snapshot/node-synthesizer.d.ts.map +1 -0
  122. package/dist/src/snapshot/node-synthesizer.js +185 -0
  123. package/dist/src/snapshot/node-synthesizer.js.map +1 -0
  124. package/dist/src/snapshot/snapshot-compiler.d.ts +2 -36
  125. package/dist/src/snapshot/snapshot-compiler.d.ts.map +1 -1
  126. package/dist/src/snapshot/snapshot-compiler.js +25 -547
  127. package/dist/src/snapshot/snapshot-compiler.js.map +1 -1
  128. package/dist/src/snapshot/snapshot.types.d.ts +7 -2
  129. package/dist/src/snapshot/snapshot.types.d.ts.map +1 -1
  130. package/dist/src/snapshot/snapshot.types.js +8 -0
  131. package/dist/src/snapshot/snapshot.types.js.map +1 -1
  132. package/dist/src/state/actionables-filter.d.ts +5 -0
  133. package/dist/src/state/actionables-filter.d.ts.map +1 -1
  134. package/dist/src/state/actionables-filter.js +21 -3
  135. package/dist/src/state/actionables-filter.js.map +1 -1
  136. package/dist/src/state/diff-engine.js +3 -3
  137. package/dist/src/state/diff-engine.js.map +1 -1
  138. package/dist/src/state/element-registry.d.ts.map +1 -1
  139. package/dist/src/state/element-registry.js +6 -4
  140. package/dist/src/state/element-registry.js.map +1 -1
  141. package/dist/src/state/hash-utils.d.ts +24 -0
  142. package/dist/src/state/hash-utils.d.ts.map +1 -0
  143. package/dist/src/state/hash-utils.js +41 -0
  144. package/dist/src/state/hash-utils.js.map +1 -0
  145. package/dist/src/state/layer-detector.d.ts.map +1 -1
  146. package/dist/src/state/layer-detector.js +15 -286
  147. package/dist/src/state/layer-detector.js.map +1 -1
  148. package/dist/src/state/layer-detectors/drawer-detector.d.ts +32 -0
  149. package/dist/src/state/layer-detectors/drawer-detector.d.ts.map +1 -0
  150. package/dist/src/state/layer-detectors/drawer-detector.js +96 -0
  151. package/dist/src/state/layer-detectors/drawer-detector.js.map +1 -0
  152. package/dist/src/state/layer-detectors/index.d.ts +10 -0
  153. package/dist/src/state/layer-detectors/index.d.ts.map +1 -0
  154. package/dist/src/state/layer-detectors/index.js +10 -0
  155. package/dist/src/state/layer-detectors/index.js.map +1 -0
  156. package/dist/src/state/layer-detectors/modal-detector.d.ts +30 -0
  157. package/dist/src/state/layer-detectors/modal-detector.d.ts.map +1 -0
  158. package/dist/src/state/layer-detectors/modal-detector.js +127 -0
  159. package/dist/src/state/layer-detectors/modal-detector.js.map +1 -0
  160. package/dist/src/state/layer-detectors/popover-detector.d.ts +20 -0
  161. package/dist/src/state/layer-detectors/popover-detector.d.ts.map +1 -0
  162. package/dist/src/state/layer-detectors/popover-detector.js +76 -0
  163. package/dist/src/state/layer-detectors/popover-detector.js.map +1 -0
  164. package/dist/src/state/layer-detectors/toast-detector.d.ts +24 -0
  165. package/dist/src/state/layer-detectors/toast-detector.d.ts.map +1 -0
  166. package/dist/src/state/layer-detectors/toast-detector.js +48 -0
  167. package/dist/src/state/layer-detectors/toast-detector.js.map +1 -0
  168. package/dist/src/state/region-mapping.d.ts +13 -0
  169. package/dist/src/state/region-mapping.d.ts.map +1 -0
  170. package/dist/src/state/region-mapping.js +25 -0
  171. package/dist/src/state/region-mapping.js.map +1 -0
  172. package/dist/src/state/state-manager.d.ts.map +1 -1
  173. package/dist/src/state/state-manager.js +8 -192
  174. package/dist/src/state/state-manager.js.map +1 -1
  175. package/dist/src/state/state-renderer.d.ts.map +1 -1
  176. package/dist/src/state/state-renderer.js +14 -2
  177. package/dist/src/state/state-renderer.js.map +1 -1
  178. package/dist/src/state/types.d.ts +8 -4
  179. package/dist/src/state/types.d.ts.map +1 -1
  180. package/dist/src/state/url-sanitization.d.ts +22 -0
  181. package/dist/src/state/url-sanitization.d.ts.map +1 -0
  182. package/dist/src/state/url-sanitization.js +60 -0
  183. package/dist/src/state/url-sanitization.js.map +1 -0
  184. package/dist/src/state/value-masking.d.ts +36 -0
  185. package/dist/src/state/value-masking.d.ts.map +1 -0
  186. package/dist/src/state/value-masking.js +86 -0
  187. package/dist/src/state/value-masking.js.map +1 -0
  188. package/dist/src/tools/action-context.d.ts +60 -0
  189. package/dist/src/tools/action-context.d.ts.map +1 -0
  190. package/dist/src/tools/action-context.js +78 -0
  191. package/dist/src/tools/action-context.js.map +1 -0
  192. package/dist/src/tools/action-stabilization.d.ts +48 -0
  193. package/dist/src/tools/action-stabilization.d.ts.map +1 -0
  194. package/dist/src/tools/action-stabilization.js +87 -0
  195. package/dist/src/tools/action-stabilization.js.map +1 -0
  196. package/dist/src/tools/browser-tools.d.ts +8 -167
  197. package/dist/src/tools/browser-tools.d.ts.map +1 -1
  198. package/dist/src/tools/browser-tools.js +13 -651
  199. package/dist/src/tools/browser-tools.js.map +1 -1
  200. package/dist/src/tools/effect-tracker.d.ts +25 -0
  201. package/dist/src/tools/effect-tracker.d.ts.map +1 -0
  202. package/dist/src/tools/effect-tracker.js +69 -0
  203. package/dist/src/tools/effect-tracker.js.map +1 -0
  204. package/dist/src/tools/execute-action.d.ts +1 -31
  205. package/dist/src/tools/execute-action.d.ts.map +1 -1
  206. package/dist/src/tools/execute-action.js +7 -276
  207. package/dist/src/tools/execute-action.js.map +1 -1
  208. package/dist/src/tools/form-tools.d.ts +2 -2
  209. package/dist/src/tools/form-tools.js +4 -4
  210. package/dist/src/tools/form-tools.js.map +1 -1
  211. package/dist/src/tools/index.d.ts +2 -2
  212. package/dist/src/tools/index.d.ts.map +1 -1
  213. package/dist/src/tools/index.js +10 -8
  214. package/dist/src/tools/index.js.map +1 -1
  215. package/dist/src/tools/interaction-tools.d.ts +46 -0
  216. package/dist/src/tools/interaction-tools.d.ts.map +1 -0
  217. package/dist/src/tools/interaction-tools.js +138 -0
  218. package/dist/src/tools/interaction-tools.js.map +1 -0
  219. package/dist/src/tools/navigation-detection.d.ts +31 -0
  220. package/dist/src/tools/navigation-detection.d.ts.map +1 -0
  221. package/dist/src/tools/navigation-detection.js +46 -0
  222. package/dist/src/tools/navigation-detection.js.map +1 -0
  223. package/dist/src/tools/navigation-tools.d.ts +57 -0
  224. package/dist/src/tools/navigation-tools.d.ts.map +1 -0
  225. package/dist/src/tools/navigation-tools.js +178 -0
  226. package/dist/src/tools/navigation-tools.js.map +1 -0
  227. package/dist/src/tools/observation-tools.d.ts +53 -0
  228. package/dist/src/tools/observation-tools.d.ts.map +1 -0
  229. package/dist/src/tools/observation-tools.js +247 -0
  230. package/dist/src/tools/observation-tools.js.map +1 -0
  231. package/dist/src/tools/response-builder.js +2 -2
  232. package/dist/src/tools/response-builder.js.map +1 -1
  233. package/dist/src/tools/stale-element-retry.d.ts +37 -0
  234. package/dist/src/tools/stale-element-retry.d.ts.map +1 -0
  235. package/dist/src/tools/stale-element-retry.js +68 -0
  236. package/dist/src/tools/stale-element-retry.js.map +1 -0
  237. package/dist/src/tools/state-manager-registry.d.ts +26 -0
  238. package/dist/src/tools/state-manager-registry.d.ts.map +1 -0
  239. package/dist/src/tools/state-manager-registry.js +39 -0
  240. package/dist/src/tools/state-manager-registry.js.map +1 -0
  241. package/dist/src/tools/tool-context.js +1 -1
  242. package/dist/src/tools/tool-context.js.map +1 -1
  243. package/dist/src/tools/tool-schemas.d.ts +106 -21
  244. package/dist/src/tools/tool-schemas.d.ts.map +1 -1
  245. package/dist/src/tools/tool-schemas.js +59 -18
  246. package/dist/src/tools/tool-schemas.js.map +1 -1
  247. package/dist/src/tools/viewport-tools.d.ts +36 -0
  248. package/dist/src/tools/viewport-tools.d.ts.map +1 -0
  249. package/dist/src/tools/viewport-tools.js +105 -0
  250. package/dist/src/tools/viewport-tools.js.map +1 -0
  251. package/package.json +1 -1
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Session Manager Types
3
+ *
4
+ * Type definitions for browser session management.
5
+ */
6
+ /**
7
+ * Connection state machine states
8
+ */
9
+ export type ConnectionState = 'idle' | 'connecting' | 'connected' | 'disconnecting' | 'failed';
10
+ /**
11
+ * Event emitted on connection state changes
12
+ */
13
+ export interface ConnectionStateChangeEvent {
14
+ previousState: ConnectionState;
15
+ currentState: ConnectionState;
16
+ timestamp: Date;
17
+ }
18
+ /**
19
+ * Storage state for cookies and localStorage.
20
+ * Puppeteer doesn't have a built-in storageState type like Playwright.
21
+ */
22
+ export interface StorageState {
23
+ cookies: {
24
+ name: string;
25
+ value: string;
26
+ domain: string;
27
+ path: string;
28
+ expires: number;
29
+ httpOnly: boolean;
30
+ secure: boolean;
31
+ sameSite?: 'Strict' | 'Lax' | 'None';
32
+ }[];
33
+ origins: {
34
+ origin: string;
35
+ localStorage: {
36
+ name: string;
37
+ value: string;
38
+ }[];
39
+ }[];
40
+ }
41
+ /**
42
+ * Options for launching a new browser
43
+ */
44
+ export interface LaunchOptions {
45
+ /** Run browser in headless mode (default: false) */
46
+ headless?: boolean;
47
+ /** Viewport dimensions */
48
+ viewport?: {
49
+ width: number;
50
+ height: number;
51
+ };
52
+ /** Chrome channel to use */
53
+ channel?: 'chrome' | 'chrome-canary' | 'chrome-beta' | 'chrome-dev';
54
+ /** Path to Chrome executable (overrides channel) */
55
+ executablePath?: string;
56
+ /** Use isolated temp profile instead of persistent (default: false) */
57
+ isolated?: boolean;
58
+ /** Directory for persistent browser profile (user data dir) */
59
+ userDataDir?: string;
60
+ /** Additional Chrome command-line arguments */
61
+ args?: string[];
62
+ /** Use pipe transport instead of WebSocket (default: true, more secure) */
63
+ pipe?: boolean;
64
+ }
65
+ /**
66
+ * Options for connecting to an existing browser via CDP
67
+ */
68
+ export interface ConnectOptions {
69
+ /** WebSocket endpoint URL (e.g., ws://localhost:9222/devtools/browser/...) */
70
+ browserWSEndpoint?: string;
71
+ /** HTTP endpoint URL for Puppeteer to discover WebSocket (e.g., http://localhost:9222) */
72
+ browserURL?: string;
73
+ /** CDP endpoint URL (legacy, converted to browserURL) */
74
+ endpointUrl?: string;
75
+ /** CDP host (default: 127.0.0.1) - used if no endpoint provided */
76
+ host?: string;
77
+ /** CDP port (default: 9223) - used if no endpoint provided */
78
+ port?: number;
79
+ /** Connection timeout in ms (default: 30000) */
80
+ timeout?: number;
81
+ /**
82
+ * Auto-connect to Chrome 144+ with UI-based remote debugging enabled.
83
+ * Reads DevToolsActivePort file from Chrome's user data directory.
84
+ * Requires user to enable remote debugging at chrome://inspect/#remote-debugging
85
+ */
86
+ autoConnect?: boolean;
87
+ /** Chrome user data directory for autoConnect (default: ~/.config/google-chrome on Linux) */
88
+ userDataDir?: string;
89
+ }
90
+ //# sourceMappingURL=session-manager.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.types.d.ts","sourceRoot":"","sources":["../../../src/browser/session-manager.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,eAAe,GAAG,QAAQ,CAAC;AAE/F;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,eAAe,CAAC;IAC/B,YAAY,EAAE,eAAe,CAAC;IAC9B,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;KACtC,EAAE,CAAC;IACJ,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KACjD,EAAE,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAE7C,4BAA4B;IAC5B,OAAO,CAAC,EAAE,QAAQ,GAAG,eAAe,GAAG,aAAa,GAAG,YAAY,CAAC;IAEpE,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Session Manager Types
3
+ *
4
+ * Type definitions for browser session management.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=session-manager.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.types.js","sourceRoot":"","sources":["../../../src/browser/session-manager.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Constraint Extraction
3
+ *
4
+ * Extracts validation constraints and options for form fields
5
+ * including required state, radio options, and select options.
6
+ *
7
+ * @module form/constraint-extraction
8
+ */
9
+ import type { BaseSnapshot, ReadableNode } from '../snapshot/snapshot.types.js';
10
+ import type { FieldConstraints, FieldOption } from './types.js';
11
+ /**
12
+ * Extract constraints for a field.
13
+ */
14
+ export declare function extractConstraints(node: ReadableNode, snapshot: BaseSnapshot): FieldConstraints;
15
+ /**
16
+ * Extract options for radio button groups.
17
+ */
18
+ export declare function extractRadioOptions(node: ReadableNode, snapshot: BaseSnapshot): FieldOption[];
19
+ /**
20
+ * Extract options for select/combobox elements.
21
+ *
22
+ * Attempts to find option elements by looking for:
23
+ * 1. Nodes in the same group with 'listitem' kind
24
+ * 2. Nodes with 'menuitem' kind that share the same region/group
25
+ * 3. If value is set, creates a single option representing current selection
26
+ *
27
+ * Note: Full option extraction may require additional CDP calls.
28
+ * This provides a best-effort extraction from available snapshot data.
29
+ */
30
+ export declare function extractSelectOptions(node: ReadableNode, snapshot: BaseSnapshot): FieldOption[];
31
+ //# sourceMappingURL=constraint-extraction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraint-extraction.d.ts","sourceRoot":"","sources":["../../../src/form/constraint-extraction.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEhE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAG,gBAAgB,CAkC/F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAG,WAAW,EAAE,CAuB7F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAG,WAAW,EAAE,CAwC9F"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Constraint Extraction
3
+ *
4
+ * Extracts validation constraints and options for form fields
5
+ * including required state, radio options, and select options.
6
+ *
7
+ * @module form/constraint-extraction
8
+ */
9
+ /**
10
+ * Extract constraints for a field.
11
+ */
12
+ export function extractConstraints(node, snapshot) {
13
+ const constraints = {
14
+ required: false,
15
+ required_confidence: 0,
16
+ };
17
+ // Check required state
18
+ if (node.state?.required) {
19
+ constraints.required = true;
20
+ constraints.required_confidence = 1.0;
21
+ }
22
+ else {
23
+ // Check label for required indicators
24
+ const label = node.label.toLowerCase();
25
+ if (label.includes('*') || label.includes('required')) {
26
+ constraints.required = true;
27
+ constraints.required_confidence = 0.8;
28
+ }
29
+ }
30
+ // Extract options for select/radio/combobox
31
+ if (node.kind === 'radio') {
32
+ // Find related radio buttons with same name pattern
33
+ constraints.options = extractRadioOptions(node, snapshot);
34
+ }
35
+ else if (node.kind === 'combobox' || node.kind === 'select') {
36
+ // Extract options for select/combobox elements
37
+ constraints.options = extractSelectOptions(node, snapshot);
38
+ }
39
+ // TODO: Extract more constraints from DOM attributes
40
+ // - minlength, maxlength
41
+ // - min, max, step
42
+ // - pattern
43
+ return constraints;
44
+ }
45
+ /**
46
+ * Extract options for radio button groups.
47
+ */
48
+ export function extractRadioOptions(node, snapshot) {
49
+ const options = [];
50
+ // Find all radio buttons in the same region/group
51
+ const radioButtons = snapshot.nodes.filter((n) => n.kind === 'radio' &&
52
+ n.where.region === node.where.region &&
53
+ (n.where.heading_context === node.where.heading_context ||
54
+ n.where.group_id === node.where.group_id));
55
+ for (const radio of radioButtons) {
56
+ options.push({
57
+ value: radio.label,
58
+ label: radio.label,
59
+ selected: radio.state?.checked ?? false,
60
+ disabled: !(radio.state?.enabled ?? true),
61
+ eid: radio.node_id,
62
+ });
63
+ }
64
+ return options;
65
+ }
66
+ /**
67
+ * Extract options for select/combobox elements.
68
+ *
69
+ * Attempts to find option elements by looking for:
70
+ * 1. Nodes in the same group with 'listitem' kind
71
+ * 2. Nodes with 'menuitem' kind that share the same region/group
72
+ * 3. If value is set, creates a single option representing current selection
73
+ *
74
+ * Note: Full option extraction may require additional CDP calls.
75
+ * This provides a best-effort extraction from available snapshot data.
76
+ */
77
+ export function extractSelectOptions(node, snapshot) {
78
+ const options = [];
79
+ // Look for listitem or menuitem nodes in the same group_id
80
+ if (node.where.group_id) {
81
+ const potentialOptions = snapshot.nodes.filter((n) => (n.kind === 'listitem' || n.kind === 'menuitem') &&
82
+ n.where.group_id === node.where.group_id &&
83
+ n.node_id !== node.node_id);
84
+ for (const opt of potentialOptions) {
85
+ const isSelected = opt.state?.selected ?? false;
86
+ options.push({
87
+ value: opt.label,
88
+ label: opt.label,
89
+ selected: isSelected,
90
+ disabled: !(opt.state?.enabled ?? true),
91
+ eid: opt.node_id,
92
+ });
93
+ }
94
+ }
95
+ // If we found options, return them
96
+ if (options.length > 0) {
97
+ return options;
98
+ }
99
+ // Fallback: if node has a value, create a single option for the current selection
100
+ // This at least lets us know what's currently selected even if we can't see all options
101
+ if (node.attributes?.value) {
102
+ options.push({
103
+ value: node.attributes.value,
104
+ label: node.attributes.value,
105
+ selected: true,
106
+ });
107
+ }
108
+ return options;
109
+ }
110
+ //# sourceMappingURL=constraint-extraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraint-extraction.js","sourceRoot":"","sources":["../../../src/form/constraint-extraction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"field-extractor.d.ts","sourceRoot":"","sources":["../../../src/form/field-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EACV,SAAS,EAMT,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAuNpB;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,EAAE,mBAAmB,GAC1B,SAAS,EAAE,CAmBb;AAyVD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,YAAY,EACtB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,mBAAmB,GAC1B,SAAS,GAAG,IAAI,CAIlB"}
1
+ {"version":3,"file":"field-extractor.d.ts","sourceRoot":"","sources":["../../../src/form/field-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAKjE;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,EAAE,mBAAmB,GAC1B,SAAS,EAAE,CAmBb;AAiED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,YAAY,EACtB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,mBAAmB,GAC1B,SAAS,GAAG,IAAI,CAIlB"}