@metamask/client-mcp-core 0.1.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/CHANGELOG.md +17 -0
- package/LICENSE +6 -0
- package/LICENSE.APACHE2 +201 -0
- package/LICENSE.MIT +21 -0
- package/README.md +1459 -0
- package/dist/capabilities/context.cjs +34 -0
- package/dist/capabilities/context.cjs.map +1 -0
- package/dist/capabilities/context.d.cts +101 -0
- package/dist/capabilities/context.d.cts.map +1 -0
- package/dist/capabilities/context.d.mts +101 -0
- package/dist/capabilities/context.d.mts.map +1 -0
- package/dist/capabilities/context.mjs +29 -0
- package/dist/capabilities/context.mjs.map +1 -0
- package/dist/capabilities/index.cjs +18 -0
- package/dist/capabilities/index.cjs.map +1 -0
- package/dist/capabilities/index.d.cts +3 -0
- package/dist/capabilities/index.d.cts.map +1 -0
- package/dist/capabilities/index.d.mts +3 -0
- package/dist/capabilities/index.d.mts.map +1 -0
- package/dist/capabilities/index.mjs +2 -0
- package/dist/capabilities/index.mjs.map +1 -0
- package/dist/capabilities/types.cjs +3 -0
- package/dist/capabilities/types.cjs.map +1 -0
- package/dist/capabilities/types.d.cts +152 -0
- package/dist/capabilities/types.d.cts.map +1 -0
- package/dist/capabilities/types.d.mts +152 -0
- package/dist/capabilities/types.d.mts.map +1 -0
- package/dist/capabilities/types.mjs +2 -0
- package/dist/capabilities/types.mjs.map +1 -0
- package/dist/index.cjs +59 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +33 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +33 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +43 -0
- package/dist/index.mjs.map +1 -0
- package/dist/launcher/console-error-buffer.cjs +72 -0
- package/dist/launcher/console-error-buffer.cjs.map +1 -0
- package/dist/launcher/console-error-buffer.d.cts +43 -0
- package/dist/launcher/console-error-buffer.d.cts.map +1 -0
- package/dist/launcher/console-error-buffer.d.mts +43 -0
- package/dist/launcher/console-error-buffer.d.mts.map +1 -0
- package/dist/launcher/console-error-buffer.mjs +68 -0
- package/dist/launcher/console-error-buffer.mjs.map +1 -0
- package/dist/launcher/extension-id-resolver.cjs +177 -0
- package/dist/launcher/extension-id-resolver.cjs.map +1 -0
- package/dist/launcher/extension-id-resolver.d.cts +32 -0
- package/dist/launcher/extension-id-resolver.d.cts.map +1 -0
- package/dist/launcher/extension-id-resolver.d.mts +32 -0
- package/dist/launcher/extension-id-resolver.d.mts.map +1 -0
- package/dist/launcher/extension-id-resolver.mjs +173 -0
- package/dist/launcher/extension-id-resolver.mjs.map +1 -0
- package/dist/launcher/extension-readiness.cjs +50 -0
- package/dist/launcher/extension-readiness.cjs.map +1 -0
- package/dist/launcher/extension-readiness.d.cts +37 -0
- package/dist/launcher/extension-readiness.d.cts.map +1 -0
- package/dist/launcher/extension-readiness.d.mts +37 -0
- package/dist/launcher/extension-readiness.d.mts.map +1 -0
- package/dist/launcher/extension-readiness.mjs +43 -0
- package/dist/launcher/extension-readiness.mjs.map +1 -0
- package/dist/launcher/index.cjs +21 -0
- package/dist/launcher/index.cjs.map +1 -0
- package/dist/launcher/index.d.cts +5 -0
- package/dist/launcher/index.d.cts.map +1 -0
- package/dist/launcher/index.d.mts +5 -0
- package/dist/launcher/index.d.mts.map +1 -0
- package/dist/launcher/index.mjs +5 -0
- package/dist/launcher/index.mjs.map +1 -0
- package/dist/launcher/retry.cjs +35 -0
- package/dist/launcher/retry.cjs.map +1 -0
- package/dist/launcher/retry.d.cts +20 -0
- package/dist/launcher/retry.d.cts.map +1 -0
- package/dist/launcher/retry.d.mts +20 -0
- package/dist/launcher/retry.d.mts.map +1 -0
- package/dist/launcher/retry.mjs +31 -0
- package/dist/launcher/retry.mjs.map +1 -0
- package/dist/mcp-server/constants.cjs +22 -0
- package/dist/mcp-server/constants.cjs.map +1 -0
- package/dist/mcp-server/constants.d.cts +13 -0
- package/dist/mcp-server/constants.d.cts.map +1 -0
- package/dist/mcp-server/constants.d.mts +13 -0
- package/dist/mcp-server/constants.d.mts.map +1 -0
- package/dist/mcp-server/constants.mjs +19 -0
- package/dist/mcp-server/constants.mjs.map +1 -0
- package/dist/mcp-server/discovery.cjs +299 -0
- package/dist/mcp-server/discovery.cjs.map +1 -0
- package/dist/mcp-server/discovery.d.cts +56 -0
- package/dist/mcp-server/discovery.d.cts.map +1 -0
- package/dist/mcp-server/discovery.d.mts +56 -0
- package/dist/mcp-server/discovery.d.mts.map +1 -0
- package/dist/mcp-server/discovery.mjs +292 -0
- package/dist/mcp-server/discovery.mjs.map +1 -0
- package/dist/mcp-server/knowledge-store.cjs +1196 -0
- package/dist/mcp-server/knowledge-store.cjs.map +1 -0
- package/dist/mcp-server/knowledge-store.d.cts +249 -0
- package/dist/mcp-server/knowledge-store.d.cts.map +1 -0
- package/dist/mcp-server/knowledge-store.d.mts +249 -0
- package/dist/mcp-server/knowledge-store.d.mts.map +1 -0
- package/dist/mcp-server/knowledge-store.mjs +1154 -0
- package/dist/mcp-server/knowledge-store.mjs.map +1 -0
- package/dist/mcp-server/schemas.cjs +433 -0
- package/dist/mcp-server/schemas.cjs.map +1 -0
- package/dist/mcp-server/schemas.d.cts +557 -0
- package/dist/mcp-server/schemas.d.cts.map +1 -0
- package/dist/mcp-server/schemas.d.mts +557 -0
- package/dist/mcp-server/schemas.d.mts.map +1 -0
- package/dist/mcp-server/schemas.mjs +430 -0
- package/dist/mcp-server/schemas.mjs.map +1 -0
- package/dist/mcp-server/server.cjs +161 -0
- package/dist/mcp-server/server.cjs.map +1 -0
- package/dist/mcp-server/server.d.cts +24 -0
- package/dist/mcp-server/server.d.cts.map +1 -0
- package/dist/mcp-server/server.d.mts +24 -0
- package/dist/mcp-server/server.d.mts.map +1 -0
- package/dist/mcp-server/server.mjs +158 -0
- package/dist/mcp-server/server.mjs.map +1 -0
- package/dist/mcp-server/session-manager.cjs +53 -0
- package/dist/mcp-server/session-manager.cjs.map +1 -0
- package/dist/mcp-server/session-manager.d.cts +240 -0
- package/dist/mcp-server/session-manager.d.cts.map +1 -0
- package/dist/mcp-server/session-manager.d.mts +240 -0
- package/dist/mcp-server/session-manager.d.mts.map +1 -0
- package/dist/mcp-server/session-manager.mjs +48 -0
- package/dist/mcp-server/session-manager.mjs.map +1 -0
- package/dist/mcp-server/test-utils/flush-promises.cjs +10 -0
- package/dist/mcp-server/test-utils/flush-promises.cjs.map +1 -0
- package/dist/mcp-server/test-utils/flush-promises.d.cts +2 -0
- package/dist/mcp-server/test-utils/flush-promises.d.cts.map +1 -0
- package/dist/mcp-server/test-utils/flush-promises.d.mts +2 -0
- package/dist/mcp-server/test-utils/flush-promises.d.mts.map +1 -0
- package/dist/mcp-server/test-utils/flush-promises.mjs +7 -0
- package/dist/mcp-server/test-utils/flush-promises.mjs.map +1 -0
- package/dist/mcp-server/test-utils/index.cjs +13 -0
- package/dist/mcp-server/test-utils/index.cjs.map +1 -0
- package/dist/mcp-server/test-utils/index.d.cts +4 -0
- package/dist/mcp-server/test-utils/index.d.cts.map +1 -0
- package/dist/mcp-server/test-utils/index.d.mts +4 -0
- package/dist/mcp-server/test-utils/index.d.mts.map +1 -0
- package/dist/mcp-server/test-utils/index.mjs +4 -0
- package/dist/mcp-server/test-utils/index.mjs.map +1 -0
- package/dist/mcp-server/test-utils/mock-factories.cjs +129 -0
- package/dist/mcp-server/test-utils/mock-factories.cjs.map +1 -0
- package/dist/mcp-server/test-utils/mock-factories.d.cts +89 -0
- package/dist/mcp-server/test-utils/mock-factories.d.cts.map +1 -0
- package/dist/mcp-server/test-utils/mock-factories.d.mts +89 -0
- package/dist/mcp-server/test-utils/mock-factories.d.mts.map +1 -0
- package/dist/mcp-server/test-utils/mock-factories.mjs +125 -0
- package/dist/mcp-server/test-utils/mock-factories.mjs.map +1 -0
- package/dist/mcp-server/test-utils/mock-playwright.cjs +205 -0
- package/dist/mcp-server/test-utils/mock-playwright.cjs.map +1 -0
- package/dist/mcp-server/test-utils/mock-playwright.d.cts +69 -0
- package/dist/mcp-server/test-utils/mock-playwright.d.cts.map +1 -0
- package/dist/mcp-server/test-utils/mock-playwright.d.mts +69 -0
- package/dist/mcp-server/test-utils/mock-playwright.d.mts.map +1 -0
- package/dist/mcp-server/test-utils/mock-playwright.mjs +200 -0
- package/dist/mcp-server/test-utils/mock-playwright.mjs.map +1 -0
- package/dist/mcp-server/tokenization.cjs +117 -0
- package/dist/mcp-server/tokenization.cjs.map +1 -0
- package/dist/mcp-server/tokenization.d.cts +22 -0
- package/dist/mcp-server/tokenization.d.cts.map +1 -0
- package/dist/mcp-server/tokenization.d.mts +22 -0
- package/dist/mcp-server/tokenization.d.mts.map +1 -0
- package/dist/mcp-server/tokenization.mjs +112 -0
- package/dist/mcp-server/tokenization.mjs.map +1 -0
- package/dist/mcp-server/tools/batch.cjs +199 -0
- package/dist/mcp-server/tools/batch.cjs.map +1 -0
- package/dist/mcp-server/tools/batch.d.cts +81 -0
- package/dist/mcp-server/tools/batch.d.cts.map +1 -0
- package/dist/mcp-server/tools/batch.d.mts +81 -0
- package/dist/mcp-server/tools/batch.d.mts.map +1 -0
- package/dist/mcp-server/tools/batch.mjs +191 -0
- package/dist/mcp-server/tools/batch.mjs.map +1 -0
- package/dist/mcp-server/tools/build.cjs +47 -0
- package/dist/mcp-server/tools/build.cjs.map +1 -0
- package/dist/mcp-server/tools/build.d.cts +22 -0
- package/dist/mcp-server/tools/build.d.cts.map +1 -0
- package/dist/mcp-server/tools/build.d.mts +22 -0
- package/dist/mcp-server/tools/build.d.mts.map +1 -0
- package/dist/mcp-server/tools/build.mjs +44 -0
- package/dist/mcp-server/tools/build.mjs.map +1 -0
- package/dist/mcp-server/tools/cleanup.cjs +20 -0
- package/dist/mcp-server/tools/cleanup.cjs.map +1 -0
- package/dist/mcp-server/tools/cleanup.d.cts +10 -0
- package/dist/mcp-server/tools/cleanup.d.cts.map +1 -0
- package/dist/mcp-server/tools/cleanup.d.mts +10 -0
- package/dist/mcp-server/tools/cleanup.d.mts.map +1 -0
- package/dist/mcp-server/tools/cleanup.mjs +17 -0
- package/dist/mcp-server/tools/cleanup.mjs.map +1 -0
- package/dist/mcp-server/tools/clipboard.cjs +100 -0
- package/dist/mcp-server/tools/clipboard.cjs.map +1 -0
- package/dist/mcp-server/tools/clipboard.d.cts +16 -0
- package/dist/mcp-server/tools/clipboard.d.cts.map +1 -0
- package/dist/mcp-server/tools/clipboard.d.mts +16 -0
- package/dist/mcp-server/tools/clipboard.d.mts.map +1 -0
- package/dist/mcp-server/tools/clipboard.mjs +97 -0
- package/dist/mcp-server/tools/clipboard.mjs.map +1 -0
- package/dist/mcp-server/tools/context.cjs +66 -0
- package/dist/mcp-server/tools/context.cjs.map +1 -0
- package/dist/mcp-server/tools/context.d.cts +35 -0
- package/dist/mcp-server/tools/context.d.cts.map +1 -0
- package/dist/mcp-server/tools/context.d.mts +35 -0
- package/dist/mcp-server/tools/context.d.mts.map +1 -0
- package/dist/mcp-server/tools/context.mjs +62 -0
- package/dist/mcp-server/tools/context.mjs.map +1 -0
- package/dist/mcp-server/tools/definitions.cjs +463 -0
- package/dist/mcp-server/tools/definitions.cjs.map +1 -0
- package/dist/mcp-server/tools/definitions.d.cts +97 -0
- package/dist/mcp-server/tools/definitions.d.cts.map +1 -0
- package/dist/mcp-server/tools/definitions.d.mts +97 -0
- package/dist/mcp-server/tools/definitions.d.mts.map +1 -0
- package/dist/mcp-server/tools/definitions.mjs +451 -0
- package/dist/mcp-server/tools/definitions.mjs.map +1 -0
- package/dist/mcp-server/tools/discovery-tools.cjs +162 -0
- package/dist/mcp-server/tools/discovery-tools.cjs.map +1 -0
- package/dist/mcp-server/tools/discovery-tools.d.cts +26 -0
- package/dist/mcp-server/tools/discovery-tools.d.cts.map +1 -0
- package/dist/mcp-server/tools/discovery-tools.d.mts +26 -0
- package/dist/mcp-server/tools/discovery-tools.d.mts.map +1 -0
- package/dist/mcp-server/tools/discovery-tools.mjs +157 -0
- package/dist/mcp-server/tools/discovery-tools.mjs.map +1 -0
- package/dist/mcp-server/tools/error-classification.cjs +296 -0
- package/dist/mcp-server/tools/error-classification.cjs.map +1 -0
- package/dist/mcp-server/tools/error-classification.d.cts +135 -0
- package/dist/mcp-server/tools/error-classification.d.cts.map +1 -0
- package/dist/mcp-server/tools/error-classification.d.mts +135 -0
- package/dist/mcp-server/tools/error-classification.d.mts.map +1 -0
- package/dist/mcp-server/tools/error-classification.mjs +281 -0
- package/dist/mcp-server/tools/error-classification.mjs.map +1 -0
- package/dist/mcp-server/tools/helpers.cjs +149 -0
- package/dist/mcp-server/tools/helpers.cjs.map +1 -0
- package/dist/mcp-server/tools/helpers.d.cts +149 -0
- package/dist/mcp-server/tools/helpers.d.cts.map +1 -0
- package/dist/mcp-server/tools/helpers.d.mts +149 -0
- package/dist/mcp-server/tools/helpers.d.mts.map +1 -0
- package/dist/mcp-server/tools/helpers.mjs +141 -0
- package/dist/mcp-server/tools/helpers.mjs.map +1 -0
- package/dist/mcp-server/tools/index.cjs +27 -0
- package/dist/mcp-server/tools/index.cjs.map +1 -0
- package/dist/mcp-server/tools/index.d.cts +11 -0
- package/dist/mcp-server/tools/index.d.cts.map +1 -0
- package/dist/mcp-server/tools/index.d.mts +11 -0
- package/dist/mcp-server/tools/index.d.mts.map +1 -0
- package/dist/mcp-server/tools/index.mjs +11 -0
- package/dist/mcp-server/tools/index.mjs.map +1 -0
- package/dist/mcp-server/tools/interaction.cjs +190 -0
- package/dist/mcp-server/tools/interaction.cjs.map +1 -0
- package/dist/mcp-server/tools/interaction.d.cts +26 -0
- package/dist/mcp-server/tools/interaction.d.cts.map +1 -0
- package/dist/mcp-server/tools/interaction.d.mts +26 -0
- package/dist/mcp-server/tools/interaction.d.mts.map +1 -0
- package/dist/mcp-server/tools/interaction.mjs +185 -0
- package/dist/mcp-server/tools/interaction.mjs.map +1 -0
- package/dist/mcp-server/tools/knowledge.cjs +120 -0
- package/dist/mcp-server/tools/knowledge.cjs.map +1 -0
- package/dist/mcp-server/tools/knowledge.d.cts +34 -0
- package/dist/mcp-server/tools/knowledge.d.cts.map +1 -0
- package/dist/mcp-server/tools/knowledge.d.mts +34 -0
- package/dist/mcp-server/tools/knowledge.d.mts.map +1 -0
- package/dist/mcp-server/tools/knowledge.mjs +114 -0
- package/dist/mcp-server/tools/knowledge.mjs.map +1 -0
- package/dist/mcp-server/tools/launch.cjs +51 -0
- package/dist/mcp-server/tools/launch.cjs.map +1 -0
- package/dist/mcp-server/tools/launch.d.cts +10 -0
- package/dist/mcp-server/tools/launch.d.cts.map +1 -0
- package/dist/mcp-server/tools/launch.d.mts +10 -0
- package/dist/mcp-server/tools/launch.d.mts.map +1 -0
- package/dist/mcp-server/tools/launch.mjs +48 -0
- package/dist/mcp-server/tools/launch.mjs.map +1 -0
- package/dist/mcp-server/tools/navigation.cjs +242 -0
- package/dist/mcp-server/tools/navigation.cjs.map +1 -0
- package/dist/mcp-server/tools/navigation.d.cts +34 -0
- package/dist/mcp-server/tools/navigation.d.cts.map +1 -0
- package/dist/mcp-server/tools/navigation.d.mts +34 -0
- package/dist/mcp-server/tools/navigation.d.mts.map +1 -0
- package/dist/mcp-server/tools/navigation.mjs +236 -0
- package/dist/mcp-server/tools/navigation.mjs.map +1 -0
- package/dist/mcp-server/tools/registry.cjs +10 -0
- package/dist/mcp-server/tools/registry.cjs.map +1 -0
- package/dist/mcp-server/tools/registry.d.cts +4 -0
- package/dist/mcp-server/tools/registry.d.cts.map +1 -0
- package/dist/mcp-server/tools/registry.d.mts +4 -0
- package/dist/mcp-server/tools/registry.d.mts.map +1 -0
- package/dist/mcp-server/tools/registry.mjs +4 -0
- package/dist/mcp-server/tools/registry.mjs.map +1 -0
- package/dist/mcp-server/tools/run-tool.cjs +140 -0
- package/dist/mcp-server/tools/run-tool.cjs.map +1 -0
- package/dist/mcp-server/tools/run-tool.d.cts +39 -0
- package/dist/mcp-server/tools/run-tool.d.cts.map +1 -0
- package/dist/mcp-server/tools/run-tool.d.mts +39 -0
- package/dist/mcp-server/tools/run-tool.d.mts.map +1 -0
- package/dist/mcp-server/tools/run-tool.mjs +137 -0
- package/dist/mcp-server/tools/run-tool.mjs.map +1 -0
- package/dist/mcp-server/tools/screenshot.cjs +55 -0
- package/dist/mcp-server/tools/screenshot.cjs.map +1 -0
- package/dist/mcp-server/tools/screenshot.d.cts +10 -0
- package/dist/mcp-server/tools/screenshot.d.cts.map +1 -0
- package/dist/mcp-server/tools/screenshot.d.mts +10 -0
- package/dist/mcp-server/tools/screenshot.d.mts.map +1 -0
- package/dist/mcp-server/tools/screenshot.mjs +52 -0
- package/dist/mcp-server/tools/screenshot.mjs.map +1 -0
- package/dist/mcp-server/tools/seeding.cjs +214 -0
- package/dist/mcp-server/tools/seeding.cjs.map +1 -0
- package/dist/mcp-server/tools/seeding.d.cts +38 -0
- package/dist/mcp-server/tools/seeding.d.cts.map +1 -0
- package/dist/mcp-server/tools/seeding.d.mts +38 -0
- package/dist/mcp-server/tools/seeding.d.mts.map +1 -0
- package/dist/mcp-server/tools/seeding.mjs +208 -0
- package/dist/mcp-server/tools/seeding.mjs.map +1 -0
- package/dist/mcp-server/tools/state.cjs +69 -0
- package/dist/mcp-server/tools/state.cjs.map +1 -0
- package/dist/mcp-server/tools/state.d.cts +19 -0
- package/dist/mcp-server/tools/state.d.cts.map +1 -0
- package/dist/mcp-server/tools/state.d.mts +19 -0
- package/dist/mcp-server/tools/state.d.mts.map +1 -0
- package/dist/mcp-server/tools/state.mjs +66 -0
- package/dist/mcp-server/tools/state.mjs.map +1 -0
- package/dist/mcp-server/types/discovery.cjs +24 -0
- package/dist/mcp-server/types/discovery.cjs.map +1 -0
- package/dist/mcp-server/types/discovery.d.cts +30 -0
- package/dist/mcp-server/types/discovery.d.cts.map +1 -0
- package/dist/mcp-server/types/discovery.d.mts +30 -0
- package/dist/mcp-server/types/discovery.d.mts.map +1 -0
- package/dist/mcp-server/types/discovery.mjs +21 -0
- package/dist/mcp-server/types/discovery.mjs.map +1 -0
- package/dist/mcp-server/types/errors.cjs +33 -0
- package/dist/mcp-server/types/errors.cjs.map +1 -0
- package/dist/mcp-server/types/errors.d.cts +31 -0
- package/dist/mcp-server/types/errors.d.cts.map +1 -0
- package/dist/mcp-server/types/errors.d.mts +31 -0
- package/dist/mcp-server/types/errors.d.mts.map +1 -0
- package/dist/mcp-server/types/errors.mjs +30 -0
- package/dist/mcp-server/types/errors.mjs.map +1 -0
- package/dist/mcp-server/types/index.cjs +21 -0
- package/dist/mcp-server/types/index.cjs.map +1 -0
- package/dist/mcp-server/types/index.d.cts +10 -0
- package/dist/mcp-server/types/index.d.cts.map +1 -0
- package/dist/mcp-server/types/index.d.mts +10 -0
- package/dist/mcp-server/types/index.d.mts.map +1 -0
- package/dist/mcp-server/types/index.mjs +5 -0
- package/dist/mcp-server/types/index.mjs.map +1 -0
- package/dist/mcp-server/types/knowledge.cjs +3 -0
- package/dist/mcp-server/types/knowledge.cjs.map +1 -0
- package/dist/mcp-server/types/knowledge.d.cts +116 -0
- package/dist/mcp-server/types/knowledge.d.cts.map +1 -0
- package/dist/mcp-server/types/knowledge.d.mts +116 -0
- package/dist/mcp-server/types/knowledge.d.mts.map +1 -0
- package/dist/mcp-server/types/knowledge.mjs +2 -0
- package/dist/mcp-server/types/knowledge.mjs.map +1 -0
- package/dist/mcp-server/types/responses.cjs +3 -0
- package/dist/mcp-server/types/responses.cjs.map +1 -0
- package/dist/mcp-server/types/responses.d.cts +22 -0
- package/dist/mcp-server/types/responses.d.cts.map +1 -0
- package/dist/mcp-server/types/responses.d.mts +22 -0
- package/dist/mcp-server/types/responses.d.mts.map +1 -0
- package/dist/mcp-server/types/responses.mjs +2 -0
- package/dist/mcp-server/types/responses.mjs.map +1 -0
- package/dist/mcp-server/types/seeding.cjs +34 -0
- package/dist/mcp-server/types/seeding.cjs.map +1 -0
- package/dist/mcp-server/types/seeding.d.cts +40 -0
- package/dist/mcp-server/types/seeding.d.cts.map +1 -0
- package/dist/mcp-server/types/seeding.d.mts +40 -0
- package/dist/mcp-server/types/seeding.d.mts.map +1 -0
- package/dist/mcp-server/types/seeding.mjs +31 -0
- package/dist/mcp-server/types/seeding.mjs.map +1 -0
- package/dist/mcp-server/types/session.cjs +3 -0
- package/dist/mcp-server/types/session.cjs.map +1 -0
- package/dist/mcp-server/types/session.d.cts +11 -0
- package/dist/mcp-server/types/session.d.cts.map +1 -0
- package/dist/mcp-server/types/session.d.mts +11 -0
- package/dist/mcp-server/types/session.d.mts.map +1 -0
- package/dist/mcp-server/types/session.mjs +2 -0
- package/dist/mcp-server/types/session.mjs.map +1 -0
- package/dist/mcp-server/types/step-record.cjs +20 -0
- package/dist/mcp-server/types/step-record.cjs.map +1 -0
- package/dist/mcp-server/types/step-record.d.cts +86 -0
- package/dist/mcp-server/types/step-record.d.cts.map +1 -0
- package/dist/mcp-server/types/step-record.d.mts +86 -0
- package/dist/mcp-server/types/step-record.d.mts.map +1 -0
- package/dist/mcp-server/types/step-record.mjs +17 -0
- package/dist/mcp-server/types/step-record.mjs.map +1 -0
- package/dist/mcp-server/types/tool-inputs.cjs +3 -0
- package/dist/mcp-server/types/tool-inputs.cjs.map +1 -0
- package/dist/mcp-server/types/tool-inputs.d.cts +118 -0
- package/dist/mcp-server/types/tool-inputs.d.cts.map +1 -0
- package/dist/mcp-server/types/tool-inputs.d.mts +118 -0
- package/dist/mcp-server/types/tool-inputs.d.mts.map +1 -0
- package/dist/mcp-server/types/tool-inputs.mjs +2 -0
- package/dist/mcp-server/types/tool-inputs.mjs.map +1 -0
- package/dist/mcp-server/types/tool-outputs.cjs +3 -0
- package/dist/mcp-server/types/tool-outputs.cjs.map +1 -0
- package/dist/mcp-server/types/tool-outputs.d.cts +121 -0
- package/dist/mcp-server/types/tool-outputs.d.cts.map +1 -0
- package/dist/mcp-server/types/tool-outputs.d.mts +121 -0
- package/dist/mcp-server/types/tool-outputs.d.mts.map +1 -0
- package/dist/mcp-server/types/tool-outputs.mjs +2 -0
- package/dist/mcp-server/types/tool-outputs.mjs.map +1 -0
- package/dist/mcp-server/utils/errors.cjs +14 -0
- package/dist/mcp-server/utils/errors.cjs.map +1 -0
- package/dist/mcp-server/utils/errors.d.cts +9 -0
- package/dist/mcp-server/utils/errors.d.cts.map +1 -0
- package/dist/mcp-server/utils/errors.d.mts +9 -0
- package/dist/mcp-server/utils/errors.d.mts.map +1 -0
- package/dist/mcp-server/utils/errors.mjs +11 -0
- package/dist/mcp-server/utils/errors.mjs.map +1 -0
- package/dist/mcp-server/utils/index.cjs +22 -0
- package/dist/mcp-server/utils/index.cjs.map +1 -0
- package/dist/mcp-server/utils/index.d.cts +8 -0
- package/dist/mcp-server/utils/index.d.cts.map +1 -0
- package/dist/mcp-server/utils/index.d.mts +8 -0
- package/dist/mcp-server/utils/index.d.mts.map +1 -0
- package/dist/mcp-server/utils/index.mjs +8 -0
- package/dist/mcp-server/utils/index.mjs.map +1 -0
- package/dist/mcp-server/utils/logger.cjs +25 -0
- package/dist/mcp-server/utils/logger.cjs.map +1 -0
- package/dist/mcp-server/utils/logger.d.cts +9 -0
- package/dist/mcp-server/utils/logger.d.cts.map +1 -0
- package/dist/mcp-server/utils/logger.d.mts +9 -0
- package/dist/mcp-server/utils/logger.d.mts.map +1 -0
- package/dist/mcp-server/utils/logger.mjs +22 -0
- package/dist/mcp-server/utils/logger.mjs.map +1 -0
- package/dist/mcp-server/utils/redaction.cjs +24 -0
- package/dist/mcp-server/utils/redaction.cjs.map +1 -0
- package/dist/mcp-server/utils/redaction.d.cts +9 -0
- package/dist/mcp-server/utils/redaction.d.cts.map +1 -0
- package/dist/mcp-server/utils/redaction.d.mts +9 -0
- package/dist/mcp-server/utils/redaction.d.mts.map +1 -0
- package/dist/mcp-server/utils/redaction.mjs +20 -0
- package/dist/mcp-server/utils/redaction.mjs.map +1 -0
- package/dist/mcp-server/utils/response.cjs +49 -0
- package/dist/mcp-server/utils/response.cjs.map +1 -0
- package/dist/mcp-server/utils/response.d.cts +22 -0
- package/dist/mcp-server/utils/response.d.cts.map +1 -0
- package/dist/mcp-server/utils/response.d.mts +22 -0
- package/dist/mcp-server/utils/response.d.mts.map +1 -0
- package/dist/mcp-server/utils/response.mjs +45 -0
- package/dist/mcp-server/utils/response.mjs.map +1 -0
- package/dist/mcp-server/utils/targets.cjs +32 -0
- package/dist/mcp-server/utils/targets.cjs.map +1 -0
- package/dist/mcp-server/utils/targets.d.cts +25 -0
- package/dist/mcp-server/utils/targets.d.cts.map +1 -0
- package/dist/mcp-server/utils/targets.d.mts +25 -0
- package/dist/mcp-server/utils/targets.d.mts.map +1 -0
- package/dist/mcp-server/utils/targets.mjs +29 -0
- package/dist/mcp-server/utils/targets.mjs.map +1 -0
- package/dist/mcp-server/utils/time.cjs +39 -0
- package/dist/mcp-server/utils/time.cjs.map +1 -0
- package/dist/mcp-server/utils/time.d.cts +15 -0
- package/dist/mcp-server/utils/time.d.cts.map +1 -0
- package/dist/mcp-server/utils/time.d.mts +15 -0
- package/dist/mcp-server/utils/time.d.mts.map +1 -0
- package/dist/mcp-server/utils/time.mjs +35 -0
- package/dist/mcp-server/utils/time.mjs.map +1 -0
- package/dist/mcp-server/utils/type-guards.cjs +42 -0
- package/dist/mcp-server/utils/type-guards.cjs.map +1 -0
- package/dist/mcp-server/utils/type-guards.d.cts +30 -0
- package/dist/mcp-server/utils/type-guards.d.cts.map +1 -0
- package/dist/mcp-server/utils/type-guards.d.mts +30 -0
- package/dist/mcp-server/utils/type-guards.d.mts.map +1 -0
- package/dist/mcp-server/utils/type-guards.mjs +38 -0
- package/dist/mcp-server/utils/type-guards.mjs.map +1 -0
- package/dist/utils/fetch.cjs +36 -0
- package/dist/utils/fetch.cjs.map +1 -0
- package/dist/utils/fetch.d.cts +20 -0
- package/dist/utils/fetch.d.cts.map +1 -0
- package/dist/utils/fetch.d.mts +20 -0
- package/dist/utils/fetch.d.mts.map +1 -0
- package/dist/utils/fetch.mjs +33 -0
- package/dist/utils/fetch.mjs.map +1 -0
- package/dist/utils/index.cjs +11 -0
- package/dist/utils/index.cjs.map +1 -0
- package/dist/utils/index.d.cts +6 -0
- package/dist/utils/index.d.cts.map +1 -0
- package/dist/utils/index.d.mts +6 -0
- package/dist/utils/index.d.mts.map +1 -0
- package/dist/utils/index.mjs +6 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/utils/service-readiness.cjs +75 -0
- package/dist/utils/service-readiness.cjs.map +1 -0
- package/dist/utils/service-readiness.d.cts +61 -0
- package/dist/utils/service-readiness.d.cts.map +1 -0
- package/dist/utils/service-readiness.d.mts +61 -0
- package/dist/utils/service-readiness.d.mts.map +1 -0
- package/dist/utils/service-readiness.mjs +72 -0
- package/dist/utils/service-readiness.mjs.map +1 -0
- package/package.json +119 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playwright mock factories for unit testing.
|
|
3
|
+
*
|
|
4
|
+
* Provides factory functions that return fresh mock Playwright objects:
|
|
5
|
+
* - createMockPage() - Mock Playwright Page with all used methods
|
|
6
|
+
* - createMockLocator() - Mock Playwright Locator with chainable methods
|
|
7
|
+
* - createMockBrowserContext() - Mock BrowserContext
|
|
8
|
+
*
|
|
9
|
+
* Each factory call returns NEW instances with fresh vi.fn() mocks.
|
|
10
|
+
*/
|
|
11
|
+
import type { Page, Locator, BrowserContext } from "@playwright/test";
|
|
12
|
+
export type MockPageOptions = {
|
|
13
|
+
url?: string;
|
|
14
|
+
locatorMock?: Locator;
|
|
15
|
+
};
|
|
16
|
+
export type MockLocatorOptions = {
|
|
17
|
+
clickMock?: () => Promise<void>;
|
|
18
|
+
fillMock?: (text: string) => Promise<void>;
|
|
19
|
+
isVisibleMock?: () => Promise<boolean>;
|
|
20
|
+
getAttributeMock?: (name: string) => Promise<string | null>;
|
|
21
|
+
textContentMock?: () => Promise<string | null>;
|
|
22
|
+
allMock?: () => Promise<Locator[]>;
|
|
23
|
+
firstMock?: () => Locator;
|
|
24
|
+
nthMock?: (index: number) => Locator;
|
|
25
|
+
};
|
|
26
|
+
export type MockBrowserContextOptions = {
|
|
27
|
+
pages?: Page[];
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Create a fresh mock Playwright Locator instance.
|
|
31
|
+
*
|
|
32
|
+
* Includes all methods used in tool handlers:
|
|
33
|
+
* - click() - async mock
|
|
34
|
+
* - fill(text) - async mock
|
|
35
|
+
* - isVisible() - async mock
|
|
36
|
+
* - getAttribute(name) - async mock
|
|
37
|
+
* - textContent() - async mock
|
|
38
|
+
* - all() - async mock
|
|
39
|
+
* - first() - returns mock locator
|
|
40
|
+
* - nth(index) - returns mock locator
|
|
41
|
+
*
|
|
42
|
+
* Methods are chainable where appropriate.
|
|
43
|
+
*
|
|
44
|
+
* @param options - Customize mock behavior
|
|
45
|
+
* @returns Fresh Locator mock
|
|
46
|
+
*/
|
|
47
|
+
export declare function createMockLocator(options?: MockLocatorOptions): Locator;
|
|
48
|
+
/**
|
|
49
|
+
* Create a fresh mock Playwright Page instance.
|
|
50
|
+
*
|
|
51
|
+
* Includes all methods used in tool handlers:
|
|
52
|
+
* - locator(selector) - returns mock locator
|
|
53
|
+
* - waitForLoadState() - async mock
|
|
54
|
+
* - url() - returns string
|
|
55
|
+
* - context() - returns mock context
|
|
56
|
+
* - screenshot(options) - async mock
|
|
57
|
+
*
|
|
58
|
+
* @param options - Customize mock behavior
|
|
59
|
+
* @returns Fresh Page mock
|
|
60
|
+
*/
|
|
61
|
+
export declare function createMockPage(options?: MockPageOptions): Page;
|
|
62
|
+
/**
|
|
63
|
+
* Create a fresh mock Playwright BrowserContext instance.
|
|
64
|
+
*
|
|
65
|
+
* @param options - Customize mock behavior
|
|
66
|
+
* @returns Fresh BrowserContext mock
|
|
67
|
+
*/
|
|
68
|
+
export declare function createMockBrowserContext(options?: MockBrowserContextOptions): Partial<BrowserContext>;
|
|
69
|
+
//# sourceMappingURL=mock-playwright.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-playwright.d.mts","sourceRoot":"","sources":["../../../src/mcp-server/test-utils/mock-playwright.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,yBAAyB;AAGtE,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5D,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CA6C3E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,IAAI,CA8ElE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,cAAc,CAAC,CA+BzB"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playwright mock factories for unit testing.
|
|
3
|
+
*
|
|
4
|
+
* Provides factory functions that return fresh mock Playwright objects:
|
|
5
|
+
* - createMockPage() - Mock Playwright Page with all used methods
|
|
6
|
+
* - createMockLocator() - Mock Playwright Locator with chainable methods
|
|
7
|
+
* - createMockBrowserContext() - Mock BrowserContext
|
|
8
|
+
*
|
|
9
|
+
* Each factory call returns NEW instances with fresh vi.fn() mocks.
|
|
10
|
+
*/
|
|
11
|
+
import { vi } from "vitest";
|
|
12
|
+
/**
|
|
13
|
+
* Create a fresh mock Playwright Locator instance.
|
|
14
|
+
*
|
|
15
|
+
* Includes all methods used in tool handlers:
|
|
16
|
+
* - click() - async mock
|
|
17
|
+
* - fill(text) - async mock
|
|
18
|
+
* - isVisible() - async mock
|
|
19
|
+
* - getAttribute(name) - async mock
|
|
20
|
+
* - textContent() - async mock
|
|
21
|
+
* - all() - async mock
|
|
22
|
+
* - first() - returns mock locator
|
|
23
|
+
* - nth(index) - returns mock locator
|
|
24
|
+
*
|
|
25
|
+
* Methods are chainable where appropriate.
|
|
26
|
+
*
|
|
27
|
+
* @param options - Customize mock behavior
|
|
28
|
+
* @returns Fresh Locator mock
|
|
29
|
+
*/
|
|
30
|
+
export function createMockLocator(options = {}) {
|
|
31
|
+
const mockLocator = {
|
|
32
|
+
click: vi.fn().mockResolvedValue(options.clickMock?.() ?? undefined),
|
|
33
|
+
fill: vi.fn().mockResolvedValue(options.fillMock?.('') ?? undefined),
|
|
34
|
+
isVisible: vi.fn().mockResolvedValue(options.isVisibleMock?.() ?? true),
|
|
35
|
+
getAttribute: vi
|
|
36
|
+
.fn()
|
|
37
|
+
.mockResolvedValue(options.getAttributeMock?.('') ?? null),
|
|
38
|
+
textContent: vi.fn().mockResolvedValue(options.textContentMock?.() ?? null),
|
|
39
|
+
all: vi.fn().mockResolvedValue(options.allMock?.() ?? []),
|
|
40
|
+
clear: vi.fn().mockResolvedValue(undefined),
|
|
41
|
+
check: vi.fn().mockResolvedValue(undefined),
|
|
42
|
+
uncheck: vi.fn().mockResolvedValue(undefined),
|
|
43
|
+
hover: vi.fn().mockResolvedValue(undefined),
|
|
44
|
+
focus: vi.fn().mockResolvedValue(undefined),
|
|
45
|
+
blur: vi.fn().mockResolvedValue(undefined),
|
|
46
|
+
type: vi.fn().mockResolvedValue(undefined),
|
|
47
|
+
press: vi.fn().mockResolvedValue(undefined),
|
|
48
|
+
selectOption: vi.fn().mockResolvedValue([]),
|
|
49
|
+
selectText: vi.fn().mockResolvedValue(undefined),
|
|
50
|
+
setInputFiles: vi.fn().mockResolvedValue(undefined),
|
|
51
|
+
setChecked: vi.fn().mockResolvedValue(undefined),
|
|
52
|
+
dragTo: vi.fn().mockResolvedValue(undefined),
|
|
53
|
+
screenshot: vi.fn().mockResolvedValue(Buffer.from('')),
|
|
54
|
+
scrollIntoViewIfNeeded: vi.fn().mockResolvedValue(undefined),
|
|
55
|
+
waitFor: vi.fn().mockResolvedValue(undefined),
|
|
56
|
+
evaluate: vi.fn().mockResolvedValue(undefined),
|
|
57
|
+
evaluateAll: vi.fn().mockResolvedValue([]),
|
|
58
|
+
evaluateHandle: vi.fn().mockResolvedValue({}),
|
|
59
|
+
count: vi.fn().mockResolvedValue(1),
|
|
60
|
+
boundingBox: vi.fn().mockResolvedValue(null),
|
|
61
|
+
elementHandle: vi.fn().mockResolvedValue(null),
|
|
62
|
+
elementHandles: vi.fn().mockResolvedValue([]),
|
|
63
|
+
isChecked: vi.fn().mockResolvedValue(false),
|
|
64
|
+
isDisabled: vi.fn().mockResolvedValue(false),
|
|
65
|
+
isEditable: vi.fn().mockResolvedValue(true),
|
|
66
|
+
isEnabled: vi.fn().mockResolvedValue(true),
|
|
67
|
+
innerHTML: vi.fn().mockResolvedValue(''),
|
|
68
|
+
inputValue: vi.fn().mockResolvedValue(''),
|
|
69
|
+
page: vi.fn(),
|
|
70
|
+
first: vi.fn().mockReturnValue(options.firstMock?.() ?? {}),
|
|
71
|
+
nth: vi.fn().mockReturnValue(options.nthMock?.(0) ?? {}),
|
|
72
|
+
};
|
|
73
|
+
return mockLocator;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Create a fresh mock Playwright Page instance.
|
|
77
|
+
*
|
|
78
|
+
* Includes all methods used in tool handlers:
|
|
79
|
+
* - locator(selector) - returns mock locator
|
|
80
|
+
* - waitForLoadState() - async mock
|
|
81
|
+
* - url() - returns string
|
|
82
|
+
* - context() - returns mock context
|
|
83
|
+
* - screenshot(options) - async mock
|
|
84
|
+
*
|
|
85
|
+
* @param options - Customize mock behavior
|
|
86
|
+
* @returns Fresh Page mock
|
|
87
|
+
*/
|
|
88
|
+
export function createMockPage(options = {}) {
|
|
89
|
+
const mockLocator = options.locatorMock ?? createMockLocator();
|
|
90
|
+
const page = {
|
|
91
|
+
locator: vi.fn().mockReturnValue(mockLocator),
|
|
92
|
+
waitForLoadState: vi.fn().mockResolvedValue(undefined),
|
|
93
|
+
url: vi.fn().mockReturnValue(options.url ?? 'about:blank'),
|
|
94
|
+
screenshot: vi.fn().mockResolvedValue({
|
|
95
|
+
buffer: Buffer.from(''),
|
|
96
|
+
path: '/path/to/screenshot.png',
|
|
97
|
+
}),
|
|
98
|
+
goto: vi.fn().mockResolvedValue(null),
|
|
99
|
+
close: vi.fn().mockResolvedValue(undefined),
|
|
100
|
+
isClosed: vi.fn().mockReturnValue(false),
|
|
101
|
+
evaluate: vi.fn().mockResolvedValue(undefined),
|
|
102
|
+
evaluateHandle: vi.fn().mockResolvedValue({}),
|
|
103
|
+
getByTestId: vi.fn().mockReturnValue(mockLocator),
|
|
104
|
+
getByRole: vi.fn().mockReturnValue(mockLocator),
|
|
105
|
+
getByLabel: vi.fn().mockReturnValue(mockLocator),
|
|
106
|
+
getByPlaceholder: vi.fn().mockReturnValue(mockLocator),
|
|
107
|
+
getByText: vi.fn().mockReturnValue(mockLocator),
|
|
108
|
+
getByAltText: vi.fn().mockReturnValue(mockLocator),
|
|
109
|
+
getByTitle: vi.fn().mockReturnValue(mockLocator),
|
|
110
|
+
frameLocator: vi.fn().mockReturnValue(mockLocator),
|
|
111
|
+
waitForFunction: vi.fn().mockResolvedValue(null),
|
|
112
|
+
waitForNavigation: vi.fn().mockResolvedValue(null),
|
|
113
|
+
waitForURL: vi.fn().mockResolvedValue(undefined),
|
|
114
|
+
waitForSelector: vi.fn().mockResolvedValue(mockLocator),
|
|
115
|
+
title: vi.fn().mockResolvedValue(''),
|
|
116
|
+
content: vi.fn().mockResolvedValue(''),
|
|
117
|
+
reload: vi.fn().mockResolvedValue(null),
|
|
118
|
+
goBack: vi.fn().mockResolvedValue(null),
|
|
119
|
+
goForward: vi.fn().mockResolvedValue(null),
|
|
120
|
+
bringToFront: vi.fn().mockResolvedValue(undefined),
|
|
121
|
+
focus: vi.fn().mockResolvedValue(undefined),
|
|
122
|
+
viewportSize: vi.fn().mockReturnValue({ width: 1280, height: 720 }),
|
|
123
|
+
setViewportSize: vi.fn().mockResolvedValue(undefined),
|
|
124
|
+
emulateMedia: vi.fn().mockResolvedValue(undefined),
|
|
125
|
+
setExtraHTTPHeaders: vi.fn().mockResolvedValue(undefined),
|
|
126
|
+
addInitScript: vi.fn().mockResolvedValue(undefined),
|
|
127
|
+
exposeFunction: vi.fn().mockResolvedValue(undefined),
|
|
128
|
+
exposeBinding: vi.fn().mockResolvedValue(undefined),
|
|
129
|
+
removeExposedBindings: vi.fn().mockResolvedValue(undefined),
|
|
130
|
+
pause: vi.fn().mockResolvedValue(undefined),
|
|
131
|
+
pdf: vi.fn().mockResolvedValue(Buffer.from('')),
|
|
132
|
+
accessibility: {
|
|
133
|
+
snapshot: vi.fn().mockResolvedValue(null),
|
|
134
|
+
},
|
|
135
|
+
keyboard: {
|
|
136
|
+
press: vi.fn().mockResolvedValue(undefined),
|
|
137
|
+
type: vi.fn().mockResolvedValue(undefined),
|
|
138
|
+
down: vi.fn().mockResolvedValue(undefined),
|
|
139
|
+
up: vi.fn().mockResolvedValue(undefined),
|
|
140
|
+
insertText: vi.fn().mockResolvedValue(undefined),
|
|
141
|
+
},
|
|
142
|
+
mouse: {
|
|
143
|
+
move: vi.fn().mockResolvedValue(undefined),
|
|
144
|
+
click: vi.fn().mockResolvedValue(undefined),
|
|
145
|
+
dblclick: vi.fn().mockResolvedValue(undefined),
|
|
146
|
+
down: vi.fn().mockResolvedValue(undefined),
|
|
147
|
+
up: vi.fn().mockResolvedValue(undefined),
|
|
148
|
+
wheel: vi.fn().mockResolvedValue(undefined),
|
|
149
|
+
},
|
|
150
|
+
touchscreen: {
|
|
151
|
+
tap: vi.fn().mockResolvedValue(undefined),
|
|
152
|
+
},
|
|
153
|
+
context: vi.fn(),
|
|
154
|
+
page: vi.fn(),
|
|
155
|
+
};
|
|
156
|
+
page.context.mockReturnValue({
|
|
157
|
+
pages: vi.fn().mockReturnValue([]),
|
|
158
|
+
newPage: vi.fn().mockResolvedValue({}),
|
|
159
|
+
close: vi.fn().mockResolvedValue(undefined),
|
|
160
|
+
});
|
|
161
|
+
page.page.mockReturnValue(page);
|
|
162
|
+
return page;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Create a fresh mock Playwright BrowserContext instance.
|
|
166
|
+
*
|
|
167
|
+
* @param options - Customize mock behavior
|
|
168
|
+
* @returns Fresh BrowserContext mock
|
|
169
|
+
*/
|
|
170
|
+
export function createMockBrowserContext(options = {}) {
|
|
171
|
+
const context = {
|
|
172
|
+
pages: vi.fn().mockReturnValue(options.pages ?? []),
|
|
173
|
+
newPage: vi.fn(),
|
|
174
|
+
close: vi.fn().mockResolvedValue(undefined),
|
|
175
|
+
browser: vi.fn().mockReturnValue(null),
|
|
176
|
+
addCookies: vi.fn().mockResolvedValue(undefined),
|
|
177
|
+
addInitScript: vi.fn().mockResolvedValue(undefined),
|
|
178
|
+
clearCookies: vi.fn().mockResolvedValue(undefined),
|
|
179
|
+
cookies: vi.fn().mockResolvedValue([]),
|
|
180
|
+
exposeBinding: vi.fn().mockResolvedValue(undefined),
|
|
181
|
+
exposeFunction: vi.fn().mockResolvedValue(undefined),
|
|
182
|
+
grantPermissions: vi.fn().mockResolvedValue(undefined),
|
|
183
|
+
revokePermissions: vi.fn().mockResolvedValue(undefined),
|
|
184
|
+
setExtraHTTPHeaders: vi.fn().mockResolvedValue(undefined),
|
|
185
|
+
setGeolocation: vi.fn().mockResolvedValue(undefined),
|
|
186
|
+
setOffline: vi.fn().mockResolvedValue(undefined),
|
|
187
|
+
waitForEvent: vi.fn().mockResolvedValue(null),
|
|
188
|
+
tracing: {
|
|
189
|
+
start: vi.fn().mockResolvedValue(undefined),
|
|
190
|
+
stop: vi.fn().mockResolvedValue(Buffer.from('')),
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
context.newPage.mockResolvedValue({
|
|
194
|
+
locator: vi.fn().mockReturnValue({}),
|
|
195
|
+
url: vi.fn().mockReturnValue('about:blank'),
|
|
196
|
+
close: vi.fn().mockResolvedValue(undefined),
|
|
197
|
+
});
|
|
198
|
+
return context;
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=mock-playwright.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-playwright.mjs","sourceRoot":"","sources":["../../../src/mcp-server/test-utils/mock-playwright.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Playwright mock factories for unit testing.\n *\n * Provides factory functions that return fresh mock Playwright objects:\n * - createMockPage() - Mock Playwright Page with all used methods\n * - createMockLocator() - Mock Playwright Locator with chainable methods\n * - createMockBrowserContext() - Mock BrowserContext\n *\n * Each factory call returns NEW instances with fresh vi.fn() mocks.\n */\n\nimport type { Page, Locator, BrowserContext } from '@playwright/test';\nimport { vi } from 'vitest';\n\nexport type MockPageOptions = {\n url?: string;\n locatorMock?: Locator;\n};\n\nexport type MockLocatorOptions = {\n clickMock?: () => Promise<void>;\n fillMock?: (text: string) => Promise<void>;\n isVisibleMock?: () => Promise<boolean>;\n getAttributeMock?: (name: string) => Promise<string | null>;\n textContentMock?: () => Promise<string | null>;\n allMock?: () => Promise<Locator[]>;\n firstMock?: () => Locator;\n nthMock?: (index: number) => Locator;\n};\n\nexport type MockBrowserContextOptions = {\n pages?: Page[];\n};\n\n/**\n * Create a fresh mock Playwright Locator instance.\n *\n * Includes all methods used in tool handlers:\n * - click() - async mock\n * - fill(text) - async mock\n * - isVisible() - async mock\n * - getAttribute(name) - async mock\n * - textContent() - async mock\n * - all() - async mock\n * - first() - returns mock locator\n * - nth(index) - returns mock locator\n *\n * Methods are chainable where appropriate.\n *\n * @param options - Customize mock behavior\n * @returns Fresh Locator mock\n */\nexport function createMockLocator(options: MockLocatorOptions = {}): Locator {\n const mockLocator: any = {\n click: vi.fn().mockResolvedValue(options.clickMock?.() ?? undefined),\n fill: vi.fn().mockResolvedValue(options.fillMock?.('') ?? undefined),\n isVisible: vi.fn().mockResolvedValue(options.isVisibleMock?.() ?? true),\n getAttribute: vi\n .fn()\n .mockResolvedValue(options.getAttributeMock?.('') ?? null),\n textContent: vi.fn().mockResolvedValue(options.textContentMock?.() ?? null),\n all: vi.fn().mockResolvedValue(options.allMock?.() ?? []),\n clear: vi.fn().mockResolvedValue(undefined),\n check: vi.fn().mockResolvedValue(undefined),\n uncheck: vi.fn().mockResolvedValue(undefined),\n hover: vi.fn().mockResolvedValue(undefined),\n focus: vi.fn().mockResolvedValue(undefined),\n blur: vi.fn().mockResolvedValue(undefined),\n type: vi.fn().mockResolvedValue(undefined),\n press: vi.fn().mockResolvedValue(undefined),\n selectOption: vi.fn().mockResolvedValue([]),\n selectText: vi.fn().mockResolvedValue(undefined),\n setInputFiles: vi.fn().mockResolvedValue(undefined),\n setChecked: vi.fn().mockResolvedValue(undefined),\n dragTo: vi.fn().mockResolvedValue(undefined),\n screenshot: vi.fn().mockResolvedValue(Buffer.from('')),\n scrollIntoViewIfNeeded: vi.fn().mockResolvedValue(undefined),\n waitFor: vi.fn().mockResolvedValue(undefined),\n evaluate: vi.fn().mockResolvedValue(undefined),\n evaluateAll: vi.fn().mockResolvedValue([]),\n evaluateHandle: vi.fn().mockResolvedValue({}),\n count: vi.fn().mockResolvedValue(1),\n boundingBox: vi.fn().mockResolvedValue(null),\n elementHandle: vi.fn().mockResolvedValue(null),\n elementHandles: vi.fn().mockResolvedValue([]),\n isChecked: vi.fn().mockResolvedValue(false),\n isDisabled: vi.fn().mockResolvedValue(false),\n isEditable: vi.fn().mockResolvedValue(true),\n isEnabled: vi.fn().mockResolvedValue(true),\n innerHTML: vi.fn().mockResolvedValue(''),\n inputValue: vi.fn().mockResolvedValue(''),\n page: vi.fn(),\n first: vi.fn().mockReturnValue(options.firstMock?.() ?? {}),\n nth: vi.fn().mockReturnValue(options.nthMock?.(0) ?? {}),\n };\n\n return mockLocator as Locator;\n}\n\n/**\n * Create a fresh mock Playwright Page instance.\n *\n * Includes all methods used in tool handlers:\n * - locator(selector) - returns mock locator\n * - waitForLoadState() - async mock\n * - url() - returns string\n * - context() - returns mock context\n * - screenshot(options) - async mock\n *\n * @param options - Customize mock behavior\n * @returns Fresh Page mock\n */\nexport function createMockPage(options: MockPageOptions = {}): Page {\n const mockLocator = options.locatorMock ?? createMockLocator();\n\n const page: any = {\n locator: vi.fn().mockReturnValue(mockLocator),\n waitForLoadState: vi.fn().mockResolvedValue(undefined),\n url: vi.fn().mockReturnValue(options.url ?? 'about:blank'),\n screenshot: vi.fn().mockResolvedValue({\n buffer: Buffer.from(''),\n path: '/path/to/screenshot.png',\n }),\n goto: vi.fn().mockResolvedValue(null),\n close: vi.fn().mockResolvedValue(undefined),\n isClosed: vi.fn().mockReturnValue(false),\n evaluate: vi.fn().mockResolvedValue(undefined),\n evaluateHandle: vi.fn().mockResolvedValue({}),\n getByTestId: vi.fn().mockReturnValue(mockLocator),\n getByRole: vi.fn().mockReturnValue(mockLocator),\n getByLabel: vi.fn().mockReturnValue(mockLocator),\n getByPlaceholder: vi.fn().mockReturnValue(mockLocator),\n getByText: vi.fn().mockReturnValue(mockLocator),\n getByAltText: vi.fn().mockReturnValue(mockLocator),\n getByTitle: vi.fn().mockReturnValue(mockLocator),\n frameLocator: vi.fn().mockReturnValue(mockLocator),\n waitForFunction: vi.fn().mockResolvedValue(null),\n waitForNavigation: vi.fn().mockResolvedValue(null),\n waitForURL: vi.fn().mockResolvedValue(undefined),\n waitForSelector: vi.fn().mockResolvedValue(mockLocator),\n title: vi.fn().mockResolvedValue(''),\n content: vi.fn().mockResolvedValue(''),\n reload: vi.fn().mockResolvedValue(null),\n goBack: vi.fn().mockResolvedValue(null),\n goForward: vi.fn().mockResolvedValue(null),\n bringToFront: vi.fn().mockResolvedValue(undefined),\n focus: vi.fn().mockResolvedValue(undefined),\n viewportSize: vi.fn().mockReturnValue({ width: 1280, height: 720 }),\n setViewportSize: vi.fn().mockResolvedValue(undefined),\n emulateMedia: vi.fn().mockResolvedValue(undefined),\n setExtraHTTPHeaders: vi.fn().mockResolvedValue(undefined),\n addInitScript: vi.fn().mockResolvedValue(undefined),\n exposeFunction: vi.fn().mockResolvedValue(undefined),\n exposeBinding: vi.fn().mockResolvedValue(undefined),\n removeExposedBindings: vi.fn().mockResolvedValue(undefined),\n pause: vi.fn().mockResolvedValue(undefined),\n pdf: vi.fn().mockResolvedValue(Buffer.from('')),\n accessibility: {\n snapshot: vi.fn().mockResolvedValue(null),\n },\n keyboard: {\n press: vi.fn().mockResolvedValue(undefined),\n type: vi.fn().mockResolvedValue(undefined),\n down: vi.fn().mockResolvedValue(undefined),\n up: vi.fn().mockResolvedValue(undefined),\n insertText: vi.fn().mockResolvedValue(undefined),\n },\n mouse: {\n move: vi.fn().mockResolvedValue(undefined),\n click: vi.fn().mockResolvedValue(undefined),\n dblclick: vi.fn().mockResolvedValue(undefined),\n down: vi.fn().mockResolvedValue(undefined),\n up: vi.fn().mockResolvedValue(undefined),\n wheel: vi.fn().mockResolvedValue(undefined),\n },\n touchscreen: {\n tap: vi.fn().mockResolvedValue(undefined),\n },\n context: vi.fn(),\n page: vi.fn(),\n };\n\n page.context.mockReturnValue({\n pages: vi.fn().mockReturnValue([]),\n newPage: vi.fn().mockResolvedValue({}),\n close: vi.fn().mockResolvedValue(undefined),\n });\n page.page.mockReturnValue(page);\n\n return page as Page;\n}\n\n/**\n * Create a fresh mock Playwright BrowserContext instance.\n *\n * @param options - Customize mock behavior\n * @returns Fresh BrowserContext mock\n */\nexport function createMockBrowserContext(\n options: MockBrowserContextOptions = {},\n): Partial<BrowserContext> {\n const context: any = {\n pages: vi.fn().mockReturnValue(options.pages ?? []),\n newPage: vi.fn(),\n close: vi.fn().mockResolvedValue(undefined),\n browser: vi.fn().mockReturnValue(null),\n addCookies: vi.fn().mockResolvedValue(undefined),\n addInitScript: vi.fn().mockResolvedValue(undefined),\n clearCookies: vi.fn().mockResolvedValue(undefined),\n cookies: vi.fn().mockResolvedValue([]),\n exposeBinding: vi.fn().mockResolvedValue(undefined),\n exposeFunction: vi.fn().mockResolvedValue(undefined),\n grantPermissions: vi.fn().mockResolvedValue(undefined),\n revokePermissions: vi.fn().mockResolvedValue(undefined),\n setExtraHTTPHeaders: vi.fn().mockResolvedValue(undefined),\n setGeolocation: vi.fn().mockResolvedValue(undefined),\n setOffline: vi.fn().mockResolvedValue(undefined),\n waitForEvent: vi.fn().mockResolvedValue(null),\n tracing: {\n start: vi.fn().mockResolvedValue(undefined),\n stop: vi.fn().mockResolvedValue(Buffer.from('')),\n },\n };\n\n context.newPage.mockResolvedValue({\n locator: vi.fn().mockReturnValue({}),\n url: vi.fn().mockReturnValue('about:blank'),\n close: vi.fn().mockResolvedValue(undefined),\n });\n\n return context as Partial<BrowserContext>;\n}\n"]}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tokenize = tokenize;
|
|
4
|
+
exports.tokenizeIdentifier = tokenizeIdentifier;
|
|
5
|
+
exports.expandWithSynonyms = expandWithSynonyms;
|
|
6
|
+
const STOPWORDS = new Set([
|
|
7
|
+
'a',
|
|
8
|
+
'an',
|
|
9
|
+
'the',
|
|
10
|
+
'to',
|
|
11
|
+
'from',
|
|
12
|
+
'in',
|
|
13
|
+
'on',
|
|
14
|
+
'at',
|
|
15
|
+
'for',
|
|
16
|
+
'with',
|
|
17
|
+
'and',
|
|
18
|
+
'or',
|
|
19
|
+
'but',
|
|
20
|
+
'is',
|
|
21
|
+
'are',
|
|
22
|
+
'was',
|
|
23
|
+
'were',
|
|
24
|
+
'be',
|
|
25
|
+
'been',
|
|
26
|
+
'flow',
|
|
27
|
+
'test',
|
|
28
|
+
'should',
|
|
29
|
+
'can',
|
|
30
|
+
'will',
|
|
31
|
+
'do',
|
|
32
|
+
'does',
|
|
33
|
+
'did',
|
|
34
|
+
'have',
|
|
35
|
+
'has',
|
|
36
|
+
'had',
|
|
37
|
+
'this',
|
|
38
|
+
'that',
|
|
39
|
+
'these',
|
|
40
|
+
'those',
|
|
41
|
+
'it',
|
|
42
|
+
'mm',
|
|
43
|
+
'mcp',
|
|
44
|
+
'lw',
|
|
45
|
+
]);
|
|
46
|
+
const MIN_TOKEN_LENGTH = 2;
|
|
47
|
+
/**
|
|
48
|
+
* Tokenizes text into lowercase words, removing stopwords.
|
|
49
|
+
*
|
|
50
|
+
* @param text - The text to tokenize.
|
|
51
|
+
* @returns Array of unique lowercase tokens.
|
|
52
|
+
*/
|
|
53
|
+
function tokenize(text) {
|
|
54
|
+
if (!text) {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
const tokens = text
|
|
58
|
+
.toLowerCase()
|
|
59
|
+
.split(/[^a-z0-9]+/iu)
|
|
60
|
+
.filter((token) => token.length >= MIN_TOKEN_LENGTH && !STOPWORDS.has(token));
|
|
61
|
+
return [...new Set(tokens)];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Tokenizes a camelCase/PascalCase identifier into words.
|
|
65
|
+
*
|
|
66
|
+
* @param identifier - The identifier to tokenize.
|
|
67
|
+
* @returns Array of unique lowercase tokens.
|
|
68
|
+
*/
|
|
69
|
+
function tokenizeIdentifier(identifier) {
|
|
70
|
+
if (!identifier) {
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
const withSpaces = identifier
|
|
74
|
+
.replace(/([a-z])([A-Z])/gu, '$1 $2')
|
|
75
|
+
.replace(/([A-Z]+)([A-Z][a-z])/gu, '$1 $2');
|
|
76
|
+
const tokens = withSpaces
|
|
77
|
+
.toLowerCase()
|
|
78
|
+
.split(/[^a-z0-9]+/iu)
|
|
79
|
+
.filter((token) => token.length >= MIN_TOKEN_LENGTH);
|
|
80
|
+
return [...new Set(tokens)];
|
|
81
|
+
}
|
|
82
|
+
const ACTION_SYNONYMS = {
|
|
83
|
+
send: ['transfer', 'pay'],
|
|
84
|
+
receive: ['deposit'],
|
|
85
|
+
approve: ['confirm', 'accept', 'allow'],
|
|
86
|
+
reject: ['deny', 'cancel', 'decline'],
|
|
87
|
+
unlock: ['login', 'signin'],
|
|
88
|
+
connect: ['link', 'authorize'],
|
|
89
|
+
swap: ['exchange', 'trade'],
|
|
90
|
+
sign: ['signature'],
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Expands tokens by adding action-related synonyms.
|
|
94
|
+
*
|
|
95
|
+
* @param tokens - The tokens to expand.
|
|
96
|
+
* @returns Expanded array including synonyms.
|
|
97
|
+
*/
|
|
98
|
+
function expandWithSynonyms(tokens) {
|
|
99
|
+
const expanded = new Set(tokens);
|
|
100
|
+
for (const token of tokens) {
|
|
101
|
+
if (ACTION_SYNONYMS[token]) {
|
|
102
|
+
for (const synonym of ACTION_SYNONYMS[token]) {
|
|
103
|
+
expanded.add(synonym);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
for (const [canonical, synonyms] of Object.entries(ACTION_SYNONYMS)) {
|
|
107
|
+
if (synonyms.includes(token)) {
|
|
108
|
+
expanded.add(canonical);
|
|
109
|
+
for (const synonym of synonyms) {
|
|
110
|
+
expanded.add(synonym);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return [...expanded];
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=tokenization.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenization.cjs","sourceRoot":"","sources":["../../src/mcp-server/tokenization.ts"],"names":[],"mappings":"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","sourcesContent":["const STOPWORDS = new Set([\n 'a',\n 'an',\n 'the',\n 'to',\n 'from',\n 'in',\n 'on',\n 'at',\n 'for',\n 'with',\n 'and',\n 'or',\n 'but',\n 'is',\n 'are',\n 'was',\n 'were',\n 'be',\n 'been',\n 'flow',\n 'test',\n 'should',\n 'can',\n 'will',\n 'do',\n 'does',\n 'did',\n 'have',\n 'has',\n 'had',\n 'this',\n 'that',\n 'these',\n 'those',\n 'it',\n 'mm',\n 'mcp',\n 'lw',\n]);\n\nconst MIN_TOKEN_LENGTH = 2;\n\n/**\n * Tokenizes text into lowercase words, removing stopwords.\n *\n * @param text - The text to tokenize.\n * @returns Array of unique lowercase tokens.\n */\nexport function tokenize(text: string): string[] {\n if (!text) {\n return [];\n }\n\n const tokens = text\n .toLowerCase()\n .split(/[^a-z0-9]+/iu)\n .filter(\n (token) => token.length >= MIN_TOKEN_LENGTH && !STOPWORDS.has(token),\n );\n\n return [...new Set(tokens)];\n}\n\n/**\n * Tokenizes a camelCase/PascalCase identifier into words.\n *\n * @param identifier - The identifier to tokenize.\n * @returns Array of unique lowercase tokens.\n */\nexport function tokenizeIdentifier(identifier: string): string[] {\n if (!identifier) {\n return [];\n }\n\n const withSpaces = identifier\n .replace(/([a-z])([A-Z])/gu, '$1 $2')\n .replace(/([A-Z]+)([A-Z][a-z])/gu, '$1 $2');\n\n const tokens = withSpaces\n .toLowerCase()\n .split(/[^a-z0-9]+/iu)\n .filter((token) => token.length >= MIN_TOKEN_LENGTH);\n\n return [...new Set(tokens)];\n}\n\nconst ACTION_SYNONYMS: Record<string, string[]> = {\n send: ['transfer', 'pay'],\n receive: ['deposit'],\n approve: ['confirm', 'accept', 'allow'],\n reject: ['deny', 'cancel', 'decline'],\n unlock: ['login', 'signin'],\n connect: ['link', 'authorize'],\n swap: ['exchange', 'trade'],\n sign: ['signature'],\n};\n\n/**\n * Expands tokens by adding action-related synonyms.\n *\n * @param tokens - The tokens to expand.\n * @returns Expanded array including synonyms.\n */\nexport function expandWithSynonyms(tokens: string[]): string[] {\n const expanded = new Set(tokens);\n\n for (const token of tokens) {\n if (ACTION_SYNONYMS[token]) {\n for (const synonym of ACTION_SYNONYMS[token]) {\n expanded.add(synonym);\n }\n }\n\n for (const [canonical, synonyms] of Object.entries(ACTION_SYNONYMS)) {\n if (synonyms.includes(token)) {\n expanded.add(canonical);\n for (const synonym of synonyms) {\n expanded.add(synonym);\n }\n }\n }\n }\n\n return [...expanded];\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tokenizes text into lowercase words, removing stopwords.
|
|
3
|
+
*
|
|
4
|
+
* @param text - The text to tokenize.
|
|
5
|
+
* @returns Array of unique lowercase tokens.
|
|
6
|
+
*/
|
|
7
|
+
export declare function tokenize(text: string): string[];
|
|
8
|
+
/**
|
|
9
|
+
* Tokenizes a camelCase/PascalCase identifier into words.
|
|
10
|
+
*
|
|
11
|
+
* @param identifier - The identifier to tokenize.
|
|
12
|
+
* @returns Array of unique lowercase tokens.
|
|
13
|
+
*/
|
|
14
|
+
export declare function tokenizeIdentifier(identifier: string): string[];
|
|
15
|
+
/**
|
|
16
|
+
* Expands tokens by adding action-related synonyms.
|
|
17
|
+
*
|
|
18
|
+
* @param tokens - The tokens to expand.
|
|
19
|
+
* @returns Expanded array including synonyms.
|
|
20
|
+
*/
|
|
21
|
+
export declare function expandWithSynonyms(tokens: string[]): string[];
|
|
22
|
+
//# sourceMappingURL=tokenization.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenization.d.cts","sourceRoot":"","sources":["../../src/mcp-server/tokenization.ts"],"names":[],"mappings":"AA2CA;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAa/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAe/D;AAaD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAqB7D"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tokenizes text into lowercase words, removing stopwords.
|
|
3
|
+
*
|
|
4
|
+
* @param text - The text to tokenize.
|
|
5
|
+
* @returns Array of unique lowercase tokens.
|
|
6
|
+
*/
|
|
7
|
+
export declare function tokenize(text: string): string[];
|
|
8
|
+
/**
|
|
9
|
+
* Tokenizes a camelCase/PascalCase identifier into words.
|
|
10
|
+
*
|
|
11
|
+
* @param identifier - The identifier to tokenize.
|
|
12
|
+
* @returns Array of unique lowercase tokens.
|
|
13
|
+
*/
|
|
14
|
+
export declare function tokenizeIdentifier(identifier: string): string[];
|
|
15
|
+
/**
|
|
16
|
+
* Expands tokens by adding action-related synonyms.
|
|
17
|
+
*
|
|
18
|
+
* @param tokens - The tokens to expand.
|
|
19
|
+
* @returns Expanded array including synonyms.
|
|
20
|
+
*/
|
|
21
|
+
export declare function expandWithSynonyms(tokens: string[]): string[];
|
|
22
|
+
//# sourceMappingURL=tokenization.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenization.d.mts","sourceRoot":"","sources":["../../src/mcp-server/tokenization.ts"],"names":[],"mappings":"AA2CA;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAa/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAe/D;AAaD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAqB7D"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
const STOPWORDS = new Set([
|
|
2
|
+
'a',
|
|
3
|
+
'an',
|
|
4
|
+
'the',
|
|
5
|
+
'to',
|
|
6
|
+
'from',
|
|
7
|
+
'in',
|
|
8
|
+
'on',
|
|
9
|
+
'at',
|
|
10
|
+
'for',
|
|
11
|
+
'with',
|
|
12
|
+
'and',
|
|
13
|
+
'or',
|
|
14
|
+
'but',
|
|
15
|
+
'is',
|
|
16
|
+
'are',
|
|
17
|
+
'was',
|
|
18
|
+
'were',
|
|
19
|
+
'be',
|
|
20
|
+
'been',
|
|
21
|
+
'flow',
|
|
22
|
+
'test',
|
|
23
|
+
'should',
|
|
24
|
+
'can',
|
|
25
|
+
'will',
|
|
26
|
+
'do',
|
|
27
|
+
'does',
|
|
28
|
+
'did',
|
|
29
|
+
'have',
|
|
30
|
+
'has',
|
|
31
|
+
'had',
|
|
32
|
+
'this',
|
|
33
|
+
'that',
|
|
34
|
+
'these',
|
|
35
|
+
'those',
|
|
36
|
+
'it',
|
|
37
|
+
'mm',
|
|
38
|
+
'mcp',
|
|
39
|
+
'lw',
|
|
40
|
+
]);
|
|
41
|
+
const MIN_TOKEN_LENGTH = 2;
|
|
42
|
+
/**
|
|
43
|
+
* Tokenizes text into lowercase words, removing stopwords.
|
|
44
|
+
*
|
|
45
|
+
* @param text - The text to tokenize.
|
|
46
|
+
* @returns Array of unique lowercase tokens.
|
|
47
|
+
*/
|
|
48
|
+
export function tokenize(text) {
|
|
49
|
+
if (!text) {
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
const tokens = text
|
|
53
|
+
.toLowerCase()
|
|
54
|
+
.split(/[^a-z0-9]+/iu)
|
|
55
|
+
.filter((token) => token.length >= MIN_TOKEN_LENGTH && !STOPWORDS.has(token));
|
|
56
|
+
return [...new Set(tokens)];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Tokenizes a camelCase/PascalCase identifier into words.
|
|
60
|
+
*
|
|
61
|
+
* @param identifier - The identifier to tokenize.
|
|
62
|
+
* @returns Array of unique lowercase tokens.
|
|
63
|
+
*/
|
|
64
|
+
export function tokenizeIdentifier(identifier) {
|
|
65
|
+
if (!identifier) {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
const withSpaces = identifier
|
|
69
|
+
.replace(/([a-z])([A-Z])/gu, '$1 $2')
|
|
70
|
+
.replace(/([A-Z]+)([A-Z][a-z])/gu, '$1 $2');
|
|
71
|
+
const tokens = withSpaces
|
|
72
|
+
.toLowerCase()
|
|
73
|
+
.split(/[^a-z0-9]+/iu)
|
|
74
|
+
.filter((token) => token.length >= MIN_TOKEN_LENGTH);
|
|
75
|
+
return [...new Set(tokens)];
|
|
76
|
+
}
|
|
77
|
+
const ACTION_SYNONYMS = {
|
|
78
|
+
send: ['transfer', 'pay'],
|
|
79
|
+
receive: ['deposit'],
|
|
80
|
+
approve: ['confirm', 'accept', 'allow'],
|
|
81
|
+
reject: ['deny', 'cancel', 'decline'],
|
|
82
|
+
unlock: ['login', 'signin'],
|
|
83
|
+
connect: ['link', 'authorize'],
|
|
84
|
+
swap: ['exchange', 'trade'],
|
|
85
|
+
sign: ['signature'],
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Expands tokens by adding action-related synonyms.
|
|
89
|
+
*
|
|
90
|
+
* @param tokens - The tokens to expand.
|
|
91
|
+
* @returns Expanded array including synonyms.
|
|
92
|
+
*/
|
|
93
|
+
export function expandWithSynonyms(tokens) {
|
|
94
|
+
const expanded = new Set(tokens);
|
|
95
|
+
for (const token of tokens) {
|
|
96
|
+
if (ACTION_SYNONYMS[token]) {
|
|
97
|
+
for (const synonym of ACTION_SYNONYMS[token]) {
|
|
98
|
+
expanded.add(synonym);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
for (const [canonical, synonyms] of Object.entries(ACTION_SYNONYMS)) {
|
|
102
|
+
if (synonyms.includes(token)) {
|
|
103
|
+
expanded.add(canonical);
|
|
104
|
+
for (const synonym of synonyms) {
|
|
105
|
+
expanded.add(synonym);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return [...expanded];
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=tokenization.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenization.mjs","sourceRoot":"","sources":["../../src/mcp-server/tokenization.ts"],"names":[],"mappings":"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","sourcesContent":["const STOPWORDS = new Set([\n 'a',\n 'an',\n 'the',\n 'to',\n 'from',\n 'in',\n 'on',\n 'at',\n 'for',\n 'with',\n 'and',\n 'or',\n 'but',\n 'is',\n 'are',\n 'was',\n 'were',\n 'be',\n 'been',\n 'flow',\n 'test',\n 'should',\n 'can',\n 'will',\n 'do',\n 'does',\n 'did',\n 'have',\n 'has',\n 'had',\n 'this',\n 'that',\n 'these',\n 'those',\n 'it',\n 'mm',\n 'mcp',\n 'lw',\n]);\n\nconst MIN_TOKEN_LENGTH = 2;\n\n/**\n * Tokenizes text into lowercase words, removing stopwords.\n *\n * @param text - The text to tokenize.\n * @returns Array of unique lowercase tokens.\n */\nexport function tokenize(text: string): string[] {\n if (!text) {\n return [];\n }\n\n const tokens = text\n .toLowerCase()\n .split(/[^a-z0-9]+/iu)\n .filter(\n (token) => token.length >= MIN_TOKEN_LENGTH && !STOPWORDS.has(token),\n );\n\n return [...new Set(tokens)];\n}\n\n/**\n * Tokenizes a camelCase/PascalCase identifier into words.\n *\n * @param identifier - The identifier to tokenize.\n * @returns Array of unique lowercase tokens.\n */\nexport function tokenizeIdentifier(identifier: string): string[] {\n if (!identifier) {\n return [];\n }\n\n const withSpaces = identifier\n .replace(/([a-z])([A-Z])/gu, '$1 $2')\n .replace(/([A-Z]+)([A-Z][a-z])/gu, '$1 $2');\n\n const tokens = withSpaces\n .toLowerCase()\n .split(/[^a-z0-9]+/iu)\n .filter((token) => token.length >= MIN_TOKEN_LENGTH);\n\n return [...new Set(tokens)];\n}\n\nconst ACTION_SYNONYMS: Record<string, string[]> = {\n send: ['transfer', 'pay'],\n receive: ['deposit'],\n approve: ['confirm', 'accept', 'allow'],\n reject: ['deny', 'cancel', 'decline'],\n unlock: ['login', 'signin'],\n connect: ['link', 'authorize'],\n swap: ['exchange', 'trade'],\n sign: ['signature'],\n};\n\n/**\n * Expands tokens by adding action-related synonyms.\n *\n * @param tokens - The tokens to expand.\n * @returns Expanded array including synonyms.\n */\nexport function expandWithSynonyms(tokens: string[]): string[] {\n const expanded = new Set(tokens);\n\n for (const token of tokens) {\n if (ACTION_SYNONYMS[token]) {\n for (const synonym of ACTION_SYNONYMS[token]) {\n expanded.add(synonym);\n }\n }\n\n for (const [canonical, synonyms] of Object.entries(ACTION_SYNONYMS)) {\n if (synonyms.includes(token)) {\n expanded.add(canonical);\n for (const synonym of synonyms) {\n expanded.add(synonym);\n }\n }\n }\n }\n\n return [...expanded];\n}\n"]}
|