@aiready/cli 0.10.3 → 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/dist/cli.mjs CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  __require,
4
4
  analyzeUnified,
5
5
  scoreUnified
6
- } from "./chunk-VUCNUYI7.mjs";
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
@@ -533,18 +535,18 @@ async function scanAction(directory, options) {
533
535
  topFiles.forEach(([file, issues], idx) => {
534
536
  const counts = issues.reduce(
535
537
  (acc, it) => {
536
- const s = (it.severity || "info").toLowerCase();
538
+ const s = (it.severity || Severity.Info).toLowerCase();
537
539
  acc[s] = (acc[s] || 0) + 1;
538
540
  return acc;
539
541
  },
540
542
  {}
541
543
  );
542
544
  const sample = issues.find(
543
- (it) => it.severity === "critical" || it.severity === "major"
545
+ (it) => it.severity === Severity.Critical || it.severity === Severity.Major
544
546
  ) || issues[0];
545
547
  const sampleMsg = sample ? ` \u2014 ${sample.message}` : "";
546
548
  console.log(
547
- ` ${idx + 1}. ${file} \u2014 ${issues.length} issue(s) (critical:${counts.critical || 0} major:${counts.major || 0} minor:${counts.minor || 0} info:${counts.info || 0})${sampleMsg}`
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}`
548
550
  );
549
551
  });
550
552
  const remaining = files.length - topFiles.length;
@@ -777,6 +779,78 @@ async function scanAction(directory, options) {
777
779
  }
778
780
  }
779
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
+ };
780
854
  const outputFormat = options.output || finalOptions.output?.format || "console";
781
855
  const userOutputFile = options.outputFile || finalOptions.output?.file;
782
856
  if (outputFormat === "json") {
@@ -788,8 +862,7 @@ async function scanAction(directory, options) {
788
862
  resolvedDir
789
863
  );
790
864
  const outputData = {
791
- ...results,
792
- scoring: scoringResult,
865
+ ...mapToUnifiedReport(results, scoringResult),
793
866
  repository: repoMetadata
794
867
  };
795
868
  handleJSONOutput(
@@ -814,8 +887,7 @@ async function scanAction(directory, options) {
814
887
  resolvedDir
815
888
  );
816
889
  const outputData = {
817
- ...results,
818
- scoring: scoringResult,
890
+ ...mapToUnifiedReport(results, scoringResult),
819
891
  repository: repoMetadata
820
892
  };
821
893
  try {
@@ -858,7 +930,7 @@ async function scanAction(directory, options) {
858
930
  }
859
931
  if (results.patternDetect) {
860
932
  const criticalPatterns = results.patternDetect.results.flatMap(
861
- (p) => p.issues.filter((i) => i.severity === "critical")
933
+ (p) => p.issues.filter((i) => i.severity === Severity.Critical)
862
934
  );
863
935
  criticalPatterns.slice(0, 10).forEach((issue) => {
864
936
  console.log(
@@ -881,22 +953,22 @@ async function scanAction(directory, options) {
881
953
  if (results.patternDetect) {
882
954
  results.patternDetect.results.forEach((p) => {
883
955
  p.issues.forEach((i) => {
884
- if (i.severity === "critical") criticalCount++;
885
- if (i.severity === "major") majorCount++;
956
+ if (i.severity === Severity.Critical) criticalCount++;
957
+ if (i.severity === Severity.Major) majorCount++;
886
958
  });
887
959
  });
888
960
  }
889
961
  if (results.contextAnalyzer) {
890
962
  results.contextAnalyzer.results.forEach((c) => {
891
- if (c.severity === "critical") criticalCount++;
892
- if (c.severity === "major") majorCount++;
963
+ if (c.severity === Severity.Critical) criticalCount++;
964
+ if (c.severity === Severity.Major) majorCount++;
893
965
  });
894
966
  }
895
967
  if (results.consistency) {
896
968
  results.consistency.results.forEach((r) => {
897
969
  r.issues?.forEach((i) => {
898
- if (i.severity === "critical") criticalCount++;
899
- if (i.severity === "major") majorCount++;
970
+ if (i.severity === Severity.Critical) criticalCount++;
971
+ if (i.severity === Severity.Major) majorCount++;
900
972
  });
901
973
  });
902
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
- result.summary.totalIssues += report.issues?.length || 0;
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
- result.summary.totalIssues += report.issues?.length || 0;
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 || 0),
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?.length || 0;
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?.length || 0;
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
@@ -2,7 +2,7 @@ import {
2
2
  analyzeUnified,
3
3
  generateUnifiedSummary,
4
4
  scoreUnified
5
- } from "./chunk-VUCNUYI7.mjs";
5
+ } from "./chunk-R3O7QPKD.mjs";
6
6
  export {
7
7
  analyzeUnified,
8
8
  generateUnifiedSummary,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiready/cli",
3
- "version": "0.10.3",
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/agent-grounding": "0.9.2",
15
- "@aiready/context-analyzer": "0.17.2",
16
- "@aiready/core": "0.19.2",
17
- "@aiready/deps": "0.9.2",
18
- "@aiready/consistency": "0.16.2",
19
- "@aiready/change-amplification": "0.9.2",
20
- "@aiready/pattern-detect": "0.12.2",
21
- "@aiready/doc-drift": "0.9.2",
22
- "@aiready/testability": "0.2.2",
23
- "@aiready/ai-signal-clarity": "0.9.2",
24
- "@aiready/visualizer": "0.2.3"
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",