@j0hanz/filesystem-context-mcp 1.0.6 → 1.0.8
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/config/types.d.ts +18 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/instructions.md +145 -181
- package/dist/lib/directory-helpers.d.ts +5 -0
- package/dist/lib/directory-helpers.d.ts.map +1 -0
- package/dist/lib/directory-helpers.js +39 -0
- package/dist/lib/directory-helpers.js.map +1 -0
- package/dist/lib/file-operations.d.ts.map +1 -1
- package/dist/lib/file-operations.js +32 -265
- package/dist/lib/file-operations.js.map +1 -1
- package/dist/lib/formatters.d.ts +12 -0
- package/dist/lib/formatters.d.ts.map +1 -1
- package/dist/lib/formatters.js +27 -0
- package/dist/lib/formatters.js.map +1 -1
- package/dist/lib/fs-helpers.d.ts +2 -1
- package/dist/lib/fs-helpers.d.ts.map +1 -1
- package/dist/lib/fs-helpers.js +24 -6
- package/dist/lib/fs-helpers.js.map +1 -1
- package/dist/lib/mcp-logger.d.ts +11 -0
- package/dist/lib/mcp-logger.d.ts.map +1 -0
- package/dist/lib/mcp-logger.js +45 -0
- package/dist/lib/mcp-logger.js.map +1 -0
- package/dist/lib/path-validation.d.ts +1 -6
- package/dist/lib/path-validation.d.ts.map +1 -1
- package/dist/lib/path-validation.js.map +1 -1
- package/dist/lib/search-helpers.d.ts +13 -0
- package/dist/lib/search-helpers.d.ts.map +1 -0
- package/dist/lib/search-helpers.js +181 -0
- package/dist/lib/search-helpers.js.map +1 -0
- package/dist/lib/sorting.d.ts +12 -0
- package/dist/lib/sorting.d.ts.map +1 -0
- package/dist/lib/sorting.js +41 -0
- package/dist/lib/sorting.js.map +1 -0
- package/dist/prompts/analyze-codebase.d.ts.map +1 -1
- package/dist/prompts/analyze-codebase.js +124 -38
- package/dist/prompts/analyze-codebase.js.map +1 -1
- package/dist/prompts/filesystem-query.d.ts.map +1 -1
- package/dist/prompts/filesystem-query.js +123 -68
- package/dist/prompts/filesystem-query.js.map +1 -1
- package/dist/prompts/find-duplicates.d.ts.map +1 -1
- package/dist/prompts/find-duplicates.js +56 -47
- package/dist/prompts/find-duplicates.js.map +1 -1
- package/dist/prompts/project-overview.d.ts.map +1 -1
- package/dist/prompts/project-overview.js +106 -35
- package/dist/prompts/project-overview.js.map +1 -1
- package/dist/prompts/search-and-replace.d.ts.map +1 -1
- package/dist/prompts/search-and-replace.js +104 -57
- package/dist/prompts/search-and-replace.js.map +1 -1
- package/dist/prompts/shared.d.ts +11 -0
- package/dist/prompts/shared.d.ts.map +1 -0
- package/dist/prompts/shared.js +32 -0
- package/dist/prompts/shared.js.map +1 -0
- package/dist/resources/index.d.ts +3 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +54 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/schemas/inputs.d.ts.map +1 -1
- package/dist/schemas/inputs.js +11 -7
- package/dist/schemas/inputs.js.map +1 -1
- package/dist/schemas/outputs.d.ts +10 -8
- package/dist/schemas/outputs.d.ts.map +1 -1
- package/dist/schemas/outputs.js +2 -0
- package/dist/schemas/outputs.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +22 -15
- package/dist/server.js.map +1 -1
- package/dist/tools/analyze-directory.d.ts.map +1 -1
- package/dist/tools/analyze-directory.js +12 -5
- package/dist/tools/analyze-directory.js.map +1 -1
- package/dist/tools/directory-tree.d.ts.map +1 -1
- package/dist/tools/directory-tree.js +15 -3
- package/dist/tools/directory-tree.js.map +1 -1
- package/dist/tools/get-file-info.d.ts.map +1 -1
- package/dist/tools/get-file-info.js +4 -1
- package/dist/tools/get-file-info.js.map +1 -1
- package/dist/tools/list-allowed-dirs.d.ts.map +1 -1
- package/dist/tools/list-allowed-dirs.js +15 -2
- package/dist/tools/list-allowed-dirs.js.map +1 -1
- package/dist/tools/list-directory.d.ts.map +1 -1
- package/dist/tools/list-directory.js +15 -8
- package/dist/tools/list-directory.js.map +1 -1
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +6 -2
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/read-media-file.d.ts.map +1 -1
- package/dist/tools/read-media-file.js +4 -1
- package/dist/tools/read-media-file.js.map +1 -1
- package/dist/tools/read-multiple-files.d.ts.map +1 -1
- package/dist/tools/read-multiple-files.js +6 -2
- package/dist/tools/read-multiple-files.js.map +1 -1
- package/dist/tools/search-content.d.ts.map +1 -1
- package/dist/tools/search-content.js +42 -5
- package/dist/tools/search-content.js.map +1 -1
- package/dist/tools/search-files.d.ts.map +1 -1
- package/dist/tools/search-files.js +14 -5
- package/dist/tools/search-files.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,15 +1,43 @@
|
|
|
1
1
|
import { completable } from '@modelcontextprotocol/sdk/server/completable.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import {
|
|
3
|
+
import { buildExcludes, pathCompleter } from './shared.js';
|
|
4
|
+
// Extended excludes for project overview (adds framework-specific dirs)
|
|
5
|
+
const PROJECT_EXCLUDES = buildExcludes('nextjs', 'nuxtjs');
|
|
6
|
+
// Config files to look for by category
|
|
7
|
+
const CONFIG_FILES = {
|
|
8
|
+
project: [
|
|
9
|
+
'package.json',
|
|
10
|
+
'pyproject.toml',
|
|
11
|
+
'Cargo.toml',
|
|
12
|
+
'go.mod',
|
|
13
|
+
'pom.xml',
|
|
14
|
+
'build.gradle',
|
|
15
|
+
],
|
|
16
|
+
typescript: ['tsconfig.json', 'jsconfig.json'],
|
|
17
|
+
build: [
|
|
18
|
+
'vite.config.*',
|
|
19
|
+
'webpack.config.*',
|
|
20
|
+
'rollup.config.*',
|
|
21
|
+
'next.config.*',
|
|
22
|
+
'nuxt.config.*',
|
|
23
|
+
],
|
|
24
|
+
lint: ['.eslintrc*', 'eslint.config.*', '.prettierrc*', 'biome.json'],
|
|
25
|
+
docker: ['Dockerfile', 'docker-compose.yml', 'docker-compose.yaml'],
|
|
26
|
+
ci: ['.github/workflows/*.yml', '.gitlab-ci.yml'],
|
|
27
|
+
docs: ['README.md', 'CHANGELOG.md', 'CONTRIBUTING.md', 'LICENSE'],
|
|
28
|
+
env: ['.env.example', '.env.sample', '.env.template'],
|
|
29
|
+
};
|
|
30
|
+
// Build flat list of priority config files for the prompt
|
|
31
|
+
function getConfigFileList() {
|
|
32
|
+
return Object.entries(CONFIG_FILES)
|
|
33
|
+
.map(([category, files]) => `- **${category}**: ${files.slice(0, 3).join(', ')}`)
|
|
34
|
+
.join('\n');
|
|
35
|
+
}
|
|
4
36
|
export function registerProjectOverviewPrompt(server) {
|
|
5
37
|
server.registerPrompt('project-overview', {
|
|
6
|
-
description: '
|
|
38
|
+
description: 'Quick overview of project structure, tech stack, and key files',
|
|
7
39
|
argsSchema: {
|
|
8
|
-
path: completable(z.string().min(1).describe('
|
|
9
|
-
const dirs = getAllowedDirectories();
|
|
10
|
-
return dirs.filter((d) => d.toLowerCase().includes(value.toLowerCase()) ||
|
|
11
|
-
value.toLowerCase().includes(d.toLowerCase().slice(0, 10)));
|
|
12
|
-
}),
|
|
40
|
+
path: completable(z.string().min(1).describe('Project root path'), pathCompleter),
|
|
13
41
|
depth: z
|
|
14
42
|
.number()
|
|
15
43
|
.int()
|
|
@@ -17,35 +45,78 @@ export function registerProjectOverviewPrompt(server) {
|
|
|
17
45
|
.max(10)
|
|
18
46
|
.optional()
|
|
19
47
|
.default(4)
|
|
20
|
-
.describe('
|
|
48
|
+
.describe('Tree depth (1-10, default: 4)'),
|
|
49
|
+
includeCI: z
|
|
50
|
+
.boolean()
|
|
51
|
+
.optional()
|
|
52
|
+
.default(false)
|
|
53
|
+
.describe('Include CI/CD config analysis'),
|
|
21
54
|
},
|
|
22
|
-
}, ({ path, depth }) =>
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
55
|
+
}, ({ path, depth, includeCI }) => {
|
|
56
|
+
const excludesJson = JSON.stringify(PROJECT_EXCLUDES);
|
|
57
|
+
const configList = getConfigFileList();
|
|
58
|
+
// Priority files to always try reading
|
|
59
|
+
const priorityFiles = [
|
|
60
|
+
'package.json',
|
|
61
|
+
'README.md',
|
|
62
|
+
'tsconfig.json',
|
|
63
|
+
...(includeCI ? ['.github/workflows/*.yml'] : []),
|
|
64
|
+
];
|
|
65
|
+
return {
|
|
66
|
+
messages: [
|
|
67
|
+
{
|
|
68
|
+
role: 'user',
|
|
69
|
+
content: {
|
|
70
|
+
type: 'text',
|
|
71
|
+
text: `Analyze project at "${path}".
|
|
72
|
+
|
|
73
|
+
⚠️ First run \`list_allowed_directories\` to verify path is accessible.
|
|
74
|
+
|
|
75
|
+
**Default excludes:** ${PROJECT_EXCLUDES.slice(0, 4).join(', ')}
|
|
76
|
+
|
|
77
|
+
**Workflow:**
|
|
78
|
+
1. \`directory_tree\` maxDepth=${String(depth)} excludePatterns=${excludesJson} → structure
|
|
79
|
+
2. \`search_files\` pattern="*config*|*.json|*.toml|*.yml" excludePatterns=${excludesJson} → find config files
|
|
80
|
+
3. \`analyze_directory\` excludePatterns=${excludesJson} → stats & largest files
|
|
81
|
+
4. \`read_multiple_files\` → batch read found configs (priority: ${priorityFiles.join(', ')})
|
|
82
|
+
|
|
83
|
+
**Config files to look for:**
|
|
84
|
+
${configList}
|
|
85
|
+
|
|
86
|
+
**Deliverables:**
|
|
87
|
+
|
|
88
|
+
| Section | Details |
|
|
89
|
+
|---------|---------|
|
|
90
|
+
| **Tech Stack** | Languages, frameworks, runtime versions |
|
|
91
|
+
| **Package Manager** | npm/yarn/pnpm + lock file present |
|
|
92
|
+
| **Build System** | Bundler, compiler, scripts |
|
|
93
|
+
| **Folder Structure** | src/, lib/, tests/ conventions |
|
|
94
|
+
| **Entry Points** | main, bin, exports in package.json |
|
|
95
|
+
| **Dependencies** | Key deps vs devDeps, outdated indicators |
|
|
96
|
+
| **Code Quality** | Linting, formatting, type checking setup |
|
|
97
|
+
${includeCI ? '| **CI/CD** | Workflows, test/deploy pipelines |' : ''}
|
|
98
|
+
|
|
99
|
+
**Output Format:**
|
|
100
|
+
\`\`\`
|
|
101
|
+
## Project: {name}
|
|
102
|
+
**Type**: {monorepo|library|application|cli}
|
|
103
|
+
**Stack**: {languages} + {frameworks}
|
|
104
|
+
**Build**: {tool} → {output}
|
|
105
|
+
|
|
106
|
+
### Structure
|
|
107
|
+
{tree summary}
|
|
108
|
+
|
|
109
|
+
### Key Findings
|
|
110
|
+
- {finding 1}
|
|
111
|
+
- {finding 2}
|
|
112
|
+
|
|
113
|
+
### Recommendations
|
|
114
|
+
- {recommendation if any}
|
|
115
|
+
\`\`\``,
|
|
116
|
+
},
|
|
46
117
|
},
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
})
|
|
118
|
+
],
|
|
119
|
+
};
|
|
120
|
+
});
|
|
50
121
|
}
|
|
51
122
|
//# sourceMappingURL=project-overview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-overview.js","sourceRoot":"","sources":["../../src/prompts/project-overview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAG9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"project-overview.js","sourceRoot":"","sources":["../../src/prompts/project-overview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-and-replace.d.ts","sourceRoot":"","sources":["../../src/prompts/search-and-replace.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"search-and-replace.d.ts","sourceRoot":"","sources":["../../src/prompts/search-and-replace.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkJtE"}
|
|
@@ -1,83 +1,130 @@
|
|
|
1
1
|
import { completable } from '@modelcontextprotocol/sdk/server/completable.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import {
|
|
3
|
+
import { buildExcludes, pathCompleter } from './shared.js';
|
|
4
|
+
// Extended excludes for search-and-replace (adds lock/minified files)
|
|
5
|
+
const SEARCH_REPLACE_EXCLUDES = buildExcludes('lockFiles', 'minified');
|
|
4
6
|
export function registerSearchAndReplacePrompt(server) {
|
|
5
7
|
server.registerPrompt('search-and-replace-plan', {
|
|
6
|
-
description: '
|
|
8
|
+
description: 'Plan search & replace with impact analysis and safety categorization (read-only analysis)',
|
|
7
9
|
argsSchema: {
|
|
8
|
-
path: completable(z.string().min(1).describe('Root path to search
|
|
9
|
-
const dirs = getAllowedDirectories();
|
|
10
|
-
return dirs.filter((d) => d.toLowerCase().includes(value.toLowerCase()) ||
|
|
11
|
-
value.toLowerCase().includes(d.toLowerCase().slice(0, 10)));
|
|
12
|
-
}),
|
|
10
|
+
path: completable(z.string().min(1).describe('Root path to search'), pathCompleter),
|
|
13
11
|
searchPattern: z
|
|
14
12
|
.string()
|
|
15
13
|
.min(1)
|
|
16
|
-
.describe('
|
|
17
|
-
replacement: z
|
|
18
|
-
.string()
|
|
19
|
-
.describe('Proposed replacement text or pattern'),
|
|
14
|
+
.describe('Search pattern (regex supported, use isLiteral=true for plain text)'),
|
|
15
|
+
replacement: z.string().describe('Replacement text'),
|
|
20
16
|
filePattern: z
|
|
21
17
|
.string()
|
|
22
18
|
.optional()
|
|
23
|
-
.default('
|
|
24
|
-
.describe('
|
|
19
|
+
.default('**/*.{ts,js,tsx,jsx,py,java,go,rs,md,json}')
|
|
20
|
+
.describe('File glob pattern'),
|
|
25
21
|
caseSensitive: z
|
|
26
22
|
.boolean()
|
|
27
23
|
.optional()
|
|
28
24
|
.default(false)
|
|
29
|
-
.describe('
|
|
25
|
+
.describe('Case sensitive match'),
|
|
26
|
+
wholeWord: z
|
|
27
|
+
.boolean()
|
|
28
|
+
.optional()
|
|
29
|
+
.default(false)
|
|
30
|
+
.describe('Match whole words only'),
|
|
31
|
+
isLiteral: z
|
|
32
|
+
.boolean()
|
|
33
|
+
.optional()
|
|
34
|
+
.default(false)
|
|
35
|
+
.describe('Treat search pattern as literal text (auto-escape regex chars)'),
|
|
36
|
+
maxResults: z
|
|
37
|
+
.number()
|
|
38
|
+
.int()
|
|
39
|
+
.min(1)
|
|
40
|
+
.max(500)
|
|
41
|
+
.optional()
|
|
42
|
+
.default(100)
|
|
43
|
+
.describe('Maximum matches to analyze (default: 100)'),
|
|
30
44
|
},
|
|
31
|
-
}, ({ path, searchPattern, replacement, filePattern, caseSensitive }) =>
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
45
|
+
}, ({ path, searchPattern, replacement, filePattern, caseSensitive, wholeWord, isLiteral, maxResults, }) => {
|
|
46
|
+
const excludesJson = JSON.stringify(SEARCH_REPLACE_EXCLUDES);
|
|
47
|
+
// Build search options string
|
|
48
|
+
const searchOptions = [
|
|
49
|
+
`pattern="${searchPattern}"`,
|
|
50
|
+
`filePattern="${filePattern}"`,
|
|
51
|
+
`excludePatterns=${excludesJson}`,
|
|
52
|
+
'contextLines=2',
|
|
53
|
+
`maxResults=${maxResults}`,
|
|
54
|
+
`caseSensitive=${String(caseSensitive)}`,
|
|
55
|
+
`wholeWord=${String(wholeWord)}`,
|
|
56
|
+
`isLiteral=${String(isLiteral)}`,
|
|
57
|
+
].join(' ');
|
|
58
|
+
return {
|
|
59
|
+
messages: [
|
|
60
|
+
{
|
|
61
|
+
role: 'user',
|
|
62
|
+
content: {
|
|
63
|
+
type: 'text',
|
|
64
|
+
text: `**Search & Replace Analysis** for "${path}"
|
|
65
|
+
|
|
66
|
+
⚠️ **READ-ONLY ANALYSIS** - This server cannot modify files. This prompt generates a replacement plan for manual execution or use with other tools.
|
|
67
|
+
|
|
68
|
+
⚠️ First run \`list_allowed_directories\` to verify path is accessible.
|
|
69
|
+
|
|
70
|
+
**Operation:**
|
|
71
|
+
| Field | Value |
|
|
72
|
+
|-------|-------|
|
|
73
|
+
| Search | \`${searchPattern}\` |
|
|
74
|
+
| Replace | \`${replacement}\` |
|
|
75
|
+
| Files | \`${filePattern}\` |
|
|
76
|
+
| Case-sensitive | ${String(caseSensitive)} |
|
|
77
|
+
| Whole word | ${String(wholeWord)} |
|
|
78
|
+
| Literal (no regex) | ${String(isLiteral)} |
|
|
79
|
+
| Max results | ${maxResults} |
|
|
80
|
+
|
|
81
|
+
**Default excludes:** ${SEARCH_REPLACE_EXCLUDES.slice(0, 4).join(', ')}
|
|
82
|
+
|
|
83
|
+
**Workflow:**
|
|
84
|
+
1. \`search_content\` ${searchOptions}
|
|
85
|
+
2. \`read_multiple_files\` → batch examine files with complex matches
|
|
86
|
+
|
|
87
|
+
**Categorize each match:**
|
|
88
|
+
| Category | Criteria | Action |
|
|
89
|
+
|----------|----------|--------|
|
|
90
|
+
| ✅ **Safe** | Simple, isolated, no side effects | Auto-replaceable |
|
|
91
|
+
| ⚠️ **Review** | In comments, strings, or complex context | Manual verification needed |
|
|
92
|
+
| ❌ **Skip** | False positive, partial match, generated code | Do not replace |
|
|
38
93
|
|
|
39
|
-
**
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
94
|
+
**Impact Analysis:**
|
|
95
|
+
- API changes (function signatures, exports)
|
|
96
|
+
- Import/require statements
|
|
97
|
+
- Test files & assertions
|
|
98
|
+
- Documentation & comments
|
|
99
|
+
- Config files (may need special handling)
|
|
44
100
|
|
|
45
|
-
|
|
101
|
+
**Deliverables:**
|
|
46
102
|
|
|
47
|
-
1. **
|
|
48
|
-
|
|
49
|
-
|
|
103
|
+
1. **Summary Table:**
|
|
104
|
+
| File | Matches | Safe | Review | Skip |
|
|
105
|
+
|------|---------|------|--------|------|
|
|
50
106
|
|
|
51
|
-
2. **
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
- **Skip**: False positives or matches that should not be changed
|
|
107
|
+
2. **Diff Preview** (for each match):
|
|
108
|
+
\`\`\`diff
|
|
109
|
+
- {original line with match highlighted}
|
|
110
|
+
+ {line after replacement}
|
|
111
|
+
\`\`\`
|
|
57
112
|
|
|
58
|
-
3. **
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
- Import/export statement updates needed
|
|
63
|
-
- Configuration file updates
|
|
64
|
-
- Documentation updates
|
|
65
|
-
- Test file updates
|
|
113
|
+
3. **Execution Plan:**
|
|
114
|
+
- Phase 1: Safe replacements (list files)
|
|
115
|
+
- Phase 2: Review required (list files + concerns)
|
|
116
|
+
- Phase 3: Related updates (imports, tests, docs)
|
|
66
117
|
|
|
67
|
-
4. **
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
- **Phase 3**: Related updates needed (imports, tests, docs)
|
|
72
|
-
- **Verification Steps**: How to verify the changes work correctly
|
|
118
|
+
4. **Risk Assessment:**
|
|
119
|
+
- Breaking change likelihood (High/Medium/Low)
|
|
120
|
+
- Rollback strategy
|
|
121
|
+
- Files to backup first
|
|
73
122
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
- Rollback strategy
|
|
77
|
-
- Testing recommendations`,
|
|
123
|
+
⚠️ **If matches exceed ${maxResults}**: Report total count and recommend narrowing \`filePattern\` or \`searchPattern\`.`,
|
|
124
|
+
},
|
|
78
125
|
},
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
})
|
|
126
|
+
],
|
|
127
|
+
};
|
|
128
|
+
});
|
|
82
129
|
}
|
|
83
130
|
//# sourceMappingURL=search-and-replace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-and-replace.js","sourceRoot":"","sources":["../../src/prompts/search-and-replace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAG9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"search-and-replace.js","sourceRoot":"","sources":["../../src/prompts/search-and-replace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAG9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE3D,sEAAsE;AACtE,MAAM,uBAAuB,GAAG,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAEvE,MAAM,UAAU,8BAA8B,CAAC,MAAiB;IAC9D,MAAM,CAAC,cAAc,CACnB,yBAAyB,EACzB;QACE,WAAW,EACT,2FAA2F;QAC7F,UAAU,EAAE;YACV,IAAI,EAAE,WAAW,CACf,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EACjD,aAAa,CACd;YACD,aAAa,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CACP,qEAAqE,CACtE;YACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACpD,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,OAAO,CAAC,4CAA4C,CAAC;iBACrD,QAAQ,CAAC,mBAAmB,CAAC;YAChC,aAAa,EAAE,CAAC;iBACb,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,sBAAsB,CAAC;YACnC,SAAS,EAAE,CAAC;iBACT,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,wBAAwB,CAAC;YACrC,SAAS,EAAE,CAAC;iBACT,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CACP,gEAAgE,CACjE;YACH,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,OAAO,CAAC,GAAG,CAAC;iBACZ,QAAQ,CAAC,2CAA2C,CAAC;SACzD;KACF,EACD,CAAC,EACC,IAAI,EACJ,aAAa,EACb,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,GACX,EAAE,EAAE;QACH,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAE7D,8BAA8B;QAC9B,MAAM,aAAa,GAAG;YACpB,YAAY,aAAa,GAAG;YAC5B,gBAAgB,WAAW,GAAG;YAC9B,mBAAmB,YAAY,EAAE;YACjC,gBAAgB;YAChB,cAAc,UAAU,EAAE;YAC1B,iBAAiB,MAAM,CAAC,aAAa,CAAC,EAAE;YACxC,aAAa,MAAM,CAAC,SAAS,CAAC,EAAE;YAChC,aAAa,MAAM,CAAC,SAAS,CAAC,EAAE;SACjC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEZ,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,sCAAsC,IAAI;;;;;;;;;eAS/C,aAAa;gBACZ,WAAW;cACb,WAAW;qBACJ,MAAM,CAAC,aAAa,CAAC;iBACzB,MAAM,CAAC,SAAS,CAAC;yBACT,MAAM,CAAC,SAAS,CAAC;kBACxB,UAAU;;wBAEJ,uBAAuB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;wBAG9C,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAuCZ,UAAU,sFAAsF;qBAC5G;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function pathCompleter(value: string): string[];
|
|
2
|
+
export declare const DEFAULT_EXCLUDES: readonly ["node_modules/**", ".git/**", "dist/**", "build/**", "coverage/**"];
|
|
3
|
+
export declare const EXTENDED_EXCLUDES: {
|
|
4
|
+
readonly minified: readonly ["*.min.js"];
|
|
5
|
+
readonly bundled: readonly ["*.bundle.js"];
|
|
6
|
+
readonly lockFiles: readonly ["*.lock"];
|
|
7
|
+
readonly nextjs: readonly [".next/**"];
|
|
8
|
+
readonly nuxtjs: readonly [".nuxt/**"];
|
|
9
|
+
};
|
|
10
|
+
export declare function buildExcludes(...extensions: (keyof typeof EXTENDED_EXCLUDES)[]): string[];
|
|
11
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/prompts/shared.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAQrD;AAGD,eAAO,MAAM,gBAAgB,+EAMnB,CAAC;AAGX,eAAO,MAAM,iBAAiB;;;;;;CAMpB,CAAC;AAGX,wBAAgB,aAAa,CAC3B,GAAG,UAAU,EAAE,CAAC,MAAM,OAAO,iBAAiB,CAAC,EAAE,GAChD,MAAM,EAAE,CAKV"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { getAllowedDirectories } from '../lib/path-validation.js';
|
|
2
|
+
// Path autocompletion for prompt arguments
|
|
3
|
+
export function pathCompleter(value) {
|
|
4
|
+
const dirs = getAllowedDirectories();
|
|
5
|
+
const lowerValue = value.toLowerCase();
|
|
6
|
+
return dirs.filter((d) => d.toLowerCase().includes(lowerValue) ||
|
|
7
|
+
lowerValue.includes(d.toLowerCase().slice(0, 10)));
|
|
8
|
+
}
|
|
9
|
+
// Common directories to exclude from filesystem operations
|
|
10
|
+
export const DEFAULT_EXCLUDES = [
|
|
11
|
+
'node_modules/**',
|
|
12
|
+
'.git/**',
|
|
13
|
+
'dist/**',
|
|
14
|
+
'build/**',
|
|
15
|
+
'coverage/**',
|
|
16
|
+
];
|
|
17
|
+
// Extended exclude patterns for different use cases
|
|
18
|
+
export const EXTENDED_EXCLUDES = {
|
|
19
|
+
minified: ['*.min.js'],
|
|
20
|
+
bundled: ['*.bundle.js'],
|
|
21
|
+
lockFiles: ['*.lock'],
|
|
22
|
+
nextjs: ['.next/**'],
|
|
23
|
+
nuxtjs: ['.nuxt/**'],
|
|
24
|
+
};
|
|
25
|
+
// Build exclude patterns by combining base with extensions
|
|
26
|
+
export function buildExcludes(...extensions) {
|
|
27
|
+
return [
|
|
28
|
+
...DEFAULT_EXCLUDES,
|
|
29
|
+
...extensions.flatMap((ext) => [...EXTENDED_EXCLUDES[ext]]),
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/prompts/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,2CAA2C;AAC3C,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;QACpC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACpD,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,iBAAiB;IACjB,SAAS;IACT,SAAS;IACT,UAAU;IACV,aAAa;CACL,CAAC;AAEX,oDAAoD;AACpD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,CAAC,UAAU,CAAU;IAC/B,OAAO,EAAE,CAAC,aAAa,CAAU;IACjC,SAAS,EAAE,CAAC,QAAQ,CAAU;IAC9B,MAAM,EAAE,CAAC,UAAU,CAAU;IAC7B,MAAM,EAAE,CAAC,UAAU,CAAU;CACrB,CAAC;AAEX,2DAA2D;AAC3D,MAAM,UAAU,aAAa,CAC3B,GAAG,UAA8C;IAEjD,OAAO;QACL,GAAG,gBAAgB;QACnB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwE5D"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { getAllowedDirectories } from '../lib/path-validation.js';
|
|
2
|
+
export function registerAllResources(server) {
|
|
3
|
+
// Static resource: allowed directories configuration
|
|
4
|
+
server.registerResource('allowed-directories', 'config://allowed-directories', {
|
|
5
|
+
title: 'Allowed Directories',
|
|
6
|
+
description: 'List of directories this server is permitted to access. ' +
|
|
7
|
+
'All filesystem operations are sandboxed to these paths.',
|
|
8
|
+
mimeType: 'application/json',
|
|
9
|
+
}, (uri) => ({
|
|
10
|
+
contents: [
|
|
11
|
+
{
|
|
12
|
+
uri: uri.href,
|
|
13
|
+
mimeType: 'application/json',
|
|
14
|
+
text: JSON.stringify({
|
|
15
|
+
allowedDirectories: getAllowedDirectories(),
|
|
16
|
+
count: getAllowedDirectories().length,
|
|
17
|
+
}, null, 2),
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
}));
|
|
21
|
+
// Static resource: server capabilities summary
|
|
22
|
+
server.registerResource('server-info', 'config://server-info', {
|
|
23
|
+
title: 'Server Information',
|
|
24
|
+
description: 'Summary of available tools, their purposes, and usage guidelines.',
|
|
25
|
+
mimeType: 'application/json',
|
|
26
|
+
}, (uri) => ({
|
|
27
|
+
contents: [
|
|
28
|
+
{
|
|
29
|
+
uri: uri.href,
|
|
30
|
+
mimeType: 'application/json',
|
|
31
|
+
text: JSON.stringify({
|
|
32
|
+
name: 'filesystem-context-mcp',
|
|
33
|
+
type: 'read-only',
|
|
34
|
+
toolCategories: {
|
|
35
|
+
discovery: [
|
|
36
|
+
'list_allowed_directories',
|
|
37
|
+
'directory_tree',
|
|
38
|
+
'list_directory',
|
|
39
|
+
],
|
|
40
|
+
search: ['search_files', 'search_content'],
|
|
41
|
+
read: ['read_file', 'read_multiple_files', 'read_media_file'],
|
|
42
|
+
analysis: ['analyze_directory', 'get_file_info'],
|
|
43
|
+
},
|
|
44
|
+
security: {
|
|
45
|
+
readOnly: true,
|
|
46
|
+
pathValidation: true,
|
|
47
|
+
symlinkProtection: true,
|
|
48
|
+
},
|
|
49
|
+
}, null, 2),
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,qDAAqD;IACrD,MAAM,CAAC,gBAAgB,CACrB,qBAAqB,EACrB,8BAA8B,EAC9B;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,0DAA0D;YAC1D,yDAAyD;QAC3D,QAAQ,EAAE,kBAAkB;KAC7B,EACD,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACR,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,GAAG,CAAC,IAAI;gBACb,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oBACE,kBAAkB,EAAE,qBAAqB,EAAE;oBAC3C,KAAK,EAAE,qBAAqB,EAAE,CAAC,MAAM;iBACtC,EACD,IAAI,EACJ,CAAC,CACF;aACF;SACF;KACF,CAAC,CACH,CAAC;IAEF,+CAA+C;IAC/C,MAAM,CAAC,gBAAgB,CACrB,aAAa,EACb,sBAAsB,EACtB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,mEAAmE;QACrE,QAAQ,EAAE,kBAAkB;KAC7B,EACD,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACR,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,GAAG,CAAC,IAAI;gBACb,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oBACE,IAAI,EAAE,wBAAwB;oBAC9B,IAAI,EAAE,WAAW;oBACjB,cAAc,EAAE;wBACd,SAAS,EAAE;4BACT,0BAA0B;4BAC1B,gBAAgB;4BAChB,gBAAgB;yBACjB;wBACD,MAAM,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;wBAC1C,IAAI,EAAE,CAAC,WAAW,EAAE,qBAAqB,EAAE,iBAAiB,CAAC;wBAC7D,QAAQ,EAAE,CAAC,mBAAmB,EAAE,eAAe,CAAC;qBACjD;oBACD,QAAQ,EAAE;wBACR,QAAQ,EAAE,IAAI;wBACd,cAAc,EAAE,IAAI;wBACpB,iBAAiB,EAAE,IAAI;qBACxB;iBACF,EACD,IAAI,EACJ,CAAC,CACF;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,wBAAwB;;;;;;;;
|
|
1
|
+
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,wBAAwB;;;;;;;;CA0CpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;CAoDlC,CAAC;AA2DF,eAAO,MAAM,mBAAmB;;;;;;;;CAA2B,CAAC;AAsC5D,eAAO,MAAM,4BAA4B;;;;;;CAAoC,CAAC;AAE9E,eAAO,MAAM,sBAAsB;;CAKlC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;CAwFpC,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;CAgCvC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;CAoCpC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;CAapC,CAAC"}
|
package/dist/schemas/inputs.js
CHANGED
|
@@ -4,8 +4,12 @@ export const ListDirectoryInputSchema = {
|
|
|
4
4
|
path: z
|
|
5
5
|
.string()
|
|
6
6
|
.min(1, 'Path cannot be empty')
|
|
7
|
-
.describe('
|
|
8
|
-
recursive: z
|
|
7
|
+
.describe('Absolute or relative path to the directory to list'),
|
|
8
|
+
recursive: z
|
|
9
|
+
.boolean()
|
|
10
|
+
.optional()
|
|
11
|
+
.default(false)
|
|
12
|
+
.describe('If true, list contents of subdirectories recursively up to maxDepth'),
|
|
9
13
|
includeHidden: z
|
|
10
14
|
.boolean()
|
|
11
15
|
.optional()
|
|
@@ -59,7 +63,7 @@ export const SearchFilesInputSchema = {
|
|
|
59
63
|
return false;
|
|
60
64
|
}
|
|
61
65
|
}, { message: 'Invalid glob pattern syntax' })
|
|
62
|
-
.describe('Glob pattern to match files
|
|
66
|
+
.describe('Glob pattern to match files. Examples: "**/*.ts" (all TypeScript files), "src/**/*.js" (JS files in src), "*.json" (JSON files in current dir)'),
|
|
63
67
|
excludePatterns: z
|
|
64
68
|
.array(z.string().max(500, 'Individual exclude pattern is too long'))
|
|
65
69
|
.max(100, 'Too many exclude patterns (max 100)')
|
|
@@ -181,12 +185,12 @@ export const SearchContentInputSchema = {
|
|
|
181
185
|
path: z
|
|
182
186
|
.string()
|
|
183
187
|
.min(1, 'Path cannot be empty')
|
|
184
|
-
.describe('
|
|
188
|
+
.describe('Absolute or relative path to the base directory to search within'),
|
|
185
189
|
pattern: z
|
|
186
190
|
.string()
|
|
187
191
|
.min(1, 'Pattern cannot be empty')
|
|
188
192
|
.max(1000, 'Pattern is too long (max 1000 characters)')
|
|
189
|
-
.describe('Regular expression pattern to search for'),
|
|
193
|
+
.describe('Regular expression pattern to search for. Examples: "TODO|FIXME" (find todos), "function\\s+\\w+" (find function declarations), "import.*from" (find imports). Use isLiteral=true for exact string matching.'),
|
|
190
194
|
filePattern: z
|
|
191
195
|
.string()
|
|
192
196
|
.min(1, 'File pattern cannot be empty')
|
|
@@ -251,12 +255,12 @@ export const SearchContentInputSchema = {
|
|
|
251
255
|
.boolean()
|
|
252
256
|
.optional()
|
|
253
257
|
.default(false)
|
|
254
|
-
.describe('Match whole words only
|
|
258
|
+
.describe('Match whole words only by adding \\b word boundaries to pattern. Useful for avoiding partial matches (e.g., searching "test" won\'t match "testing")'),
|
|
255
259
|
isLiteral: z
|
|
256
260
|
.boolean()
|
|
257
261
|
.optional()
|
|
258
262
|
.default(false)
|
|
259
|
-
.describe('Treat pattern as literal string
|
|
263
|
+
.describe('Treat pattern as a literal string instead of regex. Special characters like ., *, ? will be escaped automatically. Use this when searching for exact text containing regex metacharacters.'),
|
|
260
264
|
};
|
|
261
265
|
export const AnalyzeDirectoryInputSchema = {
|
|
262
266
|
path: z
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;SAC9B,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;SAC9B,QAAQ,CAAC,oDAAoD,CAAC;IACjE,SAAS,EAAE,CAAC;SACT,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,qEAAqE,CACtE;IACH,aAAa,EAAE,CAAC;SACb,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,sBAAsB,CAAC;IACnC,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,6BAA6B,CAAC;SAClC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;SACvC,GAAG,CAAC,GAAG,EAAE,4BAA4B,CAAC;SACtC,QAAQ,EAAE;SACV,OAAO,CAAC,iBAAiB,CAAC;SAC1B,QAAQ,CAAC,qCAAqC,CAAC;IAClD,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,+BAA+B,CAAC;SACpC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;SACvC,GAAG,CAAC,MAAM,EAAE,kCAAkC,CAAC;SAC/C,QAAQ,EAAE;SACV,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;SAC1C,QAAQ,EAAE;SACV,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,qBAAqB,EAAE,CAAC;SACrB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,iDAAiD,CAAC;CAC/D,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;SAC9B,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;SACjC,GAAG,CAAC,IAAI,EAAE,2CAA2C,CAAC;SACtD,MAAM,CACL,CAAC,GAAG,EAAE,EAAE;QACN,gCAAgC;QAChC,IAAI,CAAC;YACH,6CAA6C;YAC7C,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC,CAAC,oBAAoB;YACpC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,EACD,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAC3C;SACA,QAAQ,CACP,gJAAgJ,CACjJ;IACH,eAAe,EAAE,CAAC;SACf,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,wCAAwC,CAAC,CAAC;SACpE,GAAG,CAAC,GAAG,EAAE,qCAAqC,CAAC;SAC/C,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,qBAAqB,CAAC;IAClC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,+BAA+B,CAAC;SACpC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;SACvC,GAAG,CAAC,KAAK,EAAE,iCAAiC,CAAC;SAC7C,QAAQ,EAAE;SACV,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;SAC1C,QAAQ,EAAE;SACV,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,6BAA6B,CAAC;SAClC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC;SACrC,GAAG,CAAC,GAAG,EAAE,4BAA4B,CAAC;SACtC,QAAQ,EAAE;SACV,QAAQ,CAAC,mCAAmC,CAAC;CACjD,CAAC;AAEF,uDAAuD;AACvD,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;SAC9B,QAAQ,CAAC,0BAA0B,CAAC;IACvC,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SAC3D,QAAQ,EAAE;SACV,OAAO,CAAC,OAAO,CAAC;SAChB,MAAM,CACL,CAAC,GAAG,EAAE,EAAE,CACN,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EACrE,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAC1C;SACA,QAAQ,CAAC,eAAe,CAAC;IAC5B,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,4BAA4B,CAAC;SACjC,GAAG,CAAC,CAAC,EAAE,iCAAiC,CAAC;SACzC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,6BAA6B,CAAC;SACrD,QAAQ,EAAE;SACV,OAAO,CAAC,kBAAkB,CAAC;SAC3B,QAAQ,CAAC,2CAA2C,CAAC;IACxD,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,8BAA8B,CAAC;SACnC,GAAG,CAAC,CAAC,EAAE,0CAA0C,CAAC;SAClD,QAAQ,EAAE;SACV,QAAQ,CAAC,4CAA4C,CAAC;IACzD,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,4BAA4B,CAAC;SACjC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;SACpC,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;IACvD,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,yBAAyB,CAAC;SAC9B,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;SACjC,GAAG,CAAC,MAAM,EAAE,kCAAkC,CAAC;SAC/C,QAAQ,EAAE;SACV,QAAQ,CACP,4EAA4E,CAC7E;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,yBAAyB,CAAC;SAC9B,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;SACjC,GAAG,CAAC,MAAM,EAAE,kCAAkC,CAAC;SAC/C,QAAQ,EAAE;SACV,QAAQ,CACP,2EAA2E,CAC5E;CACJ,CAAC,CAAC;AAEH,oCAAoC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAE5D,oDAAoD;AACpD,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;SAChD,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;SACvC,GAAG,CAAC,GAAG,EAAE,yCAAyC,CAAC;SACnD,QAAQ,CAAC,6BAA6B,CAAC;IAC1C,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SAC3D,QAAQ,EAAE;SACV,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,eAAe,CAAC;IAC5B,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,4BAA4B,CAAC;SACjC,GAAG,CAAC,CAAC,EAAE,iCAAiC,CAAC;SACzC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,6BAA6B,CAAC;SACrD,QAAQ,EAAE;SACV,OAAO,CAAC,kBAAkB,CAAC;SAC3B,QAAQ,CAAC,oDAAoD,CAAC;IACjE,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,yBAAyB,CAAC;SAC9B,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;SACjC,GAAG,CAAC,MAAM,EAAE,kCAAkC,CAAC;SAC/C,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;IACvD,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,yBAAyB,CAAC;SAC9B,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;SACjC,GAAG,CAAC,MAAM,EAAE,kCAAkC,CAAC;SAC/C,QAAQ,EAAE;SACV,QAAQ,CAAC,yCAAyC,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,2BAA2B,CAAC,KAAK,CAAC;AAE9E,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;SAC9B,QAAQ,CAAC,+BAA+B,CAAC;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;SAC9B,QAAQ,CACP,kEAAkE,CACnE;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;SACjC,GAAG,CAAC,IAAI,EAAE,2CAA2C,CAAC;SACtD,QAAQ,CACP,8MAA8M,CAC/M;IACH,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC;SACtC,GAAG,CAAC,GAAG,EAAE,0BAA0B,CAAC;SACpC,QAAQ,EAAE;SACV,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,8BAA8B,CAAC;IAC3C,eAAe,EAAE,CAAC;SACf,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,wCAAwC,CAAC,CAAC;SACpE,GAAG,CAAC,GAAG,EAAE,qCAAqC,CAAC;SAC/C,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,oDAAoD,CAAC;IACjE,aAAa,EAAE,CAAC;SACb,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,uBAAuB,CAAC;IACpC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,+BAA+B,CAAC;SACpC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;SACvC,GAAG,CAAC,KAAK,EAAE,iCAAiC,CAAC;SAC7C,QAAQ,EAAE;SACV,OAAO,CAAC,mBAAmB,CAAC;SAC5B,QAAQ,CAAC,2BAA2B,CAAC;IACxC,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,gCAAgC,CAAC;SACrC,GAAG,CAAC,CAAC,EAAE,qCAAqC,CAAC;SAC7C,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,iCAAiC,CAAC;SACzD,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;IACnE,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,GAAG,CAAC,oCAAoC,CAAC;SACzC,GAAG,CAAC,CAAC,EAAE,oCAAoC,CAAC;SAC5C,GAAG,CAAC,MAAM,EAAE,uCAAuC,CAAC;SACpD,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,8BAA8B,CAAC;SACnC,GAAG,CAAC,GAAG,EAAE,kCAAkC,CAAC;SAC5C,GAAG,CAAC,OAAO,EAAE,gCAAgC,CAAC;SAC9C,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,UAAU,EAAE,CAAC;SACV,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,wCAAwC,CAAC;IACrD,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,GAAG,CAAC,iCAAiC,CAAC;SACtC,GAAG,CAAC,CAAC,EAAE,mCAAmC,CAAC;SAC3C,GAAG,CAAC,EAAE,EAAE,+BAA+B,CAAC;SACxC,QAAQ,EAAE;SACV,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,SAAS,EAAE,CAAC;SACT,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,sJAAsJ,CACvJ;IACH,SAAS,EAAE,CAAC;SACT,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,4LAA4L,CAC7L;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;SAC9B,QAAQ,CAAC,sBAAsB,CAAC;IACnC,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,6BAA6B,CAAC;SAClC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;SACvC,GAAG,CAAC,GAAG,EAAE,4BAA4B,CAAC;SACtC,QAAQ,EAAE;SACV,OAAO,CAAC,iBAAiB,CAAC;SAC1B,QAAQ,CAAC,0BAA0B,CAAC;IACvC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,yBAAyB,CAAC;SAC9B,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;SACjC,GAAG,CAAC,IAAI,EAAE,yBAAyB,CAAC;SACpC,QAAQ,EAAE;SACV,OAAO,CAAC,aAAa,CAAC;SACtB,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,eAAe,EAAE,CAAC;SACf,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,wCAAwC,CAAC,CAAC;SACpE,GAAG,CAAC,GAAG,EAAE,qCAAqC,CAAC;SAC/C,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,0DAA0D,CAAC;IACvE,aAAa,EAAE,CAAC;SACb,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,sCAAsC,CAAC;CACpD,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;SAC9B,QAAQ,CAAC,mCAAmC,CAAC;IAChD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,6BAA6B,CAAC;SAClC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;SACvC,GAAG,CAAC,EAAE,EAAE,2BAA2B,CAAC;SACpC,QAAQ,EAAE;SACV,OAAO,CAAC,kBAAkB,CAAC;SAC3B,QAAQ,CAAC,uCAAuC,CAAC;IACpD,eAAe,EAAE,CAAC;SACf,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,wCAAwC,CAAC,CAAC;SACpE,GAAG,CAAC,GAAG,EAAE,qCAAqC,CAAC;SAC/C,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,0DAA0D,CAAC;IACvE,aAAa,EAAE,CAAC;SACb,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,sCAAsC,CAAC;IACnD,WAAW,EAAE,CAAC;SACX,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,6BAA6B,CAAC;SAClC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC;SACrC,GAAG,CAAC,MAAM,EAAE,gCAAgC,CAAC;SAC7C,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;CACpE,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;SAC9B,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,4BAA4B,CAAC;SACjC,GAAG,CAAC,CAAC,EAAE,iCAAiC,CAAC;SACzC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,6BAA6B,CAAC;SACrD,QAAQ,EAAE;SACV,OAAO,CAAC,mBAAmB,CAAC;SAC5B,QAAQ,CAAC,2CAA2C,CAAC;CACzD,CAAC"}
|