@stackguide/mcp-server 2.3.2 → 3.0.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 (56) hide show
  1. package/README.md +82 -16
  2. package/dist/config/healthWeights.d.ts +87 -0
  3. package/dist/config/healthWeights.d.ts.map +1 -0
  4. package/dist/config/healthWeights.js +238 -0
  5. package/dist/config/healthWeights.js.map +1 -0
  6. package/dist/config/types.d.ts +104 -0
  7. package/dist/config/types.d.ts.map +1 -1
  8. package/dist/config/types.js.map +1 -1
  9. package/dist/handlers/generate.d.ts +24 -0
  10. package/dist/handlers/generate.d.ts.map +1 -0
  11. package/dist/handlers/generate.js +845 -0
  12. package/dist/handlers/generate.js.map +1 -0
  13. package/dist/handlers/health.d.ts +19 -0
  14. package/dist/handlers/health.d.ts.map +1 -0
  15. package/dist/handlers/health.js +401 -0
  16. package/dist/handlers/health.js.map +1 -0
  17. package/dist/handlers/help.d.ts +1 -1
  18. package/dist/handlers/help.d.ts.map +1 -1
  19. package/dist/handlers/help.js +70 -10
  20. package/dist/handlers/help.js.map +1 -1
  21. package/dist/handlers/index.d.ts +2 -0
  22. package/dist/handlers/index.d.ts.map +1 -1
  23. package/dist/handlers/index.js +2 -0
  24. package/dist/handlers/index.js.map +1 -1
  25. package/dist/handlers/review.d.ts +12 -0
  26. package/dist/handlers/review.d.ts.map +1 -1
  27. package/dist/handlers/review.js +220 -21
  28. package/dist/handlers/review.js.map +1 -1
  29. package/dist/handlers/setup.d.ts +1 -0
  30. package/dist/handlers/setup.d.ts.map +1 -1
  31. package/dist/handlers/setup.js +102 -5
  32. package/dist/handlers/setup.js.map +1 -1
  33. package/dist/index.js +6 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/services/analysisCache.d.ts +110 -0
  36. package/dist/services/analysisCache.d.ts.map +1 -0
  37. package/dist/services/analysisCache.js +233 -0
  38. package/dist/services/analysisCache.js.map +1 -0
  39. package/dist/services/codeAnalyzer.d.ts +73 -22
  40. package/dist/services/codeAnalyzer.d.ts.map +1 -1
  41. package/dist/services/codeAnalyzer.js +462 -44
  42. package/dist/services/codeAnalyzer.js.map +1 -1
  43. package/dist/services/conventionDetector.d.ts +40 -0
  44. package/dist/services/conventionDetector.d.ts.map +1 -0
  45. package/dist/services/conventionDetector.js +465 -0
  46. package/dist/services/conventionDetector.js.map +1 -0
  47. package/dist/services/cursorDirectory.d.ts +29 -2
  48. package/dist/services/cursorDirectory.d.ts.map +1 -1
  49. package/dist/services/cursorDirectory.js +260 -9
  50. package/dist/services/cursorDirectory.js.map +1 -1
  51. package/dist/tools/definitions.d.ts +125 -0
  52. package/dist/tools/definitions.d.ts.map +1 -1
  53. package/dist/tools/definitions.js +62 -1
  54. package/dist/tools/definitions.js.map +1 -1
  55. package/dist/utils/validation.d.ts +2 -2
  56. package/package.json +1 -1
@@ -3,6 +3,11 @@
3
3
  *
4
4
  * This service fetches and parses rules from cursor.directory,
5
5
  * a popular community-driven repository of cursor rules for AI coding assistants.
6
+ *
7
+ * Features:
8
+ * - Persistent disk cache for offline access
9
+ * - Automatic fallback to cached rules when offline
10
+ * - TTL-based cache invalidation
6
11
  */
7
12
  export interface CursorDirectoryRule {
8
13
  id: string;
@@ -19,12 +24,34 @@ export declare const CURSOR_DIRECTORY_CATEGORIES: readonly ["typescript", "pytho
19
24
  export type CursorDirectoryCategory = typeof CURSOR_DIRECTORY_CATEGORIES[number];
20
25
  /**
21
26
  * Fetch a single rule from cursor.directory
27
+ * Falls back to cached version if offline
22
28
  */
23
29
  export declare function fetchCursorDirectoryRule(slug: string, category?: string): Promise<CursorDirectoryRule | null>;
24
30
  /**
25
31
  * Browse rules by category
32
+ * Falls back to cached rules if offline
26
33
  */
27
34
  export declare function browseCursorDirectoryCategory(category: string): Promise<CursorDirectoryRule[]>;
35
+ /**
36
+ * Sync cache - fetch and cache popular rules for offline use
37
+ */
38
+ export declare function syncCursorDirectoryCache(): Promise<{
39
+ synced: number;
40
+ errors: number;
41
+ }>;
42
+ /**
43
+ * Check if we're currently online
44
+ */
45
+ export declare function isCurrentlyOnline(): boolean;
46
+ /**
47
+ * Get persistent cache statistics
48
+ */
49
+ export declare function getPersistentCacheStats(): {
50
+ rules: number;
51
+ categories: number;
52
+ lastSync: string | null;
53
+ isOnline: boolean;
54
+ };
28
55
  /**
29
56
  * Search for rules across cursor.directory
30
57
  */
@@ -42,11 +69,11 @@ export declare function getPopularCursorDirectoryRules(): Promise<CursorDirector
42
69
  */
43
70
  export declare function formatRuleForImport(rule: CursorDirectoryRule): string;
44
71
  /**
45
- * Clear the cursor directory cache
72
+ * Clear the cursor directory cache (both in-memory and persistent)
46
73
  */
47
74
  export declare function clearCursorDirectoryCache(): void;
48
75
  /**
49
- * Get cache stats
76
+ * Get cache stats (in-memory)
50
77
  */
51
78
  export declare function getCacheStats(): {
52
79
  rules: number;
@@ -1 +1 @@
1
- {"version":3,"file":"cursorDirectory.d.ts","sourceRoot":"","sources":["../../src/services/cursorDirectory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,eAAO,MAAM,2BAA2B,oaAuC9B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC;AA8KjF;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAiC9H;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAwCpG;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA6BzF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CAEvD;AAED;;GAEG;AACH,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAsBrF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAerE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAKrE"}
1
+ {"version":3,"file":"cursorDirectory.d.ts","sourceRoot":"","sources":["../../src/services/cursorDirectory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAgBD,eAAO,MAAM,2BAA2B,oaAuC9B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC;AAgUjF;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA4D9H;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAmEpG;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsC5F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAQA;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA6BzF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CAEvD;AAED;;GAEG;AACH,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAsBrF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAerE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAKhD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAKrE"}
@@ -3,7 +3,19 @@
3
3
  *
4
4
  * This service fetches and parses rules from cursor.directory,
5
5
  * a popular community-driven repository of cursor rules for AI coding assistants.
6
+ *
7
+ * Features:
8
+ * - Persistent disk cache for offline access
9
+ * - Automatic fallback to cached rules when offline
10
+ * - TTL-based cache invalidation
6
11
  */
12
+ import * as fs from 'fs';
13
+ import * as path from 'path';
14
+ import { logger } from '../utils/logger.js';
15
+ const CACHE_VERSION = '1.0.0';
16
+ const CACHE_DIR = '.stackguide';
17
+ const CACHE_FILE = 'cursor-rules-cache.json';
18
+ const CACHE_TTL = 7 * 24 * 60 * 60 * 1000; // 7 days
7
19
  // Categories available on cursor.directory
8
20
  export const CURSOR_DIRECTORY_CATEGORIES = [
9
21
  'typescript',
@@ -45,11 +57,140 @@ export const CURSOR_DIRECTORY_CATEGORIES = [
45
57
  'docker',
46
58
  'kubernetes'
47
59
  ];
48
- // Cache for fetched rules
60
+ // Cache for fetched rules (in-memory)
49
61
  const rulesCache = new Map();
50
62
  const categoryCache = new Map();
63
+ // Persistent cache state
64
+ let persistentCache = null;
65
+ let isOnline = true;
51
66
  // Base URL for cursor.directory
52
67
  const BASE_URL = 'https://cursor.directory';
68
+ /**
69
+ * Get the path to the persistent cache file
70
+ */
71
+ function getCacheFilePath() {
72
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '.';
73
+ return path.join(homeDir, CACHE_DIR, CACHE_FILE);
74
+ }
75
+ /**
76
+ * Load persistent cache from disk
77
+ */
78
+ function loadPersistentCache() {
79
+ if (persistentCache) {
80
+ return persistentCache;
81
+ }
82
+ const cachePath = getCacheFilePath();
83
+ try {
84
+ if (fs.existsSync(cachePath)) {
85
+ const data = fs.readFileSync(cachePath, 'utf-8');
86
+ const cache = JSON.parse(data);
87
+ if (cache.version === CACHE_VERSION) {
88
+ persistentCache = cache;
89
+ logger.debug('Loaded cursor directory cache', {
90
+ rules: Object.keys(cache.rules).length,
91
+ categories: Object.keys(cache.categories).length
92
+ });
93
+ return cache;
94
+ }
95
+ }
96
+ }
97
+ catch (error) {
98
+ logger.debug('Failed to load cursor directory cache', { error });
99
+ }
100
+ persistentCache = createEmptyCache();
101
+ return persistentCache;
102
+ }
103
+ /**
104
+ * Save persistent cache to disk
105
+ */
106
+ function savePersistentCache() {
107
+ if (!persistentCache)
108
+ return;
109
+ const cachePath = getCacheFilePath();
110
+ const cacheDir = path.dirname(cachePath);
111
+ try {
112
+ if (!fs.existsSync(cacheDir)) {
113
+ fs.mkdirSync(cacheDir, { recursive: true });
114
+ }
115
+ persistentCache.lastSync = new Date().toISOString();
116
+ fs.writeFileSync(cachePath, JSON.stringify(persistentCache, null, 2));
117
+ logger.debug('Saved cursor directory cache');
118
+ }
119
+ catch (error) {
120
+ logger.debug('Failed to save cursor directory cache', { error });
121
+ }
122
+ }
123
+ /**
124
+ * Create empty persistent cache
125
+ */
126
+ function createEmptyCache() {
127
+ return {
128
+ version: CACHE_VERSION,
129
+ lastSync: new Date().toISOString(),
130
+ rules: {},
131
+ categories: {}
132
+ };
133
+ }
134
+ /**
135
+ * Check if we have internet connectivity
136
+ */
137
+ async function checkConnectivity() {
138
+ try {
139
+ const controller = new AbortController();
140
+ const timeout = setTimeout(() => controller.abort(), 3000);
141
+ const response = await fetch(`${BASE_URL}/robots.txt`, {
142
+ method: 'HEAD',
143
+ signal: controller.signal
144
+ });
145
+ clearTimeout(timeout);
146
+ isOnline = response.ok;
147
+ return isOnline;
148
+ }
149
+ catch {
150
+ isOnline = false;
151
+ return false;
152
+ }
153
+ }
154
+ /**
155
+ * Get rule from persistent cache
156
+ */
157
+ function getCachedRule(slug, category) {
158
+ const cache = loadPersistentCache();
159
+ const cacheKey = `${category}-${slug}`;
160
+ const cached = cache.rules[cacheKey];
161
+ if (cached) {
162
+ // Check if cache is still valid (within TTL)
163
+ const fetchedAt = new Date(cached.fetchedAt).getTime();
164
+ if (Date.now() - fetchedAt < CACHE_TTL) {
165
+ return cached;
166
+ }
167
+ }
168
+ return null;
169
+ }
170
+ /**
171
+ * Store rule in persistent cache
172
+ */
173
+ function cacheRule(rule) {
174
+ const cache = loadPersistentCache();
175
+ const cacheKey = `${rule.category}-${rule.slug}`;
176
+ cache.rules[cacheKey] = rule;
177
+ savePersistentCache();
178
+ }
179
+ /**
180
+ * Store category slugs in persistent cache
181
+ */
182
+ function cacheCategory(category, slugs) {
183
+ const cache = loadPersistentCache();
184
+ cache.categories[category] = slugs;
185
+ savePersistentCache();
186
+ }
187
+ /**
188
+ * Get cached slugs for a category
189
+ */
190
+ function getCachedCategorySlugs(category) {
191
+ const cache = loadPersistentCache();
192
+ return cache.categories[category] || null;
193
+ }
53
194
  /**
54
195
  * Extract rule content from cursor.directory HTML page
55
196
  */
@@ -203,13 +344,27 @@ function parseCategoryPage(html) {
203
344
  }
204
345
  /**
205
346
  * Fetch a single rule from cursor.directory
347
+ * Falls back to cached version if offline
206
348
  */
207
349
  export async function fetchCursorDirectoryRule(slug, category = 'general') {
208
- // Check cache first
350
+ // Check in-memory cache first
209
351
  const cacheKey = `${category}-${slug}`;
210
352
  if (rulesCache.has(cacheKey)) {
211
353
  return rulesCache.get(cacheKey);
212
354
  }
355
+ // Check persistent cache
356
+ const cachedRule = getCachedRule(slug, category);
357
+ // Check connectivity
358
+ const online = await checkConnectivity();
359
+ if (!online) {
360
+ if (cachedRule) {
361
+ logger.debug('Offline: using cached rule', { slug });
362
+ rulesCache.set(cacheKey, cachedRule);
363
+ return cachedRule;
364
+ }
365
+ logger.debug('Offline: no cached rule available', { slug });
366
+ return null;
367
+ }
213
368
  try {
214
369
  const url = `${BASE_URL}/${slug}`;
215
370
  const response = await fetch(url, {
@@ -219,29 +374,63 @@ export async function fetchCursorDirectoryRule(slug, category = 'general') {
219
374
  }
220
375
  });
221
376
  if (!response.ok) {
222
- console.error(`Failed to fetch rule ${slug}: ${response.status}`);
377
+ logger.debug(`Failed to fetch rule ${slug}: ${response.status}`);
378
+ // Return cached version if available
379
+ if (cachedRule) {
380
+ rulesCache.set(cacheKey, cachedRule);
381
+ return cachedRule;
382
+ }
223
383
  return null;
224
384
  }
225
385
  const html = await response.text();
226
386
  const rule = extractRuleFromHtml(html, slug, category);
227
387
  if (rule) {
228
388
  rulesCache.set(cacheKey, rule);
389
+ cacheRule(rule); // Persist to disk
229
390
  }
230
391
  return rule;
231
392
  }
232
393
  catch (error) {
233
- console.error(`Error fetching cursor directory rule: ${error}`);
394
+ logger.debug(`Error fetching cursor directory rule: ${error}`);
395
+ // Return cached version on error
396
+ if (cachedRule) {
397
+ rulesCache.set(cacheKey, cachedRule);
398
+ return cachedRule;
399
+ }
234
400
  return null;
235
401
  }
236
402
  }
237
403
  /**
238
404
  * Browse rules by category
405
+ * Falls back to cached rules if offline
239
406
  */
240
407
  export async function browseCursorDirectoryCategory(category) {
241
- // Check cache
408
+ // Check in-memory cache
242
409
  if (categoryCache.has(category)) {
243
410
  return categoryCache.get(category);
244
411
  }
412
+ // Check connectivity
413
+ const online = await checkConnectivity();
414
+ if (!online) {
415
+ // Try to load from persistent cache
416
+ const cachedSlugs = getCachedCategorySlugs(category);
417
+ if (cachedSlugs) {
418
+ const rules = [];
419
+ for (const slug of cachedSlugs) {
420
+ const rule = getCachedRule(slug, category);
421
+ if (rule) {
422
+ rules.push(rule);
423
+ }
424
+ }
425
+ if (rules.length > 0) {
426
+ logger.debug('Offline: using cached category rules', { category, count: rules.length });
427
+ categoryCache.set(category, rules);
428
+ return rules;
429
+ }
430
+ }
431
+ logger.debug('Offline: no cached rules for category', { category });
432
+ return [];
433
+ }
245
434
  try {
246
435
  const url = `${BASE_URL}/rules/${category}`;
247
436
  const response = await fetch(url, {
@@ -251,11 +440,13 @@ export async function browseCursorDirectoryCategory(category) {
251
440
  }
252
441
  });
253
442
  if (!response.ok) {
254
- console.error(`Failed to fetch category ${category}: ${response.status}`);
443
+ logger.debug(`Failed to fetch category ${category}: ${response.status}`);
255
444
  return [];
256
445
  }
257
446
  const html = await response.text();
258
447
  const slugs = parseCategoryPage(html);
448
+ // Cache the slugs
449
+ cacheCategory(category, slugs);
259
450
  // Fetch first 10 rules to avoid too many requests
260
451
  const rules = [];
261
452
  for (const slug of slugs.slice(0, 10)) {
@@ -270,10 +461,68 @@ export async function browseCursorDirectoryCategory(category) {
270
461
  return rules;
271
462
  }
272
463
  catch (error) {
273
- console.error(`Error browsing cursor directory category: ${error}`);
464
+ logger.debug(`Error browsing cursor directory category: ${error}`);
274
465
  return [];
275
466
  }
276
467
  }
468
+ /**
469
+ * Sync cache - fetch and cache popular rules for offline use
470
+ */
471
+ export async function syncCursorDirectoryCache() {
472
+ const online = await checkConnectivity();
473
+ if (!online) {
474
+ return { synced: 0, errors: 0 };
475
+ }
476
+ let synced = 0;
477
+ let errors = 0;
478
+ // Sync popular rules
479
+ const popularSlugs = [
480
+ { slug: 'nextjs-react-typescript-cursor-rules', category: 'typescript' },
481
+ { slug: 'react-native-cursor-rules', category: 'react-native' },
482
+ { slug: 'python-django-cursor-rules', category: 'python' },
483
+ { slug: 'fastapi-python-cursor-rules', category: 'python' },
484
+ { slug: 'vuejs-typescript-best-practices', category: 'vue' },
485
+ { slug: 'tailwind-css-cursor-rules', category: 'tailwindcss' },
486
+ { slug: 'prisma-orm-cursor-rules', category: 'prisma' },
487
+ { slug: 'nestjs-clean-typescript-cursor-rules', category: 'typescript' }
488
+ ];
489
+ for (const { slug, category } of popularSlugs) {
490
+ try {
491
+ const rule = await fetchCursorDirectoryRule(slug, category);
492
+ if (rule) {
493
+ synced++;
494
+ }
495
+ else {
496
+ errors++;
497
+ }
498
+ }
499
+ catch {
500
+ errors++;
501
+ }
502
+ // Small delay to be respectful
503
+ await new Promise(resolve => setTimeout(resolve, 200));
504
+ }
505
+ logger.debug('Cursor directory cache synced', { synced, errors });
506
+ return { synced, errors };
507
+ }
508
+ /**
509
+ * Check if we're currently online
510
+ */
511
+ export function isCurrentlyOnline() {
512
+ return isOnline;
513
+ }
514
+ /**
515
+ * Get persistent cache statistics
516
+ */
517
+ export function getPersistentCacheStats() {
518
+ const cache = loadPersistentCache();
519
+ return {
520
+ rules: Object.keys(cache.rules).length,
521
+ categories: Object.keys(cache.categories).length,
522
+ lastSync: cache.lastSync,
523
+ isOnline
524
+ };
525
+ }
277
526
  /**
278
527
  * Search for rules across cursor.directory
279
528
  */
@@ -349,14 +598,16 @@ ${rule.content}
349
598
  `;
350
599
  }
351
600
  /**
352
- * Clear the cursor directory cache
601
+ * Clear the cursor directory cache (both in-memory and persistent)
353
602
  */
354
603
  export function clearCursorDirectoryCache() {
355
604
  rulesCache.clear();
356
605
  categoryCache.clear();
606
+ persistentCache = createEmptyCache();
607
+ savePersistentCache();
357
608
  }
358
609
  /**
359
- * Get cache stats
610
+ * Get cache stats (in-memory)
360
611
  */
361
612
  export function getCacheStats() {
362
613
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"cursorDirectory.js","sourceRoot":"","sources":["../../src/services/cursorDirectory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cursorDirectory.js","sourceRoot":"","sources":["../../src/services/cursorDirectory.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,9 @@ export declare const toolDefinitions: ({
33
33
  json?: undefined;
34
34
  content?: undefined;
35
35
  topic?: undefined;
36
+ options?: undefined;
37
+ projectPath?: undefined;
38
+ detailed?: undefined;
36
39
  };
37
40
  required: never[];
38
41
  };
@@ -63,6 +66,9 @@ export declare const toolDefinitions: ({
63
66
  json?: undefined;
64
67
  content?: undefined;
65
68
  topic?: undefined;
69
+ options?: undefined;
70
+ projectPath?: undefined;
71
+ detailed?: undefined;
66
72
  };
67
73
  required: never[];
68
74
  };
@@ -107,6 +113,9 @@ export declare const toolDefinitions: ({
107
113
  json?: undefined;
108
114
  content?: undefined;
109
115
  topic?: undefined;
116
+ options?: undefined;
117
+ projectPath?: undefined;
118
+ detailed?: undefined;
110
119
  };
111
120
  required: never[];
112
121
  };
@@ -145,6 +154,9 @@ export declare const toolDefinitions: ({
145
154
  json?: undefined;
146
155
  content?: undefined;
147
156
  topic?: undefined;
157
+ options?: undefined;
158
+ projectPath?: undefined;
159
+ detailed?: undefined;
148
160
  };
149
161
  required: never[];
150
162
  };
@@ -185,6 +197,9 @@ export declare const toolDefinitions: ({
185
197
  json?: undefined;
186
198
  content?: undefined;
187
199
  topic?: undefined;
200
+ options?: undefined;
201
+ projectPath?: undefined;
202
+ detailed?: undefined;
188
203
  };
189
204
  required: never[];
190
205
  };
@@ -222,6 +237,9 @@ export declare const toolDefinitions: ({
222
237
  json?: undefined;
223
238
  content?: undefined;
224
239
  topic?: undefined;
240
+ options?: undefined;
241
+ projectPath?: undefined;
242
+ detailed?: undefined;
225
243
  };
226
244
  required: never[];
227
245
  };
@@ -265,6 +283,9 @@ export declare const toolDefinitions: ({
265
283
  json?: undefined;
266
284
  content?: undefined;
267
285
  topic?: undefined;
286
+ options?: undefined;
287
+ projectPath?: undefined;
288
+ detailed?: undefined;
268
289
  };
269
290
  required: never[];
270
291
  };
@@ -305,6 +326,9 @@ export declare const toolDefinitions: ({
305
326
  urls?: undefined;
306
327
  content?: undefined;
307
328
  topic?: undefined;
329
+ options?: undefined;
330
+ projectPath?: undefined;
331
+ detailed?: undefined;
308
332
  };
309
333
  required: never[];
310
334
  };
@@ -352,6 +376,9 @@ export declare const toolDefinitions: ({
352
376
  slug?: undefined;
353
377
  urls?: undefined;
354
378
  topic?: undefined;
379
+ options?: undefined;
380
+ projectPath?: undefined;
381
+ detailed?: undefined;
355
382
  };
356
383
  required: never[];
357
384
  };
@@ -383,6 +410,104 @@ export declare const toolDefinitions: ({
383
410
  id?: undefined;
384
411
  json?: undefined;
385
412
  content?: undefined;
413
+ options?: undefined;
414
+ projectPath?: undefined;
415
+ detailed?: undefined;
416
+ };
417
+ required: never[];
418
+ };
419
+ } | {
420
+ name: string;
421
+ description: string;
422
+ inputSchema: {
423
+ type: string;
424
+ properties: {
425
+ type: {
426
+ type: string;
427
+ description: string;
428
+ enum: string[];
429
+ };
430
+ name: {
431
+ type: string;
432
+ description: string;
433
+ };
434
+ options: {
435
+ type: string;
436
+ description: string;
437
+ properties: {
438
+ typescript: {
439
+ type: string;
440
+ description: string;
441
+ };
442
+ withTests: {
443
+ type: string;
444
+ description: string;
445
+ };
446
+ withStyles: {
447
+ type: string;
448
+ description: string;
449
+ };
450
+ framework: {
451
+ type: string;
452
+ description: string;
453
+ enum: string[];
454
+ };
455
+ };
456
+ };
457
+ path?: undefined;
458
+ full?: undefined;
459
+ action?: undefined;
460
+ query?: undefined;
461
+ ids?: undefined;
462
+ category?: undefined;
463
+ file?: undefined;
464
+ url?: undefined;
465
+ project?: undefined;
466
+ focus?: undefined;
467
+ slug?: undefined;
468
+ urls?: undefined;
469
+ id?: undefined;
470
+ json?: undefined;
471
+ content?: undefined;
472
+ topic?: undefined;
473
+ projectPath?: undefined;
474
+ detailed?: undefined;
475
+ };
476
+ required: string[];
477
+ };
478
+ } | {
479
+ name: string;
480
+ description: string;
481
+ inputSchema: {
482
+ type: string;
483
+ properties: {
484
+ projectPath: {
485
+ type: string;
486
+ description: string;
487
+ };
488
+ detailed: {
489
+ type: string;
490
+ description: string;
491
+ };
492
+ path?: undefined;
493
+ type?: undefined;
494
+ full?: undefined;
495
+ action?: undefined;
496
+ query?: undefined;
497
+ ids?: undefined;
498
+ category?: undefined;
499
+ file?: undefined;
500
+ url?: undefined;
501
+ project?: undefined;
502
+ focus?: undefined;
503
+ slug?: undefined;
504
+ urls?: undefined;
505
+ name?: undefined;
506
+ id?: undefined;
507
+ json?: undefined;
508
+ content?: undefined;
509
+ topic?: undefined;
510
+ options?: undefined;
386
511
  };
387
512
  required: never[];
388
513
  };
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8P3B,CAAC"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4T3B,CAAC"}