agent-web-interface 4.3.0 → 4.5.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/browser-session-config.d.ts +33 -0
- package/dist/src/browser/browser-session-config.d.ts.map +1 -0
- package/dist/src/browser/browser-session-config.js +24 -0
- package/dist/src/browser/browser-session-config.js.map +1 -0
- 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/ensure-browser.d.ts +12 -27
- package/dist/src/browser/ensure-browser.d.ts.map +1 -1
- package/dist/src/browser/ensure-browser.js +104 -37
- package/dist/src/browser/ensure-browser.js.map +1 -1
- package/dist/src/browser/index.d.ts +4 -1
- package/dist/src/browser/index.d.ts.map +1 -1
- package/dist/src/browser/index.js +3 -1
- package/dist/src/browser/index.js.map +1 -1
- package/dist/src/browser/session-manager.d.ts +21 -89
- package/dist/src/browser/session-manager.d.ts.map +1 -1
- package/dist/src/browser/session-manager.js +122 -132
- package/dist/src/browser/session-manager.js.map +1 -1
- package/dist/src/browser/session-manager.types.d.ts +102 -0
- package/dist/src/browser/session-manager.types.d.ts.map +1 -0
- package/dist/src/browser/session-manager.types.js +11 -0
- package/dist/src/browser/session-manager.types.js.map +1 -0
- package/dist/src/cli/args.d.ts +12 -18
- package/dist/src/cli/args.d.ts.map +1 -1
- package/dist/src/cli/args.js +35 -40
- package/dist/src/cli/args.js.map +1 -1
- package/dist/src/form/constraint-extraction.d.ts +36 -0
- package/dist/src/form/constraint-extraction.d.ts.map +1 -0
- package/dist/src/form/constraint-extraction.js +117 -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 +16 -450
- 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/form-state.d.ts.map +1 -1
- package/dist/src/form/form-state.js +16 -4
- package/dist/src/form/form-state.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/gateway/http-gateway.d.ts +56 -0
- package/dist/src/gateway/http-gateway.d.ts.map +1 -0
- package/dist/src/gateway/http-gateway.js +229 -0
- package/dist/src/gateway/http-gateway.js.map +1 -0
- package/dist/src/gateway/json-rpc-errors.d.ts +6 -0
- package/dist/src/gateway/json-rpc-errors.d.ts.map +1 -0
- package/dist/src/gateway/json-rpc-errors.js +11 -0
- package/dist/src/gateway/json-rpc-errors.js.map +1 -0
- package/dist/src/gateway/session-router.d.ts +80 -0
- package/dist/src/gateway/session-router.d.ts.map +1 -0
- package/dist/src/gateway/session-router.js +177 -0
- package/dist/src/gateway/session-router.js.map +1 -0
- package/dist/src/http-entry.d.ts +20 -0
- package/dist/src/http-entry.d.ts.map +1 -0
- package/dist/src/http-entry.js +112 -0
- package/dist/src/http-entry.js.map +1 -0
- package/dist/src/index.d.ts +1 -10
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +25 -227
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/text-utils.d.ts +0 -24
- package/dist/src/lib/text-utils.d.ts.map +1 -1
- package/dist/src/lib/text-utils.js +2 -38
- package/dist/src/lib/text-utils.js.map +1 -1
- package/dist/src/observation/eid-linker.d.ts.map +1 -1
- package/dist/src/observation/eid-linker.js +1 -21
- package/dist/src/observation/eid-linker.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/server/index.d.ts +0 -1
- package/dist/src/server/index.d.ts.map +1 -1
- package/dist/src/server/index.js +0 -1
- package/dist/src/server/index.js.map +1 -1
- package/dist/src/server/mcp-server.d.ts +6 -2
- package/dist/src/server/mcp-server.d.ts.map +1 -1
- package/dist/src/server/mcp-server.js +3 -91
- package/dist/src/server/mcp-server.js.map +1 -1
- package/dist/src/server/server-config.d.ts +4 -20
- package/dist/src/server/server-config.d.ts.map +1 -1
- package/dist/src/server/server-config.js +6 -50
- package/dist/src/server/server-config.js.map +1 -1
- package/dist/src/server/tool-registrar.types.d.ts +25 -0
- package/dist/src/server/tool-registrar.types.d.ts.map +1 -0
- package/dist/src/server/tool-registrar.types.js +10 -0
- package/dist/src/server/tool-registrar.types.js.map +1 -0
- package/dist/src/server/tool-result-handler.d.ts +61 -0
- package/dist/src/server/tool-result-handler.d.ts.map +1 -0
- package/dist/src/server/tool-result-handler.js +137 -0
- package/dist/src/server/tool-result-handler.js.map +1 -0
- package/dist/src/session/session-controller.d.ts +123 -0
- package/dist/src/session/session-controller.d.ts.map +1 -0
- package/dist/src/session/session-controller.js +273 -0
- package/dist/src/session/session-controller.js.map +1 -0
- package/dist/src/shared/services/index.d.ts +0 -2
- package/dist/src/shared/services/index.d.ts.map +1 -1
- package/dist/src/shared/services/index.js +0 -2
- package/dist/src/shared/services/index.js.map +1 -1
- package/dist/src/shared/version.d.ts +10 -0
- package/dist/src/shared/version.d.ts.map +1 -0
- package/dist/src/shared/version.js +32 -0
- package/dist/src/shared/version.js.map +1 -0
- package/dist/src/snapshot/element-resolver.d.ts +27 -15
- package/dist/src/snapshot/element-resolver.d.ts.map +1 -1
- package/dist/src/snapshot/element-resolver.js +196 -91
- package/dist/src/snapshot/element-resolver.js.map +1 -1
- package/dist/src/snapshot/extractors/attribute-extractor.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/attribute-extractor.js +4 -0
- package/dist/src/snapshot/extractors/attribute-extractor.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/layout-extractor.d.ts +9 -7
- package/dist/src/snapshot/extractors/layout-extractor.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/layout-extractor.js +34 -19
- package/dist/src/snapshot/extractors/layout-extractor.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/state-extractor.d.ts +2 -2
- package/dist/src/snapshot/extractors/state-extractor.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/state-extractor.js +22 -2
- package/dist/src/snapshot/extractors/state-extractor.js.map +1 -1
- package/dist/src/snapshot/extractors/types.d.ts +14 -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 +40 -549
- package/dist/src/snapshot/snapshot-compiler.js.map +1 -1
- package/dist/src/snapshot/snapshot.types.d.ts +17 -3
- 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 +28 -6
- package/dist/src/state/actionables-filter.js.map +1 -1
- package/dist/src/state/atoms-extractor.d.ts.map +1 -1
- package/dist/src/state/atoms-extractor.js +3 -23
- package/dist/src/state/atoms-extractor.js.map +1 -1
- package/dist/src/state/diff-engine.d.ts.map +1 -1
- package/dist/src/state/diff-engine.js +9 -36
- package/dist/src/state/diff-engine.js.map +1 -1
- package/dist/src/state/element-identity.d.ts +3 -6
- package/dist/src/state/element-identity.d.ts.map +1 -1
- package/dist/src/state/element-identity.js +10 -7
- package/dist/src/state/element-identity.js.map +1 -1
- package/dist/src/state/element-ref.types.d.ts +5 -27
- package/dist/src/state/element-ref.types.d.ts.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 +11 -193
- 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 +17 -3
- package/dist/src/state/state-renderer.js.map +1 -1
- package/dist/src/state/types.d.ts +10 -5
- 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 +76 -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 +55 -0
- package/dist/src/tools/action-context.d.ts.map +1 -0
- package/dist/src/tools/action-context.js +69 -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 +93 -0
- package/dist/src/tools/action-stabilization.js.map +1 -0
- package/dist/src/tools/browser-tools.d.ts +9 -167
- package/dist/src/tools/browser-tools.d.ts.map +1 -1
- package/dist/src/tools/browser-tools.js +15 -651
- package/dist/src/tools/browser-tools.js.map +1 -1
- package/dist/src/tools/canvas-tools.d.ts +2 -1
- package/dist/src/tools/canvas-tools.d.ts.map +1 -1
- package/dist/src/tools/canvas-tools.js +5 -7
- package/dist/src/tools/canvas-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/errors.d.ts +2 -34
- package/dist/src/tools/errors.d.ts.map +1 -1
- package/dist/src/tools/errors.js +1 -44
- package/dist/src/tools/errors.js.map +1 -1
- package/dist/src/tools/execute-action.d.ts +5 -34
- package/dist/src/tools/execute-action.d.ts.map +1 -1
- package/dist/src/tools/execute-action.js +37 -297
- package/dist/src/tools/execute-action.js.map +1 -1
- package/dist/src/tools/form-tools.d.ts +5 -10
- package/dist/src/tools/form-tools.d.ts.map +1 -1
- package/dist/src/tools/form-tools.js +42 -22
- package/dist/src/tools/form-tools.js.map +1 -1
- package/dist/src/tools/index.d.ts +6 -6
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +16 -17
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/interaction-tools.d.ts +47 -0
- package/dist/src/tools/interaction-tools.d.ts.map +1 -0
- package/dist/src/tools/interaction-tools.js +135 -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 +51 -0
- package/dist/src/tools/navigation-tools.d.ts.map +1 -0
- package/dist/src/tools/navigation-tools.js +171 -0
- package/dist/src/tools/navigation-tools.js.map +1 -0
- package/dist/src/tools/observation-tools.d.ts +54 -0
- package/dist/src/tools/observation-tools.d.ts.map +1 -0
- package/dist/src/tools/observation-tools.js +243 -0
- package/dist/src/tools/observation-tools.js.map +1 -0
- package/dist/src/tools/readability-tools.d.ts +16 -0
- package/dist/src/tools/readability-tools.d.ts.map +1 -0
- package/dist/src/tools/readability-tools.js +45 -0
- package/dist/src/tools/readability-tools.js.map +1 -0
- package/dist/src/tools/response-builder.d.ts +20 -32
- package/dist/src/tools/response-builder.d.ts.map +1 -1
- package/dist/src/tools/response-builder.js +32 -48
- 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 +103 -0
- package/dist/src/tools/stale-element-retry.js.map +1 -0
- package/dist/src/tools/tool-context.d.ts +4 -36
- package/dist/src/tools/tool-context.d.ts.map +1 -1
- package/dist/src/tools/tool-context.js +6 -75
- package/dist/src/tools/tool-context.js.map +1 -1
- package/dist/src/tools/tool-context.types.d.ts +141 -0
- package/dist/src/tools/tool-context.types.d.ts.map +1 -0
- package/dist/src/tools/tool-context.types.js +11 -0
- package/dist/src/tools/tool-context.types.js.map +1 -0
- package/dist/src/tools/tool-registration.d.ts +25 -0
- package/dist/src/tools/tool-registration.d.ts.map +1 -0
- package/dist/src/tools/tool-registration.js +180 -0
- package/dist/src/tools/tool-registration.js.map +1 -0
- package/dist/src/tools/tool-schemas.d.ts +176 -1950
- package/dist/src/tools/tool-schemas.d.ts.map +1 -1
- package/dist/src/tools/tool-schemas.js +80 -320
- package/dist/src/tools/tool-schemas.js.map +1 -1
- package/dist/src/tools/viewport-tools.d.ts +37 -0
- package/dist/src/tools/viewport-tools.d.ts.map +1 -0
- package/dist/src/tools/viewport-tools.js +101 -0
- package/dist/src/tools/viewport-tools.js.map +1 -0
- package/dist/src/worker/chrome-worker-process.d.ts +4 -0
- package/dist/src/worker/chrome-worker-process.d.ts.map +1 -1
- package/dist/src/worker/chrome-worker-process.js +1 -1
- package/dist/src/worker/chrome-worker-process.js.map +1 -1
- package/package.json +7 -3
- package/dist/src/factpack/action-selector.d.ts +0 -36
- package/dist/src/factpack/action-selector.d.ts.map +0 -1
- package/dist/src/factpack/action-selector.js +0 -367
- package/dist/src/factpack/action-selector.js.map +0 -1
- package/dist/src/factpack/dialog-detector.d.ts +0 -19
- package/dist/src/factpack/dialog-detector.d.ts.map +0 -1
- package/dist/src/factpack/dialog-detector.js +0 -354
- package/dist/src/factpack/dialog-detector.js.map +0 -1
- package/dist/src/factpack/form-detector.d.ts +0 -28
- package/dist/src/factpack/form-detector.d.ts.map +0 -1
- package/dist/src/factpack/form-detector.js +0 -555
- package/dist/src/factpack/form-detector.js.map +0 -1
- package/dist/src/factpack/index.d.ts +0 -32
- package/dist/src/factpack/index.d.ts.map +0 -1
- package/dist/src/factpack/index.js +0 -73
- package/dist/src/factpack/index.js.map +0 -1
- package/dist/src/factpack/page-classifier.d.ts +0 -22
- package/dist/src/factpack/page-classifier.d.ts.map +0 -1
- package/dist/src/factpack/page-classifier.js +0 -526
- package/dist/src/factpack/page-classifier.js.map +0 -1
- package/dist/src/factpack/types.d.ts +0 -307
- package/dist/src/factpack/types.d.ts.map +0 -1
- package/dist/src/factpack/types.js +0 -12
- package/dist/src/factpack/types.js.map +0 -1
- package/dist/src/lib/constants.d.ts +0 -27
- package/dist/src/lib/constants.d.ts.map +0 -1
- package/dist/src/lib/constants.js +0 -63
- package/dist/src/lib/constants.js.map +0 -1
- package/dist/src/lib/index.d.ts +0 -12
- package/dist/src/lib/index.d.ts.map +0 -1
- package/dist/src/lib/index.js +0 -17
- package/dist/src/lib/index.js.map +0 -1
- package/dist/src/lib/regions.d.ts +0 -29
- package/dist/src/lib/regions.d.ts.map +0 -1
- package/dist/src/lib/regions.js +0 -93
- package/dist/src/lib/regions.js.map +0 -1
- package/dist/src/lib/scoring.d.ts +0 -47
- package/dist/src/lib/scoring.d.ts.map +0 -1
- package/dist/src/lib/scoring.js +0 -79
- package/dist/src/lib/scoring.js.map +0 -1
- package/dist/src/lib/selectors.d.ts +0 -42
- package/dist/src/lib/selectors.d.ts.map +0 -1
- package/dist/src/lib/selectors.js +0 -138
- package/dist/src/lib/selectors.js.map +0 -1
- package/dist/src/renderer/budget-manager.d.ts +0 -46
- package/dist/src/renderer/budget-manager.d.ts.map +0 -1
- package/dist/src/renderer/budget-manager.js +0 -133
- package/dist/src/renderer/budget-manager.js.map +0 -1
- package/dist/src/renderer/constants.d.ts +0 -38
- package/dist/src/renderer/constants.d.ts.map +0 -1
- package/dist/src/renderer/constants.js +0 -29
- package/dist/src/renderer/constants.js.map +0 -1
- package/dist/src/renderer/index.d.ts +0 -12
- package/dist/src/renderer/index.d.ts.map +0 -1
- package/dist/src/renderer/index.js +0 -16
- package/dist/src/renderer/index.js.map +0 -1
- package/dist/src/renderer/section-renderers.d.ts +0 -42
- package/dist/src/renderer/section-renderers.d.ts.map +0 -1
- package/dist/src/renderer/section-renderers.js +0 -252
- package/dist/src/renderer/section-renderers.js.map +0 -1
- package/dist/src/renderer/token-counter.d.ts +0 -45
- package/dist/src/renderer/token-counter.d.ts.map +0 -1
- package/dist/src/renderer/token-counter.js +0 -65
- package/dist/src/renderer/token-counter.js.map +0 -1
- package/dist/src/renderer/types.d.ts +0 -71
- package/dist/src/renderer/types.d.ts.map +0 -1
- package/dist/src/renderer/types.js +0 -7
- package/dist/src/renderer/types.js.map +0 -1
- package/dist/src/renderer/xml-renderer.d.ts +0 -42
- package/dist/src/renderer/xml-renderer.d.ts.map +0 -1
- package/dist/src/renderer/xml-renderer.js +0 -103
- package/dist/src/renderer/xml-renderer.js.map +0 -1
- package/dist/src/server/session-store.d.ts +0 -163
- package/dist/src/server/session-store.d.ts.map +0 -1
- package/dist/src/server/session-store.js +0 -248
- package/dist/src/server/session-store.js.map +0 -1
- package/dist/src/session/session-worker-binding.d.ts +0 -57
- package/dist/src/session/session-worker-binding.d.ts.map +0 -1
- package/dist/src/session/session-worker-binding.js +0 -109
- package/dist/src/session/session-worker-binding.js.map +0 -1
- package/dist/src/shared/services/dom-transformer.service.d.ts +0 -71
- package/dist/src/shared/services/dom-transformer.service.d.ts.map +0 -1
- package/dist/src/shared/services/dom-transformer.service.js +0 -190
- package/dist/src/shared/services/dom-transformer.service.js.map +0 -1
- package/dist/src/shared/services/selector-builder.service.d.ts +0 -53
- package/dist/src/shared/services/selector-builder.service.d.ts.map +0 -1
- package/dist/src/shared/services/selector-builder.service.js +0 -240
- package/dist/src/shared/services/selector-builder.service.js.map +0 -1
- package/dist/src/state/constants.d.ts +0 -125
- package/dist/src/state/constants.d.ts.map +0 -1
- package/dist/src/state/constants.js +0 -131
- package/dist/src/state/constants.js.map +0 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* HTTP Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Starts the MCP server with Streamable HTTP transport for multi-agent access.
|
|
6
|
+
* Use `--transport http --port 3000` to enable.
|
|
7
|
+
*
|
|
8
|
+
* Each HTTP client connection gets its own McpServer + SessionController pair,
|
|
9
|
+
* providing full session isolation for concurrent AI agents. Each session owns
|
|
10
|
+
* its own browser instance, configured independently via navigate tool params.
|
|
11
|
+
*
|
|
12
|
+
* @module http-entry
|
|
13
|
+
*/
|
|
14
|
+
import http from 'node:http';
|
|
15
|
+
import express from 'express';
|
|
16
|
+
import { getServerConfig } from './server/server-config.js';
|
|
17
|
+
import { SessionRouter } from './gateway/session-router.js';
|
|
18
|
+
import { HttpGateway } from './gateway/http-gateway.js';
|
|
19
|
+
import { sendJsonRpcError } from './gateway/json-rpc-errors.js';
|
|
20
|
+
import { getLogger } from './shared/services/logging.service.js';
|
|
21
|
+
import { cleanupTempFiles } from './lib/temp-file.js';
|
|
22
|
+
const logger = getLogger();
|
|
23
|
+
/**
|
|
24
|
+
* HTTP mode main entry point.
|
|
25
|
+
*
|
|
26
|
+
* Called from index.ts when `--transport http` is passed.
|
|
27
|
+
*/
|
|
28
|
+
export async function main() {
|
|
29
|
+
const config = getServerConfig();
|
|
30
|
+
const port = config.port;
|
|
31
|
+
const host = process.env.HTTP_HOST ?? '127.0.0.1';
|
|
32
|
+
const router = new SessionRouter();
|
|
33
|
+
const gateway = new HttpGateway({ router });
|
|
34
|
+
const app = express();
|
|
35
|
+
// Allowed origins for DNS rebinding protection (MCP spec MUST requirement).
|
|
36
|
+
const allowedOriginHosts = new Set(['localhost', '127.0.0.1', '[::1]', host]);
|
|
37
|
+
app.use('/mcp', express.json(), (req, res, next) => {
|
|
38
|
+
const origin = req.headers.origin;
|
|
39
|
+
if (origin) {
|
|
40
|
+
try {
|
|
41
|
+
const originUrl = new URL(origin);
|
|
42
|
+
if (!allowedOriginHosts.has(originUrl.hostname)) {
|
|
43
|
+
sendJsonRpcError(res, 403, -32000, 'Forbidden: Origin not allowed');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
sendJsonRpcError(res, 403, -32000, 'Forbidden: Invalid Origin header');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
next();
|
|
53
|
+
});
|
|
54
|
+
// MCP endpoint
|
|
55
|
+
app.all('/mcp', async (req, res) => {
|
|
56
|
+
try {
|
|
57
|
+
if (req.method === 'POST') {
|
|
58
|
+
await gateway.handlePost(req, res);
|
|
59
|
+
}
|
|
60
|
+
else if (req.method === 'GET') {
|
|
61
|
+
await gateway.handleGet(req, res);
|
|
62
|
+
}
|
|
63
|
+
else if (req.method === 'DELETE') {
|
|
64
|
+
await gateway.handleDelete(req, res);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
sendJsonRpcError(res, 405, -32000, 'Method not allowed');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
logger.error('MCP request error', err instanceof Error ? err : undefined);
|
|
72
|
+
if (!res.headersSent) {
|
|
73
|
+
sendJsonRpcError(res, 500, -32603, 'Internal server error');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
// Health endpoint
|
|
78
|
+
app.get('/health', (_req, res) => {
|
|
79
|
+
res.json({ status: 'ok', sessions: gateway.sessionCount });
|
|
80
|
+
});
|
|
81
|
+
const server = http.createServer(app);
|
|
82
|
+
await new Promise((resolve) => {
|
|
83
|
+
server.listen(port, host, () => {
|
|
84
|
+
logger.info(`HTTP MCP server listening on ${host}:${port}`);
|
|
85
|
+
console.error(`HTTP MCP server listening on http://${host}:${port}/mcp`);
|
|
86
|
+
resolve();
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
const shutdown = async (signal) => {
|
|
90
|
+
console.error(`Shutting down... (${signal})`);
|
|
91
|
+
// Hard deadline — if graceful shutdown hangs, force exit
|
|
92
|
+
const deadline = setTimeout(() => {
|
|
93
|
+
console.error('Graceful shutdown timed out after 10s, forcing exit');
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}, 10_000);
|
|
96
|
+
deadline.unref();
|
|
97
|
+
try {
|
|
98
|
+
// Shut down gateway sessions first (closes MCP servers + transports + browsers)
|
|
99
|
+
await gateway.shutdown();
|
|
100
|
+
await cleanupTempFiles();
|
|
101
|
+
server.close();
|
|
102
|
+
process.exit(0);
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
console.error('Error during shutdown:', err);
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
process.on('SIGINT', () => void shutdown('SIGINT'));
|
|
110
|
+
process.on('SIGTERM', () => void shutdown('SIGTERM'));
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=http-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-entry.js","sourceRoot":"","sources":["../../src/http-entry.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -4,14 +4,5 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Main entry point - initializes the MCP server with Puppeteer-based browser automation.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
import { SessionWorkerBinding } from './session/session-worker-binding.js';
|
|
9
|
-
/**
|
|
10
|
-
* Get the SessionStore instance for use in tool handlers.
|
|
11
|
-
*/
|
|
12
|
-
export declare function getSessionStore(): SessionStore;
|
|
13
|
-
/**
|
|
14
|
-
* Get the SessionWorkerBinding instance.
|
|
15
|
-
*/
|
|
16
|
-
export declare function getSessionBinding(): SessionWorkerBinding;
|
|
7
|
+
export {};
|
|
17
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG"}
|
package/dist/src/index.js
CHANGED
|
@@ -5,66 +5,11 @@
|
|
|
5
5
|
* Main entry point - initializes the MCP server with Puppeteer-based browser automation.
|
|
6
6
|
*/
|
|
7
7
|
import { BrowserAutomationServer } from './server/mcp-server.js';
|
|
8
|
-
import { initServerConfig
|
|
9
|
-
import { SessionStore } from './server/session-store.js';
|
|
10
|
-
import { SessionWorkerBinding } from './session/session-worker-binding.js';
|
|
11
|
-
import { getLogger } from './shared/services/logging.service.js';
|
|
8
|
+
import { initServerConfig } from './server/server-config.js';
|
|
12
9
|
import { cleanupTempFiles } from './lib/temp-file.js';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
/** Isolation mode from environment (default: 'context') */
|
|
17
|
-
const isolationMode = process.env.ISOLATION_MODE === 'process' ? 'process' : 'context';
|
|
18
|
-
/** Session-to-worker binding adapter */
|
|
19
|
-
const sessionBinding = new SessionWorkerBinding(isolationMode);
|
|
20
|
-
/**
|
|
21
|
-
* Get the SessionStore instance for use in tool handlers.
|
|
22
|
-
*/
|
|
23
|
-
export function getSessionStore() {
|
|
24
|
-
return sessionStore;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Get the SessionWorkerBinding instance.
|
|
28
|
-
*/
|
|
29
|
-
export function getSessionBinding() {
|
|
30
|
-
return sessionBinding;
|
|
31
|
-
}
|
|
32
|
-
import { initializeToolContext,
|
|
33
|
-
// Tool handlers
|
|
34
|
-
listPages, closePage, closeSession, navigate, goBack, goForward, reload, captureSnapshot, findElements, getNodeDetails, scrollElementIntoView, scrollPage, click, type, press, select, hover, drag, getFormUnderstanding, getFieldContext, takeScreenshot, inspectCanvas,
|
|
35
|
-
// Input schemas only (all outputs are XML strings now)
|
|
36
|
-
ListPagesInputSchema, ClosePageInputSchema, CloseSessionInputSchema, NavigateInputSchema, GoBackInputSchema, GoForwardInputSchema, ReloadInputSchema, CaptureSnapshotInputSchema, FindElementsInputSchema, GetNodeDetailsInputSchema, ScrollElementIntoViewInputSchemaBase, ScrollPageInputSchema, ClickInputSchemaBase, TypeInputSchemaBase, PressInputSchema, SelectInputSchemaBase, HoverInputSchemaBase, DragInputSchemaBase, GetFormUnderstandingInputSchema, GetFieldContextInputSchema, TakeScreenshotInputSchemaBase, InspectCanvasInputSchemaBase, } from './tools/index.js';
|
|
37
|
-
/**
|
|
38
|
-
* Wrap a tool handler with lazy browser initialization.
|
|
39
|
-
* Works with both sync and async handlers - sync return values are automatically
|
|
40
|
-
* wrapped in a resolved promise by the async function.
|
|
41
|
-
* Includes error context logging when browser initialization fails.
|
|
42
|
-
*/
|
|
43
|
-
function withLazyInit(handler, toolName) {
|
|
44
|
-
return async (input) => {
|
|
45
|
-
try {
|
|
46
|
-
await ensureBrowserForTools();
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
const config = getServerConfig();
|
|
50
|
-
const mode = config.autoConnect
|
|
51
|
-
? 'autoConnect'
|
|
52
|
-
: config.browserUrl || config.wsEndpoint
|
|
53
|
-
? 'connect'
|
|
54
|
-
: 'launch';
|
|
55
|
-
logger.error('Browser initialization failed during tool execution', error instanceof Error ? error : undefined, {
|
|
56
|
-
tool: toolName,
|
|
57
|
-
mode,
|
|
58
|
-
headless: config.headless,
|
|
59
|
-
autoConnect: config.autoConnect,
|
|
60
|
-
browserUrl: config.browserUrl,
|
|
61
|
-
wsEndpoint: config.wsEndpoint,
|
|
62
|
-
});
|
|
63
|
-
throw error;
|
|
64
|
-
}
|
|
65
|
-
return handler(input);
|
|
66
|
-
};
|
|
67
|
-
}
|
|
10
|
+
import { VERSION } from './shared/version.js';
|
|
11
|
+
import { SessionRouter } from './gateway/session-router.js';
|
|
12
|
+
import { registerAllTools } from './tools/tool-registration.js';
|
|
68
13
|
/**
|
|
69
14
|
* Initialize all services and start the server
|
|
70
15
|
*/
|
|
@@ -72,178 +17,35 @@ function initializeServer() {
|
|
|
72
17
|
// Parse CLI arguments and initialize server configuration
|
|
73
18
|
initServerConfig(process.argv.slice(2));
|
|
74
19
|
// Create MCP server shell
|
|
75
|
-
// Note: Don't pass tools/logging capabilities - McpServer registers them automatically
|
|
76
|
-
// when tools are registered via .tool() or .registerTool()
|
|
77
20
|
const server = new BrowserAutomationServer({
|
|
78
21
|
name: 'agent-web-interface',
|
|
79
|
-
version:
|
|
80
|
-
});
|
|
81
|
-
// Wire SessionStore to MCP lifecycle events
|
|
82
|
-
server.on('session:start', (event) => {
|
|
83
|
-
const { clientInfo } = event;
|
|
84
|
-
const sessionId = sessionStore.createSession(clientInfo?.name ?? 'unknown', clientInfo);
|
|
85
|
-
const session = sessionStore.getSession(sessionId);
|
|
86
|
-
// Route session start through the isolation binding.
|
|
87
|
-
// Browser init is lazy (first tool call), so context creation may fail here
|
|
88
|
-
// if the browser isn't launched yet. That's OK — the tool's withLazyInit
|
|
89
|
-
// will ensure the browser is ready before any real work happens.
|
|
90
|
-
sessionBinding
|
|
91
|
-
.onSessionStart(sessionId, getSessionManager())
|
|
92
|
-
.then((result) => {
|
|
93
|
-
if (result.browserContext) {
|
|
94
|
-
session.browser_context = result.browserContext;
|
|
95
|
-
}
|
|
96
|
-
})
|
|
97
|
-
.catch((err) => {
|
|
98
|
-
logger.error('Failed to initialize session isolation', err instanceof Error ? err : undefined, { sessionId, isolationMode });
|
|
99
|
-
});
|
|
22
|
+
version: VERSION,
|
|
100
23
|
});
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
// Initialize session manager and tools
|
|
109
|
-
const session = getSessionManager();
|
|
110
|
-
initializeToolContext(session);
|
|
111
|
-
// ============================================================================
|
|
112
|
-
// SESSION TOOLS
|
|
113
|
-
// ============================================================================
|
|
114
|
-
server.registerTool('list_pages', {
|
|
115
|
-
title: 'List Pages',
|
|
116
|
-
description: 'List all open browser pages with their page_id, URL, and title. Use when working with multiple pages or to get the page_id for targeting a specific page.',
|
|
117
|
-
inputSchema: ListPagesInputSchema.shape,
|
|
118
|
-
}, withLazyInit(listPages, 'list_pages'));
|
|
119
|
-
server.registerTool('close_page', {
|
|
120
|
-
title: 'Close Page',
|
|
121
|
-
description: 'Close a browser tab. Use list_pages first to get the page_id.',
|
|
122
|
-
inputSchema: ClosePageInputSchema.shape,
|
|
123
|
-
}, withLazyInit(closePage, 'close_page'));
|
|
124
|
-
server.registerTool('close_session', {
|
|
125
|
-
title: 'Close Session',
|
|
126
|
-
description: 'Close the entire browser and clear all state. Use when done with browser tasks or to reset after errors. Browser auto-restarts on next tool call.',
|
|
127
|
-
inputSchema: CloseSessionInputSchema.shape,
|
|
128
|
-
}, withLazyInit(closeSession, 'close_session'));
|
|
129
|
-
// ============================================================================
|
|
130
|
-
// NAVIGATION TOOLS
|
|
131
|
-
// ============================================================================
|
|
132
|
-
server.registerTool('navigate', {
|
|
133
|
-
title: 'Navigate',
|
|
134
|
-
description: 'Go to a URL. Returns page snapshot with interactive elements. This is typically your first action when starting browser automation.',
|
|
135
|
-
inputSchema: NavigateInputSchema.shape,
|
|
136
|
-
}, withLazyInit(navigate, 'navigate'));
|
|
137
|
-
server.registerTool('go_back', {
|
|
138
|
-
title: 'Go Back',
|
|
139
|
-
description: 'Go back one page in browser history (like clicking the back button). Returns updated page snapshot.',
|
|
140
|
-
inputSchema: GoBackInputSchema.shape,
|
|
141
|
-
}, withLazyInit(goBack, 'go_back'));
|
|
142
|
-
server.registerTool('go_forward', {
|
|
143
|
-
title: 'Go Forward',
|
|
144
|
-
description: 'Go forward one page in browser history. Returns updated page snapshot.',
|
|
145
|
-
inputSchema: GoForwardInputSchema.shape,
|
|
146
|
-
}, withLazyInit(goForward, 'go_forward'));
|
|
147
|
-
server.registerTool('reload', {
|
|
148
|
-
title: 'Reload',
|
|
149
|
-
description: 'Refresh the current page. Use when content may be stale or after waiting for server-side changes. Returns updated snapshot.',
|
|
150
|
-
inputSchema: ReloadInputSchema.shape,
|
|
151
|
-
}, withLazyInit(reload, 'reload'));
|
|
152
|
-
server.registerTool('capture_snapshot', {
|
|
153
|
-
title: 'Capture Snapshot',
|
|
154
|
-
description: 'Re-capture the page state without performing any action. Use when the page may have changed on its own (timers, live updates, animations completing). NOT needed after click/type/etc - those already return fresh snapshots.',
|
|
155
|
-
inputSchema: CaptureSnapshotInputSchema.shape,
|
|
156
|
-
}, withLazyInit(captureSnapshot, 'capture_snapshot'));
|
|
157
|
-
// ============================================================================
|
|
158
|
-
// OBSERVATION TOOLS
|
|
159
|
-
// ============================================================================
|
|
160
|
-
server.registerTool('find_elements', {
|
|
161
|
-
title: 'Find Elements',
|
|
162
|
-
description: 'Search for interactive elements OR read page text content. Filter by `kind` (button, link, textbox, canvas), `label` (case-insensitive substring match), or `region` (header, main, footer). To READ page content, ensure `include_readable: true` (default) which includes paragraphs and headings.',
|
|
163
|
-
inputSchema: FindElementsInputSchema.shape,
|
|
164
|
-
}, withLazyInit(findElements, 'find_elements'));
|
|
165
|
-
server.registerTool('get_element_details', {
|
|
166
|
-
title: 'Get Element Details',
|
|
167
|
-
description: 'Get complete details for one element: exact position, size, state, attributes. Use when you need more info than find_elements provides, like precise coordinates or full attribute list.',
|
|
168
|
-
inputSchema: GetNodeDetailsInputSchema.shape,
|
|
169
|
-
}, withLazyInit(getNodeDetails, 'get_element_details'));
|
|
170
|
-
server.registerTool('take_screenshot', {
|
|
171
|
-
title: 'Take Screenshot',
|
|
172
|
-
description: 'Capture a screenshot of the current page or a specific element. Returns the image directly for small screenshots (<2MB) or saves to a temp file for large ones. Use `eid` for element screenshots (requires a prior snapshot) or `fullPage: true` for full-page capture. Supports PNG (lossless, default) and JPEG (lossy with quality 0-100). Cannot combine eid and fullPage.',
|
|
173
|
-
inputSchema: TakeScreenshotInputSchemaBase.shape,
|
|
174
|
-
}, withLazyInit(takeScreenshot, 'take_screenshot'));
|
|
175
|
-
// ============================================================================
|
|
176
|
-
// INTERACTION TOOLS
|
|
177
|
-
// ============================================================================
|
|
178
|
-
server.registerTool('scroll_element_into_view', {
|
|
179
|
-
title: 'Scroll Element Into View',
|
|
180
|
-
description: 'Scroll until a specific element is visible in the viewport. Use BEFORE clicking or interacting with elements that are off-screen.',
|
|
181
|
-
inputSchema: ScrollElementIntoViewInputSchemaBase.shape,
|
|
182
|
-
}, withLazyInit(scrollElementIntoView, 'scroll_element_into_view'));
|
|
183
|
-
server.registerTool('scroll_page', {
|
|
184
|
-
title: 'Scroll Page',
|
|
185
|
-
description: 'Scroll the viewport up or down by pixels. Use to explore page content, load lazy content, or reach elements below the fold. Returns updated snapshot.',
|
|
186
|
-
inputSchema: ScrollPageInputSchema.shape,
|
|
187
|
-
}, withLazyInit(scrollPage, 'scroll_page'));
|
|
188
|
-
server.registerTool('click', {
|
|
189
|
-
title: 'Click Element',
|
|
190
|
-
description: 'Click an element or at viewport coordinates. Use for buttons, links, checkboxes, or any clickable element. Returns updated page snapshot reflecting any changes from the click. Supports three modes: (1) eid only - clicks element center, (2) eid + x/y - clicks at offset relative to element top-left, (3) x/y only - clicks at absolute viewport coordinates (useful for canvas elements).',
|
|
191
|
-
inputSchema: ClickInputSchemaBase.shape,
|
|
192
|
-
}, withLazyInit(click, 'click'));
|
|
193
|
-
server.registerTool('type', {
|
|
194
|
-
title: 'Type Text',
|
|
195
|
-
description: 'Type text into an input field, search box, or text area. Set `clear: true` to replace existing text instead of appending. Returns updated snapshot.',
|
|
196
|
-
inputSchema: TypeInputSchemaBase.shape,
|
|
197
|
-
}, withLazyInit(type, 'type'));
|
|
198
|
-
server.registerTool('press', {
|
|
199
|
-
title: 'Press Key',
|
|
200
|
-
description: 'Press a keyboard key (Enter, Tab, Escape, arrows, etc.) with optional Ctrl/Shift/Alt modifiers. Use for: submitting forms (Enter), moving between fields (Tab), closing dialogs (Escape), or keyboard shortcuts.',
|
|
201
|
-
inputSchema: PressInputSchema.shape,
|
|
202
|
-
}, withLazyInit(press, 'press'));
|
|
203
|
-
server.registerTool('select', {
|
|
204
|
-
title: 'Select Option',
|
|
205
|
-
description: 'Choose an option from a dropdown menu. Specify the option by its value attribute or visible text. Returns updated snapshot.',
|
|
206
|
-
inputSchema: SelectInputSchemaBase.shape,
|
|
207
|
-
}, withLazyInit(select, 'select'));
|
|
208
|
-
server.registerTool('hover', {
|
|
209
|
-
title: 'Hover Element',
|
|
210
|
-
description: 'Move mouse over an element without clicking. Use to trigger hover menus, tooltips, or reveal hidden content that appears on mouseover.',
|
|
211
|
-
inputSchema: HoverInputSchemaBase.shape,
|
|
212
|
-
}, withLazyInit(hover, 'hover'));
|
|
213
|
-
server.registerTool('drag', {
|
|
214
|
-
title: 'Drag',
|
|
215
|
-
description: "Drag from one point to another. Specify source and target coordinates. If `eid` is provided, coordinates are relative to the element's top-left corner. Otherwise, coordinates are absolute viewport positions. Useful for canvas drawing, slider manipulation, and drag-and-drop operations.",
|
|
216
|
-
inputSchema: DragInputSchemaBase.shape,
|
|
217
|
-
}, withLazyInit(drag, 'drag'));
|
|
218
|
-
// ============================================================================
|
|
219
|
-
// CANVAS INSPECTION TOOLS
|
|
220
|
-
// ============================================================================
|
|
221
|
-
server.registerTool('inspect_canvas', {
|
|
222
|
-
title: 'Inspect Canvas',
|
|
223
|
-
description: 'Analyze a canvas element: auto-detect the rendering library (Fabric.js, Konva, PixiJS, Phaser, Three.js, EaselJS), query its scene graph for objects with positions/sizes, and return an annotated screenshot with coordinate grid overlay and object bounding boxes. Use find_elements with kind=canvas first to discover canvas elements, then inspect_canvas to understand their contents before interacting via click/drag.',
|
|
224
|
-
inputSchema: InspectCanvasInputSchemaBase.shape,
|
|
225
|
-
}, withLazyInit(inspectCanvas, 'inspect_canvas'));
|
|
226
|
-
// ============================================================================
|
|
227
|
-
// FORM UNDERSTANDING TOOLS
|
|
228
|
-
// ============================================================================
|
|
229
|
-
server.registerTool('get_form_understanding', {
|
|
230
|
-
title: 'Get Form Understanding',
|
|
231
|
-
description: 'Analyze all forms on the page: fields, required inputs, validation rules, and field dependencies. Use BEFORE filling complex forms (multi-step, conditional fields) to understand what is required and in what order.',
|
|
232
|
-
inputSchema: GetFormUnderstandingInputSchema.shape,
|
|
233
|
-
}, withLazyInit(getFormUnderstanding, 'get_form_understanding'));
|
|
234
|
-
server.registerTool('get_field_context', {
|
|
235
|
-
title: 'Get Field Context',
|
|
236
|
-
description: 'Get detailed info about one form field: what it is for, valid input formats, dependencies on other fields, and suggested values. Use when unsure how to fill a specific field.',
|
|
237
|
-
inputSchema: GetFieldContextInputSchema.shape,
|
|
238
|
-
}, withLazyInit(getFieldContext, 'get_field_context'));
|
|
239
|
-
return server;
|
|
24
|
+
// Create session router (stdio mode — implicit single session)
|
|
25
|
+
const router = new SessionRouter();
|
|
26
|
+
// Register all browser automation tools
|
|
27
|
+
// Browser init is session-scoped: each SessionController owns its own
|
|
28
|
+
// SessionManager and lazily launches/connects via ctx.ensureBrowser().
|
|
29
|
+
registerAllTools(server, () => router.resolve());
|
|
30
|
+
return { server, router };
|
|
240
31
|
}
|
|
241
32
|
/**
|
|
242
33
|
* Main entry point
|
|
243
34
|
*/
|
|
244
35
|
async function main() {
|
|
245
36
|
try {
|
|
246
|
-
|
|
37
|
+
// Check for HTTP transport mode before initializing the stdio server.
|
|
38
|
+
// We parse early to detect the transport flag, then delegate to http-entry.
|
|
39
|
+
const transportIdx = process.argv.indexOf('--transport');
|
|
40
|
+
const transportArg = transportIdx !== -1 ? process.argv[transportIdx + 1] : undefined;
|
|
41
|
+
const isHttp = transportArg === 'http' || process.env.TRANSPORT === 'http';
|
|
42
|
+
if (isHttp) {
|
|
43
|
+
// Initialize config first so http-entry can read it
|
|
44
|
+
initServerConfig(process.argv.slice(2));
|
|
45
|
+
const { main: httpMain } = await import('./http-entry.js');
|
|
46
|
+
return await httpMain();
|
|
47
|
+
}
|
|
48
|
+
const { server, router } = initializeServer();
|
|
247
49
|
await server.start();
|
|
248
50
|
// Handle shutdown gracefully
|
|
249
51
|
const shutdown = (signal) => {
|
|
@@ -251,11 +53,7 @@ async function main() {
|
|
|
251
53
|
void (async () => {
|
|
252
54
|
try {
|
|
253
55
|
await cleanupTempFiles();
|
|
254
|
-
|
|
255
|
-
if (isSessionManagerInitialized()) {
|
|
256
|
-
const session = getSessionManager();
|
|
257
|
-
await session.shutdown();
|
|
258
|
-
}
|
|
56
|
+
await router.shutdown();
|
|
259
57
|
await server.stop();
|
|
260
58
|
process.exit(0);
|
|
261
59
|
}
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,OAAO,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,20 +11,10 @@
|
|
|
11
11
|
* - Collapse whitespace
|
|
12
12
|
*/
|
|
13
13
|
export declare function normalizeText(text: string): string;
|
|
14
|
-
/**
|
|
15
|
-
* Sanitize accessible name/label hint for selector building
|
|
16
|
-
* Returns undefined if the result is empty or too short
|
|
17
|
-
*/
|
|
18
|
-
export declare function sanitizeAccessibleHint(value: string, maxLength?: number): string | undefined;
|
|
19
14
|
/**
|
|
20
15
|
* Truncate string with ellipsis
|
|
21
16
|
*/
|
|
22
17
|
export declare function truncate(value: string, max?: number): string;
|
|
23
|
-
/**
|
|
24
|
-
* Escape string for CSS attribute selector (for display labels).
|
|
25
|
-
* Normalizes and truncates the value.
|
|
26
|
-
*/
|
|
27
|
-
export declare function escapeAttributeValue(value: string, maxLength?: number): string;
|
|
28
18
|
/**
|
|
29
19
|
* Escape a value for use inside CSS attribute selector quotes.
|
|
30
20
|
* Follows CSS string serialization spec:
|
|
@@ -69,20 +59,6 @@ export declare function escapeXPathValue(value: string): string;
|
|
|
69
59
|
* Takes first few significant words to avoid overly specific selectors
|
|
70
60
|
*/
|
|
71
61
|
export declare function tokenizeForMatching(text: string, maxTokens?: number, minLength?: number): string[];
|
|
72
|
-
/**
|
|
73
|
-
* Check if two strings match using fuzzy token-based comparison
|
|
74
|
-
*/
|
|
75
|
-
export declare function fuzzyTokenMatch(text: string, query: string, minMatchTokens?: number): boolean;
|
|
76
|
-
/**
|
|
77
|
-
* Calculate Levenshtein (edit) distance between two strings.
|
|
78
|
-
* Uses optimized single-row algorithm with O(min(m,n)) space.
|
|
79
|
-
*/
|
|
80
|
-
export declare function levenshteinDistance(a: string, b: string): number;
|
|
81
|
-
/**
|
|
82
|
-
* Calculate similarity ratio (0-1) between two strings based on Levenshtein distance.
|
|
83
|
-
* Returns 1 for identical strings, 0 for completely different strings.
|
|
84
|
-
*/
|
|
85
|
-
export declare function stringSimilarity(a: string, b: string): number;
|
|
86
62
|
/**
|
|
87
63
|
* Options for fuzzy token matching
|
|
88
64
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/text-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED
|
|
1
|
+
{"version":3,"file":"text-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/text-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAM,GAAG,MAAM,CAKzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA+B7D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA8D/C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYtD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAI,EAAE,SAAS,SAAI,GAAG,MAAM,EAAE,CAIxF;AA8DD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAAE,EACpB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CA+CvB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAKD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EACtC,QAAQ,SAAI,GACX,MAAM,GAAG,SAAS,CA+BpB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQ7C;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAoB3D"}
|
|
@@ -19,19 +19,6 @@ export function normalizeText(text) {
|
|
|
19
19
|
.replace(/\s+/g, ' ')
|
|
20
20
|
.trim());
|
|
21
21
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Sanitize accessible name/label hint for selector building
|
|
24
|
-
* Returns undefined if the result is empty or too short
|
|
25
|
-
*/
|
|
26
|
-
export function sanitizeAccessibleHint(value, maxLength = 160) {
|
|
27
|
-
const normalized = normalizeText(value);
|
|
28
|
-
if (!normalized)
|
|
29
|
-
return undefined;
|
|
30
|
-
const tokens = normalized.split(' ').filter(Boolean).slice(0, 12);
|
|
31
|
-
if (tokens.length === 0)
|
|
32
|
-
return undefined;
|
|
33
|
-
return truncate(tokens.join(' '), maxLength);
|
|
34
|
-
}
|
|
35
22
|
/**
|
|
36
23
|
* Truncate string with ellipsis
|
|
37
24
|
*/
|
|
@@ -41,13 +28,6 @@ export function truncate(value, max = 120) {
|
|
|
41
28
|
}
|
|
42
29
|
return `${value.slice(0, max - 1)}…`;
|
|
43
30
|
}
|
|
44
|
-
/**
|
|
45
|
-
* Escape string for CSS attribute selector (for display labels).
|
|
46
|
-
* Normalizes and truncates the value.
|
|
47
|
-
*/
|
|
48
|
-
export function escapeAttributeValue(value, maxLength = 120) {
|
|
49
|
-
return truncate(normalizeText(value), maxLength).replace(/["\\]/g, '\\$&');
|
|
50
|
-
}
|
|
51
31
|
/**
|
|
52
32
|
* Escape a value for use inside CSS attribute selector quotes.
|
|
53
33
|
* Follows CSS string serialization spec:
|
|
@@ -191,22 +171,6 @@ export function tokenizeForMatching(text, maxTokens = 3, minLength = 2) {
|
|
|
191
171
|
const words = normalized.split(' ').filter((word) => word.length > minLength);
|
|
192
172
|
return words.slice(0, maxTokens);
|
|
193
173
|
}
|
|
194
|
-
/**
|
|
195
|
-
* Check if two strings match using fuzzy token-based comparison
|
|
196
|
-
*/
|
|
197
|
-
export function fuzzyTokenMatch(text, query, minMatchTokens = 2) {
|
|
198
|
-
const textTokens = new Set(tokenizeForMatching(text.toLowerCase(), 10, 2));
|
|
199
|
-
const queryTokens = tokenizeForMatching(query.toLowerCase(), 5, 2);
|
|
200
|
-
if (queryTokens.length === 0)
|
|
201
|
-
return false;
|
|
202
|
-
let matchCount = 0;
|
|
203
|
-
for (const token of queryTokens) {
|
|
204
|
-
if (textTokens.has(token)) {
|
|
205
|
-
matchCount++;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return matchCount >= Math.min(minMatchTokens, queryTokens.length);
|
|
209
|
-
}
|
|
210
174
|
// ============================================================================
|
|
211
175
|
// Fuzzy Matching Utilities
|
|
212
176
|
// ============================================================================
|
|
@@ -214,7 +178,7 @@ export function fuzzyTokenMatch(text, query, minMatchTokens = 2) {
|
|
|
214
178
|
* Calculate Levenshtein (edit) distance between two strings.
|
|
215
179
|
* Uses optimized single-row algorithm with O(min(m,n)) space.
|
|
216
180
|
*/
|
|
217
|
-
|
|
181
|
+
function levenshteinDistance(a, b) {
|
|
218
182
|
// Ensure a is the shorter string for space optimization
|
|
219
183
|
if (a.length > b.length) {
|
|
220
184
|
[a, b] = [b, a];
|
|
@@ -252,7 +216,7 @@ export function levenshteinDistance(a, b) {
|
|
|
252
216
|
* Calculate similarity ratio (0-1) between two strings based on Levenshtein distance.
|
|
253
217
|
* Returns 1 for identical strings, 0 for completely different strings.
|
|
254
218
|
*/
|
|
255
|
-
|
|
219
|
+
function stringSimilarity(a, b) {
|
|
256
220
|
const maxLen = Math.max(a.length, b.length);
|
|
257
221
|
if (maxLen === 0)
|
|
258
222
|
return 1; // Both empty strings are identical
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-utils.js","sourceRoot":"","sources":["../../../src/lib/text-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"text-utils.js","sourceRoot":"","sources":["../../../src/lib/text-utils.ts"],"names":[],"mappings":"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"}
|