NousResearch/hermes-agent · error · Error
[stage-native-deps] get-windows is missing its macOS helper
Error message
[stage-native-deps] get-windows is missing its macOS helper binary (main)
What it means
Error "[stage-native-deps] get-windows is missing its macOS helper binary (main)" thrown in NousResearch/hermes-agent.
Source
Thrown at apps/desktop/scripts/stage-native-deps.mjs:467
cpSync(join(srcRoot, 'package.json'), join(destRoot, 'package.json'))
cpSync(join(srcRoot, 'index.js'), join(destRoot, 'index.js'))
// lib/*.js only — NOT copyGlobByExt, which recurses into lib/binding and
// stages empty dirs for every prebuilt slot (including the darwin one the
// tarball bundles on all platforms). Bindings are staged explicitly below.
mkdirSync(join(destRoot, 'lib'), { recursive: true })
for (const entry of readdirSync(join(srcRoot, 'lib'), { withFileTypes: true })) {
if (entry.isFile() && entry.name.endsWith('.js')) {
cpSync(join(srcRoot, 'lib', entry.name), join(destRoot, 'lib', entry.name))
}
}
writeFileSync(join(destRoot, 'lib', 'windows.js'), STAGED_WINDOWS_JS)
if (platform === 'darwin') {
const helper = join(srcRoot, 'main')
if (!existsSync(helper)) {
throw new Error('[stage-native-deps] get-windows is missing its macOS helper binary (main)')
}
cpSync(helper, join(destRoot, 'main'))
makeExecutable(join(destRoot, 'main'))
}
if (platform === 'win32') {
// The published tarball bundles a darwin binding dir on EVERY platform
// (its `files` includes lib/), so a Windows host's lib/binding holds both
// that and the win32 dir node-pre-gyp downloaded. Stage only dirs naming
// the target platform; the classify gate below still catches a dir that
// claims win32 but holds a foreign binary.
const bindingRoot = join(srcRoot, 'lib', 'binding')
const scanBindingDirs = () =>
existsSync(bindingRoot)
? readdirSync(bindingRoot).filter(
(dir) =>
dir.includes(`-${platform}-`) &&
existsSync(join(bindingRoot, dir, 'node-get-windows.node'))View on GitHub (pinned to c896c09c42)
Solutions
- Reinstall get-windows so its macOS helper binary is present.
- Approve its install scripts and rebuild the package from the checkout root.
When it happens
Trigger: Thrown at apps/desktop/scripts/stage-native-deps.mjs:467 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14).
Data as JSON: /api/errors/d662646714c8da4b.
Report an issue: GitHub.