grepmax 0.1.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 (70) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +33 -0
  3. package/README.md +375 -0
  4. package/dist/commands/claude-code.js +60 -0
  5. package/dist/commands/codex.js +98 -0
  6. package/dist/commands/doctor.js +92 -0
  7. package/dist/commands/droid.js +189 -0
  8. package/dist/commands/index.js +125 -0
  9. package/dist/commands/list.js +120 -0
  10. package/dist/commands/mcp.js +567 -0
  11. package/dist/commands/opencode.js +199 -0
  12. package/dist/commands/search.js +539 -0
  13. package/dist/commands/serve.js +502 -0
  14. package/dist/commands/setup.js +160 -0
  15. package/dist/commands/skeleton.js +288 -0
  16. package/dist/commands/symbols.js +129 -0
  17. package/dist/commands/trace.js +50 -0
  18. package/dist/commands/verify.js +174 -0
  19. package/dist/config.js +120 -0
  20. package/dist/eval.js +618 -0
  21. package/dist/index.js +82 -0
  22. package/dist/lib/core/languages.js +237 -0
  23. package/dist/lib/graph/graph-builder.js +105 -0
  24. package/dist/lib/index/chunker.js +663 -0
  25. package/dist/lib/index/grammar-loader.js +110 -0
  26. package/dist/lib/index/ignore-patterns.js +63 -0
  27. package/dist/lib/index/index-config.js +86 -0
  28. package/dist/lib/index/sync-helpers.js +97 -0
  29. package/dist/lib/index/syncer.js +396 -0
  30. package/dist/lib/index/walker.js +164 -0
  31. package/dist/lib/index/watcher.js +245 -0
  32. package/dist/lib/output/formatter.js +161 -0
  33. package/dist/lib/output/json-formatter.js +6 -0
  34. package/dist/lib/search/intent.js +23 -0
  35. package/dist/lib/search/searcher.js +475 -0
  36. package/dist/lib/setup/model-loader.js +107 -0
  37. package/dist/lib/setup/setup-helpers.js +106 -0
  38. package/dist/lib/skeleton/body-fields.js +175 -0
  39. package/dist/lib/skeleton/index.js +24 -0
  40. package/dist/lib/skeleton/retriever.js +36 -0
  41. package/dist/lib/skeleton/skeletonizer.js +483 -0
  42. package/dist/lib/skeleton/summary-formatter.js +92 -0
  43. package/dist/lib/store/meta-cache.js +143 -0
  44. package/dist/lib/store/types.js +2 -0
  45. package/dist/lib/store/vector-db.js +340 -0
  46. package/dist/lib/utils/cleanup.js +33 -0
  47. package/dist/lib/utils/exit.js +38 -0
  48. package/dist/lib/utils/file-utils.js +131 -0
  49. package/dist/lib/utils/filter-builder.js +17 -0
  50. package/dist/lib/utils/formatter.js +230 -0
  51. package/dist/lib/utils/git.js +83 -0
  52. package/dist/lib/utils/lock.js +157 -0
  53. package/dist/lib/utils/project-root.js +107 -0
  54. package/dist/lib/utils/server-registry.js +97 -0
  55. package/dist/lib/workers/colbert-math.js +107 -0
  56. package/dist/lib/workers/colbert-tokenizer.js +113 -0
  57. package/dist/lib/workers/download-worker.js +169 -0
  58. package/dist/lib/workers/embeddings/colbert.js +213 -0
  59. package/dist/lib/workers/embeddings/granite.js +180 -0
  60. package/dist/lib/workers/embeddings/mlx-client.js +144 -0
  61. package/dist/lib/workers/orchestrator.js +350 -0
  62. package/dist/lib/workers/pool.js +373 -0
  63. package/dist/lib/workers/process-child.js +92 -0
  64. package/dist/lib/workers/worker.js +31 -0
  65. package/package.json +80 -0
  66. package/plugins/osgrep/.claude-plugin/plugin.json +20 -0
  67. package/plugins/osgrep/hooks/start.js +90 -0
  68. package/plugins/osgrep/hooks/stop.js +3 -0
  69. package/plugins/osgrep/hooks.json +26 -0
  70. package/plugins/osgrep/skills/osgrep/SKILL.md +82 -0
package/dist/config.js ADDED
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.INDEXABLE_EXTENSIONS = exports.MAX_FILE_SIZE_BYTES = exports.PATHS = exports.MAX_WORKER_MEMORY_MB = exports.WORKER_BOOT_TIMEOUT_MS = exports.WORKER_TIMEOUT_MS = exports.CONFIG = exports.MODEL_IDS = void 0;
37
+ const os = __importStar(require("node:os"));
38
+ const path = __importStar(require("node:path"));
39
+ exports.MODEL_IDS = {
40
+ embed: "onnx-community/granite-embedding-small-english-r2-ONNX",
41
+ colbert: "ryandono/mxbai-edge-colbert-v0-17m-onnx-int8",
42
+ };
43
+ const DEFAULT_WORKER_THREADS = (() => {
44
+ var _a;
45
+ const fromEnv = Number.parseInt((_a = process.env.OSGREP_WORKER_THREADS) !== null && _a !== void 0 ? _a : "", 10);
46
+ if (Number.isFinite(fromEnv) && fromEnv > 0)
47
+ return fromEnv;
48
+ const cores = os.cpus().length || 1;
49
+ const HARD_CAP = 4;
50
+ return Math.max(1, Math.min(HARD_CAP, cores));
51
+ })();
52
+ exports.CONFIG = {
53
+ VECTOR_DIM: 384,
54
+ COLBERT_DIM: 48,
55
+ MAX_CHUNK_CHARS: 2000,
56
+ MAX_CHUNK_LINES: 75,
57
+ EMBED_BATCH_SIZE: 24,
58
+ WORKER_THREADS: DEFAULT_WORKER_THREADS,
59
+ QUERY_PREFIX: "",
60
+ };
61
+ exports.WORKER_TIMEOUT_MS = Number.parseInt(process.env.OSGREP_WORKER_TIMEOUT_MS || "60000", 10);
62
+ exports.WORKER_BOOT_TIMEOUT_MS = Number.parseInt(process.env.OSGREP_WORKER_BOOT_TIMEOUT_MS || "300000", 10);
63
+ exports.MAX_WORKER_MEMORY_MB = Number.parseInt(process.env.OSGREP_MAX_WORKER_MEMORY_MB ||
64
+ String(Math.max(2048, Math.floor((os.totalmem() / 1024 / 1024) * 0.5))), 10);
65
+ const HOME = os.homedir();
66
+ const GLOBAL_ROOT = path.join(HOME, ".osgrep");
67
+ exports.PATHS = {
68
+ globalRoot: GLOBAL_ROOT,
69
+ models: path.join(GLOBAL_ROOT, "models"),
70
+ grammars: path.join(GLOBAL_ROOT, "grammars"),
71
+ };
72
+ exports.MAX_FILE_SIZE_BYTES = 1024 * 1024 * 2; // 2MB limit for indexing
73
+ // Extensions we consider for indexing to avoid binary noise and improve relevance.
74
+ exports.INDEXABLE_EXTENSIONS = new Set([
75
+ ".ts",
76
+ ".tsx",
77
+ ".js",
78
+ ".jsx",
79
+ ".py",
80
+ ".go",
81
+ ".rs",
82
+ ".java",
83
+ ".c",
84
+ ".cpp",
85
+ ".h",
86
+ ".hpp",
87
+ ".rb",
88
+ ".php",
89
+ ".cs",
90
+ ".swift",
91
+ ".kt",
92
+ ".kts",
93
+ ".scala",
94
+ ".lua",
95
+ ".sh",
96
+ ".sql",
97
+ ".html",
98
+ ".css",
99
+ ".dart",
100
+ ".el",
101
+ ".clj",
102
+ ".ex",
103
+ ".exs",
104
+ ".m",
105
+ ".mm",
106
+ ".f90",
107
+ ".f95",
108
+ ".json",
109
+ ".yaml",
110
+ ".yml",
111
+ ".toml",
112
+ ".xml",
113
+ ".md",
114
+ ".mdx",
115
+ ".txt",
116
+ ".gitignore",
117
+ ".dockerfile",
118
+ "dockerfile",
119
+ "makefile",
120
+ ]);