UNPKG

@debugmcp/mcp-debugger

Version:

Run-time step-through debugging for LLM agents.

1 lines 2.19 MB
��[{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\adapters\\adapter-registry-interface.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\adapters\\adapter-registry.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\adapters\\debug-adapter-interface.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\adapters\\mock\\mock-adapter-factory.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\adapters\\mock\\mock-adapter-process.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\adapters\\mock\\mock-debug-adapter.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\adapters\\python\\index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\adapters\\python\\python-adapter-factory.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\adapters\\python\\python-debug-adapter.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\cli\\error-handlers.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\cli\\setup.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\cli\\sse-command.ts","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":175,"column":11,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":175,"endColumn":14,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[5629,5632],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[5629,5632],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":205,"column":37,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":205,"endColumn":40,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[6599,6602],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[6599,6602],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\cli\\stdio-command.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\cli\\version.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\container\\dependencies.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\container\\types.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\dap-core\\handlers.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\dap-core\\index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\dap-core\\state.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\dap-core\\types.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\factories\\proxy-manager-factory.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\factories\\session-store-factory.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\implementations\\environment-impl.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\implementations\\file-system-impl.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\implementations\\index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\implementations\\network-manager-impl.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\implementations\\path-utils-impl.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\implementations\\process-launcher-impl.ts","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":26,"column":79,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":26,"endColumn":82,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[899,902],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[899,902],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":405,"column":49,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":405,"endColumn":52,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[12742,12745],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[12742,12745],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":"Required for Node.js StdioOptions IPC compatibility"}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\implementations\\process-manager-impl.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\implementations\\which-command-finder.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\interfaces\\command-finder.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\interfaces\\external-dependencies.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\interfaces\\path-utils.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\interfaces\\process-interfaces.ts","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":43,"column":11,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":43,"endColumn":14,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[1238,1241],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[1238,1241],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":"Required for Node.js StdioOptions compatibility"}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\proxy\\dap-proxy-adapter-manager.ts","messages":[{"ruleId":"@typescript-eslint/no-unused-vars","severity":2,"message":"'host' is assigned a value but never used.","line":55,"column":28,"nodeType":null,"messageId":"unusedVar","endLine":55,"endColumn":32},{"ruleId":"@typescript-eslint/no-unused-vars","severity":2,"message":"'port' is assigned a value but never used.","line":55,"column":34,"nodeType":null,"messageId":"unusedVar","endLine":55,"endColumn":38}],"suppressedMessages":[],"errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\r\n * Generic adapter process management for DAP proxy\r\n * Language-agnostic version that can spawn any debug adapter\r\n */\r\n\r\nimport { ChildProcess } from 'child_process';\r\nimport {\r\n IProcessSpawner,\r\n ILogger,\r\n IFileSystem,\r\n AdapterSpawnResult\r\n} from './dap-proxy-interfaces.js';\r\n\r\n/**\r\n * Configuration for spawning any debug adapter\r\n */\r\nexport interface GenericAdapterConfig {\r\n command: string;\r\n args: string[];\r\n host: string;\r\n port: number;\r\n logDir: string;\r\n cwd?: string;\r\n env?: NodeJS.ProcessEnv;\r\n}\r\n\r\n/**\r\n * Generic adapter manager that can spawn any debug adapter process\r\n */\r\nexport class GenericAdapterManager {\r\n constructor(\r\n private processSpawner: IProcessSpawner,\r\n private logger: ILogger,\r\n private fileSystem: IFileSystem\r\n ) {}\r\n\r\n /**\r\n * Ensure the log directory exists\r\n */\r\n async ensureLogDirectory(logDir: string): Promise<void> {\r\n try {\r\n await this.fileSystem.ensureDir(logDir);\r\n this.logger.info(`[AdapterManager] Ensured adapter log directory exists: ${logDir}`);\r\n } catch (error) {\r\n const message = error instanceof Error ? error.message : String(error);\r\n this.logger.error(`[AdapterManager] Failed to ensure adapter log directory ${logDir}:`, error);\r\n throw new Error(`Failed to create adapter log directory: ${message}`);\r\n }\r\n }\r\n\r\n /**\r\n * Spawn a generic debug adapter process\r\n */\r\n async spawn(config: GenericAdapterConfig): Promise<AdapterSpawnResult> {\r\n const { command, args, host, port, logDir, cwd, env } = config;\r\n\r\n // Ensure log directory exists\r\n await this.ensureLogDirectory(logDir);\r\n\r\n const fullCommand = `${command} ${args.join(' ')}`;\r\n this.logger.info(`[AdapterManager] Spawning adapter: ${fullCommand}`);\r\n \r\n // Determine working directory\r\n const preferredCwd = cwd || process.env.MCP_SERVER_CWD || process.cwd();\r\n \r\n // Spawn options\r\n const spawnOptions = {\r\n stdio: ['ignore', 'inherit', 'inherit', 'ipc'] as ('ignore' | 'pipe' | 'inherit' | 'ipc' | number)[],\r\n cwd: preferredCwd,\r\n env: env || process.env,\r\n detached: true\r\n };\r\n\r\n this.logger.info('[AdapterManager] Spawn configuration:', {\r\n command: command,\r\n args: args,\r\n cwd: spawnOptions.cwd,\r\n envVars: Object.keys(spawnOptions.env || {}).length\r\n });\r\n\r\n // Spawn the process\r\n const adapterProcess = this.processSpawner.spawn(command, args, spawnOptions);\r\n\r\n if (!adapterProcess || !adapterProcess.pid) {\r\n throw new Error('Failed to spawn adapter process or get PID');\r\n }\r\n\r\n // Detach the process\r\n adapterProcess.unref();\r\n this.logger.info(`[AdapterManager] Called unref() on adapter process PID: ${adapterProcess.pid}`);\r\n\r\n // Set up error handlers\r\n this.setupProcessHandlers(adapterProcess);\r\n\r\n return {\r\n process: adapterProcess,\r\n pid: adapterProcess.pid\r\n };\r\n }\r\n\r\n /**\r\n * Set up process event handlers\r\n */\r\n private setupProcessHandlers(process: ChildProcess): void {\r\n process.on('error', (err: Error) => {\r\n this.logger.error('[AdapterManager] Adapter process spawn error:', err);\r\n });\r\n\r\n process.on('exit', (code: number | null, signal: NodeJS.Signals | null) => {\r\n this.logger.info(`[AdapterManager] Adapter process exited. Code: ${code}, Signal: ${signal}`);\r\n });\r\n }\r\n\r\n /**\r\n * Gracefully shutdown an adapter process\r\n */\r\n async shutdown(process: ChildProcess | null): Promise<void> {\r\n if (!process || !process.pid) {\r\n this.logger.info('[AdapterManager] No active adapter process to terminate.');\r\n return;\r\n }\r\n\r\n this.logger.info(`[AdapterManager] Attempting to terminate adapter process PID: ${process.pid}`);\r\n\r\n try {\r\n if (!process.killed) {\r\n this.logger.info(`[AdapterManager] Sending SIGTERM to adapter process PID: ${process.pid}`);\r\n process.kill('SIGTERM');\r\n\r\n // Wait a short period for graceful exit\r\n await new Promise(resolve => setTimeout(resolve, 300));\r\n\r\n if (!process.killed) {\r\n this.logger.warn(`[AdapterManager] Adapter process PID: ${process.pid} did not exit after SIGTERM. Sending SIGKILL.`);\r\n process.kill('SIGKILL');\r\n } else {\r\n this.logger.info(`[AdapterManager] Adapter process PID: ${process.pid} exited after SIGTERM.`);\r\n }\r\n } else {\r\n this.logger.info(`[AdapterManager] Adapter process PID: ${process.pid} was already marked as killed.`);\r\n }\r\n } catch (e) {\r\n const message = e instanceof Error ? e.message : String(e);\r\n this.logger.error(`[AdapterManager] Error during adapter process termination (PID: ${process.pid}): ${message}`, e);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Python-specific adapter manager for backward compatibility\r\n */\r\nexport class DebugpyAdapterManager extends GenericAdapterManager {\r\n /**\r\n * Build the command and arguments for spawning debugpy adapter\r\n */\r\n buildSpawnCommand(pythonPath: string, host: string, port: number, logDir: string): {\r\n command: string;\r\n args: string[];\r\n } {\r\n const args = [\r\n '-m', 'debugpy.adapter',\r\n '--host', host,\r\n '--port', String(port),\r\n '--log-dir', logDir\r\n ];\r\n\r\n return {\r\n command: pythonPath,\r\n args\r\n };\r\n }\r\n\r\n /**\r\n * Spawn the debugpy adapter process (backward compatibility)\r\n */\r\n async spawnDebugpy(config: {\r\n pythonPath: string;\r\n host: string;\r\n port: number;\r\n logDir: string;\r\n cwd?: string;\r\n env?: NodeJS.ProcessEnv;\r\n }): Promise<AdapterSpawnResult> {\r\n const { command, args } = this.buildSpawnCommand(\r\n config.pythonPath,\r\n config.host,\r\n config.port,\r\n config.logDir\r\n );\r\n\r\n return this.spawn({\r\n command,\r\n args,\r\n host: config.host,\r\n port: config.port,\r\n logDir: config.logDir,\r\n cwd: config.cwd,\r\n env: config.env\r\n });\r\n }\r\n}\r\n","usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\proxy\\dap-proxy-connection-manager.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\proxy\\dap-proxy-core.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\proxy\\dap-proxy-dependencies.ts","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":42,"column":83,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":42,"endColumn":86,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[1165,1168],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[1165,1168],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":"MinimalDapClient implements IDapClient but has type compatibility issues"}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\proxy\\dap-proxy-entry.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\proxy\\dap-proxy-interfaces.ts","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":123,"column":40,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":123,"endColumn":43,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[3047,3050],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[3047,3050],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":124,"column":41,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":124,"endColumn":44,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[3169,3172],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[3169,3172],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":125,"column":42,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":125,"endColumn":45,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[3292,3295],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[3292,3295],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\proxy\\dap-proxy-message-parser.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"C:\\Users\\johnf\\Dropbox\\projects\\250106 AGENTS\\debug-mcp-server\\src\\proxy\\dap-proxy-process-manager.ts","messag