mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
fix(whatsapp): remove 120s timeout on bridge npm install (#13339)
The WhatsApp bridge depends on @whiskeysockets/baileys pulled directly from a GitHub commit tarball, which on slower connections or when GitHub is sluggish routinely exceeds 120s. The hardcoded timeout surfaced as a raw TimeoutExpired traceback during 'hermes whatsapp' setup. Switch to the same pattern used by the TUI npm install at line ~945: no timeout, --no-fund/--no-audit/--progress=false to keep output clean, stderr captured and tailed on failure. Also resolve npm via shutil.which so missing Node.js gives a clean error instead of FileNotFoundError, and handle Ctrl+C cleanly. Co-authored-by: teknium1 <teknium@nousresearch.com>
This commit is contained in:
parent
b4edf9e6be
commit
b6b5acfc8e
1 changed files with 20 additions and 9 deletions
|
|
@ -1291,16 +1291,27 @@ def cmd_whatsapp(args):
|
|||
return
|
||||
|
||||
if not (bridge_dir / "node_modules").exists():
|
||||
print("\n→ Installing WhatsApp bridge dependencies...")
|
||||
result = subprocess.run(
|
||||
["npm", "install"],
|
||||
cwd=str(bridge_dir),
|
||||
capture_output=True,
|
||||
text=True,
|
||||
timeout=120,
|
||||
)
|
||||
print("\n→ Installing WhatsApp bridge dependencies (this can take a few minutes)...")
|
||||
npm = shutil.which("npm")
|
||||
if not npm:
|
||||
print(" ✗ npm not found on PATH — install Node.js first")
|
||||
return
|
||||
try:
|
||||
result = subprocess.run(
|
||||
[npm, "install", "--no-fund", "--no-audit", "--progress=false"],
|
||||
cwd=str(bridge_dir),
|
||||
stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.PIPE,
|
||||
text=True,
|
||||
)
|
||||
except KeyboardInterrupt:
|
||||
print("\n ✗ Install cancelled")
|
||||
return
|
||||
if result.returncode != 0:
|
||||
print(f" ✗ npm install failed: {result.stderr}")
|
||||
err = (result.stderr or "").strip()
|
||||
preview = "\n".join(err.splitlines()[-30:]) if err else "(no output)"
|
||||
print(" ✗ npm install failed:")
|
||||
print(preview)
|
||||
return
|
||||
print(" ✓ Dependencies installed")
|
||||
else:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue