Back to Showcase

@corespeed/zypher

Latest Commit
e3d4fde706ddc14cc50e7ea2c483fc1e8f68a15d
99%
Latest Score
8 total runs
71
Total Mutations
30
Killed
40
Type Errors
0
Survived
0
Errors
Tested with Mutasaurus: jsr:@mutasaurus/mutasaurus@0.1.4

Detailed Mutation Report

Source Files (50)
/bin
/scripts
/src
/src/llm
/src/loopInterceptors
/src/loopInterceptors/errorDetection
/src/mcp
/src/storage
/src/tools
/src/utils

Select a file to view mutations

Click a mutation to view details

Mutation Run History

bef7b1emain99%
refactor: improve McpServerManager API and encapsulation (#88) * refactor: remove redundant enabled field and fix tool precedence in McpServerManager - Remove `enabled` from McpServerState, use `client.desiredEnabled` as single source of truth - Remove unnecessary MCP tool conflict check (MCP tools are prefixed with server ID) - Fix tool precedence: built-in tools now take priority over MCP tools * refactor: use getters for McpServerManager API and improve encapsulation - Convert `listServers()` → `get servers` and `getAllTools()` → `get tools` for cleaner API - Add `Readonly` types to `servers` getter to prevent state mutation * refactor: use deep cloning for defensive copying in McpServerManager Use structuredClone() to prevent external mutations of nested fields in server configuration and source metadata. * doc: clarify comment on client desired enabled state in McpServerManager * chore: bump version to 0.5.0 * doc: add comment to clarify deep copying in servers getter of McpServerManager
by Hao SuNov 17, 11:51 PM
Completed
Mutations: 71
Killed: 30
Type Errors: 40
Survived: 0
Errors: 0
Timeouts: 1
Runtime: 3m 25s
version: jsr:@mutasaurus/mutasaurus@0.1.4
3aa00e8main99%
feat: add observable stream for client state changes in McpClient (#86) * feat: add observable stream for client state changes in McpClient * refactor: simplify JSDoc for status$ observable in McpClient to enhance clarity
by SpinsirrNov 12, 10:05 PM
Completed
Mutations: 71
Killed: 30
Type Errors: 40
Survived: 0
Errors: 0
Timeouts: 1
Runtime: 2m 50s
version: jsr:@mutasaurus/mutasaurus@0.1.4
caf28e0main99%
feat: re-introduce MCP Store support (#80) * chore: update dependencies in deno.lock to latest versions, including @openai/openai@4.98.0 and zod@3.24.4 * feat: add fetchRemoteServerConfig method to McpServerManager for retrieving server configuration from a remote endpoint * chore: update deno.lock * feat: add MCP API base URL retrieval and refactor server configuration registration method in McpServerManager * chore: update deno.lock to include @std/assert@1.0.13 and @std/internal@1.0.7 * feat: add endpoint to register MCP server from registry and update McpServerIdSchema description * fix: update MCP server registration endpoint to use consistent URL structure * fix: rename MCP API base URL variable for clarity * fix: update MCP server registration URL to include '/config' for accurate configuration retrieval * chore: update .env.example to include MCP_SERVER_REGISTRY_URL for server configuration * refactor: change MCP server routes for consistency * fix: update server registration logic to handle response structure and default name * fix: update server registration logic to handle optional name and parse configuration correctly * chore: update deno.lock to align dependency versions and ensure compatibility * feat: implement OAuth authentication for MCP clients and enhance connection handling * refactor: improve storage directory handling and token saving logic in McpOAuthProvider * refactor: improve OAuth authentication flow with retry logic and better error handling * feat: implement OAuth flows with PKCE and dynamic client registration * refactor: enhance MCP client connection logic with improved error handling and authentication verification * refactor: streamline MCP client creation and enhance OAuth provider initialization logic * feat: add method to clear all stored OAuth authentication data for all servers * refactor: clean up McpServerManager by removing unnecessary console logs and improving clarity in server registration and OAuth data clearing logic * refactor: enhance McpClient connection logic with OAuth in-progress handling and improve directory structure for OAuth credentials * refactor: update oauthBaseDir retrieval in McpServerManager to use default server storage path for improved clarity * feat: add openid-client dependency and implement McpOAuthProviderV2 for enhanced OAuth 2.0 support * refactor: consolidate McpOAuthProvider implementation by removing McpOAuthProviderV2 and updating utility functions for PKCE and OAuth handling * refactor: replace Deno.mkdir with ensureDir for consistent directory creation across McpOAuthProvider, McpServerManager, EditFileTool, and data utility functions * chore: update deno.lock to reflect dependency version changes and clean up unused entries * refactor: rename state variable to currentState in McpOAuthProvider for clarity and internal use indication * chore: update deno.lock to include new dependencies and normalize version specifications for consistency * chore: add @panva/openid-client dependency and update deno.lock for new version specifications * chore: update deno.lock to normalize version specifications and import @panva/openid-client correctly in McpOAuthProvider * chore: update import statement for @panva/openid-client in McpOAuthProvider for consistency * chore: fix deps * refactor: remove outdated examples and comments from MCP utility functions for clarity and maintainability * refactor: simplify assignment of AbortController in createAgentRouter for improved readability * refactor: update McpClient and McpOAuthProvider to use private class fields for better encapsulation and consistency in naming conventions * feat: implement OAuth authentication for MCP servers with new RemoteOAuthProvider and update CLI for OAuth integration * feat: enhance OAuth integration with automatic server registration and improved error handling in RemoteOAuthProvider * refactor: streamline McpClient by removing authentication retry logic and simplifying connection process * feat: enhance OAuth provider functionality with server-specific callback handling and improved error management * refactor: remove legacy OAuth callback handling and streamline server registration process in createOAuthRouter * refactor: enhance OAuth provider integration by modularizing server URL retrieval and improving callback processing in createOAuthRouter * refactor: remove OAuth routes and related logic from API server to streamline codebase and improve maintainability * refactor: enhance error handling in API server by integrating McpServerError management and improving port parsing logic * refactor: remove McpServerError handling from errorHandler in API server to simplify error response logic * refactor: update OAuth callback handling in API server to use GET request with query parameters, improve error handling, and enhance success response formatting * refactor: improve OAuth response generation and error handling in MCP server routes, ensuring clearer error propagation and handling for registry-based registrations * refactor: improve OAuth response structure and error handling in MCP server routes, enhancing clarity and consistency in error messages and instructions for OAuth authentication * refactor: streamline OAuth response handling in MCP server routes by removing redundant error handling and simplifying success response format, enhancing overall clarity and maintainability * refactor: update type imports in various files for improved clarity and consistency, and remove obsolete software version from OAuth provider configuration * refactor: update type imports for improved clarity and consistency across multiple files, enhancing code maintainability * feat: add OAuth authentication endpoints and response schemas to API specification, enhancing support for OAuth flows in MCP server registration and management * refactor: enhance error handling and server registration logic in MCP client and server manager, improving clarity in OAuth error logging and utilizing friendly names for server registration * refactor: improve code readability by standardizing string formatting and enhancing error message clarity in MCP client and server manager * refactor: enhance MCP client and server manager by standardizing server ID usage, improving error messages, and clarifying registration logic with friendly names * chore: remove deprecated Docker OAuth example files, including docker-compose.yml, env.example, and README.md, to streamline project structure and eliminate outdated configurations * chore: remove outdated OAuth documentation files to streamline project resources and eliminate redundancy in container authentication guidance * refactor: change private to # * refactor: differentiate id and serverName for the mcp server to better handle registration from mcp-store * feat: add timeout for oauth * docs: add Docker OAuth configuration section to README and enhance RemoteOAuthProvider for Docker compatibility * feature: auto-detection of host and protocol from requests * feat: implement automatic detection and registration for open MCP servers without authentication * chore: remove unused MCP utility functions to clean up codebase and improve maintainability * chore: update test command in deno.json to include memory leak tracing for improved test reliability * refactor: update MCP server deregistration to use server name instead of ID for improved clarity and maintainability * fix: enhance OAuth error handling * chore: format code * fix: improve OAuth error detection and handling in McpServerManager * feat: enhance OAuth provider configuration to support dynamic client names and callback URLs * fix: update OAuth callback URL handling to include serverId as a query parameter for improved client identification * fix: improve logging for clientName and callbackUrl in MCP router for better debugging * fix: add logging for callback URL in BaseMcpOAuthProvider to aid in debugging * fix: add detailed logging for OAuth response generation to enhance debugging capabilities * fix: update error response status code in MCP router to 500 * fix: include error messages in the oauth message return * refactor: mcp type refactor * feat: enhance cursor configuration with CLI and remote server support, add validation tests * refactor: clean up import statements and improve code formatting in McpServerManager and cursor modules * refactor: rename LocalServer to ZypherMcpServer and update related types and functions for consistency; add utility function to extract configuration from ZypherMcpServer * refactor: streamline McpClient and McpServerManager by removing unused ConnectionMode enum, simplifying client configuration, and introducing a new transport utility for connection mode determination * refactor: update McpServerManager to utilize ZypherMcpServer type, streamline server registration and configuration handling, and enhance logging for better clarity * refactor: update #createMcpClient method to be asynchronous, adjust server data handling in McpServerManager, and ensure proper parsing with ZypherMcpServerSchema for improved type safety and performance * refactor: migrate oauth flow from McpServerManager to McpClient * refactor: update McpClient to use ZypherMcpServer * refactor: add #mcpClientMap * refactor: modularize tool discovery and management in McpClient and McpServerManager, enhancing code organization and maintainability * refactor: add streamable http client support * refactor: enhance McpClient and McpServerManager to support remote server configurations, streamline connection handling, and improve type safety with updated ZypherMcpServer structure * refactor: enhance McpClient connection handling by introducing a new connection mode and improving error management with custom error types * refactor: handle mcp connection mode * refactor: refactor server register flow * refactor: improve McpClient argument handling * refactor: update argument handling in extractConfigFromZypherMcpServer and adjust transportType in tests * refactor: convert properties to private class fields in NodeOAuthClientProvider for improved encapsulation * refactor: rename NodeOAuthClientProvider * refactor: enhance OAuth handling in McpClient and McpServerManager by integrating McpOAuthClientProvider for improved authentication flow * refactor: streamline OAuth integration across Mcp components * refactor: update connection mode handling * refactor: remove RemoteOAuthProvider from API and CLI, streamline OAuth handling in Mcp components * refactor: enhance OAuth flow in McpOAuthClientProvider with state management and callback server integration * refactor: update MCP server registration to use dynamic callback port and host configuration * refactor: enhance McpClient and McpServerManager with command parsing and improved server config fetching * refactor: update McpClient and McpServerManager to include isFromMcpStore flag for improved argument handling * refactor: simplify argument construction in McpClient for improved readability * refactor: add state management to the mcp client * refactor: integrate redirect capture for OAuth flow in MCP server registration * refactor: extract redirect capture utility for cleaner OAuth handling in MCP * refactor: refactor error handling * refactor: simplify McpServerManager and McpClient by removing OAuth provider factory and enhancing error handling * feat: enhance error handling in API server by integrating McpError class for improved status code responses * refactor: streamline MCP server registration process and enhance error handling in API server * refactor: remove lockfile management functions from auth config and enhance McpClient with tool management tests * refactor: enhance McpClient status management and improve connection handling * refactor: improve authentication error handling in McpClient and enhance connection status reporting * chore: update mcp sdk version * chore: update deno.lock with new dependency versions and integrity checks * chore: update rolldown dependency to version 1.0.0-beta.24 and remove outdated references * chore: downgrade rolldown dependency to version 1.0.0-beta.9 * chore: update deno.lock with new rolldown * fix: dependency problem * fix: correct import path for StreamableHTTPClientTransport in McpClient * refactor: enhance McpClient connection status management by adding 'connecting' state and updating error handling * refactor: extend McpClient status management by adding 'disabled' state and implementing toggleEnabled method * refactor: add optional status field * feat: add index file to export MCP types * feat: implement OAuth callback handling in MCP server and enhance API specifications * fix: update default callback path for MCP OAuth client to align with new routing structure * feat: include server ID in OAuth * test: add comprehensive integration tests for McpClient functionality * fix: update OAuth callback handling to use serverId parameter for improved clarity and error handling * fix: enhance error handling in validating MCP registry URL and response status * fix: update zod import to type-only in auth config * chore: remove obsolete authentication and configuration files to streamline codebase * feat: add MCP store client dependency and enhance server configuration handling * feat: update @corespeed/mcp-store-client to version 1.1.2 and enhance MCP server registration functionality * feat: update .env.example to include MCP Store base URL configuration * refactor: replace RegistryProvider with McpStoreClient for server discovery and update related utilities * feat: add fetch option to McpStoreClient for enhanced server communication * deploy: Comment out npm package build step in workflow Comment out the npm package build step due to node_fetch issue. * chore: update @corespeed/mcp-store-client to version 1.1.3 in deno.json and deno.lock * chore: remove .claude/settings.local.json * feat: add CLI for Zypher Agent with model provider integration and tool registration * chore: remove obsolete cursor configuration and related utilities * docs: clarify McpServerEndpoint id and displayName descriptions for better understanding * feat: add optional displayName property to McpServerEndpoint type for improved endpoint identification * refactor: consolidate MCP registry utilities into utils.ts and remove obsolete registry module * feat: implement registry configuration for MCP utilities to streamline command building * feat: add listRegistryServers method to McpServerManager for paginated server retrieval * test: add comprehensive tests for McpServerManager functionality including server registration, deregistration, and tool management * test: remove redundant test for default registry client in McpServerManager * test: remove McpServerManager test file to streamline test suite * feat: extend McpServerState interface to include server ID and source properties for enhanced server management * docs: enhance McpServerState interface documentation for server ID clarity * feat: enhance registerServer method in McpServerManager to accept optional ID and source parameters for improved server registration flexibility * feat: add listServers method to McpServerManager for retrieving all server states * fix: update McpServerManager to use API key from environment variable for registry client configuration * fix: ensure API key is set to an empty string if not provided in McpServerManager configuration * docs: remove example from registerServerFromRegistry JSDoc in McpServerManager for clarity * chore: update @corespeed/mcp-store-client dependency to version 1.7.0 and refactor McpServerManager methods for improved server registration and pagination handling * refactor: update McpServerManager to utilize ServerDetail for server registration and adjust test cases for consistent server ID formatting * refactor: rename McpStoreClient to McpStoreSDK in McpServerManager for consistency with updated dependency * chores: update src/mcp/McpServerManager.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * refactor: rename server ID to registryId in McpServerState and update related references in McpServerManager for clarity * chore: update McpServerManager to use new MCP Store base URL and set API key to an empty string * refactor: add convertToRecord utility function to streamline header and environment variable processing in convertServerDetailToEndpoint * refactor: enhance buildArgs functions to accept runtime and package arguments for improved command flexibility * refactor: update command arguments in RegistryProvider tests for improved consistency and clarity * refactor: extract argument parsing logic into helper function in utils.ts * refactor: remove UUID support from registerServerFromRegistry, accept only package identifiers * refactor: introduce McpServerSource discriminated union type for server metadata * refactor: replace ternary operator with nullish coalescing operator * refactor: rename unit test to convertServerDetailToEndpoint.test.ts and remove unnecessary describe level * chore: revert deno.lock * refactor: enhance argument extraction and command building logic in utils.ts for improved handling of named and positional arguments * test: fix semantically incorrect argument samples in convertServerDetailToEndpoint tests --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Hao Su <midnightow1@outlook.com>
by SpinsirrNov 11, 07:33 PM
Completed
Mutations: 71
Killed: 30
Type Errors: 40
Survived: 0
Errors: 0
Timeouts: 1
Runtime: 2m 50s
version: jsr:@mutasaurus/mutasaurus@0.1.4
6e9fefdmain98%
refactor: throw errors in applyCheckpoint instead of returning boolean (#83) * refactor: throw errors in applyCheckpoint instead of returning boolean * fmt: format code
by Hao SuNov 10, 07:53 PM
Completed
Mutations: 62
Killed: 27
Type Errors: 34
Survived: 0
Errors: 0
Timeouts: 1
Runtime: 2m 20s
version: jsr:@mutasaurus/mutasaurus@0.1.4
15758e6main98%
fix: error detectors failing to report errors from command output (#82) * fix: error detectors failing to report errors from command output Deno.Command doesn't throw on non-zero exit codes, so error detectors were silently failing. Check result.success instead. Also migrate TypeScript detector from Node.js exec to Deno.Command for consistency. * fix: remove unnecessary nullish coalescing for command arguments in error detectors
by Hao SuNov 7, 01:51 AM
Completed
Mutations: 62
Killed: 27
Type Errors: 34
Survived: 0
Errors: 0
Timeouts: 1
Runtime: 2m 18s
version: jsr:@mutasaurus/mutasaurus@0.1.4
75d8ebdmain98%
feat: add metadata fields to ToolResultBlock (#79) * feat: add metadata fields to ToolResultBlock Add name, input, and success fields to ToolResultBlock interface and update ToolExecutionInterceptor to populate them. This provides better context for tool execution results. - Add JSDoc comments to ToolUseBlock and ToolResultBlock interfaces - Remove redundant isError check in ToolExecutionInterceptor - Use success: !result.isError consistently across all result paths * chore: bump version to 0.4.3
by Hao SuNov 4, 06:04 PM
Completed
Mutations: 62
Killed: 27
Type Errors: 34
Survived: 0
Errors: 0
Timeouts: 1
Runtime: 2m 21s
version: jsr:@mutasaurus/mutasaurus@0.1.4
35f174fmain98%
fix: redundant final message event and abort error handling (#73) * fix: remove redundant final message event emission in ZypherAgent * fix: handle task abort as normal completion instead of error Task cancellation (from user abort or timeout) is an expected control flow, not an error condition. Previously, abort errors would call taskEventSubject.error(), causing consumers to treat intentional cancellations as failures. * chore: bump version to 0.4.2
by Hao SuOct 30, 08:40 PM
Completed
Mutations: 62
Killed: 27
Type Errors: 34
Survived: 0
Errors: 0
Timeouts: 1
Runtime: 2m 25s
version: jsr:@mutasaurus/mutasaurus@0.1.4
9927ad5main98%
fix: add TaskEvents module export to mod.ts (#71) * fix: add TaskEvents module export to mod.ts * chore: bump version to 0.4.1
by Hao SuOct 22, 03:43 AM
Completed
Mutations: 62
Killed: 27
Type Errors: 34
Survived: 0
Errors: 0
Timeouts: 1
Runtime: 1m 39s
version: jsr:@mutasaurus/mutasaurus@0.1.3

Mutations are not run by their respective open source project maintainers. The mutation score does not tell the full story of a test suite, and while it may be a better proxy than traditional test coverage for quality, scores should be used as a guide, not a definitive measure.