leopold-driver 0.1.3 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/VERSION +1 -1
- package/assets/scripts/leopold-menu.sh +89 -1
- package/package.json +1 -1
package/assets/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.4.
|
|
1
|
+
0.4.6
|
|
@@ -77,7 +77,8 @@ main_menu() {
|
|
|
77
77
|
"$C_BOLD" "$i" "$C_RESET" "$C_BOLD" "$title" "$C_RESET" "$st" "$C_DIM" "$summary" "$C_RESET"
|
|
78
78
|
i=$((i + 1))
|
|
79
79
|
done < <(list_exts)
|
|
80
|
-
printf " %sd%s) Doctor all %sq%s) Quit\n\n"
|
|
80
|
+
printf " %sd%s) Doctor all %su%s) Uninstall %sq%s) Quit\n\n" \
|
|
81
|
+
"$C_BOLD" "$C_RESET" "$C_BOLD" "$C_RESET" "$C_BOLD" "$C_RESET"
|
|
81
82
|
}
|
|
82
83
|
|
|
83
84
|
component_menu() {
|
|
@@ -113,6 +114,92 @@ doctor_all() {
|
|
|
113
114
|
pause
|
|
114
115
|
}
|
|
115
116
|
|
|
117
|
+
# ---- uninstall (granular, data-safe) ---------------------------------------
|
|
118
|
+
|
|
119
|
+
confirm() { # prompt -> 0 if yes
|
|
120
|
+
printf "%s [y/N] " "$1"
|
|
121
|
+
local a; read -r a || a=""
|
|
122
|
+
case "$a" in [yY]*) return 0 ;; *) echo " skipped." ; return 1 ;; esac
|
|
123
|
+
}
|
|
124
|
+
ext_path() { [ -d "$EXT_DIR/$1" ] && printf "%s" "$EXT_DIR/$1"; }
|
|
125
|
+
CLAUDE="${CLAUDE_HOME:-$HOME/.claude}"
|
|
126
|
+
|
|
127
|
+
remove_core() {
|
|
128
|
+
local settings="$CLAUDE/settings.json" tmp d
|
|
129
|
+
if [ -f "$settings" ] && command -v jq >/dev/null 2>&1; then
|
|
130
|
+
cp "$settings" "$settings.leopold.bak"
|
|
131
|
+
tmp="$(mktemp)"
|
|
132
|
+
jq 'if .hooks then .hooks |= ( to_entries
|
|
133
|
+
| map(.value |= ( map(.hooks |= map(select((.command // "") | test("leopold/hooks/") | not)))
|
|
134
|
+
| map(select((.hooks | length) > 0)) ))
|
|
135
|
+
| from_entries ) else . end' "$settings" > "$tmp" && mv "$tmp" "$settings"
|
|
136
|
+
echo " unwired Leopold's Stop/PreToolUse hooks (backup at $settings.leopold.bak)"
|
|
137
|
+
fi
|
|
138
|
+
for d in "$CLAUDE"/skills/leopold-*; do [ -d "$d" ] && rm -rf "$d"; done
|
|
139
|
+
rm -rf "$CLAUDE/leopold" 2>/dev/null || true
|
|
140
|
+
echo " removed the leopold-* skills and $CLAUDE/leopold"
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
remove_cli() {
|
|
144
|
+
if command -v npm >/dev/null 2>&1; then
|
|
145
|
+
npm uninstall -g leopold-driver >/dev/null 2>&1 \
|
|
146
|
+
&& echo " uninstalled the leopold CLI (npm)" \
|
|
147
|
+
|| echo " (leopold CLI not installed via npm, or it needs sudo)"
|
|
148
|
+
else
|
|
149
|
+
echo " npm not found — nothing to do for the CLI"
|
|
150
|
+
fi
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
remove_ext() { # name
|
|
154
|
+
local d; d="$(ext_path "$1")"
|
|
155
|
+
[ -n "$d" ] && ext_run "$d" remove || echo " ($1 extension not found in this build)"
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
remove_ovmem_data() {
|
|
159
|
+
printf "%s This DELETES ~/.openviking — your ENTIRE long-term memory — and uninstalls\n" "$C_YELLOW"
|
|
160
|
+
printf " the OpenViking server. There is no undo.%s\n" "$C_RESET"
|
|
161
|
+
printf " Type %sDELETE%s to confirm: " "$C_BOLD" "$C_RESET"
|
|
162
|
+
local a; read -r a || a=""
|
|
163
|
+
[ "$a" = "DELETE" ] || { echo " skipped (not confirmed)."; return; }
|
|
164
|
+
pkill -f "openviking-server" 2>/dev/null || true
|
|
165
|
+
command -v uv >/dev/null 2>&1 && uv tool uninstall openviking >/dev/null 2>&1 && echo " uninstalled the openviking server" || true
|
|
166
|
+
rm -rf "$HOME/.openviking" 2>/dev/null && echo " deleted ~/.openviking (long-term memory)" || true
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
uninstall_menu() {
|
|
170
|
+
header
|
|
171
|
+
printf " %sUninstall Leopold%s — pick exactly what to remove.\n" "$C_BOLD" "$C_RESET"
|
|
172
|
+
printf " %sYour data is KEPT unless you pick a DATA item; each pick is confirmed.%s\n\n" "$C_DIM" "$C_RESET"
|
|
173
|
+
printf " 1) Leopold core skills + hooks + %s/leopold (the harness)\n" "$CLAUDE"
|
|
174
|
+
printf " 2) leopold CLI npm uninstall -g leopold-driver\n"
|
|
175
|
+
printf " 3) serena unregister MCP + unwire hooks (keeps the serena CLI)\n"
|
|
176
|
+
printf " 4) gstack remove the skill suite\n"
|
|
177
|
+
printf " 5) ovmem unwire hooks + remove engine %s(keeps your memory)%s\n" "$C_DIM" "$C_RESET"
|
|
178
|
+
printf " 6) %sovmem DATA + server ~/.openviking + OpenViking — DELETES memory!%s\n\n" "$C_YELLOW" "$C_RESET"
|
|
179
|
+
printf " a) everything except DATA (1-5) q) cancel\n\n"
|
|
180
|
+
printf "pick (space-separated, e.g. \"1 2 5\"): "
|
|
181
|
+
local picks p; read -r picks || picks="q"
|
|
182
|
+
case "$picks" in q|Q|"") return ;; a|A) picks="1 2 3 4 5" ;; esac
|
|
183
|
+
echo
|
|
184
|
+
printf "%sSelected: %s%s\n" "$C_BOLD" "$picks" "$C_RESET"
|
|
185
|
+
confirm "Proceed with the removals above?" || { pause; return; }
|
|
186
|
+
echo
|
|
187
|
+
for p in $picks; do
|
|
188
|
+
case "$p" in
|
|
189
|
+
1) confirm "Remove Leopold core (skills + hooks)?" && remove_core ;;
|
|
190
|
+
2) confirm "Uninstall the leopold CLI (npm -g)?" && remove_cli ;;
|
|
191
|
+
3) confirm "Remove serena (MCP + hooks)?" && remove_ext serena ;;
|
|
192
|
+
4) confirm "Remove gstack?" && remove_ext gstack ;;
|
|
193
|
+
5) confirm "Remove ovmem engine (keeps your memory)?" && remove_ext ovmem ;;
|
|
194
|
+
6) remove_ovmem_data ;;
|
|
195
|
+
*) echo " ignored: '$p'" ;;
|
|
196
|
+
esac
|
|
197
|
+
done
|
|
198
|
+
echo
|
|
199
|
+
printf "%sUninstall done.%s\n" "$C_GREEN" "$C_RESET"
|
|
200
|
+
pause
|
|
201
|
+
}
|
|
202
|
+
|
|
116
203
|
# ---- main loop --------------------------------------------------------------
|
|
117
204
|
|
|
118
205
|
while true; do
|
|
@@ -121,6 +208,7 @@ while true; do
|
|
|
121
208
|
case "$choice" in
|
|
122
209
|
q|Q) echo; exit 0 ;;
|
|
123
210
|
d|D) doctor_all ;;
|
|
211
|
+
u|U) uninstall_menu ;;
|
|
124
212
|
''|*[!0-9]*) ;; # ignore non-numeric
|
|
125
213
|
*)
|
|
126
214
|
idx=$((choice - 1))
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "leopold-driver",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.6",
|
|
4
4
|
"description": "Leopold SDK driver: a persistent conductor that orchestrates fresh Claude Code workers per task, decides from your charter, and notifies you. Uses your Claude Code auth. Git stays locked.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|