pr-checkmate 3.2.3 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +3 -9
- package/LICENSE +8 -3
- package/README.md +54 -5
- package/dist/cjs/agent/hook.d.ts +37 -0
- package/dist/cjs/agent/hook.js +175 -0
- package/dist/cjs/agent/registration.d.ts +10 -0
- package/dist/cjs/agent/registration.js +28 -0
- package/dist/cjs/agent/setup.d.ts +20 -0
- package/dist/cjs/agent/setup.js +229 -0
- package/dist/cjs/cli.js +101 -0
- package/dist/cjs/config/constants.d.ts +2 -0
- package/dist/cjs/config/constants.js +5 -1
- package/dist/cjs/config/pr-checkmate.template.json +11 -1
- package/dist/cjs/core/checks/dependencies/grype-scan.js +18 -0
- package/dist/cjs/core/checks/findings.js +33 -7
- package/dist/cjs/core/checks/git/large-files.d.ts +1 -0
- package/dist/cjs/core/checks/git/large-files.js +3 -3
- package/dist/cjs/core/checks/languages/lint.js +12 -0
- package/dist/cjs/core/checks/languages/ruff-shared.js +6 -1
- package/dist/cjs/core/checks/pr/commitlint.js +4 -2
- package/dist/cjs/core/checks/pr/pr-size-check.d.ts +2 -0
- package/dist/cjs/core/checks/pr/pr-size-check.js +5 -5
- package/dist/cjs/core/checks/quality/package-size.d.ts +23 -1
- package/dist/cjs/core/checks/quality/package-size.js +20 -4
- package/dist/cjs/core/checks/quality/spellcheck.js +8 -5
- package/dist/cjs/core/checks/security/agent-instructions.d.ts +4 -0
- package/dist/cjs/core/checks/security/agent-instructions.js +149 -0
- package/dist/cjs/core/checks/security/diff-security.d.ts +7 -0
- package/dist/cjs/core/checks/security/diff-security.js +21 -1
- package/dist/cjs/core/checks/security/security.d.ts +0 -13
- package/dist/cjs/core/checks/security/security.js +27 -0
- package/dist/cjs/core/checks/security/workflow-security.js +33 -0
- package/dist/cjs/core/commands.d.ts +6 -0
- package/dist/cjs/core/commands.js +11 -1
- package/dist/cjs/core/finding-store.d.ts +16 -0
- package/dist/cjs/core/finding-store.js +73 -0
- package/dist/cjs/core/install/doctor.js +12 -0
- package/dist/cjs/core/install/grype-db.d.ts +25 -0
- package/dist/cjs/core/install/grype-db.js +45 -0
- package/dist/cjs/core/install/profiles.d.ts +1 -1
- package/dist/cjs/core/install/profiles.js +1 -1
- package/dist/cjs/core/install/reuse.js +6 -3
- package/dist/cjs/core/registry.js +2 -0
- package/dist/cjs/core/reporters.js +9 -0
- package/dist/cjs/core/run-checks.js +15 -5
- package/dist/cjs/core/sarif.d.ts +13 -0
- package/dist/cjs/core/sarif.js +60 -0
- package/dist/cjs/core/types.d.ts +7 -2
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/init.d.ts +0 -8
- package/dist/cjs/init.js +12 -2
- package/dist/cjs/interfaces/index.d.ts +12 -0
- package/dist/cjs/mcp/config-tools.d.ts +30 -0
- package/dist/cjs/mcp/config-tools.js +320 -0
- package/dist/cjs/mcp/dependency.d.ts +33 -0
- package/dist/cjs/mcp/dependency.js +407 -0
- package/dist/cjs/mcp/protocol.d.ts +97 -0
- package/dist/cjs/mcp/protocol.js +181 -0
- package/dist/cjs/mcp/review.d.ts +63 -0
- package/dist/cjs/mcp/review.js +150 -0
- package/dist/cjs/mcp/serve.d.ts +8 -0
- package/dist/cjs/mcp/serve.js +49 -0
- package/dist/cjs/mcp/settings.d.ts +13 -0
- package/dist/cjs/mcp/settings.js +50 -0
- package/dist/cjs/mcp/tools.d.ts +23 -0
- package/dist/cjs/mcp/tools.js +633 -0
- package/dist/cjs/utils/execa.d.ts +7 -0
- package/dist/cjs/utils/execa.js +41 -1
- package/dist/cjs/utils/own-deps.js +8 -1
- package/dist/cjs/utils/resolve-bin.d.ts +2 -0
- package/dist/cjs/utils/resolve-bin.js +5 -0
- package/dist/cjs/utils/result-collector.d.ts +17 -1
- package/dist/cjs/utils/result-collector.js +7 -2
- package/dist/esm/agent/hook.d.ts +37 -0
- package/dist/esm/agent/hook.js +167 -0
- package/dist/esm/agent/registration.d.ts +10 -0
- package/dist/esm/agent/registration.js +21 -0
- package/dist/esm/agent/setup.d.ts +20 -0
- package/dist/esm/agent/setup.js +220 -0
- package/dist/esm/cli.js +100 -2
- package/dist/esm/config/constants.d.ts +2 -0
- package/dist/esm/config/constants.js +4 -0
- package/dist/esm/config/pr-checkmate.template.json +11 -1
- package/dist/esm/core/checks/dependencies/dependency-check.js +2 -2
- package/dist/esm/core/checks/dependencies/grype-scan.js +18 -0
- package/dist/esm/core/checks/dependencies/license-check.js +2 -2
- package/dist/esm/core/checks/dependencies/npm-audit.js +2 -2
- package/dist/esm/core/checks/findings.js +33 -7
- package/dist/esm/core/checks/git/diff-smell.js +1 -1
- package/dist/esm/core/checks/git/large-files.d.ts +1 -0
- package/dist/esm/core/checks/git/large-files.js +1 -1
- package/dist/esm/core/checks/languages/cpp-format.js +1 -1
- package/dist/esm/core/checks/languages/lint.js +12 -3
- package/dist/esm/core/checks/languages/prettier.js +3 -3
- package/dist/esm/core/checks/languages/python-format.js +2 -2
- package/dist/esm/core/checks/languages/python-lint.js +2 -2
- package/dist/esm/core/checks/languages/ruff-shared.js +6 -1
- package/dist/esm/core/checks/languages/typecheck.js +1 -1
- package/dist/esm/core/checks/pr/commitlint.js +4 -2
- package/dist/esm/core/checks/pr/pr-body.js +1 -1
- package/dist/esm/core/checks/pr/pr-size-check.d.ts +2 -0
- package/dist/esm/core/checks/pr/pr-size-check.js +3 -3
- package/dist/esm/core/checks/pr/pr-title-lint.js +1 -1
- package/dist/esm/core/checks/quality/dead-code.js +1 -1
- package/dist/esm/core/checks/quality/duplicate-check.js +1 -1
- package/dist/esm/core/checks/quality/markdown-lint.js +1 -1
- package/dist/esm/core/checks/quality/package-size.d.ts +23 -1
- package/dist/esm/core/checks/quality/package-size.js +19 -4
- package/dist/esm/core/checks/quality/spellcheck.js +11 -8
- package/dist/esm/core/checks/security/agent-instructions.d.ts +4 -0
- package/dist/esm/core/checks/security/agent-instructions.js +146 -0
- package/dist/esm/core/checks/security/diff-security.d.ts +7 -0
- package/dist/esm/core/checks/security/diff-security.js +21 -1
- package/dist/esm/core/checks/security/security.d.ts +0 -13
- package/dist/esm/core/checks/security/security.js +28 -1
- package/dist/esm/core/checks/security/workflow-security.js +33 -0
- package/dist/esm/core/commands.d.ts +6 -0
- package/dist/esm/core/commands.js +10 -0
- package/dist/esm/core/finding-store.d.ts +16 -0
- package/dist/esm/core/finding-store.js +67 -0
- package/dist/esm/core/install/doctor.js +12 -0
- package/dist/esm/core/install/grype-db.d.ts +25 -0
- package/dist/esm/core/install/grype-db.js +41 -0
- package/dist/esm/core/install/prepare.js +1 -1
- package/dist/esm/core/install/profiles.d.ts +1 -1
- package/dist/esm/core/install/profiles.js +1 -1
- package/dist/esm/core/install/reuse.js +6 -3
- package/dist/esm/core/registry.js +2 -0
- package/dist/esm/core/reporters.js +9 -0
- package/dist/esm/core/run-checks.js +17 -7
- package/dist/esm/core/sarif.d.ts +13 -0
- package/dist/esm/core/sarif.js +57 -0
- package/dist/esm/core/types.d.ts +7 -2
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/init.d.ts +0 -8
- package/dist/esm/init.js +15 -4
- package/dist/esm/interfaces/index.d.ts +12 -0
- package/dist/esm/mcp/config-tools.d.ts +30 -0
- package/dist/esm/mcp/config-tools.js +310 -0
- package/dist/esm/mcp/dependency.d.ts +33 -0
- package/dist/esm/mcp/dependency.js +402 -0
- package/dist/esm/mcp/protocol.d.ts +97 -0
- package/dist/esm/mcp/protocol.js +175 -0
- package/dist/esm/mcp/review.d.ts +63 -0
- package/dist/esm/mcp/review.js +139 -0
- package/dist/esm/mcp/serve.d.ts +8 -0
- package/dist/esm/mcp/serve.js +43 -0
- package/dist/esm/mcp/settings.d.ts +13 -0
- package/dist/esm/mcp/settings.js +43 -0
- package/dist/esm/mcp/tools.d.ts +23 -0
- package/dist/esm/mcp/tools.js +626 -0
- package/dist/esm/utils/execa.d.ts +7 -0
- package/dist/esm/utils/execa.js +40 -1
- package/dist/esm/utils/own-deps.js +8 -1
- package/dist/esm/utils/resolve-bin.d.ts +2 -0
- package/dist/esm/utils/resolve-bin.js +4 -0
- package/dist/esm/utils/result-collector.d.ts +17 -1
- package/dist/esm/utils/result-collector.js +7 -2
- package/eslint-default-rules.json +2 -8
- package/eslint.config.mjs +37 -8
- package/install-manifests/commitlint/package-lock.json +5 -4
- package/install-manifests/core/package-lock.json +5 -3
- package/install-manifests/js/package-lock.json +250 -571
- package/install-manifests/js/package.json +10 -8
- package/install-manifests/markdown/package-lock.json +16 -13
- package/install-manifests/markdown/package.json +3 -0
- package/install-manifests/spellcheck/package-lock.json +3 -3
- package/package.json +24 -16
- package/pr-checkmate.schema.json +35 -0
- package/src/config/.eslintrc.js +3 -9
- package/src/config/eslint-default-rules.json +2 -8
- package/src/config/pr-checkmate.schema.json +35 -0
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"typescript": "6.0.3",
|
|
6
|
-
"eslint": "10.
|
|
6
|
+
"eslint": "10.14.0",
|
|
7
7
|
"eslint-config-prettier": "10.1.8",
|
|
8
|
-
"eslint-plugin-
|
|
9
|
-
"eslint-plugin-
|
|
10
|
-
"eslint-plugin-
|
|
11
|
-
"eslint-plugin-sonarjs": "4.2.
|
|
12
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
13
|
-
"@typescript-eslint/parser": "8.
|
|
8
|
+
"eslint-plugin-jsdoc": "65.4.2",
|
|
9
|
+
"eslint-plugin-prettier": "5.5.7",
|
|
10
|
+
"eslint-plugin-simple-import-sort": "14.0.0",
|
|
11
|
+
"eslint-plugin-sonarjs": "4.2.2",
|
|
12
|
+
"@typescript-eslint/eslint-plugin": "8.72.1",
|
|
13
|
+
"@typescript-eslint/parser": "8.72.1",
|
|
14
14
|
"prettier": "3.9.9",
|
|
15
15
|
"dpdm": "4.3.0",
|
|
16
16
|
"knip": "6.38.0",
|
|
@@ -20,7 +20,9 @@
|
|
|
20
20
|
"overrides": {
|
|
21
21
|
"dpdm": {
|
|
22
22
|
"typescript": "$typescript"
|
|
23
|
-
}
|
|
23
|
+
},
|
|
24
|
+
"minimatch": "^11.0.3",
|
|
25
|
+
"glob": "^14.0.3"
|
|
24
26
|
},
|
|
25
27
|
"private": true
|
|
26
28
|
}
|
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
"version": "1.0.0",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"markdownlint": "0.41.1"
|
|
12
|
+
},
|
|
13
|
+
"overrides": {
|
|
14
|
+
"katex": "^0.19.1"
|
|
12
15
|
}
|
|
13
16
|
},
|
|
14
17
|
"node_modules/@types/debug": {
|
|
@@ -80,6 +83,15 @@
|
|
|
80
83
|
"url": "https://github.com/sponsors/wooorm"
|
|
81
84
|
}
|
|
82
85
|
},
|
|
86
|
+
"node_modules/commander": {
|
|
87
|
+
"version": "15.0.0",
|
|
88
|
+
"resolved": "https://registry.npmjs.org/commander/-/commander-15.0.0.tgz",
|
|
89
|
+
"integrity": "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==",
|
|
90
|
+
"license": "MIT",
|
|
91
|
+
"engines": {
|
|
92
|
+
"node": ">=22.12.0"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
83
95
|
"node_modules/debug": {
|
|
84
96
|
"version": "4.4.3",
|
|
85
97
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
|
|
@@ -189,30 +201,21 @@
|
|
|
189
201
|
}
|
|
190
202
|
},
|
|
191
203
|
"node_modules/katex": {
|
|
192
|
-
"version": "0.
|
|
193
|
-
"resolved": "https://registry.npmjs.org/katex/-/katex-0.
|
|
194
|
-
"integrity": "sha512-
|
|
204
|
+
"version": "0.19.1",
|
|
205
|
+
"resolved": "https://registry.npmjs.org/katex/-/katex-0.19.1.tgz",
|
|
206
|
+
"integrity": "sha512-jG8uKntjSEcm2EpQOh0XturpPuuC9r3Sq5HLHdsFdWZT27E672SF19QEi+of0/YeOy15lDgRhKvr5614uRrEfA==",
|
|
195
207
|
"funding": [
|
|
196
208
|
"https://opencollective.com/katex",
|
|
197
209
|
"https://github.com/sponsors/katex"
|
|
198
210
|
],
|
|
199
211
|
"license": "MIT",
|
|
200
212
|
"dependencies": {
|
|
201
|
-
"commander": "^
|
|
213
|
+
"commander": "^15.0.0"
|
|
202
214
|
},
|
|
203
215
|
"bin": {
|
|
204
216
|
"katex": "cli.js"
|
|
205
217
|
}
|
|
206
218
|
},
|
|
207
|
-
"node_modules/katex/node_modules/commander": {
|
|
208
|
-
"version": "8.3.0",
|
|
209
|
-
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
|
|
210
|
-
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
|
|
211
|
-
"license": "MIT",
|
|
212
|
-
"engines": {
|
|
213
|
-
"node": ">= 12"
|
|
214
|
-
}
|
|
215
|
-
},
|
|
216
219
|
"node_modules/markdownlint": {
|
|
217
220
|
"version": "0.41.1",
|
|
218
221
|
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.41.1.tgz",
|
|
@@ -982,9 +982,9 @@
|
|
|
982
982
|
}
|
|
983
983
|
},
|
|
984
984
|
"node_modules/smol-toml": {
|
|
985
|
-
"version": "1.
|
|
986
|
-
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.
|
|
987
|
-
"integrity": "sha512-
|
|
985
|
+
"version": "1.9.1",
|
|
986
|
+
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.9.1.tgz",
|
|
987
|
+
"integrity": "sha512-j7WyPdf0CJoutMzMoPLF/bVXHtKZIT9Rb4eGeEbWw8X2t5oirjPgpL+OpaENZrILYaXqYwnVH+qgUwVbl+pUJQ==",
|
|
988
988
|
"license": "BSD-3-Clause",
|
|
989
989
|
"engines": {
|
|
990
990
|
"node": ">= 18"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pr-checkmate",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Security-first PR gate for CI: secret scanning, grype dependency scanning, SBOM — plus linting and formatting across 11 languages",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"github-actions",
|
|
@@ -9,7 +9,11 @@
|
|
|
9
9
|
"eslint",
|
|
10
10
|
"prettier",
|
|
11
11
|
"code-quality",
|
|
12
|
-
"automation"
|
|
12
|
+
"automation",
|
|
13
|
+
"mcp",
|
|
14
|
+
"model-context-protocol",
|
|
15
|
+
"ai-agents",
|
|
16
|
+
"claude-code"
|
|
13
17
|
],
|
|
14
18
|
"main": "./dist/cjs/index.js",
|
|
15
19
|
"module": "./dist/esm/index.js",
|
|
@@ -78,6 +82,12 @@
|
|
|
78
82
|
"author": "Artur Polishchuk",
|
|
79
83
|
"license": "SEE LICENSE IN LICENSE",
|
|
80
84
|
"dependencies": {
|
|
85
|
+
"execa": "^9.6.0",
|
|
86
|
+
"gitleaks-secret-scanner-fixed": "3.0.4",
|
|
87
|
+
"inquirer": "^14.1.0",
|
|
88
|
+
"yaml": "^2.9.0"
|
|
89
|
+
},
|
|
90
|
+
"devDependencies": {
|
|
81
91
|
"@astral-sh/ruff-wasm-nodejs": "^0.16.3",
|
|
82
92
|
"@commitlint/cli": "^21.2.2",
|
|
83
93
|
"@commitlint/config-conventional": "^21.2.2",
|
|
@@ -86,37 +96,35 @@
|
|
|
86
96
|
"@typescript-eslint/parser": "^8.67.0",
|
|
87
97
|
"@wasm-fmt/clang-format": "^23.1.1",
|
|
88
98
|
"@wasm-fmt/gofmt": "^0.7.3",
|
|
99
|
+
"conventional-commits-filter": "^6.0.1",
|
|
100
|
+
"conventional-commits-parser": "^7.1.2",
|
|
89
101
|
"cspell": "^10.0.1",
|
|
90
102
|
"dpdm": "^4.3.0",
|
|
91
103
|
"eslint": "^10.8.1",
|
|
92
104
|
"eslint-config-prettier": "^10.1.8",
|
|
93
|
-
"eslint-plugin-import-x": "^4.17.1",
|
|
94
105
|
"eslint-plugin-jsdoc": "^65.1.0",
|
|
95
106
|
"eslint-plugin-prettier": "^5.5.6",
|
|
107
|
+
"eslint-plugin-simple-import-sort": "^14.0.0",
|
|
96
108
|
"eslint-plugin-sonarjs": "^4.2.0",
|
|
97
|
-
"execa": "^9.6.0",
|
|
98
|
-
"gitleaks-secret-scanner-fixed": "3.0.4",
|
|
99
|
-
"inquirer": "^14.1.0",
|
|
100
109
|
"jscpd": "^5.0.16",
|
|
101
110
|
"knip": "^6.32.2",
|
|
102
111
|
"license-checker-rseidelsohn": "^5.0.1",
|
|
103
112
|
"markdownlint": "^0.41.1",
|
|
104
113
|
"prettier": "^3.9.6",
|
|
105
|
-
"ts-node": "^10.9.1",
|
|
106
|
-
"ts-unused-exports": "^11.0.1",
|
|
107
|
-
"typescript": "^6.0.3",
|
|
108
|
-
"yaml": "^2.9.0"
|
|
109
|
-
},
|
|
110
|
-
"devDependencies": {
|
|
111
|
-
"conventional-commits-filter": "^6.0.1",
|
|
112
|
-
"conventional-commits-parser": "^7.1.2",
|
|
113
114
|
"pyright": "^1.1.413",
|
|
114
115
|
"standard-version": "^9.5.0",
|
|
115
|
-
"
|
|
116
|
+
"ts-node": "^10.9.1",
|
|
117
|
+
"ts-unused-exports": "^11.0.1",
|
|
118
|
+
"typedoc": "^0.28.20",
|
|
119
|
+
"typescript": "^6.0.3"
|
|
116
120
|
},
|
|
117
121
|
"overrides": {
|
|
118
122
|
"dpdm": {
|
|
119
123
|
"typescript": "$typescript"
|
|
120
|
-
}
|
|
124
|
+
},
|
|
125
|
+
"minimatch": "^11.0.3",
|
|
126
|
+
"glob": "^14.0.3",
|
|
127
|
+
"katex": "^0.19.1",
|
|
128
|
+
"dotgitignore": "file:./tools/dotgitignore"
|
|
121
129
|
}
|
|
122
130
|
}
|
package/pr-checkmate.schema.json
CHANGED
|
@@ -309,6 +309,41 @@
|
|
|
309
309
|
"dockerfileSecurity": {
|
|
310
310
|
"$ref": "#/$defs/toggleIgnorePaths"
|
|
311
311
|
},
|
|
312
|
+
"agentInstructions": {
|
|
313
|
+
"$ref": "#/$defs/toggleIgnorePaths"
|
|
314
|
+
},
|
|
315
|
+
"mcp": {
|
|
316
|
+
"type": "object",
|
|
317
|
+
"description": "What the pr-checkmate MCP server offers an AI agent working in this project. Changes apply to the agent's next request.",
|
|
318
|
+
"additionalProperties": false,
|
|
319
|
+
"properties": {
|
|
320
|
+
"enabled": {
|
|
321
|
+
"type": "boolean",
|
|
322
|
+
"description": "false turns the server off for this project: it still connects, but offers no tools, resources or prompts. Default true."
|
|
323
|
+
},
|
|
324
|
+
"disabledTools": {
|
|
325
|
+
"type": "array",
|
|
326
|
+
"description": "Tools to hide from the agent.",
|
|
327
|
+
"items": {
|
|
328
|
+
"enum": [
|
|
329
|
+
"get_rules",
|
|
330
|
+
"check_changes",
|
|
331
|
+
"apply_fixes",
|
|
332
|
+
"scan_secrets",
|
|
333
|
+
"check_dependency",
|
|
334
|
+
"suggest_config",
|
|
335
|
+
"write_config",
|
|
336
|
+
"explain_config",
|
|
337
|
+
"verify"
|
|
338
|
+
]
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
"readOnly": {
|
|
342
|
+
"type": "boolean",
|
|
343
|
+
"description": "Hide the tools that write files (apply_fixes, write_config), so the agent can only read and report. Default false."
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
},
|
|
312
347
|
"migrationSafety": {
|
|
313
348
|
"$ref": "#/$defs/toggleSeverity"
|
|
314
349
|
},
|
package/src/config/.eslintrc.js
CHANGED
|
@@ -41,7 +41,7 @@ module.exports = {
|
|
|
41
41
|
sourceType: 'module',
|
|
42
42
|
project: './tsconfig.json',
|
|
43
43
|
},
|
|
44
|
-
plugins: ['@typescript-eslint', 'prettier', 'import-
|
|
44
|
+
plugins: ['@typescript-eslint', 'prettier', 'simple-import-sort', 'jsdoc'],
|
|
45
45
|
extends: [
|
|
46
46
|
'eslint:recommended',
|
|
47
47
|
'plugin:@typescript-eslint/recommended',
|
|
@@ -85,14 +85,8 @@ module.exports = {
|
|
|
85
85
|
// Complexity analysis (#61)
|
|
86
86
|
complexity: ['warn', 30],
|
|
87
87
|
// Import ordering (#65)
|
|
88
|
-
'import-
|
|
89
|
-
|
|
90
|
-
{
|
|
91
|
-
groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'],
|
|
92
|
-
alphabetize: { order: 'asc', caseInsensitive: true },
|
|
93
|
-
},
|
|
94
|
-
],
|
|
95
|
-
'import-x/no-duplicates': 'error',
|
|
88
|
+
'simple-import-sort/imports': 'warn',
|
|
89
|
+
'no-duplicate-imports': ['error', { allowSeparateTypeImports: true }],
|
|
96
90
|
// Documentation (#62). `jsdoc/require-jsdoc` is deliberately absent — see the
|
|
97
91
|
// note in eslint-flat-config.mjs. These three check docblocks that exist and
|
|
98
92
|
// fix only inside them; they never fabricate one.
|
|
@@ -26,14 +26,8 @@
|
|
|
26
26
|
"sonarjs/cognitive-complexity": ["warn", 30],
|
|
27
27
|
"sonarjs/no-duplicate-string": ["warn", { "threshold": 3 }],
|
|
28
28
|
"sonarjs/no-identical-functions": "warn",
|
|
29
|
-
"import/
|
|
30
|
-
|
|
31
|
-
{
|
|
32
|
-
"groups": ["builtin", "external", "internal", "parent", "sibling", "index"],
|
|
33
|
-
"alphabetize": { "order": "asc", "caseInsensitive": true }
|
|
34
|
-
}
|
|
35
|
-
],
|
|
36
|
-
"import/no-duplicates": "error",
|
|
29
|
+
"simple-import-sort/imports": "warn",
|
|
30
|
+
"no-duplicate-imports": ["error", { "allowSeparateTypeImports": true }],
|
|
37
31
|
"jsdoc/check-param-names": "warn",
|
|
38
32
|
"jsdoc/check-tag-names": "warn",
|
|
39
33
|
"jsdoc/check-types": "warn",
|
|
@@ -309,6 +309,41 @@
|
|
|
309
309
|
"dockerfileSecurity": {
|
|
310
310
|
"$ref": "#/$defs/toggleIgnorePaths"
|
|
311
311
|
},
|
|
312
|
+
"agentInstructions": {
|
|
313
|
+
"$ref": "#/$defs/toggleIgnorePaths"
|
|
314
|
+
},
|
|
315
|
+
"mcp": {
|
|
316
|
+
"type": "object",
|
|
317
|
+
"description": "What the pr-checkmate MCP server offers an AI agent working in this project. Changes apply to the agent's next request.",
|
|
318
|
+
"additionalProperties": false,
|
|
319
|
+
"properties": {
|
|
320
|
+
"enabled": {
|
|
321
|
+
"type": "boolean",
|
|
322
|
+
"description": "false turns the server off for this project: it still connects, but offers no tools, resources or prompts. Default true."
|
|
323
|
+
},
|
|
324
|
+
"disabledTools": {
|
|
325
|
+
"type": "array",
|
|
326
|
+
"description": "Tools to hide from the agent.",
|
|
327
|
+
"items": {
|
|
328
|
+
"enum": [
|
|
329
|
+
"get_rules",
|
|
330
|
+
"check_changes",
|
|
331
|
+
"apply_fixes",
|
|
332
|
+
"scan_secrets",
|
|
333
|
+
"check_dependency",
|
|
334
|
+
"suggest_config",
|
|
335
|
+
"write_config",
|
|
336
|
+
"explain_config",
|
|
337
|
+
"verify"
|
|
338
|
+
]
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
"readOnly": {
|
|
342
|
+
"type": "boolean",
|
|
343
|
+
"description": "Hide the tools that write files (apply_fixes, write_config), so the agent can only read and report. Default false."
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
},
|
|
312
347
|
"migrationSafety": {
|
|
313
348
|
"$ref": "#/$defs/toggleSeverity"
|
|
314
349
|
},
|