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,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Store
|
|
3
|
+
*
|
|
4
|
+
* Tracks active sessions per MCP client (tenant isolation).
|
|
5
|
+
* Supports optional TTL-based auto-cleanup of expired sessions.
|
|
6
|
+
*/
|
|
7
|
+
import { randomUUID } from 'crypto';
|
|
8
|
+
/** Default TTL in milliseconds (30 minutes) */
|
|
9
|
+
const DEFAULT_TTL_MS = 30 * 60 * 1000;
|
|
10
|
+
/** Cleanup interval in milliseconds (5 minutes) */
|
|
11
|
+
const CLEANUP_INTERVAL_MS = 5 * 60 * 1000;
|
|
12
|
+
/**
|
|
13
|
+
* In-memory session store for tenant isolation
|
|
14
|
+
*/
|
|
15
|
+
export class SessionStore {
|
|
16
|
+
sessions = new Map();
|
|
17
|
+
ttlMs;
|
|
18
|
+
maxSessions;
|
|
19
|
+
cleanupInterval = null;
|
|
20
|
+
constructor(options = {}) {
|
|
21
|
+
this.ttlMs = options.ttlMs ?? DEFAULT_TTL_MS;
|
|
22
|
+
this.maxSessions = options.maxSessions ?? Infinity;
|
|
23
|
+
if (options.autoCleanup && this.ttlMs > 0) {
|
|
24
|
+
this.startAutoCleanup();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Create a new session for a tenant
|
|
29
|
+
*
|
|
30
|
+
* @param tenant_id - The tenant/client identifier
|
|
31
|
+
* @returns The new session_id
|
|
32
|
+
* @throws Error if max sessions limit reached
|
|
33
|
+
*/
|
|
34
|
+
createSession(tenant_id) {
|
|
35
|
+
// Check max sessions limit
|
|
36
|
+
if (this.sessions.size >= this.maxSessions) {
|
|
37
|
+
throw new Error(`Maximum sessions limit reached: ${this.maxSessions}`);
|
|
38
|
+
}
|
|
39
|
+
const session_id = `session-${randomUUID()}`;
|
|
40
|
+
const now = new Date();
|
|
41
|
+
const session = {
|
|
42
|
+
session_id,
|
|
43
|
+
tenant_id,
|
|
44
|
+
page_ids: new Set(),
|
|
45
|
+
created_at: now,
|
|
46
|
+
last_accessed_at: now,
|
|
47
|
+
expires_at: this.ttlMs > 0 ? new Date(now.getTime() + this.ttlMs) : null,
|
|
48
|
+
};
|
|
49
|
+
this.sessions.set(session_id, session);
|
|
50
|
+
return session_id;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get a session by its ID.
|
|
54
|
+
* Automatically refreshes TTL and checks for expiration.
|
|
55
|
+
*
|
|
56
|
+
* @param session_id - The session identifier
|
|
57
|
+
* @returns TenantSession if found and not expired, undefined otherwise
|
|
58
|
+
*/
|
|
59
|
+
getSession(session_id) {
|
|
60
|
+
const session = this.sessions.get(session_id);
|
|
61
|
+
if (!session)
|
|
62
|
+
return undefined;
|
|
63
|
+
// Check if expired
|
|
64
|
+
if (this.isExpired(session)) {
|
|
65
|
+
this.sessions.delete(session_id);
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
// Touch session to refresh TTL
|
|
69
|
+
this.touchSession(session);
|
|
70
|
+
return session;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Add a page to a session
|
|
74
|
+
*
|
|
75
|
+
* @param session_id - The session identifier
|
|
76
|
+
* @param page_id - The page identifier to add
|
|
77
|
+
*/
|
|
78
|
+
addPage(session_id, page_id) {
|
|
79
|
+
const session = this.sessions.get(session_id);
|
|
80
|
+
if (session) {
|
|
81
|
+
session.page_ids.add(page_id);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Remove a page from a session
|
|
86
|
+
*
|
|
87
|
+
* @param session_id - The session identifier
|
|
88
|
+
* @param page_id - The page identifier to remove
|
|
89
|
+
*/
|
|
90
|
+
removePage(session_id, page_id) {
|
|
91
|
+
const session = this.sessions.get(session_id);
|
|
92
|
+
if (session) {
|
|
93
|
+
session.page_ids.delete(page_id);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get all pages for a session
|
|
98
|
+
*
|
|
99
|
+
* @param session_id - The session identifier
|
|
100
|
+
* @returns Array of page_ids (empty if session not found)
|
|
101
|
+
*/
|
|
102
|
+
getPages(session_id) {
|
|
103
|
+
const session = this.sessions.get(session_id);
|
|
104
|
+
if (!session) {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
return Array.from(session.page_ids);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Destroy a session completely
|
|
111
|
+
*
|
|
112
|
+
* @param session_id - The session identifier
|
|
113
|
+
*/
|
|
114
|
+
destroySession(session_id) {
|
|
115
|
+
this.sessions.delete(session_id);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* List all active sessions
|
|
119
|
+
*
|
|
120
|
+
* @returns Array of all TenantSession objects
|
|
121
|
+
*/
|
|
122
|
+
listSessions() {
|
|
123
|
+
return Array.from(this.sessions.values());
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get sessions for a specific tenant
|
|
127
|
+
*
|
|
128
|
+
* @param tenant_id - The tenant identifier
|
|
129
|
+
* @returns Array of sessions for this tenant
|
|
130
|
+
*/
|
|
131
|
+
getSessionsByTenant(tenant_id) {
|
|
132
|
+
return this.listSessions().filter((s) => s.tenant_id === tenant_id);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get the total number of sessions
|
|
136
|
+
*
|
|
137
|
+
* @returns Session count
|
|
138
|
+
*/
|
|
139
|
+
sessionCount() {
|
|
140
|
+
return this.sessions.size;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Check if a session exists
|
|
144
|
+
*
|
|
145
|
+
* @param session_id - The session identifier
|
|
146
|
+
* @returns true if session exists
|
|
147
|
+
*/
|
|
148
|
+
hasSession(session_id) {
|
|
149
|
+
return this.sessions.has(session_id);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Clear all sessions (for testing or shutdown)
|
|
153
|
+
*/
|
|
154
|
+
clear() {
|
|
155
|
+
this.sessions.clear();
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Stop automatic cleanup timer
|
|
159
|
+
*/
|
|
160
|
+
stopAutoCleanup() {
|
|
161
|
+
if (this.cleanupInterval) {
|
|
162
|
+
clearInterval(this.cleanupInterval);
|
|
163
|
+
this.cleanupInterval = null;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Start automatic cleanup of expired sessions
|
|
168
|
+
*/
|
|
169
|
+
startAutoCleanup() {
|
|
170
|
+
this.stopAutoCleanup();
|
|
171
|
+
this.cleanupInterval = setInterval(() => {
|
|
172
|
+
this.cleanupExpired();
|
|
173
|
+
}, CLEANUP_INTERVAL_MS);
|
|
174
|
+
// Don't keep the process alive just for cleanup
|
|
175
|
+
this.cleanupInterval.unref();
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Manually clean up all expired sessions
|
|
179
|
+
*
|
|
180
|
+
* @returns Number of sessions removed
|
|
181
|
+
*/
|
|
182
|
+
cleanupExpired() {
|
|
183
|
+
let removed = 0;
|
|
184
|
+
const now = new Date();
|
|
185
|
+
for (const [session_id, session] of this.sessions) {
|
|
186
|
+
if (session.expires_at && session.expires_at <= now) {
|
|
187
|
+
this.sessions.delete(session_id);
|
|
188
|
+
removed++;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return removed;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Check if a session is expired
|
|
195
|
+
*/
|
|
196
|
+
isExpired(session) {
|
|
197
|
+
if (!session.expires_at)
|
|
198
|
+
return false;
|
|
199
|
+
return session.expires_at <= new Date();
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Touch a session to refresh its TTL
|
|
203
|
+
*/
|
|
204
|
+
touchSession(session) {
|
|
205
|
+
const now = new Date();
|
|
206
|
+
session.last_accessed_at = now;
|
|
207
|
+
if (this.ttlMs > 0) {
|
|
208
|
+
session.expires_at = new Date(now.getTime() + this.ttlMs);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Get the configured TTL in milliseconds
|
|
213
|
+
*/
|
|
214
|
+
getTtlMs() {
|
|
215
|
+
return this.ttlMs;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Get the configured max sessions limit
|
|
219
|
+
*/
|
|
220
|
+
getMaxSessions() {
|
|
221
|
+
return this.maxSessions;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=session-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/server/session-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser Session Error
|
|
3
|
+
*
|
|
4
|
+
* Standardized error classification for browser session operations.
|
|
5
|
+
* Provides error codes for programmatic handling and detailed messages for debugging.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Error codes for browser session operations
|
|
9
|
+
*/
|
|
10
|
+
export type BrowserErrorCode = 'NOT_CONNECTED' | 'ALREADY_CONNECTED' | 'CONNECTION_FAILED' | 'CONNECTION_TIMEOUT' | 'INVALID_URL' | 'PAGE_NOT_FOUND' | 'PAGE_CLOSED' | 'CDP_ERROR' | 'CDP_TIMEOUT' | 'CDP_SESSION_CLOSED' | 'BROWSER_DISCONNECTED' | 'INVALID_STATE' | 'OPERATION_FAILED';
|
|
11
|
+
/**
|
|
12
|
+
* Standardized error for browser session operations.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* throw new BrowserSessionError(
|
|
17
|
+
* 'Browser disconnected unexpectedly',
|
|
18
|
+
* 'BROWSER_DISCONNECTED',
|
|
19
|
+
* originalError
|
|
20
|
+
* );
|
|
21
|
+
*
|
|
22
|
+
* // Catching and handling by code
|
|
23
|
+
* try {
|
|
24
|
+
* await session.connect();
|
|
25
|
+
* } catch (error) {
|
|
26
|
+
* if (error instanceof BrowserSessionError) {
|
|
27
|
+
* switch (error.code) {
|
|
28
|
+
* case 'CONNECTION_TIMEOUT':
|
|
29
|
+
* console.log('Connection timed out, retrying...');
|
|
30
|
+
* break;
|
|
31
|
+
* case 'INVALID_URL':
|
|
32
|
+
* console.log('Invalid endpoint URL');
|
|
33
|
+
* break;
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare class BrowserSessionError extends Error {
|
|
40
|
+
/**
|
|
41
|
+
* Error code for programmatic handling
|
|
42
|
+
*/
|
|
43
|
+
readonly code: BrowserErrorCode;
|
|
44
|
+
/**
|
|
45
|
+
* Original error that caused this error (if any)
|
|
46
|
+
*/
|
|
47
|
+
readonly cause?: Error;
|
|
48
|
+
/**
|
|
49
|
+
* Additional context for debugging
|
|
50
|
+
*/
|
|
51
|
+
readonly context?: Record<string, unknown>;
|
|
52
|
+
constructor(message: string, code: BrowserErrorCode, cause?: Error, context?: Record<string, unknown>);
|
|
53
|
+
/**
|
|
54
|
+
* Create a JSON-serializable representation of the error
|
|
55
|
+
*/
|
|
56
|
+
toJSON(): Record<string, unknown>;
|
|
57
|
+
/**
|
|
58
|
+
* Type guard to check if an error is a BrowserSessionError
|
|
59
|
+
*/
|
|
60
|
+
static isBrowserSessionError(error: unknown): error is BrowserSessionError;
|
|
61
|
+
/**
|
|
62
|
+
* Create error for not connected state
|
|
63
|
+
*/
|
|
64
|
+
static notConnected(context?: Record<string, unknown>): BrowserSessionError;
|
|
65
|
+
/**
|
|
66
|
+
* Create error for already connected state
|
|
67
|
+
*/
|
|
68
|
+
static alreadyConnected(context?: Record<string, unknown>): BrowserSessionError;
|
|
69
|
+
/**
|
|
70
|
+
* Create error for connection failure
|
|
71
|
+
*/
|
|
72
|
+
static connectionFailed(cause: Error, context?: Record<string, unknown>): BrowserSessionError;
|
|
73
|
+
/**
|
|
74
|
+
* Create error for connection timeout
|
|
75
|
+
*/
|
|
76
|
+
static connectionTimeout(endpointUrl: string, timeoutMs: number, context?: Record<string, unknown>): BrowserSessionError;
|
|
77
|
+
/**
|
|
78
|
+
* Create error for invalid URL
|
|
79
|
+
*/
|
|
80
|
+
static invalidUrl(url: string, context?: Record<string, unknown>): BrowserSessionError;
|
|
81
|
+
/**
|
|
82
|
+
* Create error for page not found
|
|
83
|
+
*/
|
|
84
|
+
static pageNotFound(pageId: string, context?: Record<string, unknown>): BrowserSessionError;
|
|
85
|
+
/**
|
|
86
|
+
* Create error for CDP operation failure
|
|
87
|
+
*/
|
|
88
|
+
static cdpError(method: string, cause: Error, context?: Record<string, unknown>): BrowserSessionError;
|
|
89
|
+
/**
|
|
90
|
+
* Create error for CDP timeout
|
|
91
|
+
*/
|
|
92
|
+
static cdpTimeout(method: string, timeoutMs: number, context?: Record<string, unknown>): BrowserSessionError;
|
|
93
|
+
/**
|
|
94
|
+
* Create error for browser disconnect
|
|
95
|
+
*/
|
|
96
|
+
static browserDisconnected(context?: Record<string, unknown>): BrowserSessionError;
|
|
97
|
+
/**
|
|
98
|
+
* Create error for invalid state transition
|
|
99
|
+
*/
|
|
100
|
+
static invalidState(currentState: string, attemptedOperation: string, context?: Record<string, unknown>): BrowserSessionError;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=browser-session.error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-session.error.d.ts","sourceRoot":"","sources":["../../../../src/shared/errors/browser-session.error.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,aAAa,GACb,gBAAgB,GAChB,aAAa,GACb,WAAW,GACX,aAAa,GACb,oBAAoB,GACpB,sBAAsB,GACtB,eAAe,GACf,kBAAkB,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGzC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,EACtB,KAAK,CAAC,EAAE,KAAK,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAcnC;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAgBjC;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB;IAI1E;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB;IAI3E;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB;IAS/E;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB;IAS7F;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,mBAAmB;IAStB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB;IAOtF;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB;IAO3F;;OAEG;IACH,MAAM,CAAC,QAAQ,CACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,mBAAmB;IAOtB;;OAEG;IACH,MAAM,CAAC,UAAU,CACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,mBAAmB;IAStB;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB;IASlF;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,mBAAmB;CAQvB"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser Session Error
|
|
3
|
+
*
|
|
4
|
+
* Standardized error classification for browser session operations.
|
|
5
|
+
* Provides error codes for programmatic handling and detailed messages for debugging.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Standardized error for browser session operations.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* throw new BrowserSessionError(
|
|
13
|
+
* 'Browser disconnected unexpectedly',
|
|
14
|
+
* 'BROWSER_DISCONNECTED',
|
|
15
|
+
* originalError
|
|
16
|
+
* );
|
|
17
|
+
*
|
|
18
|
+
* // Catching and handling by code
|
|
19
|
+
* try {
|
|
20
|
+
* await session.connect();
|
|
21
|
+
* } catch (error) {
|
|
22
|
+
* if (error instanceof BrowserSessionError) {
|
|
23
|
+
* switch (error.code) {
|
|
24
|
+
* case 'CONNECTION_TIMEOUT':
|
|
25
|
+
* console.log('Connection timed out, retrying...');
|
|
26
|
+
* break;
|
|
27
|
+
* case 'INVALID_URL':
|
|
28
|
+
* console.log('Invalid endpoint URL');
|
|
29
|
+
* break;
|
|
30
|
+
* }
|
|
31
|
+
* }
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export class BrowserSessionError extends Error {
|
|
36
|
+
/**
|
|
37
|
+
* Error code for programmatic handling
|
|
38
|
+
*/
|
|
39
|
+
code;
|
|
40
|
+
/**
|
|
41
|
+
* Original error that caused this error (if any)
|
|
42
|
+
*/
|
|
43
|
+
cause;
|
|
44
|
+
/**
|
|
45
|
+
* Additional context for debugging
|
|
46
|
+
*/
|
|
47
|
+
context;
|
|
48
|
+
constructor(message, code, cause, context) {
|
|
49
|
+
super(message);
|
|
50
|
+
this.name = 'BrowserSessionError';
|
|
51
|
+
this.code = code;
|
|
52
|
+
this.cause = cause;
|
|
53
|
+
this.context = context;
|
|
54
|
+
// Maintains proper stack trace for where error was thrown (V8 only)
|
|
55
|
+
if (Error.captureStackTrace) {
|
|
56
|
+
Error.captureStackTrace(this, BrowserSessionError);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create a JSON-serializable representation of the error
|
|
61
|
+
*/
|
|
62
|
+
toJSON() {
|
|
63
|
+
return {
|
|
64
|
+
name: this.name,
|
|
65
|
+
message: this.message,
|
|
66
|
+
code: this.code,
|
|
67
|
+
context: this.context,
|
|
68
|
+
cause: this.cause
|
|
69
|
+
? {
|
|
70
|
+
name: this.cause.name,
|
|
71
|
+
message: this.cause.message,
|
|
72
|
+
}
|
|
73
|
+
: undefined,
|
|
74
|
+
stack: this.stack,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Type guard to check if an error is a BrowserSessionError
|
|
79
|
+
*/
|
|
80
|
+
static isBrowserSessionError(error) {
|
|
81
|
+
return error instanceof BrowserSessionError;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Create error for not connected state
|
|
85
|
+
*/
|
|
86
|
+
static notConnected(context) {
|
|
87
|
+
return new BrowserSessionError('Browser not connected', 'NOT_CONNECTED', undefined, context);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Create error for already connected state
|
|
91
|
+
*/
|
|
92
|
+
static alreadyConnected(context) {
|
|
93
|
+
return new BrowserSessionError('Browser already connected or connection in progress', 'ALREADY_CONNECTED', undefined, context);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Create error for connection failure
|
|
97
|
+
*/
|
|
98
|
+
static connectionFailed(cause, context) {
|
|
99
|
+
return new BrowserSessionError(`Failed to connect to browser: ${cause.message}`, 'CONNECTION_FAILED', cause, context);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Create error for connection timeout
|
|
103
|
+
*/
|
|
104
|
+
static connectionTimeout(endpointUrl, timeoutMs, context) {
|
|
105
|
+
return new BrowserSessionError(`Connection timeout after ${timeoutMs}ms: ${endpointUrl}`, 'CONNECTION_TIMEOUT', undefined, { endpointUrl, timeoutMs, ...context });
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Create error for invalid URL
|
|
109
|
+
*/
|
|
110
|
+
static invalidUrl(url, context) {
|
|
111
|
+
return new BrowserSessionError(`Invalid endpoint URL: ${url}`, 'INVALID_URL', undefined, {
|
|
112
|
+
url,
|
|
113
|
+
...context,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Create error for page not found
|
|
118
|
+
*/
|
|
119
|
+
static pageNotFound(pageId, context) {
|
|
120
|
+
return new BrowserSessionError(`Page not found: ${pageId}`, 'PAGE_NOT_FOUND', undefined, {
|
|
121
|
+
pageId,
|
|
122
|
+
...context,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Create error for CDP operation failure
|
|
127
|
+
*/
|
|
128
|
+
static cdpError(method, cause, context) {
|
|
129
|
+
return new BrowserSessionError(`CDP command failed: ${method}`, 'CDP_ERROR', cause, {
|
|
130
|
+
method,
|
|
131
|
+
...context,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Create error for CDP timeout
|
|
136
|
+
*/
|
|
137
|
+
static cdpTimeout(method, timeoutMs, context) {
|
|
138
|
+
return new BrowserSessionError(`CDP command timed out after ${timeoutMs}ms: ${method}`, 'CDP_TIMEOUT', undefined, { method, timeoutMs, ...context });
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Create error for browser disconnect
|
|
142
|
+
*/
|
|
143
|
+
static browserDisconnected(context) {
|
|
144
|
+
return new BrowserSessionError('Browser disconnected unexpectedly', 'BROWSER_DISCONNECTED', undefined, context);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Create error for invalid state transition
|
|
148
|
+
*/
|
|
149
|
+
static invalidState(currentState, attemptedOperation, context) {
|
|
150
|
+
return new BrowserSessionError(`Invalid operation "${attemptedOperation}" in state "${currentState}"`, 'INVALID_STATE', undefined, { currentState, attemptedOperation, ...context });
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=browser-session.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-session.error.js","sourceRoot":"","sources":["../../../../src/shared/errors/browser-session.error.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/errors/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/errors/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAyB,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOM Transformer Service
|
|
3
|
+
*
|
|
4
|
+
* Transforms CDP DOM.getDocument responses into our DomTreeNode format
|
|
5
|
+
*
|
|
6
|
+
* FIXES: The stub implementation in browser-automation-mcp-server.ts:731-736
|
|
7
|
+
* that returned { nodes: [] } without transforming the CDP response
|
|
8
|
+
*/
|
|
9
|
+
import type { DomTreeNode } from '../types/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* CDP DOM Node structure
|
|
12
|
+
*/
|
|
13
|
+
interface CdpDomNode {
|
|
14
|
+
nodeId: number;
|
|
15
|
+
nodeType: number;
|
|
16
|
+
nodeName: string;
|
|
17
|
+
localName: string;
|
|
18
|
+
nodeValue: string;
|
|
19
|
+
childNodeCount?: number;
|
|
20
|
+
children?: CdpDomNode[];
|
|
21
|
+
attributes?: string[];
|
|
22
|
+
documentURL?: string;
|
|
23
|
+
baseURL?: string;
|
|
24
|
+
}
|
|
25
|
+
interface CdpDomTreeResponse {
|
|
26
|
+
root: CdpDomNode;
|
|
27
|
+
}
|
|
28
|
+
export interface DomGetTreeParams {
|
|
29
|
+
frameId?: string;
|
|
30
|
+
depth?: number;
|
|
31
|
+
visibleOnly?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface DomGetTreeResponse {
|
|
34
|
+
nodes: DomTreeNode[];
|
|
35
|
+
}
|
|
36
|
+
export declare class DomTransformerService {
|
|
37
|
+
/**
|
|
38
|
+
* Transform CDP DOM.getDocument response into our DomTreeNode format
|
|
39
|
+
*/
|
|
40
|
+
transform(cdpResponse: CdpDomTreeResponse, params: DomGetTreeParams): DomGetTreeResponse;
|
|
41
|
+
/**
|
|
42
|
+
* Recursively transform a CDP node and its children
|
|
43
|
+
*/
|
|
44
|
+
private transformNode;
|
|
45
|
+
/**
|
|
46
|
+
* Parse CDP attributes array [key1, value1, key2, value2, ...] to object
|
|
47
|
+
*/
|
|
48
|
+
private parseAttributes;
|
|
49
|
+
/**
|
|
50
|
+
* Check if element is hidden by inline style
|
|
51
|
+
*/
|
|
52
|
+
private isHiddenByStyle;
|
|
53
|
+
/**
|
|
54
|
+
* Extract text content from immediate text children
|
|
55
|
+
*/
|
|
56
|
+
private extractTextContent;
|
|
57
|
+
/**
|
|
58
|
+
* Flatten tree structure into array (breadth-first traversal)
|
|
59
|
+
*/
|
|
60
|
+
flattenTree(nodes: DomTreeNode[]): DomTreeNode[];
|
|
61
|
+
/**
|
|
62
|
+
* Filter nodes by tag name
|
|
63
|
+
*/
|
|
64
|
+
filterByTag(nodes: DomTreeNode[], tag: string): DomTreeNode[];
|
|
65
|
+
/**
|
|
66
|
+
* Find nodes by attribute
|
|
67
|
+
*/
|
|
68
|
+
findByAttribute(nodes: DomTreeNode[], attrName: string, attrValue?: string): DomTreeNode[];
|
|
69
|
+
}
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=dom-transformer.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-transformer.service.d.ts","sourceRoot":"","sources":["../../../../src/shared/services/dom-transformer.service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,qBAAa,qBAAqB;IAChC;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,MAAM,EAAE,gBAAgB,GAAG,kBAAkB;IASxF;;OAEG;IACH,OAAO,CAAC,aAAa;IAoFrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;IAgBhD;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE;IAe7D;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE;CA2B3F"}
|