@paretools/lint 0.8.5 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/formatters.d.ts +1 -0
- package/dist/lib/formatters.d.ts.map +1 -1
- package/dist/lib/formatters.js +22 -3
- package/dist/lib/formatters.js.map +1 -1
- package/dist/lib/lint-runner.js +7 -7
- package/dist/lib/parsers.d.ts +57 -10
- package/dist/lib/parsers.d.ts.map +1 -1
- package/dist/lib/parsers.js +306 -42
- package/dist/lib/parsers.js.map +1 -1
- package/dist/schemas/index.d.ts +7 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +5 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/tools/biome-check.d.ts.map +1 -1
- package/dist/tools/biome-check.js +79 -2
- package/dist/tools/biome-check.js.map +1 -1
- package/dist/tools/biome-format.d.ts.map +1 -1
- package/dist/tools/biome-format.js +54 -2
- package/dist/tools/biome-format.js.map +1 -1
- package/dist/tools/format-check.d.ts.map +1 -1
- package/dist/tools/format-check.js +54 -2
- package/dist/tools/format-check.js.map +1 -1
- package/dist/tools/hadolint.d.ts.map +1 -1
- package/dist/tools/hadolint.js +84 -1
- package/dist/tools/hadolint.js.map +1 -1
- package/dist/tools/lint.d.ts.map +1 -1
- package/dist/tools/lint.js +62 -2
- package/dist/tools/lint.js.map +1 -1
- package/dist/tools/oxlint.d.ts.map +1 -1
- package/dist/tools/oxlint.js +94 -2
- package/dist/tools/oxlint.js.map +1 -1
- package/dist/tools/prettier-format.d.ts.map +1 -1
- package/dist/tools/prettier-format.js +70 -6
- package/dist/tools/prettier-format.js.map +1 -1
- package/dist/tools/shellcheck.d.ts.map +1 -1
- package/dist/tools/shellcheck.js +100 -7
- package/dist/tools/shellcheck.js.map +1 -1
- package/dist/tools/stylelint.d.ts.map +1 -1
- package/dist/tools/stylelint.js +58 -2
- package/dist/tools/stylelint.js.map +1 -1
- package/package.json +2 -2
package/dist/tools/oxlint.js
CHANGED
|
@@ -8,7 +8,7 @@ import { LintResultSchema } from "../schemas/index.js";
|
|
|
8
8
|
export function registerOxlintTool(server) {
|
|
9
9
|
server.registerTool("oxlint", {
|
|
10
10
|
title: "Oxlint Check",
|
|
11
|
-
description: "Runs Oxlint and returns structured diagnostics (file, line, rule, severity, message). Use instead of running `oxlint` in the terminal.",
|
|
11
|
+
description: "Runs Oxlint and returns structured diagnostics (file, line, column, rule, severity, message). Use instead of running `oxlint` in the terminal.",
|
|
12
12
|
inputSchema: {
|
|
13
13
|
path: z
|
|
14
14
|
.string()
|
|
@@ -21,6 +21,52 @@ export function registerOxlintTool(server) {
|
|
|
21
21
|
.optional()
|
|
22
22
|
.default(["."])
|
|
23
23
|
.describe("File patterns to lint (default: ['.'])"),
|
|
24
|
+
fix: z.boolean().optional().describe("Auto-fix problems (maps to --fix)"),
|
|
25
|
+
quiet: z
|
|
26
|
+
.boolean()
|
|
27
|
+
.optional()
|
|
28
|
+
.describe("Report errors only, suppress warnings (maps to --quiet)"),
|
|
29
|
+
fixSuggestions: z
|
|
30
|
+
.boolean()
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("Apply suggestion-level fixes (maps to --fix-suggestions)"),
|
|
33
|
+
threads: z.number().optional().describe("Number of threads to use for parallel linting"),
|
|
34
|
+
noIgnore: z.boolean().optional().describe("Disable ignore patterns (maps to --no-ignore)"),
|
|
35
|
+
config: z
|
|
36
|
+
.string()
|
|
37
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
38
|
+
.optional()
|
|
39
|
+
.describe("Path to Oxlint configuration file (maps to --config)"),
|
|
40
|
+
deny: z
|
|
41
|
+
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
42
|
+
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
43
|
+
.optional()
|
|
44
|
+
.describe("Rules to deny (error level) (maps to -D)"),
|
|
45
|
+
warn: z
|
|
46
|
+
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
47
|
+
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
48
|
+
.optional()
|
|
49
|
+
.describe("Rules to warn on (maps to -W)"),
|
|
50
|
+
allow: z
|
|
51
|
+
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
52
|
+
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
53
|
+
.optional()
|
|
54
|
+
.describe("Rules to allow (disable) (maps to -A)"),
|
|
55
|
+
plugins: z
|
|
56
|
+
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
57
|
+
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
58
|
+
.optional()
|
|
59
|
+
.describe("Plugin categories to enable (e.g., 'import', 'jest', 'jsx-a11y') (maps to --<plugin>-plugin)"),
|
|
60
|
+
tsconfig: z
|
|
61
|
+
.string()
|
|
62
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
63
|
+
.optional()
|
|
64
|
+
.describe("Path to tsconfig.json for type-aware rules (maps to --tsconfig)"),
|
|
65
|
+
ignorePath: z
|
|
66
|
+
.string()
|
|
67
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
68
|
+
.optional()
|
|
69
|
+
.describe("Path to an alternate ignore file (maps to --ignore-path)"),
|
|
24
70
|
compact: z
|
|
25
71
|
.boolean()
|
|
26
72
|
.optional()
|
|
@@ -28,12 +74,58 @@ export function registerOxlintTool(server) {
|
|
|
28
74
|
.describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
|
|
29
75
|
},
|
|
30
76
|
outputSchema: LintResultSchema,
|
|
31
|
-
}, async ({ path, patterns, compact }) => {
|
|
77
|
+
}, async ({ path, patterns, fix, quiet, fixSuggestions, threads, noIgnore, config, deny, warn, allow, plugins, tsconfig, ignorePath, compact, }) => {
|
|
32
78
|
const cwd = path || process.cwd();
|
|
33
79
|
for (const p of patterns ?? []) {
|
|
34
80
|
assertNoFlagInjection(p, "patterns");
|
|
35
81
|
}
|
|
36
82
|
const args = ["--format", "json", ...(patterns || ["."])];
|
|
83
|
+
if (fix)
|
|
84
|
+
args.push("--fix");
|
|
85
|
+
if (quiet)
|
|
86
|
+
args.push("--quiet");
|
|
87
|
+
if (fixSuggestions)
|
|
88
|
+
args.push("--fix-suggestions");
|
|
89
|
+
if (threads !== undefined)
|
|
90
|
+
args.push(`--threads=${threads}`);
|
|
91
|
+
if (noIgnore)
|
|
92
|
+
args.push("--no-ignore");
|
|
93
|
+
if (config) {
|
|
94
|
+
assertNoFlagInjection(config, "config");
|
|
95
|
+
args.push(`--config=${config}`);
|
|
96
|
+
}
|
|
97
|
+
if (deny) {
|
|
98
|
+
for (const rule of deny) {
|
|
99
|
+
assertNoFlagInjection(rule, "deny");
|
|
100
|
+
args.push("-D", rule);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (warn) {
|
|
104
|
+
for (const rule of warn) {
|
|
105
|
+
assertNoFlagInjection(rule, "warn");
|
|
106
|
+
args.push("-W", rule);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (allow) {
|
|
110
|
+
for (const rule of allow) {
|
|
111
|
+
assertNoFlagInjection(rule, "allow");
|
|
112
|
+
args.push("-A", rule);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (plugins) {
|
|
116
|
+
for (const plugin of plugins) {
|
|
117
|
+
assertNoFlagInjection(plugin, "plugins");
|
|
118
|
+
args.push(`--${plugin}-plugin`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (tsconfig) {
|
|
122
|
+
assertNoFlagInjection(tsconfig, "tsconfig");
|
|
123
|
+
args.push(`--tsconfig=${tsconfig}`);
|
|
124
|
+
}
|
|
125
|
+
if (ignorePath) {
|
|
126
|
+
assertNoFlagInjection(ignorePath, "ignorePath");
|
|
127
|
+
args.push(`--ignore-path=${ignorePath}`);
|
|
128
|
+
}
|
|
37
129
|
const result = await oxlintCmd(args, cwd);
|
|
38
130
|
const data = parseOxlintJson(result.stdout);
|
|
39
131
|
return compactDualOutput(data, result.stdout, formatLint, compactLintMap, formatLintCompact, compact === false);
|
package/dist/tools/oxlint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oxlint.js","sourceRoot":"","sources":["../../src/tools/oxlint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,2DAA2D;AAC3D,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACjB,QAAQ,EACR;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"oxlint.js","sourceRoot":"","sources":["../../src/tools/oxlint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prettier-format.d.ts","sourceRoot":"","sources":["../../src/tools/prettier-format.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"prettier-format.d.ts","sourceRoot":"","sources":["../../src/tools/prettier-format.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAezE,oEAAoE;AACpE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,QA0H3D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { compactDualOutput, assertNoFlagInjection, INPUT_LIMITS } from "@paretools/shared";
|
|
3
3
|
import { prettier } from "../lib/lint-runner.js";
|
|
4
|
-
import { parsePrettierWrite } from "../lib/parsers.js";
|
|
4
|
+
import { parsePrettierListDifferent, parsePrettierWrite, buildPrettierWriteResult, } from "../lib/parsers.js";
|
|
5
5
|
import { formatFormatWrite, compactFormatWriteMap, formatFormatWriteCompact, } from "../lib/formatters.js";
|
|
6
6
|
import { FormatWriteResultSchema } from "../schemas/index.js";
|
|
7
7
|
/** Registers the `prettier-format` tool on the given MCP server. */
|
|
@@ -21,6 +21,31 @@ export function registerPrettierFormatTool(server) {
|
|
|
21
21
|
.optional()
|
|
22
22
|
.default(["."])
|
|
23
23
|
.describe("File patterns to format (default: ['.'])"),
|
|
24
|
+
ignoreUnknown: z
|
|
25
|
+
.boolean()
|
|
26
|
+
.optional()
|
|
27
|
+
.describe("Ignore files that cannot be parsed (maps to --ignore-unknown)"),
|
|
28
|
+
cache: z
|
|
29
|
+
.boolean()
|
|
30
|
+
.optional()
|
|
31
|
+
.describe("Cache formatted files for faster subsequent runs (maps to --cache)"),
|
|
32
|
+
noConfig: z
|
|
33
|
+
.boolean()
|
|
34
|
+
.optional()
|
|
35
|
+
.describe("Do not look for a configuration file (maps to --no-config)"),
|
|
36
|
+
logLevel: z
|
|
37
|
+
.enum(["silent", "error", "warn", "log", "debug"])
|
|
38
|
+
.optional()
|
|
39
|
+
.describe("Log level to control output verbosity"),
|
|
40
|
+
endOfLine: z
|
|
41
|
+
.enum(["lf", "crlf", "cr", "auto"])
|
|
42
|
+
.optional()
|
|
43
|
+
.describe("Line ending style override"),
|
|
44
|
+
config: z
|
|
45
|
+
.string()
|
|
46
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
47
|
+
.optional()
|
|
48
|
+
.describe("Path to a Prettier configuration file (maps to --config)"),
|
|
24
49
|
compact: z
|
|
25
50
|
.boolean()
|
|
26
51
|
.optional()
|
|
@@ -28,15 +53,54 @@ export function registerPrettierFormatTool(server) {
|
|
|
28
53
|
.describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
|
|
29
54
|
},
|
|
30
55
|
outputSchema: FormatWriteResultSchema,
|
|
31
|
-
}, async ({ path, patterns, compact }) => {
|
|
56
|
+
}, async ({ path, patterns, ignoreUnknown, cache, noConfig, logLevel, endOfLine, config, compact, }) => {
|
|
32
57
|
const cwd = path || process.cwd();
|
|
33
58
|
for (const p of patterns ?? []) {
|
|
34
59
|
assertNoFlagInjection(p, "patterns");
|
|
35
60
|
}
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
61
|
+
// Build shared args (excluding --write and --list-different)
|
|
62
|
+
const sharedArgs = [];
|
|
63
|
+
if (ignoreUnknown)
|
|
64
|
+
sharedArgs.push("--ignore-unknown");
|
|
65
|
+
if (cache)
|
|
66
|
+
sharedArgs.push("--cache");
|
|
67
|
+
if (noConfig)
|
|
68
|
+
sharedArgs.push("--no-config");
|
|
69
|
+
if (logLevel)
|
|
70
|
+
sharedArgs.push(`--log-level=${logLevel}`);
|
|
71
|
+
if (endOfLine)
|
|
72
|
+
sharedArgs.push(`--end-of-line=${endOfLine}`);
|
|
73
|
+
if (config) {
|
|
74
|
+
assertNoFlagInjection(config, "config");
|
|
75
|
+
sharedArgs.push(`--config=${config}`);
|
|
76
|
+
}
|
|
77
|
+
const filePatterns = patterns || ["."];
|
|
78
|
+
// Step 1: Run --list-different to find files that need formatting
|
|
79
|
+
let listDiffFiles = [];
|
|
80
|
+
try {
|
|
81
|
+
const listDiffResult = await prettier(["--list-different", ...sharedArgs, ...filePatterns], cwd);
|
|
82
|
+
listDiffFiles = parsePrettierListDifferent(listDiffResult.stdout);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// --list-different may fail if prettier is not installed or patterns are invalid.
|
|
86
|
+
// Fall back to --write only mode below.
|
|
87
|
+
}
|
|
88
|
+
// Step 2: Run --write to actually format the files
|
|
89
|
+
const writeArgs = ["--write", ...sharedArgs, ...filePatterns];
|
|
90
|
+
const writeResult = await prettier(writeArgs, cwd);
|
|
91
|
+
// Step 3: Build accurate result
|
|
92
|
+
let data;
|
|
93
|
+
if (listDiffFiles.length > 0 || writeResult.exitCode === 0) {
|
|
94
|
+
// Count total files processed from --write output for filesUnchanged calculation
|
|
95
|
+
const writeData = parsePrettierWrite(writeResult.stdout, writeResult.stderr, 0);
|
|
96
|
+
const totalProcessed = writeData.files?.length ?? 0;
|
|
97
|
+
data = buildPrettierWriteResult(listDiffFiles, writeResult.exitCode, totalProcessed);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// Fall back to simple --write parsing if --list-different produced no results
|
|
101
|
+
data = parsePrettierWrite(writeResult.stdout, writeResult.stderr, writeResult.exitCode);
|
|
102
|
+
}
|
|
103
|
+
return compactDualOutput(data, writeResult.stdout, formatFormatWrite, compactFormatWriteMap, formatFormatWriteCompact, compact === false);
|
|
40
104
|
});
|
|
41
105
|
}
|
|
42
106
|
//# sourceMappingURL=prettier-format.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prettier-format.js","sourceRoot":"","sources":["../../src/tools/prettier-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"prettier-format.js","sourceRoot":"","sources":["../../src/tools/prettier-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shellcheck.d.ts","sourceRoot":"","sources":["../../src/tools/shellcheck.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"shellcheck.d.ts","sourceRoot":"","sources":["../../src/tools/shellcheck.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBzE,+DAA+D;AAC/D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QAwKvD"}
|
package/dist/tools/shellcheck.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { compactDualOutput, assertNoFlagInjection, INPUT_LIMITS } from "@paretools/shared";
|
|
2
|
+
import { compactDualOutput, dualOutput, assertNoFlagInjection, INPUT_LIMITS, } from "@paretools/shared";
|
|
3
3
|
import { shellcheckCmd } from "../lib/lint-runner.js";
|
|
4
|
-
import { parseShellcheckJson } from "../lib/parsers.js";
|
|
4
|
+
import { parseShellcheckJson, resolveShellcheckPatterns, validateShellcheckPatterns, } from "../lib/parsers.js";
|
|
5
5
|
import { formatLint, compactLintMap, formatLintCompact } from "../lib/formatters.js";
|
|
6
6
|
import { LintResultSchema } from "../schemas/index.js";
|
|
7
7
|
/** Registers the `shellcheck` tool on the given MCP server. */
|
|
8
8
|
export function registerShellcheckTool(server) {
|
|
9
9
|
server.registerTool("shellcheck", {
|
|
10
10
|
title: "ShellCheck",
|
|
11
|
-
description: "Runs ShellCheck (shell script linter) and returns structured diagnostics (file, line, rule, severity, message). Use instead of running `shellcheck` in the terminal.",
|
|
11
|
+
description: "Runs ShellCheck (shell script linter) and returns structured diagnostics (file, line, column, rule, severity, message). Use instead of running `shellcheck` in the terminal.",
|
|
12
12
|
inputSchema: {
|
|
13
13
|
path: z
|
|
14
14
|
.string()
|
|
@@ -20,11 +20,53 @@ export function registerShellcheckTool(server) {
|
|
|
20
20
|
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
21
21
|
.optional()
|
|
22
22
|
.default(["."])
|
|
23
|
-
.describe("File patterns to check (default: ['.'])"
|
|
23
|
+
.describe("File paths or glob patterns to check (default: ['.']). " +
|
|
24
|
+
"Directories are automatically expanded to include *.sh, *.bash, *.zsh, *.ksh, *.dash files."),
|
|
24
25
|
severity: z
|
|
25
26
|
.enum(["error", "warning", "info", "style"])
|
|
26
27
|
.optional()
|
|
27
28
|
.describe("Minimum severity level to report (default: style)"),
|
|
29
|
+
shell: z
|
|
30
|
+
.enum(["sh", "bash", "dash", "ksh"])
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("Shell dialect to assume (maps to --shell)"),
|
|
33
|
+
externalSources: z
|
|
34
|
+
.boolean()
|
|
35
|
+
.optional()
|
|
36
|
+
.describe("Allow following source statements to external files (maps to --external-sources)"),
|
|
37
|
+
checkSourced: z
|
|
38
|
+
.boolean()
|
|
39
|
+
.optional()
|
|
40
|
+
.describe("Check sourced/included files (maps to --check-sourced)"),
|
|
41
|
+
norc: z
|
|
42
|
+
.boolean()
|
|
43
|
+
.optional()
|
|
44
|
+
.describe("Disable .shellcheckrc config file lookup (maps to --norc)"),
|
|
45
|
+
exclude: z
|
|
46
|
+
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
47
|
+
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
48
|
+
.optional()
|
|
49
|
+
.describe("Check codes to exclude, e.g. ['SC2086', 'SC2034'] (maps to --exclude)"),
|
|
50
|
+
enable: z
|
|
51
|
+
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
52
|
+
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
53
|
+
.optional()
|
|
54
|
+
.describe("Optional checks to enable, e.g. ['add-default-case', 'require-variable-braces'] (maps to --enable)"),
|
|
55
|
+
include: z
|
|
56
|
+
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
57
|
+
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
58
|
+
.optional()
|
|
59
|
+
.describe("Only report these check codes (maps to --include)"),
|
|
60
|
+
rcfile: z
|
|
61
|
+
.string()
|
|
62
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
63
|
+
.optional()
|
|
64
|
+
.describe("Path to a custom ShellCheck config file (maps to --rcfile)"),
|
|
65
|
+
sourcePath: z
|
|
66
|
+
.string()
|
|
67
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
68
|
+
.optional()
|
|
69
|
+
.describe("Path to resolve source commands (maps to --source-path)"),
|
|
28
70
|
compact: z
|
|
29
71
|
.boolean()
|
|
30
72
|
.optional()
|
|
@@ -32,16 +74,67 @@ export function registerShellcheckTool(server) {
|
|
|
32
74
|
.describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
|
|
33
75
|
},
|
|
34
76
|
outputSchema: LintResultSchema,
|
|
35
|
-
}, async ({ path, patterns, severity, compact }) => {
|
|
77
|
+
}, async ({ path, patterns, severity, shell, externalSources, checkSourced, norc, exclude, enable, include, rcfile, sourcePath, compact, }) => {
|
|
36
78
|
const cwd = path || process.cwd();
|
|
37
79
|
for (const p of patterns ?? []) {
|
|
38
80
|
assertNoFlagInjection(p, "patterns");
|
|
39
81
|
}
|
|
82
|
+
const inputPatterns = patterns || ["."];
|
|
83
|
+
// Resolve patterns: expand directories to shell script files
|
|
84
|
+
const resolvedFiles = await resolveShellcheckPatterns(inputPatterns, cwd);
|
|
85
|
+
// If no files were found after expansion, return a helpful empty result
|
|
86
|
+
if (resolvedFiles.length === 0) {
|
|
87
|
+
const validationError = validateShellcheckPatterns(inputPatterns);
|
|
88
|
+
const emptyResult = {
|
|
89
|
+
diagnostics: [],
|
|
90
|
+
total: 0,
|
|
91
|
+
errors: 0,
|
|
92
|
+
warnings: 0,
|
|
93
|
+
filesChecked: 0,
|
|
94
|
+
};
|
|
95
|
+
const message = validationError
|
|
96
|
+
? validationError
|
|
97
|
+
: `No shell script files found matching patterns: ${inputPatterns.join(", ")}`;
|
|
98
|
+
return dualOutput(emptyResult, () => message);
|
|
99
|
+
}
|
|
40
100
|
const args = ["--format=json"];
|
|
41
|
-
if (severity)
|
|
101
|
+
if (severity)
|
|
42
102
|
args.push(`--severity=${severity}`);
|
|
103
|
+
if (shell)
|
|
104
|
+
args.push(`--shell=${shell}`);
|
|
105
|
+
if (externalSources)
|
|
106
|
+
args.push("--external-sources");
|
|
107
|
+
if (checkSourced)
|
|
108
|
+
args.push("--check-sourced");
|
|
109
|
+
if (norc)
|
|
110
|
+
args.push("--norc");
|
|
111
|
+
if (exclude && exclude.length > 0) {
|
|
112
|
+
for (const code of exclude) {
|
|
113
|
+
assertNoFlagInjection(code, "exclude");
|
|
114
|
+
}
|
|
115
|
+
args.push(`--exclude=${exclude.join(",")}`);
|
|
116
|
+
}
|
|
117
|
+
if (enable && enable.length > 0) {
|
|
118
|
+
for (const check of enable) {
|
|
119
|
+
assertNoFlagInjection(check, "enable");
|
|
120
|
+
}
|
|
121
|
+
args.push(`--enable=${enable.join(",")}`);
|
|
122
|
+
}
|
|
123
|
+
if (include && include.length > 0) {
|
|
124
|
+
for (const code of include) {
|
|
125
|
+
assertNoFlagInjection(code, "include");
|
|
126
|
+
}
|
|
127
|
+
args.push(`--include=${include.join(",")}`);
|
|
128
|
+
}
|
|
129
|
+
if (rcfile) {
|
|
130
|
+
assertNoFlagInjection(rcfile, "rcfile");
|
|
131
|
+
args.push(`--rcfile=${rcfile}`);
|
|
132
|
+
}
|
|
133
|
+
if (sourcePath) {
|
|
134
|
+
assertNoFlagInjection(sourcePath, "sourcePath");
|
|
135
|
+
args.push(`--source-path=${sourcePath}`);
|
|
43
136
|
}
|
|
44
|
-
args.push(...
|
|
137
|
+
args.push(...resolvedFiles);
|
|
45
138
|
const result = await shellcheckCmd(args, cwd);
|
|
46
139
|
const data = parseShellcheckJson(result.stdout);
|
|
47
140
|
return compactDualOutput(data, result.stdout, formatLint, compactLintMap, formatLintCompact, compact === false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shellcheck.js","sourceRoot":"","sources":["../../src/tools/shellcheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,
|
|
1
|
+
{"version":3,"file":"shellcheck.js","sourceRoot":"","sources":["../../src/tools/shellcheck.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stylelint.d.ts","sourceRoot":"","sources":["../../src/tools/stylelint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,8DAA8D;AAC9D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"stylelint.d.ts","sourceRoot":"","sources":["../../src/tools/stylelint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,8DAA8D;AAC9D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QAqHtD"}
|
package/dist/tools/stylelint.js
CHANGED
|
@@ -8,7 +8,7 @@ import { LintResultSchema } from "../schemas/index.js";
|
|
|
8
8
|
export function registerStylelintTool(server) {
|
|
9
9
|
server.registerTool("stylelint", {
|
|
10
10
|
title: "Stylelint Check",
|
|
11
|
-
description: "Runs Stylelint and returns structured diagnostics (file, line, rule, severity, message). Use instead of running `stylelint` in the terminal.",
|
|
11
|
+
description: "Runs Stylelint and returns structured diagnostics (file, line, column, rule, severity, message). Use instead of running `stylelint` in the terminal.",
|
|
12
12
|
inputSchema: {
|
|
13
13
|
path: z
|
|
14
14
|
.string()
|
|
@@ -22,6 +22,42 @@ export function registerStylelintTool(server) {
|
|
|
22
22
|
.default(["."])
|
|
23
23
|
.describe("File patterns to lint (default: ['.'])"),
|
|
24
24
|
fix: z.boolean().optional().default(false).describe("Auto-fix problems"),
|
|
25
|
+
quiet: z
|
|
26
|
+
.boolean()
|
|
27
|
+
.optional()
|
|
28
|
+
.describe("Report errors only, suppress warnings (maps to --quiet)"),
|
|
29
|
+
allowEmptyInput: z
|
|
30
|
+
.boolean()
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("Prevent errors when no files match the pattern (maps to --allow-empty-input)"),
|
|
33
|
+
cache: z
|
|
34
|
+
.boolean()
|
|
35
|
+
.optional()
|
|
36
|
+
.describe("Cache lint results for faster subsequent runs (maps to --cache)"),
|
|
37
|
+
reportNeedlessDisables: z
|
|
38
|
+
.boolean()
|
|
39
|
+
.optional()
|
|
40
|
+
.describe("Report unnecessary stylelint-disable comments (maps to --report-needless-disables)"),
|
|
41
|
+
ignoreDisables: z
|
|
42
|
+
.boolean()
|
|
43
|
+
.optional()
|
|
44
|
+
.describe("Ignore stylelint-disable comments and enforce all rules (maps to --ignore-disables)"),
|
|
45
|
+
maxWarnings: z
|
|
46
|
+
.number()
|
|
47
|
+
.int()
|
|
48
|
+
.min(0)
|
|
49
|
+
.optional()
|
|
50
|
+
.describe("Maximum number of warnings before failing (maps to --max-warnings)"),
|
|
51
|
+
config: z
|
|
52
|
+
.string()
|
|
53
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
54
|
+
.optional()
|
|
55
|
+
.describe("Path to Stylelint configuration file (maps to --config)"),
|
|
56
|
+
ignorePath: z
|
|
57
|
+
.string()
|
|
58
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
59
|
+
.optional()
|
|
60
|
+
.describe("Path to a custom ignore file (maps to --ignore-path)"),
|
|
25
61
|
compact: z
|
|
26
62
|
.boolean()
|
|
27
63
|
.optional()
|
|
@@ -29,7 +65,7 @@ export function registerStylelintTool(server) {
|
|
|
29
65
|
.describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
|
|
30
66
|
},
|
|
31
67
|
outputSchema: LintResultSchema,
|
|
32
|
-
}, async ({ path, patterns, fix, compact }) => {
|
|
68
|
+
}, async ({ path, patterns, fix, quiet, allowEmptyInput, cache, reportNeedlessDisables, ignoreDisables, maxWarnings, config, ignorePath, compact, }) => {
|
|
33
69
|
const cwd = path || process.cwd();
|
|
34
70
|
for (const p of patterns ?? []) {
|
|
35
71
|
assertNoFlagInjection(p, "patterns");
|
|
@@ -37,6 +73,26 @@ export function registerStylelintTool(server) {
|
|
|
37
73
|
const args = ["--formatter", "json", ...(patterns || ["."])];
|
|
38
74
|
if (fix)
|
|
39
75
|
args.push("--fix");
|
|
76
|
+
if (quiet)
|
|
77
|
+
args.push("--quiet");
|
|
78
|
+
if (allowEmptyInput)
|
|
79
|
+
args.push("--allow-empty-input");
|
|
80
|
+
if (cache)
|
|
81
|
+
args.push("--cache");
|
|
82
|
+
if (reportNeedlessDisables)
|
|
83
|
+
args.push("--report-needless-disables");
|
|
84
|
+
if (ignoreDisables)
|
|
85
|
+
args.push("--ignore-disables");
|
|
86
|
+
if (maxWarnings !== undefined)
|
|
87
|
+
args.push(`--max-warnings=${maxWarnings}`);
|
|
88
|
+
if (config) {
|
|
89
|
+
assertNoFlagInjection(config, "config");
|
|
90
|
+
args.push(`--config=${config}`);
|
|
91
|
+
}
|
|
92
|
+
if (ignorePath) {
|
|
93
|
+
assertNoFlagInjection(ignorePath, "ignorePath");
|
|
94
|
+
args.push(`--ignore-path=${ignorePath}`);
|
|
95
|
+
}
|
|
40
96
|
const result = await stylelintCmd(args, cwd);
|
|
41
97
|
const data = parseStylelintJson(result.stdout);
|
|
42
98
|
return compactDualOutput(data, result.stdout, formatLint, compactLintMap, formatLintCompact, compact === false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stylelint.js","sourceRoot":"","sources":["../../src/tools/stylelint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,8DAA8D;AAC9D,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"stylelint.js","sourceRoot":"","sources":["../../src/tools/stylelint.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paretools/lint",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"mcpName": "io.github.Dave-London/pare-lint",
|
|
5
5
|
"description": "MCP server for linters (ESLint, Prettier, Biome) with structured, token-efficient output",
|
|
6
6
|
"license": "MIT",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
53
53
|
"zod": "^4.3.6",
|
|
54
|
-
"@paretools/shared": "0.
|
|
54
|
+
"@paretools/shared": "0.9.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@types/node": "^25.2.3",
|