@aiready/cli 0.9.9 → 0.9.11
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 +7 -7
- package/.turbo/turbo-test.log +5 -5
- package/dist/cli.js +23 -4
- package/dist/cli.mjs +25 -5
- package/dist/index.mjs +1 -1
- package/package.json +6 -6
- package/src/cli.ts +36 -4
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
> @aiready/cli@0.9.
|
|
3
|
+
> @aiready/cli@0.9.11 build /Users/pengcao/projects/aiready/packages/cli
|
|
4
4
|
> tsup src/index.ts src/cli.ts --format cjs,esm
|
|
5
5
|
|
|
6
6
|
[34mCLI[39m Building entry: src/cli.ts, src/index.ts
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
[34mCLI[39m Target: es2020
|
|
10
10
|
[34mCJS[39m Build start
|
|
11
11
|
[34mESM[39m Build start
|
|
12
|
-
[32mCJS[39m [1mdist/cli.js [22m[32m58.06 KB[39m
|
|
13
|
-
[32mCJS[39m [1mdist/index.js [22m[32m4.93 KB[39m
|
|
14
|
-
[32mCJS[39m ⚡️ Build success in 26ms
|
|
15
12
|
[32mESM[39m [1mdist/index.mjs [22m[32m138.00 B[39m
|
|
16
|
-
[32mESM[39m [1mdist/chunk-
|
|
17
|
-
[32mESM[39m [1mdist/cli.mjs [22m[
|
|
18
|
-
[32mESM[39m ⚡️ Build success in
|
|
13
|
+
[32mESM[39m [1mdist/chunk-5GZDRZ3T.mjs [22m[32m4.17 KB[39m
|
|
14
|
+
[32mESM[39m [1mdist/cli.mjs [22m[32m51.71 KB[39m
|
|
15
|
+
[32mESM[39m ⚡️ Build success in 15ms
|
|
16
|
+
[32mCJS[39m [1mdist/index.js [22m[32m4.93 KB[39m
|
|
17
|
+
[32mCJS[39m [1mdist/cli.js [22m[32m58.90 KB[39m
|
|
18
|
+
[32mCJS[39m ⚡️ Build success in 15ms
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
> @aiready/cli@0.9.
|
|
3
|
+
> @aiready/cli@0.9.11 test /Users/pengcao/projects/aiready/packages/cli
|
|
4
4
|
> vitest run
|
|
5
5
|
|
|
6
6
|
[?25l
|
|
7
7
|
[1m[46m RUN [49m[22m [36mv4.0.18 [39m[90m/Users/pengcao/projects/aiready/packages/cli[39m
|
|
8
8
|
|
|
9
|
-
[32m✓[39m
|
|
10
|
-
[32m✓[39m
|
|
9
|
+
[32m✓[39m dist/__tests__/cli.test.js [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
10
|
+
[32m✓[39m src/__tests__/cli.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
11
11
|
|
|
12
12
|
[2m Test Files [22m [1m[32m2 passed[39m[22m[90m (2)[39m
|
|
13
13
|
[2m Tests [22m [1m[32m6 passed[39m[22m[90m (6)[39m
|
|
14
|
-
[2m Start at [22m
|
|
15
|
-
[2m Duration [22m
|
|
14
|
+
[2m Start at [22m 01:02:14
|
|
15
|
+
[2m Duration [22m 1.69s[2m (transform 1.05s, setup 0ms, import 2.80s, tests 8ms, environment 0ms)[22m
|
|
16
16
|
|
|
17
17
|
[?25h
|
package/dist/cli.js
CHANGED
|
@@ -976,14 +976,33 @@ function generateHTML(graph) {
|
|
|
976
976
|
</body>
|
|
977
977
|
</html>`;
|
|
978
978
|
}
|
|
979
|
+
function findLatestScanReport(dirPath) {
|
|
980
|
+
const aireadyDir = (0, import_path2.resolve)(dirPath, ".aiready");
|
|
981
|
+
if (!(0, import_fs2.existsSync)(aireadyDir)) {
|
|
982
|
+
return null;
|
|
983
|
+
}
|
|
984
|
+
const { readdirSync, statSync } = require("fs");
|
|
985
|
+
const files = readdirSync(aireadyDir).filter((f) => f.startsWith("aiready-scan-") && f.endsWith(".json"));
|
|
986
|
+
if (files.length === 0) {
|
|
987
|
+
return null;
|
|
988
|
+
}
|
|
989
|
+
const sortedFiles = files.map((f) => ({ name: f, path: (0, import_path2.resolve)(aireadyDir, f), mtime: statSync((0, import_path2.resolve)(aireadyDir, f)).mtime })).sort((a, b) => b.mtime.getTime() - a.mtime.getTime());
|
|
990
|
+
return sortedFiles[0].path;
|
|
991
|
+
}
|
|
979
992
|
async function handleVisualize(directory, options) {
|
|
980
993
|
try {
|
|
981
994
|
const dirPath = (0, import_path2.resolve)(process.cwd(), directory || ".");
|
|
982
|
-
|
|
995
|
+
let reportPath = (0, import_path2.resolve)(dirPath, options.report || "aiready-improvement-report.json");
|
|
983
996
|
if (!(0, import_fs2.existsSync)(reportPath)) {
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
997
|
+
const latestScan = findLatestScanReport(dirPath);
|
|
998
|
+
if (latestScan) {
|
|
999
|
+
console.log(`Using latest scan report: ${latestScan}`);
|
|
1000
|
+
reportPath = latestScan;
|
|
1001
|
+
} else {
|
|
1002
|
+
console.error("Report not found at", reportPath);
|
|
1003
|
+
console.log("Run `aiready scan --output json` to generate the report, or pass --report");
|
|
1004
|
+
return;
|
|
1005
|
+
}
|
|
987
1006
|
}
|
|
988
1007
|
const raw = (0, import_fs2.readFileSync)(reportPath, "utf8");
|
|
989
1008
|
const report = JSON.parse(raw);
|
package/dist/cli.mjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
+
__require,
|
|
3
4
|
analyzeUnified
|
|
4
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-5GZDRZ3T.mjs";
|
|
5
6
|
|
|
6
7
|
// src/cli.ts
|
|
7
8
|
import { Command } from "commander";
|
|
@@ -880,14 +881,33 @@ function generateHTML(graph) {
|
|
|
880
881
|
</body>
|
|
881
882
|
</html>`;
|
|
882
883
|
}
|
|
884
|
+
function findLatestScanReport(dirPath) {
|
|
885
|
+
const aireadyDir = resolvePath(dirPath, ".aiready");
|
|
886
|
+
if (!existsSync(aireadyDir)) {
|
|
887
|
+
return null;
|
|
888
|
+
}
|
|
889
|
+
const { readdirSync, statSync } = __require("fs");
|
|
890
|
+
const files = readdirSync(aireadyDir).filter((f) => f.startsWith("aiready-scan-") && f.endsWith(".json"));
|
|
891
|
+
if (files.length === 0) {
|
|
892
|
+
return null;
|
|
893
|
+
}
|
|
894
|
+
const sortedFiles = files.map((f) => ({ name: f, path: resolvePath(aireadyDir, f), mtime: statSync(resolvePath(aireadyDir, f)).mtime })).sort((a, b) => b.mtime.getTime() - a.mtime.getTime());
|
|
895
|
+
return sortedFiles[0].path;
|
|
896
|
+
}
|
|
883
897
|
async function handleVisualize(directory, options) {
|
|
884
898
|
try {
|
|
885
899
|
const dirPath = resolvePath(process.cwd(), directory || ".");
|
|
886
|
-
|
|
900
|
+
let reportPath = resolvePath(dirPath, options.report || "aiready-improvement-report.json");
|
|
887
901
|
if (!existsSync(reportPath)) {
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
902
|
+
const latestScan = findLatestScanReport(dirPath);
|
|
903
|
+
if (latestScan) {
|
|
904
|
+
console.log(`Using latest scan report: ${latestScan}`);
|
|
905
|
+
reportPath = latestScan;
|
|
906
|
+
} else {
|
|
907
|
+
console.error("Report not found at", reportPath);
|
|
908
|
+
console.log("Run `aiready scan --output json` to generate the report, or pass --report");
|
|
909
|
+
return;
|
|
910
|
+
}
|
|
891
911
|
}
|
|
892
912
|
const raw = readFileSync(reportPath, "utf8");
|
|
893
913
|
const report = JSON.parse(raw);
|
package/dist/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiready/cli",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.11",
|
|
4
4
|
"description": "Unified CLI for AIReady analysis tools",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"commander": "^14.0.0",
|
|
13
13
|
"chalk": "^5.3.0",
|
|
14
|
-
"@aiready/visualizer": "0.1.
|
|
15
|
-
"@aiready/
|
|
16
|
-
"@aiready/
|
|
17
|
-
"@aiready/core": "0.9.
|
|
18
|
-
"@aiready/context-analyzer": "0.9.
|
|
14
|
+
"@aiready/visualizer": "0.1.9",
|
|
15
|
+
"@aiready/consistency": "0.8.10",
|
|
16
|
+
"@aiready/pattern-detect": "0.11.10",
|
|
17
|
+
"@aiready/core": "0.9.10",
|
|
18
|
+
"@aiready/context-analyzer": "0.9.10"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"tsup": "^8.3.5",
|
package/src/cli.ts
CHANGED
|
@@ -1087,14 +1087,46 @@ program
|
|
|
1087
1087
|
</html>`;
|
|
1088
1088
|
}
|
|
1089
1089
|
|
|
1090
|
+
/**
|
|
1091
|
+
* Find the latest aiready scan report in the .aiready directory
|
|
1092
|
+
*/
|
|
1093
|
+
function findLatestScanReport(dirPath: string): string | null {
|
|
1094
|
+
const aireadyDir = resolvePath(dirPath, '.aiready');
|
|
1095
|
+
if (!existsSync(aireadyDir)) {
|
|
1096
|
+
return null;
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1099
|
+
const { readdirSync, statSync } = require('fs');
|
|
1100
|
+
const files = readdirSync(aireadyDir).filter(f => f.startsWith('aiready-scan-') && f.endsWith('.json'));
|
|
1101
|
+
|
|
1102
|
+
if (files.length === 0) {
|
|
1103
|
+
return null;
|
|
1104
|
+
}
|
|
1105
|
+
|
|
1106
|
+
// Sort by modification time, most recent first
|
|
1107
|
+
const sortedFiles = files
|
|
1108
|
+
.map(f => ({ name: f, path: resolvePath(aireadyDir, f), mtime: statSync(resolvePath(aireadyDir, f)).mtime }))
|
|
1109
|
+
.sort((a, b) => b.mtime.getTime() - a.mtime.getTime());
|
|
1110
|
+
|
|
1111
|
+
return sortedFiles[0].path;
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1090
1114
|
async function handleVisualize(directory: string | undefined, options: any) {
|
|
1091
1115
|
try {
|
|
1092
1116
|
const dirPath = resolvePath(process.cwd(), directory || '.');
|
|
1093
|
-
|
|
1117
|
+
let reportPath = resolvePath(dirPath, options.report || 'aiready-improvement-report.json');
|
|
1118
|
+
|
|
1119
|
+
// If report not found, try to find latest scan report
|
|
1094
1120
|
if (!existsSync(reportPath)) {
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1121
|
+
const latestScan = findLatestScanReport(dirPath);
|
|
1122
|
+
if (latestScan) {
|
|
1123
|
+
console.log(`Using latest scan report: ${latestScan}`);
|
|
1124
|
+
reportPath = latestScan;
|
|
1125
|
+
} else {
|
|
1126
|
+
console.error('Report not found at', reportPath);
|
|
1127
|
+
console.log('Run `aiready scan --output json` to generate the report, or pass --report');
|
|
1128
|
+
return;
|
|
1129
|
+
}
|
|
1098
1130
|
}
|
|
1099
1131
|
|
|
1100
1132
|
const raw = readFileSync(reportPath, 'utf8');
|