@aiready/cli 0.14.10 → 0.14.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/.aiready/aiready-report-20260319-201106.json +5566 -0
- package/.aiready/aiready-report-20260319-201511.json +5566 -0
- package/.aiready/aiready-report-20260319-202017.json +5708 -0
- package/.turbo/turbo-build.log +29 -28
- package/.turbo/turbo-test.log +76 -74
- package/dist/cli.js +156 -43
- package/dist/cli.mjs +156 -43
- package/package.json +12 -12
- package/src/commands/__tests__/init.test.ts +6 -11
- package/src/commands/init.ts +76 -42
- package/src/commands/report-formatter.ts +133 -7
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
> @aiready/cli@0.14.11 build /Users/pengcao/projects/aiready/packages/cli
|
|
4
|
+
> tsup src/index.ts src/cli.ts --format cjs,esm
|
|
5
|
+
|
|
6
|
+
[34mCLI[39m Building entry: src/cli.ts, src/index.ts
|
|
7
|
+
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
8
|
+
[34mCLI[39m tsup v8.5.1
|
|
9
|
+
[34mCLI[39m Target: es2020
|
|
10
|
+
[34mCJS[39m Build start
|
|
11
|
+
[34mESM[39m Build start
|
|
12
|
+
|
|
13
|
+
[43m[30m WARN [39m[49m [33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1m"import.meta" is not available with the "cjs" output format and will be empty[0m [empty-import-meta] [90m11:51:54 pm[39m
|
|
14
|
+
|
|
15
|
+
src/cli.ts:29:31:
|
|
16
|
+
[37m 29 │ return dirname(fileURLToPath([32mimport.meta[37m.url));
|
|
17
|
+
╵ [32m~~~~~~~~~~~[0m
|
|
18
|
+
|
|
19
|
+
You need to set the output format to "esm" for "import.meta" to work correctly.
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
[32mCJS[39m [1mdist/index.js [22m[32m10.87 KB[39m
|
|
24
|
+
[32mCJS[39m [1mdist/cli.js [22m[32m88.48 KB[39m
|
|
25
|
+
[32mCJS[39m ⚡️ Build success in 39ms
|
|
26
|
+
[32mESM[39m [1mdist/index.mjs [22m[32m170.00 B[39m
|
|
27
|
+
[32mESM[39m [1mdist/cli.mjs [22m[32m74.23 KB[39m
|
|
28
|
+
[32mESM[39m [1mdist/chunk-JRRBBFYB.mjs [22m[32m9.77 KB[39m
|
|
29
|
+
[32mESM[39m ⚡️ Build success in 39ms
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,74 +1,76 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
[
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
[22m[
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
[
|
|
14
|
-
[22m[
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
[22m[
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
[22m[
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
[22m[
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
[22m[
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
[22m[
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
[32m✓[39m src/commands/__tests__/
|
|
42
|
-
[32m✓[39m src/commands/__tests__/
|
|
43
|
-
[32m✓[39m src/commands/__tests__/
|
|
44
|
-
[
|
|
45
|
-
[22m[
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
[22m[
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
[32m✓[39m src/
|
|
60
|
-
[32m✓[39m src/
|
|
61
|
-
[32m✓[39m src/commands/__tests__/
|
|
62
|
-
[32m✓[39m src/commands/__tests__/
|
|
63
|
-
[32m✓[39m src/commands/__tests__/
|
|
64
|
-
[32m✓[39m src/__tests__/
|
|
65
|
-
[32m✓[39m src/__tests__/
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
[2m
|
|
72
|
-
[2m
|
|
73
|
-
[2m
|
|
74
|
-
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
> @aiready/cli@0.14.10 test /Users/pengcao/projects/aiready/packages/cli
|
|
4
|
+
> vitest run
|
|
5
|
+
|
|
6
|
+
[?25l
|
|
7
|
+
[1m[46m RUN [49m[22m [36mv4.0.18 [39m[90m/Users/pengcao/projects/aiready/packages/cli[39m
|
|
8
|
+
|
|
9
|
+
[32m✓[39m src/commands/__tests__/testability.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 15[2mms[22m[39m
|
|
10
|
+
[90mstdout[2m | src/commands/__tests__/visualize.test.ts[2m > [22m[2mVisualize CLI Action[2m > [22m[2mshould generate HTML from specified report
|
|
11
|
+
[22m[39mBuilding graph from report...
|
|
12
|
+
|
|
13
|
+
[32m✓[39m src/commands/__tests__/agent-grounding.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 18[2mms[22m[39m
|
|
14
|
+
[90mstdout[2m | src/commands/__tests__/visualize.test.ts[2m > [22m[2mVisualize CLI Action[2m > [22m[2mshould generate HTML from specified report
|
|
15
|
+
[22m[39mGenerating HTML...
|
|
16
|
+
✅ Visualization written to: /Users/pengcao/projects/aiready/packages/cli/visualization.html
|
|
17
|
+
|
|
18
|
+
[90mstdout[2m | src/commands/__tests__/visualize.test.ts[2m > [22m[2mVisualize CLI Action[2m > [22m[2mshould find latest report if none specified
|
|
19
|
+
[22m[39mFound latest report: latest.json
|
|
20
|
+
Building graph from report...
|
|
21
|
+
|
|
22
|
+
[90mstdout[2m | src/commands/__tests__/visualize.test.ts[2m > [22m[2mVisualize CLI Action[2m > [22m[2mshould find latest report if none specified
|
|
23
|
+
[22m[39mGenerating HTML...
|
|
24
|
+
✅ Visualization written to: /Users/pengcao/projects/aiready/packages/cli/visualization.html
|
|
25
|
+
|
|
26
|
+
[90mstdout[2m | src/commands/__tests__/visualize.test.ts[2m > [22m[2mVisualize CLI Action[2m > [22m[2mshould handle missing reports
|
|
27
|
+
[22m[39m
|
|
28
|
+
Generate a report with:
|
|
29
|
+
aiready scan --output json
|
|
30
|
+
|
|
31
|
+
Or specify a custom report:
|
|
32
|
+
aiready visualise --report <path-to-report.json>
|
|
33
|
+
|
|
34
|
+
[90mstdout[2m | src/commands/__tests__/visualize.test.ts[2m > [22m[2mVisualize CLI Action[2m > [22m[2mshould attempt to open visualization if requested
|
|
35
|
+
[22m[39mBuilding graph from report...
|
|
36
|
+
|
|
37
|
+
[90mstdout[2m | src/commands/__tests__/visualize.test.ts[2m > [22m[2mVisualize CLI Action[2m > [22m[2mshould attempt to open visualization if requested
|
|
38
|
+
[22m[39mGenerating HTML...
|
|
39
|
+
✅ Visualization written to: /Users/pengcao/projects/aiready/packages/cli/visualization.html
|
|
40
|
+
|
|
41
|
+
[32m✓[39m src/commands/__tests__/visualize.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 28[2mms[22m[39m
|
|
42
|
+
[32m✓[39m src/commands/__tests__/doc-drift.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
43
|
+
[32m✓[39m src/commands/__tests__/ai-signal-clarity.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 9[2mms[22m[39m
|
|
44
|
+
[32m✓[39m src/commands/__tests__/deps-health.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 8[2mms[22m[39m
|
|
45
|
+
[90mstdout[2m | src/commands/__tests__/upload.test.ts[2m > [22m[2mUpload CLI Action[2m > [22m[2mshould fail if API key is missing
|
|
46
|
+
[22m[39m Set AIREADY_API_KEY environment variable or use --api-key flag.
|
|
47
|
+
Get an API key from https://platform.getaiready.dev/dashboard
|
|
48
|
+
🚀 Uploading report to https://dev.platform.getaiready.dev...
|
|
49
|
+
Reading report from /Users/pengcao/projects/aiready/packages/cli/report.json...
|
|
50
|
+
Successfully parsed report JSON.
|
|
51
|
+
|
|
52
|
+
[90mstdout[2m | src/commands/__tests__/upload.test.ts[2m > [22m[2mUpload CLI Action[2m > [22m[2mshould fail if API key is missing
|
|
53
|
+
[22m[39m
|
|
54
|
+
✅ Upload successful! (0.00s)
|
|
55
|
+
View results: https://dev.platform.getaiready.dev/dashboard
|
|
56
|
+
Analysis ID: 123
|
|
57
|
+
Score: 80/100
|
|
58
|
+
|
|
59
|
+
[32m✓[39m src/commands/__tests__/upload.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
60
|
+
[32m✓[39m src/utils/__tests__/helpers.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 2[2mms[22m[39m
|
|
61
|
+
[32m✓[39m src/commands/__tests__/init.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
62
|
+
[32m✓[39m src/commands/__tests__/consistency.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
63
|
+
[32m✓[39m src/commands/__tests__/scan.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 79[2mms[22m[39m
|
|
64
|
+
[32m✓[39m src/commands/__tests__/extra-commands.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 125[2mms[22m[39m
|
|
65
|
+
[32m✓[39m src/__tests__/unified.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
66
|
+
[32m✓[39m src/__tests__/cli.test.ts [2m([22m[2m3 tests[22m[2m)[22m[33m 2817[2mms[22m[39m
|
|
67
|
+
[33m[2m✓[22m[39m should run unified analysis with both tools [33m 2816[2mms[22m[39m
|
|
68
|
+
[32m✓[39m src/__tests__/config-shape.test.ts [2m([22m[2m3 tests[22m[2m)[22m[33m 2818[2mms[22m[39m
|
|
69
|
+
[33m[2m✓[22m[39m should generate a strictly portable AIReadyConfig in summary [33m 2816[2mms[22m[39m
|
|
70
|
+
|
|
71
|
+
[2m Test Files [22m [1m[32m15 passed[39m[22m[90m (15)[39m
|
|
72
|
+
[2m Tests [22m [1m[32m45 passed[39m[22m[90m (45)[39m
|
|
73
|
+
[2m Start at [22m 23:50:23
|
|
74
|
+
[2m Duration [22m 3.75s[2m (transform 2.06s, setup 0ms, import 4.86s, tests 5.94s, environment 1ms)[22m
|
|
75
|
+
|
|
76
|
+
[?25h
|
package/dist/cli.js
CHANGED
|
@@ -394,13 +394,91 @@ function generateMarkdownReport(report, elapsedTime) {
|
|
|
394
394
|
// src/commands/report-formatter.ts
|
|
395
395
|
var import_chalk2 = __toESM(require("chalk"));
|
|
396
396
|
var import_core4 = require("@aiready/core");
|
|
397
|
+
function generateProgressBar(score, width = 20) {
|
|
398
|
+
const filled = Math.round(score / 100 * width);
|
|
399
|
+
const empty = width - filled;
|
|
400
|
+
let color = import_chalk2.default.red;
|
|
401
|
+
if (score >= 90) color = import_chalk2.default.green;
|
|
402
|
+
else if (score >= 75) color = import_chalk2.default.cyan;
|
|
403
|
+
else if (score >= 60) color = import_chalk2.default.yellow;
|
|
404
|
+
const bar = "\u2588".repeat(filled) + "\u2591".repeat(empty);
|
|
405
|
+
return color(bar);
|
|
406
|
+
}
|
|
407
|
+
function countIssuesBySeverity(results) {
|
|
408
|
+
let critical = 0;
|
|
409
|
+
let major = 0;
|
|
410
|
+
let minor = 0;
|
|
411
|
+
if (results.summary?.toolsRun) {
|
|
412
|
+
for (const toolId of results.summary.toolsRun) {
|
|
413
|
+
const toolRes = results[toolId];
|
|
414
|
+
if (toolRes?.results) {
|
|
415
|
+
for (const fileRes of toolRes.results) {
|
|
416
|
+
if (fileRes.issues) {
|
|
417
|
+
for (const issue of fileRes.issues) {
|
|
418
|
+
const sev = issue.severity?.toLowerCase();
|
|
419
|
+
if (sev === "critical") critical++;
|
|
420
|
+
else if (sev === "major") major++;
|
|
421
|
+
else minor++;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
return { critical, major, minor };
|
|
429
|
+
}
|
|
430
|
+
function getTopFilesWithIssues(results, limit = 5) {
|
|
431
|
+
const fileCounts = /* @__PURE__ */ new Map();
|
|
432
|
+
if (results.summary?.toolsRun) {
|
|
433
|
+
for (const toolId of results.summary.toolsRun) {
|
|
434
|
+
const toolRes = results[toolId];
|
|
435
|
+
if (toolRes?.results) {
|
|
436
|
+
for (const fileRes of toolRes.results) {
|
|
437
|
+
if (fileRes.issues?.length > 0) {
|
|
438
|
+
const current = fileCounts.get(fileRes.fileName) || 0;
|
|
439
|
+
fileCounts.set(fileRes.fileName, current + fileRes.issues.length);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
return Array.from(fileCounts.entries()).map(([file, count]) => ({ file, count })).sort((a, b) => b.count - a.count).slice(0, limit);
|
|
446
|
+
}
|
|
397
447
|
function printScanSummary(results, startTime) {
|
|
448
|
+
const severity = countIssuesBySeverity(results);
|
|
449
|
+
const totalIssues = severity.critical + severity.major + severity.minor;
|
|
450
|
+
const topFiles = getTopFilesWithIssues(results);
|
|
398
451
|
console.log(import_chalk2.default.cyan("\n=== AIReady Run Summary ==="));
|
|
452
|
+
console.log(` Total issues: ${import_chalk2.default.bold(String(totalIssues))}`);
|
|
453
|
+
if (totalIssues > 0) {
|
|
454
|
+
console.log(import_chalk2.default.dim(" Severity breakdown:"));
|
|
455
|
+
if (severity.critical > 0) {
|
|
456
|
+
console.log(
|
|
457
|
+
` ${import_chalk2.default.red("\u25CF")} Critical: ${import_chalk2.default.bold(severity.critical)}`
|
|
458
|
+
);
|
|
459
|
+
}
|
|
460
|
+
if (severity.major > 0) {
|
|
461
|
+
console.log(
|
|
462
|
+
` ${import_chalk2.default.yellow("\u25CF")} Major: ${import_chalk2.default.bold(severity.major)}`
|
|
463
|
+
);
|
|
464
|
+
}
|
|
465
|
+
if (severity.minor > 0) {
|
|
466
|
+
console.log(
|
|
467
|
+
` ${import_chalk2.default.blue("\u25CF")} Minor: ${import_chalk2.default.bold(severity.minor)}`
|
|
468
|
+
);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
if (topFiles.length > 0) {
|
|
472
|
+
console.log(import_chalk2.default.dim("\n Top files with issues:"));
|
|
473
|
+
topFiles.forEach((item) => {
|
|
474
|
+
console.log(
|
|
475
|
+
` ${import_chalk2.default.yellow("\u2192")} ${item.file}: ${import_chalk2.default.bold(item.count)} issues`
|
|
476
|
+
);
|
|
477
|
+
});
|
|
478
|
+
}
|
|
399
479
|
console.log(
|
|
400
|
-
`
|
|
401
|
-
)
|
|
402
|
-
console.log(
|
|
403
|
-
` Execution time: ${import_chalk2.default.bold(((Date.now() - startTime) / 1e3).toFixed(2) + "s")}`
|
|
480
|
+
`
|
|
481
|
+
Execution time: ${import_chalk2.default.bold(((Date.now() - startTime) / 1e3).toFixed(2) + "s")}`
|
|
404
482
|
);
|
|
405
483
|
}
|
|
406
484
|
function printBusinessImpact(roi, unifiedBudget) {
|
|
@@ -427,13 +505,14 @@ function printScoring(scoringResult, scoringProfile) {
|
|
|
427
505
|
scoringResult.breakdown.forEach((tool) => {
|
|
428
506
|
const rating = (0, import_core4.getRating)(tool.score);
|
|
429
507
|
const emoji = (0, import_core4.getRatingDisplay)(rating).emoji;
|
|
508
|
+
const progressBar = generateProgressBar(tool.score, 15);
|
|
430
509
|
console.log(
|
|
431
|
-
`
|
|
510
|
+
` ${progressBar} ${tool.score}/100 (${rating}) ${emoji} ${tool.toolName}`
|
|
432
511
|
);
|
|
433
512
|
});
|
|
434
513
|
const allRecs = scoringResult.breakdown.flatMap(
|
|
435
514
|
(t) => (t.recommendations ?? []).map((r) => ({ ...r, tool: t.toolName }))
|
|
436
|
-
).sort((a, b) => b.estimatedImpact - a.estimatedImpact).slice(0,
|
|
515
|
+
).sort((a, b) => b.estimatedImpact - a.estimatedImpact).slice(0, 5);
|
|
437
516
|
if (allRecs.length > 0) {
|
|
438
517
|
console.log(import_chalk2.default.bold("\n\u{1F3AF} Top Actionable Recommendations:"));
|
|
439
518
|
allRecs.forEach((rec, i) => {
|
|
@@ -917,6 +996,9 @@ async function initAction(options) {
|
|
|
917
996
|
process.exit(1);
|
|
918
997
|
}
|
|
919
998
|
const baseConfig = {
|
|
999
|
+
// Target quality score threshold (0-100)
|
|
1000
|
+
threshold: 75,
|
|
1001
|
+
// Global scan settings
|
|
920
1002
|
scan: {
|
|
921
1003
|
include: [
|
|
922
1004
|
"src/**/*.ts",
|
|
@@ -943,6 +1025,17 @@ async function initAction(options) {
|
|
|
943
1025
|
import_core7.ToolName.ChangeAmplification
|
|
944
1026
|
]
|
|
945
1027
|
},
|
|
1028
|
+
// Output preferences
|
|
1029
|
+
output: {
|
|
1030
|
+
format: "console",
|
|
1031
|
+
showBreakdown: true,
|
|
1032
|
+
saveTo: "aiready-report.json"
|
|
1033
|
+
},
|
|
1034
|
+
// Scoring profile and weights
|
|
1035
|
+
scoring: {
|
|
1036
|
+
profile: "balanced"
|
|
1037
|
+
},
|
|
1038
|
+
// Tool-specific configurations
|
|
946
1039
|
tools: {
|
|
947
1040
|
[import_core7.ToolName.PatternDetect]: {
|
|
948
1041
|
minSimilarity: 0.8,
|
|
@@ -966,7 +1059,33 @@ async function initAction(options) {
|
|
|
966
1059
|
},
|
|
967
1060
|
[import_core7.ToolName.NamingConsistency]: {
|
|
968
1061
|
shortWords: ["id", "db", "ui", "ai"],
|
|
969
|
-
|
|
1062
|
+
acceptedAbbreviations: [
|
|
1063
|
+
"API",
|
|
1064
|
+
"JSON",
|
|
1065
|
+
"CSV",
|
|
1066
|
+
"HTML",
|
|
1067
|
+
"CSS",
|
|
1068
|
+
"HTTP",
|
|
1069
|
+
"URL",
|
|
1070
|
+
"SDK",
|
|
1071
|
+
"CLI",
|
|
1072
|
+
"AI",
|
|
1073
|
+
"ML",
|
|
1074
|
+
"ID",
|
|
1075
|
+
"DB",
|
|
1076
|
+
"UI",
|
|
1077
|
+
"UX",
|
|
1078
|
+
"DOM",
|
|
1079
|
+
"UUID",
|
|
1080
|
+
"GUID",
|
|
1081
|
+
"DEFAULT",
|
|
1082
|
+
"MAX",
|
|
1083
|
+
"MIN",
|
|
1084
|
+
"config",
|
|
1085
|
+
"INIT",
|
|
1086
|
+
"SKILL"
|
|
1087
|
+
],
|
|
1088
|
+
...options.full ? { disableChecks: [] } : {}
|
|
970
1089
|
},
|
|
971
1090
|
[import_core7.ToolName.AiSignalClarity]: {
|
|
972
1091
|
checkMagicLiterals: true,
|
|
@@ -975,48 +1094,42 @@ async function initAction(options) {
|
|
|
975
1094
|
checkUndocumentedExports: true,
|
|
976
1095
|
...options.full ? { checkImplicitSideEffects: false, checkDeepCallbacks: false } : {}
|
|
977
1096
|
},
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
scoring: {
|
|
997
|
-
threshold: 70,
|
|
998
|
-
showBreakdown: true,
|
|
999
|
-
...options.full ? { profile: "default" } : {}
|
|
1097
|
+
[import_core7.ToolName.AgentGrounding]: {
|
|
1098
|
+
maxRecommendedDepth: 5,
|
|
1099
|
+
readmeStaleDays: 30
|
|
1100
|
+
},
|
|
1101
|
+
[import_core7.ToolName.TestabilityIndex]: {
|
|
1102
|
+
minCoverageRatio: 0.7,
|
|
1103
|
+
testPatterns: ["**/*.test.ts", "**/__tests__/**"]
|
|
1104
|
+
},
|
|
1105
|
+
[import_core7.ToolName.DocDrift]: {
|
|
1106
|
+
maxCommits: 50,
|
|
1107
|
+
staleMonths: 3
|
|
1108
|
+
},
|
|
1109
|
+
[import_core7.ToolName.DependencyHealth]: {
|
|
1110
|
+
trainingCutoffYear: 2023
|
|
1111
|
+
},
|
|
1112
|
+
[import_core7.ToolName.ChangeAmplification]: {
|
|
1113
|
+
// No specific options yet, uses global scan settings
|
|
1114
|
+
}
|
|
1000
1115
|
},
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
}
|
|
1116
|
+
// Visualizer settings (interactive graph)
|
|
1117
|
+
visualizer: {
|
|
1118
|
+
groupingDirs: ["packages", "src", "lib"],
|
|
1119
|
+
graph: {
|
|
1120
|
+
maxNodes: 5e3,
|
|
1121
|
+
maxEdges: 1e4
|
|
1008
1122
|
}
|
|
1009
|
-
}
|
|
1123
|
+
}
|
|
1010
1124
|
};
|
|
1011
1125
|
const defaultConfig = baseConfig;
|
|
1012
1126
|
let content;
|
|
1013
1127
|
if (fileExt === "js") {
|
|
1014
|
-
content = `/**
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
)};
|
|
1128
|
+
content = `/**
|
|
1129
|
+
* AIReady Configuration
|
|
1130
|
+
* @type {import('@aiready/core').AIReadyConfig}
|
|
1131
|
+
*/
|
|
1132
|
+
module.exports = ${JSON.stringify(defaultConfig, null, 2)};
|
|
1020
1133
|
`;
|
|
1021
1134
|
} else {
|
|
1022
1135
|
content = JSON.stringify(defaultConfig, null, 2);
|