@pimzino/sgrep 1.3.0

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.
Files changed (73) hide show
  1. package/README.md +413 -0
  2. package/build/.claude-plugin/marketplace.json +20 -0
  3. package/build/commands/ask.d.ts +11 -0
  4. package/build/commands/ask.d.ts.map +1 -0
  5. package/build/commands/ask.js +65 -0
  6. package/build/commands/ask.js.map +1 -0
  7. package/build/commands/enhance.d.ts +16 -0
  8. package/build/commands/enhance.d.ts.map +1 -0
  9. package/build/commands/enhance.js +107 -0
  10. package/build/commands/enhance.js.map +1 -0
  11. package/build/commands/search.d.ts +12 -0
  12. package/build/commands/search.d.ts.map +1 -0
  13. package/build/commands/search.js +65 -0
  14. package/build/commands/search.js.map +1 -0
  15. package/build/commands/watch.d.ts +13 -0
  16. package/build/commands/watch.d.ts.map +1 -0
  17. package/build/commands/watch.js +179 -0
  18. package/build/commands/watch.js.map +1 -0
  19. package/build/index.d.ts +3 -0
  20. package/build/index.d.ts.map +1 -0
  21. package/build/index.js +124 -0
  22. package/build/index.js.map +1 -0
  23. package/build/install/claude-code.d.ts +10 -0
  24. package/build/install/claude-code.d.ts.map +1 -0
  25. package/build/install/claude-code.js +255 -0
  26. package/build/install/claude-code.js.map +1 -0
  27. package/build/install/codex.d.ts +4 -0
  28. package/build/install/codex.d.ts.map +1 -0
  29. package/build/install/codex.js +123 -0
  30. package/build/install/codex.js.map +1 -0
  31. package/build/install/cursor.d.ts +4 -0
  32. package/build/install/cursor.d.ts.map +1 -0
  33. package/build/install/cursor.js +91 -0
  34. package/build/install/cursor.js.map +1 -0
  35. package/build/install/droid.d.ts +4 -0
  36. package/build/install/droid.d.ts.map +1 -0
  37. package/build/install/droid.js +226 -0
  38. package/build/install/droid.js.map +1 -0
  39. package/build/install/opencode.d.ts +4 -0
  40. package/build/install/opencode.d.ts.map +1 -0
  41. package/build/install/opencode.js +276 -0
  42. package/build/install/opencode.js.map +1 -0
  43. package/build/plugins/sgrep/.claude-plugin/plugin.json +9 -0
  44. package/build/plugins/sgrep/hooks/hooks.json +39 -0
  45. package/build/plugins/sgrep/hooks/sgrep_enhance.js +160 -0
  46. package/build/plugins/sgrep/hooks/sgrep_watch.js +240 -0
  47. package/build/plugins/sgrep/hooks/sgrep_watch_kill.js +158 -0
  48. package/build/plugins/sgrep/skills/sgrep/SKILL.md +97 -0
  49. package/build/utils/config.d.ts +26 -0
  50. package/build/utils/config.d.ts.map +1 -0
  51. package/build/utils/config.js +106 -0
  52. package/build/utils/config.js.map +1 -0
  53. package/build/utils/context-manager.d.ts +33 -0
  54. package/build/utils/context-manager.d.ts.map +1 -0
  55. package/build/utils/context-manager.js +244 -0
  56. package/build/utils/context-manager.js.map +1 -0
  57. package/build/utils/context.d.ts +25 -0
  58. package/build/utils/context.d.ts.map +1 -0
  59. package/build/utils/context.js +132 -0
  60. package/build/utils/context.js.map +1 -0
  61. package/build/utils/file-walker.d.ts +20 -0
  62. package/build/utils/file-walker.d.ts.map +1 -0
  63. package/build/utils/file-walker.js +239 -0
  64. package/build/utils/file-walker.js.map +1 -0
  65. package/build/utils/output.d.ts +38 -0
  66. package/build/utils/output.d.ts.map +1 -0
  67. package/build/utils/output.js +150 -0
  68. package/build/utils/output.js.map +1 -0
  69. package/build/utils/prompt-parser.d.ts +12 -0
  70. package/build/utils/prompt-parser.d.ts.map +1 -0
  71. package/build/utils/prompt-parser.js +54 -0
  72. package/build/utils/prompt-parser.js.map +1 -0
  73. package/package.json +59 -0
@@ -0,0 +1,65 @@
1
+ import * as path from "path";
2
+ import * as fs from "fs";
3
+ import { search as searchCodebase, closeContext } from "../utils/context.js";
4
+ import { printSearchResults, printError, debug, initOutput } from "../utils/output.js";
5
+ import { loadConfig, mergeWithCliOptions } from "../utils/config.js";
6
+ /**
7
+ * Execute the search command.
8
+ */
9
+ export async function searchCommand(query, pathArg, options) {
10
+ // Load and merge config
11
+ const baseConfig = loadConfig();
12
+ const config = mergeWithCliOptions(baseConfig, options);
13
+ // Initialize output with final options
14
+ initOutput({
15
+ noColor: config.noColor,
16
+ json: config.outputFormat === "json",
17
+ debug: config.debug,
18
+ });
19
+ debug(`Query: ${query}`);
20
+ debug(`Options: ${JSON.stringify(options)}`);
21
+ debug(`Config: ${JSON.stringify(config)}`);
22
+ // Determine directory to search
23
+ let directory;
24
+ if (pathArg) {
25
+ directory = path.resolve(pathArg);
26
+ }
27
+ else if (config.defaultDir) {
28
+ directory = path.resolve(config.defaultDir);
29
+ }
30
+ else {
31
+ directory = process.cwd();
32
+ }
33
+ debug(`Directory: ${directory}`);
34
+ // Validate directory
35
+ if (!fs.existsSync(directory)) {
36
+ printError(`Directory does not exist: ${directory}`);
37
+ process.exit(1);
38
+ }
39
+ if (!fs.statSync(directory).isDirectory()) {
40
+ printError(`Path is not a directory: ${directory}`);
41
+ process.exit(1);
42
+ }
43
+ try {
44
+ const results = await searchCodebase(directory, query);
45
+ if (!results || results.trim() === "") {
46
+ if (config.outputFormat === "json") {
47
+ console.log(JSON.stringify({ type: "search", results: "", message: "No results found" }, null, 2));
48
+ }
49
+ else {
50
+ console.log("No results found.");
51
+ }
52
+ return;
53
+ }
54
+ printSearchResults(results, config.maxResults);
55
+ }
56
+ catch (error) {
57
+ const errorMessage = error instanceof Error ? error.message : String(error);
58
+ printError(errorMessage);
59
+ process.exit(1);
60
+ }
61
+ finally {
62
+ await closeContext();
63
+ }
64
+ }
65
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface WatchOptions {
2
+ dir?: string;
3
+ json?: boolean;
4
+ noColor?: boolean;
5
+ debug?: boolean;
6
+ pidFile?: string;
7
+ }
8
+ /**
9
+ * Execute the watch command - keeps index alive with file watching.
10
+ * Outputs index updates to console until user stops with Ctrl+C.
11
+ */
12
+ export declare function watchCommand(pathArg: string | undefined, options: WatchOptions): Promise<void>;
13
+ //# sourceMappingURL=watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AASD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CA4Kf"}
@@ -0,0 +1,179 @@
1
+ import * as path from "path";
2
+ import * as fs from "fs";
3
+ import ora from "ora";
4
+ import chalk from "chalk";
5
+ import { createWatchContext, closeContext } from "../utils/context.js";
6
+ import { printError, initOutput } from "../utils/output.js";
7
+ import { loadConfig, mergeWithCliOptions } from "../utils/config.js";
8
+ /**
9
+ * Format a timestamp for log output
10
+ */
11
+ function timestamp() {
12
+ return new Date().toLocaleTimeString();
13
+ }
14
+ /**
15
+ * Execute the watch command - keeps index alive with file watching.
16
+ * Outputs index updates to console until user stops with Ctrl+C.
17
+ */
18
+ export async function watchCommand(pathArg, options) {
19
+ // Load and merge config
20
+ const baseConfig = loadConfig();
21
+ const config = mergeWithCliOptions(baseConfig, options);
22
+ const useJson = config.outputFormat === "json";
23
+ const useColor = !config.noColor;
24
+ // Initialize output with final options
25
+ initOutput({
26
+ noColor: config.noColor,
27
+ json: useJson,
28
+ debug: config.debug,
29
+ });
30
+ // Write PID to file if requested (for daemon management)
31
+ const pidFile = options.pidFile;
32
+ if (pidFile) {
33
+ try {
34
+ fs.writeFileSync(pidFile, String(process.pid));
35
+ if (config.debug) {
36
+ console.error(`[debug] Wrote PID ${process.pid} to ${pidFile}`);
37
+ }
38
+ }
39
+ catch (err) {
40
+ const errorMessage = err instanceof Error ? err.message : String(err);
41
+ console.error(`Warning: Failed to write PID file: ${errorMessage}`);
42
+ }
43
+ }
44
+ // Determine directory to watch
45
+ let directory;
46
+ if (pathArg) {
47
+ directory = path.resolve(pathArg);
48
+ }
49
+ else if (config.defaultDir) {
50
+ directory = path.resolve(config.defaultDir);
51
+ }
52
+ else {
53
+ directory = process.cwd();
54
+ }
55
+ // Validate directory
56
+ if (!fs.existsSync(directory)) {
57
+ printError(`Directory does not exist: ${directory}`);
58
+ process.exit(1);
59
+ }
60
+ if (!fs.statSync(directory).isDirectory()) {
61
+ printError(`Path is not a directory: ${directory}`);
62
+ process.exit(1);
63
+ }
64
+ /**
65
+ * Handle index update events - output to console
66
+ */
67
+ function handleIndexUpdate(event) {
68
+ const { type, files, totalIndexed } = event;
69
+ if (useJson) {
70
+ console.log(JSON.stringify({
71
+ timestamp: new Date().toISOString(),
72
+ type,
73
+ files,
74
+ totalIndexed,
75
+ }));
76
+ return;
77
+ }
78
+ const time = useColor ? chalk.gray(`[${timestamp()}]`) : `[${timestamp()}]`;
79
+ const count = useColor ? chalk.cyan(`(${totalIndexed} total)`) : `(${totalIndexed} total)`;
80
+ for (const file of files) {
81
+ let icon;
82
+ let action;
83
+ let fileDisplay;
84
+ switch (type) {
85
+ case "added":
86
+ icon = useColor ? chalk.green("+") : "+";
87
+ action = useColor ? chalk.green("added") : "added";
88
+ fileDisplay = useColor ? chalk.white(file) : file;
89
+ break;
90
+ case "changed":
91
+ icon = useColor ? chalk.yellow("~") : "~";
92
+ action = useColor ? chalk.yellow("updated") : "updated";
93
+ fileDisplay = useColor ? chalk.white(file) : file;
94
+ break;
95
+ case "removed":
96
+ icon = useColor ? chalk.red("-") : "-";
97
+ action = useColor ? chalk.red("removed") : "removed";
98
+ fileDisplay = useColor ? chalk.gray(file) : file;
99
+ break;
100
+ default:
101
+ icon = " ";
102
+ action = type;
103
+ fileDisplay = file;
104
+ }
105
+ console.log(`${time} ${icon} ${action}: ${fileDisplay} ${count}`);
106
+ }
107
+ }
108
+ // Show spinner while initializing
109
+ const spinner = useJson ? null : ora({
110
+ text: "Initializing codebase index...",
111
+ color: "cyan",
112
+ }).start();
113
+ try {
114
+ const contextManager = await createWatchContext(directory, handleIndexUpdate);
115
+ const fileCount = contextManager.getIndexedFileCount();
116
+ if (spinner) {
117
+ spinner.succeed(`Index ready (${fileCount} files indexed)`);
118
+ }
119
+ else {
120
+ console.log(JSON.stringify({
121
+ timestamp: new Date().toISOString(),
122
+ type: "ready",
123
+ totalIndexed: fileCount,
124
+ directory,
125
+ }));
126
+ }
127
+ }
128
+ catch (error) {
129
+ if (spinner) {
130
+ spinner.fail("Failed to initialize");
131
+ }
132
+ const errorMessage = error instanceof Error ? error.message : String(error);
133
+ printError(errorMessage);
134
+ process.exit(1);
135
+ }
136
+ // Print status
137
+ if (!useJson) {
138
+ console.log("");
139
+ console.log(useColor ? chalk.cyan("Watching for file changes...") : "Watching for file changes...");
140
+ console.log(useColor ? chalk.gray(`Directory: ${directory}`) : `Directory: ${directory}`);
141
+ console.log(useColor ? chalk.gray("Press Ctrl+C to stop") : "Press Ctrl+C to stop");
142
+ console.log("");
143
+ }
144
+ // Keep the process alive until interrupted
145
+ await new Promise((resolve) => {
146
+ const shutdown = async () => {
147
+ if (!useJson) {
148
+ console.log("");
149
+ console.log(useColor ? chalk.gray("Shutting down file watcher...") : "Shutting down file watcher...");
150
+ }
151
+ await closeContext();
152
+ // Clean up PID file if we created one
153
+ if (pidFile) {
154
+ try {
155
+ fs.unlinkSync(pidFile);
156
+ if (config.debug) {
157
+ console.error(`[debug] Removed PID file: ${pidFile}`);
158
+ }
159
+ }
160
+ catch (err) {
161
+ // Ignore errors - file may already be deleted
162
+ }
163
+ }
164
+ if (!useJson) {
165
+ console.log(useColor ? chalk.green("Done.") : "Done.");
166
+ }
167
+ else {
168
+ console.log(JSON.stringify({
169
+ timestamp: new Date().toISOString(),
170
+ type: "shutdown",
171
+ }));
172
+ }
173
+ resolve();
174
+ };
175
+ process.on("SIGINT", shutdown);
176
+ process.on("SIGTERM", shutdown);
177
+ });
178
+ }
179
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/build/index.js ADDED
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from "commander";
3
+ import { searchCommand } from "./commands/search.js";
4
+ import { askCommand } from "./commands/ask.js";
5
+ import { watchCommand } from "./commands/watch.js";
6
+ import { enhanceCommand } from "./commands/enhance.js";
7
+ import { installClaudeCode, uninstallClaudeCode } from "./install/claude-code.js";
8
+ import { installCodex, uninstallCodex } from "./install/codex.js";
9
+ import { installCursor, uninstallCursor } from "./install/cursor.js";
10
+ import { installDroid, uninstallDroid } from "./install/droid.js";
11
+ import { installOpencode, uninstallOpencode } from "./install/opencode.js";
12
+ import { closeContext } from "./utils/context.js";
13
+ const program = new Command();
14
+ program
15
+ .name("sgrep")
16
+ .description("Semantic grep - search codebases by meaning using the Augment SDK")
17
+ .version("1.0.0", "-v, --version", "Show version number");
18
+ // Global options
19
+ program
20
+ .option("-d, --dir <path>", "Directory to search (default: current directory)")
21
+ .option("-j, --json", "Output results as JSON")
22
+ .option("--no-color", "Disable colored output")
23
+ .option("--debug", "Enable verbose debug logging");
24
+ // Search command (also the default action)
25
+ program
26
+ .command("search <query> [path]")
27
+ .description("Semantic search for code by functionality")
28
+ .option("-m, --max-results <n>", "Limit number of results", parseInt)
29
+ .action(async (query, pathArg, cmdOptions) => {
30
+ const globalOptions = program.opts();
31
+ await searchCommand(query, pathArg, {
32
+ dir: globalOptions.dir,
33
+ maxResults: cmdOptions.maxResults,
34
+ json: globalOptions.json,
35
+ noColor: !globalOptions.color, // commander inverts --no-color to color=false
36
+ debug: globalOptions.debug,
37
+ });
38
+ });
39
+ // Ask command
40
+ program
41
+ .command("ask <question> [path]")
42
+ .description("Ask a question about the codebase")
43
+ .action(async (question, pathArg) => {
44
+ const globalOptions = program.opts();
45
+ await askCommand(question, pathArg, {
46
+ dir: globalOptions.dir,
47
+ json: globalOptions.json,
48
+ noColor: !globalOptions.color,
49
+ debug: globalOptions.debug,
50
+ });
51
+ });
52
+ // Watch command - interactive mode with file watching
53
+ program
54
+ .command("watch [path]")
55
+ .description("Interactive mode with live file watching - index updates automatically as files change")
56
+ .option("--pid-file <path>", "Write process PID to this file (for daemon management)")
57
+ .action(async (pathArg, cmdOptions) => {
58
+ const globalOptions = program.opts();
59
+ await watchCommand(pathArg, {
60
+ dir: globalOptions.dir,
61
+ json: globalOptions.json,
62
+ noColor: !globalOptions.color,
63
+ debug: globalOptions.debug,
64
+ pidFile: cmdOptions.pidFile,
65
+ });
66
+ });
67
+ // Enhance command - improve prompts using codebase context
68
+ program
69
+ .command("enhance <prompt> [path]")
70
+ .description("Enhance a prompt using codebase context to make it clearer and more specific")
71
+ .action(async (prompt, pathArg) => {
72
+ const globalOptions = program.opts();
73
+ await enhanceCommand(prompt, pathArg, {
74
+ dir: globalOptions.dir,
75
+ json: globalOptions.json,
76
+ noColor: !globalOptions.color,
77
+ debug: globalOptions.debug,
78
+ });
79
+ });
80
+ // Install commands for coding agents
81
+ program.addCommand(installClaudeCode);
82
+ program.addCommand(uninstallClaudeCode);
83
+ program.addCommand(installCodex);
84
+ program.addCommand(uninstallCodex);
85
+ program.addCommand(installCursor);
86
+ program.addCommand(uninstallCursor);
87
+ program.addCommand(installDroid);
88
+ program.addCommand(uninstallDroid);
89
+ program.addCommand(installOpencode);
90
+ program.addCommand(uninstallOpencode);
91
+ // Default action: treat first argument as a search query if no command specified
92
+ program
93
+ .argument("[query]", "Search query (runs search command by default)")
94
+ .argument("[path]", "Path to search in")
95
+ .action(async (query, pathArg) => {
96
+ // If no query provided, show help
97
+ if (!query) {
98
+ program.help();
99
+ return;
100
+ }
101
+ const globalOptions = program.opts();
102
+ await searchCommand(query, pathArg, {
103
+ dir: globalOptions.dir,
104
+ json: globalOptions.json,
105
+ noColor: !globalOptions.color,
106
+ debug: globalOptions.debug,
107
+ });
108
+ });
109
+ // Handle graceful shutdown
110
+ process.on("SIGINT", async () => {
111
+ await closeContext();
112
+ process.exit(0);
113
+ });
114
+ process.on("SIGTERM", async () => {
115
+ await closeContext();
116
+ process.exit(0);
117
+ });
118
+ // Parse and execute
119
+ program.parseAsync(process.argv).catch(async (error) => {
120
+ console.error("Error:", error.message);
121
+ await closeContext();
122
+ process.exit(1);
123
+ });
124
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * Install command for Claude Code
4
+ */
5
+ export declare const installClaudeCode: Command;
6
+ /**
7
+ * Uninstall command for Claude Code
8
+ */
9
+ export declare const uninstallClaudeCode: Command;
10
+ //# sourceMappingURL=claude-code.d.ts.map
@@ -0,0 +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;AA+RpC;;GAEG;AACH,eAAO,MAAM,iBAAiB,SAI1B,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,mBAAmB,SAI5B,CAAC"}