@pimzino/sgrep 1.3.33 → 1.3.37

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.
@@ -1,12 +1,17 @@
1
1
  import { Command } from "commander";
2
+ type ComponentId = "skill" | "prompt-enhance" | "watch" | "project-summary" | "tool-reminder";
2
3
  /**
3
- * Install the sgrep plugin for Claude Code
4
+ * Install the sgrep plugin for Claude Code.
5
+ * When called with no arguments (or all components), installs everything.
6
+ * When called with specific components, only those are installed (additive).
4
7
  */
5
- export declare function installPlugin(): Promise<void>;
8
+ export declare function installPlugin(components?: ComponentId[]): Promise<void>;
6
9
  /**
7
- * Uninstall the sgrep plugin from Claude Code
10
+ * 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).
8
13
  */
9
- export declare function uninstallPlugin(): Promise<void>;
14
+ export declare function uninstallPlugin(components?: ComponentId[]): Promise<void>;
10
15
  /**
11
16
  * Install command for Claude Code
12
17
  */
@@ -15,4 +20,5 @@ export declare const installClaudeCode: Command;
15
20
  * Uninstall command for Claude Code
16
21
  */
17
22
  export declare const uninstallClaudeCode: Command;
23
+ export {};
18
24
  //# 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;AAgJpC;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAkHnD;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAwDrD;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,SAI1B,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,mBAAmB,SAI5B,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;AAiCpC,KAAK,WAAW,GACZ,OAAO,GACP,gBAAgB,GAChB,OAAO,GACP,iBAAiB,GACjB,eAAe,CAAC;AAyWpB;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,UAAU,CAAC,EAAE,WAAW,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CA0Gf;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,UAAU,CAAC,EAAE,WAAW,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CAmGf;AA2BD;;GAEG;AACH,eAAO,MAAM,iBAAiB,SAQ5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB,SAgB9B,CAAC"}
@@ -10,6 +10,240 @@ 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
+ // Component Registry
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
+ },
104
+ ];
105
+ const ALL_COMPONENT_IDS = COMPONENT_REGISTRY.map((c) => c.id);
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
170
+ // ---------------------------------------------------------------------------
171
+ function buildHookConfig(components, hooksDir) {
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)
246
+ // ---------------------------------------------------------------------------
13
247
  function resolveClaudeRoot() {
14
248
  return path.join(os.homedir(), ".claude");
15
249
  }
@@ -64,146 +298,91 @@ function isHooksConfig(value) {
64
298
  }
65
299
  return Object.values(value).every((entry) => Array.isArray(entry));
66
300
  }
301
+ // ---------------------------------------------------------------------------
302
+ // Install / Uninstall
303
+ // ---------------------------------------------------------------------------
67
304
  /**
68
- * Check if a hook command is an sgrep hook
69
- */
70
- function isSgrepHook(command) {
71
- if (!command)
72
- return false;
73
- return (command.includes("sgrep_watch") ||
74
- command.includes("sgrep_enhance") ||
75
- command.includes("sgrep_context") ||
76
- command.includes("sgrep_project_summary"));
77
- }
78
- /**
79
- * Merge hooks by first removing all existing sgrep hooks, then adding new ones.
80
- * This ensures clean replacement on reinstall rather than accumulating duplicates.
305
+ * Install the sgrep plugin for Claude Code.
306
+ * When called with no arguments (or all components), installs everything.
307
+ * When called with specific components, only those are installed (additive).
81
308
  */
82
- function mergeHooks(existingHooks, newHooks) {
83
- const merged = existingHooks
84
- ? JSON.parse(JSON.stringify(existingHooks))
85
- : {};
86
- // First, remove all existing sgrep hooks from all events
87
- for (const event of Object.keys(merged)) {
88
- if (Array.isArray(merged[event])) {
89
- merged[event] = merged[event].filter((entry) => !isSgrepHook(entry?.hooks?.[0]?.command));
90
- // Clean up empty arrays
91
- if (merged[event].length === 0) {
92
- delete merged[event];
93
- }
94
- }
95
- }
96
- // Then add the new sgrep hooks
97
- for (const [event, entries] of Object.entries(newHooks)) {
98
- const current = Array.isArray(merged[event])
99
- ? merged[event]
100
- : [];
101
- for (const entry of entries) {
102
- current.push(entry);
103
- }
104
- merged[event] = current;
105
- }
106
- return merged;
107
- }
108
- /**
109
- * Install the sgrep plugin for Claude Code
110
- */
111
- export async function installPlugin() {
309
+ export async function installPlugin(components) {
310
+ const selected = components ?? [...ALL_COMPONENT_IDS];
112
311
  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
+ }
113
318
  console.log("");
114
319
  try {
115
320
  const root = resolveClaudeRoot();
116
321
  const hooksDir = path.join(root, "hooks", "sgrep");
117
322
  const skillsDir = path.join(root, "skills", "sgrep");
118
323
  const settingsPath = path.join(root, "settings.json");
119
- // Read plugin assets
120
- const watchHook = readPluginAsset(path.join(PLUGIN_HOOKS_DIR, "sgrep_watch.js"));
121
- const killHook = readPluginAsset(path.join(PLUGIN_HOOKS_DIR, "sgrep_watch_kill.js"));
122
- const enhanceHook = readPluginAsset(path.join(PLUGIN_HOOKS_DIR, "sgrep_enhance.js"));
123
- const projectSummaryHook = readPluginAsset(path.join(PLUGIN_HOOKS_DIR, "sgrep_project_summary.js"));
124
- const skillContent = readPluginAsset(PLUGIN_SKILL_PATH);
125
- // Install hooks
126
- const watchJs = path.join(hooksDir, "sgrep_watch.js");
127
- const killJs = path.join(hooksDir, "sgrep_watch_kill.js");
128
- const enhanceJs = path.join(hooksDir, "sgrep_enhance.js");
129
- const projectSummaryJs = path.join(hooksDir, "sgrep_project_summary.js");
130
- if (writeFileIfChanged(watchJs, watchHook)) {
131
- console.log(chalk.green(`Installed hook: ${watchJs}`));
132
- }
133
- if (writeFileIfChanged(killJs, killHook)) {
134
- console.log(chalk.green(`Installed hook: ${killJs}`));
135
- }
136
- if (writeFileIfChanged(enhanceJs, enhanceHook)) {
137
- console.log(chalk.green(`Installed hook: ${enhanceJs}`));
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
+ }
138
334
  }
139
- if (writeFileIfChanged(projectSummaryJs, projectSummaryHook)) {
140
- console.log(chalk.green(`Installed hook: ${projectSummaryJs}`));
335
+ // Install hook files
336
+ for (const comp of COMPONENT_REGISTRY) {
337
+ if (!selected.includes(comp.id))
338
+ continue;
339
+ for (const hf of comp.hookFiles) {
340
+ const src = readPluginAsset(path.join(PLUGIN_HOOKS_DIR, hf.sourceFile));
341
+ const dest = path.join(hooksDir, hf.destFile);
342
+ if (writeFileIfChanged(dest, src)) {
343
+ console.log(chalk.green(`Installed hook: ${dest}`));
344
+ }
345
+ }
141
346
  }
142
- // Install skill
143
- const skillPath = path.join(skillsDir, "SKILL.md");
144
- if (writeFileIfChanged(skillPath, skillContent.trimStart())) {
145
- console.log(chalk.green(`Installed skill: ${skillPath}`));
347
+ // Install skill files
348
+ for (const comp of COMPONENT_REGISTRY) {
349
+ if (!selected.includes(comp.id))
350
+ continue;
351
+ for (const sf of comp.skillFiles) {
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
+ }
146
358
  }
147
359
  // Configure hooks in settings.json
148
- const hookConfig = {
149
- UserPromptSubmit: [
150
- {
151
- hooks: [
152
- {
153
- type: "command",
154
- command: `node "${enhanceJs}"`,
155
- timeout: 60,
156
- },
157
- ],
158
- },
159
- ],
160
- SessionStart: [
161
- {
162
- // Watch process starts on session startup, resume, or clear
163
- matcher: "startup|resume|clear",
164
- hooks: [
165
- {
166
- type: "command",
167
- command: `node "${watchJs}"`,
168
- timeout: 15,
169
- },
170
- ],
171
- },
172
- {
173
- // Project summary on startup, compact, and clear (context resets)
174
- matcher: "startup|compact|clear",
175
- hooks: [
176
- {
177
- type: "command",
178
- command: `node "${projectSummaryJs}"`,
179
- timeout: 90,
180
- },
181
- ],
182
- },
183
- ],
184
- SessionEnd: [
185
- {
186
- hooks: [
187
- {
188
- type: "command",
189
- command: `node "${killJs}"`,
190
- timeout: 10,
191
- },
192
- ],
193
- },
194
- ],
195
- };
196
- const settings = loadSettings(settingsPath);
197
- settings.hooks = mergeHooks(isHooksConfig(settings.hooks) ? settings.hooks : undefined, hookConfig);
198
- saveSettings(settingsPath, settings);
199
- console.log(chalk.green(`Updated settings: ${settingsPath}`));
360
+ const hookConfig = buildHookConfig(selected, hooksDir);
361
+ if (Object.keys(hookConfig).length > 0) {
362
+ const settings = loadSettings(settingsPath);
363
+ settings.hooks = mergeHooksSelective(isHooksConfig(settings.hooks) ? settings.hooks : undefined, hookConfig, selected);
364
+ saveSettings(settingsPath, settings);
365
+ console.log(chalk.green(`Updated settings: ${settingsPath}`));
366
+ }
200
367
  console.log("");
201
368
  console.log(chalk.green("Installation complete!"));
202
369
  console.log("");
203
- console.log("The sgrep skill is now available in Claude Code.");
204
- console.log("- Skill: " + chalk.cyan("/sgrep") + " or Claude will use it automatically");
205
- console.log("- Prompt enhancement: your prompts are automatically enhanced with codebase context");
206
- console.log("- Index sync: sgrep watch starts/stops with your session");
370
+ // Show component-specific summary
371
+ if (selected.includes("skill")) {
372
+ console.log("- Skill: " + chalk.cyan("/sgrep") + " or Claude will use it automatically");
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
+ }
207
386
  console.log("");
208
387
  console.log(chalk.gray("To uninstall: sgrep uninstall-claude-code"));
209
388
  }
@@ -214,40 +393,85 @@ export async function installPlugin() {
214
393
  }
215
394
  }
216
395
  /**
217
- * Uninstall the sgrep plugin from Claude Code
396
+ * 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).
218
399
  */
219
- export async function uninstallPlugin() {
400
+ export async function uninstallPlugin(components) {
401
+ const isFullUninstall = !components;
402
+ const selected = components ?? [...ALL_COMPONENT_IDS];
220
403
  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
+ }
221
410
  console.log("");
222
411
  try {
223
412
  const root = resolveClaudeRoot();
224
413
  const hooksDir = path.join(root, "hooks", "sgrep");
225
414
  const skillsDir = path.join(root, "skills", "sgrep");
226
415
  const settingsPath = path.join(root, "settings.json");
227
- // Remove hooks directory
228
- if (fs.existsSync(hooksDir)) {
229
- fs.rmSync(hooksDir, { recursive: true, force: true });
230
- console.log(chalk.green("Removed sgrep hooks"));
416
+ if (isFullUninstall) {
417
+ // Full uninstall: rm -rf hook and skill directories
418
+ if (fs.existsSync(hooksDir)) {
419
+ fs.rmSync(hooksDir, { recursive: true, force: true });
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
+ }
231
426
  }
232
- // Remove skill directory
233
- if (fs.existsSync(skillsDir)) {
234
- fs.rmSync(skillsDir, { recursive: true, force: true });
235
- console.log(chalk.green("Removed sgrep skill"));
427
+ else {
428
+ // Selective uninstall: remove only owned files
429
+ for (const comp of COMPONENT_REGISTRY) {
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
+ }
236
447
  }
237
448
  // Remove hooks from settings.json
238
449
  if (fs.existsSync(settingsPath)) {
239
450
  try {
240
451
  const settings = loadSettings(settingsPath);
241
- const hooks = isHooksConfig(settings.hooks) ? settings.hooks : undefined;
452
+ const hooks = isHooksConfig(settings.hooks)
453
+ ? settings.hooks
454
+ : undefined;
242
455
  if (hooks) {
243
- for (const event of Object.keys(hooks)) {
244
- const filtered = hooks[event].filter((entry) => !isSgrepHook(entry?.hooks?.[0]?.command));
245
- if (filtered.length === 0) {
246
- delete hooks[event];
456
+ if (isFullUninstall) {
457
+ // Full uninstall: remove all sgrep hooks
458
+ for (const event of Object.keys(hooks)) {
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
+ }
247
466
  }
248
- else {
249
- hooks[event] = filtered;
467
+ }
468
+ else {
469
+ // Selective uninstall: remove only owned hooks
470
+ const cleaned = unmergeHooks(hooks, selected);
471
+ for (const event of Object.keys(hooks)) {
472
+ delete hooks[event];
250
473
  }
474
+ Object.assign(hooks, cleaned);
251
475
  }
252
476
  if (Object.keys(hooks).length === 0) {
253
477
  delete settings.hooks;
@@ -269,20 +493,49 @@ export async function uninstallPlugin() {
269
493
  process.exit(1);
270
494
  }
271
495
  }
496
+ // ---------------------------------------------------------------------------
497
+ // Commander definitions
498
+ // ---------------------------------------------------------------------------
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
+ }
272
518
  /**
273
519
  * Install command for Claude Code
274
520
  */
275
- export const installClaudeCode = new Command("install-claude-code")
276
- .description("Install the sgrep plugin for Claude Code")
277
- .action(async () => {
278
- await installPlugin();
521
+ export const installClaudeCode = addComponentOptions(new Command("install-claude-code").description("Install the sgrep plugin for Claude Code")).action(async (_options, cmd) => {
522
+ const flags = extractComponentFlags(cmd.opts());
523
+ const components = resolveComponents(flags);
524
+ await installPlugin(components);
279
525
  });
280
526
  /**
281
527
  * Uninstall command for Claude Code
282
528
  */
283
- export const uninstallClaudeCode = new Command("uninstall-claude-code")
284
- .description("Uninstall the sgrep plugin from Claude Code")
285
- .action(async () => {
286
- await uninstallPlugin();
529
+ export const uninstallClaudeCode = addComponentOptions(new Command("uninstall-claude-code").description("Uninstall the sgrep plugin from Claude Code")).action(async (_options, cmd) => {
530
+ const flags = extractComponentFlags(cmd.opts());
531
+ const hasAnyFlag = flags.skill ||
532
+ flags.promptEnhance ||
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);
287
540
  });
288
541
  //# 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.33",
4
+ "version": "1.3.37",
5
5
  "author": {
6
6
  "name": "pimzino"
7
7
  },
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sgrep
3
- description: "Semantic grep for LOCAL CODEBASE queries only. Execute sgrep commands via Bash to understand code in the current repository. Do NOT use for external APIs, library documentation, or general programming knowledge."
3
+ description: "Semantic grep - search code by meaning, not just text. 1 sgrep call replaces 5-10 grep/glob calls. Ask natural language questions about architecture, find implementations by functionality, and get AI-explained code with file references. Use as your FIRST tool for codebase exploration, understanding, and navigation."
4
4
  ---
5
5
 
6
6
  ## Tool Definition
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pimzino/sgrep",
3
- "version": "1.3.33",
3
+ "version": "1.3.37",
4
4
  "description": "Semantic grep - search codebases by meaning using the Augment SDK",
5
5
  "type": "module",
6
6
  "main": "build/index.js",
@@ -13,7 +13,7 @@
13
13
  "postbuild": "node scripts/postbuild.js",
14
14
  "start": "node build/index.js",
15
15
  "dev": "tsc --watch",
16
- "prepublishOnly": "npm run build"
16
+ "release": "npm run build && npm publish --access public"
17
17
  },
18
18
  "files": [
19
19
  "build",