critical-gate 2.6.0 → 2.7.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/cli/main.d.ts +1 -1
- package/dist/detectors/repository-intelligence-detector.d.ts.map +1 -1
- package/dist/detectors/repository-intelligence-detector.js +57 -2
- package/dist/detectors/repository-intelligence-detector.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/cli/main.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-intelligence-detector.d.ts","sourceRoot":"","sources":["../../src/detectors/repository-intelligence-detector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,8BAA8B,EAAE,
|
|
1
|
+
{"version":3,"file":"repository-intelligence-detector.d.ts","sourceRoot":"","sources":["../../src/detectors/repository-intelligence-detector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,8BAA8B,EAAE,QAwB5C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const repositoryIntelligenceDetector = {
|
|
2
2
|
name: "repository-intelligence",
|
|
3
|
-
run: ({ diff, context }) => {
|
|
3
|
+
run: ({ task, diff, context }) => {
|
|
4
4
|
const history = context?.knowledge?.getHistoryIndex();
|
|
5
5
|
const profile = context?.repositoryProfile ?? history?.profile;
|
|
6
6
|
if (profile === undefined || profile.commitCount < profile.minConfidenceCommitCount) {
|
|
@@ -11,10 +11,29 @@ export const repositoryIntelligenceDetector = {
|
|
|
11
11
|
return [];
|
|
12
12
|
}
|
|
13
13
|
return diff.files
|
|
14
|
-
.filter((file) => isHistoricallyUnrelated(file, changedPaths, profile)
|
|
14
|
+
.filter((file) => isHistoricallyUnrelated(file, changedPaths, profile) &&
|
|
15
|
+
!isExplicitFocusedUiPresentationChange(file, diff.files, task.text))
|
|
15
16
|
.map((file) => toFinding(file, changedPaths, profile, history));
|
|
16
17
|
}
|
|
17
18
|
};
|
|
19
|
+
const focusedUiPresentationTaskPattern = /\b(?:style|styles|styling|visual|redesign|polish|spacing|sizing|grid|layout|align|masonry|card|cards|cta|arrow|icon|indicator|vinyl|animation|animated|mobile|css|scss|typography|display|view|mode)\b/i;
|
|
20
|
+
const uiPresentationPathPattern = /(^|\/)(components?|views?|pages?|screens?|styles?|theme|themes|scripts?)\/|\.astro$|\.(?:css|scss|sass|less)$/i;
|
|
21
|
+
const visualAssetPathPattern = /(^|\/)(public|assets?)\/.+\.(?:png|jpe?g|webp|gif|svg|avif)$/i;
|
|
22
|
+
const genericPathTokens = new Set([
|
|
23
|
+
"component",
|
|
24
|
+
"components",
|
|
25
|
+
"view",
|
|
26
|
+
"views",
|
|
27
|
+
"page",
|
|
28
|
+
"pages",
|
|
29
|
+
"screen",
|
|
30
|
+
"screens",
|
|
31
|
+
"style",
|
|
32
|
+
"styles",
|
|
33
|
+
"script",
|
|
34
|
+
"scripts",
|
|
35
|
+
"src"
|
|
36
|
+
]);
|
|
18
37
|
function isHistoricallyUnrelated(file, changedPaths, profile) {
|
|
19
38
|
const coChange = profile.coChanges.find((entry) => entry.path === file.path);
|
|
20
39
|
if (coChange === undefined || coChange.count === 0) {
|
|
@@ -23,6 +42,42 @@ function isHistoricallyUnrelated(file, changedPaths, profile) {
|
|
|
23
42
|
const relatedChangedPaths = coChange.relatedPaths.filter((related) => changedPaths.includes(related.path));
|
|
24
43
|
return relatedChangedPaths.length === 0;
|
|
25
44
|
}
|
|
45
|
+
function isExplicitFocusedUiPresentationChange(file, files, taskText) {
|
|
46
|
+
if (files.length === 0 ||
|
|
47
|
+
files.length > 6 ||
|
|
48
|
+
!focusedUiPresentationTaskPattern.test(taskText) ||
|
|
49
|
+
!files.every(isUiPresentationOrAssetChange)) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
return getPathIntentTokens(file.path).some((token) => taskMentionsToken(taskText, token));
|
|
53
|
+
}
|
|
54
|
+
function isUiPresentationOrAssetChange(file) {
|
|
55
|
+
return (file.status !== "deleted" &&
|
|
56
|
+
(file.role === "source" || file.role === "unknown") &&
|
|
57
|
+
(uiPresentationPathPattern.test(file.path) || visualAssetPathPattern.test(file.path)));
|
|
58
|
+
}
|
|
59
|
+
function getPathIntentTokens(path) {
|
|
60
|
+
const fileName = path
|
|
61
|
+
.split("/")
|
|
62
|
+
.at(-1)
|
|
63
|
+
?.replace(/\.[^.]+$/u, "");
|
|
64
|
+
if (fileName === undefined) {
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
const tokens = fileName
|
|
68
|
+
.replace(/([a-z0-9])([A-Z])/g, "$1 $2")
|
|
69
|
+
.toLowerCase()
|
|
70
|
+
.split(/[^a-z0-9]+/u)
|
|
71
|
+
.filter((token) => token.length >= 3)
|
|
72
|
+
.filter((token) => !genericPathTokens.has(token));
|
|
73
|
+
return [...new Set(tokens)];
|
|
74
|
+
}
|
|
75
|
+
function taskMentionsToken(taskText, token) {
|
|
76
|
+
return new RegExp(`(^|[^a-z0-9])${escapeRegExp(token)}([^a-z0-9]|$)`, "i").test(taskText);
|
|
77
|
+
}
|
|
78
|
+
function escapeRegExp(value) {
|
|
79
|
+
return value.replaceAll(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
80
|
+
}
|
|
26
81
|
function toFinding(file, changedPaths, profile, history) {
|
|
27
82
|
const coChange = profile.coChanges.find((entry) => entry.path === file.path);
|
|
28
83
|
const topRelated = coChange?.relatedPaths.slice(0, 3).map((related) => related.path) ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-intelligence-detector.js","sourceRoot":"","sources":["../../src/detectors/repository-intelligence-detector.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,8BAA8B,GAAa;IACtD,IAAI,EAAE,yBAAyB;IAC/B,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"repository-intelligence-detector.js","sourceRoot":"","sources":["../../src/detectors/repository-intelligence-detector.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CRITICAL_GATE_VERSION = "2.
|
|
1
|
+
export declare const CRITICAL_GATE_VERSION = "2.7.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const CRITICAL_GATE_VERSION = "2.
|
|
1
|
+
export const CRITICAL_GATE_VERSION = "2.7.0";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|