ruvnet/ruflo · error · Error

Could not locate '@noble/ed25519'. Install it in your projec

Error message

Could not locate '@noble/ed25519'. Install it in your project (npm i @noble/ed25519) or pass a node_modules root via the WITNESS_ED25519_ROOT env var. Probed: ${expanded.join(', ')}. Last error: ${lastErr?.message ?? '?'}

What it means

Error "Could not locate '@noble/ed25519'. Install it in your project (npm i @noble/ed25519) or pass a node_modules root via the WITNESS_ED25519_ROOT env var. Probed: ${expanded.join(', ')}. Last error: ${lastErr?.message ?? '?'}" thrown in ruvnet/ruflo.

Source

Thrown at plugins/ruflo-core/scripts/witness/lib.mjs:83

    ...probeRoots.flatMap(r => [
      join(r, 'v3/@claude-flow/cli'),
      join(r, 'v3/@claude-flow/plugin-agent-federation'),
    ]),
  ];
  let lastErr;
  for (const root of expanded) {
    try {
      const req = createRequire(join(root, 'noop.js'));
      const ed = req('@noble/ed25519');
      ed.etc.sha512Sync = (...m) => {
        const h = createHash('sha512');
        for (const x of m) h.update(x);
        return h.digest();
      };
      return ed;
    } catch (e) { lastErr = e; }
  }
  throw new Error(
    "Could not locate '@noble/ed25519'. Install it in your project " +
    "(npm i @noble/ed25519) or pass a node_modules root via the " +
    "WITNESS_ED25519_ROOT env var. Probed: " + expanded.join(', ') +
    ". Last error: " + (lastErr?.message ?? '?')
  );
}

// ─── manifest helpers ─────────────────────────────────────────────
export function fileSha256(absPath) {
  return createHash('sha256').update(readFileSync(absPath)).digest('hex');
}

export function fileContains(absPath, marker) {
  return readFileSync(absPath, 'utf8').includes(marker);
}

export function refreshFix(repoRoot, fix) {
  const abs = join(repoRoot, fix.file);

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Install @noble/ed25519 (npm i @noble/ed25519) or set WITNESS_ED25519_ROOT to the node_modules root containing it.
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at plugins/ruflo-core/scripts/witness/lib.mjs:83 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18). Data as JSON: /api/errors/6c5caa5e37ba480f. Report an issue: GitHub.