- Move private package stubs to stubs/ (tracked), reference via file: in package.json
Stubs: color-diff-napi, modifiers-napi, @ant/claude-for-chrome-mcp,
@anthropic-ai/mcpb, @anthropic-ai/sandbox-runtime
- Add patches/commander@14.0.3.patch via pnpm patch:
Allow multi-char short flags (/^-[^-]+$/) so -d2e works with commander v14
- Pin all dependency versions to exact versions from original cli.js bundle
(extracted from node_modules package.json files in source map)
- Add @anthropic-ai/bedrock-sdk, foundry-sdk, vertex-sdk to dependencies
- Update .gitignore: node_modules/ fully ignored (regenerated by pnpm install)
- Update scripts to use plain `bun` instead of hardcoded path
- Verified: rm -rf node_modules && pnpm install && bun run build.ts succeeds
Output: dist/cli.js (22.1MB), `bun dist/cli.js --version` → 2.1.88 (Claude Code)
49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
/**
|
|
* Platform detection utilities
|
|
*/
|
|
import * as fs from 'fs';
|
|
/**
|
|
* Get the WSL version (1 or 2+) if running in WSL.
|
|
* Returns undefined if not running in WSL.
|
|
*/
|
|
export function getWslVersion() {
|
|
if (process.platform !== 'linux') {
|
|
return undefined;
|
|
}
|
|
try {
|
|
const procVersion = fs.readFileSync('/proc/version', { encoding: 'utf8' });
|
|
// Check for explicit WSL version markers (e.g., "WSL2", "WSL3", etc.)
|
|
const wslVersionMatch = procVersion.match(/WSL(\d+)/i);
|
|
if (wslVersionMatch && wslVersionMatch[1]) {
|
|
return wslVersionMatch[1];
|
|
}
|
|
// If no explicit WSL version but contains Microsoft, assume WSL1
|
|
// This handles the original WSL1 format: "4.4.0-19041-Microsoft"
|
|
if (procVersion.toLowerCase().includes('microsoft')) {
|
|
return '1';
|
|
}
|
|
return undefined;
|
|
}
|
|
catch {
|
|
return undefined;
|
|
}
|
|
}
|
|
/**
|
|
* Detect the current platform.
|
|
* Note: All Linux including WSL returns 'linux'. Use getWslVersion() to detect WSL1 (unsupported).
|
|
*/
|
|
export function getPlatform() {
|
|
switch (process.platform) {
|
|
case 'darwin':
|
|
return 'macos';
|
|
case 'linux':
|
|
// WSL2+ is treated as Linux (same sandboxing)
|
|
// WSL1 is also returned as 'linux' but will fail isSupportedPlatform check
|
|
return 'linux';
|
|
case 'win32':
|
|
return 'windows';
|
|
default:
|
|
return 'unknown';
|
|
}
|
|
}
|
|
//# sourceMappingURL=platform.js.map
|