@cyanheads/mcp-ts-core 0.11.4 → 0.12.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/AGENTS.md +28 -24
- package/CLAUDE.md +28 -24
- package/README.md +10 -10
- package/biome.json +1 -1
- package/changelog/0.11.x/0.11.5.md +28 -0
- package/changelog/0.12.x/0.12.0.md +96 -0
- package/changelog/template.md +55 -16
- package/dist/cli/init.js +1 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/config/index.d.ts +0 -18
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +0 -25
- package/dist/config/index.js.map +1 -1
- package/dist/core/app.d.ts +5 -7
- package/dist/core/app.d.ts.map +1 -1
- package/dist/core/app.js +18 -27
- package/dist/core/app.js.map +1 -1
- package/dist/core/context.d.ts +90 -57
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +32 -33
- package/dist/core/context.js.map +1 -1
- package/dist/core/gcPressure.d.ts.map +1 -1
- package/dist/core/gcPressure.js +3 -4
- package/dist/core/gcPressure.js.map +1 -1
- package/dist/core/index.d.ts +6 -7
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +10 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/serverManifest.d.ts +1 -3
- package/dist/core/serverManifest.d.ts.map +1 -1
- package/dist/core/serverManifest.js +9 -4
- package/dist/core/serverManifest.js.map +1 -1
- package/dist/core/worker.d.ts.map +1 -1
- package/dist/core/worker.js +32 -35
- package/dist/core/worker.js.map +1 -1
- package/dist/logs/combined.log +10 -0
- package/dist/logs/error.log +6 -0
- package/dist/logs/interactions.log +0 -0
- package/dist/mcp-server/inputRequired.d.ts +52 -0
- package/dist/mcp-server/inputRequired.d.ts.map +1 -0
- package/dist/mcp-server/inputRequired.js +76 -0
- package/dist/mcp-server/inputRequired.js.map +1 -0
- package/dist/mcp-server/notifications.d.ts +33 -31
- package/dist/mcp-server/notifications.d.ts.map +1 -1
- package/dist/mcp-server/notifications.js +34 -26
- package/dist/mcp-server/notifications.js.map +1 -1
- package/dist/mcp-server/prompts/prompt-registration.d.ts +2 -2
- package/dist/mcp-server/prompts/prompt-registration.d.ts.map +1 -1
- package/dist/mcp-server/prompts/prompt-registration.js +15 -5
- package/dist/mcp-server/prompts/prompt-registration.js.map +1 -1
- package/dist/mcp-server/prompts/utils/promptDefinition.d.ts +1 -1
- package/dist/mcp-server/prompts/utils/promptDefinition.d.ts.map +1 -1
- package/dist/mcp-server/resources/resource-registration.d.ts +3 -3
- package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -1
- package/dist/mcp-server/resources/resource-registration.js +8 -15
- package/dist/mcp-server/resources/resource-registration.js.map +1 -1
- package/dist/mcp-server/resources/resourceSubscriptions.d.ts +45 -0
- package/dist/mcp-server/resources/resourceSubscriptions.d.ts.map +1 -0
- package/dist/mcp-server/resources/resourceSubscriptions.js +51 -0
- package/dist/mcp-server/resources/resourceSubscriptions.js.map +1 -0
- package/dist/mcp-server/resources/utils/resourceDefinition.d.ts +3 -5
- package/dist/mcp-server/resources/utils/resourceDefinition.d.ts.map +1 -1
- package/dist/mcp-server/resources/utils/resourceDefinition.js +1 -1
- package/dist/mcp-server/resources/utils/resourceDefinition.js.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +8 -15
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +21 -22
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
- package/dist/mcp-server/server.d.ts +12 -21
- package/dist/mcp-server/server.d.ts.map +1 -1
- package/dist/mcp-server/server.js +38 -28
- package/dist/mcp-server/server.js.map +1 -1
- package/dist/mcp-server/tools/tool-registration.d.ts +11 -33
- package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -1
- package/dist/mcp-server/tools/tool-registration.js +17 -243
- package/dist/mcp-server/tools/tool-registration.js.map +1 -1
- package/dist/mcp-server/tools/utils/toolDefinition.d.ts +1 -3
- package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/toolDefinition.js +48 -1
- package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +46 -20
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js +131 -25
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
- package/dist/mcp-server/transports/ITransport.d.ts +2 -2
- package/dist/mcp-server/transports/ITransport.d.ts.map +1 -1
- package/dist/mcp-server/transports/auth/authFactory.js +1 -1
- package/dist/mcp-server/transports/auth/authFactory.js.map +1 -1
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +1 -1
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -1
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -1
- package/dist/mcp-server/transports/auth/lib/authUtils.js +5 -13
- package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -1
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +5 -11
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -1
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -1
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +9 -22
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -1
- package/dist/mcp-server/transports/heartbeat.d.ts.map +1 -1
- package/dist/mcp-server/transports/heartbeat.js +4 -8
- package/dist/mcp-server/transports/heartbeat.js.map +1 -1
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/httpErrorHandler.js +6 -24
- package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -1
- package/dist/mcp-server/transports/http/httpServer.d.ts +3 -3
- package/dist/mcp-server/transports/http/httpServer.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/httpServer.js +15 -32
- package/dist/mcp-server/transports/http/httpServer.js.map +1 -1
- package/dist/mcp-server/transports/http/httpTransport.d.ts +25 -8
- package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/httpTransport.js +156 -310
- package/dist/mcp-server/transports/http/httpTransport.js.map +1 -1
- package/dist/mcp-server/transports/http/landing-page/assets/styles.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/landing-page/assets/styles.js +0 -1
- package/dist/mcp-server/transports/http/landing-page/assets/styles.js.map +1 -1
- package/dist/mcp-server/transports/http/landing-page/handler.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/landing-page/handler.js +4 -8
- package/dist/mcp-server/transports/http/landing-page/handler.js.map +1 -1
- package/dist/mcp-server/transports/http/landing-page/sections/tools.js +0 -2
- package/dist/mcp-server/transports/http/landing-page/sections/tools.js.map +1 -1
- package/dist/mcp-server/transports/http/protectedResourceMetadata.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/protectedResourceMetadata.js +2 -6
- package/dist/mcp-server/transports/http/protectedResourceMetadata.js.map +1 -1
- package/dist/mcp-server/transports/http/robotsTxt.js +2 -2
- package/dist/mcp-server/transports/http/robotsTxt.js.map +1 -1
- package/dist/mcp-server/transports/http/serverCard.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/serverCard.js +2 -6
- package/dist/mcp-server/transports/http/serverCard.js.map +1 -1
- package/dist/mcp-server/transports/http/sessionStore.d.ts +48 -45
- package/dist/mcp-server/transports/http/sessionStore.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/sessionStore.js +141 -185
- package/dist/mcp-server/transports/http/sessionStore.js.map +1 -1
- package/dist/mcp-server/transports/manager.d.ts +12 -4
- package/dist/mcp-server/transports/manager.d.ts.map +1 -1
- package/dist/mcp-server/transports/manager.js +35 -33
- package/dist/mcp-server/transports/manager.js.map +1 -1
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +24 -31
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -1
- package/dist/mcp-server/transports/stdio/stdioTransport.js +23 -38
- package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -1
- package/dist/mcp-server/types.d.ts +25 -0
- package/dist/mcp-server/types.d.ts.map +1 -0
- package/dist/mcp-server/types.js +10 -0
- package/dist/mcp-server/types.js.map +1 -0
- package/dist/services/canvas/core/CanvasInstance.d.ts +2 -2
- package/dist/services/canvas/core/CanvasInstance.d.ts.map +1 -1
- package/dist/services/canvas/core/CanvasInstance.js.map +1 -1
- package/dist/services/canvas/core/CanvasRegistry.d.ts +4 -4
- package/dist/services/canvas/core/CanvasRegistry.d.ts.map +1 -1
- package/dist/services/canvas/core/CanvasRegistry.js +8 -18
- package/dist/services/canvas/core/CanvasRegistry.js.map +1 -1
- package/dist/services/canvas/core/DataCanvas.d.ts +5 -5
- package/dist/services/canvas/core/DataCanvas.d.ts.map +1 -1
- package/dist/services/canvas/core/DataCanvas.js +2 -3
- package/dist/services/canvas/core/DataCanvas.js.map +1 -1
- package/dist/services/canvas/core/IDataCanvasProvider.d.ts +11 -11
- package/dist/services/canvas/core/IDataCanvasProvider.d.ts.map +1 -1
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts +11 -11
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts.map +1 -1
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.js +4 -10
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.js.map +1 -1
- package/dist/services/llm/providers/openrouter.provider.d.ts.map +1 -1
- package/dist/services/llm/providers/openrouter.provider.js +2 -5
- package/dist/services/llm/providers/openrouter.provider.js.map +1 -1
- package/dist/services/mirror/core/defineMirror.js +1 -1
- package/dist/services/mirror/core/defineMirror.js.map +1 -1
- package/dist/services/mirror/types.d.ts +5 -5
- package/dist/services/mirror/types.d.ts.map +1 -1
- package/dist/services/speech/providers/elevenlabs.provider.js +1 -1
- package/dist/services/speech/providers/elevenlabs.provider.js.map +1 -1
- package/dist/services/speech/providers/whisper.provider.js +1 -1
- package/dist/services/speech/providers/whisper.provider.js.map +1 -1
- package/dist/storage/core/StorageService.d.ts +1 -1
- package/dist/storage/core/StorageService.d.ts.map +1 -1
- package/dist/storage/core/StorageService.js +12 -20
- package/dist/storage/core/StorageService.js.map +1 -1
- package/dist/storage/core/storageFactory.d.ts.map +1 -1
- package/dist/storage/core/storageFactory.js.map +1 -1
- package/dist/storage/core/storageValidation.d.ts +1 -1
- package/dist/storage/core/storageValidation.d.ts.map +1 -1
- package/dist/storage/core/storageValidation.js +2 -2
- package/dist/storage/core/storageValidation.js.map +1 -1
- package/dist/storage/providers/cloudflare/d1Provider.d.ts +1 -1
- package/dist/storage/providers/cloudflare/d1Provider.d.ts.map +1 -1
- package/dist/storage/providers/cloudflare/d1Provider.js +4 -12
- package/dist/storage/providers/cloudflare/d1Provider.js.map +1 -1
- package/dist/storage/providers/cloudflare/kvProvider.d.ts +1 -1
- package/dist/storage/providers/cloudflare/kvProvider.d.ts.map +1 -1
- package/dist/storage/providers/cloudflare/kvProvider.js +3 -8
- package/dist/storage/providers/cloudflare/kvProvider.js.map +1 -1
- package/dist/storage/providers/cloudflare/r2Provider.d.ts +1 -1
- package/dist/storage/providers/cloudflare/r2Provider.d.ts.map +1 -1
- package/dist/storage/providers/cloudflare/r2Provider.js +3 -8
- package/dist/storage/providers/cloudflare/r2Provider.js.map +1 -1
- package/dist/storage/providers/inMemory/inMemoryProvider.d.ts +1 -1
- package/dist/storage/providers/inMemory/inMemoryProvider.d.ts.map +1 -1
- package/dist/storage/providers/inMemory/inMemoryProvider.js +2 -4
- package/dist/storage/providers/inMemory/inMemoryProvider.js.map +1 -1
- package/dist/testing/index.d.ts +35 -12
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +53 -38
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/vitest.d.ts +1 -1
- package/dist/testing/vitest.d.ts.map +1 -1
- package/dist/types-global/errors.d.ts +28 -15
- package/dist/types-global/errors.d.ts.map +1 -1
- package/dist/types-global/errors.js +8 -1
- package/dist/types-global/errors.js.map +1 -1
- package/dist/utils/formatting/diffFormatter.d.ts +5 -5
- package/dist/utils/formatting/diffFormatter.d.ts.map +1 -1
- package/dist/utils/formatting/diffFormatter.js +7 -20
- package/dist/utils/formatting/diffFormatter.js.map +1 -1
- package/dist/utils/formatting/tableFormatter.d.ts +3 -3
- package/dist/utils/formatting/tableFormatter.d.ts.map +1 -1
- package/dist/utils/formatting/tableFormatter.js +6 -17
- package/dist/utils/formatting/tableFormatter.js.map +1 -1
- package/dist/utils/formatting/treeFormatter.d.ts +3 -3
- package/dist/utils/formatting/treeFormatter.d.ts.map +1 -1
- package/dist/utils/formatting/treeFormatter.js +5 -18
- package/dist/utils/formatting/treeFormatter.js.map +1 -1
- package/dist/utils/index.d.ts +4 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/internal/error-handler/errorHandler.d.ts +1 -1
- package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -1
- package/dist/utils/internal/error-handler/errorHandler.js +23 -11
- package/dist/utils/internal/error-handler/errorHandler.js.map +1 -1
- package/dist/utils/internal/error-handler/types.d.ts +10 -13
- package/dist/utils/internal/error-handler/types.d.ts.map +1 -1
- package/dist/utils/internal/logger.d.ts +3 -3
- package/dist/utils/internal/logger.d.ts.map +1 -1
- package/dist/utils/internal/logger.js +11 -5
- package/dist/utils/internal/logger.js.map +1 -1
- package/dist/utils/internal/performance.d.ts +1 -1
- package/dist/utils/internal/performance.d.ts.map +1 -1
- package/dist/utils/internal/performance.js +57 -13
- package/dist/utils/internal/performance.js.map +1 -1
- package/dist/utils/internal/requestContext.d.ts +79 -55
- package/dist/utils/internal/requestContext.d.ts.map +1 -1
- package/dist/utils/internal/requestContext.js +77 -32
- package/dist/utils/internal/requestContext.js.map +1 -1
- package/dist/utils/metrics/tokenCounter.d.ts +3 -3
- package/dist/utils/metrics/tokenCounter.d.ts.map +1 -1
- package/dist/utils/metrics/tokenCounter.js.map +1 -1
- package/dist/utils/network/fetchWithTimeout.d.ts +2 -2
- package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -1
- package/dist/utils/network/fetchWithTimeout.js +8 -24
- package/dist/utils/network/fetchWithTimeout.js.map +1 -1
- package/dist/utils/network/retry.d.ts +2 -2
- package/dist/utils/network/retry.d.ts.map +1 -1
- package/dist/utils/overflow/outlineOnOverflow.d.ts +1 -1
- package/dist/utils/overflow/outlineOnOverflow.d.ts.map +1 -1
- package/dist/utils/pagination/pagination.d.ts +3 -3
- package/dist/utils/pagination/pagination.d.ts.map +1 -1
- package/dist/utils/pagination/pagination.js +3 -3
- package/dist/utils/pagination/pagination.js.map +1 -1
- package/dist/utils/parsing/csvParser.d.ts +2 -2
- package/dist/utils/parsing/csvParser.d.ts.map +1 -1
- package/dist/utils/parsing/csvParser.js +4 -8
- package/dist/utils/parsing/csvParser.js.map +1 -1
- package/dist/utils/parsing/dateParser.d.ts +3 -3
- package/dist/utils/parsing/dateParser.d.ts.map +1 -1
- package/dist/utils/parsing/dateParser.js +3 -2
- package/dist/utils/parsing/dateParser.js.map +1 -1
- package/dist/utils/parsing/frontmatterParser.d.ts +2 -2
- package/dist/utils/parsing/frontmatterParser.d.ts.map +1 -1
- package/dist/utils/parsing/frontmatterParser.js +7 -10
- package/dist/utils/parsing/frontmatterParser.js.map +1 -1
- package/dist/utils/parsing/htmlExtractor.d.ts +2 -2
- package/dist/utils/parsing/htmlExtractor.d.ts.map +1 -1
- package/dist/utils/parsing/htmlExtractor.js +6 -11
- package/dist/utils/parsing/htmlExtractor.js.map +1 -1
- package/dist/utils/parsing/jsonParser.d.ts +2 -2
- package/dist/utils/parsing/jsonParser.d.ts.map +1 -1
- package/dist/utils/parsing/jsonParser.js +4 -8
- package/dist/utils/parsing/jsonParser.js.map +1 -1
- package/dist/utils/parsing/pdfParser.d.ts +10 -10
- package/dist/utils/parsing/pdfParser.d.ts.map +1 -1
- package/dist/utils/parsing/pdfParser.js +26 -89
- package/dist/utils/parsing/pdfParser.js.map +1 -1
- package/dist/utils/parsing/xmlParser.d.ts +2 -2
- package/dist/utils/parsing/xmlParser.d.ts.map +1 -1
- package/dist/utils/parsing/xmlParser.js +4 -8
- package/dist/utils/parsing/xmlParser.js.map +1 -1
- package/dist/utils/parsing/yamlParser.d.ts +2 -2
- package/dist/utils/parsing/yamlParser.d.ts.map +1 -1
- package/dist/utils/parsing/yamlParser.js +4 -8
- package/dist/utils/parsing/yamlParser.js.map +1 -1
- package/dist/utils/scheduling/scheduler.d.ts.map +1 -1
- package/dist/utils/scheduling/scheduler.js +5 -6
- package/dist/utils/scheduling/scheduler.js.map +1 -1
- package/dist/utils/security/rateLimiter.d.ts +2 -2
- package/dist/utils/security/rateLimiter.d.ts.map +1 -1
- package/dist/utils/security/rateLimiter.js +1 -1
- package/dist/utils/security/rateLimiter.js.map +1 -1
- package/dist/utils/telemetry/attributes.d.ts +23 -7
- package/dist/utils/telemetry/attributes.d.ts.map +1 -1
- package/dist/utils/telemetry/attributes.js +23 -10
- package/dist/utils/telemetry/attributes.js.map +1 -1
- package/dist/utils/telemetry/trace.d.ts +3 -3
- package/dist/utils/telemetry/trace.d.ts.map +1 -1
- package/dist/utils/telemetry/trace.js +4 -2
- package/dist/utils/telemetry/trace.js.map +1 -1
- package/package.json +22 -26
- package/scripts/lint-mcp.ts +1 -3
- package/scripts/lint-packaging.ts +1 -1
- package/skills/add-service/SKILL.md +2 -2
- package/skills/add-test/SKILL.md +42 -20
- package/skills/add-tool/SKILL.md +68 -19
- package/skills/api-canvas/SKILL.md +2 -2
- package/skills/api-config/SKILL.md +1 -11
- package/skills/api-context/SKILL.md +175 -111
- package/skills/api-linter/SKILL.md +2 -2
- package/skills/api-telemetry/SKILL.md +8 -12
- package/skills/api-testing/SKILL.md +53 -52
- package/skills/code-simplifier/SKILL.md +2 -2
- package/skills/design-mcp-server/SKILL.md +34 -18
- package/skills/field-test/SKILL.md +4 -2
- package/skills/git-wrapup/SKILL.md +3 -3
- package/skills/polish-docs-meta/SKILL.md +1 -1
- package/skills/polish-docs-meta/references/agent-protocol.md +2 -2
- package/skills/polish-docs-meta/references/readme.md +1 -1
- package/skills/release-and-publish/SKILL.md +3 -1
- package/skills/report-issue-framework/SKILL.md +2 -2
- package/skills/report-issue-local/SKILL.md +2 -2
- package/skills/security-pass/SKILL.md +16 -14
- package/templates/.github/CODE_OF_CONDUCT.md +28 -0
- package/templates/.github/CONTRIBUTING.md +50 -0
- package/templates/.github/SECURITY.md +24 -0
- package/templates/AGENTS.md +6 -6
- package/templates/CLAUDE.md +6 -6
- package/templates/changelog/template.md +55 -16
- package/templates/tests/resources/echo.resource.test.ts +16 -9
- package/dist/mcp-server/elicitation.d.ts +0 -64
- package/dist/mcp-server/elicitation.d.ts.map +0 -1
- package/dist/mcp-server/elicitation.js +0 -81
- package/dist/mcp-server/elicitation.js.map +0 -1
- package/dist/mcp-server/protocolSession.d.ts +0 -34
- package/dist/mcp-server/protocolSession.d.ts.map +0 -1
- package/dist/mcp-server/protocolSession.js +0 -13
- package/dist/mcp-server/protocolSession.js.map +0 -1
- package/dist/mcp-server/tasks/core/evictingTaskMessageQueue.d.ts +0 -53
- package/dist/mcp-server/tasks/core/evictingTaskMessageQueue.d.ts.map +0 -1
- package/dist/mcp-server/tasks/core/evictingTaskMessageQueue.js +0 -65
- package/dist/mcp-server/tasks/core/evictingTaskMessageQueue.js.map +0 -1
- package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts +0 -70
- package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts.map +0 -1
- package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js +0 -130
- package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js.map +0 -1
- package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts +0 -109
- package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts.map +0 -1
- package/dist/mcp-server/tasks/core/storageBackedTaskStore.js +0 -209
- package/dist/mcp-server/tasks/core/storageBackedTaskStore.js.map +0 -1
- package/dist/mcp-server/tasks/core/taskManager.d.ts +0 -91
- package/dist/mcp-server/tasks/core/taskManager.d.ts.map +0 -1
- package/dist/mcp-server/tasks/core/taskManager.js +0 -210
- package/dist/mcp-server/tasks/core/taskManager.js.map +0 -1
- package/dist/mcp-server/tasks/core/taskTypes.d.ts +0 -18
- package/dist/mcp-server/tasks/core/taskTypes.d.ts.map +0 -1
- package/dist/mcp-server/tasks/core/taskTypes.js +0 -20
- package/dist/mcp-server/tasks/core/taskTypes.js.map +0 -1
- package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts +0 -101
- package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts.map +0 -1
- package/dist/mcp-server/tasks/utils/taskToolDefinition.js +0 -14
- package/dist/mcp-server/tasks/utils/taskToolDefinition.js.map +0 -1
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import type { config as configType } from '../../../config/index.js';
|
|
2
|
-
import type { StorageService } from '../../../storage/core/StorageService.js';
|
|
3
|
-
import type { RequestContext } from '../../../utils/internal/requestContext.js';
|
|
4
|
-
import { type TaskMessageQueue, type TaskStore } from './taskTypes.js';
|
|
5
|
-
/**
|
|
6
|
-
* Singleton service that manages task state and message queues for the MCP server.
|
|
7
|
-
*
|
|
8
|
-
* The TaskManager provides:
|
|
9
|
-
* - A shared TaskStore for creating, tracking, and completing tasks
|
|
10
|
-
* - A shared TaskMessageQueue for side-channel message delivery
|
|
11
|
-
* - Cleanup methods for graceful shutdown
|
|
12
|
-
*
|
|
13
|
-
* The store type is determined by configuration:
|
|
14
|
-
* - `in-memory`: Fast, suitable for development (data lost on restart)
|
|
15
|
-
* - `storage`: Persistent, uses configured StorageService backend
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* // Inject via DI
|
|
20
|
-
* constructor(@inject(TaskManagerToken) private taskManager: TaskManager) {}
|
|
21
|
-
*
|
|
22
|
-
* // Access stores
|
|
23
|
-
* const taskStore = this.taskManager.getTaskStore();
|
|
24
|
-
* const messageQueue = this.taskManager.getMessageQueue();
|
|
25
|
-
* ```
|
|
26
|
-
*
|
|
27
|
-
* @experimental
|
|
28
|
-
*/
|
|
29
|
-
export declare class TaskManager {
|
|
30
|
-
private readonly taskStore;
|
|
31
|
-
private readonly inMemoryTaskStore;
|
|
32
|
-
private readonly messageQueue;
|
|
33
|
-
private readonly storeType;
|
|
34
|
-
private isShuttingDown;
|
|
35
|
-
constructor(config: typeof configType, storageService: StorageService);
|
|
36
|
-
/**
|
|
37
|
-
* Returns the TaskStore instance for managing task lifecycle.
|
|
38
|
-
*
|
|
39
|
-
* The TaskStore handles:
|
|
40
|
-
* - Task creation with TTL and poll intervals
|
|
41
|
-
* - Status updates (working, input_required, completed, failed, cancelled)
|
|
42
|
-
* - Result storage and retrieval
|
|
43
|
-
* - Task listing with pagination
|
|
44
|
-
*
|
|
45
|
-
* @returns The singleton TaskStore instance
|
|
46
|
-
*/
|
|
47
|
-
getTaskStore(): TaskStore;
|
|
48
|
-
/**
|
|
49
|
-
* Returns the TaskMessageQueue instance for side-channel messaging.
|
|
50
|
-
*
|
|
51
|
-
* The message queue enables:
|
|
52
|
-
* - Queuing requests/notifications for delivery via tasks/result
|
|
53
|
-
* - FIFO ordering per task
|
|
54
|
-
* - Atomic enqueue with size limits
|
|
55
|
-
*
|
|
56
|
-
* @returns The singleton TaskMessageQueue instance
|
|
57
|
-
*/
|
|
58
|
-
getMessageQueue(): TaskMessageQueue;
|
|
59
|
-
/**
|
|
60
|
-
* Returns the store type currently in use.
|
|
61
|
-
*
|
|
62
|
-
* @returns 'in-memory' or 'storage'
|
|
63
|
-
*/
|
|
64
|
-
getStoreType(): 'in-memory' | 'storage';
|
|
65
|
-
/**
|
|
66
|
-
* Performs cleanup of task resources.
|
|
67
|
-
*
|
|
68
|
-
* Should be called during graceful server shutdown to:
|
|
69
|
-
* - Cancel cleanup timers in the in-memory task store
|
|
70
|
-
* - Clear any pending message queues
|
|
71
|
-
*
|
|
72
|
-
* Note: Storage-backed task stores don't require cleanup as data persists.
|
|
73
|
-
*
|
|
74
|
-
* @param context - Request context for logging
|
|
75
|
-
*/
|
|
76
|
-
cleanup(context?: RequestContext): void;
|
|
77
|
-
/**
|
|
78
|
-
* Returns the current task count (for debugging/monitoring).
|
|
79
|
-
* Only available for in-memory store; returns `null` for storage-backed store.
|
|
80
|
-
*
|
|
81
|
-
* @returns The number of tasks currently tracked, or `null` if unavailable
|
|
82
|
-
*/
|
|
83
|
-
getTaskCount(): number | null;
|
|
84
|
-
/**
|
|
85
|
-
* Checks if the TaskManager is shutting down.
|
|
86
|
-
*
|
|
87
|
-
* @returns True if cleanup has been initiated
|
|
88
|
-
*/
|
|
89
|
-
isCleaningUp(): boolean;
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=taskManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"taskManager.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tasks/core/taskManager.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAOzE,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAiFxB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,cAAc,CAAS;IAE/B,YAAY,MAAM,EAAE,OAAO,UAAU,EAAE,cAAc,EAAE,cAAc,EA4CpE;IAED;;;;;;;;;;OAUG;IACI,YAAY,IAAI,SAAS,CAE/B;IAED;;;;;;;;;OASG;IACI,eAAe,IAAI,gBAAgB,CAEzC;IAED;;;;OAIG;IACI,YAAY,IAAI,WAAW,GAAG,SAAS,CAE7C;IAED;;;;;;;;;;OAUG;IACI,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAqB7C;IAED;;;;;OAKG;IACI,YAAY,IAAI,MAAM,GAAG,IAAI,CAMnC;IAED;;;;OAIG;IACI,YAAY,IAAI,OAAO,CAE7B;CACF"}
|
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import { logger } from '../../../utils/internal/logger.js';
|
|
2
|
-
import { idGenerator } from '../../../utils/security/idGenerator.js';
|
|
3
|
-
import { ATTR_MCP_TASK_STATUS, ATTR_MCP_TASK_STORE_TYPE } from '../../../utils/telemetry/attributes.js';
|
|
4
|
-
import { createCounter, createObservableGauge } from '../../../utils/telemetry/metrics.js';
|
|
5
|
-
import { EvictingTaskMessageQueue } from './evictingTaskMessageQueue.js';
|
|
6
|
-
import { SessionAwareTaskStore } from './sessionAwareTaskStore.js';
|
|
7
|
-
import { StorageBackedTaskStore } from './storageBackedTaskStore.js';
|
|
8
|
-
import { DEFAULT_AUTO_TASK_TTL_MS, InMemoryTaskMessageQueue, InMemoryTaskStore, } from './taskTypes.js';
|
|
9
|
-
// ---------------------------------------------------------------------------
|
|
10
|
-
// Task lifecycle metrics
|
|
11
|
-
// ---------------------------------------------------------------------------
|
|
12
|
-
let taskCreatedCounter;
|
|
13
|
-
let taskStatusCounter;
|
|
14
|
-
function getTaskMetrics() {
|
|
15
|
-
taskCreatedCounter ??= createCounter('mcp.tasks.created', 'Total tasks created', '{tasks}');
|
|
16
|
-
taskStatusCounter ??= createCounter('mcp.tasks.status_changes', 'Total task status transitions', '{transitions}');
|
|
17
|
-
return { taskCreatedCounter, taskStatusCounter };
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Wraps a TaskStore to record lifecycle metrics on create, status update,
|
|
21
|
-
* and result storage. Delegates all actual logic to the inner store.
|
|
22
|
-
*/
|
|
23
|
-
class InstrumentedTaskStore {
|
|
24
|
-
inner;
|
|
25
|
-
storeTypeLabel;
|
|
26
|
-
constructor(inner, storeTypeLabel) {
|
|
27
|
-
this.inner = inner;
|
|
28
|
-
this.storeTypeLabel = storeTypeLabel;
|
|
29
|
-
}
|
|
30
|
-
async createTask(taskParams, requestId, request, sessionId) {
|
|
31
|
-
const task = await this.inner.createTask(taskParams, requestId, request, sessionId);
|
|
32
|
-
getTaskMetrics().taskCreatedCounter.add(1, {
|
|
33
|
-
[ATTR_MCP_TASK_STORE_TYPE]: this.storeTypeLabel,
|
|
34
|
-
});
|
|
35
|
-
return task;
|
|
36
|
-
}
|
|
37
|
-
async storeTaskResult(taskId, status, result, sessionId) {
|
|
38
|
-
await this.inner.storeTaskResult(taskId, status, result, sessionId);
|
|
39
|
-
getTaskMetrics().taskStatusCounter.add(1, {
|
|
40
|
-
[ATTR_MCP_TASK_STATUS]: status,
|
|
41
|
-
[ATTR_MCP_TASK_STORE_TYPE]: this.storeTypeLabel,
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
async updateTaskStatus(taskId, status, statusMessage, sessionId) {
|
|
45
|
-
await this.inner.updateTaskStatus(taskId, status, statusMessage, sessionId);
|
|
46
|
-
getTaskMetrics().taskStatusCounter.add(1, {
|
|
47
|
-
[ATTR_MCP_TASK_STATUS]: status,
|
|
48
|
-
[ATTR_MCP_TASK_STORE_TYPE]: this.storeTypeLabel,
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
getTask(taskId, sessionId) {
|
|
52
|
-
return this.inner.getTask(taskId, sessionId);
|
|
53
|
-
}
|
|
54
|
-
getTaskResult(taskId, sessionId) {
|
|
55
|
-
return this.inner.getTaskResult(taskId, sessionId);
|
|
56
|
-
}
|
|
57
|
-
listTasks(cursor, sessionId) {
|
|
58
|
-
return this.inner.listTasks(cursor, sessionId);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Singleton service that manages task state and message queues for the MCP server.
|
|
63
|
-
*
|
|
64
|
-
* The TaskManager provides:
|
|
65
|
-
* - A shared TaskStore for creating, tracking, and completing tasks
|
|
66
|
-
* - A shared TaskMessageQueue for side-channel message delivery
|
|
67
|
-
* - Cleanup methods for graceful shutdown
|
|
68
|
-
*
|
|
69
|
-
* The store type is determined by configuration:
|
|
70
|
-
* - `in-memory`: Fast, suitable for development (data lost on restart)
|
|
71
|
-
* - `storage`: Persistent, uses configured StorageService backend
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* ```typescript
|
|
75
|
-
* // Inject via DI
|
|
76
|
-
* constructor(@inject(TaskManagerToken) private taskManager: TaskManager) {}
|
|
77
|
-
*
|
|
78
|
-
* // Access stores
|
|
79
|
-
* const taskStore = this.taskManager.getTaskStore();
|
|
80
|
-
* const messageQueue = this.taskManager.getMessageQueue();
|
|
81
|
-
* ```
|
|
82
|
-
*
|
|
83
|
-
* @experimental
|
|
84
|
-
*/
|
|
85
|
-
export class TaskManager {
|
|
86
|
-
taskStore;
|
|
87
|
-
inMemoryTaskStore = null;
|
|
88
|
-
messageQueue;
|
|
89
|
-
storeType;
|
|
90
|
-
isShuttingDown = false;
|
|
91
|
-
constructor(config, storageService) {
|
|
92
|
-
this.storeType = config.tasks.storeType;
|
|
93
|
-
// The SDK's queue only ever deletes on `dequeueAll`, so a task the client
|
|
94
|
-
// abandons strands its queue for the life of the process. Wrapping it
|
|
95
|
-
// bounds queue lifetime by the same TTL the task store applies.
|
|
96
|
-
this.messageQueue = new EvictingTaskMessageQueue(new InMemoryTaskMessageQueue(), config.tasks.defaultTtlMs ?? DEFAULT_AUTO_TASK_TTL_MS);
|
|
97
|
-
let baseStore;
|
|
98
|
-
if (this.storeType === 'storage') {
|
|
99
|
-
baseStore = new StorageBackedTaskStore(storageService, {
|
|
100
|
-
tenantId: config.tasks.tenantId,
|
|
101
|
-
defaultTtl: config.tasks.defaultTtlMs ?? null,
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
this.inMemoryTaskStore = new InMemoryTaskStore();
|
|
106
|
-
// Wrap with session ownership enforcement — the SDK's InMemoryTaskStore
|
|
107
|
-
// ignores sessionId parameters, so SessionAwareTaskStore adds that layer.
|
|
108
|
-
baseStore = new SessionAwareTaskStore(this.inMemoryTaskStore);
|
|
109
|
-
}
|
|
110
|
-
// Wrap with lifecycle metrics (outermost layer)
|
|
111
|
-
this.taskStore = new InstrumentedTaskStore(baseStore, this.storeType);
|
|
112
|
-
logger.info(`TaskManager initialized with ${this.storeType} task store`, {
|
|
113
|
-
operation: 'TaskManager.constructor',
|
|
114
|
-
requestId: idGenerator.generate('req'),
|
|
115
|
-
timestamp: new Date().toISOString(),
|
|
116
|
-
storeType: this.storeType,
|
|
117
|
-
...(this.storeType === 'storage' && { tenantId: config.tasks.tenantId }),
|
|
118
|
-
});
|
|
119
|
-
// Wire task count to OTel observable gauge
|
|
120
|
-
if (this.inMemoryTaskStore) {
|
|
121
|
-
const store = this.inMemoryTaskStore;
|
|
122
|
-
createObservableGauge('mcp.tasks.active', 'Number of active tasks in the in-memory store', () => store.getAllTasks().length, '{tasks}');
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Returns the TaskStore instance for managing task lifecycle.
|
|
127
|
-
*
|
|
128
|
-
* The TaskStore handles:
|
|
129
|
-
* - Task creation with TTL and poll intervals
|
|
130
|
-
* - Status updates (working, input_required, completed, failed, cancelled)
|
|
131
|
-
* - Result storage and retrieval
|
|
132
|
-
* - Task listing with pagination
|
|
133
|
-
*
|
|
134
|
-
* @returns The singleton TaskStore instance
|
|
135
|
-
*/
|
|
136
|
-
getTaskStore() {
|
|
137
|
-
return this.taskStore;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Returns the TaskMessageQueue instance for side-channel messaging.
|
|
141
|
-
*
|
|
142
|
-
* The message queue enables:
|
|
143
|
-
* - Queuing requests/notifications for delivery via tasks/result
|
|
144
|
-
* - FIFO ordering per task
|
|
145
|
-
* - Atomic enqueue with size limits
|
|
146
|
-
*
|
|
147
|
-
* @returns The singleton TaskMessageQueue instance
|
|
148
|
-
*/
|
|
149
|
-
getMessageQueue() {
|
|
150
|
-
return this.messageQueue;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Returns the store type currently in use.
|
|
154
|
-
*
|
|
155
|
-
* @returns 'in-memory' or 'storage'
|
|
156
|
-
*/
|
|
157
|
-
getStoreType() {
|
|
158
|
-
return this.storeType;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Performs cleanup of task resources.
|
|
162
|
-
*
|
|
163
|
-
* Should be called during graceful server shutdown to:
|
|
164
|
-
* - Cancel cleanup timers in the in-memory task store
|
|
165
|
-
* - Clear any pending message queues
|
|
166
|
-
*
|
|
167
|
-
* Note: Storage-backed task stores don't require cleanup as data persists.
|
|
168
|
-
*
|
|
169
|
-
* @param context - Request context for logging
|
|
170
|
-
*/
|
|
171
|
-
cleanup(context) {
|
|
172
|
-
if (this.isShuttingDown) {
|
|
173
|
-
return;
|
|
174
|
-
}
|
|
175
|
-
this.isShuttingDown = true;
|
|
176
|
-
const logContext = context ?? {
|
|
177
|
-
operation: 'TaskManager.cleanup',
|
|
178
|
-
requestId: idGenerator.generate('req'),
|
|
179
|
-
timestamp: new Date().toISOString(),
|
|
180
|
-
};
|
|
181
|
-
logger.info('Cleaning up TaskManager resources...', logContext);
|
|
182
|
-
// Only InMemoryTaskStore has cleanup timers
|
|
183
|
-
if (this.inMemoryTaskStore) {
|
|
184
|
-
this.inMemoryTaskStore.cleanup();
|
|
185
|
-
}
|
|
186
|
-
logger.info('TaskManager cleanup complete', logContext);
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Returns the current task count (for debugging/monitoring).
|
|
190
|
-
* Only available for in-memory store; returns `null` for storage-backed store.
|
|
191
|
-
*
|
|
192
|
-
* @returns The number of tasks currently tracked, or `null` if unavailable
|
|
193
|
-
*/
|
|
194
|
-
getTaskCount() {
|
|
195
|
-
if (this.inMemoryTaskStore) {
|
|
196
|
-
return this.inMemoryTaskStore.getAllTasks().length;
|
|
197
|
-
}
|
|
198
|
-
// Storage-backed store doesn't have getAllTasks - would require listing
|
|
199
|
-
return null;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Checks if the TaskManager is shutting down.
|
|
203
|
-
*
|
|
204
|
-
* @returns True if cleanup has been initiated
|
|
205
|
-
*/
|
|
206
|
-
isCleaningUp() {
|
|
207
|
-
return this.isShuttingDown;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
//# sourceMappingURL=taskManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"taskManager.js","sourceRoot":"","sources":["../../../../src/mcp-server/tasks/core/taskManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Re-exports task-related types from the MCP SDK experimental module.
|
|
3
|
-
* These types are used for implementing task-based tools that support long-running
|
|
4
|
-
* async operations with the "call-now, fetch-later" pattern.
|
|
5
|
-
*
|
|
6
|
-
* @experimental These APIs are experimental and may change without notice.
|
|
7
|
-
* @module src/mcp-server/tasks/core/taskTypes
|
|
8
|
-
*/
|
|
9
|
-
export type { CancelTaskRequest, CancelTaskResult, CreateTaskOptions, CreateTaskRequestHandlerExtra, CreateTaskResult, ErrorMessage, GetTaskPayloadRequest, GetTaskRequest, GetTaskResult, ListTasksRequest, ListTasksResult, QueuedMessage, RelatedTaskMetadata, ResponseMessage, ResultMessage, Task, TaskCreatedMessage, TaskCreationParams, TaskMessageQueue, TaskRequestHandlerExtra, TaskStatusMessage, TaskStatusNotification, TaskStatusNotificationParams, TaskStore, TaskToolExecution, ToolTaskHandler, } from '@modelcontextprotocol/sdk/experimental/tasks';
|
|
10
|
-
export { InMemoryTaskMessageQueue, InMemoryTaskStore, isTerminal, takeResult, toArrayAsync, } from '@modelcontextprotocol/sdk/experimental/tasks';
|
|
11
|
-
/**
|
|
12
|
-
* TTL applied to a task when `TASK_STORE_DEFAULT_TTL_MS` is unset.
|
|
13
|
-
*
|
|
14
|
-
* Shared so task creation and the bookkeeping that must expire alongside it
|
|
15
|
-
* (ownership rows, message queues) cannot drift onto different lifetimes.
|
|
16
|
-
*/
|
|
17
|
-
export declare const DEFAULT_AUTO_TASK_TTL_MS = 120000;
|
|
18
|
-
//# sourceMappingURL=taskTypes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"taskTypes.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tasks/core/taskTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,6BAA6B,EAC7B,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,IAAI,EACJ,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,SAAS,EACT,iBAAiB,EACjB,eAAe,GAChB,MAAM,8CAA8C,CAAC;AAItD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,8CAA8C,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,SAAU,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Re-exports task-related types from the MCP SDK experimental module.
|
|
3
|
-
* These types are used for implementing task-based tools that support long-running
|
|
4
|
-
* async operations with the "call-now, fetch-later" pattern.
|
|
5
|
-
*
|
|
6
|
-
* @experimental These APIs are experimental and may change without notice.
|
|
7
|
-
* @module src/mcp-server/tasks/core/taskTypes
|
|
8
|
-
*/
|
|
9
|
-
// In-memory implementations (reference implementations)
|
|
10
|
-
// Utility functions
|
|
11
|
-
// Helper functions for processing task responses
|
|
12
|
-
export { InMemoryTaskMessageQueue, InMemoryTaskStore, isTerminal, takeResult, toArrayAsync, } from '@modelcontextprotocol/sdk/experimental/tasks';
|
|
13
|
-
/**
|
|
14
|
-
* TTL applied to a task when `TASK_STORE_DEFAULT_TTL_MS` is unset.
|
|
15
|
-
*
|
|
16
|
-
* Shared so task creation and the bookkeeping that must expire alongside it
|
|
17
|
-
* (ownership rows, message queues) cannot drift onto different lifetimes.
|
|
18
|
-
*/
|
|
19
|
-
export const DEFAULT_AUTO_TASK_TTL_MS = 120_000;
|
|
20
|
-
//# sourceMappingURL=taskTypes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"taskTypes.js","sourceRoot":"","sources":["../../../../src/mcp-server/tasks/core/taskTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkCH,wDAAwD;AACxD,oBAAoB;AACpB,iDAAiD;AACjD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,8CAA8C,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC"}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Defines the structure for task-based tool definitions.
|
|
3
|
-
* Task tools support long-running async operations with the MCP Tasks API,
|
|
4
|
-
* enabling "call-now, fetch-later" execution patterns.
|
|
5
|
-
*
|
|
6
|
-
* @experimental These APIs are experimental and may change without notice.
|
|
7
|
-
* @module src/mcp-server/tasks/utils/taskToolDefinition
|
|
8
|
-
*/
|
|
9
|
-
import type { ZodObject, ZodRawShape } from 'zod';
|
|
10
|
-
import type { TaskToolExecution, ToolTaskHandler } from '../../../mcp-server/tasks/core/taskTypes.js';
|
|
11
|
-
import type { ToolAnnotations } from '../../../mcp-server/tools/utils/toolDefinition.js';
|
|
12
|
-
/**
|
|
13
|
-
* Represents a task-based tool definition for long-running async operations.
|
|
14
|
-
*
|
|
15
|
-
* Unlike regular tools that execute synchronously and return immediately,
|
|
16
|
-
* task tools create durable task handles that clients can poll for status
|
|
17
|
-
* and retrieve results after completion.
|
|
18
|
-
*
|
|
19
|
-
* Task tools are registered via `server.experimental.tasks.registerToolTask()`
|
|
20
|
-
* and must implement three handlers:
|
|
21
|
-
* - `createTask`: Called when the tool is invoked, creates the task and starts work
|
|
22
|
-
* - `getTask`: Called to poll task status (tasks/get)
|
|
23
|
-
* - `getTaskResult`: Called to retrieve results (tasks/result)
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* const myTaskTool: TaskToolDefinition<typeof InputSchema, typeof OutputSchema> = {
|
|
28
|
-
* name: 'long_running_analysis',
|
|
29
|
-
* description: 'Performs a long-running analysis operation',
|
|
30
|
-
* input: z.object({ data: z.string() }),
|
|
31
|
-
* output: z.object({ result: z.string() }),
|
|
32
|
-
* execution: { taskSupport: 'required' },
|
|
33
|
-
* taskHandlers: {
|
|
34
|
-
* createTask: async (args, extra) => {
|
|
35
|
-
* const task = await extra.taskStore.createTask({ ttl: 300000 }, ...);
|
|
36
|
-
* startBackgroundWork(task.taskId, args);
|
|
37
|
-
* return { task };
|
|
38
|
-
* },
|
|
39
|
-
* getTask: async (_args, extra) => {
|
|
40
|
-
* return await extra.taskStore.getTask(extra.taskId);
|
|
41
|
-
* },
|
|
42
|
-
* getTaskResult: async (_args, extra) => {
|
|
43
|
-
* return await extra.taskStore.getTaskResult(extra.taskId);
|
|
44
|
-
* }
|
|
45
|
-
* }
|
|
46
|
-
* };
|
|
47
|
-
* ```
|
|
48
|
-
*
|
|
49
|
-
* @experimental
|
|
50
|
-
*/
|
|
51
|
-
export interface TaskToolDefinition<TInputSchema extends ZodObject<ZodRawShape>, TOutputSchema extends ZodObject<ZodRawShape>> {
|
|
52
|
-
/** Protocol-level metadata (e.g., MCP Apps extension `_meta.ui`). */
|
|
53
|
-
_meta?: Record<string, unknown>;
|
|
54
|
-
/**
|
|
55
|
-
* Optional metadata providing hints about the tool's behavior.
|
|
56
|
-
*/
|
|
57
|
-
annotations?: ToolAnnotations;
|
|
58
|
-
/**
|
|
59
|
-
* A clear, concise description of what the tool does.
|
|
60
|
-
* This is sent to the LLM to help it decide when to use the tool.
|
|
61
|
-
*/
|
|
62
|
-
description: string;
|
|
63
|
-
/**
|
|
64
|
-
* Task execution configuration.
|
|
65
|
-
*
|
|
66
|
-
* - `taskSupport: 'required'` - Tool MUST be invoked as a task
|
|
67
|
-
* - `taskSupport: 'optional'` - Tool can be invoked normally or as a task
|
|
68
|
-
*
|
|
69
|
-
* Note: `taskSupport: 'forbidden'` is not valid for task tools;
|
|
70
|
-
* use a regular ToolDefinition instead.
|
|
71
|
-
*/
|
|
72
|
-
execution: TaskToolExecution;
|
|
73
|
-
/** Zod schema for input validation. All fields need `.describe()`. */
|
|
74
|
-
input: TInputSchema;
|
|
75
|
-
/** Programmatic unique name (snake_case). */
|
|
76
|
-
name: string;
|
|
77
|
-
/** Zod schema for output validation. */
|
|
78
|
-
output?: TOutputSchema;
|
|
79
|
-
/**
|
|
80
|
-
* The task handlers implementing the task lifecycle.
|
|
81
|
-
*
|
|
82
|
-
* These handlers are called by the SDK at different points:
|
|
83
|
-
* - `createTask`: When the tool is first invoked (tools/call with task param)
|
|
84
|
-
* - `getTask`: When polling for status (tasks/get)
|
|
85
|
-
* - `getTaskResult`: When retrieving results (tasks/result)
|
|
86
|
-
*/
|
|
87
|
-
taskHandlers: ToolTaskHandler<TInputSchema>;
|
|
88
|
-
/**
|
|
89
|
-
* An optional, human-readable title for the tool.
|
|
90
|
-
* If not provided, derived from `name` or `annotations.title`.
|
|
91
|
-
*/
|
|
92
|
-
title?: string;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Type guard to check if a tool definition is a task tool.
|
|
96
|
-
*
|
|
97
|
-
* @param def - The tool definition to check
|
|
98
|
-
* @returns True if the definition has taskHandlers (is a TaskToolDefinition)
|
|
99
|
-
*/
|
|
100
|
-
export declare function isTaskToolDefinition(def: unknown): def is TaskToolDefinition<ZodObject<ZodRawShape>, ZodObject<ZodRawShape>>;
|
|
101
|
-
//# sourceMappingURL=taskToolDefinition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"taskToolDefinition.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tasks/utils/taskToolDefinition.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,WAAW,kBAAkB,CACjC,YAAY,SAAS,SAAS,CAAC,WAAW,CAAC,EAC3C,aAAa,SAAS,SAAS,CAAC,WAAW,CAAC;IAE5C,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAE9B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;;OAQG;IACH,SAAS,EAAE,iBAAiB,CAAC;IAE7B,sEAAsE;IACtE,KAAK,EAAE,YAAY,CAAC;IAEpB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IAEb,wCAAwC;IACxC,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB;;;;;;;OAOG;IACH,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAE5C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAQ3E"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type guard to check if a tool definition is a task tool.
|
|
3
|
-
*
|
|
4
|
-
* @param def - The tool definition to check
|
|
5
|
-
* @returns True if the definition has taskHandlers (is a TaskToolDefinition)
|
|
6
|
-
*/
|
|
7
|
-
export function isTaskToolDefinition(def) {
|
|
8
|
-
return (def !== null &&
|
|
9
|
-
typeof def === 'object' &&
|
|
10
|
-
'taskHandlers' in def &&
|
|
11
|
-
def.taskHandlers !== null &&
|
|
12
|
-
typeof def.taskHandlers === 'object');
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=taskToolDefinition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"taskToolDefinition.js","sourceRoot":"","sources":["../../../../src/mcp-server/tasks/utils/taskToolDefinition.ts"],"names":[],"mappings":"AA0GA;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAY;IAEZ,OAAO,CACL,GAAG,KAAK,IAAI;QACZ,OAAO,GAAG,KAAK,QAAQ;QACvB,cAAc,IAAI,GAAG;QACrB,GAAG,CAAC,YAAY,KAAK,IAAI;QACzB,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,CACrC,CAAC;AACJ,CAAC"}
|