@cyanheads/mcp-ts-core 0.1.0-beta.12
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/CLAUDE.md +583 -0
- package/LICENSE +201 -0
- package/README.md +287 -0
- package/biome.json +103 -0
- package/dist/app.d.ts +82 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +222 -0
- package/dist/app.js.map +1 -0
- package/dist/cli/init.d.ts +8 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +161 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/config/index.d.ts +349 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +464 -0
- package/dist/config/index.js.map +1 -0
- package/dist/context.d.ts +119 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +144 -0
- package/dist/context.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server/prompts/prompt-registration.d.ts +33 -0
- package/dist/mcp-server/prompts/prompt-registration.d.ts.map +1 -0
- package/dist/mcp-server/prompts/prompt-registration.js +91 -0
- package/dist/mcp-server/prompts/prompt-registration.js.map +1 -0
- package/dist/mcp-server/prompts/utils/newPromptDefinition.d.ts +49 -0
- package/dist/mcp-server/prompts/utils/newPromptDefinition.d.ts.map +1 -0
- package/dist/mcp-server/prompts/utils/newPromptDefinition.js +39 -0
- package/dist/mcp-server/prompts/utils/newPromptDefinition.js.map +1 -0
- package/dist/mcp-server/prompts/utils/promptDefinition.d.ts +37 -0
- package/dist/mcp-server/prompts/utils/promptDefinition.d.ts.map +1 -0
- package/dist/mcp-server/prompts/utils/promptDefinition.js +2 -0
- package/dist/mcp-server/prompts/utils/promptDefinition.js.map +1 -0
- package/dist/mcp-server/resources/resource-registration.d.ts +27 -0
- package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -0
- package/dist/mcp-server/resources/resource-registration.js +85 -0
- package/dist/mcp-server/resources/resource-registration.js.map +1 -0
- package/dist/mcp-server/resources/utils/newResourceDefinition.d.ts +84 -0
- package/dist/mcp-server/resources/utils/newResourceDefinition.d.ts.map +1 -0
- package/dist/mcp-server/resources/utils/newResourceDefinition.js +40 -0
- package/dist/mcp-server/resources/utils/newResourceDefinition.js.map +1 -0
- package/dist/mcp-server/resources/utils/newResourceHandlerFactory.d.ts +32 -0
- package/dist/mcp-server/resources/utils/newResourceHandlerFactory.d.ts.map +1 -0
- package/dist/mcp-server/resources/utils/newResourceHandlerFactory.js +103 -0
- package/dist/mcp-server/resources/utils/newResourceHandlerFactory.js.map +1 -0
- package/dist/mcp-server/resources/utils/resourceDefinition.d.ts +94 -0
- package/dist/mcp-server/resources/utils/resourceDefinition.d.ts.map +1 -0
- package/dist/mcp-server/resources/utils/resourceDefinition.js +2 -0
- package/dist/mcp-server/resources/utils/resourceDefinition.js.map +1 -0
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +14 -0
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -0
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +111 -0
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -0
- package/dist/mcp-server/roots/roots-registration.d.ts +22 -0
- package/dist/mcp-server/roots/roots-registration.d.ts.map +1 -0
- package/dist/mcp-server/roots/roots-registration.js +25 -0
- package/dist/mcp-server/roots/roots-registration.js.map +1 -0
- package/dist/mcp-server/server.d.ts +34 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +62 -0
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts +42 -0
- package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts.map +1 -0
- package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js +70 -0
- package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js.map +1 -0
- package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts +109 -0
- package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts.map +1 -0
- package/dist/mcp-server/tasks/core/storageBackedTaskStore.js +209 -0
- package/dist/mcp-server/tasks/core/storageBackedTaskStore.js.map +1 -0
- package/dist/mcp-server/tasks/core/taskManager.d.ts +103 -0
- package/dist/mcp-server/tasks/core/taskManager.d.ts.map +1 -0
- package/dist/mcp-server/tasks/core/taskManager.js +144 -0
- package/dist/mcp-server/tasks/core/taskManager.js.map +1 -0
- package/dist/mcp-server/tasks/core/taskTypes.d.ts +11 -0
- package/dist/mcp-server/tasks/core/taskTypes.d.ts.map +1 -0
- package/dist/mcp-server/tasks/core/taskTypes.js +13 -0
- package/dist/mcp-server/tasks/core/taskTypes.js.map +1 -0
- package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts +108 -0
- package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts.map +1 -0
- package/dist/mcp-server/tasks/utils/taskToolDefinition.js +14 -0
- package/dist/mcp-server/tasks/utils/taskToolDefinition.js.map +1 -0
- package/dist/mcp-server/tools/tool-registration.d.ts +49 -0
- package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/tool-registration.js +269 -0
- package/dist/mcp-server/tools/tool-registration.js.map +1 -0
- package/dist/mcp-server/tools/utils/newToolDefinition.d.ts +73 -0
- package/dist/mcp-server/tools/utils/newToolDefinition.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/newToolDefinition.js +45 -0
- package/dist/mcp-server/tools/utils/newToolDefinition.js.map +1 -0
- package/dist/mcp-server/tools/utils/newToolHandlerFactory.d.ts +33 -0
- package/dist/mcp-server/tools/utils/newToolHandlerFactory.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/newToolHandlerFactory.js +107 -0
- package/dist/mcp-server/tools/utils/newToolHandlerFactory.js.map +1 -0
- package/dist/mcp-server/tools/utils/toolDefinition.d.ts +118 -0
- package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/toolDefinition.js +2 -0
- package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -0
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +34 -0
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js +68 -0
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -0
- package/dist/mcp-server/transports/ITransport.d.ts +15 -0
- package/dist/mcp-server/transports/ITransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/ITransport.js +2 -0
- package/dist/mcp-server/transports/ITransport.js.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts +11 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.js +43 -0
- package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts +24 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js +69 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts +34 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js +25 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +19 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js +2 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +18 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js +64 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/checkScopes.d.ts +25 -0
- package/dist/mcp-server/transports/auth/lib/checkScopes.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/checkScopes.js +34 -0
- package/dist/mcp-server/transports/auth/lib/checkScopes.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/claimParser.d.ts +34 -0
- package/dist/mcp-server/transports/auth/lib/claimParser.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/claimParser.js +58 -0
- package/dist/mcp-server/transports/auth/lib/claimParser.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/withAuth.d.ts +25 -0
- package/dist/mcp-server/transports/auth/lib/withAuth.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/withAuth.js +30 -0
- package/dist/mcp-server/transports/auth/lib/withAuth.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +18 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js +2 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +14 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +86 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +14 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +113 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +25 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js +112 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.d.ts +47 -0
- package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.js +396 -0
- package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts +17 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.js +2 -0
- package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
- package/dist/mcp-server/transports/http/protectedResourceMetadata.d.ts +21 -0
- package/dist/mcp-server/transports/http/protectedResourceMetadata.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/protectedResourceMetadata.js +44 -0
- package/dist/mcp-server/transports/http/protectedResourceMetadata.js.map +1 -0
- package/dist/mcp-server/transports/http/sessionIdUtils.d.ts +33 -0
- package/dist/mcp-server/transports/http/sessionIdUtils.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/sessionIdUtils.js +54 -0
- package/dist/mcp-server/transports/http/sessionIdUtils.js.map +1 -0
- package/dist/mcp-server/transports/http/sessionStore.d.ts +87 -0
- package/dist/mcp-server/transports/http/sessionStore.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/sessionStore.js +209 -0
- package/dist/mcp-server/transports/http/sessionStore.js.map +1 -0
- package/dist/mcp-server/transports/manager.d.ts +22 -0
- package/dist/mcp-server/transports/manager.d.ts.map +1 -0
- package/dist/mcp-server/transports/manager.js +62 -0
- package/dist/mcp-server/transports/manager.js.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +44 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js +63 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
- package/dist/services/graph/core/GraphService.d.ts +205 -0
- package/dist/services/graph/core/GraphService.d.ts.map +1 -0
- package/dist/services/graph/core/GraphService.js +231 -0
- package/dist/services/graph/core/GraphService.js.map +1 -0
- package/dist/services/graph/core/IGraphProvider.d.ts +295 -0
- package/dist/services/graph/core/IGraphProvider.d.ts.map +1 -0
- package/dist/services/graph/core/IGraphProvider.js +8 -0
- package/dist/services/graph/core/IGraphProvider.js.map +1 -0
- package/dist/services/graph/types.d.ts +107 -0
- package/dist/services/graph/types.d.ts.map +1 -0
- package/dist/services/graph/types.js +8 -0
- package/dist/services/graph/types.js.map +1 -0
- package/dist/services/llm/core/ILlmProvider.d.ts +86 -0
- package/dist/services/llm/core/ILlmProvider.d.ts.map +1 -0
- package/dist/services/llm/core/ILlmProvider.js +2 -0
- package/dist/services/llm/core/ILlmProvider.js.map +1 -0
- package/dist/services/llm/providers/openrouter.provider.d.ts +187 -0
- package/dist/services/llm/providers/openrouter.provider.d.ts.map +1 -0
- package/dist/services/llm/providers/openrouter.provider.js +302 -0
- package/dist/services/llm/providers/openrouter.provider.js.map +1 -0
- package/dist/services/llm/types.d.ts +16 -0
- package/dist/services/llm/types.d.ts.map +1 -0
- package/dist/services/llm/types.js +9 -0
- package/dist/services/llm/types.js.map +1 -0
- package/dist/services/speech/core/ISpeechProvider.d.ts +92 -0
- package/dist/services/speech/core/ISpeechProvider.d.ts.map +1 -0
- package/dist/services/speech/core/ISpeechProvider.js +34 -0
- package/dist/services/speech/core/ISpeechProvider.js.map +1 -0
- package/dist/services/speech/core/SpeechService.d.ts +87 -0
- package/dist/services/speech/core/SpeechService.d.ts.map +1 -0
- package/dist/services/speech/core/SpeechService.js +135 -0
- package/dist/services/speech/core/SpeechService.js.map +1 -0
- package/dist/services/speech/providers/elevenlabs.provider.d.ts +77 -0
- package/dist/services/speech/providers/elevenlabs.provider.d.ts.map +1 -0
- package/dist/services/speech/providers/elevenlabs.provider.js +199 -0
- package/dist/services/speech/providers/elevenlabs.provider.js.map +1 -0
- package/dist/services/speech/providers/whisper.provider.d.ts +94 -0
- package/dist/services/speech/providers/whisper.provider.d.ts.map +1 -0
- package/dist/services/speech/providers/whisper.provider.js +240 -0
- package/dist/services/speech/providers/whisper.provider.js.map +1 -0
- package/dist/services/speech/types.d.ts +173 -0
- package/dist/services/speech/types.d.ts.map +1 -0
- package/dist/services/speech/types.js +8 -0
- package/dist/services/speech/types.js.map +1 -0
- package/dist/storage/core/IStorageProvider.d.ts +159 -0
- package/dist/storage/core/IStorageProvider.d.ts.map +1 -0
- package/dist/storage/core/IStorageProvider.js +2 -0
- package/dist/storage/core/IStorageProvider.js.map +1 -0
- package/dist/storage/core/StorageService.d.ts +22 -0
- package/dist/storage/core/StorageService.d.ts.map +1 -0
- package/dist/storage/core/StorageService.js +151 -0
- package/dist/storage/core/StorageService.js.map +1 -0
- package/dist/storage/core/storageFactory.d.ts +66 -0
- package/dist/storage/core/storageFactory.d.ts.map +1 -0
- package/dist/storage/core/storageFactory.js +122 -0
- package/dist/storage/core/storageFactory.js.map +1 -0
- package/dist/storage/core/storageValidation.d.ts +77 -0
- package/dist/storage/core/storageValidation.d.ts.map +1 -0
- package/dist/storage/core/storageValidation.js +303 -0
- package/dist/storage/core/storageValidation.js.map +1 -0
- package/dist/storage/providers/cloudflare/d1Provider.d.ts +94 -0
- package/dist/storage/providers/cloudflare/d1Provider.d.ts.map +1 -0
- package/dist/storage/providers/cloudflare/d1Provider.js +347 -0
- package/dist/storage/providers/cloudflare/d1Provider.js.map +1 -0
- package/dist/storage/providers/cloudflare/kvProvider.d.ts +21 -0
- package/dist/storage/providers/cloudflare/kvProvider.d.ts.map +1 -0
- package/dist/storage/providers/cloudflare/kvProvider.js +183 -0
- package/dist/storage/providers/cloudflare/kvProvider.js.map +1 -0
- package/dist/storage/providers/cloudflare/r2Provider.d.ts +28 -0
- package/dist/storage/providers/cloudflare/r2Provider.d.ts.map +1 -0
- package/dist/storage/providers/cloudflare/r2Provider.js +222 -0
- package/dist/storage/providers/cloudflare/r2Provider.js.map +1 -0
- package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts +20 -0
- package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts.map +1 -0
- package/dist/storage/providers/fileSystem/fileSystemProvider.js +282 -0
- package/dist/storage/providers/fileSystem/fileSystemProvider.js.map +1 -0
- package/dist/storage/providers/inMemory/inMemoryProvider.d.ts +21 -0
- package/dist/storage/providers/inMemory/inMemoryProvider.d.ts.map +1 -0
- package/dist/storage/providers/inMemory/inMemoryProvider.js +139 -0
- package/dist/storage/providers/inMemory/inMemoryProvider.js.map +1 -0
- package/dist/storage/providers/supabase/supabase.types.d.ts +49 -0
- package/dist/storage/providers/supabase/supabase.types.d.ts.map +1 -0
- package/dist/storage/providers/supabase/supabase.types.js +8 -0
- package/dist/storage/providers/supabase/supabase.types.js.map +1 -0
- package/dist/storage/providers/supabase/supabaseProvider.d.ts +24 -0
- package/dist/storage/providers/supabase/supabaseProvider.d.ts.map +1 -0
- package/dist/storage/providers/supabase/supabaseProvider.js +209 -0
- package/dist/storage/providers/supabase/supabaseProvider.js.map +1 -0
- package/dist/testing/index.d.ts +53 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +132 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/types-global/errors.d.ts +83 -0
- package/dist/types-global/errors.d.ts.map +1 -0
- package/dist/types-global/errors.js +113 -0
- package/dist/types-global/errors.js.map +1 -0
- package/dist/utils/formatting/diffFormatter.d.ts +227 -0
- package/dist/utils/formatting/diffFormatter.d.ts.map +1 -0
- package/dist/utils/formatting/diffFormatter.js +369 -0
- package/dist/utils/formatting/diffFormatter.js.map +1 -0
- package/dist/utils/formatting/index.d.ts +9 -0
- package/dist/utils/formatting/index.d.ts.map +1 -0
- package/dist/utils/formatting/index.js +9 -0
- package/dist/utils/formatting/index.js.map +1 -0
- package/dist/utils/formatting/markdownBuilder.d.ts +543 -0
- package/dist/utils/formatting/markdownBuilder.d.ts.map +1 -0
- package/dist/utils/formatting/markdownBuilder.js +674 -0
- package/dist/utils/formatting/markdownBuilder.js.map +1 -0
- package/dist/utils/formatting/tableFormatter.d.ts +261 -0
- package/dist/utils/formatting/tableFormatter.d.ts.map +1 -0
- package/dist/utils/formatting/tableFormatter.js +456 -0
- package/dist/utils/formatting/tableFormatter.js.map +1 -0
- package/dist/utils/formatting/treeFormatter.d.ts +344 -0
- package/dist/utils/formatting/treeFormatter.d.ts.map +1 -0
- package/dist/utils/formatting/treeFormatter.js +400 -0
- package/dist/utils/formatting/treeFormatter.js.map +1 -0
- package/dist/utils/internal/encoding.d.ts +42 -0
- package/dist/utils/internal/encoding.d.ts.map +1 -0
- package/dist/utils/internal/encoding.js +87 -0
- package/dist/utils/internal/encoding.js.map +1 -0
- package/dist/utils/internal/error-handler/errorHandler.d.ts +140 -0
- package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -0
- package/dist/utils/internal/error-handler/errorHandler.js +318 -0
- package/dist/utils/internal/error-handler/errorHandler.js.map +1 -0
- package/dist/utils/internal/error-handler/helpers.d.ts +98 -0
- package/dist/utils/internal/error-handler/helpers.d.ts.map +1 -0
- package/dist/utils/internal/error-handler/helpers.js +214 -0
- package/dist/utils/internal/error-handler/helpers.js.map +1 -0
- package/dist/utils/internal/error-handler/mappings.d.ts +85 -0
- package/dist/utils/internal/error-handler/mappings.d.ts.map +1 -0
- package/dist/utils/internal/error-handler/mappings.js +234 -0
- package/dist/utils/internal/error-handler/mappings.js.map +1 -0
- package/dist/utils/internal/error-handler/types.d.ts +160 -0
- package/dist/utils/internal/error-handler/types.d.ts.map +1 -0
- package/dist/utils/internal/error-handler/types.js +6 -0
- package/dist/utils/internal/error-handler/types.js.map +1 -0
- package/dist/utils/internal/health.d.ts +60 -0
- package/dist/utils/internal/health.d.ts.map +1 -0
- package/dist/utils/internal/health.js +46 -0
- package/dist/utils/internal/health.js.map +1 -0
- package/dist/utils/internal/logger.d.ts +300 -0
- package/dist/utils/internal/logger.d.ts.map +1 -0
- package/dist/utils/internal/logger.js +573 -0
- package/dist/utils/internal/logger.js.map +1 -0
- package/dist/utils/internal/performance.d.ts +78 -0
- package/dist/utils/internal/performance.d.ts.map +1 -0
- package/dist/utils/internal/performance.js +227 -0
- package/dist/utils/internal/performance.js.map +1 -0
- package/dist/utils/internal/requestContext.d.ts +200 -0
- package/dist/utils/internal/requestContext.d.ts.map +1 -0
- package/dist/utils/internal/requestContext.js +163 -0
- package/dist/utils/internal/requestContext.js.map +1 -0
- package/dist/utils/internal/runtime.d.ts +49 -0
- package/dist/utils/internal/runtime.d.ts.map +1 -0
- package/dist/utils/internal/runtime.js +90 -0
- package/dist/utils/internal/runtime.js.map +1 -0
- package/dist/utils/internal/startupBanner.d.ts +23 -0
- package/dist/utils/internal/startupBanner.d.ts.map +1 -0
- package/dist/utils/internal/startupBanner.js +34 -0
- package/dist/utils/internal/startupBanner.js.map +1 -0
- package/dist/utils/metrics/tokenCounter.d.ts +97 -0
- package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
- package/dist/utils/metrics/tokenCounter.js +162 -0
- package/dist/utils/metrics/tokenCounter.js.map +1 -0
- package/dist/utils/network/fetchWithTimeout.d.ts +91 -0
- package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -0
- package/dist/utils/network/fetchWithTimeout.js +305 -0
- package/dist/utils/network/fetchWithTimeout.js.map +1 -0
- package/dist/utils/pagination/pagination.d.ts +157 -0
- package/dist/utils/pagination/pagination.d.ts.map +1 -0
- package/dist/utils/pagination/pagination.js +191 -0
- package/dist/utils/pagination/pagination.js.map +1 -0
- package/dist/utils/parsing/csvParser.d.ts +84 -0
- package/dist/utils/parsing/csvParser.d.ts.map +1 -0
- package/dist/utils/parsing/csvParser.js +132 -0
- package/dist/utils/parsing/csvParser.js.map +1 -0
- package/dist/utils/parsing/dateParser.d.ts +103 -0
- package/dist/utils/parsing/dateParser.d.ts.map +1 -0
- package/dist/utils/parsing/dateParser.js +142 -0
- package/dist/utils/parsing/dateParser.js.map +1 -0
- package/dist/utils/parsing/frontmatterParser.d.ts +91 -0
- package/dist/utils/parsing/frontmatterParser.d.ts.map +1 -0
- package/dist/utils/parsing/frontmatterParser.js +163 -0
- package/dist/utils/parsing/frontmatterParser.js.map +1 -0
- package/dist/utils/parsing/index.d.ts +15 -0
- package/dist/utils/parsing/index.d.ts.map +1 -0
- package/dist/utils/parsing/index.js +15 -0
- package/dist/utils/parsing/index.js.map +1 -0
- package/dist/utils/parsing/jsonParser.d.ts +115 -0
- package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
- package/dist/utils/parsing/jsonParser.js +177 -0
- package/dist/utils/parsing/jsonParser.js.map +1 -0
- package/dist/utils/parsing/pdfParser.d.ts +563 -0
- package/dist/utils/parsing/pdfParser.d.ts.map +1 -0
- package/dist/utils/parsing/pdfParser.js +775 -0
- package/dist/utils/parsing/pdfParser.js.map +1 -0
- package/dist/utils/parsing/thinkBlock.d.ts +31 -0
- package/dist/utils/parsing/thinkBlock.d.ts.map +1 -0
- package/dist/utils/parsing/thinkBlock.js +31 -0
- package/dist/utils/parsing/thinkBlock.js.map +1 -0
- package/dist/utils/parsing/xmlParser.d.ts +69 -0
- package/dist/utils/parsing/xmlParser.d.ts.map +1 -0
- package/dist/utils/parsing/xmlParser.js +140 -0
- package/dist/utils/parsing/xmlParser.js.map +1 -0
- package/dist/utils/parsing/yamlParser.d.ts +64 -0
- package/dist/utils/parsing/yamlParser.d.ts.map +1 -0
- package/dist/utils/parsing/yamlParser.js +129 -0
- package/dist/utils/parsing/yamlParser.js.map +1 -0
- package/dist/utils/scheduling/scheduler.d.ts +174 -0
- package/dist/utils/scheduling/scheduler.d.ts.map +1 -0
- package/dist/utils/scheduling/scheduler.js +248 -0
- package/dist/utils/scheduling/scheduler.js.map +1 -0
- package/dist/utils/security/idGenerator.d.ts +189 -0
- package/dist/utils/security/idGenerator.d.ts.map +1 -0
- package/dist/utils/security/idGenerator.js +301 -0
- package/dist/utils/security/idGenerator.js.map +1 -0
- package/dist/utils/security/index.d.ts +8 -0
- package/dist/utils/security/index.d.ts.map +1 -0
- package/dist/utils/security/index.js +8 -0
- package/dist/utils/security/index.js.map +1 -0
- package/dist/utils/security/rateLimiter.d.ts +171 -0
- package/dist/utils/security/rateLimiter.d.ts.map +1 -0
- package/dist/utils/security/rateLimiter.js +294 -0
- package/dist/utils/security/rateLimiter.js.map +1 -0
- package/dist/utils/security/sanitization.d.ts +430 -0
- package/dist/utils/security/sanitization.d.ts.map +1 -0
- package/dist/utils/security/sanitization.js +759 -0
- package/dist/utils/security/sanitization.js.map +1 -0
- package/dist/utils/telemetry/index.d.ts +12 -0
- package/dist/utils/telemetry/index.d.ts.map +1 -0
- package/dist/utils/telemetry/index.js +12 -0
- package/dist/utils/telemetry/index.js.map +1 -0
- package/dist/utils/telemetry/instrumentation.d.ts +62 -0
- package/dist/utils/telemetry/instrumentation.d.ts.map +1 -0
- package/dist/utils/telemetry/instrumentation.js +223 -0
- package/dist/utils/telemetry/instrumentation.js.map +1 -0
- package/dist/utils/telemetry/metrics.d.ts +170 -0
- package/dist/utils/telemetry/metrics.d.ts.map +1 -0
- package/dist/utils/telemetry/metrics.js +205 -0
- package/dist/utils/telemetry/metrics.js.map +1 -0
- package/dist/utils/telemetry/semconv.d.ts +147 -0
- package/dist/utils/telemetry/semconv.d.ts.map +1 -0
- package/dist/utils/telemetry/semconv.js +159 -0
- package/dist/utils/telemetry/semconv.js.map +1 -0
- package/dist/utils/telemetry/trace.d.ts +141 -0
- package/dist/utils/telemetry/trace.d.ts.map +1 -0
- package/dist/utils/telemetry/trace.js +193 -0
- package/dist/utils/telemetry/trace.js.map +1 -0
- package/dist/utils/types/guards.d.ts +209 -0
- package/dist/utils/types/guards.d.ts.map +1 -0
- package/dist/utils/types/guards.js +229 -0
- package/dist/utils/types/guards.js.map +1 -0
- package/dist/utils/types/index.d.ts +6 -0
- package/dist/utils/types/index.d.ts.map +1 -0
- package/dist/utils/types/index.js +6 -0
- package/dist/utils/types/index.js.map +1 -0
- package/dist/worker.d.ts +59 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +216 -0
- package/dist/worker.js.map +1 -0
- package/package.json +377 -0
- package/skills/README.md +38 -0
- package/skills/add-export/SKILL.md +49 -0
- package/skills/add-prompt/SKILL.md +97 -0
- package/skills/add-provider/SKILL.md +53 -0
- package/skills/add-resource/SKILL.md +107 -0
- package/skills/add-service/SKILL.md +113 -0
- package/skills/add-tool/SKILL.md +110 -0
- package/skills/api-auth/SKILL.md +173 -0
- package/skills/api-config/SKILL.md +68 -0
- package/skills/api-context/SKILL.md +321 -0
- package/skills/api-errors/SKILL.md +146 -0
- package/skills/api-services/SKILL.md +24 -0
- package/skills/api-services/references/graph.md +124 -0
- package/skills/api-services/references/llm.md +46 -0
- package/skills/api-services/references/speech.md +72 -0
- package/skills/api-testing/SKILL.md +263 -0
- package/skills/api-utils/SKILL.md +106 -0
- package/skills/api-utils/references/formatting.md +237 -0
- package/skills/api-utils/references/parsing.md +263 -0
- package/skills/api-utils/references/security.md +226 -0
- package/skills/api-workers/SKILL.md +165 -0
- package/skills/devcheck/SKILL.md +31 -0
- package/skills/maintenance/SKILL.md +52 -0
- package/skills/migrate-mcp-ts-template/SKILL.md +131 -0
- package/skills/release/SKILL.md +67 -0
- package/skills/setup/SKILL.md +89 -0
- package/skills/walkthrough-init/SKILL.md +50 -0
- package/templates/.env.example +17 -0
- package/templates/AGENTS.md +113 -0
- package/templates/CLAUDE.md +113 -0
- package/templates/_tsconfig.json +33 -0
- package/templates/biome.template.json +43 -0
- package/templates/package.json +26 -0
- package/templates/src/index.ts +16 -0
- package/templates/src/mcp-server/prompts/definitions/echo.prompt.ts +19 -0
- package/templates/src/mcp-server/resources/definitions/echo.resource.ts +30 -0
- package/templates/src/mcp-server/tools/definitions/echo.tool.ts +24 -0
- package/templates/vitest.config.ts +12 -0
- package/tsconfig.base.json +44 -0
- package/vitest.config.base.ts +38 -0
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Diff formatter utility for comparing text and generating unified diffs.
|
|
3
|
+
* Wraps the `diff` npm package (jsdiff) to produce git-style unified diff output with
|
|
4
|
+
* configurable context lines and multiple output formats. All public methods are async
|
|
5
|
+
* because the underlying `diff` library is loaded lazily on first use to avoid paying
|
|
6
|
+
* the import cost when the formatter is not needed.
|
|
7
|
+
* @module src/utils/formatting/diffFormatter
|
|
8
|
+
*/
|
|
9
|
+
import { JsonRpcErrorCode, McpError } from '../../types-global/errors.js';
|
|
10
|
+
import { logger } from '../../utils/internal/logger.js';
|
|
11
|
+
let _diff;
|
|
12
|
+
async function getDiff() {
|
|
13
|
+
_diff ??= await import('diff').catch(() => {
|
|
14
|
+
throw new McpError(JsonRpcErrorCode.ConfigurationError, 'Install "diff" to use diff formatting: bun add diff');
|
|
15
|
+
});
|
|
16
|
+
return _diff;
|
|
17
|
+
}
|
|
18
|
+
import { requestContextService } from '../../utils/internal/requestContext.js';
|
|
19
|
+
/**
|
|
20
|
+
* Utility class for generating diffs between text content.
|
|
21
|
+
*
|
|
22
|
+
* Wraps the `diff` npm package to produce git-style unified diff output. The `diff`
|
|
23
|
+
* dependency is loaded lazily — all methods are `async` and will throw a
|
|
24
|
+
* `ConfigurationError` if the package is not installed (`bun add diff`).
|
|
25
|
+
*
|
|
26
|
+
* Use the exported {@link diffFormatter} singleton rather than constructing instances
|
|
27
|
+
* directly.
|
|
28
|
+
*/
|
|
29
|
+
export class DiffFormatter {
|
|
30
|
+
/** Default formatting options applied when options are omitted or partially provided. */
|
|
31
|
+
defaultOptions = {
|
|
32
|
+
context: 3,
|
|
33
|
+
format: 'unified',
|
|
34
|
+
showLineNumbers: true,
|
|
35
|
+
includeHeaders: true,
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Generate a unified diff between two text strings.
|
|
39
|
+
*
|
|
40
|
+
* Compares content line-by-line using `diff.createPatch` and produces output
|
|
41
|
+
* equivalent to `git diff`. This method is async because the `diff` package is
|
|
42
|
+
* loaded lazily on first call.
|
|
43
|
+
*
|
|
44
|
+
* @param oldText - Original text content.
|
|
45
|
+
* @param newText - Modified text content.
|
|
46
|
+
* @param options - Diff formatting options. Defaults: `format: 'unified'`, `context: 3`,
|
|
47
|
+
* `showLineNumbers: true`, `includeHeaders: true`.
|
|
48
|
+
* @param context - Optional request context for correlated logging. A new context is
|
|
49
|
+
* created automatically when omitted.
|
|
50
|
+
* @returns Formatted diff string. Returns an empty string (or a no-change patch) when
|
|
51
|
+
* `oldText` and `newText` are identical.
|
|
52
|
+
* @throws {McpError} With `ConfigurationError` if the `diff` package is not installed.
|
|
53
|
+
* @throws {McpError} With `ValidationError` if either argument is not a string.
|
|
54
|
+
* @throws {McpError} With `InternalError` if diff generation fails unexpectedly.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const oldCode = 'function hello() {\n console.log("Hi");\n}';
|
|
59
|
+
* const newCode = 'function hello(name) {\n console.log(`Hello, ${name}!`);\n}';
|
|
60
|
+
* const result = await diffFormatter.diff(oldCode, newCode, { context: 2 });
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
async diff(oldText, newText, options, context) {
|
|
64
|
+
const logContext = context ||
|
|
65
|
+
requestContextService.createRequestContext({
|
|
66
|
+
operation: 'DiffFormatter.diff',
|
|
67
|
+
});
|
|
68
|
+
// Validate inputs
|
|
69
|
+
if (typeof oldText !== 'string' || typeof newText !== 'string') {
|
|
70
|
+
throw new McpError(JsonRpcErrorCode.ValidationError, 'Both oldText and newText must be strings', logContext);
|
|
71
|
+
}
|
|
72
|
+
const opts = {
|
|
73
|
+
...this.defaultOptions,
|
|
74
|
+
...options,
|
|
75
|
+
};
|
|
76
|
+
try {
|
|
77
|
+
logger.debug('Generating diff', {
|
|
78
|
+
...logContext,
|
|
79
|
+
oldLines: oldText.split('\n').length,
|
|
80
|
+
newLines: newText.split('\n').length,
|
|
81
|
+
format: opts.format,
|
|
82
|
+
});
|
|
83
|
+
// Generate diff using jsdiff library
|
|
84
|
+
const Diff = await getDiff();
|
|
85
|
+
const patches = Diff.createPatch(opts.oldPath || 'a/file', oldText, newText, opts.oldPath || 'old', opts.newPath || 'new', { context: opts.context });
|
|
86
|
+
// Format based on selected format
|
|
87
|
+
const result = this.formatDiff(patches, opts);
|
|
88
|
+
logger.debug('Diff generated successfully', {
|
|
89
|
+
...logContext,
|
|
90
|
+
resultLength: result.length,
|
|
91
|
+
});
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
96
|
+
const stack = error instanceof Error ? error.stack : undefined;
|
|
97
|
+
logger.error('Failed to generate diff', {
|
|
98
|
+
...logContext,
|
|
99
|
+
error: message,
|
|
100
|
+
});
|
|
101
|
+
throw new McpError(JsonRpcErrorCode.InternalError, `Failed to generate diff: ${message}`, {
|
|
102
|
+
...logContext,
|
|
103
|
+
originalError: stack,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Generate a diff between two arrays of lines.
|
|
109
|
+
*
|
|
110
|
+
* A convenience wrapper around {@link diff} for callers that have already split
|
|
111
|
+
* text into line arrays. Lines are joined with `\n` before diffing. This method
|
|
112
|
+
* is async because it delegates to {@link diff}, which loads the `diff` package lazily.
|
|
113
|
+
*
|
|
114
|
+
* @param oldLines - Original lines (each element is one line, without a trailing newline).
|
|
115
|
+
* @param newLines - Modified lines.
|
|
116
|
+
* @param options - Diff formatting options. Passed through to {@link diff}.
|
|
117
|
+
* @param context - Optional request context for correlated logging.
|
|
118
|
+
* @returns Formatted diff string.
|
|
119
|
+
* @throws {McpError} With `ValidationError` if either argument is not an array.
|
|
120
|
+
* @throws {McpError} Propagates any error thrown by {@link diff}.
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* const oldLines = ['line 1', 'line 2', 'line 3'];
|
|
125
|
+
* const newLines = ['line 1', 'modified line 2', 'line 3', 'line 4'];
|
|
126
|
+
* const result = await diffFormatter.diffLines(oldLines, newLines);
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
async diffLines(oldLines, newLines, options, context) {
|
|
130
|
+
const logContext = context ||
|
|
131
|
+
requestContextService.createRequestContext({
|
|
132
|
+
operation: 'DiffFormatter.diffLines',
|
|
133
|
+
});
|
|
134
|
+
// Validate inputs
|
|
135
|
+
if (!Array.isArray(oldLines) || !Array.isArray(newLines)) {
|
|
136
|
+
throw new McpError(JsonRpcErrorCode.ValidationError, 'Both oldLines and newLines must be arrays', logContext);
|
|
137
|
+
}
|
|
138
|
+
// Join arrays back into text and use main diff method
|
|
139
|
+
const oldText = oldLines.join('\n');
|
|
140
|
+
const newText = newLines.join('\n');
|
|
141
|
+
return await this.diff(oldText, newText, options, logContext);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Generate a word-level diff between two text strings.
|
|
145
|
+
*
|
|
146
|
+
* Uses `diff.diffWords` to highlight changes at the word boundary rather than
|
|
147
|
+
* at the line level. Output uses inline visual markers: added words are wrapped
|
|
148
|
+
* as `[+word+]` and removed words as `[-word-]`. Unchanged words are emitted
|
|
149
|
+
* as-is. This is particularly useful for diffing prose or documentation.
|
|
150
|
+
*
|
|
151
|
+
* This method is async because the `diff` package is loaded lazily on first call.
|
|
152
|
+
*
|
|
153
|
+
* @param oldText - Original text content.
|
|
154
|
+
* @param newText - Modified text content.
|
|
155
|
+
* @param context - Optional request context for correlated logging.
|
|
156
|
+
* @returns Inline word-diff string with `[+added+]` and `[-removed-]` markers.
|
|
157
|
+
* @throws {McpError} With `ConfigurationError` if the `diff` package is not installed.
|
|
158
|
+
* @throws {McpError} With `ValidationError` if either argument is not a string.
|
|
159
|
+
* @throws {McpError} With `InternalError` if diff generation fails unexpectedly.
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```typescript
|
|
163
|
+
* const oldText = 'The quick brown fox';
|
|
164
|
+
* const newText = 'The fast brown dog';
|
|
165
|
+
* const result = await diffFormatter.diffWords(oldText, newText);
|
|
166
|
+
* // => 'The [-quick-][+fast+] brown [-fox-][+dog+]'
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
async diffWords(oldText, newText, context) {
|
|
170
|
+
const logContext = context ||
|
|
171
|
+
requestContextService.createRequestContext({
|
|
172
|
+
operation: 'DiffFormatter.diffWords',
|
|
173
|
+
});
|
|
174
|
+
// Validate inputs
|
|
175
|
+
if (typeof oldText !== 'string' || typeof newText !== 'string') {
|
|
176
|
+
throw new McpError(JsonRpcErrorCode.ValidationError, 'Both oldText and newText must be strings', logContext);
|
|
177
|
+
}
|
|
178
|
+
try {
|
|
179
|
+
logger.debug('Generating word-level diff', logContext);
|
|
180
|
+
const DiffMod = await getDiff();
|
|
181
|
+
const changes = DiffMod.diffWords(oldText, newText);
|
|
182
|
+
// Format word diff as inline changes
|
|
183
|
+
const result = changes
|
|
184
|
+
.map((part) => {
|
|
185
|
+
if (part.added) {
|
|
186
|
+
return `[+${part.value}+]`;
|
|
187
|
+
}
|
|
188
|
+
else if (part.removed) {
|
|
189
|
+
return `[-${part.value}-]`;
|
|
190
|
+
}
|
|
191
|
+
return part.value;
|
|
192
|
+
})
|
|
193
|
+
.join('');
|
|
194
|
+
logger.debug('Word diff generated successfully', {
|
|
195
|
+
...logContext,
|
|
196
|
+
changeCount: changes.length,
|
|
197
|
+
});
|
|
198
|
+
return result;
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
202
|
+
const stack = error instanceof Error ? error.stack : undefined;
|
|
203
|
+
logger.error('Failed to generate word diff', {
|
|
204
|
+
...logContext,
|
|
205
|
+
error: message,
|
|
206
|
+
});
|
|
207
|
+
throw new McpError(JsonRpcErrorCode.InternalError, `Failed to generate word diff: ${message}`, { ...logContext, originalError: stack });
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Dispatch to the appropriate formatter based on `options.format`.
|
|
212
|
+
*
|
|
213
|
+
* @param patch - Raw patch string produced by `diff.createPatch`.
|
|
214
|
+
* @param options - Resolved formatting options (no optional fields except path names).
|
|
215
|
+
* @returns Formatted diff string.
|
|
216
|
+
*/
|
|
217
|
+
formatDiff(patch, options) {
|
|
218
|
+
switch (options.format) {
|
|
219
|
+
case 'patch':
|
|
220
|
+
// Full patch format with headers
|
|
221
|
+
return options.includeHeaders ? patch : this.stripHeaders(patch);
|
|
222
|
+
case 'unified':
|
|
223
|
+
// Standard unified diff (no file headers)
|
|
224
|
+
return this.stripHeaders(patch);
|
|
225
|
+
case 'inline':
|
|
226
|
+
// Inline diff with context
|
|
227
|
+
return this.formatInline(patch);
|
|
228
|
+
default:
|
|
229
|
+
return patch;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Strip the `Index:`, `===`, `---`, and `+++` header lines from a patch string,
|
|
234
|
+
* returning only the `@@` hunk markers and diff body lines.
|
|
235
|
+
*
|
|
236
|
+
* @param patch - Raw patch string from `diff.createPatch`.
|
|
237
|
+
* @returns Patch with file/index headers removed, starting from the first `@@` line.
|
|
238
|
+
* Returns `patch` unchanged if no `@@` line is found (no differences).
|
|
239
|
+
*/
|
|
240
|
+
stripHeaders(patch) {
|
|
241
|
+
const lines = patch.split('\n');
|
|
242
|
+
// Skip first 4 lines (---, +++, Index, ===)
|
|
243
|
+
const startIndex = lines.findIndex((line) => line.startsWith('@@'));
|
|
244
|
+
if (startIndex === -1) {
|
|
245
|
+
return patch;
|
|
246
|
+
}
|
|
247
|
+
return lines.slice(startIndex).join('\n');
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Convert a unified patch string to inline format.
|
|
251
|
+
*
|
|
252
|
+
* Strips all header lines (`Index:`, `===`, `---`, `+++`, `@@`, `\ No newline…`) and
|
|
253
|
+
* rewrites each diff line using visual markers: lines beginning with `-` become
|
|
254
|
+
* `[-content-]`, lines beginning with `+` become `[+content+]`, and context lines
|
|
255
|
+
* (space-prefixed) are emitted without the leading space.
|
|
256
|
+
*
|
|
257
|
+
* @param patch - Raw patch string from `diff.createPatch`.
|
|
258
|
+
* @returns Inline diff string with `[+..+]`/`[-..-]` markers and no header lines.
|
|
259
|
+
*/
|
|
260
|
+
formatInline(patch) {
|
|
261
|
+
const lines = patch.split('\n');
|
|
262
|
+
const result = [];
|
|
263
|
+
for (const line of lines) {
|
|
264
|
+
// Skip file headers and hunk markers
|
|
265
|
+
if (line.startsWith('Index:') ||
|
|
266
|
+
line.startsWith('===') ||
|
|
267
|
+
line.startsWith('---') ||
|
|
268
|
+
line.startsWith('+++') ||
|
|
269
|
+
line.startsWith('@@') ||
|
|
270
|
+
line.startsWith('\\ No newline')) {
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
if (line.startsWith('-')) {
|
|
274
|
+
result.push(`[-${line.substring(1)}-]`);
|
|
275
|
+
}
|
|
276
|
+
else if (line.startsWith('+')) {
|
|
277
|
+
result.push(`[+${line.substring(1)}+]`);
|
|
278
|
+
}
|
|
279
|
+
else if (line.startsWith(' ')) {
|
|
280
|
+
result.push(line.substring(1));
|
|
281
|
+
}
|
|
282
|
+
else if (line !== '') {
|
|
283
|
+
result.push(line);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return result.join('\n');
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Compute line-level statistics for the differences between two texts.
|
|
290
|
+
*
|
|
291
|
+
* Uses `diff.diffLines` to count added and deleted lines. The `changes` field is
|
|
292
|
+
* the sum of `additions + deletions`. This method is async because the `diff`
|
|
293
|
+
* package is loaded lazily on first call.
|
|
294
|
+
*
|
|
295
|
+
* @param oldText - Original text content.
|
|
296
|
+
* @param newText - Modified text content.
|
|
297
|
+
* @param context - Optional request context for correlated logging.
|
|
298
|
+
* @returns `{ additions, deletions, changes }` — all values are line counts.
|
|
299
|
+
* `additions` and `deletions` are both `0` when the texts are identical.
|
|
300
|
+
* @throws {McpError} With `ConfigurationError` if the `diff` package is not installed.
|
|
301
|
+
* @throws {McpError} With `InternalError` if analysis fails unexpectedly.
|
|
302
|
+
*
|
|
303
|
+
* @example
|
|
304
|
+
* ```typescript
|
|
305
|
+
* const stats = await diffFormatter.getStats(oldText, newText);
|
|
306
|
+
* console.log(`+${stats.additions} -${stats.deletions} (~${stats.changes} lines changed)`);
|
|
307
|
+
* ```
|
|
308
|
+
*/
|
|
309
|
+
async getStats(oldText, newText, context) {
|
|
310
|
+
const logContext = context ||
|
|
311
|
+
requestContextService.createRequestContext({
|
|
312
|
+
operation: 'DiffFormatter.getStats',
|
|
313
|
+
});
|
|
314
|
+
try {
|
|
315
|
+
const DiffMod = await getDiff();
|
|
316
|
+
const changes = DiffMod.diffLines(oldText, newText);
|
|
317
|
+
const stats = changes.reduce((acc, c) => {
|
|
318
|
+
if (c.added)
|
|
319
|
+
acc.additions += c.count || 0;
|
|
320
|
+
else if (c.removed)
|
|
321
|
+
acc.deletions += c.count || 0;
|
|
322
|
+
return acc;
|
|
323
|
+
}, { additions: 0, deletions: 0 });
|
|
324
|
+
return { ...stats, changes: stats.additions + stats.deletions };
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
328
|
+
const stack = error instanceof Error ? error.stack : undefined;
|
|
329
|
+
throw new McpError(JsonRpcErrorCode.InternalError, `Failed to get diff stats: ${message}`, {
|
|
330
|
+
...logContext,
|
|
331
|
+
originalError: stack,
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Singleton instance of {@link DiffFormatter}.
|
|
338
|
+
*
|
|
339
|
+
* All methods are async — they load the `diff` package lazily on first call.
|
|
340
|
+
* Install the peer dependency if not already present: `bun add diff`.
|
|
341
|
+
*
|
|
342
|
+
* @example
|
|
343
|
+
* ```typescript
|
|
344
|
+
* import { diffFormatter } from '../../utils/formatting/diffFormatter.js';
|
|
345
|
+
*
|
|
346
|
+
* const oldCode = `function hello() {
|
|
347
|
+
* console.log('Hi');
|
|
348
|
+
* }`;
|
|
349
|
+
*
|
|
350
|
+
* const newCode = `function hello(name: string) {
|
|
351
|
+
* console.log(\`Hello, \${name}!\`);
|
|
352
|
+
* }`;
|
|
353
|
+
*
|
|
354
|
+
* // Standard unified diff (hunk headers, no file headers)
|
|
355
|
+
* const unified = await diffFormatter.diff(oldCode, newCode);
|
|
356
|
+
*
|
|
357
|
+
* // Inline diff — additions as [+text+], deletions as [-text-]
|
|
358
|
+
* const inline = await diffFormatter.diff(oldCode, newCode, { format: 'inline' });
|
|
359
|
+
*
|
|
360
|
+
* // Line-level change counts
|
|
361
|
+
* const stats = await diffFormatter.getStats(oldCode, newCode);
|
|
362
|
+
* console.log(`Changes: +${stats.additions} -${stats.deletions}`);
|
|
363
|
+
*
|
|
364
|
+
* // Word-level diff for prose
|
|
365
|
+
* const wordDiff = await diffFormatter.diffWords('The quick brown fox', 'The fast brown dog');
|
|
366
|
+
* ```
|
|
367
|
+
*/
|
|
368
|
+
export const diffFormatter = new DiffFormatter();
|
|
369
|
+
//# sourceMappingURL=diffFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diffFormatter.js","sourceRoot":"","sources":["../../../src/utils/formatting/diffFormatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Barrel export for formatting utilities.
|
|
3
|
+
* @module utils/formatting
|
|
4
|
+
*/
|
|
5
|
+
export { type DiffFormat, DiffFormatter, type DiffFormatterOptions, diffFormatter, } from './diffFormatter.js';
|
|
6
|
+
export { MarkdownBuilder, markdown } from './markdownBuilder.js';
|
|
7
|
+
export { type Alignment, TableFormatter, type TableFormatterOptions, type TableStyle, tableFormatter, } from './tableFormatter.js';
|
|
8
|
+
export { TreeFormatter, type TreeFormatterOptions, type TreeNode, type TreeStyle, treeFormatter, } from './treeFormatter.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/formatting/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,KAAK,UAAU,EACf,aAAa,EACb,KAAK,oBAAoB,EACzB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,KAAK,SAAS,EACd,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,aAAa,GACd,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Barrel export for formatting utilities.
|
|
3
|
+
* @module utils/formatting
|
|
4
|
+
*/
|
|
5
|
+
export { DiffFormatter, diffFormatter, } from './diffFormatter.js';
|
|
6
|
+
export { MarkdownBuilder, markdown } from './markdownBuilder.js';
|
|
7
|
+
export { TableFormatter, tableFormatter, } from './tableFormatter.js';
|
|
8
|
+
export { TreeFormatter, treeFormatter, } from './treeFormatter.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/formatting/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,aAAa,EAEb,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAEL,cAAc,EAGd,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,EAIb,aAAa,GACd,MAAM,oBAAoB,CAAC"}
|