src-mcp 1.0.1 → 1.0.3

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 (250) hide show
  1. package/README.md +8 -18
  2. package/dist/bin.d.mts +1 -0
  3. package/dist/bin.mjs +205 -0
  4. package/dist/bin.mjs.map +1 -0
  5. package/dist/index.d.mts +1 -0
  6. package/dist/index.mjs +8 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/dist/server-DL8hfycz.mjs +3791 -0
  9. package/dist/server-DL8hfycz.mjs.map +1 -0
  10. package/package.json +10 -9
  11. package/dist/bin.d.ts +0 -3
  12. package/dist/bin.d.ts.map +0 -1
  13. package/dist/bin.js +0 -4
  14. package/dist/bin.js.map +0 -1
  15. package/dist/cli/adapter.d.ts +0 -7
  16. package/dist/cli/adapter.d.ts.map +0 -1
  17. package/dist/cli/adapter.js +0 -39
  18. package/dist/cli/adapter.js.map +0 -1
  19. package/dist/cli/commands/index.d.ts +0 -24
  20. package/dist/cli/commands/index.d.ts.map +0 -1
  21. package/dist/cli/commands/index.js +0 -13
  22. package/dist/cli/commands/index.js.map +0 -1
  23. package/dist/cli/commands/serve.command.d.ts +0 -21
  24. package/dist/cli/commands/serve.command.d.ts.map +0 -1
  25. package/dist/cli/commands/serve.command.js +0 -62
  26. package/dist/cli/commands/serve.command.js.map +0 -1
  27. package/dist/cli/commands/version.command.d.ts +0 -2
  28. package/dist/cli/commands/version.command.d.ts.map +0 -1
  29. package/dist/cli/commands/version.command.js +0 -12
  30. package/dist/cli/commands/version.command.js.map +0 -1
  31. package/dist/cli/index.d.ts +0 -2
  32. package/dist/cli/index.d.ts.map +0 -1
  33. package/dist/cli/index.js +0 -15
  34. package/dist/cli/index.js.map +0 -1
  35. package/dist/cli/parser.d.ts +0 -7
  36. package/dist/cli/parser.d.ts.map +0 -1
  37. package/dist/cli/parser.js +0 -99
  38. package/dist/cli/parser.js.map +0 -1
  39. package/dist/config/index.d.ts +0 -24
  40. package/dist/config/index.d.ts.map +0 -1
  41. package/dist/config/index.js +0 -38
  42. package/dist/config/index.js.map +0 -1
  43. package/dist/core/ast/index.d.ts +0 -82
  44. package/dist/core/ast/index.d.ts.map +0 -1
  45. package/dist/core/ast/index.js +0 -204
  46. package/dist/core/ast/index.js.map +0 -1
  47. package/dist/core/ast/types.d.ts +0 -152
  48. package/dist/core/ast/types.d.ts.map +0 -1
  49. package/dist/core/ast/types.js +0 -5
  50. package/dist/core/ast/types.js.map +0 -1
  51. package/dist/core/constants.d.ts +0 -17
  52. package/dist/core/constants.d.ts.map +0 -1
  53. package/dist/core/constants.js +0 -49
  54. package/dist/core/constants.js.map +0 -1
  55. package/dist/core/embeddings/callgraph.d.ts +0 -98
  56. package/dist/core/embeddings/callgraph.d.ts.map +0 -1
  57. package/dist/core/embeddings/callgraph.js +0 -415
  58. package/dist/core/embeddings/callgraph.js.map +0 -1
  59. package/dist/core/embeddings/chunker.d.ts +0 -37
  60. package/dist/core/embeddings/chunker.d.ts.map +0 -1
  61. package/dist/core/embeddings/chunker.js +0 -298
  62. package/dist/core/embeddings/chunker.js.map +0 -1
  63. package/dist/core/embeddings/client.d.ts +0 -30
  64. package/dist/core/embeddings/client.d.ts.map +0 -1
  65. package/dist/core/embeddings/client.js +0 -65
  66. package/dist/core/embeddings/client.js.map +0 -1
  67. package/dist/core/embeddings/crossfile.d.ts +0 -58
  68. package/dist/core/embeddings/crossfile.d.ts.map +0 -1
  69. package/dist/core/embeddings/crossfile.js +0 -202
  70. package/dist/core/embeddings/crossfile.js.map +0 -1
  71. package/dist/core/embeddings/enricher.d.ts +0 -53
  72. package/dist/core/embeddings/enricher.d.ts.map +0 -1
  73. package/dist/core/embeddings/enricher.js +0 -308
  74. package/dist/core/embeddings/enricher.js.map +0 -1
  75. package/dist/core/embeddings/index.d.ts +0 -13
  76. package/dist/core/embeddings/index.d.ts.map +0 -1
  77. package/dist/core/embeddings/index.js +0 -20
  78. package/dist/core/embeddings/index.js.map +0 -1
  79. package/dist/core/embeddings/reranker.d.ts +0 -41
  80. package/dist/core/embeddings/reranker.d.ts.map +0 -1
  81. package/dist/core/embeddings/reranker.js +0 -117
  82. package/dist/core/embeddings/reranker.js.map +0 -1
  83. package/dist/core/embeddings/store.d.ts +0 -93
  84. package/dist/core/embeddings/store.d.ts.map +0 -1
  85. package/dist/core/embeddings/store.js +0 -304
  86. package/dist/core/embeddings/store.js.map +0 -1
  87. package/dist/core/embeddings/types.d.ts +0 -77
  88. package/dist/core/embeddings/types.d.ts.map +0 -1
  89. package/dist/core/embeddings/types.js +0 -5
  90. package/dist/core/embeddings/types.js.map +0 -1
  91. package/dist/core/embeddings/watcher.d.ts +0 -130
  92. package/dist/core/embeddings/watcher.d.ts.map +0 -1
  93. package/dist/core/embeddings/watcher.js +0 -448
  94. package/dist/core/embeddings/watcher.js.map +0 -1
  95. package/dist/core/fallback/index.d.ts +0 -26
  96. package/dist/core/fallback/index.d.ts.map +0 -1
  97. package/dist/core/fallback/index.js +0 -76
  98. package/dist/core/fallback/index.js.map +0 -1
  99. package/dist/core/parser/index.d.ts +0 -64
  100. package/dist/core/parser/index.d.ts.map +0 -1
  101. package/dist/core/parser/index.js +0 -205
  102. package/dist/core/parser/index.js.map +0 -1
  103. package/dist/core/parser/languages.d.ts +0 -26
  104. package/dist/core/parser/languages.d.ts.map +0 -1
  105. package/dist/core/parser/languages.js +0 -101
  106. package/dist/core/parser/languages.js.map +0 -1
  107. package/dist/core/queries/helpers.d.ts +0 -72
  108. package/dist/core/queries/helpers.d.ts.map +0 -1
  109. package/dist/core/queries/helpers.js +0 -101
  110. package/dist/core/queries/helpers.js.map +0 -1
  111. package/dist/core/queries/index.d.ts +0 -144
  112. package/dist/core/queries/index.d.ts.map +0 -1
  113. package/dist/core/queries/index.js +0 -396
  114. package/dist/core/queries/index.js.map +0 -1
  115. package/dist/core/queries/loader.d.ts +0 -46
  116. package/dist/core/queries/loader.d.ts.map +0 -1
  117. package/dist/core/queries/loader.js +0 -216
  118. package/dist/core/queries/loader.js.map +0 -1
  119. package/dist/core/queries/patterns.d.ts +0 -10
  120. package/dist/core/queries/patterns.d.ts.map +0 -1
  121. package/dist/core/queries/patterns.js +0 -112
  122. package/dist/core/queries/patterns.js.map +0 -1
  123. package/dist/core/symbols/index.d.ts +0 -70
  124. package/dist/core/symbols/index.d.ts.map +0 -1
  125. package/dist/core/symbols/index.js +0 -359
  126. package/dist/core/symbols/index.js.map +0 -1
  127. package/dist/core/unified/index.d.ts +0 -118
  128. package/dist/core/unified/index.d.ts.map +0 -1
  129. package/dist/core/unified/index.js +0 -428
  130. package/dist/core/unified/index.js.map +0 -1
  131. package/dist/core/utils/assets.d.ts +0 -34
  132. package/dist/core/utils/assets.d.ts.map +0 -1
  133. package/dist/core/utils/assets.js +0 -85
  134. package/dist/core/utils/assets.js.map +0 -1
  135. package/dist/core/utils/cache.d.ts +0 -43
  136. package/dist/core/utils/cache.d.ts.map +0 -1
  137. package/dist/core/utils/cache.js +0 -60
  138. package/dist/core/utils/cache.js.map +0 -1
  139. package/dist/core/utils/index.d.ts +0 -7
  140. package/dist/core/utils/index.d.ts.map +0 -1
  141. package/dist/core/utils/index.js +0 -10
  142. package/dist/core/utils/index.js.map +0 -1
  143. package/dist/core/utils/tsconfig.d.ts +0 -34
  144. package/dist/core/utils/tsconfig.d.ts.map +0 -1
  145. package/dist/core/utils/tsconfig.js +0 -173
  146. package/dist/core/utils/tsconfig.js.map +0 -1
  147. package/dist/features/analyze-file/index.d.ts +0 -15
  148. package/dist/features/analyze-file/index.d.ts.map +0 -1
  149. package/dist/features/analyze-file/index.js +0 -164
  150. package/dist/features/analyze-file/index.js.map +0 -1
  151. package/dist/features/get-call-graph/index.d.ts +0 -24
  152. package/dist/features/get-call-graph/index.d.ts.map +0 -1
  153. package/dist/features/get-call-graph/index.js +0 -246
  154. package/dist/features/get-call-graph/index.js.map +0 -1
  155. package/dist/features/get-index-status/index.d.ts +0 -20
  156. package/dist/features/get-index-status/index.d.ts.map +0 -1
  157. package/dist/features/get-index-status/index.js +0 -90
  158. package/dist/features/get-index-status/index.js.map +0 -1
  159. package/dist/features/index-codebase/index.d.ts +0 -24
  160. package/dist/features/index-codebase/index.d.ts.map +0 -1
  161. package/dist/features/index-codebase/index.js +0 -283
  162. package/dist/features/index-codebase/index.js.map +0 -1
  163. package/dist/features/index.d.ts +0 -15
  164. package/dist/features/index.d.ts.map +0 -1
  165. package/dist/features/index.js +0 -28
  166. package/dist/features/index.js.map +0 -1
  167. package/dist/features/info/index.d.ts +0 -19
  168. package/dist/features/info/index.d.ts.map +0 -1
  169. package/dist/features/info/index.js +0 -41
  170. package/dist/features/info/index.js.map +0 -1
  171. package/dist/features/list-symbols/index.d.ts +0 -22
  172. package/dist/features/list-symbols/index.d.ts.map +0 -1
  173. package/dist/features/list-symbols/index.js +0 -74
  174. package/dist/features/list-symbols/index.js.map +0 -1
  175. package/dist/features/parse-ast/index.d.ts +0 -12
  176. package/dist/features/parse-ast/index.d.ts.map +0 -1
  177. package/dist/features/parse-ast/index.js +0 -71
  178. package/dist/features/parse-ast/index.js.map +0 -1
  179. package/dist/features/query-code/index.d.ts +0 -23
  180. package/dist/features/query-code/index.d.ts.map +0 -1
  181. package/dist/features/query-code/index.js +0 -96
  182. package/dist/features/query-code/index.js.map +0 -1
  183. package/dist/features/search-code/index.d.ts +0 -39
  184. package/dist/features/search-code/index.d.ts.map +0 -1
  185. package/dist/features/search-code/index.js +0 -258
  186. package/dist/features/search-code/index.js.map +0 -1
  187. package/dist/features/types.d.ts +0 -14
  188. package/dist/features/types.d.ts.map +0 -1
  189. package/dist/features/types.js +0 -2
  190. package/dist/features/types.js.map +0 -1
  191. package/dist/features/update-index/index.d.ts +0 -24
  192. package/dist/features/update-index/index.d.ts.map +0 -1
  193. package/dist/features/update-index/index.js +0 -358
  194. package/dist/features/update-index/index.js.map +0 -1
  195. package/dist/features/utils/content.d.ts +0 -30
  196. package/dist/features/utils/content.d.ts.map +0 -1
  197. package/dist/features/utils/content.js +0 -49
  198. package/dist/features/utils/content.js.map +0 -1
  199. package/dist/features/utils/index.d.ts +0 -6
  200. package/dist/features/utils/index.d.ts.map +0 -1
  201. package/dist/features/utils/index.js +0 -8
  202. package/dist/features/utils/index.js.map +0 -1
  203. package/dist/features/utils/result.d.ts +0 -37
  204. package/dist/features/utils/result.d.ts.map +0 -1
  205. package/dist/features/utils/result.js +0 -53
  206. package/dist/features/utils/result.js.map +0 -1
  207. package/dist/index.d.ts +0 -2
  208. package/dist/index.d.ts.map +0 -1
  209. package/dist/index.js +0 -4
  210. package/dist/index.js.map +0 -1
  211. package/dist/prompts/index.d.ts +0 -9
  212. package/dist/prompts/index.d.ts.map +0 -1
  213. package/dist/prompts/index.js +0 -188
  214. package/dist/prompts/index.js.map +0 -1
  215. package/dist/resources/index.d.ts +0 -3
  216. package/dist/resources/index.d.ts.map +0 -1
  217. package/dist/resources/index.js +0 -17
  218. package/dist/resources/index.js.map +0 -1
  219. package/dist/server.d.ts +0 -4
  220. package/dist/server.d.ts.map +0 -1
  221. package/dist/server.js +0 -24
  222. package/dist/server.js.map +0 -1
  223. package/dist/tools/adapter.d.ts +0 -4
  224. package/dist/tools/adapter.d.ts.map +0 -1
  225. package/dist/tools/adapter.js +0 -28
  226. package/dist/tools/adapter.js.map +0 -1
  227. package/dist/tools/index.d.ts +0 -5
  228. package/dist/tools/index.d.ts.map +0 -1
  229. package/dist/tools/index.js +0 -9
  230. package/dist/tools/index.js.map +0 -1
  231. package/dist/types/index.d.ts +0 -20
  232. package/dist/types/index.d.ts.map +0 -1
  233. package/dist/types/index.js +0 -2
  234. package/dist/types/index.js.map +0 -1
  235. package/dist/utils/colors.d.ts +0 -24
  236. package/dist/utils/colors.d.ts.map +0 -1
  237. package/dist/utils/colors.js +0 -30
  238. package/dist/utils/colors.js.map +0 -1
  239. package/dist/utils/index.d.ts +0 -4
  240. package/dist/utils/index.d.ts.map +0 -1
  241. package/dist/utils/index.js +0 -4
  242. package/dist/utils/index.js.map +0 -1
  243. package/dist/utils/logger.d.ts +0 -8
  244. package/dist/utils/logger.d.ts.map +0 -1
  245. package/dist/utils/logger.js +0 -57
  246. package/dist/utils/logger.js.map +0 -1
  247. package/dist/utils/spinner.d.ts +0 -11
  248. package/dist/utils/spinner.d.ts.map +0 -1
  249. package/dist/utils/spinner.js +0 -36
  250. package/dist/utils/spinner.js.map +0 -1
@@ -1,358 +0,0 @@
1
- /**
2
- * Update Index Feature
3
- *
4
- * Incrementally updates the codebase index by:
5
- * 1. Detecting files that have changed since last indexing
6
- * 2. Re-indexing only the changed files
7
- * 3. Removing deleted files from the index
8
- *
9
- * Uses SHA-256 hash comparison to detect real content changes.
10
- */
11
- import { z } from "zod";
12
- import * as fs from "node:fs";
13
- import * as path from "node:path";
14
- import * as crypto from "node:crypto";
15
- import ignore from "ignore";
16
- import { EMBEDDING_CONFIG } from "@config";
17
- import { chunkFile, createOllamaClient, createVectorStore, enrichChunksFromFile, shouldIndexFile, } from "@core/embeddings";
18
- import { readPathAliasesCached } from "@core/utils";
19
- /** Cache file name for storing hashes */
20
- const HASH_CACHE_FILE = ".src-index-hashes.json";
21
- export const updateIndexSchema = z.object({
22
- directory: z
23
- .string()
24
- .optional()
25
- .default(".")
26
- .describe("Path to the indexed directory"),
27
- dryRun: z
28
- .boolean()
29
- .optional()
30
- .default(false)
31
- .describe("Only report changes without updating the index"),
32
- force: z
33
- .boolean()
34
- .optional()
35
- .default(false)
36
- .describe("Force re-index of all files (ignore hash cache)"),
37
- });
38
- /**
39
- * Compute SHA-256 hash of content
40
- */
41
- function computeHash(content) {
42
- return crypto.createHash("sha256").update(content, "utf8").digest("hex");
43
- }
44
- /**
45
- * Get hash cache file path
46
- */
47
- function getHashCachePath(directory) {
48
- return path.join(directory, ".src-index", HASH_CACHE_FILE);
49
- }
50
- /**
51
- * Load hash cache from disk
52
- */
53
- function loadHashCache(directory) {
54
- const cachePath = getHashCachePath(directory);
55
- if (fs.existsSync(cachePath)) {
56
- try {
57
- const content = fs.readFileSync(cachePath, "utf-8");
58
- return JSON.parse(content);
59
- }
60
- catch {
61
- return {};
62
- }
63
- }
64
- return {};
65
- }
66
- /**
67
- * Save hash cache to disk
68
- */
69
- function saveHashCache(directory, cache) {
70
- const cachePath = getHashCachePath(directory);
71
- const cacheDir = path.dirname(cachePath);
72
- if (!fs.existsSync(cacheDir)) {
73
- fs.mkdirSync(cacheDir, { recursive: true });
74
- }
75
- fs.writeFileSync(cachePath, JSON.stringify(cache, null, 2));
76
- }
77
- /**
78
- * Create gitignore filter
79
- */
80
- function createIgnoreFilter(directory) {
81
- const ig = ignore();
82
- ig.add(["node_modules", ".git", "dist", "build", ".src-index"]);
83
- const gitignorePath = path.join(directory, ".gitignore");
84
- if (fs.existsSync(gitignorePath)) {
85
- const content = fs.readFileSync(gitignorePath, "utf-8");
86
- ig.add(content);
87
- }
88
- return ig;
89
- }
90
- /**
91
- * Check if a name starts with a dot (hidden)
92
- */
93
- function isHidden(name) {
94
- return name.startsWith(".");
95
- }
96
- /**
97
- * Recursively collect files
98
- */
99
- function collectFiles(dir, ig, baseDir) {
100
- const files = [];
101
- const entries = fs.readdirSync(dir, { withFileTypes: true });
102
- for (const entry of entries) {
103
- if (isHidden(entry.name)) {
104
- continue;
105
- }
106
- const fullPath = path.join(dir, entry.name);
107
- const relativePath = path.relative(baseDir, fullPath).replace(/\\/g, "/");
108
- if (ig.ignores(relativePath)) {
109
- continue;
110
- }
111
- if (entry.isDirectory()) {
112
- files.push(...collectFiles(fullPath, ig, baseDir));
113
- }
114
- else if (entry.isFile() && shouldIndexFile(entry.name)) {
115
- files.push(fullPath);
116
- }
117
- }
118
- return files;
119
- }
120
- /**
121
- * Execute the update_index feature
122
- */
123
- export async function execute(input) {
124
- const { directory, dryRun, force } = input;
125
- // Validate directory
126
- if (!fs.existsSync(directory)) {
127
- return {
128
- success: false,
129
- error: `Directory not found: ${directory}`,
130
- };
131
- }
132
- const absoluteDir = path.resolve(directory);
133
- // Initialize components
134
- const ollamaClient = createOllamaClient(EMBEDDING_CONFIG);
135
- const vectorStore = createVectorStore(absoluteDir, EMBEDDING_CONFIG);
136
- // Check if index exists
137
- if (!vectorStore.exists()) {
138
- return {
139
- success: false,
140
- error: `No index found for directory. Run index_codebase first: ${absoluteDir}`,
141
- };
142
- }
143
- const result = {
144
- directory: absoluteDir,
145
- dryRun,
146
- added: [],
147
- modified: [],
148
- removed: [],
149
- unchanged: 0,
150
- errors: [],
151
- };
152
- try {
153
- // Check Ollama health (only if not dry run)
154
- if (!dryRun) {
155
- const health = await ollamaClient.healthCheck();
156
- if (!health.ok) {
157
- return {
158
- success: false,
159
- error: health.error ?? "Ollama is not available",
160
- };
161
- }
162
- }
163
- // Connect to vector store
164
- await vectorStore.connect();
165
- // Load hash cache
166
- const hashCache = force ? {} : loadHashCache(absoluteDir);
167
- const newHashCache = {};
168
- // Collect current files
169
- const ig = createIgnoreFilter(absoluteDir);
170
- const currentFiles = new Set(collectFiles(absoluteDir, ig, absoluteDir));
171
- // Get indexed files from vector store
172
- const indexedFiles = new Set(await vectorStore.getIndexedFiles());
173
- // Find files to add/modify/remove
174
- const filesToProcess = [];
175
- for (const filePath of currentFiles) {
176
- const content = fs.readFileSync(filePath, "utf-8");
177
- const hash = computeHash(content);
178
- newHashCache[filePath] = hash;
179
- if (!indexedFiles.has(filePath)) {
180
- // New file
181
- result.added.push(path.relative(absoluteDir, filePath));
182
- filesToProcess.push({ path: filePath, type: "add" });
183
- }
184
- else if (hashCache[filePath] !== hash) {
185
- // Modified file
186
- result.modified.push(path.relative(absoluteDir, filePath));
187
- filesToProcess.push({ path: filePath, type: "modify" });
188
- }
189
- else {
190
- result.unchanged++;
191
- }
192
- }
193
- // Find removed files
194
- for (const filePath of indexedFiles) {
195
- if (!currentFiles.has(filePath)) {
196
- result.removed.push(path.relative(absoluteDir, filePath));
197
- }
198
- }
199
- // If dry run, just report what would be done
200
- if (dryRun) {
201
- vectorStore.close();
202
- const message = buildDryRunMessage(result);
203
- return {
204
- success: true,
205
- message,
206
- data: result,
207
- };
208
- }
209
- // Read path aliases from tsconfig.json if present
210
- const pathAliases = readPathAliasesCached(absoluteDir);
211
- // Enrichment options
212
- const enrichmentOptions = {
213
- projectRoot: absoluteDir,
214
- pathAliases,
215
- includeCrossFileContext: true,
216
- };
217
- // Process files
218
- const embeddedChunks = [];
219
- for (const { path: filePath, type } of filesToProcess) {
220
- try {
221
- // Delete existing chunks if modifying
222
- if (type === "modify") {
223
- await vectorStore.deleteByFilePath(filePath);
224
- }
225
- const content = fs.readFileSync(filePath, "utf-8");
226
- const chunks = await chunkFile(filePath, content, EMBEDDING_CONFIG);
227
- if (chunks.length === 0) {
228
- continue;
229
- }
230
- const enrichedChunks = await enrichChunksFromFile(chunks, content, enrichmentOptions);
231
- const texts = enrichedChunks.map((c) => c.enrichedContent);
232
- const embeddings = await ollamaClient.embedBatch(texts);
233
- for (let i = 0; i < enrichedChunks.length; i++) {
234
- const chunk = enrichedChunks[i];
235
- const vector = embeddings[i];
236
- if (chunk && vector) {
237
- embeddedChunks.push({
238
- id: chunk.id,
239
- content: chunk.content,
240
- filePath: chunk.filePath,
241
- language: chunk.language,
242
- startLine: chunk.startLine,
243
- endLine: chunk.endLine,
244
- symbolName: chunk.symbolName,
245
- symbolType: chunk.symbolType,
246
- vector,
247
- });
248
- }
249
- }
250
- }
251
- catch (err) {
252
- const errorMsg = err instanceof Error ? err.message : String(err);
253
- result.errors.push(`Error processing ${filePath}: ${errorMsg}`);
254
- }
255
- }
256
- // Add new chunks
257
- if (embeddedChunks.length > 0) {
258
- await vectorStore.addChunks(embeddedChunks);
259
- }
260
- // Remove deleted files
261
- for (const relativePath of result.removed) {
262
- const filePath = path.join(absoluteDir, relativePath);
263
- await vectorStore.deleteByFilePath(filePath);
264
- }
265
- // Save new hash cache
266
- saveHashCache(absoluteDir, newHashCache);
267
- vectorStore.close();
268
- const message = buildResultMessage(result);
269
- return {
270
- success: true,
271
- message,
272
- data: result,
273
- };
274
- }
275
- catch (err) {
276
- vectorStore.close();
277
- const errorMsg = err instanceof Error ? err.message : String(err);
278
- return {
279
- success: false,
280
- error: `Update failed: ${errorMsg}`,
281
- };
282
- }
283
- }
284
- /**
285
- * Build message for dry run
286
- */
287
- function buildDryRunMessage(result) {
288
- const lines = ["Dry run - changes detected:"];
289
- if (result.added.length > 0) {
290
- lines.push(`\nFiles to add (${String(result.added.length)}):`);
291
- for (const f of result.added.slice(0, 10)) {
292
- lines.push(` + ${f}`);
293
- }
294
- if (result.added.length > 10) {
295
- lines.push(` ... and ${String(result.added.length - 10)} more`);
296
- }
297
- }
298
- if (result.modified.length > 0) {
299
- lines.push(`\nFiles to update (${String(result.modified.length)}):`);
300
- for (const f of result.modified.slice(0, 10)) {
301
- lines.push(` ~ ${f}`);
302
- }
303
- if (result.modified.length > 10) {
304
- lines.push(` ... and ${String(result.modified.length - 10)} more`);
305
- }
306
- }
307
- if (result.removed.length > 0) {
308
- lines.push(`\nFiles to remove (${String(result.removed.length)}):`);
309
- for (const f of result.removed.slice(0, 10)) {
310
- lines.push(` - ${f}`);
311
- }
312
- if (result.removed.length > 10) {
313
- lines.push(` ... and ${String(result.removed.length - 10)} more`);
314
- }
315
- }
316
- lines.push(`\nUnchanged: ${String(result.unchanged)} files`);
317
- if (result.added.length === 0 &&
318
- result.modified.length === 0 &&
319
- result.removed.length === 0) {
320
- return "Index is up to date - no changes detected.";
321
- }
322
- lines.push("\nRun without --dryRun to apply changes.");
323
- return lines.join("\n");
324
- }
325
- /**
326
- * Build message for actual update
327
- */
328
- function buildResultMessage(result) {
329
- const changes = result.added.length + result.modified.length + result.removed.length;
330
- if (changes === 0) {
331
- return "Index is up to date - no changes needed.";
332
- }
333
- const lines = ["Index updated successfully:"];
334
- if (result.added.length > 0) {
335
- lines.push(` Added: ${String(result.added.length)} files`);
336
- }
337
- if (result.modified.length > 0) {
338
- lines.push(` Modified: ${String(result.modified.length)} files`);
339
- }
340
- if (result.removed.length > 0) {
341
- lines.push(` Removed: ${String(result.removed.length)} files`);
342
- }
343
- lines.push(` Unchanged: ${String(result.unchanged)} files`);
344
- if (result.errors.length > 0) {
345
- lines.push(`\nErrors (${String(result.errors.length)}):`);
346
- for (const err of result.errors.slice(0, 5)) {
347
- lines.push(` - ${err}`);
348
- }
349
- }
350
- return lines.join("\n");
351
- }
352
- export const updateIndexFeature = {
353
- name: "update_index",
354
- description: "Refresh the search index after code changes. USE THIS instead of re-indexing - it's fast because it only processes changed files (SHA-256 hash detection). Use dryRun=true to preview changes first.",
355
- schema: updateIndexSchema,
356
- execute,
357
- };
358
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/update-index/index.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Result of reading content
3
- */
4
- export type ContentResult = {
5
- success: true;
6
- content: string;
7
- } | {
8
- success: false;
9
- error: string;
10
- };
11
- /**
12
- * Read content from either a file path or direct content string
13
- *
14
- * This is a common pattern used by multiple features that accept
15
- * either a file_path or content parameter.
16
- *
17
- * @param filePath - Optional path to file to read
18
- * @param content - Optional content string
19
- * @returns ContentResult with either the content or an error message
20
- */
21
- export declare function readContent(filePath?: string, content?: string): ContentResult;
22
- /**
23
- * Require that either filePath or content is provided
24
- *
25
- * @param filePath - Optional path to file
26
- * @param content - Optional content string
27
- * @returns True if at least one is provided
28
- */
29
- export declare function hasContentSource(filePath?: string, content?: string): boolean;
30
- //# sourceMappingURL=content.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../src/features/utils/content.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,aAAa,CAsBf;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAE7E"}
@@ -1,49 +0,0 @@
1
- /**
2
- * Content reading utilities for features
3
- *
4
- * Provides consistent file/content handling across features
5
- */
6
- import { readFileSync } from "fs";
7
- /**
8
- * Read content from either a file path or direct content string
9
- *
10
- * This is a common pattern used by multiple features that accept
11
- * either a file_path or content parameter.
12
- *
13
- * @param filePath - Optional path to file to read
14
- * @param content - Optional content string
15
- * @returns ContentResult with either the content or an error message
16
- */
17
- export function readContent(filePath, content) {
18
- // If content is provided directly, use it
19
- if (content !== undefined) {
20
- return { success: true, content };
21
- }
22
- // If file path is provided, read it
23
- if (filePath !== undefined) {
24
- try {
25
- const fileContent = readFileSync(filePath, "utf-8");
26
- return { success: true, content: fileContent };
27
- }
28
- catch (error) {
29
- const message = error instanceof Error ? error.message : String(error);
30
- return { success: false, error: `Failed to read file: ${message}` };
31
- }
32
- }
33
- // Neither provided
34
- return {
35
- success: false,
36
- error: "Either file_path or content must be provided",
37
- };
38
- }
39
- /**
40
- * Require that either filePath or content is provided
41
- *
42
- * @param filePath - Optional path to file
43
- * @param content - Optional content string
44
- * @returns True if at least one is provided
45
- */
46
- export function hasContentSource(filePath, content) {
47
- return filePath !== undefined || content !== undefined;
48
- }
49
- //# sourceMappingURL=content.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/features/utils/content.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AASlC;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CACzB,QAAiB,EACjB,OAAgB;IAEhB,0CAA0C;IAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,oCAAoC;IACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,OAAO,EAAE,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,OAAO;QACL,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,8CAA8C;KACtD,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAiB,EAAE,OAAgB;IAClE,OAAO,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,CAAC;AACzD,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Features utilities barrel export
3
- */
4
- export { hasContentSource, readContent, type ContentResult } from "./content";
5
- export { errorMessage, errorResult, successMessage, successResult, } from "./result";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAG9E,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,GACd,MAAM,UAAU,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Features utilities barrel export
3
- */
4
- // Content reading utilities
5
- export { hasContentSource, readContent } from "./content";
6
- // Result building utilities
7
- export { errorMessage, errorResult, successMessage, successResult, } from "./result";
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,4BAA4B;AAC5B,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAsB,MAAM,WAAW,CAAC;AAE9E,4BAA4B;AAC5B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,GACd,MAAM,UAAU,CAAC"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Result building utilities for features
3
- *
4
- * Provides consistent result construction patterns
5
- */
6
- import type { FeatureResult } from "@features/types";
7
- /**
8
- * Create an error result with consistent formatting
9
- *
10
- * @param action - Description of what failed (e.g., "parse file", "execute query")
11
- * @param error - The error that occurred
12
- * @returns FeatureResult with success: false
13
- */
14
- export declare function errorResult(action: string, error: unknown): FeatureResult;
15
- /**
16
- * Create a simple error result with a custom message
17
- *
18
- * @param error - The error message
19
- * @returns FeatureResult with success: false
20
- */
21
- export declare function errorMessage(error: string): FeatureResult;
22
- /**
23
- * Create a success result with data and optional message
24
- *
25
- * @param data - The data to return
26
- * @param message - Optional success message
27
- * @returns FeatureResult with success: true
28
- */
29
- export declare function successResult(data: unknown, message?: string): FeatureResult;
30
- /**
31
- * Create a success result with just a message (no data)
32
- *
33
- * @param message - The success message
34
- * @returns FeatureResult with success: true
35
- */
36
- export declare function successMessage(message: string): FeatureResult;
37
- //# sourceMappingURL=result.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../src/features/utils/result.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,aAAa,CAMzE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAKzD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAM5E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAK7D"}
@@ -1,53 +0,0 @@
1
- /**
2
- * Create an error result with consistent formatting
3
- *
4
- * @param action - Description of what failed (e.g., "parse file", "execute query")
5
- * @param error - The error that occurred
6
- * @returns FeatureResult with success: false
7
- */
8
- export function errorResult(action, error) {
9
- const message = error instanceof Error ? error.message : String(error);
10
- return {
11
- success: false,
12
- error: `Failed to ${action}: ${message}`,
13
- };
14
- }
15
- /**
16
- * Create a simple error result with a custom message
17
- *
18
- * @param error - The error message
19
- * @returns FeatureResult with success: false
20
- */
21
- export function errorMessage(error) {
22
- return {
23
- success: false,
24
- error,
25
- };
26
- }
27
- /**
28
- * Create a success result with data and optional message
29
- *
30
- * @param data - The data to return
31
- * @param message - Optional success message
32
- * @returns FeatureResult with success: true
33
- */
34
- export function successResult(data, message) {
35
- return {
36
- success: true,
37
- data,
38
- message,
39
- };
40
- }
41
- /**
42
- * Create a success result with just a message (no data)
43
- *
44
- * @param message - The success message
45
- * @returns FeatureResult with success: true
46
- */
47
- export function successMessage(message) {
48
- return {
49
- success: true,
50
- message,
51
- };
52
- }
53
- //# sourceMappingURL=result.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/features/utils/result.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,KAAc;IACxD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,aAAa,MAAM,KAAK,OAAO,EAAE;KACzC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAa,EAAE,OAAgB;IAC3D,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI;QACJ,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO;KACR,CAAC;AACJ,CAAC"}
package/dist/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js DELETED
@@ -1,4 +0,0 @@
1
- // Main entry point - starts the MCP server directly
2
- import { startServer } from "@/server";
3
- startServer().catch(console.error);
4
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,WAAW,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -1,9 +0,0 @@
1
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- /**
3
- * Register MCP prompts
4
- *
5
- * Prompts are reusable templates that help AI assistants understand
6
- * how to use SRC effectively for code search and analysis.
7
- */
8
- export declare function registerPrompts(server: McpServer): void;
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmMvD"}