mirror of
https://github.com/dtzp555-max/memory-continuity.git
synced 2026-07-19 09:42:42 +00:00
post-install.sh now writes plugins.installs with source:"path" so OpenClaw recognizes the plugin origin. Eliminates both the allow-list and provenance warnings on fresh install. Script is now fully idempotent — always refreshes allow/installs/entries. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
116 lines
3.6 KiB
Bash
Executable File
116 lines
3.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# post-install.sh — Install memory-continuity as an OpenClaw lifecycle plugin
|
|
#
|
|
# This script:
|
|
# 1. Copies the plugin to ~/.openclaw/extensions/memory-continuity/
|
|
# 2. Adds the plugin entry to openclaw.json (if not present)
|
|
# 3. Restarts the gateway
|
|
#
|
|
# Usage:
|
|
# bash scripts/post-install.sh
|
|
#
|
|
# Safe to run multiple times (idempotent).
|
|
|
|
set -euo pipefail
|
|
|
|
OPENCLAW_DIR="${OPENCLAW_STATE_DIR:-$HOME/.openclaw}"
|
|
EXTENSIONS_DIR="$OPENCLAW_DIR/extensions"
|
|
PLUGIN_DIR="$EXTENSIONS_DIR/memory-continuity"
|
|
CONFIG_FILE="$OPENCLAW_DIR/openclaw.json"
|
|
|
|
# Resolve the repo root (parent of scripts/)
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
REPO_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
|
|
echo "=== memory-continuity plugin installer ==="
|
|
echo ""
|
|
|
|
# Step 1: Copy plugin files to extensions directory
|
|
echo "[1/3] Installing plugin to $PLUGIN_DIR ..."
|
|
mkdir -p "$EXTENSIONS_DIR"
|
|
|
|
# Remove old installation if exists
|
|
if [[ -d "$PLUGIN_DIR" || -L "$PLUGIN_DIR" ]]; then
|
|
rm -rf "$PLUGIN_DIR"
|
|
echo " Removed previous installation"
|
|
fi
|
|
|
|
# Copy essential plugin files (not the entire repo)
|
|
mkdir -p "$PLUGIN_DIR"
|
|
for f in index.js openclaw.plugin.json package.json SKILL.md; do
|
|
if [[ -f "$REPO_DIR/$f" ]]; then
|
|
cp "$REPO_DIR/$f" "$PLUGIN_DIR/"
|
|
fi
|
|
done
|
|
echo " Copied plugin files"
|
|
|
|
# Step 2: Add plugin entry to openclaw.json
|
|
echo "[2/3] Configuring openclaw.json ..."
|
|
if [[ ! -f "$CONFIG_FILE" ]]; then
|
|
echo " WARNING: $CONFIG_FILE not found. Skipping config update."
|
|
echo " You'll need to manually add the plugin entry."
|
|
else
|
|
# Check if memory-continuity entry already exists
|
|
# Always ensure allow list, install record, and entry are present (idempotent)
|
|
python3 -c "
|
|
import json
|
|
path = '$CONFIG_FILE'
|
|
with open(path) as f:
|
|
data = json.load(f)
|
|
if 'plugins' not in data:
|
|
data['plugins'] = {}
|
|
# Add to plugins.allow so OpenClaw trusts this plugin (no provenance warning)
|
|
allow_list = data['plugins'].get('allow', [])
|
|
if 'memory-continuity' not in allow_list:
|
|
allow_list.append('memory-continuity')
|
|
data['plugins']['allow'] = allow_list
|
|
if 'entries' not in data['plugins']:
|
|
data['plugins']['entries'] = {}
|
|
data['plugins']['entries']['memory-continuity'] = {
|
|
'enabled': True,
|
|
'hooks': {
|
|
'allowPromptInjection': True
|
|
},
|
|
'config': {
|
|
'maxStateLines': 50,
|
|
'archiveOnNew': True,
|
|
'autoExtract': True
|
|
}
|
|
}
|
|
# Add install record for provenance tracking (eliminates untracked-code warning)
|
|
if 'installs' not in data['plugins']:
|
|
data['plugins']['installs'] = {}
|
|
data['plugins']['installs']['memory-continuity'] = {
|
|
'source': 'path',
|
|
'installPath': '~/.openclaw/extensions/memory-continuity',
|
|
'sourcePath': '$REPO_DIR'
|
|
}
|
|
with open(path, 'w') as f:
|
|
json.dump(data, f, indent=2)
|
|
print(' Added plugin entry, trust config, and install record')
|
|
" 2>/dev/null || echo " WARNING: Could not update config automatically. Add manually."
|
|
fi
|
|
|
|
# Step 3: Restart gateway
|
|
echo "[3/3] Restarting gateway ..."
|
|
if command -v openclaw &>/dev/null; then
|
|
if openclaw gateway status 2>&1 | grep -q "running"; then
|
|
openclaw gateway restart 2>/dev/null && echo " Gateway restarted" || echo " Gateway restart failed — try: openclaw gateway restart"
|
|
else
|
|
echo " Gateway not running — start it with: openclaw gateway start"
|
|
fi
|
|
else
|
|
echo " openclaw command not found — install OpenClaw first"
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Installation complete ==="
|
|
echo ""
|
|
echo "Verify with:"
|
|
echo " openclaw gateway restart 2>&1 | grep memory-continuity"
|
|
echo ""
|
|
echo "Test with:"
|
|
echo " 1. Tell your agent something memorable"
|
|
echo " 2. Send /new"
|
|
echo " 3. Ask what you told it"
|