agent-web-interface 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +226 -0
- package/dist/src/browser/ensure-browser.d.ts +39 -0
- package/dist/src/browser/ensure-browser.d.ts.map +1 -0
- package/dist/src/browser/ensure-browser.js +65 -0
- package/dist/src/browser/ensure-browser.js.map +1 -0
- package/dist/src/browser/index.d.ts +8 -0
- package/dist/src/browser/index.d.ts.map +1 -0
- package/dist/src/browser/index.js +8 -0
- package/dist/src/browser/index.js.map +1 -0
- package/dist/src/browser/page-network-tracker.d.ts +96 -0
- package/dist/src/browser/page-network-tracker.d.ts.map +1 -0
- package/dist/src/browser/page-network-tracker.js +235 -0
- package/dist/src/browser/page-network-tracker.js.map +1 -0
- package/dist/src/browser/page-registry.d.ts +137 -0
- package/dist/src/browser/page-registry.d.ts.map +1 -0
- package/dist/src/browser/page-registry.js +194 -0
- package/dist/src/browser/page-registry.js.map +1 -0
- package/dist/src/browser/page-stabilization.d.ts +35 -0
- package/dist/src/browser/page-stabilization.d.ts.map +1 -0
- package/dist/src/browser/page-stabilization.js +42 -0
- package/dist/src/browser/page-stabilization.js.map +1 -0
- package/dist/src/browser/session-manager.d.ts +336 -0
- package/dist/src/browser/session-manager.d.ts.map +1 -0
- package/dist/src/browser/session-manager.js +964 -0
- package/dist/src/browser/session-manager.js.map +1 -0
- package/dist/src/cdp/cdp-client.interface.d.ts +193 -0
- package/dist/src/cdp/cdp-client.interface.d.ts.map +1 -0
- package/dist/src/cdp/cdp-client.interface.js +9 -0
- package/dist/src/cdp/cdp-client.interface.js.map +1 -0
- package/dist/src/cdp/index.d.ts +9 -0
- package/dist/src/cdp/index.d.ts.map +1 -0
- package/dist/src/cdp/index.js +8 -0
- package/dist/src/cdp/index.js.map +1 -0
- package/dist/src/cdp/puppeteer-cdp-client.d.ts +97 -0
- package/dist/src/cdp/puppeteer-cdp-client.d.ts.map +1 -0
- package/dist/src/cdp/puppeteer-cdp-client.js +273 -0
- package/dist/src/cdp/puppeteer-cdp-client.js.map +1 -0
- package/dist/src/cli/args.d.ts +35 -0
- package/dist/src/cli/args.d.ts.map +1 -0
- package/dist/src/cli/args.js +76 -0
- package/dist/src/cli/args.js.map +1 -0
- package/dist/src/delta/dom-stabilizer.d.ts +46 -0
- package/dist/src/delta/dom-stabilizer.d.ts.map +1 -0
- package/dist/src/delta/dom-stabilizer.js +121 -0
- package/dist/src/delta/dom-stabilizer.js.map +1 -0
- package/dist/src/delta/index.d.ts +8 -0
- package/dist/src/delta/index.d.ts.map +1 -0
- package/dist/src/delta/index.js +7 -0
- package/dist/src/delta/index.js.map +1 -0
- package/dist/src/factpack/action-selector.d.ts +36 -0
- package/dist/src/factpack/action-selector.d.ts.map +1 -0
- package/dist/src/factpack/action-selector.js +367 -0
- package/dist/src/factpack/action-selector.js.map +1 -0
- package/dist/src/factpack/dialog-detector.d.ts +19 -0
- package/dist/src/factpack/dialog-detector.d.ts.map +1 -0
- package/dist/src/factpack/dialog-detector.js +354 -0
- package/dist/src/factpack/dialog-detector.js.map +1 -0
- package/dist/src/factpack/form-detector.d.ts +28 -0
- package/dist/src/factpack/form-detector.d.ts.map +1 -0
- package/dist/src/factpack/form-detector.js +555 -0
- package/dist/src/factpack/form-detector.js.map +1 -0
- package/dist/src/factpack/index.d.ts +32 -0
- package/dist/src/factpack/index.d.ts.map +1 -0
- package/dist/src/factpack/index.js +73 -0
- package/dist/src/factpack/index.js.map +1 -0
- package/dist/src/factpack/page-classifier.d.ts +22 -0
- package/dist/src/factpack/page-classifier.d.ts.map +1 -0
- package/dist/src/factpack/page-classifier.js +526 -0
- package/dist/src/factpack/page-classifier.js.map +1 -0
- package/dist/src/factpack/types.d.ts +307 -0
- package/dist/src/factpack/types.d.ts.map +1 -0
- package/dist/src/factpack/types.js +12 -0
- package/dist/src/factpack/types.js.map +1 -0
- package/dist/src/form/dependency-tracker.d.ts +108 -0
- package/dist/src/form/dependency-tracker.d.ts.map +1 -0
- package/dist/src/form/dependency-tracker.js +298 -0
- package/dist/src/form/dependency-tracker.js.map +1 -0
- package/dist/src/form/field-extractor.d.ts +32 -0
- package/dist/src/form/field-extractor.d.ts.map +1 -0
- package/dist/src/form/field-extractor.js +544 -0
- package/dist/src/form/field-extractor.js.map +1 -0
- package/dist/src/form/form-detector.d.ts +103 -0
- package/dist/src/form/form-detector.d.ts.map +1 -0
- package/dist/src/form/form-detector.js +704 -0
- package/dist/src/form/form-detector.js.map +1 -0
- package/dist/src/form/form-state.d.ts +23 -0
- package/dist/src/form/form-state.d.ts.map +1 -0
- package/dist/src/form/form-state.js +39 -0
- package/dist/src/form/form-state.js.map +1 -0
- package/dist/src/form/index.d.ts +23 -0
- package/dist/src/form/index.d.ts.map +1 -0
- package/dist/src/form/index.js +27 -0
- package/dist/src/form/index.js.map +1 -0
- package/dist/src/form/runtime-value-reader.d.ts +72 -0
- package/dist/src/form/runtime-value-reader.d.ts.map +1 -0
- package/dist/src/form/runtime-value-reader.js +232 -0
- package/dist/src/form/runtime-value-reader.js.map +1 -0
- package/dist/src/form/types.d.ts +384 -0
- package/dist/src/form/types.d.ts.map +1 -0
- package/dist/src/form/types.js +17 -0
- package/dist/src/form/types.js.map +1 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +212 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/constants.d.ts +27 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +63 -0
- package/dist/src/lib/constants.js.map +1 -0
- package/dist/src/lib/index.d.ts +12 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +17 -0
- package/dist/src/lib/index.js.map +1 -0
- package/dist/src/lib/regions.d.ts +29 -0
- package/dist/src/lib/regions.d.ts.map +1 -0
- package/dist/src/lib/regions.js +93 -0
- package/dist/src/lib/regions.js.map +1 -0
- package/dist/src/lib/scoring.d.ts +47 -0
- package/dist/src/lib/scoring.d.ts.map +1 -0
- package/dist/src/lib/scoring.js +79 -0
- package/dist/src/lib/scoring.js.map +1 -0
- package/dist/src/lib/selectors.d.ts +42 -0
- package/dist/src/lib/selectors.d.ts.map +1 -0
- package/dist/src/lib/selectors.js +138 -0
- package/dist/src/lib/selectors.js.map +1 -0
- package/dist/src/lib/text-utils.d.ts +155 -0
- package/dist/src/lib/text-utils.d.ts.map +1 -0
- package/dist/src/lib/text-utils.js +391 -0
- package/dist/src/lib/text-utils.js.map +1 -0
- package/dist/src/observation/eid-linker.d.ts +104 -0
- package/dist/src/observation/eid-linker.d.ts.map +1 -0
- package/dist/src/observation/eid-linker.js +403 -0
- package/dist/src/observation/eid-linker.js.map +1 -0
- package/dist/src/observation/index.d.ts +12 -0
- package/dist/src/observation/index.d.ts.map +1 -0
- package/dist/src/observation/index.js +15 -0
- package/dist/src/observation/index.js.map +1 -0
- package/dist/src/observation/observation-accumulator.d.ts +58 -0
- package/dist/src/observation/observation-accumulator.d.ts.map +1 -0
- package/dist/src/observation/observation-accumulator.js +213 -0
- package/dist/src/observation/observation-accumulator.js.map +1 -0
- package/dist/src/observation/observation.types.d.ts +139 -0
- package/dist/src/observation/observation.types.d.ts.map +1 -0
- package/dist/src/observation/observation.types.js +59 -0
- package/dist/src/observation/observation.types.js.map +1 -0
- package/dist/src/observation/observer-script.d.ts +19 -0
- package/dist/src/observation/observer-script.d.ts.map +1 -0
- package/dist/src/observation/observer-script.js +569 -0
- package/dist/src/observation/observer-script.js.map +1 -0
- package/dist/src/query/index.d.ts +9 -0
- package/dist/src/query/index.d.ts.map +1 -0
- package/dist/src/query/index.js +10 -0
- package/dist/src/query/index.js.map +1 -0
- package/dist/src/query/query-engine.d.ts +111 -0
- package/dist/src/query/query-engine.d.ts.map +1 -0
- package/dist/src/query/query-engine.js +509 -0
- package/dist/src/query/query-engine.js.map +1 -0
- package/dist/src/query/types/index.d.ts +5 -0
- package/dist/src/query/types/index.d.ts.map +1 -0
- package/dist/src/query/types/index.js +5 -0
- package/dist/src/query/types/index.js.map +1 -0
- package/dist/src/query/types/query.types.d.ts +141 -0
- package/dist/src/query/types/query.types.d.ts.map +1 -0
- package/dist/src/query/types/query.types.js +19 -0
- package/dist/src/query/types/query.types.js.map +1 -0
- package/dist/src/renderer/budget-manager.d.ts +46 -0
- package/dist/src/renderer/budget-manager.d.ts.map +1 -0
- package/dist/src/renderer/budget-manager.js +133 -0
- package/dist/src/renderer/budget-manager.js.map +1 -0
- package/dist/src/renderer/constants.d.ts +38 -0
- package/dist/src/renderer/constants.d.ts.map +1 -0
- package/dist/src/renderer/constants.js +29 -0
- package/dist/src/renderer/constants.js.map +1 -0
- package/dist/src/renderer/index.d.ts +12 -0
- package/dist/src/renderer/index.d.ts.map +1 -0
- package/dist/src/renderer/index.js +16 -0
- package/dist/src/renderer/index.js.map +1 -0
- package/dist/src/renderer/section-renderers.d.ts +42 -0
- package/dist/src/renderer/section-renderers.d.ts.map +1 -0
- package/dist/src/renderer/section-renderers.js +252 -0
- package/dist/src/renderer/section-renderers.js.map +1 -0
- package/dist/src/renderer/token-counter.d.ts +45 -0
- package/dist/src/renderer/token-counter.d.ts.map +1 -0
- package/dist/src/renderer/token-counter.js +65 -0
- package/dist/src/renderer/token-counter.js.map +1 -0
- package/dist/src/renderer/types.d.ts +71 -0
- package/dist/src/renderer/types.d.ts.map +1 -0
- package/dist/src/renderer/types.js +7 -0
- package/dist/src/renderer/types.js.map +1 -0
- package/dist/src/renderer/xml-renderer.d.ts +42 -0
- package/dist/src/renderer/xml-renderer.d.ts.map +1 -0
- package/dist/src/renderer/xml-renderer.js +103 -0
- package/dist/src/renderer/xml-renderer.js.map +1 -0
- package/dist/src/server/index.d.ts +8 -0
- package/dist/src/server/index.d.ts.map +1 -0
- package/dist/src/server/index.js +8 -0
- package/dist/src/server/index.js.map +1 -0
- package/dist/src/server/mcp-server.d.ts +59 -0
- package/dist/src/server/mcp-server.d.ts.map +1 -0
- package/dist/src/server/mcp-server.js +140 -0
- package/dist/src/server/mcp-server.js.map +1 -0
- package/dist/src/server/server-config.d.ts +41 -0
- package/dist/src/server/server-config.d.ts.map +1 -0
- package/dist/src/server/server-config.js +80 -0
- package/dist/src/server/server-config.js.map +1 -0
- package/dist/src/server/session-store.d.ts +148 -0
- package/dist/src/server/session-store.d.ts.map +1 -0
- package/dist/src/server/session-store.js +224 -0
- package/dist/src/server/session-store.js.map +1 -0
- package/dist/src/shared/errors/browser-session.error.d.ts +102 -0
- package/dist/src/shared/errors/browser-session.error.d.ts.map +1 -0
- package/dist/src/shared/errors/browser-session.error.js +153 -0
- package/dist/src/shared/errors/browser-session.error.js.map +1 -0
- package/dist/src/shared/errors/index.d.ts +5 -0
- package/dist/src/shared/errors/index.d.ts.map +1 -0
- package/dist/src/shared/errors/index.js +5 -0
- package/dist/src/shared/errors/index.js.map +1 -0
- package/dist/src/shared/services/dom-transformer.service.d.ts +71 -0
- package/dist/src/shared/services/dom-transformer.service.d.ts.map +1 -0
- package/dist/src/shared/services/dom-transformer.service.js +190 -0
- package/dist/src/shared/services/dom-transformer.service.js.map +1 -0
- package/dist/src/shared/services/index.d.ts +7 -0
- package/dist/src/shared/services/index.d.ts.map +1 -0
- package/dist/src/shared/services/index.js +7 -0
- package/dist/src/shared/services/index.js.map +1 -0
- package/dist/src/shared/services/logging.service.d.ts +154 -0
- package/dist/src/shared/services/logging.service.d.ts.map +1 -0
- package/dist/src/shared/services/logging.service.js +267 -0
- package/dist/src/shared/services/logging.service.js.map +1 -0
- package/dist/src/shared/services/selector-builder.service.d.ts +53 -0
- package/dist/src/shared/services/selector-builder.service.d.ts.map +1 -0
- package/dist/src/shared/services/selector-builder.service.js +240 -0
- package/dist/src/shared/services/selector-builder.service.js.map +1 -0
- package/dist/src/shared/types/base.types.d.ts +45 -0
- package/dist/src/shared/types/base.types.d.ts.map +1 -0
- package/dist/src/shared/types/base.types.js +8 -0
- package/dist/src/shared/types/base.types.js.map +1 -0
- package/dist/src/shared/types/index.d.ts +5 -0
- package/dist/src/shared/types/index.d.ts.map +1 -0
- package/dist/src/shared/types/index.js +5 -0
- package/dist/src/shared/types/index.js.map +1 -0
- package/dist/src/snapshot/element-resolver.d.ts +102 -0
- package/dist/src/snapshot/element-resolver.d.ts.map +1 -0
- package/dist/src/snapshot/element-resolver.js +379 -0
- package/dist/src/snapshot/element-resolver.js.map +1 -0
- package/dist/src/snapshot/extractors/attribute-extractor.d.ts +40 -0
- package/dist/src/snapshot/extractors/attribute-extractor.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/attribute-extractor.js +237 -0
- package/dist/src/snapshot/extractors/attribute-extractor.js.map +1 -0
- package/dist/src/snapshot/extractors/ax-extractor.d.ts +36 -0
- package/dist/src/snapshot/extractors/ax-extractor.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/ax-extractor.js +144 -0
- package/dist/src/snapshot/extractors/ax-extractor.js.map +1 -0
- package/dist/src/snapshot/extractors/dom-extractor.d.ts +21 -0
- package/dist/src/snapshot/extractors/dom-extractor.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/dom-extractor.js +137 -0
- package/dist/src/snapshot/extractors/dom-extractor.js.map +1 -0
- package/dist/src/snapshot/extractors/grouping-resolver.d.ts +39 -0
- package/dist/src/snapshot/extractors/grouping-resolver.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/grouping-resolver.js +260 -0
- package/dist/src/snapshot/extractors/grouping-resolver.js.map +1 -0
- package/dist/src/snapshot/extractors/index.d.ts +19 -0
- package/dist/src/snapshot/extractors/index.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/index.js +27 -0
- package/dist/src/snapshot/extractors/index.js.map +1 -0
- package/dist/src/snapshot/extractors/label-resolver.d.ts +44 -0
- package/dist/src/snapshot/extractors/label-resolver.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/label-resolver.js +173 -0
- package/dist/src/snapshot/extractors/label-resolver.js.map +1 -0
- package/dist/src/snapshot/extractors/layout-extractor.d.ts +52 -0
- package/dist/src/snapshot/extractors/layout-extractor.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/layout-extractor.js +382 -0
- package/dist/src/snapshot/extractors/layout-extractor.js.map +1 -0
- package/dist/src/snapshot/extractors/locator-builder.d.ts +27 -0
- package/dist/src/snapshot/extractors/locator-builder.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/locator-builder.js +223 -0
- package/dist/src/snapshot/extractors/locator-builder.js.map +1 -0
- package/dist/src/snapshot/extractors/region-resolver.d.ts +31 -0
- package/dist/src/snapshot/extractors/region-resolver.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/region-resolver.js +168 -0
- package/dist/src/snapshot/extractors/region-resolver.js.map +1 -0
- package/dist/src/snapshot/extractors/state-extractor.d.ts +30 -0
- package/dist/src/snapshot/extractors/state-extractor.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/state-extractor.js +181 -0
- package/dist/src/snapshot/extractors/state-extractor.js.map +1 -0
- package/dist/src/snapshot/extractors/types.d.ts +213 -0
- package/dist/src/snapshot/extractors/types.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/types.js +145 -0
- package/dist/src/snapshot/extractors/types.js.map +1 -0
- package/dist/src/snapshot/index.d.ts +14 -0
- package/dist/src/snapshot/index.d.ts.map +1 -0
- package/dist/src/snapshot/index.js +18 -0
- package/dist/src/snapshot/index.js.map +1 -0
- package/dist/src/snapshot/snapshot-compiler.d.ts +73 -0
- package/dist/src/snapshot/snapshot-compiler.d.ts.map +1 -0
- package/dist/src/snapshot/snapshot-compiler.js +763 -0
- package/dist/src/snapshot/snapshot-compiler.js.map +1 -0
- package/dist/src/snapshot/snapshot-health.d.ts +97 -0
- package/dist/src/snapshot/snapshot-health.d.ts.map +1 -0
- package/dist/src/snapshot/snapshot-health.js +214 -0
- package/dist/src/snapshot/snapshot-health.js.map +1 -0
- package/dist/src/snapshot/snapshot-store.d.ts +137 -0
- package/dist/src/snapshot/snapshot-store.d.ts.map +1 -0
- package/dist/src/snapshot/snapshot-store.js +202 -0
- package/dist/src/snapshot/snapshot-store.js.map +1 -0
- package/dist/src/snapshot/snapshot.types.d.ts +250 -0
- package/dist/src/snapshot/snapshot.types.d.ts.map +1 -0
- package/dist/src/snapshot/snapshot.types.js +54 -0
- package/dist/src/snapshot/snapshot.types.js.map +1 -0
- package/dist/src/state/actionables-filter.d.ts +47 -0
- package/dist/src/state/actionables-filter.d.ts.map +1 -0
- package/dist/src/state/actionables-filter.js +173 -0
- package/dist/src/state/actionables-filter.js.map +1 -0
- package/dist/src/state/atoms-extractor.d.ts +23 -0
- package/dist/src/state/atoms-extractor.d.ts.map +1 -0
- package/dist/src/state/atoms-extractor.js +160 -0
- package/dist/src/state/atoms-extractor.js.map +1 -0
- package/dist/src/state/constants.d.ts +125 -0
- package/dist/src/state/constants.d.ts.map +1 -0
- package/dist/src/state/constants.js +131 -0
- package/dist/src/state/constants.js.map +1 -0
- package/dist/src/state/diff-engine.d.ts +23 -0
- package/dist/src/state/diff-engine.d.ts.map +1 -0
- package/dist/src/state/diff-engine.js +475 -0
- package/dist/src/state/diff-engine.js.map +1 -0
- package/dist/src/state/element-identity.d.ts +75 -0
- package/dist/src/state/element-identity.d.ts.map +1 -0
- package/dist/src/state/element-identity.js +129 -0
- package/dist/src/state/element-identity.js.map +1 -0
- package/dist/src/state/element-ref.types.d.ts +135 -0
- package/dist/src/state/element-ref.types.d.ts.map +1 -0
- package/dist/src/state/element-ref.types.js +13 -0
- package/dist/src/state/element-ref.types.js.map +1 -0
- package/dist/src/state/element-registry.d.ts +118 -0
- package/dist/src/state/element-registry.d.ts.map +1 -0
- package/dist/src/state/element-registry.js +222 -0
- package/dist/src/state/element-registry.js.map +1 -0
- package/dist/src/state/health.types.d.ts +93 -0
- package/dist/src/state/health.types.d.ts.map +1 -0
- package/dist/src/state/health.types.js +56 -0
- package/dist/src/state/health.types.js.map +1 -0
- package/dist/src/state/layer-detector.d.ts +23 -0
- package/dist/src/state/layer-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detector.js +368 -0
- package/dist/src/state/layer-detector.js.map +1 -0
- package/dist/src/state/locator-generator.d.ts +21 -0
- package/dist/src/state/locator-generator.d.ts.map +1 -0
- package/dist/src/state/locator-generator.js +137 -0
- package/dist/src/state/locator-generator.js.map +1 -0
- package/dist/src/state/state-manager.d.ts +104 -0
- package/dist/src/state/state-manager.d.ts.map +1 -0
- package/dist/src/state/state-manager.js +618 -0
- package/dist/src/state/state-manager.js.map +1 -0
- package/dist/src/state/state-renderer.d.ts +63 -0
- package/dist/src/state/state-renderer.d.ts.map +1 -0
- package/dist/src/state/state-renderer.js +340 -0
- package/dist/src/state/state-renderer.js.map +1 -0
- package/dist/src/state/types.d.ts +353 -0
- package/dist/src/state/types.d.ts.map +1 -0
- package/dist/src/state/types.js +8 -0
- package/dist/src/state/types.js.map +1 -0
- package/dist/src/tools/browser-tools.d.ts +140 -0
- package/dist/src/tools/browser-tools.d.ts.map +1 -0
- package/dist/src/tools/browser-tools.js +657 -0
- package/dist/src/tools/browser-tools.js.map +1 -0
- package/dist/src/tools/errors.d.ts +63 -0
- package/dist/src/tools/errors.d.ts.map +1 -0
- package/dist/src/tools/errors.js +86 -0
- package/dist/src/tools/errors.js.map +1 -0
- package/dist/src/tools/execute-action.d.ts +135 -0
- package/dist/src/tools/execute-action.d.ts.map +1 -0
- package/dist/src/tools/execute-action.js +579 -0
- package/dist/src/tools/execute-action.js.map +1 -0
- package/dist/src/tools/form-tools.d.ts +109 -0
- package/dist/src/tools/form-tools.d.ts.map +1 -0
- package/dist/src/tools/form-tools.js +434 -0
- package/dist/src/tools/form-tools.js.map +1 -0
- package/dist/src/tools/index.d.ts +11 -0
- package/dist/src/tools/index.d.ts.map +1 -0
- package/dist/src/tools/index.js +49 -0
- package/dist/src/tools/index.js.map +1 -0
- package/dist/src/tools/response-builder.d.ts +98 -0
- package/dist/src/tools/response-builder.d.ts.map +1 -0
- package/dist/src/tools/response-builder.js +219 -0
- package/dist/src/tools/response-builder.js.map +1 -0
- package/dist/src/tools/tool-schemas.d.ts +2482 -0
- package/dist/src/tools/tool-schemas.d.ts.map +1 -0
- package/dist/src/tools/tool-schemas.js +606 -0
- package/dist/src/tools/tool-schemas.js.map +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +16 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Form Tools
|
|
3
|
+
*
|
|
4
|
+
* MCP tool handlers for form understanding.
|
|
5
|
+
* Provides semantic understanding of form-like interactions.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { type FormRegion, type FormField, type FormAction, type FieldDependency } from '../form/index.js';
|
|
9
|
+
import type { SessionManager } from '../browser/session-manager.js';
|
|
10
|
+
/**
|
|
11
|
+
* Initialize form tools with a session manager instance.
|
|
12
|
+
* Must be called before using any form tool handlers.
|
|
13
|
+
*
|
|
14
|
+
* @param manager - SessionManager instance
|
|
15
|
+
*/
|
|
16
|
+
export declare function initializeFormTools(manager: SessionManager): void;
|
|
17
|
+
/**
|
|
18
|
+
* get_form_understanding input schema
|
|
19
|
+
*/
|
|
20
|
+
export declare const GetFormUnderstandingInputSchema: z.ZodObject<{
|
|
21
|
+
/** Page identifier (optional, defaults to MRU page) */
|
|
22
|
+
page_id: z.ZodOptional<z.ZodString>;
|
|
23
|
+
/** Form ID to get specific form (optional) */
|
|
24
|
+
form_id: z.ZodOptional<z.ZodString>;
|
|
25
|
+
/** Include field values in response (default: false for security) */
|
|
26
|
+
include_values: z.ZodDefault<z.ZodBoolean>;
|
|
27
|
+
}, "strip", z.ZodTypeAny, {
|
|
28
|
+
include_values: boolean;
|
|
29
|
+
page_id?: string | undefined;
|
|
30
|
+
form_id?: string | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
page_id?: string | undefined;
|
|
33
|
+
include_values?: boolean | undefined;
|
|
34
|
+
form_id?: string | undefined;
|
|
35
|
+
}>;
|
|
36
|
+
export type GetFormUnderstandingInput = z.infer<typeof GetFormUnderstandingInputSchema>;
|
|
37
|
+
/**
|
|
38
|
+
* get_field_context input schema
|
|
39
|
+
*/
|
|
40
|
+
export declare const GetFieldContextInputSchema: z.ZodObject<{
|
|
41
|
+
/** Page identifier (optional, defaults to MRU page) */
|
|
42
|
+
page_id: z.ZodOptional<z.ZodString>;
|
|
43
|
+
/** Element ID of the field */
|
|
44
|
+
eid: z.ZodString;
|
|
45
|
+
}, "strip", z.ZodTypeAny, {
|
|
46
|
+
eid: string;
|
|
47
|
+
page_id?: string | undefined;
|
|
48
|
+
}, {
|
|
49
|
+
eid: string;
|
|
50
|
+
page_id?: string | undefined;
|
|
51
|
+
}>;
|
|
52
|
+
export type GetFieldContextInput = z.infer<typeof GetFieldContextInputSchema>;
|
|
53
|
+
/**
|
|
54
|
+
* Build XML response for form understanding.
|
|
55
|
+
*
|
|
56
|
+
* Optimized format with no wrapper elements, flattened attributes, and label as content.
|
|
57
|
+
* Fields use their kind as tag name (textbox, checkbox, etc.), actions use button tag.
|
|
58
|
+
*/
|
|
59
|
+
declare function buildFormUnderstandingXml(pageId: string, forms: FormRegion[], includeValues: boolean, limitations?: string): string;
|
|
60
|
+
/**
|
|
61
|
+
* Build XML element for a form field using kind as tag name and label as content.
|
|
62
|
+
* Omits default values (enabled=true, filled=false).
|
|
63
|
+
*/
|
|
64
|
+
declare function buildFieldElementXml(field: FormField, includeValues: boolean, indent: number): string;
|
|
65
|
+
/**
|
|
66
|
+
* Build XML element for a form action as <button>.
|
|
67
|
+
* Omits default values (enabled=true).
|
|
68
|
+
*/
|
|
69
|
+
declare function buildButtonXml(action: FormAction, indent: number): string;
|
|
70
|
+
/**
|
|
71
|
+
* Suggest the next action for a form.
|
|
72
|
+
*/
|
|
73
|
+
declare function suggestNextAction(form: FormRegion): {
|
|
74
|
+
eid: string;
|
|
75
|
+
label: string;
|
|
76
|
+
reason: string;
|
|
77
|
+
} | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Build XML for field context.
|
|
80
|
+
*
|
|
81
|
+
* Optimized format with flattened attributes and no unnecessary wrappers.
|
|
82
|
+
* Label is text content, state/constraints are root attributes, defaults omitted.
|
|
83
|
+
*/
|
|
84
|
+
declare function buildFieldContextXml(field: FormField, form: FormRegion, dependencies: FieldDependency[]): string;
|
|
85
|
+
/** @internal Exported for testing only */
|
|
86
|
+
export declare const _testExports: {
|
|
87
|
+
buildFormUnderstandingXml: typeof buildFormUnderstandingXml;
|
|
88
|
+
buildFieldContextXml: typeof buildFieldContextXml;
|
|
89
|
+
buildFieldElementXml: typeof buildFieldElementXml;
|
|
90
|
+
buildButtonXml: typeof buildButtonXml;
|
|
91
|
+
suggestNextAction: typeof suggestNextAction;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Get form understanding for a page.
|
|
95
|
+
*
|
|
96
|
+
* Detects form regions and extracts rich metadata about fields,
|
|
97
|
+
* dependencies, and state. Reads actual runtime values via CDP
|
|
98
|
+
* to provide accurate filled/has_value status.
|
|
99
|
+
*/
|
|
100
|
+
export declare function getFormUnderstanding(rawInput: unknown): Promise<string>;
|
|
101
|
+
/**
|
|
102
|
+
* Get context for a specific field.
|
|
103
|
+
*
|
|
104
|
+
* Returns detailed information about a field including purpose inference,
|
|
105
|
+
* constraints, dependencies, and suggested next action.
|
|
106
|
+
*/
|
|
107
|
+
export declare function getFieldContext(rawInput: unknown): string;
|
|
108
|
+
export {};
|
|
109
|
+
//# sourceMappingURL=form-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/form-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,eAAe,EAErB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAMpE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAEjE;AAoCD;;GAEG;AACH,eAAO,MAAM,+BAA+B;IAC1C,uDAAuD;;IAEvD,8CAA8C;;IAE9C,qEAAqE;;;;;;;;;;EAErE,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF;;GAEG;AACH,eAAO,MAAM,0BAA0B;IACrC,uDAAuD;;IAEvD,8BAA8B;;;;;;;;EAE9B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAM9E;;;;;GAKG;AACH,iBAAS,yBAAyB,CAChC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,EAAE,EACnB,aAAa,EAAE,OAAO,EACtB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAqDR;AAED;;;GAGG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAkC9F;AAED;;;GAGG;AACH,iBAAS,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAalE;AAED;;GAEG;AACH,iBAAS,iBAAiB,CACxB,IAAI,EAAE,UAAU,GACf;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAsC5D;AAED;;;;;GAKG;AACH,iBAAS,oBAAoB,CAC3B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,eAAe,EAAE,GAC9B,MAAM,CAgGR;AAMD,0CAA0C;AAC1C,eAAO,MAAM,YAAY;;;;;;CAMxB,CAAC;AAMF;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA4F7E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAsCzD"}
|
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Form Tools
|
|
3
|
+
*
|
|
4
|
+
* MCP tool handlers for form understanding.
|
|
5
|
+
* Provides semantic understanding of form-like interactions.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { getSnapshotStore } from './browser-tools.js';
|
|
9
|
+
import { detectForms, getDependencyTracker, computeFormState, readRuntimeValues, } from '../form/index.js';
|
|
10
|
+
import { escapeXml } from '../lib/text-utils.js';
|
|
11
|
+
// Module-level reference to session manager (set via initializeFormTools)
|
|
12
|
+
let sessionManager = null;
|
|
13
|
+
/**
|
|
14
|
+
* Initialize form tools with a session manager instance.
|
|
15
|
+
* Must be called before using any form tool handlers.
|
|
16
|
+
*
|
|
17
|
+
* @param manager - SessionManager instance
|
|
18
|
+
*/
|
|
19
|
+
export function initializeFormTools(manager) {
|
|
20
|
+
sessionManager = manager;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get the session manager, throwing if not initialized.
|
|
24
|
+
*/
|
|
25
|
+
function getSessionManager() {
|
|
26
|
+
if (!sessionManager) {
|
|
27
|
+
throw new Error('Form tools not initialized. Call initializeFormTools() first.');
|
|
28
|
+
}
|
|
29
|
+
return sessionManager;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Resolve page_id to a PageHandle, throwing if not found.
|
|
33
|
+
*
|
|
34
|
+
* @param session - SessionManager instance
|
|
35
|
+
* @param page_id - Optional page identifier
|
|
36
|
+
* @returns PageHandle for the resolved page
|
|
37
|
+
* @throws Error if no page available
|
|
38
|
+
*/
|
|
39
|
+
function resolvePage(session, page_id) {
|
|
40
|
+
const handle = session.resolvePage(page_id);
|
|
41
|
+
if (!handle) {
|
|
42
|
+
const message = page_id
|
|
43
|
+
? `Page not found: ${page_id}`
|
|
44
|
+
: 'No page available. Use navigate first.';
|
|
45
|
+
throw new Error(message);
|
|
46
|
+
}
|
|
47
|
+
session.touchPage(handle.page_id);
|
|
48
|
+
return handle;
|
|
49
|
+
}
|
|
50
|
+
// ============================================================================
|
|
51
|
+
// Input/Output Schemas
|
|
52
|
+
// ============================================================================
|
|
53
|
+
/**
|
|
54
|
+
* get_form_understanding input schema
|
|
55
|
+
*/
|
|
56
|
+
export const GetFormUnderstandingInputSchema = z.object({
|
|
57
|
+
/** Page identifier (optional, defaults to MRU page) */
|
|
58
|
+
page_id: z.string().optional(),
|
|
59
|
+
/** Form ID to get specific form (optional) */
|
|
60
|
+
form_id: z.string().optional(),
|
|
61
|
+
/** Include field values in response (default: false for security) */
|
|
62
|
+
include_values: z.boolean().default(false),
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* get_field_context input schema
|
|
66
|
+
*/
|
|
67
|
+
export const GetFieldContextInputSchema = z.object({
|
|
68
|
+
/** Page identifier (optional, defaults to MRU page) */
|
|
69
|
+
page_id: z.string().optional(),
|
|
70
|
+
/** Element ID of the field */
|
|
71
|
+
eid: z.string(),
|
|
72
|
+
});
|
|
73
|
+
// ============================================================================
|
|
74
|
+
// Response Builders
|
|
75
|
+
// ============================================================================
|
|
76
|
+
/**
|
|
77
|
+
* Build XML response for form understanding.
|
|
78
|
+
*
|
|
79
|
+
* Optimized format with no wrapper elements, flattened attributes, and label as content.
|
|
80
|
+
* Fields use their kind as tag name (textbox, checkbox, etc.), actions use button tag.
|
|
81
|
+
*/
|
|
82
|
+
function buildFormUnderstandingXml(pageId, forms, includeValues, limitations) {
|
|
83
|
+
const lines = [];
|
|
84
|
+
const limitAttr = limitations ? ` limitations="${escapeXml(limitations)}"` : '';
|
|
85
|
+
lines.push(`<forms page="${escapeXml(pageId)}"${limitAttr}>`);
|
|
86
|
+
// Sort forms by form_id for deterministic output
|
|
87
|
+
const sortedForms = [...forms].sort((a, b) => a.form_id.localeCompare(b.form_id));
|
|
88
|
+
for (const form of sortedForms) {
|
|
89
|
+
// Form attributes with flattened state
|
|
90
|
+
const formAttrs = [
|
|
91
|
+
`id="${escapeXml(form.form_id)}"`,
|
|
92
|
+
`intent="${form.intent ?? 'unknown'}"`,
|
|
93
|
+
`completion="${form.state.completion_pct}%"`,
|
|
94
|
+
];
|
|
95
|
+
if (!form.state.can_submit)
|
|
96
|
+
formAttrs.push('can_submit="false"');
|
|
97
|
+
if (form.state.error_count > 0)
|
|
98
|
+
formAttrs.push(`errors="${form.state.error_count}"`);
|
|
99
|
+
lines.push(` <form ${formAttrs.join(' ')}>`);
|
|
100
|
+
// Sort fields by backend_node_id (DOM order proxy) for deterministic output
|
|
101
|
+
const sortedFields = [...form.fields].sort((a, b) => (a.backend_node_id ?? 0) - (b.backend_node_id ?? 0));
|
|
102
|
+
// Fields - use kind as tag name, label as content
|
|
103
|
+
for (const field of sortedFields) {
|
|
104
|
+
lines.push(buildFieldElementXml(field, includeValues, 4));
|
|
105
|
+
}
|
|
106
|
+
// Sort actions by eid for deterministic output
|
|
107
|
+
const sortedActions = [...form.actions].sort((a, b) => a.eid.localeCompare(b.eid));
|
|
108
|
+
// Actions as <button> elements
|
|
109
|
+
for (const action of sortedActions) {
|
|
110
|
+
lines.push(buildButtonXml(action, 4));
|
|
111
|
+
}
|
|
112
|
+
// Next suggested action
|
|
113
|
+
const nextAction = suggestNextAction(form);
|
|
114
|
+
if (nextAction) {
|
|
115
|
+
lines.push(` <next eid="${escapeXml(nextAction.eid)}" reason="${escapeXml(nextAction.reason)}" />`);
|
|
116
|
+
}
|
|
117
|
+
lines.push(' </form>');
|
|
118
|
+
}
|
|
119
|
+
lines.push('</forms>');
|
|
120
|
+
return lines.join('\n');
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Build XML element for a form field using kind as tag name and label as content.
|
|
124
|
+
* Omits default values (enabled=true, filled=false).
|
|
125
|
+
*/
|
|
126
|
+
function buildFieldElementXml(field, includeValues, indent) {
|
|
127
|
+
const pad = ' '.repeat(indent);
|
|
128
|
+
const attrs = [
|
|
129
|
+
`eid="${escapeXml(field.eid)}"`,
|
|
130
|
+
`purpose="${field.purpose.semantic_type}"`,
|
|
131
|
+
];
|
|
132
|
+
// Only include non-default states
|
|
133
|
+
if (field.state.filled)
|
|
134
|
+
attrs.push('filled="true"');
|
|
135
|
+
if (!field.state.enabled)
|
|
136
|
+
attrs.push('enabled="false"');
|
|
137
|
+
if (!field.state.valid) {
|
|
138
|
+
attrs.push('invalid="true"');
|
|
139
|
+
if (field.state.validation_message) {
|
|
140
|
+
attrs.push(`error="${escapeXml(field.state.validation_message)}"`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (field.constraints.required)
|
|
144
|
+
attrs.push('required="true"');
|
|
145
|
+
if (includeValues && field.state.current_value) {
|
|
146
|
+
attrs.push(`value="${escapeXml(field.state.current_value)}"`);
|
|
147
|
+
}
|
|
148
|
+
if (field.depends_on && field.depends_on.length > 0) {
|
|
149
|
+
const sortedDeps = [...field.depends_on].sort((a, b) => a.source_eid.localeCompare(b.source_eid));
|
|
150
|
+
const deps = sortedDeps.map((d) => d.source_eid).join(',');
|
|
151
|
+
attrs.push(`depends="${escapeXml(deps)}"`);
|
|
152
|
+
}
|
|
153
|
+
// Use kind as tag name
|
|
154
|
+
const tag = field.kind;
|
|
155
|
+
return `${pad}<${tag} ${attrs.join(' ')}>${escapeXml(field.label)}</${tag}>`;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Build XML element for a form action as <button>.
|
|
159
|
+
* Omits default values (enabled=true).
|
|
160
|
+
*/
|
|
161
|
+
function buildButtonXml(action, indent) {
|
|
162
|
+
const pad = ' '.repeat(indent);
|
|
163
|
+
const attrs = [`eid="${escapeXml(action.eid)}"`, `type="${action.type}"`];
|
|
164
|
+
// Only include non-defaults
|
|
165
|
+
if (!action.enabled)
|
|
166
|
+
attrs.push('enabled="false"');
|
|
167
|
+
if (action.is_primary)
|
|
168
|
+
attrs.push('primary="true"');
|
|
169
|
+
if (!action.enabled && action.disabled_reason) {
|
|
170
|
+
attrs.push(`blocked="${escapeXml(action.disabled_reason)}"`);
|
|
171
|
+
}
|
|
172
|
+
return `${pad}<button ${attrs.join(' ')}>${escapeXml(action.label)}</button>`;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Suggest the next action for a form.
|
|
176
|
+
*/
|
|
177
|
+
function suggestNextAction(form) {
|
|
178
|
+
// Find first required unfilled field that is enabled
|
|
179
|
+
const nextRequired = form.fields.find((f) => f.constraints.required && !f.state.filled && f.state.enabled);
|
|
180
|
+
if (nextRequired) {
|
|
181
|
+
return {
|
|
182
|
+
eid: nextRequired.eid,
|
|
183
|
+
label: nextRequired.label,
|
|
184
|
+
reason: 'Next required field',
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
// Find first unfilled optional field that is enabled
|
|
188
|
+
const nextOptional = form.fields.find((f) => !f.state.filled && f.state.enabled);
|
|
189
|
+
if (nextOptional) {
|
|
190
|
+
return {
|
|
191
|
+
eid: nextOptional.eid,
|
|
192
|
+
label: nextOptional.label,
|
|
193
|
+
reason: 'Optional field',
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
// Check if form can be submitted
|
|
197
|
+
if (form.state.can_submit) {
|
|
198
|
+
const submitAction = form.actions.find((a) => a.type === 'submit' && a.enabled);
|
|
199
|
+
if (submitAction) {
|
|
200
|
+
return {
|
|
201
|
+
eid: submitAction.eid,
|
|
202
|
+
label: submitAction.label,
|
|
203
|
+
reason: 'Form ready to submit',
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return undefined;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Build XML for field context.
|
|
211
|
+
*
|
|
212
|
+
* Optimized format with flattened attributes and no unnecessary wrappers.
|
|
213
|
+
* Label is text content, state/constraints are root attributes, defaults omitted.
|
|
214
|
+
*/
|
|
215
|
+
function buildFieldContextXml(field, form, dependencies) {
|
|
216
|
+
const lines = [];
|
|
217
|
+
// Build root <field> attributes
|
|
218
|
+
const attrs = [
|
|
219
|
+
`eid="${escapeXml(field.eid)}"`,
|
|
220
|
+
`kind="${field.kind}"`,
|
|
221
|
+
`purpose="${field.purpose.semantic_type}"`,
|
|
222
|
+
`confidence="${field.purpose.confidence.toFixed(2)}"`,
|
|
223
|
+
];
|
|
224
|
+
// Signals as comma-separated attribute (sorted for deterministic output)
|
|
225
|
+
const sortedSignals = [...field.purpose.inferred_from].sort();
|
|
226
|
+
if (sortedSignals.length > 0) {
|
|
227
|
+
attrs.push(`signals="${escapeXml(sortedSignals.join(', '))}"`);
|
|
228
|
+
}
|
|
229
|
+
// State flags (only include non-defaults)
|
|
230
|
+
if (field.state.filled)
|
|
231
|
+
attrs.push('filled="true"');
|
|
232
|
+
if (!field.state.enabled)
|
|
233
|
+
attrs.push('enabled="false"');
|
|
234
|
+
if (!field.state.valid)
|
|
235
|
+
attrs.push('valid="false"');
|
|
236
|
+
if (field.state.focused)
|
|
237
|
+
attrs.push('focused="true"');
|
|
238
|
+
if (field.state.value_source) {
|
|
239
|
+
attrs.push(`value_source="${field.state.value_source}"`);
|
|
240
|
+
}
|
|
241
|
+
// Constraints (only include non-defaults)
|
|
242
|
+
if (field.constraints.required)
|
|
243
|
+
attrs.push('required="true"');
|
|
244
|
+
if (field.constraints.min_length !== undefined) {
|
|
245
|
+
attrs.push(`min_length="${field.constraints.min_length}"`);
|
|
246
|
+
}
|
|
247
|
+
if (field.constraints.max_length !== undefined) {
|
|
248
|
+
attrs.push(`max_length="${field.constraints.max_length}"`);
|
|
249
|
+
}
|
|
250
|
+
if (field.constraints.pattern) {
|
|
251
|
+
attrs.push(`pattern="${escapeXml(field.constraints.pattern)}"`);
|
|
252
|
+
}
|
|
253
|
+
// Validation error
|
|
254
|
+
if (!field.state.valid && field.state.validation_message) {
|
|
255
|
+
attrs.push(`error="${escapeXml(field.state.validation_message)}"`);
|
|
256
|
+
}
|
|
257
|
+
// Dependencies summary (eids of fields this depends on)
|
|
258
|
+
if (dependencies.length > 0) {
|
|
259
|
+
const depEids = [...new Set(dependencies.map((d) => d.source_eid))].sort();
|
|
260
|
+
attrs.push(`depends="${escapeXml(depEids.join(','))}"`);
|
|
261
|
+
}
|
|
262
|
+
// Start field element with label as content
|
|
263
|
+
lines.push(`<field ${attrs.join(' ')}>${escapeXml(field.label)}`);
|
|
264
|
+
// Options (for select/radio), sorted by value for deterministic output
|
|
265
|
+
const hasOptions = field.constraints.options && field.constraints.options.length > 0;
|
|
266
|
+
if (hasOptions) {
|
|
267
|
+
const sortedOptions = [...field.constraints.options].sort((a, b) => a.value.localeCompare(b.value));
|
|
268
|
+
for (const opt of sortedOptions) {
|
|
269
|
+
const optAttrs = [`value="${escapeXml(opt.value)}"`];
|
|
270
|
+
if (opt.selected)
|
|
271
|
+
optAttrs.push('selected="true"');
|
|
272
|
+
if (opt.eid)
|
|
273
|
+
optAttrs.push(`eid="${escapeXml(opt.eid)}"`);
|
|
274
|
+
lines.push(` <option ${optAttrs.join(' ')}>${escapeXml(opt.label)}</option>`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
// Dependencies (sorted by source_eid, then type for deterministic output)
|
|
278
|
+
if (dependencies.length > 0) {
|
|
279
|
+
const sortedDeps = [...dependencies].sort((a, b) => a.source_eid.localeCompare(b.source_eid) || a.type.localeCompare(b.type));
|
|
280
|
+
for (const dep of sortedDeps) {
|
|
281
|
+
lines.push(` <dependency source="${escapeXml(dep.source_eid)}" ` +
|
|
282
|
+
`type="${dep.type}" confidence="${dep.confidence.toFixed(2)}" />`);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
// Form context
|
|
286
|
+
lines.push(` <form id="${escapeXml(form.form_id)}" ` +
|
|
287
|
+
`intent="${form.intent ?? 'unknown'}" completion="${form.state.completion_pct}%" />`);
|
|
288
|
+
// Next suggested action
|
|
289
|
+
const nextAction = suggestNextAction(form);
|
|
290
|
+
if (nextAction) {
|
|
291
|
+
lines.push(` <next eid="${escapeXml(nextAction.eid)}" reason="${escapeXml(nextAction.reason)}" />`);
|
|
292
|
+
}
|
|
293
|
+
lines.push('</field>');
|
|
294
|
+
return lines.join('\n');
|
|
295
|
+
}
|
|
296
|
+
// ============================================================================
|
|
297
|
+
// Test Exports (for unit testing XML output format)
|
|
298
|
+
// ============================================================================
|
|
299
|
+
/** @internal Exported for testing only */
|
|
300
|
+
export const _testExports = {
|
|
301
|
+
buildFormUnderstandingXml,
|
|
302
|
+
buildFieldContextXml,
|
|
303
|
+
buildFieldElementXml,
|
|
304
|
+
buildButtonXml,
|
|
305
|
+
suggestNextAction,
|
|
306
|
+
};
|
|
307
|
+
// ============================================================================
|
|
308
|
+
// Tool Handlers
|
|
309
|
+
// ============================================================================
|
|
310
|
+
/**
|
|
311
|
+
* Get form understanding for a page.
|
|
312
|
+
*
|
|
313
|
+
* Detects form regions and extracts rich metadata about fields,
|
|
314
|
+
* dependencies, and state. Reads actual runtime values via CDP
|
|
315
|
+
* to provide accurate filled/has_value status.
|
|
316
|
+
*/
|
|
317
|
+
export async function getFormUnderstanding(rawInput) {
|
|
318
|
+
const input = GetFormUnderstandingInputSchema.parse(rawInput);
|
|
319
|
+
const session = getSessionManager();
|
|
320
|
+
const snapshotStore = getSnapshotStore();
|
|
321
|
+
// Resolve page with CDP client for runtime value reading
|
|
322
|
+
const handle = resolvePage(session, input.page_id);
|
|
323
|
+
const pageId = handle.page_id;
|
|
324
|
+
// Get snapshot for the page
|
|
325
|
+
const snapshot = snapshotStore.getByPageId(pageId);
|
|
326
|
+
if (!snapshot) {
|
|
327
|
+
return '<error>No snapshot available. Use capture_snapshot first.</error>';
|
|
328
|
+
}
|
|
329
|
+
// Detect forms
|
|
330
|
+
const allForms = detectForms(snapshot);
|
|
331
|
+
// Filter by form_id if specified
|
|
332
|
+
const forms = input.form_id ? allForms.filter((f) => f.form_id === input.form_id) : allForms;
|
|
333
|
+
if (forms.length === 0 && input.form_id) {
|
|
334
|
+
return `<error>Form not found: ${escapeXml(input.form_id)}</error>`;
|
|
335
|
+
}
|
|
336
|
+
// Read runtime values for form fields
|
|
337
|
+
const allFields = forms.flatMap((f) => f.fields);
|
|
338
|
+
let limitations;
|
|
339
|
+
if (allFields.length > 0) {
|
|
340
|
+
// Build field value requests
|
|
341
|
+
const fieldRequests = allFields.map((f) => ({
|
|
342
|
+
backend_node_id: f.backend_node_id,
|
|
343
|
+
frame_id: f.frame_id,
|
|
344
|
+
semantic_type: f.purpose.semantic_type,
|
|
345
|
+
input_type: snapshot.nodes.find((n) => n.node_id === f.eid)?.attributes?.input_type,
|
|
346
|
+
label: f.label,
|
|
347
|
+
}));
|
|
348
|
+
const runtimeResult = await readRuntimeValues(handle.cdp, fieldRequests, {
|
|
349
|
+
maxFieldsToRead: 50,
|
|
350
|
+
concurrencyLimit: 8,
|
|
351
|
+
timeoutMs: 2000,
|
|
352
|
+
maskSensitive: true,
|
|
353
|
+
});
|
|
354
|
+
// Update field states with runtime values
|
|
355
|
+
for (const form of forms) {
|
|
356
|
+
for (const field of form.fields) {
|
|
357
|
+
const runtimeValue = runtimeResult.values.get(field.backend_node_id);
|
|
358
|
+
if (runtimeValue !== undefined) {
|
|
359
|
+
// Runtime read succeeded
|
|
360
|
+
field.state.has_value = runtimeValue.length > 0;
|
|
361
|
+
field.state.filled = runtimeValue.length > 0;
|
|
362
|
+
field.state.value_source = 'runtime';
|
|
363
|
+
if (input.include_values) {
|
|
364
|
+
field.state.current_value = runtimeValue; // Already masked if sensitive
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
// Runtime read failed - be conservative, don't trust attribute
|
|
369
|
+
// Keep existing filled state from snapshot but mark source as unknown
|
|
370
|
+
field.state.value_source = undefined; // Unknown
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
// Recompute form state after field updates
|
|
374
|
+
form.state = computeFormState(form.fields);
|
|
375
|
+
}
|
|
376
|
+
if (runtimeResult.partial) {
|
|
377
|
+
limitations = runtimeResult.partial_reason;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
// Enrich fields with observed dependencies
|
|
381
|
+
const tracker = getDependencyTracker();
|
|
382
|
+
for (const form of forms) {
|
|
383
|
+
for (const field of form.fields) {
|
|
384
|
+
const deps = tracker.getDependenciesFor(pageId, field.eid);
|
|
385
|
+
if (deps.length > 0) {
|
|
386
|
+
field.depends_on = deps;
|
|
387
|
+
}
|
|
388
|
+
const dependents = tracker.getDependentsOf(pageId, field.eid);
|
|
389
|
+
if (dependents.length > 0) {
|
|
390
|
+
field.dependents = dependents;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
return buildFormUnderstandingXml(pageId, forms, input.include_values, limitations);
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Get context for a specific field.
|
|
398
|
+
*
|
|
399
|
+
* Returns detailed information about a field including purpose inference,
|
|
400
|
+
* constraints, dependencies, and suggested next action.
|
|
401
|
+
*/
|
|
402
|
+
export function getFieldContext(rawInput) {
|
|
403
|
+
const input = GetFieldContextInputSchema.parse(rawInput);
|
|
404
|
+
const session = getSessionManager();
|
|
405
|
+
const snapshotStore = getSnapshotStore();
|
|
406
|
+
// Resolve page
|
|
407
|
+
const handle = resolvePage(session, input.page_id);
|
|
408
|
+
const pageId = handle.page_id;
|
|
409
|
+
// Get snapshot for the page
|
|
410
|
+
const snapshot = snapshotStore.getByPageId(pageId);
|
|
411
|
+
if (!snapshot) {
|
|
412
|
+
return '<error>No snapshot available. Use capture_snapshot first.</error>';
|
|
413
|
+
}
|
|
414
|
+
// Find the field's form
|
|
415
|
+
const allForms = detectForms(snapshot);
|
|
416
|
+
let targetField;
|
|
417
|
+
let targetForm;
|
|
418
|
+
for (const form of allForms) {
|
|
419
|
+
const field = form.fields.find((f) => f.eid === input.eid);
|
|
420
|
+
if (field) {
|
|
421
|
+
targetField = field;
|
|
422
|
+
targetForm = form;
|
|
423
|
+
break;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
if (!targetField || !targetForm) {
|
|
427
|
+
return `<error>Field not found in any form: ${escapeXml(input.eid)}</error>`;
|
|
428
|
+
}
|
|
429
|
+
// Get dependencies
|
|
430
|
+
const tracker = getDependencyTracker();
|
|
431
|
+
const dependencies = tracker.getDependenciesFor(pageId, input.eid);
|
|
432
|
+
return buildFieldContextXml(targetField, targetForm, dependencies);
|
|
433
|
+
}
|
|
434
|
+
//# sourceMappingURL=form-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-tools.js","sourceRoot":"","sources":["../../../src/tools/form-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools Module
|
|
3
|
+
*
|
|
4
|
+
* Browser automation tools exposed via MCP protocol.
|
|
5
|
+
*/
|
|
6
|
+
export { initializeTools, getSnapshotStore } from './browser-tools.js';
|
|
7
|
+
export { listPages, closePage, closeSession, navigate, goBack, goForward, reload, captureSnapshot, findElements, getNodeDetails, scrollElementIntoView, scrollPage, click, type, press, select, hover, } from './browser-tools.js';
|
|
8
|
+
export { ensureBrowserForTools, getSessionManager } from '../server/server-config.js';
|
|
9
|
+
export { ListPagesInputSchema, ListPagesOutputSchema, type ListPagesInput, type ListPagesOutput, ClosePageInputSchema, ClosePageOutputSchema, type ClosePageInput, type ClosePageOutput, CloseSessionInputSchema, CloseSessionOutputSchema, type CloseSessionInput, type CloseSessionOutput, NavigateInputSchema, NavigateOutputSchema, type NavigateInput, type NavigateOutput, GoBackInputSchema, GoBackOutputSchema, type GoBackInput, type GoBackOutput, GoForwardInputSchema, GoForwardOutputSchema, type GoForwardInput, type GoForwardOutput, ReloadInputSchema, ReloadOutputSchema, type ReloadInput, type ReloadOutput, CaptureSnapshotInputSchema, CaptureSnapshotOutputSchema, type CaptureSnapshotInput, type CaptureSnapshotOutput, FindElementsInputSchema, FindElementsOutputSchema, type FindElementsInput, type FindElementsOutput, GetNodeDetailsInputSchema, GetNodeDetailsOutputSchema, type GetNodeDetailsInput, type GetNodeDetailsOutput, ScrollElementIntoViewInputSchema, ScrollElementIntoViewInputSchemaBase, ScrollElementIntoViewOutputSchema, type ScrollElementIntoViewInput, type ScrollElementIntoViewOutput, ScrollPageInputSchema, ScrollPageOutputSchema, type ScrollPageInput, type ScrollPageOutput, ClickInputSchema, ClickInputSchemaBase, ClickOutputSchema, type ClickInput, type ClickOutput, TypeInputSchema, TypeInputSchemaBase, TypeOutputSchema, type TypeInput, type TypeOutput, PressInputSchema, PressOutputSchema, type PressInput, type PressOutput, SelectInputSchema, SelectInputSchemaBase, SelectOutputSchema, type SelectInput, type SelectOutput, HoverInputSchema, HoverInputSchemaBase, HoverOutputSchema, type HoverInput, type HoverOutput, } from './tool-schemas.js';
|
|
10
|
+
export { initializeFormTools, getFormUnderstanding, getFieldContext, GetFormUnderstandingInputSchema, GetFieldContextInputSchema, type GetFormUnderstandingInput, type GetFieldContextInput, } from './form-tools.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGvE,OAAO,EACL,SAAS,EACT,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,SAAS,EACT,MAAM,EACN,eAAe,EACf,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,KAAK,GACN,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGtF,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,EAEpB,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,EAEpB,uBAAuB,EACvB,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAEvB,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EAEnB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EAEjB,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,EAEpB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EAEjB,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAE1B,uBAAuB,EACvB,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAEvB,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAEzB,gCAAgC,EAChC,oCAAoC,EACpC,iCAAiC,EACjC,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAEhC,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAErB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAEhB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EAEf,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAEhB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EAEjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,+BAA+B,EAC/B,0BAA0B,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools Module
|
|
3
|
+
*
|
|
4
|
+
* Browser automation tools exposed via MCP protocol.
|
|
5
|
+
*/
|
|
6
|
+
export { initializeTools, getSnapshotStore } from './browser-tools.js';
|
|
7
|
+
// Tool handlers - Simplified API
|
|
8
|
+
export { listPages, closePage, closeSession, navigate, goBack, goForward, reload, captureSnapshot, findElements, getNodeDetails, scrollElementIntoView, scrollPage, click, type, press, select, hover, } from './browser-tools.js';
|
|
9
|
+
// Server config - lazy browser initialization
|
|
10
|
+
export { ensureBrowserForTools, getSessionManager } from '../server/server-config.js';
|
|
11
|
+
// Schemas - Simplified API
|
|
12
|
+
export {
|
|
13
|
+
// list_pages
|
|
14
|
+
ListPagesInputSchema, ListPagesOutputSchema,
|
|
15
|
+
// close_page
|
|
16
|
+
ClosePageInputSchema, ClosePageOutputSchema,
|
|
17
|
+
// close_session
|
|
18
|
+
CloseSessionInputSchema, CloseSessionOutputSchema,
|
|
19
|
+
// navigate
|
|
20
|
+
NavigateInputSchema, NavigateOutputSchema,
|
|
21
|
+
// go_back
|
|
22
|
+
GoBackInputSchema, GoBackOutputSchema,
|
|
23
|
+
// go_forward
|
|
24
|
+
GoForwardInputSchema, GoForwardOutputSchema,
|
|
25
|
+
// reload
|
|
26
|
+
ReloadInputSchema, ReloadOutputSchema,
|
|
27
|
+
// capture_snapshot
|
|
28
|
+
CaptureSnapshotInputSchema, CaptureSnapshotOutputSchema,
|
|
29
|
+
// find_elements
|
|
30
|
+
FindElementsInputSchema, FindElementsOutputSchema,
|
|
31
|
+
// get_element_details
|
|
32
|
+
GetNodeDetailsInputSchema, GetNodeDetailsOutputSchema,
|
|
33
|
+
// scroll_element_into_view
|
|
34
|
+
ScrollElementIntoViewInputSchema, ScrollElementIntoViewInputSchemaBase, ScrollElementIntoViewOutputSchema,
|
|
35
|
+
// scroll_page
|
|
36
|
+
ScrollPageInputSchema, ScrollPageOutputSchema,
|
|
37
|
+
// click
|
|
38
|
+
ClickInputSchema, ClickInputSchemaBase, ClickOutputSchema,
|
|
39
|
+
// type
|
|
40
|
+
TypeInputSchema, TypeInputSchemaBase, TypeOutputSchema,
|
|
41
|
+
// press
|
|
42
|
+
PressInputSchema, PressOutputSchema,
|
|
43
|
+
// select
|
|
44
|
+
SelectInputSchema, SelectInputSchemaBase, SelectOutputSchema,
|
|
45
|
+
// hover
|
|
46
|
+
HoverInputSchema, HoverInputSchemaBase, HoverOutputSchema, } from './tool-schemas.js';
|
|
47
|
+
// Form tools
|
|
48
|
+
export { initializeFormTools, getFormUnderstanding, getFieldContext, GetFormUnderstandingInputSchema, GetFieldContextInputSchema, } from './form-tools.js';
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,iCAAiC;AACjC,OAAO,EACL,SAAS,EACT,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,SAAS,EACT,MAAM,EACN,eAAe,EACf,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,KAAK,GACN,MAAM,oBAAoB,CAAC;AAE5B,8CAA8C;AAC9C,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEtF,2BAA2B;AAC3B,OAAO;AACL,aAAa;AACb,oBAAoB,EACpB,qBAAqB;AAGrB,aAAa;AACb,oBAAoB,EACpB,qBAAqB;AAGrB,gBAAgB;AAChB,uBAAuB,EACvB,wBAAwB;AAGxB,WAAW;AACX,mBAAmB,EACnB,oBAAoB;AAGpB,UAAU;AACV,iBAAiB,EACjB,kBAAkB;AAGlB,aAAa;AACb,oBAAoB,EACpB,qBAAqB;AAGrB,SAAS;AACT,iBAAiB,EACjB,kBAAkB;AAGlB,mBAAmB;AACnB,0BAA0B,EAC1B,2BAA2B;AAG3B,gBAAgB;AAChB,uBAAuB,EACvB,wBAAwB;AAGxB,sBAAsB;AACtB,yBAAyB,EACzB,0BAA0B;AAG1B,2BAA2B;AAC3B,gCAAgC,EAChC,oCAAoC,EACpC,iCAAiC;AAGjC,cAAc;AACd,qBAAqB,EACrB,sBAAsB;AAGtB,QAAQ;AACR,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB;AAGjB,OAAO;AACP,eAAe,EACf,mBAAmB,EACnB,gBAAgB;AAGhB,QAAQ;AACR,gBAAgB,EAChB,iBAAiB;AAGjB,SAAS;AACT,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB;AAGlB,QAAQ;AACR,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAE3B,aAAa;AACb,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,+BAA+B,EAC/B,0BAA0B,GAG3B,MAAM,iBAAiB,CAAC"}
|