@elliotding/ai-agent-mcp 0.1.31 → 0.2.1
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.
- package/dist/search/coordinator.d.ts +26 -0
- package/dist/search/coordinator.d.ts.map +1 -0
- package/dist/search/coordinator.js +85 -0
- package/dist/search/coordinator.js.map +1 -0
- package/dist/search/index.d.ts +8 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +13 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/tier1-keyword-match.d.ts +51 -0
- package/dist/search/tier1-keyword-match.d.ts.map +1 -0
- package/dist/search/tier1-keyword-match.js +132 -0
- package/dist/search/tier1-keyword-match.js.map +1 -0
- package/dist/search/tier2-fuzzy-search.d.ts +29 -0
- package/dist/search/tier2-fuzzy-search.d.ts.map +1 -0
- package/dist/search/tier2-fuzzy-search.js +105 -0
- package/dist/search/tier2-fuzzy-search.js.map +1 -0
- package/dist/tools/search-resources.d.ts.map +1 -1
- package/dist/tools/search-resources.js +15 -3
- package/dist/tools/search-resources.js.map +1 -1
- package/dist/tools/sync-resources.d.ts.map +1 -1
- package/dist/tools/sync-resources.js +50 -18
- package/dist/tools/sync-resources.js.map +1 -1
- package/dist/tools/uninstall-resource.d.ts.map +1 -1
- package/dist/tools/uninstall-resource.js +15 -7
- package/dist/tools/uninstall-resource.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search Coordinator
|
|
3
|
+
* Orchestrates Tier 1 + Tier 2 search and merges results
|
|
4
|
+
*/
|
|
5
|
+
import type { ResourceCandidate, ScoredResult } from './tier1-keyword-match';
|
|
6
|
+
export declare class SearchCoordinator {
|
|
7
|
+
private tier1;
|
|
8
|
+
private tier2;
|
|
9
|
+
constructor();
|
|
10
|
+
/**
|
|
11
|
+
* Merge results from multiple tiers (dedup + keep highest score)
|
|
12
|
+
*/
|
|
13
|
+
private mergeResults;
|
|
14
|
+
/**
|
|
15
|
+
* Execute enhanced search (two-tier architecture)
|
|
16
|
+
*
|
|
17
|
+
* Strategy:
|
|
18
|
+
* 1. Tier 1: Precise keyword matching
|
|
19
|
+
* 2. If Tier 1 has enough high-quality results (≥3 and top score ≥70), return directly
|
|
20
|
+
* 3. Otherwise, run Tier 2 fuzzy search to supplement
|
|
21
|
+
* 4. Merge and deduplicate
|
|
22
|
+
* 5. Filter very low scores (< 20)
|
|
23
|
+
*/
|
|
24
|
+
enhancedSearch(query: string, apiResults: ResourceCandidate[], maxResults?: number): ScoredResult[];
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=coordinator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/search/coordinator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE7E,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,KAAK,CAAgB;;IAO7B;;OAEG;IACH,OAAO,CAAC,YAAY;IA6BpB;;;;;;;;;OASG;IACH,cAAc,CACZ,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,iBAAiB,EAAE,EAC/B,UAAU,GAAE,MAAW,GACtB,YAAY,EAAE;CAwClB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Search Coordinator
|
|
4
|
+
* Orchestrates Tier 1 + Tier 2 search and merges results
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.SearchCoordinator = void 0;
|
|
8
|
+
const logger_1 = require("../utils/logger");
|
|
9
|
+
const tier1_keyword_match_1 = require("./tier1-keyword-match");
|
|
10
|
+
const tier2_fuzzy_search_1 = require("./tier2-fuzzy-search");
|
|
11
|
+
class SearchCoordinator {
|
|
12
|
+
tier1;
|
|
13
|
+
tier2;
|
|
14
|
+
constructor() {
|
|
15
|
+
this.tier1 = new tier1_keyword_match_1.KeywordMatcher();
|
|
16
|
+
this.tier2 = new tier2_fuzzy_search_1.FuzzySearcher();
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Merge results from multiple tiers (dedup + keep highest score)
|
|
20
|
+
*/
|
|
21
|
+
mergeResults(resultSets) {
|
|
22
|
+
const resultMap = new Map(); // key: resource.id
|
|
23
|
+
for (const results of resultSets) {
|
|
24
|
+
for (const result of results) {
|
|
25
|
+
const existing = resultMap.get(result.id);
|
|
26
|
+
if (existing) {
|
|
27
|
+
// Keep higher score, same score prefer lower tier (higher priority)
|
|
28
|
+
if (result.score > existing.score ||
|
|
29
|
+
(result.score === existing.score && result.match_tier < existing.match_tier)) {
|
|
30
|
+
resultMap.set(result.id, result);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
resultMap.set(result.id, result);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Sort: score desc → tier asc → name alpha
|
|
39
|
+
return Array.from(resultMap.values()).sort((a, b) => {
|
|
40
|
+
if (a.score !== b.score)
|
|
41
|
+
return b.score - a.score;
|
|
42
|
+
if (a.match_tier !== b.match_tier)
|
|
43
|
+
return a.match_tier - b.match_tier;
|
|
44
|
+
return a.name.localeCompare(b.name);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Execute enhanced search (two-tier architecture)
|
|
49
|
+
*
|
|
50
|
+
* Strategy:
|
|
51
|
+
* 1. Tier 1: Precise keyword matching
|
|
52
|
+
* 2. If Tier 1 has enough high-quality results (≥3 and top score ≥70), return directly
|
|
53
|
+
* 3. Otherwise, run Tier 2 fuzzy search to supplement
|
|
54
|
+
* 4. Merge and deduplicate
|
|
55
|
+
* 5. Filter very low scores (< 20)
|
|
56
|
+
*/
|
|
57
|
+
enhancedSearch(query, apiResults, maxResults = 10) {
|
|
58
|
+
logger_1.logger.info({ query, candidateCount: apiResults.length }, 'Enhanced search started');
|
|
59
|
+
// 1. Tier 1: Precise keyword matching
|
|
60
|
+
const tier1Results = this.tier1.search(query, apiResults);
|
|
61
|
+
// Filter low scores immediately
|
|
62
|
+
const tier1Filtered = tier1Results.filter((r) => r.score >= 20);
|
|
63
|
+
// If Tier 1 has enough high-quality results, return directly
|
|
64
|
+
if (tier1Filtered.length >= 3 && tier1Filtered[0] && tier1Filtered[0].score >= 70) {
|
|
65
|
+
logger_1.logger.info({ tier1Count: tier1Filtered.length, topScore: tier1Filtered[0].score }, 'Tier 1 sufficient, skipping Tier 2');
|
|
66
|
+
return tier1Filtered.slice(0, maxResults);
|
|
67
|
+
}
|
|
68
|
+
// 2. Tier 2: Fuzzy search to supplement
|
|
69
|
+
const tier2Results = this.tier2.search(query, apiResults);
|
|
70
|
+
// 3. Merge and deduplicate
|
|
71
|
+
const merged = this.mergeResults([tier1Filtered, tier2Results]);
|
|
72
|
+
// 4. Filter very low scores (< 20) and limit count
|
|
73
|
+
const filtered = merged.filter((r) => r.score >= 20).slice(0, maxResults);
|
|
74
|
+
logger_1.logger.info({
|
|
75
|
+
tier1Count: tier1Filtered.length,
|
|
76
|
+
tier2Count: tier2Results.length,
|
|
77
|
+
mergedCount: merged.length,
|
|
78
|
+
finalCount: filtered.length,
|
|
79
|
+
topScore: filtered.length > 0 && filtered[0] ? filtered[0].score : undefined,
|
|
80
|
+
}, 'Enhanced search completed');
|
|
81
|
+
return filtered;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.SearchCoordinator = SearchCoordinator;
|
|
85
|
+
//# sourceMappingURL=coordinator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../src/search/coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search Module Exports
|
|
3
|
+
*/
|
|
4
|
+
export { SearchCoordinator } from './coordinator';
|
|
5
|
+
export { KeywordMatcher } from './tier1-keyword-match';
|
|
6
|
+
export { FuzzySearcher } from './tier2-fuzzy-search';
|
|
7
|
+
export type { ResourceCandidate, ScoredResult } from './tier1-keyword-match';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Search Module Exports
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FuzzySearcher = exports.KeywordMatcher = exports.SearchCoordinator = void 0;
|
|
7
|
+
var coordinator_1 = require("./coordinator");
|
|
8
|
+
Object.defineProperty(exports, "SearchCoordinator", { enumerable: true, get: function () { return coordinator_1.SearchCoordinator; } });
|
|
9
|
+
var tier1_keyword_match_1 = require("./tier1-keyword-match");
|
|
10
|
+
Object.defineProperty(exports, "KeywordMatcher", { enumerable: true, get: function () { return tier1_keyword_match_1.KeywordMatcher; } });
|
|
11
|
+
var tier2_fuzzy_search_1 = require("./tier2-fuzzy-search");
|
|
12
|
+
Object.defineProperty(exports, "FuzzySearcher", { enumerable: true, get: function () { return tier2_fuzzy_search_1.FuzzySearcher; } });
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,6CAAkD;AAAzC,gHAAA,iBAAiB,OAAA;AAC1B,6DAAuD;AAA9C,qHAAA,cAAc,OAAA;AACvB,2DAAqD;AAA5C,mHAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier 1: Keyword Matcher
|
|
3
|
+
* Precise keyword matching with weighted scoring (name > description)
|
|
4
|
+
*/
|
|
5
|
+
export interface ResourceCandidate {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
type: string;
|
|
10
|
+
team: string;
|
|
11
|
+
version: string;
|
|
12
|
+
is_subscribed: boolean;
|
|
13
|
+
download_url?: string;
|
|
14
|
+
metadata?: unknown;
|
|
15
|
+
}
|
|
16
|
+
export interface ScoredResult extends ResourceCandidate {
|
|
17
|
+
score: number;
|
|
18
|
+
match_tier: 1 | 2;
|
|
19
|
+
match_reason: string;
|
|
20
|
+
excerpt?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare class KeywordMatcher {
|
|
23
|
+
private readonly STOP_WORDS;
|
|
24
|
+
/**
|
|
25
|
+
* Extract keywords from query (supports Chinese and English)
|
|
26
|
+
*/
|
|
27
|
+
private extractKeywords;
|
|
28
|
+
/**
|
|
29
|
+
* Escape special regex characters
|
|
30
|
+
*/
|
|
31
|
+
private escapeRegex;
|
|
32
|
+
/**
|
|
33
|
+
* Calculate match score with weighted fields
|
|
34
|
+
*
|
|
35
|
+
* Scoring rules:
|
|
36
|
+
* - name field weight: 3x
|
|
37
|
+
* - description field weight: 1x
|
|
38
|
+
* - Whole word match > partial match
|
|
39
|
+
* - If name doesn't match at all, force 70% penalty
|
|
40
|
+
*/
|
|
41
|
+
private calculateScore;
|
|
42
|
+
/**
|
|
43
|
+
* Build human-readable match reason
|
|
44
|
+
*/
|
|
45
|
+
private buildMatchReason;
|
|
46
|
+
/**
|
|
47
|
+
* Execute Tier 1 search
|
|
48
|
+
*/
|
|
49
|
+
search(query: string, candidates: ResourceCandidate[]): ScoredResult[];
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=tier1-keyword-match.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tier1-keyword-match.d.ts","sourceRoot":"","sources":["../../src/search/tier1-keyword-match.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAOxB;IAEH;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IA6CtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,YAAY,EAAE;CAgCvE"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Tier 1: Keyword Matcher
|
|
4
|
+
* Precise keyword matching with weighted scoring (name > description)
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.KeywordMatcher = void 0;
|
|
8
|
+
const logger_1 = require("../utils/logger");
|
|
9
|
+
class KeywordMatcher {
|
|
10
|
+
STOP_WORDS = new Set([
|
|
11
|
+
// English stop words
|
|
12
|
+
'a', 'an', 'and', 'are', 'as', 'at', 'be', 'by', 'for', 'from',
|
|
13
|
+
'has', 'he', 'in', 'is', 'it', 'its', 'of', 'on', 'that', 'the',
|
|
14
|
+
'to', 'was', 'will', 'with',
|
|
15
|
+
// Chinese stop words
|
|
16
|
+
'的', '是', '在', '和', '了', '有', '与', '这', '个', '我',
|
|
17
|
+
]);
|
|
18
|
+
/**
|
|
19
|
+
* Extract keywords from query (supports Chinese and English)
|
|
20
|
+
*/
|
|
21
|
+
extractKeywords(query) {
|
|
22
|
+
// Split by spaces, underscores, hyphens, and Chinese characters
|
|
23
|
+
const words = query
|
|
24
|
+
.toLowerCase()
|
|
25
|
+
.split(/[\s_\-]+/)
|
|
26
|
+
.map((w) => w.trim())
|
|
27
|
+
.filter((w) => w.length > 0);
|
|
28
|
+
// Filter out stop words
|
|
29
|
+
return words.filter((w) => !this.STOP_WORDS.has(w));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Escape special regex characters
|
|
33
|
+
*/
|
|
34
|
+
escapeRegex(str) {
|
|
35
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Calculate match score with weighted fields
|
|
39
|
+
*
|
|
40
|
+
* Scoring rules:
|
|
41
|
+
* - name field weight: 3x
|
|
42
|
+
* - description field weight: 1x
|
|
43
|
+
* - Whole word match > partial match
|
|
44
|
+
* - If name doesn't match at all, force 70% penalty
|
|
45
|
+
*/
|
|
46
|
+
calculateScore(keywords, resource) {
|
|
47
|
+
const lowerName = resource.name.toLowerCase();
|
|
48
|
+
const lowerDesc = resource.description.toLowerCase();
|
|
49
|
+
let nameMatchCount = 0;
|
|
50
|
+
let descMatchCount = 0;
|
|
51
|
+
for (const keyword of keywords) {
|
|
52
|
+
// Prefer whole word matching (using regex \b boundary)
|
|
53
|
+
const wordBoundaryRegex = new RegExp(`\\b${this.escapeRegex(keyword)}\\b`, 'i');
|
|
54
|
+
if (wordBoundaryRegex.test(resource.name)) {
|
|
55
|
+
nameMatchCount++;
|
|
56
|
+
}
|
|
57
|
+
else if (lowerName.includes(keyword)) {
|
|
58
|
+
nameMatchCount += 0.7; // Partial match penalty
|
|
59
|
+
}
|
|
60
|
+
if (wordBoundaryRegex.test(resource.description)) {
|
|
61
|
+
descMatchCount++;
|
|
62
|
+
}
|
|
63
|
+
else if (lowerDesc.includes(keyword)) {
|
|
64
|
+
descMatchCount += 0.5; // Description partial match penalty
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// ✅ Critical rule: If name doesn't match at all, force penalty
|
|
68
|
+
if (nameMatchCount === 0 && descMatchCount > 0) {
|
|
69
|
+
// Description matches but name doesn't, only give 30% of base score
|
|
70
|
+
// This ensures resources like "release-log-review" (only mentions "build info" in description)
|
|
71
|
+
// don't get high scores (e.g., 25 → 7)
|
|
72
|
+
const baseScore = (descMatchCount * 1) / keywords.length * 25;
|
|
73
|
+
return Math.floor(baseScore * 0.3); // Force 70% penalty
|
|
74
|
+
}
|
|
75
|
+
// Name has matches, calculate normally
|
|
76
|
+
const weightedScore = (nameMatchCount * 3 + descMatchCount * 1) / keywords.length;
|
|
77
|
+
let score = Math.floor(weightedScore * 25); // Map to 0-100
|
|
78
|
+
// Bonus: All keywords match in name
|
|
79
|
+
if (nameMatchCount >= keywords.length && keywords.length > 1) {
|
|
80
|
+
score = Math.min(100, score + 20);
|
|
81
|
+
}
|
|
82
|
+
return score;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Build human-readable match reason
|
|
86
|
+
*/
|
|
87
|
+
buildMatchReason(keywords, resource) {
|
|
88
|
+
const lowerName = resource.name.toLowerCase();
|
|
89
|
+
const lowerDesc = resource.description.toLowerCase();
|
|
90
|
+
const nameMatches = keywords.filter((k) => lowerName.includes(k));
|
|
91
|
+
const descMatches = keywords.filter((k) => lowerDesc.includes(k) && !lowerName.includes(k));
|
|
92
|
+
if (nameMatches.length === keywords.length) {
|
|
93
|
+
return `Name matches all keywords: ${nameMatches.join(', ')}`;
|
|
94
|
+
}
|
|
95
|
+
if (nameMatches.length > 0) {
|
|
96
|
+
return `Name matches: ${nameMatches.join(', ')}`;
|
|
97
|
+
}
|
|
98
|
+
if (descMatches.length > 0) {
|
|
99
|
+
return `Description matches: ${descMatches.join(', ')}`;
|
|
100
|
+
}
|
|
101
|
+
return 'No keyword match';
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Execute Tier 1 search
|
|
105
|
+
*/
|
|
106
|
+
search(query, candidates) {
|
|
107
|
+
const keywords = this.extractKeywords(query);
|
|
108
|
+
if (keywords.length === 0) {
|
|
109
|
+
logger_1.logger.debug({ query }, 'No valid keywords extracted');
|
|
110
|
+
return [];
|
|
111
|
+
}
|
|
112
|
+
logger_1.logger.debug({ query, keywords }, 'Tier 1 keyword search started');
|
|
113
|
+
const results = [];
|
|
114
|
+
for (const resource of candidates) {
|
|
115
|
+
const score = this.calculateScore(keywords, resource);
|
|
116
|
+
if (score > 0) {
|
|
117
|
+
results.push({
|
|
118
|
+
...resource,
|
|
119
|
+
score,
|
|
120
|
+
match_tier: 1,
|
|
121
|
+
match_reason: this.buildMatchReason(keywords, resource),
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Sort by score descending
|
|
126
|
+
const sorted = results.sort((a, b) => b.score - a.score);
|
|
127
|
+
logger_1.logger.debug({ resultCount: sorted.length, topScore: sorted[0]?.score }, 'Tier 1 search completed');
|
|
128
|
+
return sorted;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
exports.KeywordMatcher = KeywordMatcher;
|
|
132
|
+
//# sourceMappingURL=tier1-keyword-match.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tier1-keyword-match.js","sourceRoot":"","sources":["../../src/search/tier1-keyword-match.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier 2: Fuzzy Searcher
|
|
3
|
+
* Semantic fuzzy search powered by Fuse.js
|
|
4
|
+
*/
|
|
5
|
+
import type { ResourceCandidate, ScoredResult } from './tier1-keyword-match';
|
|
6
|
+
export declare class FuzzySearcher {
|
|
7
|
+
private readonly fuseOptions;
|
|
8
|
+
/**
|
|
9
|
+
* Prepare searchable data structure
|
|
10
|
+
*/
|
|
11
|
+
private prepareSearchableData;
|
|
12
|
+
/**
|
|
13
|
+
* Convert Fuse score (0=best) to normal score (100=best)
|
|
14
|
+
*/
|
|
15
|
+
private convertFuseScore;
|
|
16
|
+
/**
|
|
17
|
+
* Extract excerpt (matched context)
|
|
18
|
+
*/
|
|
19
|
+
private extractExcerpt;
|
|
20
|
+
/**
|
|
21
|
+
* Build match reason
|
|
22
|
+
*/
|
|
23
|
+
private buildMatchReason;
|
|
24
|
+
/**
|
|
25
|
+
* Execute Tier 2 search
|
|
26
|
+
*/
|
|
27
|
+
search(query: string, candidates: ResourceCandidate[]): ScoredResult[];
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=tier2-fuzzy-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tier2-fuzzy-search.d.ts","sourceRoot":"","sources":["../../src/search/tier2-fuzzy-search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAM7E,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAY1B;IAEF;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,YAAY,EAAE;CA8BvE"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Tier 2: Fuzzy Searcher
|
|
4
|
+
* Semantic fuzzy search powered by Fuse.js
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.FuzzySearcher = void 0;
|
|
11
|
+
const fuse_js_1 = __importDefault(require("fuse.js"));
|
|
12
|
+
const logger_1 = require("../utils/logger");
|
|
13
|
+
class FuzzySearcher {
|
|
14
|
+
fuseOptions = {
|
|
15
|
+
keys: [
|
|
16
|
+
{ name: 'name', weight: 0.5 }, // name has highest weight
|
|
17
|
+
{ name: 'description', weight: 0.3 }, // description second
|
|
18
|
+
{ name: 'searchableContent', weight: 0.2 }, // combined content lowest
|
|
19
|
+
],
|
|
20
|
+
threshold: 0.35, // Balanced threshold (0.3 too strict for Chinese, 0.4 too loose)
|
|
21
|
+
includeScore: true, // Return match scores
|
|
22
|
+
minMatchCharLength: 2, // Keep 2 for Chinese (Chinese chars are 2-3 bytes)
|
|
23
|
+
ignoreLocation: true, // Don't restrict match position
|
|
24
|
+
useExtendedSearch: false, // Don't need advanced query syntax
|
|
25
|
+
distance: 100, // Slightly relaxed for Chinese (was 50)
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Prepare searchable data structure
|
|
29
|
+
*/
|
|
30
|
+
prepareSearchableData(candidates) {
|
|
31
|
+
return candidates.map((resource) => ({
|
|
32
|
+
...resource,
|
|
33
|
+
searchableContent: `${resource.name} ${resource.description}`,
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Convert Fuse score (0=best) to normal score (100=best)
|
|
38
|
+
*/
|
|
39
|
+
convertFuseScore(fuseScore) {
|
|
40
|
+
const score = fuseScore ?? 0;
|
|
41
|
+
return Math.max(0, Math.min(100, Math.floor((1 - score) * 100)));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Extract excerpt (matched context)
|
|
45
|
+
*/
|
|
46
|
+
extractExcerpt(text, query, maxLength = 150) {
|
|
47
|
+
const lowerText = text.toLowerCase();
|
|
48
|
+
const lowerQuery = query.toLowerCase();
|
|
49
|
+
const index = lowerText.indexOf(lowerQuery);
|
|
50
|
+
if (index === -1) {
|
|
51
|
+
// No exact match, return first 150 chars
|
|
52
|
+
return text.length > maxLength ? text.substring(0, maxLength) + '...' : text;
|
|
53
|
+
}
|
|
54
|
+
// Extract 50 chars before and after match
|
|
55
|
+
const start = Math.max(0, index - 50);
|
|
56
|
+
const end = Math.min(text.length, index + query.length + 50);
|
|
57
|
+
let excerpt = text.substring(start, end);
|
|
58
|
+
if (start > 0)
|
|
59
|
+
excerpt = '...' + excerpt;
|
|
60
|
+
if (end < text.length)
|
|
61
|
+
excerpt = excerpt + '...';
|
|
62
|
+
return excerpt;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Build match reason
|
|
66
|
+
*/
|
|
67
|
+
buildMatchReason(query, resource) {
|
|
68
|
+
const lowerName = resource.name.toLowerCase();
|
|
69
|
+
const lowerDesc = resource.description.toLowerCase();
|
|
70
|
+
const lowerQuery = query.toLowerCase();
|
|
71
|
+
if (lowerName.includes(lowerQuery)) {
|
|
72
|
+
return `Name contains: "${query}"`;
|
|
73
|
+
}
|
|
74
|
+
if (lowerDesc.includes(lowerQuery)) {
|
|
75
|
+
return `Description mentions: "${query}"`;
|
|
76
|
+
}
|
|
77
|
+
return `Content semantically matches: "${query}"`;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Execute Tier 2 search
|
|
81
|
+
*/
|
|
82
|
+
search(query, candidates) {
|
|
83
|
+
logger_1.logger.debug({ query, candidateCount: candidates.length }, 'Tier 2 fuzzy search started');
|
|
84
|
+
const searchableData = this.prepareSearchableData(candidates);
|
|
85
|
+
const fuse = new fuse_js_1.default(searchableData, this.fuseOptions);
|
|
86
|
+
const fuseResults = fuse.search(query);
|
|
87
|
+
const results = fuseResults.map((result) => {
|
|
88
|
+
const score = this.convertFuseScore(result.score);
|
|
89
|
+
const resource = result.item;
|
|
90
|
+
return {
|
|
91
|
+
...resource,
|
|
92
|
+
score,
|
|
93
|
+
match_tier: 2,
|
|
94
|
+
match_reason: this.buildMatchReason(query, resource),
|
|
95
|
+
excerpt: this.extractExcerpt(resource.description, query),
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
// Filter low scores (< 40 for Tier 2, stricter than Tier 1)
|
|
99
|
+
const filtered = results.filter((r) => r.score >= 40);
|
|
100
|
+
logger_1.logger.debug({ resultCount: filtered.length, topScore: filtered[0]?.score }, 'Tier 2 search completed');
|
|
101
|
+
return filtered;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.FuzzySearcher = FuzzySearcher;
|
|
105
|
+
//# sourceMappingURL=tier2-fuzzy-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tier2-fuzzy-search.js","sourceRoot":"","sources":["../../src/search/tier2-fuzzy-search.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,sDAA6C;AAC7C,4CAAyC;AAOzC,MAAa,aAAa;IACP,WAAW,GAAqC;QAC/D,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,0BAA0B;YACzD,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,qBAAqB;YAC3D,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,0BAA0B;SACvE;QACD,SAAS,EAAE,IAAI,EAAE,iEAAiE;QAClF,YAAY,EAAE,IAAI,EAAE,sBAAsB;QAC1C,kBAAkB,EAAE,CAAC,EAAE,mDAAmD;QAC1E,cAAc,EAAE,IAAI,EAAE,gCAAgC;QACtD,iBAAiB,EAAE,KAAK,EAAE,mCAAmC;QAC7D,QAAQ,EAAE,GAAG,EAAE,wCAAwC;KACxD,CAAC;IAEF;;OAEG;IACK,qBAAqB,CAAC,UAA+B;QAC3D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACnC,GAAG,QAAQ;YACX,iBAAiB,EAAE,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE;SAC9D,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,SAA6B;QACpD,MAAM,KAAK,GAAG,SAAS,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,IAAY,EAAE,KAAa,EAAE,SAAS,GAAG,GAAG;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE5C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,yCAAyC;YACzC,OAAO,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/E,CAAC;QAED,0CAA0C;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC7D,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEzC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;QACzC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;QAEjD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAa,EAAE,QAA4B;QAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAEvC,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,OAAO,mBAAmB,KAAK,GAAG,CAAC;QACrC,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,OAAO,0BAA0B,KAAK,GAAG,CAAC;QAC5C,CAAC;QACD,OAAO,kCAAkC,KAAK,GAAG,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAa,EAAE,UAA+B;QACnD,eAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC;QAE1F,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,iBAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAmB,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;YAE7B,OAAO;gBACL,GAAG,QAAQ;gBACX,KAAK;gBACL,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC;gBACpD,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;aAC1D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAEtD,eAAM,CAAC,KAAK,CACV,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAC9D,yBAAyB,CAC1B,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA3GD,sCA2GC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-resources.d.ts","sourceRoot":"","sources":["../../src/tools/search-resources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAyB,qBAAqB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"search-resources.d.ts","sourceRoot":"","sources":["../../src/tools/search-resources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAyB,qBAAqB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAmD/F,wBAAsB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAkHjG;AAGD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B/B,CAAC"}
|
|
@@ -11,6 +11,9 @@ const client_1 = require("../api/client");
|
|
|
11
11
|
const manager_1 = require("../filesystem/manager");
|
|
12
12
|
const cursor_paths_js_1 = require("../utils/cursor-paths.js");
|
|
13
13
|
const errors_1 = require("../types/errors");
|
|
14
|
+
const search_1 = require("../search");
|
|
15
|
+
// Search coordinator singleton
|
|
16
|
+
const searchCoordinator = new search_1.SearchCoordinator();
|
|
14
17
|
// Simple in-memory cache
|
|
15
18
|
const searchCache = new Map();
|
|
16
19
|
const CACHE_TTL = 5 * 60 * 1000; // 5 minutes
|
|
@@ -76,8 +79,17 @@ async function searchResources(params) {
|
|
|
76
79
|
type: typedParams.type,
|
|
77
80
|
keyword: typedParams.keyword,
|
|
78
81
|
}, typedParams.user_token);
|
|
82
|
+
// ✅ MCP Server-side enhanced search (Tier 1 + Tier 2)
|
|
83
|
+
logger_1.logger.debug({ apiResultCount: searchResults.results.length }, 'Applying MCP-side search enhancement...');
|
|
84
|
+
const enhancedResults = searchCoordinator.enhancedSearch(typedParams.keyword || '', searchResults.results, 20 // maxResults
|
|
85
|
+
);
|
|
86
|
+
logger_1.logger.info({
|
|
87
|
+
apiResults: searchResults.results.length,
|
|
88
|
+
enhancedResults: enhancedResults.length,
|
|
89
|
+
topScore: enhancedResults[0]?.score
|
|
90
|
+
}, 'Search enhancement applied');
|
|
79
91
|
// Check subscription and installation status for each result
|
|
80
|
-
const
|
|
92
|
+
const finalResults = await Promise.all(enhancedResults.map(async (resource) => {
|
|
81
93
|
// Check if installed locally in the Cursor directory for this resource type
|
|
82
94
|
let isInstalled = false;
|
|
83
95
|
try {
|
|
@@ -95,8 +107,8 @@ async function searchResources(params) {
|
|
|
95
107
|
}));
|
|
96
108
|
// Build final result
|
|
97
109
|
const result = {
|
|
98
|
-
total:
|
|
99
|
-
results:
|
|
110
|
+
total: finalResults.length,
|
|
111
|
+
results: finalResults,
|
|
100
112
|
};
|
|
101
113
|
// Cache the results
|
|
102
114
|
cacheResults(cacheKey, result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-resources.js","sourceRoot":"","sources":["../../src/tools/search-resources.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"search-resources.js","sourceRoot":"","sources":["../../src/tools/search-resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-resources.d.ts","sourceRoot":"","sources":["../../src/tools/sync-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAcH,OAAO,KAAK,EAEV,mBAAmB,EAEnB,UAAU,EACX,MAAM,gBAAgB,CAAC;AAmDxB,wBAAsB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"sync-resources.d.ts","sourceRoot":"","sources":["../../src/tools/sync-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAcH,OAAO,KAAK,EAEV,mBAAmB,EAEnB,UAAU,EACX,MAAM,gBAAgB,CAAC;AAmDxB,wBAAsB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAmxB7F;AAGD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyG7B,CAAC"}
|
|
@@ -614,35 +614,55 @@ async function syncResources(params) {
|
|
|
614
614
|
// identical — avoiding unnecessary disk I/O. If the local file is missing
|
|
615
615
|
// or has different content, the AI writes it unconditionally, which also
|
|
616
616
|
// recovers files that were accidentally deleted by the user.
|
|
617
|
+
//
|
|
618
|
+
// DUAL-LAYER STRATEGY (v1.6):
|
|
619
|
+
// - scope='global' → write to ~/.cursor/rules/ only (macOS support)
|
|
620
|
+
// - scope='workspace' → write to ${WORKSPACE}/.cursor/rules/ only (Windows support)
|
|
621
|
+
// - scope='all' → write to BOTH locations (maximum compatibility)
|
|
617
622
|
if (sub.type === 'rule') {
|
|
618
|
-
const typeDir = (0, cursor_paths_1.getCursorTypeDirForClient)(sub.type);
|
|
619
623
|
const writeActions = [];
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
624
|
+
// Determine target directories based on scope parameter
|
|
625
|
+
const targetDirs = [];
|
|
626
|
+
if (scope === 'global' || scope === 'all') {
|
|
627
|
+
targetDirs.push((0, cursor_paths_1.getCursorTypeDirForClient)(sub.type)); // ~/.cursor/rules/
|
|
628
|
+
}
|
|
629
|
+
if (scope === 'workspace' || scope === 'all') {
|
|
630
|
+
targetDirs.push('.cursor/rules'); // relative to workspace root
|
|
631
|
+
}
|
|
632
|
+
for (const targetDir of targetDirs) {
|
|
633
|
+
for (const file of resourceFiles) {
|
|
634
|
+
const normalised = path.normalize(file.path);
|
|
635
|
+
if (normalised.startsWith('..')) {
|
|
636
|
+
logger_1.logger.warn({ resourceId: sub.id, filePath: file.path }, 'Skipping suspicious file path');
|
|
637
|
+
continue;
|
|
638
|
+
}
|
|
639
|
+
const destPath = `${targetDir}/${normalised}`;
|
|
640
|
+
localActions.push({
|
|
641
|
+
action: 'write_file',
|
|
642
|
+
path: destPath,
|
|
643
|
+
content: file.content,
|
|
644
|
+
});
|
|
645
|
+
writeActions.push({ destPath, contentLength: file.content.length });
|
|
625
646
|
}
|
|
626
|
-
const destPath = `${typeDir}/${normalised}`;
|
|
627
|
-
localActions.push({
|
|
628
|
-
action: 'write_file',
|
|
629
|
-
path: destPath,
|
|
630
|
-
content: file.content,
|
|
631
|
-
});
|
|
632
|
-
writeActions.push({ destPath, contentLength: file.content.length });
|
|
633
647
|
}
|
|
634
648
|
logger_1.logger.info({
|
|
635
649
|
resourceId: sub.id,
|
|
636
650
|
resourceName: sub.name,
|
|
637
|
-
|
|
651
|
+
scope,
|
|
652
|
+
targetDirs,
|
|
638
653
|
fileCount: writeActions.length,
|
|
639
654
|
files: writeActions,
|
|
640
|
-
|
|
641
|
-
|
|
655
|
+
dualLayerNote: scope === 'all'
|
|
656
|
+
? 'DUAL-LAYER: Each file generates TWO independent write_file actions (global + workspace). AI must process BOTH actions separately — skipping one does NOT skip the other.'
|
|
657
|
+
: 'Single-layer sync',
|
|
658
|
+
clientSideNote: 'AI will compare file content directly; write is skipped if content is identical FOR EACH ACTION INDEPENDENTLY',
|
|
659
|
+
}, 'sync_resources: Rule — write_file actions queued for AI (dual-layer strategy)');
|
|
642
660
|
tally.synced++;
|
|
643
661
|
details.push({ id: sub.id, name: sub.name, action: 'synced', version: resourceVersion });
|
|
644
|
-
(0, logger_1.logToolStep)('sync_resources', 'Rule: write_file actions queued for AI', {
|
|
662
|
+
(0, logger_1.logToolStep)('sync_resources', 'Rule: write_file actions queued for AI (dual-layer)', {
|
|
645
663
|
resourceId: sub.id,
|
|
664
|
+
scope,
|
|
665
|
+
targetCount: targetDirs.length,
|
|
646
666
|
fileCount: resourceFiles.length,
|
|
647
667
|
});
|
|
648
668
|
continue;
|
|
@@ -795,6 +815,14 @@ exports.syncResourcesTool = {
|
|
|
795
815
|
' (3) SKIP the write if they are EXACTLY equal — the file is already up-to-date. ' +
|
|
796
816
|
' (4) Otherwise, create any missing parent directories and write the file. ' +
|
|
797
817
|
' (5) If `mode` field is present (e.g. "0755"), set file permissions using fs.chmod() on Unix systems. ' +
|
|
818
|
+
' CRITICAL — DUAL-LAYER RULE SYNC (when scope=all): ' +
|
|
819
|
+
' When syncing Rule resources with scope=all, the server generates TWO INDEPENDENT write_file actions: ' +
|
|
820
|
+
' one for global (~/.cursor/rules/) and one for workspace (<workspace>/.cursor/rules/). ' +
|
|
821
|
+
' The AI MUST process EACH action independently with its own content comparison: ' +
|
|
822
|
+
' - Action #1: Compare ~/.cursor/rules/xxx.mdc content → skip if identical, write if different. ' +
|
|
823
|
+
' - Action #2: Compare .cursor/rules/xxx.mdc content → skip if identical, write if different. ' +
|
|
824
|
+
' NEVER assume both locations have the same content. NEVER skip action #2 just because action #1 was skipped. ' +
|
|
825
|
+
' Example: global is v2.0 (skip), workspace is v1.0 (must update) — both actions must be checked separately. ' +
|
|
798
826
|
'For merge_mcp_json actions: ' +
|
|
799
827
|
' (1) If the action has `skip_if_exists: true` AND `mcpServers[server_name]` already exists ' +
|
|
800
828
|
' in ~/.cursor/mcp.json, SKIP this action entirely — the server is already configured ' +
|
|
@@ -812,7 +840,11 @@ exports.syncResourcesTool = {
|
|
|
812
840
|
},
|
|
813
841
|
scope: {
|
|
814
842
|
type: 'string',
|
|
815
|
-
description: 'Installation scope
|
|
843
|
+
description: 'Installation scope for Rule resources: ' +
|
|
844
|
+
'global (~/.cursor/rules/ - works on macOS), ' +
|
|
845
|
+
'workspace (<workspace>/.cursor/rules/ - works on Windows + macOS), ' +
|
|
846
|
+
'all (both locations - maximum compatibility). ' +
|
|
847
|
+
'Command/Skill/MCP resources ignore this parameter (always registered as MCP Prompts or global).',
|
|
816
848
|
enum: ['global', 'workspace', 'all'],
|
|
817
849
|
default: 'global',
|
|
818
850
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-resources.js","sourceRoot":"","sources":["../../src/tools/sync-resources.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-resources.js","sourceRoot":"","sources":["../../src/tools/sync-resources.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEH,sCAmxBC;AAv1BD,gDAAkC;AAClC,2CAA6B;AAC7B,4CAAkF;AAClF,0CAA0C;AAC1C,sEAAoE;AACpE,wDAK+B;AAC/B,4CAAiD;AAOjD,oDAAkD;AAClD,kDAAoD;AAyBpD,MAAM,aAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;AAExD,SAAS,YAAY,CAAC,SAAiB,EAAE,UAAkB;IACzD,OAAO,GAAG,SAAS,KAAK,UAAU,EAAE,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,SAAS,6BAA6B,CAAC,OAAe;IACpD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAGM,KAAK,UAAU,aAAa,CAAC,MAAe;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,MAAM,WAAW,GAAG,MAA6B,CAAC;IAElD,eAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,EAAE,6BAA6B,CAAC,CAAC;IAElC,IAAA,oBAAW,EAAC,gBAAgB,EAAE,yBAAyB,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAElF,IAAI,CAAC;QACH,MAAM,IAAI,GAAQ,WAAW,CAAC,IAAI,IAAK,aAAa,CAAC;QACrD,MAAM,KAAK,GAAO,WAAW,CAAC,KAAK,IAAI,QAAQ,CAAC;QAChD,MAAM,KAAK,GAAO,WAAW,CAAC,KAAK,CAAC;QACpC,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC;QACzC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;QAE/E,IAAA,oBAAW,EAAC,gBAAgB,EAAE,sBAAsB,EAAE;YACpD,IAAI;YACJ,KAAK;YACL,KAAK;YACL,kBAAkB,EAAE,oBAAoB,CAAC,IAAI;SAC9C,CAAC,CAAC;QAEH,0EAA0E;QAC1E,IAAA,oBAAW,EAAC,gBAAgB,EAAE,yCAAyC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3F,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEtB,MAAM,aAAa,GAAG,MAAM,kBAAS,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAE7E,IAAA,oBAAW,EAAC,gBAAgB,EAAE,uBAAuB,EAAE;YACrD,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;YACzB,GAAG,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;QAEH,0EAA0E;QAC1E,IAAA,oBAAW,EAAC,gBAAgB,EAAE,8BAA8B,CAAC,CAAC;QAE9D,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,MAAM,4CAAqB,CAAC,eAAe,EAAE,CAAC;YAC/D,IAAA,oBAAW,EAAC,gBAAgB,EAAE,mCAAmC,EAAE;gBACjE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;aAC3F,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,MAAM,4CAAqB,CAAC,cAAc,EAAE,CAAC;YAChE,IAAA,oBAAW,EAAC,gBAAgB,EAAE,gCAAgC,EAAE;gBAC9D,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;gBACzB,OAAO,EAAE;oBACP,MAAM,EAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;oBAC/D,MAAM,EAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;oBAC/D,QAAQ,EAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,MAAM;oBACnE,OAAO,EAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM;iBACjE;aACF,CAAC,CAAC;QACL,CAAC;QAED,0EAA0E;QAC1E,4EAA4E;QAC5E,0EAA0E;QAC1E,4EAA4E;QAC5E,4EAA4E;QAC5E,IAAA,oBAAW,EAAC,gBAAgB,EAAE,yCAAyC,EAAE;YACvE,KAAK,EAAE,aAAa,CAAC,KAAK;SAC3B,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAE1F,MAAM,OAAO,GAKR,EAAE,CAAC;QAER,MAAM,gBAAgB,GAGjB,EAAE,CAAC;QAER,mFAAmF;QACnF,MAAM,YAAY,GAAkB,EAAE,CAAC;QAEvC,4EAA4E;QAC5E,6EAA6E;QAC7E,kFAAkF;QAClF,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5D,MAAM,GAAG,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,GAAG;gBAAE,SAAS;YAEnB,oFAAoF;YACpF,MAAM,eAAe,GAAG,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,SAAS,CAAC;YAE3D,IAAA,oBAAW,EAAC,gBAAgB,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE;gBAClE,UAAU,EAAE,GAAG,CAAC,EAAE;gBAClB,YAAY,EAAE,GAAG,CAAC,IAAI;gBACtB,YAAY,EAAE,GAAG,CAAC,IAAI;aACvB,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,4DAA4D;gBAC5D,qEAAqE;gBACrE,MAAM,QAAQ,GAAG,IAAA,oCAAqB,EAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAE3D,mEAAmE;gBACnE,uEAAuE;gBACvE,kEAAkE;gBAClE,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;oBACrB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBACnD,MAAM,IAAI,GAAG;4BACX,WAAW,EAAE,GAAG,CAAC,EAAE;4BACnB,4EAA4E;4BAC5E,aAAa,EAAE,GAAG,CAAC,IAA2B;4BAC9C,aAAa,EAAE,GAAG,CAAC,IAAI;4BACvB,IAAI,EAAI,GAA+B,CAAC,IAA2B,IAAI,SAAS;yBACjF,CAAC;wBACF,MAAM,YAAY,GAAG,wBAAa,CAAC,GAAG,CAAC,wBAAa,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;wBAC7F,IAAI,YAAY,EAAE,CAAC;4BACjB,KAAK,CAAC,MAAM,EAAE,CAAC;4BACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;wBAC3F,CAAC;6BAAM,CAAC;4BACN,KAAK,CAAC,MAAM,EAAE,CAAC;4BACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;wBAC3F,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC;4BACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;4BAC1B,KAAK,CAAC,MAAM,EAAE,CAAC;4BACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;4BACzF,IAAA,oBAAW,EAAC,gBAAgB,EAAE,uCAAuC,EAAE;gCACrE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ;6BAC7B,CAAC,CAAC;wBACL,CAAC;wBAAC,MAAM,CAAC;4BACP,KAAK,CAAC,MAAM,EAAE,CAAC;4BACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;4BACzF,IAAA,oBAAW,EAAC,gBAAgB,EAAE,+BAA+B,EAAE;gCAC7D,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ;6BAC7B,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,uEAAuE;gBACvE,2EAA2E;gBAC3E,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACnD,IAAA,oBAAW,EAAC,gBAAgB,EAAE,eAAe,GAAG,CAAC,IAAI,gBAAgB,EAAE;wBACrE,UAAU,EAAE,GAAG,CAAC,EAAE;wBAClB,YAAY,EAAE,GAAG,CAAC,IAAI;qBACvB,CAAC,CAAC;oBACH,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBACvB,MAAM,cAAc,GAAG,MAAM,kBAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;wBAC3E,IAAA,oBAAW,EAAC,gBAAgB,EAAE,iCAAiC,EAAE;4BAC/D,UAAU,EAAE,GAAG,CAAC,EAAE;4BAClB,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,MAAM;4BACtC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG;yBAC3B,CAAC,CAAC;wBAEH,0EAA0E;wBAC1E,4EAA4E;wBAC5E,6DAA6D;wBAC7D,IAAI,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;wBACvC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC7B,WAAW,GAAG,MAAM,4CAAqB,CAAC,iBAAiB,CACzD,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,IAAI,CACT,CAAC;4BACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC3B,IAAA,oBAAW,EAAC,gBAAgB,EAAE,+CAA+C,EAAE;oCAC7E,UAAU,EAAE,GAAG,CAAC,EAAE;oCAClB,SAAS,EAAE,WAAW,CAAC,MAAM;iCAC9B,CAAC,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACN,eAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,EAC9C,sEAAsE,CACvE,CAAC;4BACJ,CAAC;wBACH,CAAC;wBAED,sCAAsC;wBACtC,0EAA0E;wBAC1E,oEAAoE;wBACpE,4DAA4D;wBAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;wBACrC,MAAM,WAAW,GAAG,OAAO;4BACzB,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC;gCAC7D,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gCAC/C,WAAW,CAAC,CAAC,CAAC,CAAC;4BAClB,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC;gCAChF,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gCAC/C,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;wBAErB,MAAM,UAAU,GAAG,WAAW,EAAE,OAAO,IAAI,EAAE,CAAC;wBAE9C,oEAAoE;wBACpE,yEAAyE;wBACzE,MAAM,eAAe,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAC;wBAClE,MAAM,WAAW,GAAG,GAA8B,CAAC;wBACnD,MAAM,WAAW,GACf,eAAe;4BACd,WAAW,CAAC,WAAkC;4BAC/C,GAAG,CAAC,IAAI,CAAC;wBAEX,MAAM,IAAI,GAAG;4BACX,WAAW,EAAE,GAAG,CAAC,EAAE;4BACnB,4EAA4E;4BAC5E,aAAa,EAAE,GAAG,CAAC,IAA2B;4BAC9C,aAAa,EAAE,GAAG,CAAC,IAAI;4BACvB,IAAI,EAAG,WAAW,CAAC,IAA2B,IAAI,SAAS;4BAC3D,WAAW;4BACX,UAAU;yBACX,CAAC;wBACF,0EAA0E;wBAC1E,MAAM,cAAc,GAAG,SAAS,IAAI,EAAE,CAAC;wBACvC,MAAM,wBAAa,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;wBAEzD,wEAAwE;wBACxE,mBAAmB,CAAC,GAAG,CAAC,wBAAa,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;wBAE7D,sEAAsE;wBACtE,0DAA0D;wBAC1D,kEAAkE;wBAClE,IAAI,CAAC;4BACH,MAAM,QAAQ,GAAG,MAAM,4CAAqB,CAAC,oBAAoB,CAC/D,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,IAAI,CACT,CAAC;4BAEF,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;gCAClD,IAAA,oBAAW,EAAC,gBAAgB,EAAE,mDAAmD,EAAE;oCACjF,UAAU,EAAE,GAAG,CAAC,EAAE;oCAClB,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,MAAM;iCAC1C,CAAC,CAAC;gCAEH,oEAAoE;gCACpE,+DAA+D;gCAC/D,uFAAuF;gCACvF,MAAM,QAAQ,GAAG,GAAG,IAAA,sCAAuB,EAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gCAEpE,uEAAuE;gCACvE,6EAA6E;gCAE7E,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oCACrC,oDAAoD;oCACpD,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;oCAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;wCACjB,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,iDAAiD,CAAC,CAAC;oCACzF,CAAC;yCAAM,CAAC;wCACN,YAAY,CAAC,IAAI,CAAC;4CAChB,MAAM,EAAE,YAAY;4CACpB,IAAI,EAAE,GAAG,QAAQ,IAAI,WAAW,CAAC,aAAa,EAAE;4CAChD,OAAO,EAAE,WAAW,CAAC,OAAO;4CAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,MAAM;4CACxC,IAAI,EAAE,WAAW,CAAC,IAAI;4CACtB,qDAAqD;4CACrD,iBAAiB,EAAE,IAAI;4CACvB,6EAA6E;4CAC7E,sBAAsB,EAAE,UAAU;yCACnC,CAAC,CAAC;oCACL,CAAC;oCAED,2EAA2E;oCAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wCACtD,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;wCAC5C,IAAI,CAAC,UAAU;4CAAE,SAAS;wCAE1B,YAAY,CAAC,IAAI,CAAC;4CAChB,MAAM,EAAE,YAAY;4CACpB,IAAI,EAAE,GAAG,QAAQ,IAAI,UAAU,CAAC,aAAa,EAAE;4CAC/C,OAAO,EAAE,UAAU,CAAC,OAAO;4CAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,MAAM;4CACvC,IAAI,EAAE,UAAU,CAAC,IAAI;yCACtB,CAAC,CAAC;oCACL,CAAC;gCACH,CAAC;gCAED,IAAA,oBAAW,EAAC,gBAAgB,EAAE,kEAAkE,EAAE;oCAChG,UAAU,EAAE,GAAG,CAAC,EAAE;oCAClB,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,MAAM;iCAC1C,CAAC,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACN,IAAA,oBAAW,EAAC,gBAAgB,EAAE,sCAAsC,EAAE;oCACpE,UAAU,EAAE,GAAG,CAAC,EAAE;iCACnB,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;wBAAC,OAAO,WAAW,EAAE,CAAC;4BACrB,eAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAG,WAAqB,CAAC,OAAO,EAAE,EAC7D,oFAAoF,CACrF,CAAC;wBACJ,CAAC;wBAED,mEAAmE;wBACnE,oEAAoE;wBACpE,mEAAmE;wBACnE,oEAAoE;wBACpE,IAAI,CAAC;4BACH,MAAM,UAAU,GAAG,IAAA,oCAAqB,EAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC;4BACrE,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;4BAC5B,eAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,EAClC,sDAAsD,CACvD,CAAC;wBACJ,CAAC;wBAAC,MAAM,CAAC;4BACP,2CAA2C;wBAC7C,CAAC;wBAED,KAAK,CAAC,MAAM,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;wBACzF,IAAA,oBAAW,EAAC,gBAAgB,EAAE,GAAG,GAAG,CAAC,IAAI,2BAA2B,EAAE;4BACpE,UAAU,EAAE,GAAG,CAAC,EAAE;4BAClB,WAAW,EAAE,wBAAa,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;yBACpD,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,SAAS,EAAE,CAAC;wBACnB,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAG,SAAmB,CAAC,OAAO,EAAE,EAC3D,gDAAgD,CACjD,CAAC;wBACF,KAAK,CAAC,MAAM,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;oBAC3F,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,wEAAwE;gBACxE,uEAAuE;gBACvE,yEAAyE;gBACzE,uEAAuE;gBACvE,mEAAmE;gBACnE,iEAAiE;gBACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvD,IAAI,cAAiF,CAAC;gBAEtF,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC3C,IAAI,IAAI,KAAK,aAAa,IAAI,MAAM,EAAE,CAAC;oBACrC,mEAAmE;oBACnE,uEAAuE;oBACvE,cAAc,GAAG,MAAM,CAAC;oBACxB,IAAA,oBAAW,EAAC,gBAAgB,EAAE,qCAAqC,EAAE;wBACnE,UAAU,EAAE,GAAG,CAAC,EAAE;wBAClB,UAAU,EAAE,MAAM,CAAC,IAAI;qBACxB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,IAAA,oBAAW,EAAC,gBAAgB,EAAE,sBAAsB,EAAE;wBACpD,UAAU,EAAE,GAAG,CAAC,EAAE;wBAClB,YAAY,EAAE,GAAG,CAAC,IAAI;qBACvB,CAAC,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,MAAM,SAAS,GAAG,MAAM,kBAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;oBACtE,IAAA,oBAAW,EAAC,gBAAgB,EAAE,mBAAmB,EAAE;wBACjD,UAAU,EAAE,GAAG,CAAC,EAAE;wBAClB,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM;wBACjC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG;qBAC3B,CAAC,CAAC;oBACH,cAAc,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;oBAClE,0CAA0C;oBAC1C,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBAC9C,CAAC;gBAED,0EAA0E;gBAC1E,wEAAwE;gBACxE,0DAA0D;gBAC1D,IAAI,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC;gBACzC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,eAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAC9D,0EAA0E,CAC3E,CAAC;oBACF,MAAM,OAAO,GAAG,GAAG,CAAC,IAA4C,CAAC;oBACjE,MAAM,QAAQ,GAAG,MAAM,4CAAqB,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAClF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,aAAa,GAAG,QAAQ,CAAC;wBACzB,eAAM,CAAC,IAAI,CACT;4BACE,UAAU,EAAE,GAAG,CAAC,EAAE;4BAClB,YAAY,EAAE,GAAG,CAAC,IAAI;4BACtB,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,SAAS,EAAE,aAAa,CAAC,MAAM;4BAC/B,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;yBACxC,EACD,iDAAiD,CAClD,CAAC;wBACF,IAAA,oBAAW,EAAC,gBAAgB,EAAE,+CAA+C,EAAE;4BAC7E,UAAU,EAAE,GAAG,CAAC,EAAE;4BAClB,SAAS,EAAE,aAAa,CAAC,MAAM;yBAChC,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,eAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAC9D,gFAAgF,CACjF,CAAC;wBACF,KAAK,CAAC,MAAM,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;wBACzF,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,yEAAyE;gBACzE,oEAAoE;gBACpE,qEAAqE;gBACrE,EAAE;gBACF,4EAA4E;gBAC5E,wEAAwE;gBACxE,8CAA8C;gBAC9C,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBACvB,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,iBAAiB,CACnD,CAAC;oBACF,2CAA2C;oBAC3C,MAAM,WAAW,GAAG,GAAG,IAAA,wCAAyB,GAAE,WAAW,CAAC;oBAE9D,2EAA2E;oBAC3E,0EAA0E;oBAC1E,6EAA6E;oBAC7E,4EAA4E;oBAC5E,uDAAuD;oBACvD,IAAI,IAAI,KAAK,aAAa,IAAI,aAAa,EAAE,CAAC;wBAC5C,IAAI,GAAG,GAA4B,EAAE,CAAC;wBACtC,IAAI,CAAC;4BAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAA4B,CAAC;wBAAC,CAAC;wBAC3E,MAAM,CAAC,CAAC,8CAA8C,CAAC,CAAC;wBAExD,qDAAqD;wBACrD,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC;4BACvC,MAAM,UAAU,GAAI,GAAG,CAAC,MAAM,CAAwB,IAAI,GAAG,CAAC,IAAI,CAAC;4BACnE,IAAI,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gCACzC,eAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,EAC1D,mEAAmE,CACpE,CAAC;gCACF,KAAK,CAAC,MAAM,EAAE,CAAC;gCACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;gCACzF,SAAS;4BACX,CAAC;wBACH,CAAC;wBACD,2DAA2D;6BACtD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACrC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BACjF,IAAI,aAAa,EAAE,CAAC;gCAClB,eAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAC5E,wEAAwE,CACzE,CAAC;gCACF,KAAK,CAAC,MAAM,EAAE,CAAC;gCACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;gCACzF,SAAS;4BACX,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,eAAM,CAAC,IAAI,CACT;wBACE,UAAU,EAAE,GAAG,CAAC,EAAE;wBAClB,YAAY,EAAE,GAAG,CAAC,IAAI;wBACtB,WAAW;wBACX,gBAAgB,EAAE,CAAC,CAAC,aAAa;wBACjC,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;qBACjD,EACD,yCAAyC,CAC1C,CAAC;oBAEF,IAAI,aAAa,EAAE,CAAC;wBAClB,IAAI,GAAG,GAA4B,EAAE,CAAC;wBACtC,IAAI,CAAC;4BAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAA4B,CAAC;wBAAC,CAAC;wBAC3E,MAAM,CAAC;4BACL,eAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,EAC9C,4EAA4E,CAC7E,CAAC;wBACJ,CAAC;wBAED,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC;4BACvC,mEAAmE;4BACnE,MAAM,UAAU,GAAG,GAAG,IAAA,wCAAyB,EAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;4BACrE,MAAM,YAAY,GAAa,EAAE,CAAC;4BAClC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gCACjC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAC7C,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;oCAAE,SAAS;gCAC1C,MAAM,QAAQ,GAAG,GAAG,UAAU,IAAI,UAAU,EAAE,CAAC;gCAC/C,YAAY,CAAC,IAAI,CAAC;oCAChB,MAAM,EAAE,YAAY;oCACpB,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,IAAI,CAAC,OAAO;iCACtB,CAAC,CAAC;gCACH,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BAC9B,CAAC;4BACD,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAA2B,CAAC;4BACzD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;4BACnF,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,EAAE,CAClC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BACnF,MAAM,IAAI,GAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CACxF,CAAC;4BACF,MAAM,UAAU,GAAI,GAAG,CAAC,MAAM,CAAwB,IAAI,GAAG,CAAC,IAAI,CAAC;4BACnE,YAAY,CAAC,IAAI,CAAC;gCAChB,MAAM,EAAE,gBAAgB;gCACxB,aAAa,EAAE,WAAW;gCAC1B,WAAW,EAAE,UAAU;gCACvB,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE;gCACvB,6DAA6D;gCAC7D,uDAAuD;gCACvD,cAAc,EAAE,IAAI;gCACpB,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;oCAC1B,WAAW,EAAE,UAAU;oCACvB,UAAU,EAAE,uBAAuB,WAAW,sBAAsB,GAAG,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;iCAC5G,CAAC,CAAC,CAAC,EAAE,CAAC;6BACR,CAAC,CAAC;4BACH,eAAM,CAAC,IAAI,CACT;gCACE,UAAU,EAAE,GAAG,CAAC,EAAE;gCAClB,YAAY,EAAE,GAAG,CAAC,IAAI;gCACtB,MAAM,EAAE,GAAG;gCACX,UAAU;gCACV,WAAW;gCACX,UAAU;gCACV,UAAU,EAAE,YAAY;gCACxB,UAAU;6BACX,EACD,2EAA2E,CAC5E,CAAC;4BACF,IAAA,oBAAW,EAAC,gBAAgB,EAAE,0DAA0D,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;wBACpH,CAAC;6BAAM,CAAC;4BACN,mEAAmE;4BACnE,MAAM,aAAa,GAAa,EAAE,CAAC;4BACnC,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gCACtD,MAAM,CAAC,GAAG,KAAgC,CAAC;gCAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAA2B,CAAC;gCACvD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gCACnF,YAAY,CAAC,IAAI,CAAC;oCAChB,MAAM,EAAE,gBAAgB;oCACxB,aAAa,EAAE,WAAW;oCAC1B,WAAW,EAAE,UAAU;oCACvB,KAAK,EAAE,CAAC;oCACR,0DAA0D;oCAC1D,6DAA6D;oCAC7D,cAAc,EAAE,IAAI;oCACpB,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;wCAC1B,WAAW,EAAE,UAAU;wCACvB,UAAU,EAAE,uBAAuB,WAAW,sBAAsB,UAAU,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;qCAC9G,CAAC,CAAC,CAAC,EAAE,CAAC;iCACR,CAAC,CAAC;gCACH,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;4BACjC,CAAC;4BACD,eAAM,CAAC,IAAI,CACT;gCACE,UAAU,EAAE,GAAG,CAAC,EAAE;gCAClB,YAAY,EAAE,GAAG,CAAC,IAAI;gCACtB,MAAM,EAAE,GAAG;gCACX,WAAW;gCACX,UAAU,EAAE,aAAa;6BAC1B,EACD,8DAA8D,CAC/D,CAAC;4BACF,IAAA,oBAAW,EAAC,gBAAgB,EAAE,uCAAuC,EAAE;gCACrE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;6BACjD,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,yCAAyC;wBACzC,MAAM,UAAU,GAAG,GAAG,IAAA,wCAAyB,EAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;wBACrE,MAAM,YAAY,GAAa,EAAE,CAAC;wBAClC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;4BACjC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC7C,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;gCAAE,SAAS;4BAC1C,MAAM,QAAQ,GAAG,GAAG,UAAU,IAAI,UAAU,EAAE,CAAC;4BAC/C,YAAY,CAAC,IAAI,CAAC;gCAChB,MAAM,EAAE,YAAY;gCACpB,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,IAAI,CAAC,OAAO;6BACtB,CAAC,CAAC;4BACH,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC9B,CAAC;wBACD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;wBAClE,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;wBAClE,MAAM,SAAS,GAAG,OAAO,IAAI,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;wBACzD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;wBACzC,MAAM,SAAS,GAAG,GAAG,UAAU,IAAI,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;wBAC3D,YAAY,CAAC,IAAI,CAAC;4BAChB,MAAM,EAAE,gBAAgB;4BACxB,aAAa,EAAE,WAAW;4BAC1B,WAAW,EAAE,GAAG,CAAC,IAAI;4BACrB,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE;4BAC1C,cAAc,EAAE,IAAI;yBACrB,CAAC,CAAC;wBACH,eAAM,CAAC,IAAI,CACT;4BACE,UAAU,EAAE,GAAG,CAAC,EAAE;4BAClB,YAAY,EAAE,GAAG,CAAC,IAAI;4BACtB,MAAM,EAAE,WAAW;4BACnB,UAAU;4BACV,WAAW;4BACX,GAAG;4BACH,SAAS;4BACT,UAAU,EAAE,YAAY;yBACzB,EACD,qFAAqF,CACtF,CAAC;wBACF,IAAA,oBAAW,EAAC,gBAAgB,EAAE,4DAA4D,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;oBACtH,CAAC;oBAED,KAAK,CAAC,MAAM,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;oBACzF,SAAS;gBACX,CAAC;gBAED,yEAAyE;gBACzE,sEAAsE;gBACtE,yEAAyE;gBACzE,sEAAsE;gBACtE,0EAA0E;gBAC1E,yEAAyE;gBACzE,6DAA6D;gBAC7D,EAAE;gBACF,8BAA8B;gBAC9B,yEAAyE;gBACzE,sFAAsF;gBACtF,0EAA0E;gBAC1E,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACxB,MAAM,YAAY,GAAuD,EAAE,CAAC;oBAE5E,wDAAwD;oBACxD,MAAM,UAAU,GAAa,EAAE,CAAC;oBAChC,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;wBAC1C,UAAU,CAAC,IAAI,CAAC,IAAA,wCAAyB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,mBAAmB;oBAC5E,CAAC;oBACD,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;wBAC7C,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAE,6BAA6B;oBAClE,CAAC;oBAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;wBACnC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;4BACjC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC7C,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gCAChC,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,+BAA+B,CAAC,CAAC;gCAC1F,SAAS;4BACX,CAAC;4BACD,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;4BAC9C,YAAY,CAAC,IAAI,CAAC;gCAChB,MAAM,EAAE,YAAY;gCACpB,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,IAAI,CAAC,OAAO;6BACtB,CAAC,CAAC;4BACH,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;wBACtE,CAAC;oBACH,CAAC;oBAED,eAAM,CAAC,IAAI,CACT;wBACE,UAAU,EAAE,GAAG,CAAC,EAAE;wBAClB,YAAY,EAAE,GAAG,CAAC,IAAI;wBACtB,KAAK;wBACL,UAAU;wBACV,SAAS,EAAE,YAAY,CAAC,MAAM;wBAC9B,KAAK,EAAE,YAAY;wBACnB,aAAa,EAAE,KAAK,KAAK,KAAK;4BAC5B,CAAC,CAAC,0KAA0K;4BAC5K,CAAC,CAAC,mBAAmB;wBACvB,cAAc,EAAE,+GAA+G;qBAChI,EACD,+EAA+E,CAChF,CAAC;oBAEF,KAAK,CAAC,MAAM,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;oBACzF,IAAA,oBAAW,EAAC,gBAAgB,EAAE,qDAAqD,EAAE;wBACnF,UAAU,EAAE,GAAG,CAAC,EAAE;wBAClB,KAAK;wBACL,WAAW,EAAE,UAAU,CAAC,MAAM;wBAC9B,SAAS,EAAE,aAAa,CAAC,MAAM;qBAChC,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,uEAAuE;gBACvE,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,uCAAuC,CAAC,CAAC;gBAC7F,KAAK,CAAC,MAAM,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;YAE3F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,eAAM,CAAC,KAAK,CAAC;oBACX,UAAU,EAAE,GAAG,CAAC,EAAE;oBAClB,YAAY,EAAE,GAAG,CAAC,IAAI;oBACtB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,EAAE,yBAAyB,CAAC,CAAC;gBAE9B,KAAK,CAAC,MAAM,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;YAC9G,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,oCAAoC;QACpC,2EAA2E;QAC3E,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,wBAAa,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,0EAA0E;QAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;YACjC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;YACjF,CAAC,CAAC,GAAG,CAAC;QAER,MAAM,MAAM,GAAwB;YAClC,IAAI;YACJ,YAAY,EAAE,WAAW;YACzB,OAAO,EAAE,KAAK;YACd,OAAO;YACP,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,IAAA,oBAAW,EAAC,gBAAgB,EAAE,SAAS,EAAE,MAAiC,EAAE,QAAQ,CAAC,CAAC;QACtF,IAAA,sBAAa,EAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE9C,eAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,gBAAgB;YACtB,IAAI;YACJ,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW;YACX,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,EAAE,uCAAuC,CAAC,CAAC;QAE5C,qDAAqD;QACrD,6EAA6E;QAC7E,MAAM,eAAe,GAAG,aAAa,CAAC,aAAa;aAChD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,WAAW,GAAG,CAA4B,CAAC;YACjD,OAAO;gBACL,WAAW,EAAE,CAAC,CAAC,EAAE;gBACjB,aAAa,EAAE,CAAC,CAAC,IAAI;gBACrB,aAAa,EAAG,WAAW,CAAC,aAAoC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAC7F,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,IAAI,SAAS;YAAE,oBAAS,CAAC,qBAAqB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAE3F,gFAAgF;QAChF,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa;aAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,WAAW,GAAG,CAA4B,CAAC;YACjD,OAAO;gBACL,WAAW,EAAE,CAAC,CAAC,EAAE;gBACjB,aAAa,EAAE,CAAC,CAAC,IAAI;gBACrB,aAAa,EAAG,WAAW,CAAC,aAAoC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAC7F,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,IAAI,SAAS;YAAE,oBAAS,CAAC,oBAAoB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEzF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAEzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,eAAM,CAAC,KAAK,CAAC;YACX,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,KAAK,YAAY,KAAK;gBAC3B,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;gBAClE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACjB,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,EAAE,kCAAkC,CAAC,CAAC;QAEvC,IAAA,sBAAa,EAAC,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7G,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK,YAAY,uBAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;gBACpE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,+BAA+B;AAClB,QAAA,iBAAiB,GAAG;IAC/B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,iEAAiE;QACjE,oGAAoG;QACpG,uGAAuG;QACvG,gFAAgF;QAChF,6FAA6F;QAC7F,mFAAmF;QACnF,oFAAoF;QACpF,oJAAoJ;QACpJ,uIAAuI;QACvI,MAAM;QACN,iFAAiF;QACjF,wGAAwG;QACxG,qFAAqF;QACrF,oFAAoF;QACpF,uDAAuD;QACvD,+DAA+D;QAC/D,iFAAiF;QACjF,uDAAuD;QACvD,6FAA6F;QAC7F,iFAAiF;QACjF,IAAI;QACJ,uFAAuF;QACvF,qFAAqF;QACrF,sDAAsD;QACtD,kFAAkF;QAClF,sFAAsF;QACtF,gFAAgF;QAChF,wFAAwF;QACxF,gFAAgF;QAChF,IAAI;QACJ,0BAA0B;QAC1B,qFAAqF;QACrF,2FAA2F;QAC3F,yFAAyF;QACzF,wFAAwF;QACxF,+FAA+F;QAC/F,+FAA+F;QAC/F,4CAA4C;QAC5C,2FAA2F;QAC3F,+HAA+H;QAC/H,0HAA0H;QAC1H,sEAAsE;QACtE,6FAA6F;QAC7F,2FAA2F;QAC3F,qFAAqF;QACrF,+EAA+E;QAC/E,2GAA2G;QAC3G,sDAAsD;QACtD,2GAA2G;QAC3G,4FAA4F;QAC5F,qFAAqF;QACrF,oGAAoG;QACpG,kGAAkG;QAClG,kHAAkH;QAClH,iHAAiH;QACjH,8BAA8B;QAC9B,8FAA8F;QAC9F,4FAA4F;QAC5F,gEAAgE;QAChE,uFAAuF;QACvF,sEAAsE;IACxE,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sFAAsF;gBACnG,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC;gBACtC,OAAO,EAAE,aAAa;aACvB;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,yCAAyC;oBACzC,8CAA8C;oBAC9C,qEAAqE;oBACrE,gDAAgD;oBAChD,iGAAiG;gBACnG,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC;gBACpC,OAAO,EAAE,QAAQ;aAClB;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,8CAA8C;aAC5D;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,8EAA8E;oBAC9E,iFAAiF;aACpF;YACD,sBAAsB,EAAE;gBACtB,IAAI,EAAE,OAAO;gBACb,WAAW,EACT,qEAAqE;oBACrE,4FAA4F;oBAC5F,uFAAuF;oBACvF,qFAAqF;aACxF;SACF;KACF;IACD,OAAO,EAAE,aAAa;CACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall-resource.d.ts","sourceRoot":"","sources":["../../src/tools/uninstall-resource.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAA2B,uBAAuB,EAAe,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIhH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"uninstall-resource.d.ts","sourceRoot":"","sources":["../../src/tools/uninstall-resource.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAA2B,uBAAuB,EAAe,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIhH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CA4LrG;AAGD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;CA8BjC,CAAC"}
|
|
@@ -106,13 +106,18 @@ async function uninstallResource(params) {
|
|
|
106
106
|
const isRule = !knownType || knownType === 'rule';
|
|
107
107
|
const isMcp = !knownType || knownType === 'mcp';
|
|
108
108
|
if (isRule) {
|
|
109
|
-
// Rule: delete
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
109
|
+
// Rule: delete from BOTH global and workspace locations (dual-layer cleanup).
|
|
110
|
+
// Even if one location doesn't exist, the AI will skip gracefully (delete_file is idempotent).
|
|
111
|
+
const globalRulesDir = (0, cursor_paths_js_1.getCursorTypeDirForClient)('rule'); // ~/.cursor/rules/
|
|
112
|
+
const workspaceRulesDir = '.cursor/rules'; // relative to workspace root
|
|
113
|
+
for (const rulesDir of [globalRulesDir, workspaceRulesDir]) {
|
|
114
|
+
for (const ext of ['.mdc', '.md']) {
|
|
115
|
+
const filePath = `${rulesDir}/${pattern}${ext}`;
|
|
116
|
+
localActions.push({ action: 'delete_file', path: filePath });
|
|
117
|
+
removedResources.push({ id: pattern, name: pattern, path: filePath });
|
|
118
|
+
}
|
|
115
119
|
}
|
|
120
|
+
logger_1.logger.info({ pattern, locations: [globalRulesDir, workspaceRulesDir] }, 'Rule uninstall: queued delete_file actions for BOTH global and workspace locations');
|
|
116
121
|
}
|
|
117
122
|
if (isMcp) {
|
|
118
123
|
// MCP: delete install directory (Format A — may not exist for remote-URL MCPs)
|
|
@@ -168,8 +173,11 @@ exports.uninstallResourceTool = {
|
|
|
168
173
|
name: 'uninstall_resource',
|
|
169
174
|
description: 'Uninstall a resource from the user\'s local machine. ' +
|
|
170
175
|
'Command/Skill resources: unregisters MCP Prompt from memory and queues local script directory deletion. ' +
|
|
171
|
-
'Rule
|
|
176
|
+
'Rule resources: returns `local_actions_required` with delete_file actions for BOTH global (~/.cursor/rules/) ' +
|
|
177
|
+
'and workspace (<workspace>/.cursor/rules/) locations to ensure complete cleanup across all platforms. ' +
|
|
178
|
+
'MCP resources: returns delete_file and remove_mcp_json_entry actions. ' +
|
|
172
179
|
'For delete_file actions: delete the file or directory at the given path (recursive if flag set). ' +
|
|
180
|
+
'File not existing is NOT an error — skip silently. ' +
|
|
173
181
|
'For remove_mcp_json_entry actions: read ~/.cursor/mcp.json, delete the matching ' +
|
|
174
182
|
'mcpServers key, then write the file back. ' +
|
|
175
183
|
'Set remove_from_account: true to also cancel the server-side subscription. ' +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall-resource.js","sourceRoot":"","sources":["../../src/tools/uninstall-resource.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAUH,
|
|
1
|
+
{"version":3,"file":"uninstall-resource.js","sourceRoot":"","sources":["../../src/tools/uninstall-resource.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliotding/ai-agent-mcp",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "CSP AI Agent MCP Server - Centralized AI tools distribution and management",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"axios": "^1.6.0",
|
|
44
44
|
"dotenv": "^16.4.0",
|
|
45
45
|
"fastify": "^5.8.2",
|
|
46
|
+
"fuse.js": "^7.1.0",
|
|
46
47
|
"ioredis": "^5.10.0",
|
|
47
48
|
"lru-cache": "^11.2.6",
|
|
48
49
|
"pino": "^8.19.0",
|