Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/adapter-dotnet/src/DotnetDebugAdapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -296,8 +296,8 @@ export class DotnetDebugAdapter extends EventEmitter implements IDebugAdapter {
const possiblePaths = [
// Development: running from compiled adapter package dist/
path.resolve(__dirname, 'utils', 'netcoredbg-bridge.js'),
// Bundled NPX distribution (cli.mjs is in dist/, bridge copied alongside)
path.resolve(__dirname, '..', 'packages', 'adapter-dotnet', 'dist', 'utils', 'netcoredbg-bridge.js'),
// Bundled NPX distribution (cli.mjs is in dist/, bridge copied at dist/packages/adapter-dotnet/dist/utils/)
path.resolve(__dirname, 'packages', 'adapter-dotnet', 'dist', 'utils', 'netcoredbg-bridge.js'),
// Monorepo source tree fallback
path.resolve(__dirname, '..', '..', '..', '..', 'packages', 'adapter-dotnet', 'dist', 'utils', 'netcoredbg-bridge.js'),
// CWD-relative fallback
Expand Down
25 changes: 17 additions & 8 deletions packages/mcp-debugger/scripts/bundle-cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -211,15 +211,24 @@ async function bundleCLI() {
console.warn('Run: pnpm -w -F @debugmcp/adapter-rust run build:adapter');
}

// Copy netcoredbg bridge script for .NET adapter
const bridgeSrc = path.join(repoRoot, 'packages/adapter-dotnet/dist/utils/netcoredbg-bridge.js');
if (fs.existsSync(bridgeSrc)) {
const bridgeDestDir = path.join(distDir, 'packages', 'adapter-dotnet', 'dist', 'utils');
fs.mkdirSync(bridgeDestDir, { recursive: true });
fs.cpSync(bridgeSrc, path.join(bridgeDestDir, 'netcoredbg-bridge.js'));
console.log('Copied netcoredbg bridge script.');
// Copy .NET adapter runtime utils. The bridge entry imports ./netcoredbg-bridge-core.js
// at runtime in the spawned child Node process, so the core file must be present on
// disk next to the entry — tsup only inlines into cli.mjs, not the spawned worker.
const dotnetUtilsSrc = path.join(repoRoot, 'packages/adapter-dotnet/dist/utils');
if (fs.existsSync(dotnetUtilsSrc)) {
const dotnetUtilsDest = path.join(distDir, 'packages', 'adapter-dotnet', 'dist', 'utils');
fs.mkdirSync(dotnetUtilsDest, { recursive: true });
fs.cpSync(dotnetUtilsSrc, dotnetUtilsDest, {
recursive: true,
filter: (src) => {
const stat = fs.statSync(src);
if (stat.isDirectory()) return true;
return src.endsWith('.js');
}
});
console.log('Copied .NET adapter runtime utils (netcoredbg bridge + core).');
} else {
console.warn('Warning: netcoredbg-bridge.js not found; .NET debugging may fail in NPX distribution.');
console.warn('Warning: packages/adapter-dotnet/dist/utils/ not found; .NET debugging will fail in NPX distribution.');
}

// Mirror dist into the package/ directory used by npm pack artifacts.
Expand Down
6 changes: 5 additions & 1 deletion packages/mcp-debugger/test-bundle.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,13 @@ console.log('Bundle path:', bundlePath);
console.log('\nChecking for required runtime assets:');
const requiredAssets = [
{
name: 'netcoredbg bridge (.NET)',
name: 'netcoredbg bridge entry (.NET)',
path: 'packages/adapter-dotnet/dist/utils/netcoredbg-bridge.js'
},
{
name: 'netcoredbg bridge core (.NET)',
path: 'packages/adapter-dotnet/dist/utils/netcoredbg-bridge-core.js'
},
{
name: 'proxy bundle',
path: 'proxy/proxy-bundle.cjs'
Expand Down
Loading