mirror of
https://github.com/qwibitai/nanoclaw.git
synced 2026-06-04 10:14:47 +08:00
a8e0a7f011
PR #2259 (Baileys v6→v7) was merged into the channels branch instead of main. PR #2260 was merged into main 28s later assuming v7 was already in place. The v6 pin survived in three sites while the WhatsApp adapter copied from origin/channels at install time was already on the v7 LID API, breaking every fresh migrate-v2.sh run at 2c-install-whatsapp with TS errors on remoteJidAlt/participantAlt/lid-mapping.update. Bumps the pin to 7.0.0-rc.9 (the version v1 has been running on for months) in: - setup/install-whatsapp.sh - setup/add-whatsapp.sh - .claude/skills/add-whatsapp/SKILL.md (install instruction) package.json + pnpm-lock.yaml are not touched here — install-whatsapp.sh mutates them at runtime via pnpm install with the corrected pin. Closes #2283
76 lines
2.5 KiB
Bash
76 lines
2.5 KiB
Bash
#!/usr/bin/env bash
|
|
# Setup helper: install-whatsapp — bundles the preflight + install commands
|
|
# from the /add-whatsapp skill into one idempotent script so /new-setup can
|
|
# run them programmatically before continuing to QR/pairing-code auth.
|
|
#
|
|
# Copies the native Baileys WhatsApp adapter, its whatsapp-auth and groups
|
|
# setup steps in from the `channels` branch; appends the self-registration
|
|
# import; registers `groups` and `whatsapp-auth` entries in the setup STEPS
|
|
# map; installs the pinned @whiskeysockets/baileys + qrcode + pino packages;
|
|
# builds. All steps are safe to re-run. QR/pairing-code authentication
|
|
# stays in the skill — this script only handles the deterministic install.
|
|
set -euo pipefail
|
|
|
|
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "$PROJECT_ROOT"
|
|
|
|
echo "=== NANOCLAW SETUP: INSTALL_WHATSAPP ==="
|
|
|
|
CHANNEL_FILES=(
|
|
src/channels/whatsapp.ts
|
|
setup/whatsapp-auth.ts
|
|
setup/groups.ts
|
|
)
|
|
|
|
needs_install=false
|
|
for f in "${CHANNEL_FILES[@]}"; do
|
|
[[ -f "$f" ]] || needs_install=true
|
|
done
|
|
grep -q "import './whatsapp.js';" src/channels/index.ts || needs_install=true
|
|
grep -q "groups: " setup/index.ts || needs_install=true
|
|
grep -q "'whatsapp-auth':" setup/index.ts || needs_install=true
|
|
grep -q '"@whiskeysockets/baileys"' package.json || needs_install=true
|
|
grep -q '"qrcode"' package.json || needs_install=true
|
|
grep -q '"pino"' package.json || needs_install=true
|
|
[[ -d node_modules/@whiskeysockets/baileys ]] || needs_install=true
|
|
|
|
if ! $needs_install; then
|
|
echo "STATUS: already-installed"
|
|
echo "=== END ==="
|
|
exit 0
|
|
fi
|
|
|
|
echo "STEP: fetch-channels-branch"
|
|
git fetch origin channels
|
|
|
|
echo "STEP: copy-files"
|
|
for f in "${CHANNEL_FILES[@]}"; do
|
|
git show "origin/channels:$f" > "$f"
|
|
done
|
|
|
|
echo "STEP: register-import"
|
|
if ! grep -q "import './whatsapp.js';" src/channels/index.ts; then
|
|
printf "import './whatsapp.js';\n" >> src/channels/index.ts
|
|
fi
|
|
|
|
echo "STEP: register-setup-steps"
|
|
if ! grep -q "'whatsapp-auth':" setup/index.ts; then
|
|
awk '
|
|
{ print }
|
|
/register: \(\) => import/ && !inserted {
|
|
print " groups: () => import('\''./groups.js'\''),"
|
|
print " '\''whatsapp-auth'\'': () => import('\''./whatsapp-auth.js'\''),"
|
|
inserted = 1
|
|
}
|
|
' setup/index.ts > setup/index.ts.tmp && mv setup/index.ts.tmp setup/index.ts
|
|
fi
|
|
|
|
echo "STEP: pnpm-install"
|
|
pnpm install @whiskeysockets/baileys@7.0.0-rc.9 qrcode@1.5.4 @types/qrcode@1.5.6 pino@9.6.0
|
|
|
|
echo "STEP: pnpm-build"
|
|
pnpm run build
|
|
|
|
echo "STATUS: installed"
|
|
echo "=== END ==="
|