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.
- package/dist/src/browser/connection-utils.d.ts +48 -0
- package/dist/src/browser/connection-utils.d.ts.map +1 -0
- package/dist/src/browser/connection-utils.js +129 -0
- package/dist/src/browser/connection-utils.js.map +1 -0
- package/dist/src/browser/index.d.ts +3 -1
- package/dist/src/browser/index.d.ts.map +1 -1
- package/dist/src/browser/index.js +2 -1
- package/dist/src/browser/index.js.map +1 -1
- package/dist/src/browser/session-manager.d.ts +1 -89
- package/dist/src/browser/session-manager.d.ts.map +1 -1
- package/dist/src/browser/session-manager.js +1 -116
- package/dist/src/browser/session-manager.js.map +1 -1
- package/dist/src/browser/session-manager.types.d.ts +90 -0
- package/dist/src/browser/session-manager.types.d.ts.map +1 -0
- package/dist/src/browser/session-manager.types.js +7 -0
- package/dist/src/browser/session-manager.types.js.map +1 -0
- package/dist/src/form/constraint-extraction.d.ts +31 -0
- package/dist/src/form/constraint-extraction.d.ts.map +1 -0
- package/dist/src/form/constraint-extraction.js +110 -0
- package/dist/src/form/constraint-extraction.js.map +1 -0
- package/dist/src/form/field-extractor.d.ts.map +1 -1
- package/dist/src/form/field-extractor.js +3 -444
- package/dist/src/form/field-extractor.js.map +1 -1
- package/dist/src/form/field-state-extractor.d.ts +22 -0
- package/dist/src/form/field-state-extractor.d.ts.map +1 -0
- package/dist/src/form/field-state-extractor.js +55 -0
- package/dist/src/form/field-state-extractor.js.map +1 -0
- package/dist/src/form/form-actions.d.ts +45 -0
- package/dist/src/form/form-actions.d.ts.map +1 -0
- package/dist/src/form/form-actions.js +108 -0
- package/dist/src/form/form-actions.js.map +1 -0
- package/dist/src/form/form-detector.d.ts +0 -36
- package/dist/src/form/form-detector.d.ts.map +1 -1
- package/dist/src/form/form-detector.js +11 -376
- package/dist/src/form/form-detector.js.map +1 -1
- package/dist/src/form/input-clustering.d.ts +15 -0
- package/dist/src/form/input-clustering.d.ts.map +1 -0
- package/dist/src/form/input-clustering.js +61 -0
- package/dist/src/form/input-clustering.js.map +1 -0
- package/dist/src/form/intent-inference.d.ts +28 -0
- package/dist/src/form/intent-inference.d.ts.map +1 -0
- package/dist/src/form/intent-inference.js +137 -0
- package/dist/src/form/intent-inference.js.map +1 -0
- package/dist/src/form/purpose-inference.d.ts +50 -0
- package/dist/src/form/purpose-inference.d.ts.map +1 -0
- package/dist/src/form/purpose-inference.js +313 -0
- package/dist/src/form/purpose-inference.js.map +1 -0
- package/dist/src/form/submit-detection.d.ts +36 -0
- package/dist/src/form/submit-detection.d.ts.map +1 -0
- package/dist/src/form/submit-detection.js +101 -0
- package/dist/src/form/submit-detection.js.map +1 -0
- package/dist/src/form/types.d.ts +2 -2
- package/dist/src/index.js +52 -47
- package/dist/src/index.js.map +1 -1
- package/dist/src/observation/observation-accumulator.d.ts +1 -1
- package/dist/src/observation/observation-accumulator.js +1 -1
- package/dist/src/observation/observer-script.d.ts +1 -1
- package/dist/src/observation/observer-script.d.ts.map +1 -1
- package/dist/src/observation/observer-script.js +129 -7
- package/dist/src/observation/observer-script.js.map +1 -1
- package/dist/src/query/disambiguation.d.ts +18 -0
- package/dist/src/query/disambiguation.d.ts.map +1 -0
- package/dist/src/query/disambiguation.js +123 -0
- package/dist/src/query/disambiguation.js.map +1 -0
- package/dist/src/query/fuzzy-match.d.ts +17 -0
- package/dist/src/query/fuzzy-match.d.ts.map +1 -0
- package/dist/src/query/fuzzy-match.js +34 -0
- package/dist/src/query/fuzzy-match.js.map +1 -0
- package/dist/src/query/index.d.ts +3 -0
- package/dist/src/query/index.d.ts.map +1 -1
- package/dist/src/query/index.js +6 -0
- package/dist/src/query/index.js.map +1 -1
- package/dist/src/query/query-engine.d.ts +0 -35
- package/dist/src/query/query-engine.d.ts.map +1 -1
- package/dist/src/query/query-engine.js +9 -309
- package/dist/src/query/query-engine.js.map +1 -1
- package/dist/src/query/scoring.d.ts +52 -0
- package/dist/src/query/scoring.d.ts.map +1 -0
- package/dist/src/query/scoring.js +162 -0
- package/dist/src/query/scoring.js.map +1 -0
- package/dist/src/snapshot/element-resolver.d.ts +24 -13
- package/dist/src/snapshot/element-resolver.d.ts.map +1 -1
- package/dist/src/snapshot/element-resolver.js +117 -87
- package/dist/src/snapshot/element-resolver.js.map +1 -1
- package/dist/src/snapshot/extractors/ax-extractor.d.ts +1 -1
- package/dist/src/snapshot/extractors/ax-extractor.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/ax-extractor.js +4 -1
- package/dist/src/snapshot/extractors/ax-extractor.js.map +1 -1
- package/dist/src/snapshot/extractors/index.d.ts +1 -1
- package/dist/src/snapshot/extractors/index.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/index.js +1 -1
- package/dist/src/snapshot/extractors/index.js.map +1 -1
- package/dist/src/snapshot/extractors/region-resolver.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/region-resolver.js +8 -0
- package/dist/src/snapshot/extractors/region-resolver.js.map +1 -1
- package/dist/src/snapshot/extractors/types.d.ts +8 -0
- package/dist/src/snapshot/extractors/types.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/types.js +16 -0
- package/dist/src/snapshot/extractors/types.js.map +1 -1
- package/dist/src/snapshot/frame-context.d.ts +68 -0
- package/dist/src/snapshot/frame-context.d.ts.map +1 -0
- package/dist/src/snapshot/frame-context.js +131 -0
- package/dist/src/snapshot/frame-context.js.map +1 -0
- package/dist/src/snapshot/heading-index.d.ts +28 -0
- package/dist/src/snapshot/heading-index.d.ts.map +1 -0
- package/dist/src/snapshot/heading-index.js +108 -0
- package/dist/src/snapshot/heading-index.js.map +1 -0
- package/dist/src/snapshot/index.d.ts +5 -3
- package/dist/src/snapshot/index.d.ts.map +1 -1
- package/dist/src/snapshot/index.js +3 -2
- package/dist/src/snapshot/index.js.map +1 -1
- package/dist/src/snapshot/kind-mapping.d.ts +30 -0
- package/dist/src/snapshot/kind-mapping.d.ts.map +1 -0
- package/dist/src/snapshot/kind-mapping.js +114 -0
- package/dist/src/snapshot/kind-mapping.js.map +1 -0
- package/dist/src/snapshot/node-filter.d.ts +31 -0
- package/dist/src/snapshot/node-filter.d.ts.map +1 -0
- package/dist/src/snapshot/node-filter.js +137 -0
- package/dist/src/snapshot/node-filter.js.map +1 -0
- package/dist/src/snapshot/node-synthesizer.d.ts +62 -0
- package/dist/src/snapshot/node-synthesizer.d.ts.map +1 -0
- package/dist/src/snapshot/node-synthesizer.js +185 -0
- package/dist/src/snapshot/node-synthesizer.js.map +1 -0
- package/dist/src/snapshot/snapshot-compiler.d.ts +2 -36
- package/dist/src/snapshot/snapshot-compiler.d.ts.map +1 -1
- package/dist/src/snapshot/snapshot-compiler.js +25 -547
- package/dist/src/snapshot/snapshot-compiler.js.map +1 -1
- package/dist/src/snapshot/snapshot.types.d.ts +7 -2
- package/dist/src/snapshot/snapshot.types.d.ts.map +1 -1
- package/dist/src/snapshot/snapshot.types.js +8 -0
- package/dist/src/snapshot/snapshot.types.js.map +1 -1
- package/dist/src/state/actionables-filter.d.ts +5 -0
- package/dist/src/state/actionables-filter.d.ts.map +1 -1
- package/dist/src/state/actionables-filter.js +21 -3
- package/dist/src/state/actionables-filter.js.map +1 -1
- package/dist/src/state/diff-engine.js +3 -3
- package/dist/src/state/diff-engine.js.map +1 -1
- package/dist/src/state/element-registry.d.ts.map +1 -1
- package/dist/src/state/element-registry.js +6 -4
- package/dist/src/state/element-registry.js.map +1 -1
- package/dist/src/state/hash-utils.d.ts +24 -0
- package/dist/src/state/hash-utils.d.ts.map +1 -0
- package/dist/src/state/hash-utils.js +41 -0
- package/dist/src/state/hash-utils.js.map +1 -0
- package/dist/src/state/layer-detector.d.ts.map +1 -1
- package/dist/src/state/layer-detector.js +15 -286
- package/dist/src/state/layer-detector.js.map +1 -1
- package/dist/src/state/layer-detectors/drawer-detector.d.ts +32 -0
- package/dist/src/state/layer-detectors/drawer-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/drawer-detector.js +96 -0
- package/dist/src/state/layer-detectors/drawer-detector.js.map +1 -0
- package/dist/src/state/layer-detectors/index.d.ts +10 -0
- package/dist/src/state/layer-detectors/index.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/index.js +10 -0
- package/dist/src/state/layer-detectors/index.js.map +1 -0
- package/dist/src/state/layer-detectors/modal-detector.d.ts +30 -0
- package/dist/src/state/layer-detectors/modal-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/modal-detector.js +127 -0
- package/dist/src/state/layer-detectors/modal-detector.js.map +1 -0
- package/dist/src/state/layer-detectors/popover-detector.d.ts +20 -0
- package/dist/src/state/layer-detectors/popover-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/popover-detector.js +76 -0
- package/dist/src/state/layer-detectors/popover-detector.js.map +1 -0
- package/dist/src/state/layer-detectors/toast-detector.d.ts +24 -0
- package/dist/src/state/layer-detectors/toast-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/toast-detector.js +48 -0
- package/dist/src/state/layer-detectors/toast-detector.js.map +1 -0
- package/dist/src/state/region-mapping.d.ts +13 -0
- package/dist/src/state/region-mapping.d.ts.map +1 -0
- package/dist/src/state/region-mapping.js +25 -0
- package/dist/src/state/region-mapping.js.map +1 -0
- package/dist/src/state/state-manager.d.ts.map +1 -1
- package/dist/src/state/state-manager.js +8 -192
- package/dist/src/state/state-manager.js.map +1 -1
- package/dist/src/state/state-renderer.d.ts.map +1 -1
- package/dist/src/state/state-renderer.js +14 -2
- package/dist/src/state/state-renderer.js.map +1 -1
- package/dist/src/state/types.d.ts +8 -4
- package/dist/src/state/types.d.ts.map +1 -1
- package/dist/src/state/url-sanitization.d.ts +22 -0
- package/dist/src/state/url-sanitization.d.ts.map +1 -0
- package/dist/src/state/url-sanitization.js +60 -0
- package/dist/src/state/url-sanitization.js.map +1 -0
- package/dist/src/state/value-masking.d.ts +36 -0
- package/dist/src/state/value-masking.d.ts.map +1 -0
- package/dist/src/state/value-masking.js +86 -0
- package/dist/src/state/value-masking.js.map +1 -0
- package/dist/src/tools/action-context.d.ts +60 -0
- package/dist/src/tools/action-context.d.ts.map +1 -0
- package/dist/src/tools/action-context.js +78 -0
- package/dist/src/tools/action-context.js.map +1 -0
- package/dist/src/tools/action-stabilization.d.ts +48 -0
- package/dist/src/tools/action-stabilization.d.ts.map +1 -0
- package/dist/src/tools/action-stabilization.js +87 -0
- package/dist/src/tools/action-stabilization.js.map +1 -0
- package/dist/src/tools/browser-tools.d.ts +8 -167
- package/dist/src/tools/browser-tools.d.ts.map +1 -1
- package/dist/src/tools/browser-tools.js +13 -651
- package/dist/src/tools/browser-tools.js.map +1 -1
- package/dist/src/tools/effect-tracker.d.ts +25 -0
- package/dist/src/tools/effect-tracker.d.ts.map +1 -0
- package/dist/src/tools/effect-tracker.js +69 -0
- package/dist/src/tools/effect-tracker.js.map +1 -0
- package/dist/src/tools/execute-action.d.ts +1 -31
- package/dist/src/tools/execute-action.d.ts.map +1 -1
- package/dist/src/tools/execute-action.js +7 -276
- package/dist/src/tools/execute-action.js.map +1 -1
- package/dist/src/tools/form-tools.d.ts +2 -2
- package/dist/src/tools/form-tools.js +4 -4
- package/dist/src/tools/form-tools.js.map +1 -1
- package/dist/src/tools/index.d.ts +2 -2
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +10 -8
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/interaction-tools.d.ts +46 -0
- package/dist/src/tools/interaction-tools.d.ts.map +1 -0
- package/dist/src/tools/interaction-tools.js +138 -0
- package/dist/src/tools/interaction-tools.js.map +1 -0
- package/dist/src/tools/navigation-detection.d.ts +31 -0
- package/dist/src/tools/navigation-detection.d.ts.map +1 -0
- package/dist/src/tools/navigation-detection.js +46 -0
- package/dist/src/tools/navigation-detection.js.map +1 -0
- package/dist/src/tools/navigation-tools.d.ts +57 -0
- package/dist/src/tools/navigation-tools.d.ts.map +1 -0
- package/dist/src/tools/navigation-tools.js +178 -0
- package/dist/src/tools/navigation-tools.js.map +1 -0
- package/dist/src/tools/observation-tools.d.ts +53 -0
- package/dist/src/tools/observation-tools.d.ts.map +1 -0
- package/dist/src/tools/observation-tools.js +247 -0
- package/dist/src/tools/observation-tools.js.map +1 -0
- package/dist/src/tools/response-builder.js +2 -2
- package/dist/src/tools/response-builder.js.map +1 -1
- package/dist/src/tools/stale-element-retry.d.ts +37 -0
- package/dist/src/tools/stale-element-retry.d.ts.map +1 -0
- package/dist/src/tools/stale-element-retry.js +68 -0
- package/dist/src/tools/stale-element-retry.js.map +1 -0
- package/dist/src/tools/state-manager-registry.d.ts +26 -0
- package/dist/src/tools/state-manager-registry.d.ts.map +1 -0
- package/dist/src/tools/state-manager-registry.js +39 -0
- package/dist/src/tools/state-manager-registry.js.map +1 -0
- package/dist/src/tools/tool-context.js +1 -1
- package/dist/src/tools/tool-context.js.map +1 -1
- package/dist/src/tools/tool-schemas.d.ts +106 -21
- package/dist/src/tools/tool-schemas.d.ts.map +1 -1
- package/dist/src/tools/tool-schemas.js +59 -18
- package/dist/src/tools/tool-schemas.js.map +1 -1
- package/dist/src/tools/viewport-tools.d.ts +36 -0
- package/dist/src/tools/viewport-tools.d.ts.map +1 -0
- package/dist/src/tools/viewport-tools.js +105 -0
- package/dist/src/tools/viewport-tools.js.map +1 -0
- 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 @@
|
|
|
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,
|
|
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"}
|