@pimzino/sgrep 1.3.40 → 1.3.47
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/build/install/claude-code.d.ts +3 -8
- package/build/install/claude-code.d.ts.map +1 -1
- package/build/install/claude-code.js +77 -386
- package/build/install/claude-code.js.map +1 -1
- package/build/plugins/sgrep/.claude-plugin/plugin.json +1 -1
- package/build/plugins/sgrep/hooks/hooks.json +4 -47
- package/build/plugins/sgrep/hooks/sgrep_watch_kill.js +169 -169
- package/build/plugins/sgrep/skills/sgrep/SKILL.md +19 -77
- package/package.json +1 -1
- package/build/plugins/sgrep/hooks/sgrep_context.js +0 -91
- package/build/plugins/sgrep/hooks/sgrep_enhance.js +0 -188
- package/build/plugins/sgrep/hooks/sgrep_project_summary.js +0 -236
- package/build/plugins/sgrep/hooks/sgrep_tool_reminder.js +0 -34
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
-
type ComponentId = "skill" | "prompt-enhance" | "watch" | "project-summary" | "tool-reminder";
|
|
3
2
|
/**
|
|
4
3
|
* Install the sgrep plugin for Claude Code.
|
|
5
|
-
*
|
|
6
|
-
* When called with specific components, only those are installed (additive).
|
|
4
|
+
* Installs the prompt hint hook and the sgrep skill.
|
|
7
5
|
*/
|
|
8
|
-
export declare function installPlugin(
|
|
6
|
+
export declare function installPlugin(): Promise<void>;
|
|
9
7
|
/**
|
|
10
8
|
* Uninstall the sgrep plugin from Claude Code.
|
|
11
|
-
* When called with no arguments, removes everything (rm -rf).
|
|
12
|
-
* When called with specific components, only those are removed (selective).
|
|
13
9
|
*/
|
|
14
|
-
export declare function uninstallPlugin(
|
|
10
|
+
export declare function uninstallPlugin(): Promise<void>;
|
|
15
11
|
/**
|
|
16
12
|
* Install command for Claude Code
|
|
17
13
|
*/
|
|
@@ -20,5 +16,4 @@ export declare const installClaudeCode: Command;
|
|
|
20
16
|
* Uninstall command for Claude Code
|
|
21
17
|
*/
|
|
22
18
|
export declare const uninstallClaudeCode: Command;
|
|
23
|
-
export {};
|
|
24
19
|
//# sourceMappingURL=claude-code.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/install/claude-code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/install/claude-code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsHpC;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAmFnD;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAsDrD;AAMD;;GAEG;AACH,eAAO,MAAM,iBAAiB,SAI1B,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,mBAAmB,SAI5B,CAAC"}
|
|
@@ -10,239 +10,13 @@ const PLUGIN_ROOT = process.env.CLAUDE_PLUGIN_ROOT ||
|
|
|
10
10
|
path.resolve(__dirname, "../plugins/sgrep");
|
|
11
11
|
const PLUGIN_HOOKS_DIR = path.join(PLUGIN_ROOT, "hooks");
|
|
12
12
|
const PLUGIN_SKILL_PATH = path.join(PLUGIN_ROOT, "skills", "sgrep", "SKILL.md");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const COMPONENT_REGISTRY = [
|
|
17
|
-
{
|
|
18
|
-
id: "skill",
|
|
19
|
-
label: "Skill",
|
|
20
|
-
hookFiles: [],
|
|
21
|
-
skillFiles: [{ source: PLUGIN_SKILL_PATH, destRelative: "SKILL.md" }],
|
|
22
|
-
hookConfig: [],
|
|
23
|
-
dependsOn: [],
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
id: "prompt-enhance",
|
|
27
|
-
label: "Prompt Enhancement",
|
|
28
|
-
hookFiles: [
|
|
29
|
-
{ sourceFile: "sgrep_enhance.js", destFile: "sgrep_enhance.js" },
|
|
30
|
-
],
|
|
31
|
-
skillFiles: [],
|
|
32
|
-
hookConfig: [
|
|
33
|
-
{
|
|
34
|
-
event: "UserPromptSubmit",
|
|
35
|
-
hookFile: "sgrep_enhance.js",
|
|
36
|
-
timeout: 60,
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
dependsOn: [],
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
id: "watch",
|
|
43
|
-
label: "Watch",
|
|
44
|
-
hookFiles: [
|
|
45
|
-
{ sourceFile: "sgrep_watch.js", destFile: "sgrep_watch.js" },
|
|
46
|
-
{ sourceFile: "sgrep_watch_kill.js", destFile: "sgrep_watch_kill.js" },
|
|
47
|
-
],
|
|
48
|
-
skillFiles: [],
|
|
49
|
-
hookConfig: [
|
|
50
|
-
{
|
|
51
|
-
event: "SessionStart",
|
|
52
|
-
matcher: "startup|resume|clear",
|
|
53
|
-
hookFile: "sgrep_watch.js",
|
|
54
|
-
timeout: 15,
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
event: "SessionEnd",
|
|
58
|
-
hookFile: "sgrep_watch_kill.js",
|
|
59
|
-
timeout: 10,
|
|
60
|
-
},
|
|
61
|
-
],
|
|
62
|
-
dependsOn: [],
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
id: "project-summary",
|
|
66
|
-
label: "Project Summary",
|
|
67
|
-
hookFiles: [
|
|
68
|
-
{
|
|
69
|
-
sourceFile: "sgrep_project_summary.js",
|
|
70
|
-
destFile: "sgrep_project_summary.js",
|
|
71
|
-
},
|
|
72
|
-
],
|
|
73
|
-
skillFiles: [],
|
|
74
|
-
hookConfig: [
|
|
75
|
-
{
|
|
76
|
-
event: "SessionStart",
|
|
77
|
-
matcher: "startup|compact|clear",
|
|
78
|
-
hookFile: "sgrep_project_summary.js",
|
|
79
|
-
timeout: 90,
|
|
80
|
-
},
|
|
81
|
-
],
|
|
82
|
-
dependsOn: ["watch"],
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
id: "tool-reminder",
|
|
86
|
-
label: "Tool Reminder",
|
|
87
|
-
hookFiles: [
|
|
88
|
-
{
|
|
89
|
-
sourceFile: "sgrep_tool_reminder.js",
|
|
90
|
-
destFile: "sgrep_tool_reminder.js",
|
|
91
|
-
},
|
|
92
|
-
],
|
|
93
|
-
skillFiles: [],
|
|
94
|
-
hookConfig: [
|
|
95
|
-
{
|
|
96
|
-
event: "PreToolUse",
|
|
97
|
-
matcher: "Grep|Glob",
|
|
98
|
-
hookFile: "sgrep_tool_reminder.js",
|
|
99
|
-
timeout: 5,
|
|
100
|
-
},
|
|
101
|
-
],
|
|
102
|
-
dependsOn: [],
|
|
103
|
-
},
|
|
13
|
+
const HOOK_FILES = [
|
|
14
|
+
"sgrep_watch.js",
|
|
15
|
+
"sgrep_watch_kill.js",
|
|
104
16
|
];
|
|
105
|
-
const
|
|
106
|
-
// ---------------------------------------------------------------------------
|
|
107
|
-
// Registry-derived helpers
|
|
108
|
-
// ---------------------------------------------------------------------------
|
|
109
|
-
/** All hook file names that belong to sgrep (from registry + legacy). */
|
|
110
|
-
const ALL_SGREP_HOOK_FILES = new Set([
|
|
111
|
-
...COMPONENT_REGISTRY.flatMap((c) => c.hookFiles.map((h) => h.destFile)),
|
|
112
|
-
// Legacy hook that may still exist in settings from older installs
|
|
113
|
-
"sgrep_context",
|
|
114
|
-
]);
|
|
115
|
-
/** Check if a hook command string refers to any sgrep hook. */
|
|
116
|
-
function isSgrepHook(command) {
|
|
117
|
-
if (!command)
|
|
118
|
-
return false;
|
|
119
|
-
return [...ALL_SGREP_HOOK_FILES].some((hookFile) => {
|
|
120
|
-
const baseName = hookFile.replace(/\.js$/, "");
|
|
121
|
-
return command.includes(baseName);
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
/** Get the set of hook dest-file names owned by a set of components. */
|
|
125
|
-
function getOwnedHookFiles(components) {
|
|
126
|
-
const owned = new Set();
|
|
127
|
-
for (const comp of COMPONENT_REGISTRY) {
|
|
128
|
-
if (components.includes(comp.id)) {
|
|
129
|
-
for (const hf of comp.hookFiles) {
|
|
130
|
-
owned.add(hf.destFile);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return owned;
|
|
135
|
-
}
|
|
136
|
-
/** Check if a hook command belongs to one of the specified components. */
|
|
137
|
-
function isOwnedByComponents(command, components) {
|
|
138
|
-
if (!command)
|
|
139
|
-
return false;
|
|
140
|
-
const owned = getOwnedHookFiles(components);
|
|
141
|
-
return [...owned].some((hookFile) => {
|
|
142
|
-
const baseName = hookFile.replace(/\.js$/, "");
|
|
143
|
-
return command.includes(baseName);
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
// ---------------------------------------------------------------------------
|
|
147
|
-
// Component resolution
|
|
148
|
-
// ---------------------------------------------------------------------------
|
|
149
|
-
function resolveComponents(flags) {
|
|
150
|
-
if (flags.all)
|
|
151
|
-
return [...ALL_COMPONENT_IDS];
|
|
152
|
-
const selected = [];
|
|
153
|
-
if (flags.skill)
|
|
154
|
-
selected.push("skill");
|
|
155
|
-
if (flags.promptEnhance)
|
|
156
|
-
selected.push("prompt-enhance");
|
|
157
|
-
if (flags.watch)
|
|
158
|
-
selected.push("watch");
|
|
159
|
-
if (flags.projectSummary)
|
|
160
|
-
selected.push("project-summary");
|
|
161
|
-
if (flags.toolReminder)
|
|
162
|
-
selected.push("tool-reminder");
|
|
163
|
-
// No flags → all components (backwards compatible)
|
|
164
|
-
if (selected.length === 0)
|
|
165
|
-
return [...ALL_COMPONENT_IDS];
|
|
166
|
-
return selected;
|
|
167
|
-
}
|
|
168
|
-
// ---------------------------------------------------------------------------
|
|
169
|
-
// Hook config builder
|
|
17
|
+
const PROMPT_HINT = "echo 'Before making changes, gather context: use /sgrep for codebase search/understanding.'";
|
|
170
18
|
// ---------------------------------------------------------------------------
|
|
171
|
-
|
|
172
|
-
const config = {};
|
|
173
|
-
for (const comp of COMPONENT_REGISTRY) {
|
|
174
|
-
if (!components.includes(comp.id))
|
|
175
|
-
continue;
|
|
176
|
-
for (const hc of comp.hookConfig) {
|
|
177
|
-
const hookPath = path.join(hooksDir, hc.hookFile);
|
|
178
|
-
const entry = {
|
|
179
|
-
...(hc.matcher ? { matcher: hc.matcher } : {}),
|
|
180
|
-
hooks: [
|
|
181
|
-
{
|
|
182
|
-
type: "command",
|
|
183
|
-
command: `node "${hookPath}"`,
|
|
184
|
-
timeout: hc.timeout,
|
|
185
|
-
},
|
|
186
|
-
],
|
|
187
|
-
};
|
|
188
|
-
if (!config[hc.event])
|
|
189
|
-
config[hc.event] = [];
|
|
190
|
-
config[hc.event].push(entry);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
return config;
|
|
194
|
-
}
|
|
195
|
-
// ---------------------------------------------------------------------------
|
|
196
|
-
// Selective hook merging / unmerging
|
|
197
|
-
// ---------------------------------------------------------------------------
|
|
198
|
-
/**
|
|
199
|
-
* Merge hooks selectively: remove only hooks owned by the given components,
|
|
200
|
-
* then add the new versions. Non-selected component hooks are untouched.
|
|
201
|
-
*/
|
|
202
|
-
function mergeHooksSelective(existingHooks, newHooks, components) {
|
|
203
|
-
const merged = existingHooks
|
|
204
|
-
? JSON.parse(JSON.stringify(existingHooks))
|
|
205
|
-
: {};
|
|
206
|
-
// Remove hooks owned by the components being installed
|
|
207
|
-
for (const event of Object.keys(merged)) {
|
|
208
|
-
if (Array.isArray(merged[event])) {
|
|
209
|
-
merged[event] = merged[event].filter((entry) => !isOwnedByComponents(entry?.hooks?.[0]?.command, components));
|
|
210
|
-
if (merged[event].length === 0) {
|
|
211
|
-
delete merged[event];
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
// Add the new hooks
|
|
216
|
-
for (const [event, entries] of Object.entries(newHooks)) {
|
|
217
|
-
const current = Array.isArray(merged[event])
|
|
218
|
-
? merged[event]
|
|
219
|
-
: [];
|
|
220
|
-
for (const entry of entries) {
|
|
221
|
-
current.push(entry);
|
|
222
|
-
}
|
|
223
|
-
merged[event] = current;
|
|
224
|
-
}
|
|
225
|
-
return merged;
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Remove hooks owned by the given components from existing config.
|
|
229
|
-
*/
|
|
230
|
-
function unmergeHooks(existingHooks, components) {
|
|
231
|
-
if (!existingHooks)
|
|
232
|
-
return {};
|
|
233
|
-
const result = JSON.parse(JSON.stringify(existingHooks));
|
|
234
|
-
for (const event of Object.keys(result)) {
|
|
235
|
-
if (Array.isArray(result[event])) {
|
|
236
|
-
result[event] = result[event].filter((entry) => !isOwnedByComponents(entry?.hooks?.[0]?.command, components));
|
|
237
|
-
if (result[event].length === 0) {
|
|
238
|
-
delete result[event];
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
return result;
|
|
243
|
-
}
|
|
244
|
-
// ---------------------------------------------------------------------------
|
|
245
|
-
// Utility functions (unchanged)
|
|
19
|
+
// Utility functions
|
|
246
20
|
// ---------------------------------------------------------------------------
|
|
247
21
|
function resolveClaudeRoot() {
|
|
248
22
|
return path.join(os.homedir(), ".claude");
|
|
@@ -298,91 +72,81 @@ function isHooksConfig(value) {
|
|
|
298
72
|
}
|
|
299
73
|
return Object.values(value).every((entry) => Array.isArray(entry));
|
|
300
74
|
}
|
|
75
|
+
/** Check if a hook command string refers to any sgrep hook. */
|
|
76
|
+
function isSgrepHook(command) {
|
|
77
|
+
if (!command)
|
|
78
|
+
return false;
|
|
79
|
+
return command.includes("sgrep_") || command.includes("/sgrep");
|
|
80
|
+
}
|
|
301
81
|
// ---------------------------------------------------------------------------
|
|
302
82
|
// Install / Uninstall
|
|
303
83
|
// ---------------------------------------------------------------------------
|
|
304
84
|
/**
|
|
305
85
|
* Install the sgrep plugin for Claude Code.
|
|
306
|
-
*
|
|
307
|
-
* When called with specific components, only those are installed (additive).
|
|
86
|
+
* Installs the prompt hint hook and the sgrep skill.
|
|
308
87
|
*/
|
|
309
|
-
export async function installPlugin(
|
|
310
|
-
const selected = components ?? [...ALL_COMPONENT_IDS];
|
|
88
|
+
export async function installPlugin() {
|
|
311
89
|
console.log(chalk.cyan("Installing sgrep plugin for Claude Code..."));
|
|
312
|
-
if (selected.length < ALL_COMPONENT_IDS.length) {
|
|
313
|
-
const labels = selected
|
|
314
|
-
.map((id) => COMPONENT_REGISTRY.find((c) => c.id === id).label)
|
|
315
|
-
.join(", ");
|
|
316
|
-
console.log(chalk.gray(`Components: ${labels}`));
|
|
317
|
-
}
|
|
318
90
|
console.log("");
|
|
319
91
|
try {
|
|
320
92
|
const root = resolveClaudeRoot();
|
|
321
93
|
const hooksDir = path.join(root, "hooks", "sgrep");
|
|
322
94
|
const skillsDir = path.join(root, "skills", "sgrep");
|
|
323
95
|
const settingsPath = path.join(root, "settings.json");
|
|
324
|
-
// Dependency warnings
|
|
325
|
-
for (const comp of COMPONENT_REGISTRY) {
|
|
326
|
-
if (!selected.includes(comp.id))
|
|
327
|
-
continue;
|
|
328
|
-
for (const dep of comp.dependsOn) {
|
|
329
|
-
if (!selected.includes(dep)) {
|
|
330
|
-
const depLabel = COMPONENT_REGISTRY.find((c) => c.id === dep).label;
|
|
331
|
-
console.log(chalk.yellow(`Note: ${comp.label} works best with ${depLabel}. Consider also installing --${dep}.`));
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
96
|
// Install hook files
|
|
336
|
-
for (const
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
const dest = path.join(hooksDir, hf.destFile);
|
|
342
|
-
if (writeFileIfChanged(dest, src)) {
|
|
343
|
-
console.log(chalk.green(`Installed hook: ${dest}`));
|
|
344
|
-
}
|
|
97
|
+
for (const file of HOOK_FILES) {
|
|
98
|
+
const src = readPluginAsset(path.join(PLUGIN_HOOKS_DIR, file));
|
|
99
|
+
const dest = path.join(hooksDir, file);
|
|
100
|
+
if (writeFileIfChanged(dest, src)) {
|
|
101
|
+
console.log(chalk.green(`Installed hook: ${dest}`));
|
|
345
102
|
}
|
|
346
103
|
}
|
|
347
|
-
// Install skill
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
const src = readPluginAsset(sf.source);
|
|
353
|
-
const dest = path.join(skillsDir, sf.destRelative);
|
|
354
|
-
if (writeFileIfChanged(dest, src.trimStart())) {
|
|
355
|
-
console.log(chalk.green(`Installed skill: ${dest}`));
|
|
356
|
-
}
|
|
357
|
-
}
|
|
104
|
+
// Install skill file
|
|
105
|
+
const skillSrc = readPluginAsset(PLUGIN_SKILL_PATH);
|
|
106
|
+
const skillDest = path.join(skillsDir, "SKILL.md");
|
|
107
|
+
if (writeFileIfChanged(skillDest, skillSrc.trimStart())) {
|
|
108
|
+
console.log(chalk.green(`Installed skill: ${skillDest}`));
|
|
358
109
|
}
|
|
359
110
|
// Configure hooks in settings.json
|
|
360
|
-
const
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
111
|
+
const settings = loadSettings(settingsPath);
|
|
112
|
+
const hooks = isHooksConfig(settings.hooks)
|
|
113
|
+
? JSON.parse(JSON.stringify(settings.hooks))
|
|
114
|
+
: {};
|
|
115
|
+
// Remove any existing sgrep hooks
|
|
116
|
+
for (const event of Object.keys(hooks)) {
|
|
117
|
+
hooks[event] = hooks[event].filter((entry) => !isSgrepHook(entry?.hooks?.[0]?.command));
|
|
118
|
+
if (hooks[event].length === 0) {
|
|
119
|
+
delete hooks[event];
|
|
120
|
+
}
|
|
366
121
|
}
|
|
122
|
+
// Add hooks
|
|
123
|
+
const watch = path.join(hooksDir, "sgrep_watch.js");
|
|
124
|
+
const watchKill = path.join(hooksDir, "sgrep_watch_kill.js");
|
|
125
|
+
if (!hooks.UserPromptSubmit)
|
|
126
|
+
hooks.UserPromptSubmit = [];
|
|
127
|
+
hooks.UserPromptSubmit.push({
|
|
128
|
+
hooks: [{ type: "command", command: PROMPT_HINT, timeout: 5 }],
|
|
129
|
+
});
|
|
130
|
+
if (!hooks.SessionStart)
|
|
131
|
+
hooks.SessionStart = [];
|
|
132
|
+
hooks.SessionStart.push({
|
|
133
|
+
matcher: "startup|resume|clear",
|
|
134
|
+
hooks: [{ type: "command", command: `node "${watch}"`, timeout: 15 }],
|
|
135
|
+
});
|
|
136
|
+
if (!hooks.SessionEnd)
|
|
137
|
+
hooks.SessionEnd = [];
|
|
138
|
+
hooks.SessionEnd.push({
|
|
139
|
+
hooks: [{ type: "command", command: `node "${watchKill}"`, timeout: 10 }],
|
|
140
|
+
});
|
|
141
|
+
settings.hooks = hooks;
|
|
142
|
+
saveSettings(settingsPath, settings);
|
|
143
|
+
console.log(chalk.green(`Updated settings: ${settingsPath}`));
|
|
367
144
|
console.log("");
|
|
368
145
|
console.log(chalk.green("Installation complete!"));
|
|
369
146
|
console.log("");
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
}
|
|
374
|
-
if (selected.includes("prompt-enhance")) {
|
|
375
|
-
console.log("- Prompt enhancement: your prompts are automatically enhanced with codebase context");
|
|
376
|
-
}
|
|
377
|
-
if (selected.includes("watch")) {
|
|
378
|
-
console.log("- Index sync: sgrep watch starts/stops with your session");
|
|
379
|
-
}
|
|
380
|
-
if (selected.includes("project-summary")) {
|
|
381
|
-
console.log("- Project summary: codebase overview injected on session start");
|
|
382
|
-
}
|
|
383
|
-
if (selected.includes("tool-reminder")) {
|
|
384
|
-
console.log("- Tool reminder: gentle nudge to use sgrep when Grep/Glob are used");
|
|
385
|
-
}
|
|
147
|
+
console.log("- Skill: " + chalk.cyan("/sgrep") + " available in Claude Code");
|
|
148
|
+
console.log("- Prompt hint: sgrep usage reminder appended to every prompt");
|
|
149
|
+
console.log("- Index sync: sgrep watch starts/stops with your session");
|
|
386
150
|
console.log("");
|
|
387
151
|
console.log(chalk.gray("To uninstall: sgrep uninstall-claude-code"));
|
|
388
152
|
}
|
|
@@ -394,56 +158,23 @@ export async function installPlugin(components) {
|
|
|
394
158
|
}
|
|
395
159
|
/**
|
|
396
160
|
* Uninstall the sgrep plugin from Claude Code.
|
|
397
|
-
* When called with no arguments, removes everything (rm -rf).
|
|
398
|
-
* When called with specific components, only those are removed (selective).
|
|
399
161
|
*/
|
|
400
|
-
export async function uninstallPlugin(
|
|
401
|
-
const isFullUninstall = !components;
|
|
402
|
-
const selected = components ?? [...ALL_COMPONENT_IDS];
|
|
162
|
+
export async function uninstallPlugin() {
|
|
403
163
|
console.log(chalk.cyan("Uninstalling sgrep plugin from Claude Code..."));
|
|
404
|
-
if (!isFullUninstall) {
|
|
405
|
-
const labels = selected
|
|
406
|
-
.map((id) => COMPONENT_REGISTRY.find((c) => c.id === id).label)
|
|
407
|
-
.join(", ");
|
|
408
|
-
console.log(chalk.gray(`Components: ${labels}`));
|
|
409
|
-
}
|
|
410
164
|
console.log("");
|
|
411
165
|
try {
|
|
412
166
|
const root = resolveClaudeRoot();
|
|
413
167
|
const hooksDir = path.join(root, "hooks", "sgrep");
|
|
414
168
|
const skillsDir = path.join(root, "skills", "sgrep");
|
|
415
169
|
const settingsPath = path.join(root, "settings.json");
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
console.log(chalk.green("Removed sgrep hooks"));
|
|
421
|
-
}
|
|
422
|
-
if (fs.existsSync(skillsDir)) {
|
|
423
|
-
fs.rmSync(skillsDir, { recursive: true, force: true });
|
|
424
|
-
console.log(chalk.green("Removed sgrep skill"));
|
|
425
|
-
}
|
|
170
|
+
// Remove hook and skill directories
|
|
171
|
+
if (fs.existsSync(hooksDir)) {
|
|
172
|
+
fs.rmSync(hooksDir, { recursive: true, force: true });
|
|
173
|
+
console.log(chalk.green("Removed sgrep hooks"));
|
|
426
174
|
}
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
if (!selected.includes(comp.id))
|
|
431
|
-
continue;
|
|
432
|
-
for (const hf of comp.hookFiles) {
|
|
433
|
-
const dest = path.join(hooksDir, hf.destFile);
|
|
434
|
-
if (fs.existsSync(dest)) {
|
|
435
|
-
fs.unlinkSync(dest);
|
|
436
|
-
console.log(chalk.green(`Removed hook: ${dest}`));
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
for (const sf of comp.skillFiles) {
|
|
440
|
-
const dest = path.join(skillsDir, sf.destRelative);
|
|
441
|
-
if (fs.existsSync(dest)) {
|
|
442
|
-
fs.unlinkSync(dest);
|
|
443
|
-
console.log(chalk.green(`Removed skill: ${dest}`));
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
}
|
|
175
|
+
if (fs.existsSync(skillsDir)) {
|
|
176
|
+
fs.rmSync(skillsDir, { recursive: true, force: true });
|
|
177
|
+
console.log(chalk.green("Removed sgrep skill"));
|
|
447
178
|
}
|
|
448
179
|
// Remove hooks from settings.json
|
|
449
180
|
if (fs.existsSync(settingsPath)) {
|
|
@@ -453,25 +184,11 @@ export async function uninstallPlugin(components) {
|
|
|
453
184
|
? settings.hooks
|
|
454
185
|
: undefined;
|
|
455
186
|
if (hooks) {
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
const filtered = hooks[event].filter((entry) => !isSgrepHook(entry?.hooks?.[0]?.command));
|
|
460
|
-
if (filtered.length === 0) {
|
|
461
|
-
delete hooks[event];
|
|
462
|
-
}
|
|
463
|
-
else {
|
|
464
|
-
hooks[event] = filtered;
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
else {
|
|
469
|
-
// Selective uninstall: remove only owned hooks
|
|
470
|
-
const cleaned = unmergeHooks(hooks, selected);
|
|
471
|
-
for (const event of Object.keys(hooks)) {
|
|
187
|
+
for (const event of Object.keys(hooks)) {
|
|
188
|
+
hooks[event] = hooks[event].filter((entry) => !isSgrepHook(entry?.hooks?.[0]?.command));
|
|
189
|
+
if (hooks[event].length === 0) {
|
|
472
190
|
delete hooks[event];
|
|
473
191
|
}
|
|
474
|
-
Object.assign(hooks, cleaned);
|
|
475
192
|
}
|
|
476
193
|
if (Object.keys(hooks).length === 0) {
|
|
477
194
|
delete settings.hooks;
|
|
@@ -496,46 +213,20 @@ export async function uninstallPlugin(components) {
|
|
|
496
213
|
// ---------------------------------------------------------------------------
|
|
497
214
|
// Commander definitions
|
|
498
215
|
// ---------------------------------------------------------------------------
|
|
499
|
-
function addComponentOptions(cmd) {
|
|
500
|
-
return cmd
|
|
501
|
-
.option("--skill", "Install/uninstall the sgrep skill")
|
|
502
|
-
.option("--prompt-enhance", "Install/uninstall prompt enhancement")
|
|
503
|
-
.option("--watch", "Install/uninstall watch + watch-kill pair")
|
|
504
|
-
.option("--project-summary", "Install/uninstall project summary hook")
|
|
505
|
-
.option("--tool-reminder", "Install/uninstall tool reminder hook")
|
|
506
|
-
.option("--all", "Install/uninstall all components (default)");
|
|
507
|
-
}
|
|
508
|
-
function extractComponentFlags(options) {
|
|
509
|
-
return {
|
|
510
|
-
skill: options.skill,
|
|
511
|
-
promptEnhance: options.promptEnhance,
|
|
512
|
-
watch: options.watch,
|
|
513
|
-
projectSummary: options.projectSummary,
|
|
514
|
-
toolReminder: options.toolReminder,
|
|
515
|
-
all: options.all,
|
|
516
|
-
};
|
|
517
|
-
}
|
|
518
216
|
/**
|
|
519
217
|
* Install command for Claude Code
|
|
520
218
|
*/
|
|
521
|
-
export const installClaudeCode =
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
await installPlugin(
|
|
219
|
+
export const installClaudeCode = new Command("install-claude-code")
|
|
220
|
+
.description("Install the sgrep plugin for Claude Code")
|
|
221
|
+
.action(async () => {
|
|
222
|
+
await installPlugin();
|
|
525
223
|
});
|
|
526
224
|
/**
|
|
527
225
|
* Uninstall command for Claude Code
|
|
528
226
|
*/
|
|
529
|
-
export const uninstallClaudeCode =
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
flags.watch ||
|
|
534
|
-
flags.projectSummary ||
|
|
535
|
-
flags.toolReminder ||
|
|
536
|
-
flags.all;
|
|
537
|
-
// No flags on uninstall → full uninstall (rm -rf behavior)
|
|
538
|
-
const components = hasAnyFlag ? resolveComponents(flags) : undefined;
|
|
539
|
-
await uninstallPlugin(components);
|
|
227
|
+
export const uninstallClaudeCode = new Command("uninstall-claude-code")
|
|
228
|
+
.description("Uninstall the sgrep plugin from Claude Code")
|
|
229
|
+
.action(async () => {
|
|
230
|
+
await uninstallPlugin();
|
|
540
231
|
});
|
|
541
232
|
//# sourceMappingURL=claude-code.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/install/claude-code.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/install/claude-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sgrep",
|
|
3
3
|
"description": "Semantic grep - ask questions about codebases using AI. Use sgrep \"question\" to understand code (default) or sgrep search for raw code snippets.",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.47",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "pimzino"
|
|
7
7
|
},
|