@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,97 @@
|
|
|
1
|
+
import type { ZodType } from "zod";
|
|
2
|
+
import type { ToolHandler } from "./batch.cjs";
|
|
3
|
+
export declare const TOOL_PREFIX = "mm";
|
|
4
|
+
export type ToolDefinition = {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
inputSchema: Record<string, unknown>;
|
|
8
|
+
};
|
|
9
|
+
type ZodSchema = ZodType<unknown> & {
|
|
10
|
+
toJSONSchema(): Record<string, unknown>;
|
|
11
|
+
};
|
|
12
|
+
type ToolEntry = {
|
|
13
|
+
schema: ZodSchema;
|
|
14
|
+
description: string;
|
|
15
|
+
handler: ToolHandler;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Get all tool definitions with their schemas and descriptions.
|
|
19
|
+
*
|
|
20
|
+
* @returns Array of tool definitions for all available MCP tools
|
|
21
|
+
*/
|
|
22
|
+
export declare function getToolDefinitions(): ToolDefinition[];
|
|
23
|
+
/**
|
|
24
|
+
* Get the handler function for a specific tool by name.
|
|
25
|
+
*
|
|
26
|
+
* @param name The tool name (with or without mm_ prefix)
|
|
27
|
+
* @returns The tool handler function or undefined if tool not found
|
|
28
|
+
*/
|
|
29
|
+
export declare function getToolHandler(name: string): ToolHandler | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Check if a tool handler exists for the given tool name.
|
|
32
|
+
*
|
|
33
|
+
* @param name The tool name to check
|
|
34
|
+
* @returns True if a handler exists for the tool, false otherwise
|
|
35
|
+
*/
|
|
36
|
+
export declare function hasToolHandler(name: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Extract the base name from a tool name by removing the mm_ prefix.
|
|
39
|
+
*
|
|
40
|
+
* @param toolName The tool name (with or without mm_ prefix)
|
|
41
|
+
* @returns The base name without the prefix
|
|
42
|
+
*/
|
|
43
|
+
export declare function extractBaseName(toolName: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Validate tool input against the tool's schema and return parsed data.
|
|
46
|
+
*
|
|
47
|
+
* @param toolName The tool name to validate input for
|
|
48
|
+
* @param input The input data to validate
|
|
49
|
+
* @returns The validated and parsed input data
|
|
50
|
+
*/
|
|
51
|
+
export declare function validateToolInput<Type = unknown>(toolName: string, input: unknown): Type;
|
|
52
|
+
/**
|
|
53
|
+
* Safely validate tool input without throwing errors.
|
|
54
|
+
*
|
|
55
|
+
* @param toolName The tool name to validate input for
|
|
56
|
+
* @param input The input data to validate
|
|
57
|
+
* @returns Object with success flag and either parsed data or error message
|
|
58
|
+
*/
|
|
59
|
+
export declare function safeValidateToolInput(toolName: string, input: unknown): {
|
|
60
|
+
/**
|
|
61
|
+
* Indicates validation succeeded
|
|
62
|
+
*/
|
|
63
|
+
success: true;
|
|
64
|
+
/**
|
|
65
|
+
* The validated and parsed input data
|
|
66
|
+
*/
|
|
67
|
+
data: unknown;
|
|
68
|
+
} | {
|
|
69
|
+
/**
|
|
70
|
+
* Indicates validation failed
|
|
71
|
+
*/
|
|
72
|
+
success: false;
|
|
73
|
+
/**
|
|
74
|
+
* Error message describing validation failure
|
|
75
|
+
*/
|
|
76
|
+
error: string;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Get all available tool base names (without mm_ prefix).
|
|
80
|
+
*
|
|
81
|
+
* @returns Array of tool base names
|
|
82
|
+
*/
|
|
83
|
+
export declare function getToolNames(): string[];
|
|
84
|
+
/**
|
|
85
|
+
* Get all available tool names with mm_ prefix.
|
|
86
|
+
*
|
|
87
|
+
* @returns Array of prefixed tool names
|
|
88
|
+
*/
|
|
89
|
+
export declare function getPrefixedToolNames(): string[];
|
|
90
|
+
/**
|
|
91
|
+
* Build a record mapping prefixed tool names to their handler functions.
|
|
92
|
+
*
|
|
93
|
+
* @returns Record of tool name to handler function mappings
|
|
94
|
+
*/
|
|
95
|
+
export declare function buildToolHandlersRecord(): Record<string, ToolHandler>;
|
|
96
|
+
export type { ToolEntry };
|
|
97
|
+
//# sourceMappingURL=definitions.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.d.cts","sourceRoot":"","sources":["../../../src/mcp-server/tools/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY;AAiCnC,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAmB;AA0C9C,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG;IAAE,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEhF,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAwYF;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAMrD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAUpE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAG,OAAO,EAC9C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GACb,IAAI,CASN;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GAEZ;IACE;;OAEG;IACH,OAAO,EAAE,IAAI,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;CACf,GACD;IACE;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAiBJ;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAMrE;AAED,YAAY,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { ZodType } from "zod";
|
|
2
|
+
import type { ToolHandler } from "./batch.mjs";
|
|
3
|
+
export declare const TOOL_PREFIX = "mm";
|
|
4
|
+
export type ToolDefinition = {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
inputSchema: Record<string, unknown>;
|
|
8
|
+
};
|
|
9
|
+
type ZodSchema = ZodType<unknown> & {
|
|
10
|
+
toJSONSchema(): Record<string, unknown>;
|
|
11
|
+
};
|
|
12
|
+
type ToolEntry = {
|
|
13
|
+
schema: ZodSchema;
|
|
14
|
+
description: string;
|
|
15
|
+
handler: ToolHandler;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Get all tool definitions with their schemas and descriptions.
|
|
19
|
+
*
|
|
20
|
+
* @returns Array of tool definitions for all available MCP tools
|
|
21
|
+
*/
|
|
22
|
+
export declare function getToolDefinitions(): ToolDefinition[];
|
|
23
|
+
/**
|
|
24
|
+
* Get the handler function for a specific tool by name.
|
|
25
|
+
*
|
|
26
|
+
* @param name The tool name (with or without mm_ prefix)
|
|
27
|
+
* @returns The tool handler function or undefined if tool not found
|
|
28
|
+
*/
|
|
29
|
+
export declare function getToolHandler(name: string): ToolHandler | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Check if a tool handler exists for the given tool name.
|
|
32
|
+
*
|
|
33
|
+
* @param name The tool name to check
|
|
34
|
+
* @returns True if a handler exists for the tool, false otherwise
|
|
35
|
+
*/
|
|
36
|
+
export declare function hasToolHandler(name: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Extract the base name from a tool name by removing the mm_ prefix.
|
|
39
|
+
*
|
|
40
|
+
* @param toolName The tool name (with or without mm_ prefix)
|
|
41
|
+
* @returns The base name without the prefix
|
|
42
|
+
*/
|
|
43
|
+
export declare function extractBaseName(toolName: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Validate tool input against the tool's schema and return parsed data.
|
|
46
|
+
*
|
|
47
|
+
* @param toolName The tool name to validate input for
|
|
48
|
+
* @param input The input data to validate
|
|
49
|
+
* @returns The validated and parsed input data
|
|
50
|
+
*/
|
|
51
|
+
export declare function validateToolInput<Type = unknown>(toolName: string, input: unknown): Type;
|
|
52
|
+
/**
|
|
53
|
+
* Safely validate tool input without throwing errors.
|
|
54
|
+
*
|
|
55
|
+
* @param toolName The tool name to validate input for
|
|
56
|
+
* @param input The input data to validate
|
|
57
|
+
* @returns Object with success flag and either parsed data or error message
|
|
58
|
+
*/
|
|
59
|
+
export declare function safeValidateToolInput(toolName: string, input: unknown): {
|
|
60
|
+
/**
|
|
61
|
+
* Indicates validation succeeded
|
|
62
|
+
*/
|
|
63
|
+
success: true;
|
|
64
|
+
/**
|
|
65
|
+
* The validated and parsed input data
|
|
66
|
+
*/
|
|
67
|
+
data: unknown;
|
|
68
|
+
} | {
|
|
69
|
+
/**
|
|
70
|
+
* Indicates validation failed
|
|
71
|
+
*/
|
|
72
|
+
success: false;
|
|
73
|
+
/**
|
|
74
|
+
* Error message describing validation failure
|
|
75
|
+
*/
|
|
76
|
+
error: string;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Get all available tool base names (without mm_ prefix).
|
|
80
|
+
*
|
|
81
|
+
* @returns Array of tool base names
|
|
82
|
+
*/
|
|
83
|
+
export declare function getToolNames(): string[];
|
|
84
|
+
/**
|
|
85
|
+
* Get all available tool names with mm_ prefix.
|
|
86
|
+
*
|
|
87
|
+
* @returns Array of prefixed tool names
|
|
88
|
+
*/
|
|
89
|
+
export declare function getPrefixedToolNames(): string[];
|
|
90
|
+
/**
|
|
91
|
+
* Build a record mapping prefixed tool names to their handler functions.
|
|
92
|
+
*
|
|
93
|
+
* @returns Record of tool name to handler function mappings
|
|
94
|
+
*/
|
|
95
|
+
export declare function buildToolHandlersRecord(): Record<string, ToolHandler>;
|
|
96
|
+
export type { ToolEntry };
|
|
97
|
+
//# sourceMappingURL=definitions.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.d.mts","sourceRoot":"","sources":["../../../src/mcp-server/tools/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY;AAiCnC,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAmB;AA0C9C,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG;IAAE,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEhF,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAwYF;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAMrD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAUpE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAG,OAAO,EAC9C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GACb,IAAI,CASN;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GAEZ;IACE;;OAEG;IACH,OAAO,EAAE,IAAI,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;CACf,GACD;IACE;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAiBJ;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAMrE;AAED,YAAY,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
import { buildInputSchema, launchInputSchema, cleanupInputSchema, getStateInputSchema, navigateInputSchema, waitForNotificationInputSchema, switchToTabInputSchema, closeTabInputSchema, listTestIdsInputSchema, accessibilitySnapshotInputSchema, describeScreenInputSchema, screenshotInputSchema, clickInputSchema, typeInputSchema, waitForInputSchema, knowledgeLastInputSchema, knowledgeSearchInputSchema, knowledgeSummarizeInputSchema, knowledgeSessionsInputSchema, seedContractInputSchema, seedContractsInputSchema, getContractAddressInputSchema, listDeployedContractsInputSchema, runStepsInputSchema, setContextInputSchema, getContextInputSchema, clipboardInputSchema } from "../schemas.mjs";
|
|
2
|
+
import { getSessionManager } from "../session-manager.mjs";
|
|
3
|
+
import { handleRunSteps } from "./batch.mjs";
|
|
4
|
+
import { handleBuild } from "./build.mjs";
|
|
5
|
+
import { handleCleanup } from "./cleanup.mjs";
|
|
6
|
+
import { handleClipboard } from "./clipboard.mjs";
|
|
7
|
+
import { handleSetContext, handleGetContext } from "./context.mjs";
|
|
8
|
+
import { handleListTestIds, handleAccessibilitySnapshot, handleDescribeScreen } from "./discovery-tools.mjs";
|
|
9
|
+
import { handleClick, handleType, handleWaitFor } from "./interaction.mjs";
|
|
10
|
+
import { handleKnowledgeLast, handleKnowledgeSearch, handleKnowledgeSummarize, handleKnowledgeSessions } from "./knowledge.mjs";
|
|
11
|
+
import { handleLaunch } from "./launch.mjs";
|
|
12
|
+
import { handleNavigate, handleWaitForNotification, handleSwitchToTab, handleCloseTab } from "./navigation.mjs";
|
|
13
|
+
import { handleScreenshot } from "./screenshot.mjs";
|
|
14
|
+
import { handleSeedContract, handleSeedContracts, handleGetContractAddress, handleListDeployedContracts } from "./seeding.mjs";
|
|
15
|
+
import { handleGetState } from "./state.mjs";
|
|
16
|
+
export const TOOL_PREFIX = 'mm';
|
|
17
|
+
/**
|
|
18
|
+
* Create a handler for the build tool that injects build capability.
|
|
19
|
+
*
|
|
20
|
+
* @returns A tool handler function for building the extension
|
|
21
|
+
*/
|
|
22
|
+
function createBuildHandler() {
|
|
23
|
+
return async (input, options) => {
|
|
24
|
+
const sessionManager = getSessionManager();
|
|
25
|
+
const buildOptions = {
|
|
26
|
+
...options,
|
|
27
|
+
buildCapability: sessionManager.getBuildCapability?.(),
|
|
28
|
+
};
|
|
29
|
+
return handleBuild(input, buildOptions);
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create a handler for the state tool that injects state snapshot capability.
|
|
34
|
+
*
|
|
35
|
+
* @returns A tool handler function for getting extension state
|
|
36
|
+
*/
|
|
37
|
+
function createStateHandler() {
|
|
38
|
+
return async (_, options) => {
|
|
39
|
+
const sessionManager = getSessionManager();
|
|
40
|
+
const stateOptions = {
|
|
41
|
+
...options,
|
|
42
|
+
stateSnapshotCapability: sessionManager.getStateSnapshotCapability?.(),
|
|
43
|
+
};
|
|
44
|
+
return handleGetState(stateOptions);
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create a handler for the seed contract tool that injects seeding capability.
|
|
49
|
+
*
|
|
50
|
+
* @returns A tool handler function for deploying a single contract
|
|
51
|
+
*/
|
|
52
|
+
function createSeedContractHandler() {
|
|
53
|
+
return async (input, options) => {
|
|
54
|
+
const sessionManager = getSessionManager();
|
|
55
|
+
const seedingOptions = {
|
|
56
|
+
...options,
|
|
57
|
+
seedingCapability: sessionManager.getContractSeedingCapability?.(),
|
|
58
|
+
};
|
|
59
|
+
return handleSeedContract(input, seedingOptions);
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create a handler for the seed contracts tool that injects seeding capability.
|
|
64
|
+
*
|
|
65
|
+
* @returns A tool handler function for deploying multiple contracts
|
|
66
|
+
*/
|
|
67
|
+
function createSeedContractsHandler() {
|
|
68
|
+
return async (input, options) => {
|
|
69
|
+
const sessionManager = getSessionManager();
|
|
70
|
+
const seedingOptions = {
|
|
71
|
+
...options,
|
|
72
|
+
seedingCapability: sessionManager.getContractSeedingCapability?.(),
|
|
73
|
+
};
|
|
74
|
+
return handleSeedContracts(input, seedingOptions);
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Create a handler for the get contract address tool that injects seeding capability.
|
|
79
|
+
*
|
|
80
|
+
* @returns A tool handler function for retrieving a deployed contract address
|
|
81
|
+
*/
|
|
82
|
+
function createGetContractAddressHandler() {
|
|
83
|
+
return async (input, options) => {
|
|
84
|
+
const sessionManager = getSessionManager();
|
|
85
|
+
const seedingOptions = {
|
|
86
|
+
...options,
|
|
87
|
+
seedingCapability: sessionManager.getContractSeedingCapability?.(),
|
|
88
|
+
};
|
|
89
|
+
return handleGetContractAddress(input, seedingOptions);
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Create a handler for the list contracts tool that injects seeding capability.
|
|
94
|
+
*
|
|
95
|
+
* @returns A tool handler function for listing deployed contracts
|
|
96
|
+
*/
|
|
97
|
+
function createListDeployedContractsHandler() {
|
|
98
|
+
return async (input, options) => {
|
|
99
|
+
const sessionManager = getSessionManager();
|
|
100
|
+
const seedingOptions = {
|
|
101
|
+
...options,
|
|
102
|
+
seedingCapability: sessionManager.getContractSeedingCapability?.(),
|
|
103
|
+
};
|
|
104
|
+
return handleListDeployedContracts(input, seedingOptions);
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
const tools = {
|
|
108
|
+
build: {
|
|
109
|
+
schema: buildInputSchema,
|
|
110
|
+
description: `Build the extension using yarn build:test. Call before ${TOOL_PREFIX}_launch if extension is not built.`,
|
|
111
|
+
handler: createBuildHandler(),
|
|
112
|
+
},
|
|
113
|
+
launch: {
|
|
114
|
+
schema: launchInputSchema,
|
|
115
|
+
description: 'Launch extension in a headed Chrome browser with Playwright. Returns session info and initial state.',
|
|
116
|
+
handler: handleLaunch,
|
|
117
|
+
},
|
|
118
|
+
cleanup: {
|
|
119
|
+
schema: cleanupInputSchema,
|
|
120
|
+
description: 'Stop the browser, Anvil, and all services. Always call when done.',
|
|
121
|
+
handler: handleCleanup,
|
|
122
|
+
},
|
|
123
|
+
get_state: {
|
|
124
|
+
schema: getStateInputSchema,
|
|
125
|
+
description: 'Get current extension state including screen, URL, balance, network, and account address.',
|
|
126
|
+
handler: createStateHandler(),
|
|
127
|
+
},
|
|
128
|
+
navigate: {
|
|
129
|
+
schema: navigateInputSchema,
|
|
130
|
+
description: 'Navigate to a specific screen in the extension.',
|
|
131
|
+
handler: handleNavigate,
|
|
132
|
+
},
|
|
133
|
+
wait_for_notification: {
|
|
134
|
+
schema: waitForNotificationInputSchema,
|
|
135
|
+
description: 'Wait for notification popup to appear (e.g., after dapp interaction). Sets the notification page as the active page for subsequent interactions.',
|
|
136
|
+
handler: handleWaitForNotification,
|
|
137
|
+
},
|
|
138
|
+
switch_to_tab: {
|
|
139
|
+
schema: switchToTabInputSchema,
|
|
140
|
+
description: `Switch the active page to a different tracked tab. Use this to direct ${TOOL_PREFIX}_click, ${TOOL_PREFIX}_type, and other interaction tools to a specific page.`,
|
|
141
|
+
handler: handleSwitchToTab,
|
|
142
|
+
},
|
|
143
|
+
close_tab: {
|
|
144
|
+
schema: closeTabInputSchema,
|
|
145
|
+
description: 'Close a specific tab by role or URL. Cannot close the extension home page. If closing the active tab, automatically switches to extension home.',
|
|
146
|
+
handler: handleCloseTab,
|
|
147
|
+
},
|
|
148
|
+
list_testids: {
|
|
149
|
+
schema: listTestIdsInputSchema,
|
|
150
|
+
description: 'List all visible data-testid attributes on the current page. Use to discover available interaction targets.',
|
|
151
|
+
handler: handleListTestIds,
|
|
152
|
+
},
|
|
153
|
+
accessibility_snapshot: {
|
|
154
|
+
schema: accessibilitySnapshotInputSchema,
|
|
155
|
+
description: `Get trimmed accessibility tree with deterministic refs (e1, e2, ...). Use refs with ${TOOL_PREFIX}_click/${TOOL_PREFIX}_type.`,
|
|
156
|
+
handler: handleAccessibilitySnapshot,
|
|
157
|
+
},
|
|
158
|
+
describe_screen: {
|
|
159
|
+
schema: describeScreenInputSchema,
|
|
160
|
+
description: 'Get comprehensive screen state: extension state + testIds + accessibility snapshot. Optional screenshot.',
|
|
161
|
+
handler: handleDescribeScreen,
|
|
162
|
+
},
|
|
163
|
+
screenshot: {
|
|
164
|
+
schema: screenshotInputSchema,
|
|
165
|
+
description: 'Take a screenshot and save to test-artifacts/screenshots/',
|
|
166
|
+
handler: handleScreenshot,
|
|
167
|
+
},
|
|
168
|
+
click: {
|
|
169
|
+
schema: clickInputSchema,
|
|
170
|
+
description: 'Click an element. Specify exactly one of: a11yRef, testId, or selector.',
|
|
171
|
+
handler: handleClick,
|
|
172
|
+
},
|
|
173
|
+
type: {
|
|
174
|
+
schema: typeInputSchema,
|
|
175
|
+
description: 'Type text into an element. Specify exactly one of: a11yRef, testId, or selector.',
|
|
176
|
+
handler: handleType,
|
|
177
|
+
},
|
|
178
|
+
wait_for: {
|
|
179
|
+
schema: waitForInputSchema,
|
|
180
|
+
description: 'Wait for an element to become visible. Specify exactly one of: a11yRef, testId, or selector.',
|
|
181
|
+
handler: handleWaitFor,
|
|
182
|
+
},
|
|
183
|
+
knowledge_last: {
|
|
184
|
+
schema: knowledgeLastInputSchema,
|
|
185
|
+
description: 'Get the last N step records from the knowledge store for the current session.',
|
|
186
|
+
handler: handleKnowledgeLast,
|
|
187
|
+
},
|
|
188
|
+
knowledge_search: {
|
|
189
|
+
schema: knowledgeSearchInputSchema,
|
|
190
|
+
description: 'Search step records by tool name, screen, testId, or accessibility names. Default searches all sessions.',
|
|
191
|
+
handler: handleKnowledgeSearch,
|
|
192
|
+
},
|
|
193
|
+
knowledge_summarize: {
|
|
194
|
+
schema: knowledgeSummarizeInputSchema,
|
|
195
|
+
description: 'Generate a recipe-like summary of steps taken in a session.',
|
|
196
|
+
handler: handleKnowledgeSummarize,
|
|
197
|
+
},
|
|
198
|
+
knowledge_sessions: {
|
|
199
|
+
schema: knowledgeSessionsInputSchema,
|
|
200
|
+
description: 'List recent sessions with metadata for cross-session knowledge retrieval.',
|
|
201
|
+
handler: handleKnowledgeSessions,
|
|
202
|
+
},
|
|
203
|
+
seed_contract: {
|
|
204
|
+
schema: seedContractInputSchema,
|
|
205
|
+
description: 'Deploy a smart contract to the local Anvil node. Available: hst (ERC20 TST token), nfts (ERC721), erc1155, piggybank, failing (reverts), multisig, entrypoint (ERC-4337), simpleAccountFactory, verifyingPaymaster.',
|
|
206
|
+
handler: createSeedContractHandler(),
|
|
207
|
+
},
|
|
208
|
+
seed_contracts: {
|
|
209
|
+
schema: seedContractsInputSchema,
|
|
210
|
+
description: 'Deploy multiple smart contracts in sequence.',
|
|
211
|
+
handler: createSeedContractsHandler(),
|
|
212
|
+
},
|
|
213
|
+
get_contract_address: {
|
|
214
|
+
schema: getContractAddressInputSchema,
|
|
215
|
+
description: 'Get the deployed address of a smart contract.',
|
|
216
|
+
handler: createGetContractAddressHandler(),
|
|
217
|
+
},
|
|
218
|
+
list_contracts: {
|
|
219
|
+
schema: listDeployedContractsInputSchema,
|
|
220
|
+
description: 'List all smart contracts deployed in this session.',
|
|
221
|
+
handler: createListDeployedContractsHandler(),
|
|
222
|
+
},
|
|
223
|
+
run_steps: {
|
|
224
|
+
schema: runStepsInputSchema,
|
|
225
|
+
description: 'Execute multiple tools in sequence. Reduces round trips for multi-step flows.',
|
|
226
|
+
handler: handleRunSteps,
|
|
227
|
+
},
|
|
228
|
+
set_context: {
|
|
229
|
+
schema: setContextInputSchema,
|
|
230
|
+
description: 'Switch workflow context (e2e or prod). Cannot switch during active session.',
|
|
231
|
+
handler: handleSetContext,
|
|
232
|
+
},
|
|
233
|
+
get_context: {
|
|
234
|
+
schema: getContextInputSchema,
|
|
235
|
+
description: 'Get current context, available capabilities, and whether context can be switched.',
|
|
236
|
+
handler: handleGetContext,
|
|
237
|
+
},
|
|
238
|
+
clipboard: {
|
|
239
|
+
schema: clipboardInputSchema,
|
|
240
|
+
description: "Write text to or read text from the browser clipboard. Use action='write' with text parameter to write, or action='read' to read current clipboard content. Useful for pasting SRP or other data into components that have paste handlers.",
|
|
241
|
+
handler: handleClipboard,
|
|
242
|
+
},
|
|
243
|
+
};
|
|
244
|
+
/**
|
|
245
|
+
* Zod v4's toJSONSchema() marks properties with defaults as required.
|
|
246
|
+
* This is incorrect for MCP tool input schemas where LLM clients shouldn't
|
|
247
|
+
* be required to provide values that have defaults. This function recursively
|
|
248
|
+
* removes those properties from the required array.
|
|
249
|
+
*
|
|
250
|
+
* @param schema The JSON schema to process
|
|
251
|
+
* @returns The modified schema with defaults removed from required array
|
|
252
|
+
*/
|
|
253
|
+
function removeDefaultsFromRequired(schema) {
|
|
254
|
+
const result = { ...schema };
|
|
255
|
+
if (Array.isArray(result.allOf)) {
|
|
256
|
+
result.allOf = result.allOf.map((item) => removeDefaultsFromRequired(item));
|
|
257
|
+
}
|
|
258
|
+
if (Array.isArray(result.anyOf)) {
|
|
259
|
+
result.anyOf = result.anyOf.map((item) => removeDefaultsFromRequired(item));
|
|
260
|
+
}
|
|
261
|
+
if (Array.isArray(result.oneOf)) {
|
|
262
|
+
result.oneOf = result.oneOf.map((item) => removeDefaultsFromRequired(item));
|
|
263
|
+
}
|
|
264
|
+
if (result.properties &&
|
|
265
|
+
typeof result.properties === 'object' &&
|
|
266
|
+
result.properties !== null) {
|
|
267
|
+
const newProperties = {};
|
|
268
|
+
for (const [key, value] of Object.entries(result.properties)) {
|
|
269
|
+
if (value && typeof value === 'object') {
|
|
270
|
+
newProperties[key] = removeDefaultsFromRequired(value);
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
newProperties[key] = value;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
result.properties = newProperties;
|
|
277
|
+
}
|
|
278
|
+
if (Array.isArray(result.required) &&
|
|
279
|
+
result.properties &&
|
|
280
|
+
typeof result.properties === 'object') {
|
|
281
|
+
const properties = result.properties;
|
|
282
|
+
result.required = result.required.filter((propName) => {
|
|
283
|
+
const prop = properties[propName];
|
|
284
|
+
return prop && !('default' in prop);
|
|
285
|
+
});
|
|
286
|
+
if (result.required.length === 0) {
|
|
287
|
+
delete result.required;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
return result;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* MCP protocol doesn't support allOf/oneOf/anyOf at the top level of input schemas.
|
|
294
|
+
* This flattens allOf into a single merged object schema.
|
|
295
|
+
*
|
|
296
|
+
* @param schema The JSON schema to flatten
|
|
297
|
+
* @returns The flattened schema with allOf merged into properties
|
|
298
|
+
*/
|
|
299
|
+
function flattenTopLevelAllOf(schema) {
|
|
300
|
+
if (!Array.isArray(schema.allOf)) {
|
|
301
|
+
return schema;
|
|
302
|
+
}
|
|
303
|
+
const mergedProperties = {};
|
|
304
|
+
const mergedRequired = [];
|
|
305
|
+
for (const subSchema of schema.allOf) {
|
|
306
|
+
if (subSchema.properties && typeof subSchema.properties === 'object') {
|
|
307
|
+
Object.assign(mergedProperties, subSchema.properties);
|
|
308
|
+
}
|
|
309
|
+
if (Array.isArray(subSchema.required)) {
|
|
310
|
+
mergedRequired.push(...subSchema.required);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
const result = {
|
|
314
|
+
type: 'object',
|
|
315
|
+
properties: mergedProperties,
|
|
316
|
+
additionalProperties: false,
|
|
317
|
+
};
|
|
318
|
+
if (mergedRequired.length > 0) {
|
|
319
|
+
result.required = [...new Set(mergedRequired)];
|
|
320
|
+
}
|
|
321
|
+
return result;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Convert a Zod schema to a JSON schema suitable for MCP tool definitions.
|
|
325
|
+
*
|
|
326
|
+
* @param schema The Zod schema to convert
|
|
327
|
+
* @returns The converted JSON schema with defaults removed and allOf flattened
|
|
328
|
+
*/
|
|
329
|
+
function zodSchemaToJsonSchema(schema) {
|
|
330
|
+
const jsonSchema = schema.toJSONSchema();
|
|
331
|
+
const { $schema: _, ...rest } = jsonSchema;
|
|
332
|
+
const flattened = flattenTopLevelAllOf(rest);
|
|
333
|
+
if (flattened.type === 'object' && !('additionalProperties' in flattened)) {
|
|
334
|
+
flattened.additionalProperties = false;
|
|
335
|
+
}
|
|
336
|
+
return removeDefaultsFromRequired(flattened);
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Get all tool definitions with their schemas and descriptions.
|
|
340
|
+
*
|
|
341
|
+
* @returns Array of tool definitions for all available MCP tools
|
|
342
|
+
*/
|
|
343
|
+
export function getToolDefinitions() {
|
|
344
|
+
return Object.entries(tools).map(([baseName, tool]) => ({
|
|
345
|
+
name: `${TOOL_PREFIX}_${baseName}`,
|
|
346
|
+
description: tool.description,
|
|
347
|
+
inputSchema: zodSchemaToJsonSchema(tool.schema),
|
|
348
|
+
}));
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Get the handler function for a specific tool by name.
|
|
352
|
+
*
|
|
353
|
+
* @param name The tool name (with or without mm_ prefix)
|
|
354
|
+
* @returns The tool handler function or undefined if tool not found
|
|
355
|
+
*/
|
|
356
|
+
export function getToolHandler(name) {
|
|
357
|
+
const prefixedMatch = Object.entries(tools).find(([baseName]) => `${TOOL_PREFIX}_${baseName}` === name);
|
|
358
|
+
if (prefixedMatch) {
|
|
359
|
+
return prefixedMatch[1].handler;
|
|
360
|
+
}
|
|
361
|
+
const tool = tools[name];
|
|
362
|
+
return tool?.handler;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Check if a tool handler exists for the given tool name.
|
|
366
|
+
*
|
|
367
|
+
* @param name The tool name to check
|
|
368
|
+
* @returns True if a handler exists for the tool, false otherwise
|
|
369
|
+
*/
|
|
370
|
+
export function hasToolHandler(name) {
|
|
371
|
+
return getToolHandler(name) !== undefined;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Extract the base name from a tool name by removing the mm_ prefix.
|
|
375
|
+
*
|
|
376
|
+
* @param toolName The tool name (with or without mm_ prefix)
|
|
377
|
+
* @returns The base name without the prefix
|
|
378
|
+
*/
|
|
379
|
+
export function extractBaseName(toolName) {
|
|
380
|
+
const prefixWithUnderscore = `${TOOL_PREFIX}_`;
|
|
381
|
+
if (toolName.startsWith(prefixWithUnderscore)) {
|
|
382
|
+
return toolName.slice(prefixWithUnderscore.length);
|
|
383
|
+
}
|
|
384
|
+
return toolName;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Validate tool input against the tool's schema and return parsed data.
|
|
388
|
+
*
|
|
389
|
+
* @param toolName The tool name to validate input for
|
|
390
|
+
* @param input The input data to validate
|
|
391
|
+
* @returns The validated and parsed input data
|
|
392
|
+
*/
|
|
393
|
+
export function validateToolInput(toolName, input) {
|
|
394
|
+
const baseName = extractBaseName(toolName);
|
|
395
|
+
const tool = tools[baseName];
|
|
396
|
+
if (!tool) {
|
|
397
|
+
throw new Error(`Unknown tool: ${toolName}`);
|
|
398
|
+
}
|
|
399
|
+
return tool.schema.parse(input ?? {});
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Safely validate tool input without throwing errors.
|
|
403
|
+
*
|
|
404
|
+
* @param toolName The tool name to validate input for
|
|
405
|
+
* @param input The input data to validate
|
|
406
|
+
* @returns Object with success flag and either parsed data or error message
|
|
407
|
+
*/
|
|
408
|
+
export function safeValidateToolInput(toolName, input) {
|
|
409
|
+
const baseName = extractBaseName(toolName);
|
|
410
|
+
const tool = tools[baseName];
|
|
411
|
+
if (!tool) {
|
|
412
|
+
return { success: false, error: `Unknown tool: ${toolName}` };
|
|
413
|
+
}
|
|
414
|
+
const result = tool.schema.safeParse(input ?? {});
|
|
415
|
+
if (!result.success) {
|
|
416
|
+
const errorMessage = result.error.issues
|
|
417
|
+
.map((issue) => `${issue.path.join('.')}: ${issue.message}`)
|
|
418
|
+
.join('; ');
|
|
419
|
+
return { success: false, error: errorMessage };
|
|
420
|
+
}
|
|
421
|
+
return { success: true, data: result.data };
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Get all available tool base names (without mm_ prefix).
|
|
425
|
+
*
|
|
426
|
+
* @returns Array of tool base names
|
|
427
|
+
*/
|
|
428
|
+
export function getToolNames() {
|
|
429
|
+
return Object.keys(tools);
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Get all available tool names with mm_ prefix.
|
|
433
|
+
*
|
|
434
|
+
* @returns Array of prefixed tool names
|
|
435
|
+
*/
|
|
436
|
+
export function getPrefixedToolNames() {
|
|
437
|
+
return Object.keys(tools).map((name) => `${TOOL_PREFIX}_${name}`);
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Build a record mapping prefixed tool names to their handler functions.
|
|
441
|
+
*
|
|
442
|
+
* @returns Record of tool name to handler function mappings
|
|
443
|
+
*/
|
|
444
|
+
export function buildToolHandlersRecord() {
|
|
445
|
+
const handlers = {};
|
|
446
|
+
for (const [baseName, tool] of Object.entries(tools)) {
|
|
447
|
+
handlers[`${TOOL_PREFIX}_${baseName}`] = tool.handler;
|
|
448
|
+
}
|
|
449
|
+
return handlers;
|
|
450
|
+
}
|
|
451
|
+
//# sourceMappingURL=definitions.mjs.map
|