@aiready/cli 0.9.47 → 0.10.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.
Files changed (53) hide show
  1. package/.turbo/turbo-build.log +7 -7
  2. package/.turbo/turbo-test.log +5 -6
  3. package/dist/{chunk-6FOVC2OE.mjs → chunk-EQ2HQSTJ.mjs} +83 -61
  4. package/dist/cli.js +102 -75
  5. package/dist/cli.mjs +30 -25
  6. package/dist/index.js +83 -61
  7. package/dist/index.mjs +1 -1
  8. package/package.json +12 -12
  9. package/src/.aiready/aiready-report-20260305-153847.json +8015 -0
  10. package/src/.aiready/aiready-report-20260305-154121.json +8015 -0
  11. package/src/.aiready/aiready-report-20260305-160026.json +8015 -0
  12. package/src/.aiready/aiready-report-20260305-160752.json +8015 -0
  13. package/src/.aiready/aiready-report-20260305-163858.json +8015 -0
  14. package/src/__tests__/cli.test.ts +6 -6
  15. package/src/commands/scan.ts +27 -22
  16. package/src/commands/visualize.ts +3 -3
  17. package/src/index.ts +108 -92
  18. package/dist/__tests__/cli.test.d.ts +0 -2
  19. package/dist/__tests__/cli.test.d.ts.map +0 -1
  20. package/dist/__tests__/cli.test.js +0 -52
  21. package/dist/__tests__/cli.test.js.map +0 -1
  22. package/dist/agent-grounding-DAOSU4MF.mjs +0 -7
  23. package/dist/chunk-2LXCBVPN.mjs +0 -109
  24. package/dist/chunk-3SG2GLFJ.mjs +0 -118
  25. package/dist/chunk-5GZDRZ3T.mjs +0 -126
  26. package/dist/chunk-DEZVFBPS.mjs +0 -111
  27. package/dist/chunk-G6SDH7ZS.mjs +0 -126
  28. package/dist/chunk-HLBKROD3.mjs +0 -237
  29. package/dist/chunk-JQG7ZATX.mjs +0 -211
  30. package/dist/chunk-LLJMKNBI.mjs +0 -243
  31. package/dist/chunk-M7O2MEM5.mjs +0 -211
  32. package/dist/chunk-MEXEG3IJ.mjs +0 -389
  33. package/dist/chunk-N4SLON5K.mjs +0 -152
  34. package/dist/chunk-OVELUOM6.mjs +0 -112
  35. package/dist/chunk-P3XAXCTK.mjs +0 -110
  36. package/dist/chunk-PDOONNSK.mjs +0 -228
  37. package/dist/chunk-QXQP6BMO.mjs +0 -109
  38. package/dist/chunk-RBWLQRKR.mjs +0 -39
  39. package/dist/chunk-XAF2EW5H.mjs +0 -46
  40. package/dist/chunk-Y6FXYEAI.mjs +0 -10
  41. package/dist/chunk-YIS6WTY5.mjs +0 -35
  42. package/dist/cli.d.mts +0 -1
  43. package/dist/cli.d.ts +0 -3
  44. package/dist/cli.d.ts.map +0 -1
  45. package/dist/cli.js.map +0 -1
  46. package/dist/deps-health-UWVYJ7FZ.mjs +0 -47
  47. package/dist/doc-drift-G7MGAZAE.mjs +0 -47
  48. package/dist/hallucination-risk-XU6E7IGN.mjs +0 -7
  49. package/dist/index.d.mts +0 -33
  50. package/dist/index.d.ts +0 -32
  51. package/dist/index.d.ts.map +0 -1
  52. package/dist/index.js.map +0 -1
  53. package/dist/testability-VDZJZ4MF.mjs +0 -7
@@ -10,7 +10,7 @@
10
10
  CJS Build start
11
11
  ESM Build start
12
12
 
13
- [11:46:21 pm]  WARN  ▲ [WARNING] "import.meta" is not available with the "cjs" output format and will be empty [empty-import-meta]
13
+ [4:11:53 PM]  WARN  ▲ [WARNING] "import.meta" is not available with the "cjs" output format and will be empty [empty-import-meta]
14
14
 
15
15
  src/cli.ts:25:31:
16
16
   25 │ return dirname(fileURLToPath(import.meta.url));
@@ -20,10 +20,10 @@
20
20
 
21
21
 
22
22
 
23
- CJS dist/cli.js 89.07 KB
24
- CJS dist/index.js 13.89 KB
25
- CJS ⚡️ Build success in 40ms
26
23
  ESM dist/index.mjs 170.00 B
27
- ESM dist/cli.mjs 73.70 KB
28
- ESM dist/chunk-6FOVC2OE.mjs 12.49 KB
29
- ESM ⚡️ Build success in 40ms
24
+ ESM dist/chunk-EQ2HQSTJ.mjs 13.39 KB
25
+ ESM dist/cli.mjs 73.88 KB
26
+ ESM ⚡️ Build success in 29ms
27
+ CJS dist/index.js 14.79 KB
28
+ CJS dist/cli.js 90.07 KB
29
+ CJS ⚡️ Build success in 29ms
@@ -6,12 +6,11 @@
6
6
  [?25l
7
7
   RUN  v4.0.18 /Users/pengcao/projects/aiready/packages/cli
8
8
 
9
- ✓ src/__tests__/cli.test.ts (3 tests) 3ms
10
- ✓ dist/__tests__/cli.test.js (3 tests) 3ms
9
+ ✓ src/__tests__/cli.test.ts (3 tests) 2ms
11
10
 
12
-  Test Files  2 passed (2)
13
-  Tests  6 passed (6)
14
-  Start at  23:46:53
15
-  Duration  1.91s (transform 370ms, setup 0ms, import 2.37s, tests 6ms, environment 0ms)
11
+  Test Files  1 passed (1)
12
+  Tests  3 passed (3)
13
+  Start at  16:12:25
14
+  Duration  327ms (transform 78ms, setup 0ms, import 243ms, tests 2ms, environment 0ms)
16
15
 
17
16
  [?25h
@@ -60,8 +60,11 @@ async function analyzeUnified(options) {
60
60
  if (options.progressCallback) {
61
61
  options.progressCallback({ tool: "patterns", data: patternResult });
62
62
  }
63
- result.patterns = sortBySeverity(patternResult.results);
64
- result.duplicates = patternResult.duplicates;
63
+ result.patternDetect = {
64
+ results: sortBySeverity(patternResult.results),
65
+ summary: patternResult.summary || {},
66
+ duplicates: patternResult.duplicates || []
67
+ };
65
68
  result.summary.totalIssues += patternResult.results.reduce(
66
69
  (sum, file) => sum + file.issues.length,
67
70
  0
@@ -72,13 +75,18 @@ async function analyzeUnified(options) {
72
75
  if (options.progressCallback) {
73
76
  options.progressCallback({ tool: "context", data: contextResults });
74
77
  }
75
- result.context = contextResults.sort((a, b) => {
78
+ const sorted = contextResults.sort((a, b) => {
76
79
  const severityDiff = (severityOrder[b.severity] || 0) - (severityOrder[a.severity] || 0);
77
80
  if (severityDiff !== 0) return severityDiff;
78
81
  if (a.tokenCost !== b.tokenCost) return b.tokenCost - a.tokenCost;
79
82
  return b.fragmentationScore - a.fragmentationScore;
80
83
  });
81
- result.summary.totalIssues += result.context?.length || 0;
84
+ const { generateSummary: genContextSummary } = await import("@aiready/context-analyzer");
85
+ result.contextAnalyzer = {
86
+ results: sorted,
87
+ summary: genContextSummary(sorted)
88
+ };
89
+ result.summary.totalIssues += sorted.length;
82
90
  }
83
91
  if (tools.includes("consistency")) {
84
92
  const consistencyOptions = {
@@ -91,10 +99,10 @@ async function analyzeUnified(options) {
91
99
  if (options.progressCallback) {
92
100
  options.progressCallback({ tool: "consistency", data: report });
93
101
  }
94
- if (report.results) {
95
- report.results = sortBySeverity(report.results);
96
- }
97
- result.consistency = report;
102
+ result.consistency = {
103
+ results: report.results ? sortBySeverity(report.results) : [],
104
+ summary: report.summary
105
+ };
98
106
  result.summary.totalIssues += report.summary.totalIssues;
99
107
  }
100
108
  if (tools.includes("doc-drift")) {
@@ -108,7 +116,10 @@ async function analyzeUnified(options) {
108
116
  if (options.progressCallback) {
109
117
  options.progressCallback({ tool: "doc-drift", data: report });
110
118
  }
111
- result.docDrift = report;
119
+ result.docDrift = {
120
+ results: report.results || [],
121
+ summary: report.summary || {}
122
+ };
112
123
  result.summary.totalIssues += report.issues?.length || 0;
113
124
  }
114
125
  if (tools.includes("deps-health")) {
@@ -122,10 +133,13 @@ async function analyzeUnified(options) {
122
133
  if (options.progressCallback) {
123
134
  options.progressCallback({ tool: "deps-health", data: report });
124
135
  }
125
- result.deps = report;
136
+ result.dependencyHealth = {
137
+ results: report.results || [],
138
+ summary: report.summary || {}
139
+ };
126
140
  result.summary.totalIssues += report.issues?.length || 0;
127
141
  }
128
- if (tools.includes("aiSignalClarity")) {
142
+ if (tools.includes("ai-signal-clarity")) {
129
143
  const { analyzeAiSignalClarity } = await import("@aiready/ai-signal-clarity");
130
144
  const report = await analyzeAiSignalClarity({
131
145
  rootDir: options.rootDir,
@@ -134,15 +148,18 @@ async function analyzeUnified(options) {
134
148
  onProgress: options.onProgress
135
149
  });
136
150
  if (options.progressCallback) {
137
- options.progressCallback({ tool: "aiSignalClarity", data: report });
151
+ options.progressCallback({ tool: "ai-signal-clarity", data: report });
138
152
  }
139
- result.aiSignalClarity = report;
153
+ result.aiSignalClarity = {
154
+ results: report.results || [],
155
+ summary: report.summary || {}
156
+ };
140
157
  result.summary.totalIssues += report.results?.reduce(
141
158
  (sum, r) => sum + (r.issues?.length || 0),
142
159
  0
143
160
  ) || 0;
144
161
  }
145
- if (tools.includes("grounding")) {
162
+ if (tools.includes("agent-grounding")) {
146
163
  const { analyzeAgentGrounding } = await import("@aiready/agent-grounding");
147
164
  const report = await analyzeAgentGrounding({
148
165
  rootDir: options.rootDir,
@@ -151,9 +168,12 @@ async function analyzeUnified(options) {
151
168
  onProgress: options.onProgress
152
169
  });
153
170
  if (options.progressCallback) {
154
- options.progressCallback({ tool: "grounding", data: report });
171
+ options.progressCallback({ tool: "agent-grounding", data: report });
155
172
  }
156
- result.grounding = report;
173
+ result.agentGrounding = {
174
+ results: report.results || [],
175
+ summary: report.summary || {}
176
+ };
157
177
  result.summary.totalIssues += report.issues?.length || 0;
158
178
  }
159
179
  if (tools.includes("testability")) {
@@ -167,10 +187,13 @@ async function analyzeUnified(options) {
167
187
  if (options.progressCallback) {
168
188
  options.progressCallback({ tool: "testability", data: report });
169
189
  }
170
- result.testability = report;
190
+ result.testability = {
191
+ results: report.results || [],
192
+ summary: report.summary || {}
193
+ };
171
194
  result.summary.totalIssues += report.issues?.length || 0;
172
195
  }
173
- if (tools.includes("changeAmplification")) {
196
+ if (tools.includes("change-amplification")) {
174
197
  const { analyzeChangeAmplification } = await import("@aiready/change-amplification");
175
198
  const report = await analyzeChangeAmplification({
176
199
  rootDir: options.rootDir,
@@ -179,9 +202,12 @@ async function analyzeUnified(options) {
179
202
  onProgress: options.onProgress
180
203
  });
181
204
  if (options.progressCallback) {
182
- options.progressCallback({ tool: "changeAmplification", data: report });
205
+ options.progressCallback({ tool: "change-amplification", data: report });
183
206
  }
184
- result.changeAmplification = report;
207
+ result.changeAmplification = {
208
+ results: report.results || [],
209
+ summary: report.summary || {}
210
+ };
185
211
  result.summary.totalIssues += report.summary?.totalIssues || 0;
186
212
  }
187
213
  result.summary.executionTime = Date.now() - startTime;
@@ -189,14 +215,14 @@ async function analyzeUnified(options) {
189
215
  }
190
216
  async function scoreUnified(results, options) {
191
217
  const toolScores = /* @__PURE__ */ new Map();
192
- if (results.duplicates) {
218
+ if (results.patternDetect) {
193
219
  const { calculatePatternScore } = await import("@aiready/pattern-detect");
194
220
  try {
195
221
  const patternScore = calculatePatternScore(
196
- results.duplicates,
197
- results.patterns?.length || 0
222
+ results.patternDetect.duplicates,
223
+ results.patternDetect.results?.length || 0
198
224
  );
199
- const wastedTokens = results.duplicates.reduce(
225
+ const wastedTokens = results.patternDetect.duplicates.reduce(
200
226
  (sum, d) => sum + (d.tokenCost || 0),
201
227
  0
202
228
  );
@@ -214,10 +240,10 @@ async function scoreUnified(results, options) {
214
240
  void err;
215
241
  }
216
242
  }
217
- if (results.context) {
218
- const { generateSummary: genContextSummary, calculateContextScore } = await import("@aiready/context-analyzer");
243
+ if (results.contextAnalyzer) {
244
+ const { calculateContextScore } = await import("@aiready/context-analyzer");
219
245
  try {
220
- const ctxSummary = genContextSummary(results.context);
246
+ const ctxSummary = results.contextAnalyzer.summary;
221
247
  const contextScore = calculateContextScore(ctxSummary);
222
248
  contextScore.tokenBudget = calculateTokenBudget({
223
249
  totalContextTokens: ctxSummary.totalTokens,
@@ -252,10 +278,10 @@ async function scoreUnified(results, options) {
252
278
  void err;
253
279
  }
254
280
  }
255
- if (results.grounding) {
281
+ if (results.agentGrounding) {
256
282
  const { calculateGroundingScore } = await import("@aiready/agent-grounding");
257
283
  try {
258
- const agScore = calculateGroundingScore(results.grounding);
284
+ const agScore = calculateGroundingScore(results.agentGrounding);
259
285
  toolScores.set("agent-grounding", agScore);
260
286
  } catch (err) {
261
287
  void err;
@@ -273,10 +299,10 @@ async function scoreUnified(results, options) {
273
299
  if (results.docDrift) {
274
300
  toolScores.set("doc-drift", {
275
301
  toolName: "doc-drift",
276
- score: results.docDrift.summary.score,
277
- rawMetrics: results.docDrift.rawData,
302
+ score: results.docDrift.summary.score || results.docDrift.summary.totalScore || 0,
303
+ rawMetrics: results.docDrift.summary,
278
304
  factors: [],
279
- recommendations: (results.docDrift.recommendations || []).map(
305
+ recommendations: (results.docDrift.summary.recommendations || []).map(
280
306
  (action) => ({
281
307
  action,
282
308
  estimatedImpact: 5,
@@ -285,34 +311,30 @@ async function scoreUnified(results, options) {
285
311
  )
286
312
  });
287
313
  }
288
- if (results.deps) {
314
+ if (results.dependencyHealth) {
289
315
  toolScores.set("dependency-health", {
290
316
  toolName: "dependency-health",
291
- score: results.deps.summary.score,
292
- rawMetrics: results.deps.rawData,
317
+ score: results.dependencyHealth.summary.score || 0,
318
+ rawMetrics: results.dependencyHealth.summary,
293
319
  factors: [],
294
- recommendations: (results.deps.recommendations || []).map(
295
- (action) => ({
296
- action,
297
- estimatedImpact: 5,
298
- priority: "medium"
299
- })
300
- )
320
+ recommendations: (results.dependencyHealth.summary.recommendations || []).map((action) => ({
321
+ action,
322
+ estimatedImpact: 5,
323
+ priority: "medium"
324
+ }))
301
325
  });
302
326
  }
303
327
  if (results.changeAmplification) {
304
328
  toolScores.set("change-amplification", {
305
329
  toolName: "change-amplification",
306
- score: results.changeAmplification.summary.score,
307
- rawMetrics: results.changeAmplification.rawData,
330
+ score: results.changeAmplification.summary.score || 0,
331
+ rawMetrics: results.changeAmplification.summary,
308
332
  factors: [],
309
- recommendations: (results.changeAmplification.recommendations || []).map(
310
- (action) => ({
311
- action,
312
- estimatedImpact: 5,
313
- priority: "medium"
314
- })
315
- )
333
+ recommendations: (results.changeAmplification.summary.recommendations || []).map((action) => ({
334
+ action,
335
+ estimatedImpact: 5,
336
+ priority: "medium"
337
+ }))
316
338
  });
317
339
  }
318
340
  if (toolScores.size === 0) {
@@ -345,12 +367,12 @@ function generateUnifiedSummary(result) {
345
367
  output += ` Execution time: ${(summary.executionTime / 1e3).toFixed(2)}s
346
368
 
347
369
  `;
348
- if (result.patterns) {
349
- output += `\u{1F50D} Pattern Analysis: ${result.patterns.length} issues
370
+ if (result.patternDetect) {
371
+ output += `\u{1F50D} Pattern Analysis: ${result.patternDetect.results.length} issues
350
372
  `;
351
373
  }
352
- if (result.context) {
353
- output += `\u{1F9E0} Context Analysis: ${result.context.length} issues
374
+ if (result.contextAnalyzer) {
375
+ output += `\u{1F9E0} Context Analysis: ${result.contextAnalyzer.results.length} issues
354
376
  `;
355
377
  }
356
378
  if (result.consistency) {
@@ -358,23 +380,23 @@ function generateUnifiedSummary(result) {
358
380
  `;
359
381
  }
360
382
  if (result.docDrift) {
361
- output += `\u{1F4DD} Doc Drift Analysis: ${result.docDrift.issues?.length || 0} issues
383
+ output += `\u{1F4DD} Doc Drift Analysis: ${result.docDrift.results?.length || 0} issues
362
384
  `;
363
385
  }
364
- if (result.deps) {
365
- output += `\u{1F4E6} Dependency Health: ${result.deps.issues?.length || 0} issues
386
+ if (result.dependencyHealth) {
387
+ output += `\u{1F4E6} Dependency Health: ${result.dependencyHealth.results?.length || 0} issues
366
388
  `;
367
389
  }
368
390
  if (result.aiSignalClarity) {
369
391
  output += `\u{1F9E0} AI Signal Clarity: ${result.aiSignalClarity.summary?.totalSignals || 0} signals
370
392
  `;
371
393
  }
372
- if (result.grounding) {
373
- output += `\u{1F9ED} Agent Grounding: ${result.grounding.issues?.length || 0} issues
394
+ if (result.agentGrounding) {
395
+ output += `\u{1F9ED} Agent Grounding: ${result.agentGrounding.results?.length || 0} issues
374
396
  `;
375
397
  }
376
398
  if (result.testability) {
377
- output += `\u{1F9EA} Testability Index: ${result.testability.issues?.length || 0} issues
399
+ output += `\u{1F9EA} Testability Index: ${result.testability.results?.length || 0} issues
378
400
  `;
379
401
  }
380
402
  if (result.changeAmplification) {