@paretools/lint 0.8.4 → 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.
Files changed (41) hide show
  1. package/dist/lib/formatters.d.ts +1 -0
  2. package/dist/lib/formatters.d.ts.map +1 -1
  3. package/dist/lib/formatters.js +22 -3
  4. package/dist/lib/formatters.js.map +1 -1
  5. package/dist/lib/lint-runner.js +7 -7
  6. package/dist/lib/parsers.d.ts +57 -10
  7. package/dist/lib/parsers.d.ts.map +1 -1
  8. package/dist/lib/parsers.js +306 -42
  9. package/dist/lib/parsers.js.map +1 -1
  10. package/dist/schemas/index.d.ts +7 -0
  11. package/dist/schemas/index.d.ts.map +1 -1
  12. package/dist/schemas/index.js +5 -0
  13. package/dist/schemas/index.js.map +1 -1
  14. package/dist/tools/biome-check.d.ts.map +1 -1
  15. package/dist/tools/biome-check.js +79 -2
  16. package/dist/tools/biome-check.js.map +1 -1
  17. package/dist/tools/biome-format.d.ts.map +1 -1
  18. package/dist/tools/biome-format.js +54 -2
  19. package/dist/tools/biome-format.js.map +1 -1
  20. package/dist/tools/format-check.d.ts.map +1 -1
  21. package/dist/tools/format-check.js +54 -2
  22. package/dist/tools/format-check.js.map +1 -1
  23. package/dist/tools/hadolint.d.ts.map +1 -1
  24. package/dist/tools/hadolint.js +84 -1
  25. package/dist/tools/hadolint.js.map +1 -1
  26. package/dist/tools/lint.d.ts.map +1 -1
  27. package/dist/tools/lint.js +62 -2
  28. package/dist/tools/lint.js.map +1 -1
  29. package/dist/tools/oxlint.d.ts.map +1 -1
  30. package/dist/tools/oxlint.js +94 -2
  31. package/dist/tools/oxlint.js.map +1 -1
  32. package/dist/tools/prettier-format.d.ts.map +1 -1
  33. package/dist/tools/prettier-format.js +70 -6
  34. package/dist/tools/prettier-format.js.map +1 -1
  35. package/dist/tools/shellcheck.d.ts.map +1 -1
  36. package/dist/tools/shellcheck.js +100 -7
  37. package/dist/tools/shellcheck.js.map +1 -1
  38. package/dist/tools/stylelint.d.ts.map +1 -1
  39. package/dist/tools/stylelint.js +58 -2
  40. package/dist/tools/stylelint.js.map +1 -1
  41. package/package.json +2 -2
@@ -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);
@@ -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,wIAAwI;QAC1I,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CAAC,kCAAkC,CAAC;YAC/C,QAAQ,EAAE,CAAC;iBACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;iBAC5C,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;iBAC3B,QAAQ,EAAE;iBACV,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;iBACd,QAAQ,CAAC,wCAAwC,CAAC;YACrD,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CACP,kGAAkG,CACnG;SACJ;QACD,YAAY,EAAE,gBAAgB;KAC/B,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC/B,qBAAqB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,iBAAiB,CACtB,IAAI,EACJ,MAAM,CAAC,MAAM,EACb,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,OAAO,KAAK,KAAK,CAClB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
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;AAWzE,oEAAoE;AACpE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,QAgD3D"}
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
- const args = ["--write", ...(patterns || ["."])];
37
- const result = await prettier(args, cwd);
38
- const data = parsePrettierWrite(result.stdout, result.stderr, result.exitCode);
39
- return compactDualOutput(data, result.stdout, formatFormatWrite, compactFormatWriteMap, formatFormatWriteCompact, compact === false);
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,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,oEAAoE;AACpE,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,kJAAkJ;QACpJ,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CAAC,kCAAkC,CAAC;YAC/C,QAAQ,EAAE,CAAC;iBACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;iBAC5C,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;iBAC3B,QAAQ,EAAE;iBACV,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;iBACd,QAAQ,CAAC,0CAA0C,CAAC;YACvD,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CACP,kGAAkG,CACnG;SACJ;QACD,YAAY,EAAE,uBAAuB;KACtC,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC/B,qBAAqB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEjD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/E,OAAO,iBAAiB,CACtB,IAAI,EACJ,MAAM,CAAC,MAAM,EACb,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,OAAO,KAAK,KAAK,CAClB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
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;AAOzE,+DAA+D;AAC/D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QAwDvD"}
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"}
@@ -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(...(patterns || ["."]));
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,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,+DAA+D;AAC/D,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EACT,sKAAsK;QACxK,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CAAC,kCAAkC,CAAC;YAC/C,QAAQ,EAAE,CAAC;iBACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;iBAC5C,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;iBAC3B,QAAQ,EAAE;iBACV,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;iBACd,QAAQ,CAAC,yCAAyC,CAAC;YACtD,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;iBAC3C,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;YAChE,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CACP,kGAAkG,CACnG;SACJ;QACD,YAAY,EAAE,gBAAgB;KAC/B,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9C,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC/B,qBAAqB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,iBAAiB,CACtB,IAAI,EACJ,MAAM,CAAC,MAAM,EACb,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,OAAO,KAAK,KAAK,CAClB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
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,QAkDtD"}
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"}
@@ -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,8IAA8I;QAChJ,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CAAC,kCAAkC,CAAC;YAC/C,QAAQ,EAAE,CAAC;iBACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;iBAC5C,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;iBAC3B,QAAQ,EAAE;iBACV,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;iBACd,QAAQ,CAAC,wCAAwC,CAAC;YACrD,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACxE,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CACP,kGAAkG,CACnG;SACJ;QACD,YAAY,EAAE,gBAAgB;KAC/B,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;QACzC,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC/B,qBAAqB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,iBAAiB,CACtB,IAAI,EACJ,MAAM,CAAC,MAAM,EACb,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,OAAO,KAAK,KAAK,CAClB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
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.8.4",
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.8.3"
54
+ "@paretools/shared": "0.9.0"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@types/node": "^25.2.3",