@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,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setToolRegistry = setToolRegistry;
|
|
4
|
+
exports.getToolRegistry = getToolRegistry;
|
|
5
|
+
exports.hasToolRegistry = hasToolRegistry;
|
|
6
|
+
exports.setToolValidator = setToolValidator;
|
|
7
|
+
exports.getToolValidator = getToolValidator;
|
|
8
|
+
exports.handleRunSteps = handleRunSteps;
|
|
9
|
+
const session_manager_js_1 = require("../session-manager.cjs");
|
|
10
|
+
const types_1 = require("../types/index.cjs");
|
|
11
|
+
const utils_1 = require("../utils/index.cjs");
|
|
12
|
+
/**
|
|
13
|
+
* Maps includeObservations string to observation policy override.
|
|
14
|
+
*
|
|
15
|
+
* @param value The observation policy string ('none', 'failures', 'all', or undefined)
|
|
16
|
+
* @returns The mapped observation policy override
|
|
17
|
+
*/
|
|
18
|
+
function mapIncludeObservationsToPolicy(value) {
|
|
19
|
+
switch (value) {
|
|
20
|
+
case 'none':
|
|
21
|
+
return 'none';
|
|
22
|
+
case 'failures':
|
|
23
|
+
return 'failures';
|
|
24
|
+
case 'all':
|
|
25
|
+
default:
|
|
26
|
+
return 'default';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
let _toolRegistry = {};
|
|
30
|
+
let _toolValidator;
|
|
31
|
+
/**
|
|
32
|
+
* Sets the global tool registry for batch execution.
|
|
33
|
+
*
|
|
34
|
+
* @param registry Tool registry mapping names to handlers
|
|
35
|
+
*/
|
|
36
|
+
function setToolRegistry(registry) {
|
|
37
|
+
_toolRegistry = registry;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Gets the current global tool registry.
|
|
41
|
+
*
|
|
42
|
+
* @returns The current tool registry
|
|
43
|
+
*/
|
|
44
|
+
function getToolRegistry() {
|
|
45
|
+
return _toolRegistry;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Checks if the tool registry has any registered handlers.
|
|
49
|
+
*
|
|
50
|
+
* @returns True if registry contains handlers, false otherwise
|
|
51
|
+
*/
|
|
52
|
+
function hasToolRegistry() {
|
|
53
|
+
return Object.keys(_toolRegistry).length > 0;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Sets the global tool validator for batch execution.
|
|
57
|
+
*
|
|
58
|
+
* @param validator Validator function to validate tool arguments
|
|
59
|
+
*/
|
|
60
|
+
function setToolValidator(validator) {
|
|
61
|
+
_toolValidator = validator;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Gets the current global tool validator.
|
|
65
|
+
*
|
|
66
|
+
* @returns The current tool validator or undefined if not set
|
|
67
|
+
*/
|
|
68
|
+
function getToolValidator() {
|
|
69
|
+
return _toolValidator;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Executes multiple tool steps in sequence with optional validation and error handling.
|
|
73
|
+
*
|
|
74
|
+
* @param input Steps to execute with optional stop-on-error and observation policy
|
|
75
|
+
* @param options Optional handler configuration and observation policy override
|
|
76
|
+
* @returns Promise resolving to MCP response with step results and summary
|
|
77
|
+
*/
|
|
78
|
+
async function handleRunSteps(input, options) {
|
|
79
|
+
const batchStartTime = Date.now();
|
|
80
|
+
const sessionManager = (0, session_manager_js_1.getSessionManager)();
|
|
81
|
+
const sessionId = sessionManager.getSessionId();
|
|
82
|
+
if (!sessionManager.hasActiveSession()) {
|
|
83
|
+
return (0, utils_1.createErrorResponse)(types_1.ErrorCodes.MM_NO_ACTIVE_SESSION, 'No active session. Call launch first.', { input }, undefined, batchStartTime);
|
|
84
|
+
}
|
|
85
|
+
const { steps: stepInputs, stopOnError = false, includeObservations } = input;
|
|
86
|
+
const observationPolicy = mapIncludeObservationsToPolicy(includeObservations);
|
|
87
|
+
const stepResults = [];
|
|
88
|
+
let succeeded = 0;
|
|
89
|
+
let failed = 0;
|
|
90
|
+
const toolHandlers = getToolRegistry();
|
|
91
|
+
const toolValidator = getToolValidator();
|
|
92
|
+
for (const stepInput of stepInputs) {
|
|
93
|
+
const stepStartTime = Date.now();
|
|
94
|
+
const { tool, args = {} } = stepInput;
|
|
95
|
+
const handler = toolHandlers[tool];
|
|
96
|
+
if (!handler) {
|
|
97
|
+
const result = {
|
|
98
|
+
tool,
|
|
99
|
+
ok: false,
|
|
100
|
+
error: {
|
|
101
|
+
code: types_1.ErrorCodes.MM_UNKNOWN_TOOL,
|
|
102
|
+
message: `Unknown tool: ${tool}`,
|
|
103
|
+
},
|
|
104
|
+
meta: {
|
|
105
|
+
durationMs: Date.now() - stepStartTime,
|
|
106
|
+
timestamp: new Date().toISOString(),
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
stepResults.push(result);
|
|
110
|
+
failed += 1;
|
|
111
|
+
if (stopOnError) {
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
if (toolValidator) {
|
|
117
|
+
const validation = toolValidator(tool, args);
|
|
118
|
+
if (!validation.success) {
|
|
119
|
+
const result = {
|
|
120
|
+
tool,
|
|
121
|
+
ok: false,
|
|
122
|
+
error: {
|
|
123
|
+
code: types_1.ErrorCodes.MM_INVALID_INPUT,
|
|
124
|
+
message: `Invalid input: ${validation.error.message}`,
|
|
125
|
+
},
|
|
126
|
+
meta: {
|
|
127
|
+
durationMs: Date.now() - stepStartTime,
|
|
128
|
+
timestamp: new Date().toISOString(),
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
stepResults.push(result);
|
|
132
|
+
failed += 1;
|
|
133
|
+
if (stopOnError) {
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
try {
|
|
140
|
+
const stepOptions = {
|
|
141
|
+
...options,
|
|
142
|
+
observationPolicy,
|
|
143
|
+
};
|
|
144
|
+
const response = await handler(args, stepOptions);
|
|
145
|
+
const result = {
|
|
146
|
+
tool,
|
|
147
|
+
ok: response.ok,
|
|
148
|
+
result: response.ok ? response.result : undefined,
|
|
149
|
+
error: response.ok ? undefined : response.error,
|
|
150
|
+
meta: {
|
|
151
|
+
durationMs: Date.now() - stepStartTime,
|
|
152
|
+
timestamp: new Date().toISOString(),
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
stepResults.push(result);
|
|
156
|
+
if (response.ok) {
|
|
157
|
+
succeeded += 1;
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
failed += 1;
|
|
161
|
+
if (stopOnError) {
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
const message = (0, utils_1.extractErrorMessage)(error);
|
|
168
|
+
const result = {
|
|
169
|
+
tool,
|
|
170
|
+
ok: false,
|
|
171
|
+
error: {
|
|
172
|
+
code: types_1.ErrorCodes.MM_INTERNAL_ERROR,
|
|
173
|
+
message: `Unexpected error: ${message}`,
|
|
174
|
+
},
|
|
175
|
+
meta: {
|
|
176
|
+
durationMs: Date.now() - stepStartTime,
|
|
177
|
+
timestamp: new Date().toISOString(),
|
|
178
|
+
},
|
|
179
|
+
};
|
|
180
|
+
stepResults.push(result);
|
|
181
|
+
failed += 1;
|
|
182
|
+
if (stopOnError) {
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
const batchResult = {
|
|
188
|
+
steps: stepResults,
|
|
189
|
+
summary: {
|
|
190
|
+
ok: failed === 0,
|
|
191
|
+
total: stepResults.length,
|
|
192
|
+
succeeded,
|
|
193
|
+
failed,
|
|
194
|
+
durationMs: Date.now() - batchStartTime,
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
return (0, utils_1.createSuccessResponse)(batchResult, sessionId, batchStartTime);
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=batch.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.cjs","sourceRoot":"","sources":["../../../src/mcp-server/tools/batch.ts"],"names":[],"mappings":"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","sourcesContent":["import { getSessionManager } from '../session-manager.js';\nimport type {\n McpResponse,\n HandlerOptions,\n RunStepsInput,\n RunStepsResult,\n StepResult,\n ObservationPolicyOverride,\n} from '../types';\nimport { ErrorCodes } from '../types';\nimport {\n createSuccessResponse,\n createErrorResponse,\n extractErrorMessage,\n} from '../utils';\n\n/**\n * Maps includeObservations string to observation policy override.\n *\n * @param value The observation policy string ('none', 'failures', 'all', or undefined)\n * @returns The mapped observation policy override\n */\nfunction mapIncludeObservationsToPolicy(\n value: 'none' | 'failures' | 'all' | undefined,\n): ObservationPolicyOverride {\n switch (value) {\n case 'none':\n return 'none';\n case 'failures':\n return 'failures';\n case 'all':\n default:\n return 'default';\n }\n}\n\n/**\n * Handler function type for executing MCP tools.\n *\n * @param input Tool arguments as key-value pairs\n * @param options Optional handler configuration\n * @returns Promise resolving to MCP response with tool result\n */\nexport type ToolHandler = (\n input: Record<string, unknown>,\n options?: HandlerOptions,\n) => Promise<McpResponse<unknown>>;\n\n/**\n * Registry mapping tool names to their handler functions.\n *\n * @returns Record of tool name to handler function mappings\n */\nexport type ToolRegistry = Record<string, ToolHandler>;\n\n/**\n * Validator function type for validating tool arguments before execution.\n *\n * @param tool Tool name being validated\n * @param args Tool arguments to validate\n * @returns Validation result with success status and optional error details\n */\nexport type ToolValidator = (\n tool: string,\n args: Record<string, unknown>,\n) =>\n | {\n /**\n * Validation succeeded\n */\n success: true;\n }\n | {\n /**\n * Validation failed\n */\n success: false;\n /**\n * Error details when validation fails\n */\n error: {\n /**\n * Error message describing validation failure\n */\n message: string;\n };\n };\n\nlet _toolRegistry: ToolRegistry = {};\nlet _toolValidator: ToolValidator | undefined;\n\n/**\n * Sets the global tool registry for batch execution.\n *\n * @param registry Tool registry mapping names to handlers\n */\nexport function setToolRegistry(registry: ToolRegistry): void {\n _toolRegistry = registry;\n}\n\n/**\n * Gets the current global tool registry.\n *\n * @returns The current tool registry\n */\nexport function getToolRegistry(): ToolRegistry {\n return _toolRegistry;\n}\n\n/**\n * Checks if the tool registry has any registered handlers.\n *\n * @returns True if registry contains handlers, false otherwise\n */\nexport function hasToolRegistry(): boolean {\n return Object.keys(_toolRegistry).length > 0;\n}\n\n/**\n * Sets the global tool validator for batch execution.\n *\n * @param validator Validator function to validate tool arguments\n */\nexport function setToolValidator(validator: ToolValidator): void {\n _toolValidator = validator;\n}\n\n/**\n * Gets the current global tool validator.\n *\n * @returns The current tool validator or undefined if not set\n */\nexport function getToolValidator(): ToolValidator | undefined {\n return _toolValidator;\n}\n\n/**\n * Executes multiple tool steps in sequence with optional validation and error handling.\n *\n * @param input Steps to execute with optional stop-on-error and observation policy\n * @param options Optional handler configuration and observation policy override\n * @returns Promise resolving to MCP response with step results and summary\n */\nexport async function handleRunSteps(\n input: RunStepsInput,\n options?: HandlerOptions,\n): Promise<McpResponse<RunStepsResult>> {\n const batchStartTime = Date.now();\n const sessionManager = getSessionManager();\n const sessionId = sessionManager.getSessionId();\n\n if (!sessionManager.hasActiveSession()) {\n return createErrorResponse(\n ErrorCodes.MM_NO_ACTIVE_SESSION,\n 'No active session. Call launch first.',\n { input },\n undefined,\n batchStartTime,\n );\n }\n\n const { steps: stepInputs, stopOnError = false, includeObservations } = input;\n const observationPolicy = mapIncludeObservationsToPolicy(includeObservations);\n const stepResults: StepResult[] = [];\n let succeeded = 0;\n let failed = 0;\n\n const toolHandlers = getToolRegistry();\n const toolValidator = getToolValidator();\n\n for (const stepInput of stepInputs) {\n const stepStartTime = Date.now();\n const { tool, args = {} } = stepInput;\n\n const handler = toolHandlers[tool];\n if (!handler) {\n const result: StepResult = {\n tool,\n ok: false,\n error: {\n code: ErrorCodes.MM_UNKNOWN_TOOL,\n message: `Unknown tool: ${tool}`,\n },\n meta: {\n durationMs: Date.now() - stepStartTime,\n timestamp: new Date().toISOString(),\n },\n };\n stepResults.push(result);\n failed += 1;\n\n if (stopOnError) {\n break;\n }\n continue;\n }\n\n if (toolValidator) {\n const validation = toolValidator(tool, args);\n if (!validation.success) {\n const result: StepResult = {\n tool,\n ok: false,\n error: {\n code: ErrorCodes.MM_INVALID_INPUT,\n message: `Invalid input: ${validation.error.message}`,\n },\n meta: {\n durationMs: Date.now() - stepStartTime,\n timestamp: new Date().toISOString(),\n },\n };\n stepResults.push(result);\n failed += 1;\n\n if (stopOnError) {\n break;\n }\n continue;\n }\n }\n\n try {\n const stepOptions: HandlerOptions = {\n ...options,\n observationPolicy,\n };\n const response = await handler(args, stepOptions);\n\n const result: StepResult = {\n tool,\n ok: response.ok,\n result: response.ok ? response.result : undefined,\n error: response.ok ? undefined : response.error,\n meta: {\n durationMs: Date.now() - stepStartTime,\n timestamp: new Date().toISOString(),\n },\n };\n\n stepResults.push(result);\n\n if (response.ok) {\n succeeded += 1;\n } else {\n failed += 1;\n if (stopOnError) {\n break;\n }\n }\n } catch (error) {\n const message = extractErrorMessage(error);\n const result: StepResult = {\n tool,\n ok: false,\n error: {\n code: ErrorCodes.MM_INTERNAL_ERROR,\n message: `Unexpected error: ${message}`,\n },\n meta: {\n durationMs: Date.now() - stepStartTime,\n timestamp: new Date().toISOString(),\n },\n };\n stepResults.push(result);\n failed += 1;\n\n if (stopOnError) {\n break;\n }\n }\n }\n\n const batchResult: RunStepsResult = {\n steps: stepResults,\n summary: {\n ok: failed === 0,\n total: stepResults.length,\n succeeded,\n failed,\n durationMs: Date.now() - batchStartTime,\n },\n };\n\n return createSuccessResponse(batchResult, sessionId, batchStartTime);\n}\n"]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { McpResponse, HandlerOptions, RunStepsInput, RunStepsResult } from "../types/index.cjs";
|
|
2
|
+
/**
|
|
3
|
+
* Handler function type for executing MCP tools.
|
|
4
|
+
*
|
|
5
|
+
* @param input Tool arguments as key-value pairs
|
|
6
|
+
* @param options Optional handler configuration
|
|
7
|
+
* @returns Promise resolving to MCP response with tool result
|
|
8
|
+
*/
|
|
9
|
+
export type ToolHandler = (input: Record<string, unknown>, options?: HandlerOptions) => Promise<McpResponse<unknown>>;
|
|
10
|
+
/**
|
|
11
|
+
* Registry mapping tool names to their handler functions.
|
|
12
|
+
*
|
|
13
|
+
* @returns Record of tool name to handler function mappings
|
|
14
|
+
*/
|
|
15
|
+
export type ToolRegistry = Record<string, ToolHandler>;
|
|
16
|
+
/**
|
|
17
|
+
* Validator function type for validating tool arguments before execution.
|
|
18
|
+
*
|
|
19
|
+
* @param tool Tool name being validated
|
|
20
|
+
* @param args Tool arguments to validate
|
|
21
|
+
* @returns Validation result with success status and optional error details
|
|
22
|
+
*/
|
|
23
|
+
export type ToolValidator = (tool: string, args: Record<string, unknown>) => {
|
|
24
|
+
/**
|
|
25
|
+
* Validation succeeded
|
|
26
|
+
*/
|
|
27
|
+
success: true;
|
|
28
|
+
} | {
|
|
29
|
+
/**
|
|
30
|
+
* Validation failed
|
|
31
|
+
*/
|
|
32
|
+
success: false;
|
|
33
|
+
/**
|
|
34
|
+
* Error details when validation fails
|
|
35
|
+
*/
|
|
36
|
+
error: {
|
|
37
|
+
/**
|
|
38
|
+
* Error message describing validation failure
|
|
39
|
+
*/
|
|
40
|
+
message: string;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Sets the global tool registry for batch execution.
|
|
45
|
+
*
|
|
46
|
+
* @param registry Tool registry mapping names to handlers
|
|
47
|
+
*/
|
|
48
|
+
export declare function setToolRegistry(registry: ToolRegistry): void;
|
|
49
|
+
/**
|
|
50
|
+
* Gets the current global tool registry.
|
|
51
|
+
*
|
|
52
|
+
* @returns The current tool registry
|
|
53
|
+
*/
|
|
54
|
+
export declare function getToolRegistry(): ToolRegistry;
|
|
55
|
+
/**
|
|
56
|
+
* Checks if the tool registry has any registered handlers.
|
|
57
|
+
*
|
|
58
|
+
* @returns True if registry contains handlers, false otherwise
|
|
59
|
+
*/
|
|
60
|
+
export declare function hasToolRegistry(): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Sets the global tool validator for batch execution.
|
|
63
|
+
*
|
|
64
|
+
* @param validator Validator function to validate tool arguments
|
|
65
|
+
*/
|
|
66
|
+
export declare function setToolValidator(validator: ToolValidator): void;
|
|
67
|
+
/**
|
|
68
|
+
* Gets the current global tool validator.
|
|
69
|
+
*
|
|
70
|
+
* @returns The current tool validator or undefined if not set
|
|
71
|
+
*/
|
|
72
|
+
export declare function getToolValidator(): ToolValidator | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Executes multiple tool steps in sequence with optional validation and error handling.
|
|
75
|
+
*
|
|
76
|
+
* @param input Steps to execute with optional stop-on-error and observation policy
|
|
77
|
+
* @param options Optional handler configuration and observation policy override
|
|
78
|
+
* @returns Promise resolving to MCP response with step results and summary
|
|
79
|
+
*/
|
|
80
|
+
export declare function handleRunSteps(input: RunStepsInput, options?: HandlerOptions): Promise<McpResponse<RunStepsResult>>;
|
|
81
|
+
//# sourceMappingURL=batch.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.d.cts","sourceRoot":"","sources":["../../../src/mcp-server/tools/batch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EAGf,2BAAiB;AA4BlB;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AAEnC;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAE3B;IACE;;OAEG;IACH,OAAO,EAAE,IAAI,CAAC;CACf,GACD;IACE;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC;IACf;;OAEG;IACH,KAAK,EAAE;QACL;;WAEG;QACH,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAKN;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,SAAS,CAE5D;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,aAAa,EACpB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CA2ItC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { McpResponse, HandlerOptions, RunStepsInput, RunStepsResult } from "../types/index.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* Handler function type for executing MCP tools.
|
|
4
|
+
*
|
|
5
|
+
* @param input Tool arguments as key-value pairs
|
|
6
|
+
* @param options Optional handler configuration
|
|
7
|
+
* @returns Promise resolving to MCP response with tool result
|
|
8
|
+
*/
|
|
9
|
+
export type ToolHandler = (input: Record<string, unknown>, options?: HandlerOptions) => Promise<McpResponse<unknown>>;
|
|
10
|
+
/**
|
|
11
|
+
* Registry mapping tool names to their handler functions.
|
|
12
|
+
*
|
|
13
|
+
* @returns Record of tool name to handler function mappings
|
|
14
|
+
*/
|
|
15
|
+
export type ToolRegistry = Record<string, ToolHandler>;
|
|
16
|
+
/**
|
|
17
|
+
* Validator function type for validating tool arguments before execution.
|
|
18
|
+
*
|
|
19
|
+
* @param tool Tool name being validated
|
|
20
|
+
* @param args Tool arguments to validate
|
|
21
|
+
* @returns Validation result with success status and optional error details
|
|
22
|
+
*/
|
|
23
|
+
export type ToolValidator = (tool: string, args: Record<string, unknown>) => {
|
|
24
|
+
/**
|
|
25
|
+
* Validation succeeded
|
|
26
|
+
*/
|
|
27
|
+
success: true;
|
|
28
|
+
} | {
|
|
29
|
+
/**
|
|
30
|
+
* Validation failed
|
|
31
|
+
*/
|
|
32
|
+
success: false;
|
|
33
|
+
/**
|
|
34
|
+
* Error details when validation fails
|
|
35
|
+
*/
|
|
36
|
+
error: {
|
|
37
|
+
/**
|
|
38
|
+
* Error message describing validation failure
|
|
39
|
+
*/
|
|
40
|
+
message: string;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Sets the global tool registry for batch execution.
|
|
45
|
+
*
|
|
46
|
+
* @param registry Tool registry mapping names to handlers
|
|
47
|
+
*/
|
|
48
|
+
export declare function setToolRegistry(registry: ToolRegistry): void;
|
|
49
|
+
/**
|
|
50
|
+
* Gets the current global tool registry.
|
|
51
|
+
*
|
|
52
|
+
* @returns The current tool registry
|
|
53
|
+
*/
|
|
54
|
+
export declare function getToolRegistry(): ToolRegistry;
|
|
55
|
+
/**
|
|
56
|
+
* Checks if the tool registry has any registered handlers.
|
|
57
|
+
*
|
|
58
|
+
* @returns True if registry contains handlers, false otherwise
|
|
59
|
+
*/
|
|
60
|
+
export declare function hasToolRegistry(): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Sets the global tool validator for batch execution.
|
|
63
|
+
*
|
|
64
|
+
* @param validator Validator function to validate tool arguments
|
|
65
|
+
*/
|
|
66
|
+
export declare function setToolValidator(validator: ToolValidator): void;
|
|
67
|
+
/**
|
|
68
|
+
* Gets the current global tool validator.
|
|
69
|
+
*
|
|
70
|
+
* @returns The current tool validator or undefined if not set
|
|
71
|
+
*/
|
|
72
|
+
export declare function getToolValidator(): ToolValidator | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Executes multiple tool steps in sequence with optional validation and error handling.
|
|
75
|
+
*
|
|
76
|
+
* @param input Steps to execute with optional stop-on-error and observation policy
|
|
77
|
+
* @param options Optional handler configuration and observation policy override
|
|
78
|
+
* @returns Promise resolving to MCP response with step results and summary
|
|
79
|
+
*/
|
|
80
|
+
export declare function handleRunSteps(input: RunStepsInput, options?: HandlerOptions): Promise<McpResponse<RunStepsResult>>;
|
|
81
|
+
//# sourceMappingURL=batch.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.d.mts","sourceRoot":"","sources":["../../../src/mcp-server/tools/batch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EAGf,2BAAiB;AA4BlB;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AAEnC;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAE3B;IACE;;OAEG;IACH,OAAO,EAAE,IAAI,CAAC;CACf,GACD;IACE;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC;IACf;;OAEG;IACH,KAAK,EAAE;QACL;;WAEG;QACH,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAKN;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,SAAS,CAE5D;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,aAAa,EACpB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CA2ItC"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { getSessionManager } from "../session-manager.mjs";
|
|
2
|
+
import { ErrorCodes } from "../types/index.mjs";
|
|
3
|
+
import { createSuccessResponse, createErrorResponse, extractErrorMessage } from "../utils/index.mjs";
|
|
4
|
+
/**
|
|
5
|
+
* Maps includeObservations string to observation policy override.
|
|
6
|
+
*
|
|
7
|
+
* @param value The observation policy string ('none', 'failures', 'all', or undefined)
|
|
8
|
+
* @returns The mapped observation policy override
|
|
9
|
+
*/
|
|
10
|
+
function mapIncludeObservationsToPolicy(value) {
|
|
11
|
+
switch (value) {
|
|
12
|
+
case 'none':
|
|
13
|
+
return 'none';
|
|
14
|
+
case 'failures':
|
|
15
|
+
return 'failures';
|
|
16
|
+
case 'all':
|
|
17
|
+
default:
|
|
18
|
+
return 'default';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
let _toolRegistry = {};
|
|
22
|
+
let _toolValidator;
|
|
23
|
+
/**
|
|
24
|
+
* Sets the global tool registry for batch execution.
|
|
25
|
+
*
|
|
26
|
+
* @param registry Tool registry mapping names to handlers
|
|
27
|
+
*/
|
|
28
|
+
export function setToolRegistry(registry) {
|
|
29
|
+
_toolRegistry = registry;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Gets the current global tool registry.
|
|
33
|
+
*
|
|
34
|
+
* @returns The current tool registry
|
|
35
|
+
*/
|
|
36
|
+
export function getToolRegistry() {
|
|
37
|
+
return _toolRegistry;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Checks if the tool registry has any registered handlers.
|
|
41
|
+
*
|
|
42
|
+
* @returns True if registry contains handlers, false otherwise
|
|
43
|
+
*/
|
|
44
|
+
export function hasToolRegistry() {
|
|
45
|
+
return Object.keys(_toolRegistry).length > 0;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Sets the global tool validator for batch execution.
|
|
49
|
+
*
|
|
50
|
+
* @param validator Validator function to validate tool arguments
|
|
51
|
+
*/
|
|
52
|
+
export function setToolValidator(validator) {
|
|
53
|
+
_toolValidator = validator;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Gets the current global tool validator.
|
|
57
|
+
*
|
|
58
|
+
* @returns The current tool validator or undefined if not set
|
|
59
|
+
*/
|
|
60
|
+
export function getToolValidator() {
|
|
61
|
+
return _toolValidator;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Executes multiple tool steps in sequence with optional validation and error handling.
|
|
65
|
+
*
|
|
66
|
+
* @param input Steps to execute with optional stop-on-error and observation policy
|
|
67
|
+
* @param options Optional handler configuration and observation policy override
|
|
68
|
+
* @returns Promise resolving to MCP response with step results and summary
|
|
69
|
+
*/
|
|
70
|
+
export async function handleRunSteps(input, options) {
|
|
71
|
+
const batchStartTime = Date.now();
|
|
72
|
+
const sessionManager = getSessionManager();
|
|
73
|
+
const sessionId = sessionManager.getSessionId();
|
|
74
|
+
if (!sessionManager.hasActiveSession()) {
|
|
75
|
+
return createErrorResponse(ErrorCodes.MM_NO_ACTIVE_SESSION, 'No active session. Call launch first.', { input }, undefined, batchStartTime);
|
|
76
|
+
}
|
|
77
|
+
const { steps: stepInputs, stopOnError = false, includeObservations } = input;
|
|
78
|
+
const observationPolicy = mapIncludeObservationsToPolicy(includeObservations);
|
|
79
|
+
const stepResults = [];
|
|
80
|
+
let succeeded = 0;
|
|
81
|
+
let failed = 0;
|
|
82
|
+
const toolHandlers = getToolRegistry();
|
|
83
|
+
const toolValidator = getToolValidator();
|
|
84
|
+
for (const stepInput of stepInputs) {
|
|
85
|
+
const stepStartTime = Date.now();
|
|
86
|
+
const { tool, args = {} } = stepInput;
|
|
87
|
+
const handler = toolHandlers[tool];
|
|
88
|
+
if (!handler) {
|
|
89
|
+
const result = {
|
|
90
|
+
tool,
|
|
91
|
+
ok: false,
|
|
92
|
+
error: {
|
|
93
|
+
code: ErrorCodes.MM_UNKNOWN_TOOL,
|
|
94
|
+
message: `Unknown tool: ${tool}`,
|
|
95
|
+
},
|
|
96
|
+
meta: {
|
|
97
|
+
durationMs: Date.now() - stepStartTime,
|
|
98
|
+
timestamp: new Date().toISOString(),
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
stepResults.push(result);
|
|
102
|
+
failed += 1;
|
|
103
|
+
if (stopOnError) {
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
if (toolValidator) {
|
|
109
|
+
const validation = toolValidator(tool, args);
|
|
110
|
+
if (!validation.success) {
|
|
111
|
+
const result = {
|
|
112
|
+
tool,
|
|
113
|
+
ok: false,
|
|
114
|
+
error: {
|
|
115
|
+
code: ErrorCodes.MM_INVALID_INPUT,
|
|
116
|
+
message: `Invalid input: ${validation.error.message}`,
|
|
117
|
+
},
|
|
118
|
+
meta: {
|
|
119
|
+
durationMs: Date.now() - stepStartTime,
|
|
120
|
+
timestamp: new Date().toISOString(),
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
stepResults.push(result);
|
|
124
|
+
failed += 1;
|
|
125
|
+
if (stopOnError) {
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
try {
|
|
132
|
+
const stepOptions = {
|
|
133
|
+
...options,
|
|
134
|
+
observationPolicy,
|
|
135
|
+
};
|
|
136
|
+
const response = await handler(args, stepOptions);
|
|
137
|
+
const result = {
|
|
138
|
+
tool,
|
|
139
|
+
ok: response.ok,
|
|
140
|
+
result: response.ok ? response.result : undefined,
|
|
141
|
+
error: response.ok ? undefined : response.error,
|
|
142
|
+
meta: {
|
|
143
|
+
durationMs: Date.now() - stepStartTime,
|
|
144
|
+
timestamp: new Date().toISOString(),
|
|
145
|
+
},
|
|
146
|
+
};
|
|
147
|
+
stepResults.push(result);
|
|
148
|
+
if (response.ok) {
|
|
149
|
+
succeeded += 1;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
failed += 1;
|
|
153
|
+
if (stopOnError) {
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
const message = extractErrorMessage(error);
|
|
160
|
+
const result = {
|
|
161
|
+
tool,
|
|
162
|
+
ok: false,
|
|
163
|
+
error: {
|
|
164
|
+
code: ErrorCodes.MM_INTERNAL_ERROR,
|
|
165
|
+
message: `Unexpected error: ${message}`,
|
|
166
|
+
},
|
|
167
|
+
meta: {
|
|
168
|
+
durationMs: Date.now() - stepStartTime,
|
|
169
|
+
timestamp: new Date().toISOString(),
|
|
170
|
+
},
|
|
171
|
+
};
|
|
172
|
+
stepResults.push(result);
|
|
173
|
+
failed += 1;
|
|
174
|
+
if (stopOnError) {
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
const batchResult = {
|
|
180
|
+
steps: stepResults,
|
|
181
|
+
summary: {
|
|
182
|
+
ok: failed === 0,
|
|
183
|
+
total: stepResults.length,
|
|
184
|
+
succeeded,
|
|
185
|
+
failed,
|
|
186
|
+
durationMs: Date.now() - batchStartTime,
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
return createSuccessResponse(batchResult, sessionId, batchStartTime);
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=batch.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.mjs","sourceRoot":"","sources":["../../../src/mcp-server/tools/batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,+BAA8B;AAS1D,OAAO,EAAE,UAAU,EAAE,2BAAiB;AACtC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACpB,2BAAiB;AAElB;;;;;GAKG;AACH,SAAS,8BAA8B,CACrC,KAA8C;IAE9C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB,KAAK,KAAK,CAAC;QACX;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAsDD,IAAI,aAAa,GAAiB,EAAE,CAAC;AACrC,IAAI,cAAyC,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAsB;IACpD,aAAa,GAAG,QAAQ,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACvD,cAAc,GAAG,SAAS,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAoB,EACpB,OAAwB;IAExB,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,EAAE,CAAC;IAEhD,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACvC,OAAO,mBAAmB,CACxB,UAAU,CAAC,oBAAoB,EAC/B,uCAAuC,EACvC,EAAE,KAAK,EAAE,EACT,SAAS,EACT,cAAc,CACf,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,GAAG,KAAK,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC;IAC9E,MAAM,iBAAiB,GAAG,8BAA8B,CAAC,mBAAmB,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IAEzC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,SAAS,CAAC;QAEtC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,MAAM,GAAe;gBACzB,IAAI;gBACJ,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,UAAU,CAAC,eAAe;oBAChC,OAAO,EAAE,iBAAiB,IAAI,EAAE;iBACjC;gBACD,IAAI,EAAE;oBACJ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa;oBACtC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC;aACF,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,MAAM,IAAI,CAAC,CAAC;YAEZ,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM;YACR,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAe;oBACzB,IAAI;oBACJ,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACL,IAAI,EAAE,UAAU,CAAC,gBAAgB;wBACjC,OAAO,EAAE,kBAAkB,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE;qBACtD;oBACD,IAAI,EAAE;wBACJ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa;wBACtC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC;iBACF,CAAC;gBACF,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzB,MAAM,IAAI,CAAC,CAAC;gBAEZ,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM;gBACR,CAAC;gBACD,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,GAAmB;gBAClC,GAAG,OAAO;gBACV,iBAAiB;aAClB,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAElD,MAAM,MAAM,GAAe;gBACzB,IAAI;gBACJ,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACjD,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;gBAC/C,IAAI,EAAE;oBACJ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa;oBACtC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC;aACF,CAAC;YAEF,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEzB,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,SAAS,IAAI,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,CAAC;gBACZ,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAe;gBACzB,IAAI;gBACJ,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,UAAU,CAAC,iBAAiB;oBAClC,OAAO,EAAE,qBAAqB,OAAO,EAAE;iBACxC;gBACD,IAAI,EAAE;oBACJ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa;oBACtC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC;aACF,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,MAAM,IAAI,CAAC,CAAC;YAEZ,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAmB;QAClC,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE;YACP,EAAE,EAAE,MAAM,KAAK,CAAC;YAChB,KAAK,EAAE,WAAW,CAAC,MAAM;YACzB,SAAS;YACT,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc;SACxC;KACF,CAAC;IAEF,OAAO,qBAAqB,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;AACvE,CAAC","sourcesContent":["import { getSessionManager } from '../session-manager.js';\nimport type {\n McpResponse,\n HandlerOptions,\n RunStepsInput,\n RunStepsResult,\n StepResult,\n ObservationPolicyOverride,\n} from '../types';\nimport { ErrorCodes } from '../types';\nimport {\n createSuccessResponse,\n createErrorResponse,\n extractErrorMessage,\n} from '../utils';\n\n/**\n * Maps includeObservations string to observation policy override.\n *\n * @param value The observation policy string ('none', 'failures', 'all', or undefined)\n * @returns The mapped observation policy override\n */\nfunction mapIncludeObservationsToPolicy(\n value: 'none' | 'failures' | 'all' | undefined,\n): ObservationPolicyOverride {\n switch (value) {\n case 'none':\n return 'none';\n case 'failures':\n return 'failures';\n case 'all':\n default:\n return 'default';\n }\n}\n\n/**\n * Handler function type for executing MCP tools.\n *\n * @param input Tool arguments as key-value pairs\n * @param options Optional handler configuration\n * @returns Promise resolving to MCP response with tool result\n */\nexport type ToolHandler = (\n input: Record<string, unknown>,\n options?: HandlerOptions,\n) => Promise<McpResponse<unknown>>;\n\n/**\n * Registry mapping tool names to their handler functions.\n *\n * @returns Record of tool name to handler function mappings\n */\nexport type ToolRegistry = Record<string, ToolHandler>;\n\n/**\n * Validator function type for validating tool arguments before execution.\n *\n * @param tool Tool name being validated\n * @param args Tool arguments to validate\n * @returns Validation result with success status and optional error details\n */\nexport type ToolValidator = (\n tool: string,\n args: Record<string, unknown>,\n) =>\n | {\n /**\n * Validation succeeded\n */\n success: true;\n }\n | {\n /**\n * Validation failed\n */\n success: false;\n /**\n * Error details when validation fails\n */\n error: {\n /**\n * Error message describing validation failure\n */\n message: string;\n };\n };\n\nlet _toolRegistry: ToolRegistry = {};\nlet _toolValidator: ToolValidator | undefined;\n\n/**\n * Sets the global tool registry for batch execution.\n *\n * @param registry Tool registry mapping names to handlers\n */\nexport function setToolRegistry(registry: ToolRegistry): void {\n _toolRegistry = registry;\n}\n\n/**\n * Gets the current global tool registry.\n *\n * @returns The current tool registry\n */\nexport function getToolRegistry(): ToolRegistry {\n return _toolRegistry;\n}\n\n/**\n * Checks if the tool registry has any registered handlers.\n *\n * @returns True if registry contains handlers, false otherwise\n */\nexport function hasToolRegistry(): boolean {\n return Object.keys(_toolRegistry).length > 0;\n}\n\n/**\n * Sets the global tool validator for batch execution.\n *\n * @param validator Validator function to validate tool arguments\n */\nexport function setToolValidator(validator: ToolValidator): void {\n _toolValidator = validator;\n}\n\n/**\n * Gets the current global tool validator.\n *\n * @returns The current tool validator or undefined if not set\n */\nexport function getToolValidator(): ToolValidator | undefined {\n return _toolValidator;\n}\n\n/**\n * Executes multiple tool steps in sequence with optional validation and error handling.\n *\n * @param input Steps to execute with optional stop-on-error and observation policy\n * @param options Optional handler configuration and observation policy override\n * @returns Promise resolving to MCP response with step results and summary\n */\nexport async function handleRunSteps(\n input: RunStepsInput,\n options?: HandlerOptions,\n): Promise<McpResponse<RunStepsResult>> {\n const batchStartTime = Date.now();\n const sessionManager = getSessionManager();\n const sessionId = sessionManager.getSessionId();\n\n if (!sessionManager.hasActiveSession()) {\n return createErrorResponse(\n ErrorCodes.MM_NO_ACTIVE_SESSION,\n 'No active session. Call launch first.',\n { input },\n undefined,\n batchStartTime,\n );\n }\n\n const { steps: stepInputs, stopOnError = false, includeObservations } = input;\n const observationPolicy = mapIncludeObservationsToPolicy(includeObservations);\n const stepResults: StepResult[] = [];\n let succeeded = 0;\n let failed = 0;\n\n const toolHandlers = getToolRegistry();\n const toolValidator = getToolValidator();\n\n for (const stepInput of stepInputs) {\n const stepStartTime = Date.now();\n const { tool, args = {} } = stepInput;\n\n const handler = toolHandlers[tool];\n if (!handler) {\n const result: StepResult = {\n tool,\n ok: false,\n error: {\n code: ErrorCodes.MM_UNKNOWN_TOOL,\n message: `Unknown tool: ${tool}`,\n },\n meta: {\n durationMs: Date.now() - stepStartTime,\n timestamp: new Date().toISOString(),\n },\n };\n stepResults.push(result);\n failed += 1;\n\n if (stopOnError) {\n break;\n }\n continue;\n }\n\n if (toolValidator) {\n const validation = toolValidator(tool, args);\n if (!validation.success) {\n const result: StepResult = {\n tool,\n ok: false,\n error: {\n code: ErrorCodes.MM_INVALID_INPUT,\n message: `Invalid input: ${validation.error.message}`,\n },\n meta: {\n durationMs: Date.now() - stepStartTime,\n timestamp: new Date().toISOString(),\n },\n };\n stepResults.push(result);\n failed += 1;\n\n if (stopOnError) {\n break;\n }\n continue;\n }\n }\n\n try {\n const stepOptions: HandlerOptions = {\n ...options,\n observationPolicy,\n };\n const response = await handler(args, stepOptions);\n\n const result: StepResult = {\n tool,\n ok: response.ok,\n result: response.ok ? response.result : undefined,\n error: response.ok ? undefined : response.error,\n meta: {\n durationMs: Date.now() - stepStartTime,\n timestamp: new Date().toISOString(),\n },\n };\n\n stepResults.push(result);\n\n if (response.ok) {\n succeeded += 1;\n } else {\n failed += 1;\n if (stopOnError) {\n break;\n }\n }\n } catch (error) {\n const message = extractErrorMessage(error);\n const result: StepResult = {\n tool,\n ok: false,\n error: {\n code: ErrorCodes.MM_INTERNAL_ERROR,\n message: `Unexpected error: ${message}`,\n },\n meta: {\n durationMs: Date.now() - stepStartTime,\n timestamp: new Date().toISOString(),\n },\n };\n stepResults.push(result);\n failed += 1;\n\n if (stopOnError) {\n break;\n }\n }\n }\n\n const batchResult: RunStepsResult = {\n steps: stepResults,\n summary: {\n ok: failed === 0,\n total: stepResults.length,\n succeeded,\n failed,\n durationMs: Date.now() - batchStartTime,\n },\n };\n\n return createSuccessResponse(batchResult, sessionId, batchStartTime);\n}\n"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleBuild = handleBuild;
|
|
4
|
+
const types_1 = require("../types/index.cjs");
|
|
5
|
+
const utils_1 = require("../utils/index.cjs");
|
|
6
|
+
/**
|
|
7
|
+
* Handles the build tool request to build the extension.
|
|
8
|
+
*
|
|
9
|
+
* @param input Build configuration with optional buildType and force flag
|
|
10
|
+
* @param options Optional handler options with build capability
|
|
11
|
+
* @returns Promise resolving to MCP response with build result
|
|
12
|
+
*/
|
|
13
|
+
async function handleBuild(input, options) {
|
|
14
|
+
const startTime = Date.now();
|
|
15
|
+
if (options?.buildCapability) {
|
|
16
|
+
return handleBuildWithCapability(input, options.buildCapability, startTime);
|
|
17
|
+
}
|
|
18
|
+
return (0, utils_1.createErrorResponse)(types_1.ErrorCodes.MM_CAPABILITY_NOT_AVAILABLE, 'BuildCapability not available. The mm_build tool requires either: (1) running in e2e mode with the MetaMask extension wrapper, or (2) running directly in the metamask-extension repository with dependencies installed.', { capability: 'BuildCapability' }, undefined, startTime);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Handles build using the provided build capability.
|
|
22
|
+
*
|
|
23
|
+
* @param input Build configuration with optional buildType and force flag
|
|
24
|
+
* @param buildCapability Build capability instance for executing the build
|
|
25
|
+
* @param startTime Timestamp when the operation started
|
|
26
|
+
* @returns Promise resolving to MCP response with build result
|
|
27
|
+
*/
|
|
28
|
+
async function handleBuildWithCapability(input, buildCapability, startTime) {
|
|
29
|
+
try {
|
|
30
|
+
const result = await buildCapability.build({
|
|
31
|
+
buildType: input.buildType,
|
|
32
|
+
force: input.force,
|
|
33
|
+
});
|
|
34
|
+
if (!result.success) {
|
|
35
|
+
return (0, utils_1.createErrorResponse)(types_1.ErrorCodes.MM_BUILD_FAILED, `Build failed: ${result.error ?? 'Unknown error'}`, { buildType: input.buildType ?? 'build:test' }, undefined, startTime);
|
|
36
|
+
}
|
|
37
|
+
return (0, utils_1.createSuccessResponse)({
|
|
38
|
+
buildType: input.buildType ?? 'build:test',
|
|
39
|
+
extensionPathResolved: result.extensionPath,
|
|
40
|
+
}, undefined, startTime);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
const message = (0, utils_1.extractErrorMessage)(error);
|
|
44
|
+
return (0, utils_1.createErrorResponse)(types_1.ErrorCodes.MM_BUILD_FAILED, `Build failed: ${message}`, { buildType: input.buildType ?? 'build:test' }, undefined, startTime);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=build.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.cjs","sourceRoot":"","sources":["../../../src/mcp-server/tools/build.ts"],"names":[],"mappings":";;AAiCA,kCAiBC;AA3CD,8CAAsC;AACtC,8CAIkB;AAclB;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAC/B,KAAiB,EACjB,OAA0B;IAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;QAC7B,OAAO,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,IAAA,2BAAmB,EACxB,kBAAU,CAAC,2BAA2B,EACtC,0NAA0N,EAC1N,EAAE,UAAU,EAAE,iBAAiB,EAAE,EACjC,SAAS,EACT,SAAS,CACV,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,yBAAyB,CACtC,KAAiB,EACjB,eAAgC,EAChC,SAAiB;IAEjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC;YACzC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,IAAA,2BAAmB,EACxB,kBAAU,CAAC,eAAe,EAC1B,iBAAiB,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,EAClD,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,YAAY,EAAE,EAC9C,SAAS,EACT,SAAS,CACV,CAAC;QACJ,CAAC;QAED,OAAO,IAAA,6BAAqB,EAC1B;YACE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,YAAY;YAC1C,qBAAqB,EAAE,MAAM,CAAC,aAAa;SAC5C,EACD,SAAS,EACT,SAAS,CACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,IAAA,2BAAmB,EAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAA,2BAAmB,EACxB,kBAAU,CAAC,eAAe,EAC1B,iBAAiB,OAAO,EAAE,EAC1B,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,YAAY,EAAE,EAC9C,SAAS,EACT,SAAS,CACV,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import type { BuildCapability } from '../../capabilities/types.js';\nimport type {\n BuildInput,\n BuildToolResult,\n McpResponse,\n HandlerOptions,\n} from '../types';\nimport { ErrorCodes } from '../types';\nimport {\n createSuccessResponse,\n createErrorResponse,\n extractErrorMessage,\n} from '../utils';\n\n/**\n * Options for the build tool handler.\n *\n * @returns Handler options with optional build capability\n */\nexport type BuildToolOptions = HandlerOptions & {\n /**\n * Optional build capability for extension building\n */\n buildCapability?: BuildCapability;\n};\n\n/**\n * Handles the build tool request to build the extension.\n *\n * @param input Build configuration with optional buildType and force flag\n * @param options Optional handler options with build capability\n * @returns Promise resolving to MCP response with build result\n */\nexport async function handleBuild(\n input: BuildInput,\n options?: BuildToolOptions,\n): Promise<McpResponse<BuildToolResult>> {\n const startTime = Date.now();\n\n if (options?.buildCapability) {\n return handleBuildWithCapability(input, options.buildCapability, startTime);\n }\n\n return createErrorResponse(\n ErrorCodes.MM_CAPABILITY_NOT_AVAILABLE,\n 'BuildCapability not available. The mm_build tool requires either: (1) running in e2e mode with the MetaMask extension wrapper, or (2) running directly in the metamask-extension repository with dependencies installed.',\n { capability: 'BuildCapability' },\n undefined,\n startTime,\n );\n}\n\n/**\n * Handles build using the provided build capability.\n *\n * @param input Build configuration with optional buildType and force flag\n * @param buildCapability Build capability instance for executing the build\n * @param startTime Timestamp when the operation started\n * @returns Promise resolving to MCP response with build result\n */\nasync function handleBuildWithCapability(\n input: BuildInput,\n buildCapability: BuildCapability,\n startTime: number,\n): Promise<McpResponse<BuildToolResult>> {\n try {\n const result = await buildCapability.build({\n buildType: input.buildType,\n force: input.force,\n });\n\n if (!result.success) {\n return createErrorResponse(\n ErrorCodes.MM_BUILD_FAILED,\n `Build failed: ${result.error ?? 'Unknown error'}`,\n { buildType: input.buildType ?? 'build:test' },\n undefined,\n startTime,\n );\n }\n\n return createSuccessResponse<BuildToolResult>(\n {\n buildType: input.buildType ?? 'build:test',\n extensionPathResolved: result.extensionPath,\n },\n undefined,\n startTime,\n );\n } catch (error) {\n const message = extractErrorMessage(error);\n return createErrorResponse(\n ErrorCodes.MM_BUILD_FAILED,\n `Build failed: ${message}`,\n { buildType: input.buildType ?? 'build:test' },\n undefined,\n startTime,\n );\n }\n}\n"]}
|