ruvnet/ruflo · error · ExtractionError
tar extraction failed (exit ${result.exitCode}): ${result.st
Error message
tar extraction failed (exit ${result.exitCode}): ${result.stderr || result.stdout} What it means
Error "tar extraction failed (exit ${result.exitCode}): ${result.stderr || result.stdout}" thrown in ruvnet/ruflo.
Source
Thrown at v3/@claude-flow/cli/src/proxy/install.ts:36
export class ExtractionError extends Error {
constructor(message: string) {
super(message);
this.name = 'ExtractionError';
}
}
function binaryNameInArchive(): string {
return process.platform === 'win32' ? 'meta-proxy.exe' : 'meta-proxy';
}
/** `tar` handles `.tar.gz` everywhere, and `.zip` via bsdtar on Windows 10+. */
async function extractWithTar(archivePath: string, extractDir: string, flags: 'xzf' | 'xf'): Promise<void> {
const { SafeExecutor } = await import('@claude-flow/security');
const exec = new SafeExecutor({ allowedCommands: ['tar'], timeout: 60_000 });
const result = await exec.execute('tar', [flags, archivePath, '-C', extractDir]);
if (result.exitCode !== 0) {
throw new ExtractionError(`tar extraction failed (exit ${result.exitCode}): ${result.stderr || result.stdout}`);
}
}
/**
* Single-quoted literal paths (doubling any embedded single quote per
* PowerShell string-literal escaping) passed as ONE argv element to
* `-Command`. shell:false means no OS shell ever tokenizes this string —
* only powershell.exe's own parser does.
*/
async function extractWithPowerShell(archivePath: string, extractDir: string): Promise<void> {
const { SafeExecutor } = await import('@claude-flow/security');
const escape = (p: string) => p.replace(/'/g, "''");
const command = `Expand-Archive -LiteralPath '${escape(archivePath)}' -DestinationPath '${escape(extractDir)}' -Force`;
const exec = new SafeExecutor({ allowedCommands: ['powershell', 'powershell.exe'], timeout: 60_000 });
const result = await exec.execute('powershell', ['-NoProfile', '-NonInteractive', '-Command', command]);
if (result.exitCode !== 0) {
throw new ExtractionError(`Expand-Archive failed (exit ${result.exitCode}): ${result.stderr || result.stdout}`);
}View on GitHub (pinned to 6b01dc5a68)
When it happens
Trigger: Thrown at v3/@claude-flow/cli/src/proxy/install.ts:36 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ruvnet/ruflo@6b01dc5a68 (2026-08-12).
Data as JSON: /api/errors/48877b9bae574aae.
Report an issue: GitHub.