@aiready/cli 0.10.2 → 0.10.4
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/.turbo/turbo-build.log +8 -8
- package/.turbo/turbo-test.log +3 -3
- package/README.md +1 -1
- package/dist/chunk-R3O7QPKD.mjs +419 -0
- package/dist/cli.js +100 -26
- package/dist/cli.mjs +91 -17
- package/dist/index.js +13 -11
- package/dist/index.mjs +1 -1
- package/package.json +12 -12
- package/src/.aiready/aiready-report-20260306-094802.json +8317 -0
- package/src/.aiready/aiready-report-20260306-103239.json +8317 -0
- package/src/.aiready/aiready-report-20260306-103411.json +8317 -0
- package/src/.aiready/aiready-report-20260306-191804.json +8281 -0
- package/src/.aiready/aiready-report-20260306-191824.json +8281 -0
- package/src/.aiready/aiready-report-20260306-191838.json +8281 -0
- package/src/.aiready/aiready-report-20260306-192002.json +15942 -0
- package/src/.aiready/aiready-report-20260306-192102.json +15048 -0
- package/src/.aiready/aiready-report-20260306-202328.json +19961 -0
- package/src/commands/scan.ts +124 -14
- package/src/commands/upload.ts +3 -1
- package/src/index.ts +27 -13
package/dist/cli.js
CHANGED
|
@@ -144,10 +144,11 @@ async function analyzeUnified(options) {
|
|
|
144
144
|
options.progressCallback({ tool: "doc-drift", data: report });
|
|
145
145
|
}
|
|
146
146
|
result.docDrift = {
|
|
147
|
-
results: report.results || [],
|
|
147
|
+
results: report.results || report.issues || [],
|
|
148
148
|
summary: report.summary || {}
|
|
149
149
|
};
|
|
150
|
-
|
|
150
|
+
const issueCount = report.issues?.length || (report.results ? report.results.length : 0);
|
|
151
|
+
result.summary.totalIssues += issueCount;
|
|
151
152
|
}
|
|
152
153
|
if (tools.includes("deps-health")) {
|
|
153
154
|
const { analyzeDeps } = await import("@aiready/deps");
|
|
@@ -161,10 +162,11 @@ async function analyzeUnified(options) {
|
|
|
161
162
|
options.progressCallback({ tool: "deps-health", data: report });
|
|
162
163
|
}
|
|
163
164
|
result.dependencyHealth = {
|
|
164
|
-
results: report.results || [],
|
|
165
|
+
results: report.results || report.issues || [],
|
|
165
166
|
summary: report.summary || {}
|
|
166
167
|
};
|
|
167
|
-
|
|
168
|
+
const issueCount = report.issues?.length || (report.results ? report.results.length : 0);
|
|
169
|
+
result.summary.totalIssues += issueCount;
|
|
168
170
|
}
|
|
169
171
|
if (tools.includes("ai-signal-clarity")) {
|
|
170
172
|
const { analyzeAiSignalClarity } = await import("@aiready/ai-signal-clarity");
|
|
@@ -179,11 +181,11 @@ async function analyzeUnified(options) {
|
|
|
179
181
|
}
|
|
180
182
|
result.aiSignalClarity = {
|
|
181
183
|
...report,
|
|
182
|
-
results: report.results || [],
|
|
184
|
+
results: report.results || report.issues || [],
|
|
183
185
|
summary: report.summary || {}
|
|
184
186
|
};
|
|
185
|
-
result.summary.totalIssues += report.results?.reduce(
|
|
186
|
-
(sum, r) => sum + (r.issues?.length ||
|
|
187
|
+
result.summary.totalIssues += (report.results || report.issues)?.reduce(
|
|
188
|
+
(sum, r) => sum + (r.issues?.length || 1),
|
|
187
189
|
0
|
|
188
190
|
) || 0;
|
|
189
191
|
}
|
|
@@ -200,10 +202,10 @@ async function analyzeUnified(options) {
|
|
|
200
202
|
}
|
|
201
203
|
result.agentGrounding = {
|
|
202
204
|
...report,
|
|
203
|
-
results: report.results || [],
|
|
205
|
+
results: report.results || report.issues || [],
|
|
204
206
|
summary: report.summary || {}
|
|
205
207
|
};
|
|
206
|
-
result.summary.totalIssues += report.issues
|
|
208
|
+
result.summary.totalIssues += (report.issues || report.results || []).length;
|
|
207
209
|
}
|
|
208
210
|
if (tools.includes("testability")) {
|
|
209
211
|
const { analyzeTestability } = await import("@aiready/testability");
|
|
@@ -218,10 +220,10 @@ async function analyzeUnified(options) {
|
|
|
218
220
|
}
|
|
219
221
|
result.testability = {
|
|
220
222
|
...report,
|
|
221
|
-
results: report.results || [],
|
|
223
|
+
results: report.results || report.issues || [],
|
|
222
224
|
summary: report.summary || {}
|
|
223
225
|
};
|
|
224
|
-
result.summary.totalIssues += report.issues
|
|
226
|
+
result.summary.totalIssues += (report.issues || report.results || []).length;
|
|
225
227
|
}
|
|
226
228
|
if (tools.includes("change-amplification")) {
|
|
227
229
|
const { analyzeChangeAmplification } = await import("@aiready/change-amplification");
|
|
@@ -526,7 +528,9 @@ async function uploadAction(file, options) {
|
|
|
526
528
|
)
|
|
527
529
|
);
|
|
528
530
|
console.log(
|
|
529
|
-
import_chalk2.default.dim(
|
|
531
|
+
import_chalk2.default.dim(
|
|
532
|
+
" Get an API key from https://platform.getaiready.dev/dashboard"
|
|
533
|
+
)
|
|
530
534
|
);
|
|
531
535
|
process.exit(1);
|
|
532
536
|
}
|
|
@@ -884,18 +888,18 @@ async function scanAction(directory, options) {
|
|
|
884
888
|
topFiles.forEach(([file, issues], idx) => {
|
|
885
889
|
const counts = issues.reduce(
|
|
886
890
|
(acc, it) => {
|
|
887
|
-
const s = (it.severity ||
|
|
891
|
+
const s = (it.severity || import_core3.Severity.Info).toLowerCase();
|
|
888
892
|
acc[s] = (acc[s] || 0) + 1;
|
|
889
893
|
return acc;
|
|
890
894
|
},
|
|
891
895
|
{}
|
|
892
896
|
);
|
|
893
897
|
const sample = issues.find(
|
|
894
|
-
(it) => it.severity ===
|
|
898
|
+
(it) => it.severity === import_core3.Severity.Critical || it.severity === import_core3.Severity.Major
|
|
895
899
|
) || issues[0];
|
|
896
900
|
const sampleMsg = sample ? ` \u2014 ${sample.message}` : "";
|
|
897
901
|
console.log(
|
|
898
|
-
` ${idx + 1}. ${file} \u2014 ${issues.length} issue(s) (critical:${counts.
|
|
902
|
+
` ${idx + 1}. ${file} \u2014 ${issues.length} issue(s) (critical:${counts[import_core3.Severity.Critical] || 0} major:${counts[import_core3.Severity.Major] || 0} minor:${counts[import_core3.Severity.Minor] || 0} info:${counts[import_core3.Severity.Info] || 0})${sampleMsg}`
|
|
899
903
|
);
|
|
900
904
|
});
|
|
901
905
|
const remaining = files.length - topFiles.length;
|
|
@@ -1128,6 +1132,78 @@ async function scanAction(directory, options) {
|
|
|
1128
1132
|
}
|
|
1129
1133
|
}
|
|
1130
1134
|
}
|
|
1135
|
+
const mapToUnifiedReport = (res, scoring) => {
|
|
1136
|
+
const allResults = [];
|
|
1137
|
+
let totalFilesSet = /* @__PURE__ */ new Set();
|
|
1138
|
+
let criticalCount = 0;
|
|
1139
|
+
let majorCount = 0;
|
|
1140
|
+
const collect = (spokeRes, defaultType = import_core3.IssueType.AiSignalClarity) => {
|
|
1141
|
+
if (!spokeRes || !spokeRes.results) return;
|
|
1142
|
+
spokeRes.results.forEach((r) => {
|
|
1143
|
+
const fileName = r.fileName || r.file || "unknown";
|
|
1144
|
+
totalFilesSet.add(fileName);
|
|
1145
|
+
const normalizedResult = {
|
|
1146
|
+
fileName,
|
|
1147
|
+
issues: [],
|
|
1148
|
+
metrics: r.metrics || { tokenCost: r.tokenCost || 0 }
|
|
1149
|
+
};
|
|
1150
|
+
if (r.issues && Array.isArray(r.issues)) {
|
|
1151
|
+
r.issues.forEach((i) => {
|
|
1152
|
+
const normalizedIssue = typeof i === "string" ? {
|
|
1153
|
+
type: defaultType,
|
|
1154
|
+
severity: r.severity || import_core3.Severity.Info,
|
|
1155
|
+
message: i,
|
|
1156
|
+
location: { file: fileName, line: 1 }
|
|
1157
|
+
} : {
|
|
1158
|
+
type: i.type || defaultType,
|
|
1159
|
+
severity: i.severity || r.severity || import_core3.Severity.Info,
|
|
1160
|
+
message: i.message || String(i),
|
|
1161
|
+
location: i.location || { file: fileName, line: 1 },
|
|
1162
|
+
suggestion: i.suggestion
|
|
1163
|
+
};
|
|
1164
|
+
if (normalizedIssue.severity === import_core3.Severity.Critical || normalizedIssue.severity === "critical")
|
|
1165
|
+
criticalCount++;
|
|
1166
|
+
if (normalizedIssue.severity === import_core3.Severity.Major || normalizedIssue.severity === "major")
|
|
1167
|
+
majorCount++;
|
|
1168
|
+
normalizedResult.issues.push(normalizedIssue);
|
|
1169
|
+
});
|
|
1170
|
+
} else if (r.severity) {
|
|
1171
|
+
const normalizedIssue = {
|
|
1172
|
+
type: defaultType,
|
|
1173
|
+
severity: r.severity,
|
|
1174
|
+
message: r.message || "General issue",
|
|
1175
|
+
location: { file: fileName, line: 1 }
|
|
1176
|
+
};
|
|
1177
|
+
if (normalizedIssue.severity === import_core3.Severity.Critical || normalizedIssue.severity === "critical")
|
|
1178
|
+
criticalCount++;
|
|
1179
|
+
if (normalizedIssue.severity === import_core3.Severity.Major || normalizedIssue.severity === "major")
|
|
1180
|
+
majorCount++;
|
|
1181
|
+
normalizedResult.issues.push(normalizedIssue);
|
|
1182
|
+
}
|
|
1183
|
+
allResults.push(normalizedResult);
|
|
1184
|
+
});
|
|
1185
|
+
};
|
|
1186
|
+
collect(res.patternDetect, import_core3.IssueType.DuplicatePattern);
|
|
1187
|
+
collect(res.contextAnalyzer, import_core3.IssueType.ContextFragmentation);
|
|
1188
|
+
collect(res.consistency, import_core3.IssueType.NamingInconsistency);
|
|
1189
|
+
collect(res.docDrift, import_core3.IssueType.DocDrift);
|
|
1190
|
+
collect(res.dependencyHealth, import_core3.IssueType.DependencyHealth);
|
|
1191
|
+
collect(res.aiSignalClarity, import_core3.IssueType.AiSignalClarity);
|
|
1192
|
+
collect(res.agentGrounding, import_core3.IssueType.AgentNavigationFailure);
|
|
1193
|
+
collect(res.testability, import_core3.IssueType.LowTestability);
|
|
1194
|
+
collect(res.changeAmplification, import_core3.IssueType.ChangeAmplification);
|
|
1195
|
+
return {
|
|
1196
|
+
...res,
|
|
1197
|
+
results: allResults,
|
|
1198
|
+
summary: {
|
|
1199
|
+
...res.summary,
|
|
1200
|
+
totalFiles: totalFilesSet.size,
|
|
1201
|
+
criticalIssues: criticalCount,
|
|
1202
|
+
majorIssues: majorCount
|
|
1203
|
+
},
|
|
1204
|
+
scoring
|
|
1205
|
+
};
|
|
1206
|
+
};
|
|
1131
1207
|
const outputFormat = options.output || finalOptions.output?.format || "console";
|
|
1132
1208
|
const userOutputFile = options.outputFile || finalOptions.output?.file;
|
|
1133
1209
|
if (outputFormat === "json") {
|
|
@@ -1139,8 +1215,7 @@ async function scanAction(directory, options) {
|
|
|
1139
1215
|
resolvedDir
|
|
1140
1216
|
);
|
|
1141
1217
|
const outputData = {
|
|
1142
|
-
...results,
|
|
1143
|
-
scoring: scoringResult,
|
|
1218
|
+
...mapToUnifiedReport(results, scoringResult),
|
|
1144
1219
|
repository: repoMetadata
|
|
1145
1220
|
};
|
|
1146
1221
|
(0, import_core3.handleJSONOutput)(
|
|
@@ -1165,8 +1240,7 @@ async function scanAction(directory, options) {
|
|
|
1165
1240
|
resolvedDir
|
|
1166
1241
|
);
|
|
1167
1242
|
const outputData = {
|
|
1168
|
-
...results,
|
|
1169
|
-
scoring: scoringResult,
|
|
1243
|
+
...mapToUnifiedReport(results, scoringResult),
|
|
1170
1244
|
repository: repoMetadata
|
|
1171
1245
|
};
|
|
1172
1246
|
try {
|
|
@@ -1209,7 +1283,7 @@ async function scanAction(directory, options) {
|
|
|
1209
1283
|
}
|
|
1210
1284
|
if (results.patternDetect) {
|
|
1211
1285
|
const criticalPatterns = results.patternDetect.results.flatMap(
|
|
1212
|
-
(p) => p.issues.filter((i) => i.severity ===
|
|
1286
|
+
(p) => p.issues.filter((i) => i.severity === import_core3.Severity.Critical)
|
|
1213
1287
|
);
|
|
1214
1288
|
criticalPatterns.slice(0, 10).forEach((issue) => {
|
|
1215
1289
|
console.log(
|
|
@@ -1232,22 +1306,22 @@ async function scanAction(directory, options) {
|
|
|
1232
1306
|
if (results.patternDetect) {
|
|
1233
1307
|
results.patternDetect.results.forEach((p) => {
|
|
1234
1308
|
p.issues.forEach((i) => {
|
|
1235
|
-
if (i.severity ===
|
|
1236
|
-
if (i.severity ===
|
|
1309
|
+
if (i.severity === import_core3.Severity.Critical) criticalCount++;
|
|
1310
|
+
if (i.severity === import_core3.Severity.Major) majorCount++;
|
|
1237
1311
|
});
|
|
1238
1312
|
});
|
|
1239
1313
|
}
|
|
1240
1314
|
if (results.contextAnalyzer) {
|
|
1241
1315
|
results.contextAnalyzer.results.forEach((c) => {
|
|
1242
|
-
if (c.severity ===
|
|
1243
|
-
if (c.severity ===
|
|
1316
|
+
if (c.severity === import_core3.Severity.Critical) criticalCount++;
|
|
1317
|
+
if (c.severity === import_core3.Severity.Major) majorCount++;
|
|
1244
1318
|
});
|
|
1245
1319
|
}
|
|
1246
1320
|
if (results.consistency) {
|
|
1247
1321
|
results.consistency.results.forEach((r) => {
|
|
1248
1322
|
r.issues?.forEach((i) => {
|
|
1249
|
-
if (i.severity ===
|
|
1250
|
-
if (i.severity ===
|
|
1323
|
+
if (i.severity === import_core3.Severity.Critical) criticalCount++;
|
|
1324
|
+
if (i.severity === import_core3.Severity.Major) majorCount++;
|
|
1251
1325
|
});
|
|
1252
1326
|
});
|
|
1253
1327
|
}
|
package/dist/cli.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
__require,
|
|
4
4
|
analyzeUnified,
|
|
5
5
|
scoreUnified
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-R3O7QPKD.mjs";
|
|
7
7
|
|
|
8
8
|
// src/cli.ts
|
|
9
9
|
import { Command } from "commander";
|
|
@@ -28,7 +28,9 @@ import {
|
|
|
28
28
|
getModelPreset,
|
|
29
29
|
getRating,
|
|
30
30
|
getRatingDisplay,
|
|
31
|
-
getRepoMetadata
|
|
31
|
+
getRepoMetadata,
|
|
32
|
+
Severity,
|
|
33
|
+
IssueType
|
|
32
34
|
} from "@aiready/core";
|
|
33
35
|
|
|
34
36
|
// src/utils/helpers.ts
|
|
@@ -173,7 +175,9 @@ async function uploadAction(file, options) {
|
|
|
173
175
|
)
|
|
174
176
|
);
|
|
175
177
|
console.log(
|
|
176
|
-
chalk2.dim(
|
|
178
|
+
chalk2.dim(
|
|
179
|
+
" Get an API key from https://platform.getaiready.dev/dashboard"
|
|
180
|
+
)
|
|
177
181
|
);
|
|
178
182
|
process.exit(1);
|
|
179
183
|
}
|
|
@@ -531,18 +535,18 @@ async function scanAction(directory, options) {
|
|
|
531
535
|
topFiles.forEach(([file, issues], idx) => {
|
|
532
536
|
const counts = issues.reduce(
|
|
533
537
|
(acc, it) => {
|
|
534
|
-
const s = (it.severity ||
|
|
538
|
+
const s = (it.severity || Severity.Info).toLowerCase();
|
|
535
539
|
acc[s] = (acc[s] || 0) + 1;
|
|
536
540
|
return acc;
|
|
537
541
|
},
|
|
538
542
|
{}
|
|
539
543
|
);
|
|
540
544
|
const sample = issues.find(
|
|
541
|
-
(it) => it.severity ===
|
|
545
|
+
(it) => it.severity === Severity.Critical || it.severity === Severity.Major
|
|
542
546
|
) || issues[0];
|
|
543
547
|
const sampleMsg = sample ? ` \u2014 ${sample.message}` : "";
|
|
544
548
|
console.log(
|
|
545
|
-
` ${idx + 1}. ${file} \u2014 ${issues.length} issue(s) (critical:${counts.
|
|
549
|
+
` ${idx + 1}. ${file} \u2014 ${issues.length} issue(s) (critical:${counts[Severity.Critical] || 0} major:${counts[Severity.Major] || 0} minor:${counts[Severity.Minor] || 0} info:${counts[Severity.Info] || 0})${sampleMsg}`
|
|
546
550
|
);
|
|
547
551
|
});
|
|
548
552
|
const remaining = files.length - topFiles.length;
|
|
@@ -775,6 +779,78 @@ async function scanAction(directory, options) {
|
|
|
775
779
|
}
|
|
776
780
|
}
|
|
777
781
|
}
|
|
782
|
+
const mapToUnifiedReport = (res, scoring) => {
|
|
783
|
+
const allResults = [];
|
|
784
|
+
let totalFilesSet = /* @__PURE__ */ new Set();
|
|
785
|
+
let criticalCount = 0;
|
|
786
|
+
let majorCount = 0;
|
|
787
|
+
const collect = (spokeRes, defaultType = IssueType.AiSignalClarity) => {
|
|
788
|
+
if (!spokeRes || !spokeRes.results) return;
|
|
789
|
+
spokeRes.results.forEach((r) => {
|
|
790
|
+
const fileName = r.fileName || r.file || "unknown";
|
|
791
|
+
totalFilesSet.add(fileName);
|
|
792
|
+
const normalizedResult = {
|
|
793
|
+
fileName,
|
|
794
|
+
issues: [],
|
|
795
|
+
metrics: r.metrics || { tokenCost: r.tokenCost || 0 }
|
|
796
|
+
};
|
|
797
|
+
if (r.issues && Array.isArray(r.issues)) {
|
|
798
|
+
r.issues.forEach((i) => {
|
|
799
|
+
const normalizedIssue = typeof i === "string" ? {
|
|
800
|
+
type: defaultType,
|
|
801
|
+
severity: r.severity || Severity.Info,
|
|
802
|
+
message: i,
|
|
803
|
+
location: { file: fileName, line: 1 }
|
|
804
|
+
} : {
|
|
805
|
+
type: i.type || defaultType,
|
|
806
|
+
severity: i.severity || r.severity || Severity.Info,
|
|
807
|
+
message: i.message || String(i),
|
|
808
|
+
location: i.location || { file: fileName, line: 1 },
|
|
809
|
+
suggestion: i.suggestion
|
|
810
|
+
};
|
|
811
|
+
if (normalizedIssue.severity === Severity.Critical || normalizedIssue.severity === "critical")
|
|
812
|
+
criticalCount++;
|
|
813
|
+
if (normalizedIssue.severity === Severity.Major || normalizedIssue.severity === "major")
|
|
814
|
+
majorCount++;
|
|
815
|
+
normalizedResult.issues.push(normalizedIssue);
|
|
816
|
+
});
|
|
817
|
+
} else if (r.severity) {
|
|
818
|
+
const normalizedIssue = {
|
|
819
|
+
type: defaultType,
|
|
820
|
+
severity: r.severity,
|
|
821
|
+
message: r.message || "General issue",
|
|
822
|
+
location: { file: fileName, line: 1 }
|
|
823
|
+
};
|
|
824
|
+
if (normalizedIssue.severity === Severity.Critical || normalizedIssue.severity === "critical")
|
|
825
|
+
criticalCount++;
|
|
826
|
+
if (normalizedIssue.severity === Severity.Major || normalizedIssue.severity === "major")
|
|
827
|
+
majorCount++;
|
|
828
|
+
normalizedResult.issues.push(normalizedIssue);
|
|
829
|
+
}
|
|
830
|
+
allResults.push(normalizedResult);
|
|
831
|
+
});
|
|
832
|
+
};
|
|
833
|
+
collect(res.patternDetect, IssueType.DuplicatePattern);
|
|
834
|
+
collect(res.contextAnalyzer, IssueType.ContextFragmentation);
|
|
835
|
+
collect(res.consistency, IssueType.NamingInconsistency);
|
|
836
|
+
collect(res.docDrift, IssueType.DocDrift);
|
|
837
|
+
collect(res.dependencyHealth, IssueType.DependencyHealth);
|
|
838
|
+
collect(res.aiSignalClarity, IssueType.AiSignalClarity);
|
|
839
|
+
collect(res.agentGrounding, IssueType.AgentNavigationFailure);
|
|
840
|
+
collect(res.testability, IssueType.LowTestability);
|
|
841
|
+
collect(res.changeAmplification, IssueType.ChangeAmplification);
|
|
842
|
+
return {
|
|
843
|
+
...res,
|
|
844
|
+
results: allResults,
|
|
845
|
+
summary: {
|
|
846
|
+
...res.summary,
|
|
847
|
+
totalFiles: totalFilesSet.size,
|
|
848
|
+
criticalIssues: criticalCount,
|
|
849
|
+
majorIssues: majorCount
|
|
850
|
+
},
|
|
851
|
+
scoring
|
|
852
|
+
};
|
|
853
|
+
};
|
|
778
854
|
const outputFormat = options.output || finalOptions.output?.format || "console";
|
|
779
855
|
const userOutputFile = options.outputFile || finalOptions.output?.file;
|
|
780
856
|
if (outputFormat === "json") {
|
|
@@ -786,8 +862,7 @@ async function scanAction(directory, options) {
|
|
|
786
862
|
resolvedDir
|
|
787
863
|
);
|
|
788
864
|
const outputData = {
|
|
789
|
-
...results,
|
|
790
|
-
scoring: scoringResult,
|
|
865
|
+
...mapToUnifiedReport(results, scoringResult),
|
|
791
866
|
repository: repoMetadata
|
|
792
867
|
};
|
|
793
868
|
handleJSONOutput(
|
|
@@ -812,8 +887,7 @@ async function scanAction(directory, options) {
|
|
|
812
887
|
resolvedDir
|
|
813
888
|
);
|
|
814
889
|
const outputData = {
|
|
815
|
-
...results,
|
|
816
|
-
scoring: scoringResult,
|
|
890
|
+
...mapToUnifiedReport(results, scoringResult),
|
|
817
891
|
repository: repoMetadata
|
|
818
892
|
};
|
|
819
893
|
try {
|
|
@@ -856,7 +930,7 @@ async function scanAction(directory, options) {
|
|
|
856
930
|
}
|
|
857
931
|
if (results.patternDetect) {
|
|
858
932
|
const criticalPatterns = results.patternDetect.results.flatMap(
|
|
859
|
-
(p) => p.issues.filter((i) => i.severity ===
|
|
933
|
+
(p) => p.issues.filter((i) => i.severity === Severity.Critical)
|
|
860
934
|
);
|
|
861
935
|
criticalPatterns.slice(0, 10).forEach((issue) => {
|
|
862
936
|
console.log(
|
|
@@ -879,22 +953,22 @@ async function scanAction(directory, options) {
|
|
|
879
953
|
if (results.patternDetect) {
|
|
880
954
|
results.patternDetect.results.forEach((p) => {
|
|
881
955
|
p.issues.forEach((i) => {
|
|
882
|
-
if (i.severity ===
|
|
883
|
-
if (i.severity ===
|
|
956
|
+
if (i.severity === Severity.Critical) criticalCount++;
|
|
957
|
+
if (i.severity === Severity.Major) majorCount++;
|
|
884
958
|
});
|
|
885
959
|
});
|
|
886
960
|
}
|
|
887
961
|
if (results.contextAnalyzer) {
|
|
888
962
|
results.contextAnalyzer.results.forEach((c) => {
|
|
889
|
-
if (c.severity ===
|
|
890
|
-
if (c.severity ===
|
|
963
|
+
if (c.severity === Severity.Critical) criticalCount++;
|
|
964
|
+
if (c.severity === Severity.Major) majorCount++;
|
|
891
965
|
});
|
|
892
966
|
}
|
|
893
967
|
if (results.consistency) {
|
|
894
968
|
results.consistency.results.forEach((r) => {
|
|
895
969
|
r.issues?.forEach((i) => {
|
|
896
|
-
if (i.severity ===
|
|
897
|
-
if (i.severity ===
|
|
970
|
+
if (i.severity === Severity.Critical) criticalCount++;
|
|
971
|
+
if (i.severity === Severity.Major) majorCount++;
|
|
898
972
|
});
|
|
899
973
|
});
|
|
900
974
|
}
|
package/dist/index.js
CHANGED
|
@@ -143,10 +143,11 @@ async function analyzeUnified(options) {
|
|
|
143
143
|
options.progressCallback({ tool: "doc-drift", data: report });
|
|
144
144
|
}
|
|
145
145
|
result.docDrift = {
|
|
146
|
-
results: report.results || [],
|
|
146
|
+
results: report.results || report.issues || [],
|
|
147
147
|
summary: report.summary || {}
|
|
148
148
|
};
|
|
149
|
-
|
|
149
|
+
const issueCount = report.issues?.length || (report.results ? report.results.length : 0);
|
|
150
|
+
result.summary.totalIssues += issueCount;
|
|
150
151
|
}
|
|
151
152
|
if (tools.includes("deps-health")) {
|
|
152
153
|
const { analyzeDeps } = await import("@aiready/deps");
|
|
@@ -160,10 +161,11 @@ async function analyzeUnified(options) {
|
|
|
160
161
|
options.progressCallback({ tool: "deps-health", data: report });
|
|
161
162
|
}
|
|
162
163
|
result.dependencyHealth = {
|
|
163
|
-
results: report.results || [],
|
|
164
|
+
results: report.results || report.issues || [],
|
|
164
165
|
summary: report.summary || {}
|
|
165
166
|
};
|
|
166
|
-
|
|
167
|
+
const issueCount = report.issues?.length || (report.results ? report.results.length : 0);
|
|
168
|
+
result.summary.totalIssues += issueCount;
|
|
167
169
|
}
|
|
168
170
|
if (tools.includes("ai-signal-clarity")) {
|
|
169
171
|
const { analyzeAiSignalClarity } = await import("@aiready/ai-signal-clarity");
|
|
@@ -178,11 +180,11 @@ async function analyzeUnified(options) {
|
|
|
178
180
|
}
|
|
179
181
|
result.aiSignalClarity = {
|
|
180
182
|
...report,
|
|
181
|
-
results: report.results || [],
|
|
183
|
+
results: report.results || report.issues || [],
|
|
182
184
|
summary: report.summary || {}
|
|
183
185
|
};
|
|
184
|
-
result.summary.totalIssues += report.results?.reduce(
|
|
185
|
-
(sum, r) => sum + (r.issues?.length ||
|
|
186
|
+
result.summary.totalIssues += (report.results || report.issues)?.reduce(
|
|
187
|
+
(sum, r) => sum + (r.issues?.length || 1),
|
|
186
188
|
0
|
|
187
189
|
) || 0;
|
|
188
190
|
}
|
|
@@ -199,10 +201,10 @@ async function analyzeUnified(options) {
|
|
|
199
201
|
}
|
|
200
202
|
result.agentGrounding = {
|
|
201
203
|
...report,
|
|
202
|
-
results: report.results || [],
|
|
204
|
+
results: report.results || report.issues || [],
|
|
203
205
|
summary: report.summary || {}
|
|
204
206
|
};
|
|
205
|
-
result.summary.totalIssues += report.issues
|
|
207
|
+
result.summary.totalIssues += (report.issues || report.results || []).length;
|
|
206
208
|
}
|
|
207
209
|
if (tools.includes("testability")) {
|
|
208
210
|
const { analyzeTestability } = await import("@aiready/testability");
|
|
@@ -217,10 +219,10 @@ async function analyzeUnified(options) {
|
|
|
217
219
|
}
|
|
218
220
|
result.testability = {
|
|
219
221
|
...report,
|
|
220
|
-
results: report.results || [],
|
|
222
|
+
results: report.results || report.issues || [],
|
|
221
223
|
summary: report.summary || {}
|
|
222
224
|
};
|
|
223
|
-
result.summary.totalIssues += report.issues
|
|
225
|
+
result.summary.totalIssues += (report.issues || report.results || []).length;
|
|
224
226
|
}
|
|
225
227
|
if (tools.includes("change-amplification")) {
|
|
226
228
|
const { analyzeChangeAmplification } = await import("@aiready/change-amplification");
|
package/dist/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiready/cli",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.4",
|
|
4
4
|
"description": "Unified CLI for AIReady analysis tools",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "^5.3.0",
|
|
13
13
|
"commander": "^14.0.0",
|
|
14
|
-
"@aiready/
|
|
15
|
-
"@aiready/agent-grounding": "0.9.
|
|
16
|
-
"@aiready/
|
|
17
|
-
"@aiready/
|
|
18
|
-
"@aiready/
|
|
19
|
-
"@aiready/
|
|
20
|
-
"@aiready/
|
|
21
|
-
"@aiready/
|
|
22
|
-
"@aiready/ai-signal-clarity": "0.9.
|
|
23
|
-
"@aiready/
|
|
24
|
-
"@aiready/
|
|
14
|
+
"@aiready/core": "0.19.3",
|
|
15
|
+
"@aiready/agent-grounding": "0.9.3",
|
|
16
|
+
"@aiready/consistency": "0.16.3",
|
|
17
|
+
"@aiready/change-amplification": "0.9.3",
|
|
18
|
+
"@aiready/context-analyzer": "0.17.3",
|
|
19
|
+
"@aiready/deps": "0.9.3",
|
|
20
|
+
"@aiready/visualizer": "0.2.4",
|
|
21
|
+
"@aiready/pattern-detect": "0.12.3",
|
|
22
|
+
"@aiready/ai-signal-clarity": "0.9.3",
|
|
23
|
+
"@aiready/testability": "0.2.3",
|
|
24
|
+
"@aiready/doc-drift": "0.9.3"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^24.0.0",
|