@aiready/context-analyzer 0.21.26 → 0.21.27
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 +32 -25
- package/.turbo/turbo-test.log +51 -87
- package/coverage/clover.xml +392 -1878
- package/coverage/coverage-final.json +15 -19
- package/coverage/index.html +48 -63
- package/coverage/src/analyzers/index.html +21 -21
- package/coverage/src/analyzers/python-context.ts.html +96 -96
- package/coverage/src/ast-utils.ts.html +34 -109
- package/coverage/src/classifier.ts.html +104 -104
- package/coverage/src/classify/classification-patterns.ts.html +1 -1
- package/coverage/src/classify/file-classifiers.ts.html +1 -1
- package/coverage/src/classify/index.html +1 -1
- package/coverage/src/cluster-detector.ts.html +72 -72
- package/coverage/src/defaults.ts.html +1 -1
- package/coverage/src/graph-builder.ts.html +131 -131
- package/coverage/src/index.html +101 -116
- package/coverage/src/index.ts.html +2 -2
- package/coverage/src/issue-analyzer.ts.html +32 -83
- package/coverage/src/mapper.ts.html +20 -2
- package/coverage/src/metrics.ts.html +127 -130
- package/coverage/src/orchestrator.ts.html +13 -13
- package/coverage/src/provider.ts.html +19 -19
- package/coverage/src/remediation.ts.html +59 -59
- package/coverage/src/report/console-report.ts.html +2 -2
- package/coverage/src/report/html-report.ts.html +60 -84
- package/coverage/src/report/index.html +7 -7
- package/coverage/src/report/interactive-setup.ts.html +1 -1
- package/coverage/src/scoring.ts.html +62 -62
- package/coverage/src/semantic/co-usage.ts.html +1 -1
- package/coverage/src/semantic/consolidation.ts.html +1 -1
- package/coverage/src/semantic/domain-inference.ts.html +1 -1
- package/coverage/src/semantic/index.html +1 -1
- package/coverage/src/semantic/type-graph.ts.html +1 -1
- package/coverage/src/summary.ts.html +67 -67
- package/coverage/src/types.ts.html +1 -1
- package/coverage/src/utils/dependency-graph-utils.ts.html +41 -41
- package/coverage/src/utils/index.html +21 -21
- package/coverage/src/utils/string-utils.ts.html +1 -1
- package/dist/chunk-22ZO4EKZ.mjs +1297 -0
- package/dist/chunk-4U4LDWGF.mjs +360 -0
- package/dist/chunk-BA7QGUHN.mjs +1722 -0
- package/dist/chunk-BCEZGRXI.mjs +1297 -0
- package/dist/chunk-BQCISA2F.mjs +91 -0
- package/dist/chunk-EMYD7NS6.mjs +137 -0
- package/dist/chunk-EWFR366Y.mjs +1740 -0
- package/dist/chunk-FO6YT6RG.mjs +1751 -0
- package/dist/chunk-J3SZQZNU.mjs +221 -0
- package/dist/chunk-OZE3FVZT.mjs +1089 -0
- package/dist/chunk-WHB7QI7N.mjs +91 -0
- package/dist/cli-action-CXIHOVAC.mjs +95 -0
- package/dist/cli-action-SA7SCYNV.mjs +95 -0
- package/dist/cli-action-YAJOJCXJ.mjs +95 -0
- package/dist/cli.js +688 -566
- package/dist/cli.mjs +4 -88
- package/dist/index.js +889 -773
- package/dist/index.mjs +21 -14
- package/dist/orchestrator-3L3NAZYP.mjs +10 -0
- package/dist/orchestrator-MONOZHVW.mjs +10 -0
- package/dist/orchestrator-ZR7JSKWI.mjs +10 -0
- package/dist/summary-7PZVW72O.mjs +7 -0
- package/dist/summary-LKUCJAIS.mjs +7 -0
- package/package.json +2 -2
- package/src/__tests__/analyzer.test.ts +1 -1
- package/src/__tests__/enhanced-cohesion.test.ts +4 -1
- package/src/__tests__/orchestrator.test.ts +19 -4
- package/src/__tests__/python-context.test.ts +6 -0
- package/src/__tests__/report/html-report.test.ts +8 -2
- package/src/ast-utils.ts +1 -26
- package/src/cli-definition.ts +4 -2
- package/src/issue-analyzer.ts +4 -19
- package/src/metrics.ts +1 -2
- package/src/provider.ts +4 -4
- package/src/report/html-report.ts +43 -59
- package/coverage/dist/chunk-64U3PNO3.mjs.html +0 -367
- package/coverage/dist/chunk-J3MUOWHC.mjs.html +0 -5326
- package/coverage/dist/index.html +0 -146
- package/coverage/dist/index.mjs.html +0 -1396
- package/coverage/src/analyzer.ts.html +0 -88
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>11/11</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -39,14 +39,14 @@
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>4/4</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>11/11</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -146,21 +146,23 @@
|
|
|
146
146
|
<span class="cline-any cline-neutral"> </span>
|
|
147
147
|
<span class="cline-any cline-neutral"> </span>
|
|
148
148
|
<span class="cline-any cline-neutral"> </span>
|
|
149
|
+
<span class="cline-any cline-yes">11x</span>
|
|
149
150
|
<span class="cline-any cline-neutral"> </span>
|
|
150
151
|
<span class="cline-any cline-neutral"> </span>
|
|
151
|
-
<span class="cline-any cline-yes">12x</span>
|
|
152
152
|
<span class="cline-any cline-neutral"> </span>
|
|
153
153
|
<span class="cline-any cline-neutral"> </span>
|
|
154
|
+
<span class="cline-any cline-yes">1x</span>
|
|
155
|
+
<span class="cline-any cline-yes">1x</span>
|
|
154
156
|
<span class="cline-any cline-neutral"> </span>
|
|
157
|
+
<span class="cline-any cline-yes">1x</span>
|
|
158
|
+
<span class="cline-any cline-yes">1x</span>
|
|
155
159
|
<span class="cline-any cline-neutral"> </span>
|
|
156
|
-
<span class="cline-any cline-yes">2x</span>
|
|
157
|
-
<span class="cline-any cline-yes">2x</span>
|
|
158
160
|
<span class="cline-any cline-neutral"> </span>
|
|
161
|
+
<span class="cline-any cline-yes">1x</span>
|
|
162
|
+
<span class="cline-any cline-yes">1x</span>
|
|
159
163
|
<span class="cline-any cline-neutral"> </span>
|
|
160
|
-
<span class="cline-any cline-yes">
|
|
161
|
-
<span class="cline-any cline-yes">2x</span>
|
|
164
|
+
<span class="cline-any cline-yes">1x</span>
|
|
162
165
|
<span class="cline-any cline-neutral"> </span>
|
|
163
|
-
<span class="cline-any cline-yes">2x</span>
|
|
164
166
|
<span class="cline-any cline-neutral"> </span>
|
|
165
167
|
<span class="cline-any cline-neutral"> </span>
|
|
166
168
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -173,9 +175,9 @@
|
|
|
173
175
|
<span class="cline-any cline-neutral"> </span>
|
|
174
176
|
<span class="cline-any cline-neutral"> </span>
|
|
175
177
|
<span class="cline-any cline-neutral"> </span>
|
|
178
|
+
<span class="cline-any cline-yes">1x</span>
|
|
176
179
|
<span class="cline-any cline-neutral"> </span>
|
|
177
180
|
<span class="cline-any cline-neutral"> </span>
|
|
178
|
-
<span class="cline-any cline-yes">2x</span>
|
|
179
181
|
<span class="cline-any cline-neutral"> </span>
|
|
180
182
|
<span class="cline-any cline-neutral"> </span>
|
|
181
183
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -187,10 +189,8 @@
|
|
|
187
189
|
<span class="cline-any cline-neutral"> </span>
|
|
188
190
|
<span class="cline-any cline-neutral"> </span>
|
|
189
191
|
<span class="cline-any cline-neutral"> </span>
|
|
190
|
-
<span class="cline-any cline-
|
|
191
|
-
<span class="cline-any cline-
|
|
192
|
-
<span class="cline-any cline-yes">2x</span>
|
|
193
|
-
<span class="cline-any cline-yes">2x</span>
|
|
192
|
+
<span class="cline-any cline-yes">1x</span>
|
|
193
|
+
<span class="cline-any cline-yes">1x</span>
|
|
194
194
|
<span class="cline-any cline-neutral"> </span>
|
|
195
195
|
<span class="cline-any cline-neutral"> </span>
|
|
196
196
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -206,10 +206,8 @@
|
|
|
206
206
|
IssueType,
|
|
207
207
|
SpokeOutputSchema,
|
|
208
208
|
} from '@aiready/core';
|
|
209
|
-
import { analyzeContext } from './analyzer';
|
|
210
|
-
import { generateSummary } from './summary';
|
|
211
209
|
import { calculateContextScore } from './scoring';
|
|
212
|
-
import { ContextAnalyzerOptions, ContextAnalysisResult } from './types';
|
|
210
|
+
import type { ContextAnalyzerOptions, ContextAnalysisResult } from './types';
|
|
213
211
|
|
|
214
212
|
/**
|
|
215
213
|
* Context Analyzer Tool Provider
|
|
@@ -219,6 +217,9 @@ export const ContextAnalyzerProvider: ToolProvider = {
|
|
|
219
217
|
alias: ['context', 'fragmentation', 'budget'],
|
|
220
218
|
|
|
221
219
|
async analyze(options: ScanOptions): Promise<SpokeOutput> {
|
|
220
|
+
const { analyzeContext } = await import('./orchestrator');
|
|
221
|
+
const { generateSummary } = await import('./summary');
|
|
222
|
+
|
|
222
223
|
const results = await analyzeContext(options as ContextAnalyzerOptions);
|
|
223
224
|
const summary = generateSummary(results, options);
|
|
224
225
|
|
|
@@ -236,7 +237,6 @@ export const ContextAnalyzerProvider: ToolProvider = {
|
|
|
236
237
|
metrics: {
|
|
237
238
|
tokenCost: r.tokenCost,
|
|
238
239
|
complexityScore: r.importDepth,
|
|
239
|
-
// Map other context-specific metrics if needed
|
|
240
240
|
},
|
|
241
241
|
})
|
|
242
242
|
);
|
|
@@ -268,7 +268,7 @@ export const ContextAnalyzerProvider: ToolProvider = {
|
|
|
268
268
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
269
269
|
Code coverage generated by
|
|
270
270
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
271
|
-
at 2026-03-
|
|
271
|
+
at 2026-03-24T11:20:59.666Z
|
|
272
272
|
</div>
|
|
273
273
|
<script src="../prettify.js"></script>
|
|
274
274
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">78.04% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>32/41</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">72.41% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>21/29</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>2/2</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">81.57% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>31/38</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -232,60 +232,60 @@
|
|
|
232
232
|
<span class="cline-any cline-neutral"> </span>
|
|
233
233
|
<span class="cline-any cline-neutral"> </span>
|
|
234
234
|
<span class="cline-any cline-neutral"> </span>
|
|
235
|
-
<span class="cline-any cline-yes">13x</span>
|
|
236
235
|
<span class="cline-any cline-neutral"> </span>
|
|
237
|
-
<span class="cline-any cline-
|
|
236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
237
|
+
<span class="cline-any cline-neutral"> </span>
|
|
238
238
|
<span class="cline-any cline-neutral"> </span>
|
|
239
239
|
<span class="cline-any cline-neutral"> </span>
|
|
240
240
|
<span class="cline-any cline-yes">20x</span>
|
|
241
241
|
<span class="cline-any cline-neutral"> </span>
|
|
242
|
-
<span class="cline-any cline-yes">
|
|
242
|
+
<span class="cline-any cline-yes">1x</span>
|
|
243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
243
245
|
<span class="cline-any cline-neutral"> </span>
|
|
244
246
|
<span class="cline-any cline-neutral"> </span>
|
|
245
247
|
<span class="cline-any cline-neutral"> </span>
|
|
248
|
+
<span class="cline-any cline-yes">3x</span>
|
|
249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
246
250
|
<span class="cline-any cline-neutral"> </span>
|
|
247
|
-
<span class="cline-any cline-yes">21x</span>
|
|
248
|
-
<span class="cline-any cline-yes">16x</span>
|
|
249
251
|
<span class="cline-any cline-neutral"> </span>
|
|
250
252
|
<span class="cline-any cline-neutral"> </span>
|
|
253
|
+
<span class="cline-any cline-yes">2x</span>
|
|
251
254
|
<span class="cline-any cline-neutral"> </span>
|
|
252
|
-
<span class="cline-any cline-yes">21x</span>
|
|
253
|
-
<span class="cline-any cline-yes">15x</span>
|
|
254
255
|
<span class="cline-any cline-neutral"> </span>
|
|
255
256
|
<span class="cline-any cline-neutral"> </span>
|
|
256
257
|
<span class="cline-any cline-neutral"> </span>
|
|
257
|
-
<span class="cline-any cline-yes">
|
|
258
|
-
<span class="cline-any cline-yes">19x</span>
|
|
258
|
+
<span class="cline-any cline-yes">6x</span>
|
|
259
259
|
<span class="cline-any cline-neutral"> </span>
|
|
260
260
|
<span class="cline-any cline-neutral"> </span>
|
|
261
261
|
<span class="cline-any cline-neutral"> </span>
|
|
262
|
-
<span class="cline-any cline-yes">21x</span>
|
|
263
|
-
<span class="cline-any cline-yes">14x</span>
|
|
264
262
|
<span class="cline-any cline-neutral"> </span>
|
|
263
|
+
<span class="cline-any cline-yes">1x</span>
|
|
265
264
|
<span class="cline-any cline-neutral"> </span>
|
|
266
265
|
<span class="cline-any cline-neutral"> </span>
|
|
267
|
-
<span class="cline-any cline-yes">21x</span>
|
|
268
|
-
<span class="cline-any cline-yes">14x</span>
|
|
269
266
|
<span class="cline-any cline-neutral"> </span>
|
|
270
267
|
<span class="cline-any cline-neutral"> </span>
|
|
268
|
+
<span class="cline-any cline-yes">1x</span>
|
|
271
269
|
<span class="cline-any cline-neutral"> </span>
|
|
272
|
-
<span class="cline-any cline-yes">21x</span>
|
|
273
|
-
<span class="cline-any cline-yes">14x</span>
|
|
274
270
|
<span class="cline-any cline-neutral"> </span>
|
|
275
271
|
<span class="cline-any cline-neutral"> </span>
|
|
276
272
|
<span class="cline-any cline-neutral"> </span>
|
|
277
|
-
<span class="cline-any cline-yes">
|
|
278
|
-
<span class="cline-any cline-yes">14x</span>
|
|
273
|
+
<span class="cline-any cline-yes">1x</span>
|
|
279
274
|
<span class="cline-any cline-neutral"> </span>
|
|
280
275
|
<span class="cline-any cline-neutral"> </span>
|
|
281
276
|
<span class="cline-any cline-neutral"> </span>
|
|
282
|
-
<span class="cline-any cline-yes">21x</span>
|
|
283
|
-
<span class="cline-any cline-yes">2x</span>
|
|
284
277
|
<span class="cline-any cline-neutral"> </span>
|
|
278
|
+
<span class="cline-any cline-yes">1x</span>
|
|
285
279
|
<span class="cline-any cline-neutral"> </span>
|
|
286
280
|
<span class="cline-any cline-neutral"> </span>
|
|
287
281
|
<span class="cline-any cline-neutral"> </span>
|
|
288
|
-
<span class="cline-any cline-
|
|
282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
283
|
+
<span class="cline-any cline-yes">1x</span>
|
|
284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
285
|
+
<span class="cline-any cline-neutral"> </span>
|
|
286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
288
|
+
<span class="cline-any cline-yes">1x</span>
|
|
289
289
|
<span class="cline-any cline-neutral"> </span>
|
|
290
290
|
<span class="cline-any cline-neutral"> </span>
|
|
291
291
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -311,6 +311,26 @@
|
|
|
311
311
|
<span class="cline-any cline-neutral"> </span>
|
|
312
312
|
<span class="cline-any cline-neutral"> </span>
|
|
313
313
|
<span class="cline-any cline-neutral"> </span>
|
|
314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
318
|
+
<span class="cline-any cline-neutral"> </span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
321
|
+
<span class="cline-any cline-neutral"> </span>
|
|
322
|
+
<span class="cline-any cline-neutral"> </span>
|
|
323
|
+
<span class="cline-any cline-neutral"> </span>
|
|
324
|
+
<span class="cline-any cline-neutral"> </span>
|
|
325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
329
|
+
<span class="cline-any cline-neutral"> </span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
314
334
|
<span class="cline-any cline-yes">3x</span>
|
|
315
335
|
<span class="cline-any cline-yes">3x</span>
|
|
316
336
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -331,35 +351,15 @@
|
|
|
331
351
|
<span class="cline-any cline-no"> </span>
|
|
332
352
|
<span class="cline-any cline-neutral"> </span>
|
|
333
353
|
<span class="cline-any cline-neutral"> </span>
|
|
334
|
-
<span class="cline-any cline-yes">6x</span>
|
|
335
|
-
<span class="cline-any cline-yes">4x</span>
|
|
336
|
-
<span class="cline-any cline-yes">4x</span>
|
|
337
|
-
<span class="cline-any cline-neutral"> </span>
|
|
338
|
-
<span class="cline-any cline-yes">4x</span>
|
|
339
|
-
<span class="cline-any cline-yes">4x</span>
|
|
340
|
-
<span class="cline-any cline-neutral"> </span>
|
|
341
|
-
<span class="cline-any cline-yes">2x</span>
|
|
342
|
-
<span class="cline-any cline-yes">1x</span>
|
|
343
|
-
<span class="cline-any cline-neutral"> </span>
|
|
344
354
|
<span class="cline-any cline-yes">3x</span>
|
|
345
|
-
<span class="cline-any cline-yes">2x</span>
|
|
346
355
|
<span class="cline-any cline-yes">1x</span>
|
|
347
356
|
<span class="cline-any cline-neutral"> </span>
|
|
348
|
-
<span class="cline-any cline-yes">3x</span>
|
|
349
|
-
<span class="cline-any cline-yes">1x</span>
|
|
350
|
-
<span class="cline-any cline-yes">3x</span>
|
|
351
|
-
<span class="cline-any cline-no"> </span>
|
|
352
|
-
<span class="cline-any cline-yes">3x</span>
|
|
353
|
-
<span class="cline-any cline-no"> </span>
|
|
354
|
-
<span class="cline-any cline-yes">3x</span>
|
|
355
|
-
<span class="cline-any cline-yes">4x</span>
|
|
356
|
-
<span class="cline-any cline-yes">3x</span>
|
|
357
357
|
<span class="cline-any cline-neutral"> </span>
|
|
358
|
-
<span class="cline-any cline-yes">4x</span>
|
|
359
358
|
<span class="cline-any cline-yes">1x</span>
|
|
360
359
|
<span class="cline-any cline-neutral"> </span>
|
|
360
|
+
<span class="cline-any cline-neutral"> </span>
|
|
361
361
|
<span class="cline-any cline-yes">1x</span>
|
|
362
|
-
<span class="cline-any cline-
|
|
362
|
+
<span class="cline-any cline-neutral"> </span>
|
|
363
363
|
<span class="cline-any cline-neutral"> </span>
|
|
364
364
|
<span class="cline-any cline-yes">3x</span>
|
|
365
365
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -484,10 +484,10 @@ export function getGeneralRecommendations(
|
|
|
484
484
|
maxDepth: number;
|
|
485
485
|
minCohesion: number;
|
|
486
486
|
maxFragmentation: number;
|
|
487
|
-
|
|
488
|
-
): {
|
|
489
|
-
|
|
490
|
-
|
|
487
|
+
}
|
|
488
|
+
): {
|
|
489
|
+
recommendations: string[];
|
|
490
|
+
issues: string[];
|
|
491
491
|
severity: any;
|
|
492
492
|
} {
|
|
493
493
|
const recommendations: string[] = [];
|
|
@@ -505,11 +505,11 @@ export function getGeneralRecommendations(
|
|
|
505
505
|
}
|
|
506
506
|
|
|
507
507
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (metrics.importDepth > thresholds.maxDepth) {
|
|
508
|
-
issues.push(`Deep import chain: ${metrics.importDepth} levels`)
|
|
509
|
-
recommendations.push('Flatten the dependency graph by reducing nesting')
|
|
508
|
+
<span class="cstat-no" title="statement not covered" > issues.push(`Deep import chain: ${metrics.importDepth} levels`);</span>
|
|
509
|
+
<span class="cstat-no" title="statement not covered" > recommendations.push('Flatten the dependency graph by reducing nesting');</span>
|
|
510
510
|
<span class="cstat-no" title="statement not covered" > if (severity !== 'critical') <span class="cstat-no" title="statement not covered" >severity = 'major';</span></span>
|
|
511
|
-
|
|
512
|
-
|
|
511
|
+
}
|
|
512
|
+
|
|
513
513
|
if (metrics.circularDeps.length > 0) {
|
|
514
514
|
issues.push(
|
|
515
515
|
`Circular dependencies detected: ${metrics.circularDeps.length}`
|
|
@@ -547,7 +547,7 @@ export function getGeneralRecommendations(
|
|
|
547
547
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
548
548
|
Code coverage generated by
|
|
549
549
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
550
|
-
at 2026-03-
|
|
550
|
+
at 2026-03-24T11:20:59.666Z
|
|
551
551
|
</div>
|
|
552
552
|
<script src="../prettify.js"></script>
|
|
553
553
|
<script>
|
|
@@ -284,7 +284,7 @@
|
|
|
284
284
|
<span class="cline-any cline-neutral"> </span>
|
|
285
285
|
<span class="cline-any cline-neutral"> </span>
|
|
286
286
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import chalk from 'chalk';
|
|
287
|
-
import { analyzeContext } from '../
|
|
287
|
+
import { analyzeContext } from '../orchestrator';
|
|
288
288
|
import { generateSummary } from '../summary';
|
|
289
289
|
|
|
290
290
|
/**
|
|
@@ -400,7 +400,7 @@ export function displayConsoleReport(
|
|
|
400
400
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
401
401
|
Code coverage generated by
|
|
402
402
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
403
|
-
at 2026-03-
|
|
403
|
+
at 2026-03-24T11:20:59.666Z
|
|
404
404
|
</div>
|
|
405
405
|
<script src="../../prettify.js"></script>
|
|
406
406
|
<script>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>13/13</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>13/13</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -147,16 +147,7 @@
|
|
|
147
147
|
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
148
|
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
149
|
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
159
|
-
<span class="cline-any cline-neutral"> </span>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
160
151
|
<span class="cline-any cline-neutral"> </span>
|
|
161
152
|
<span class="cline-any cline-neutral"> </span>
|
|
162
153
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -173,10 +164,6 @@
|
|
|
173
164
|
<span class="cline-any cline-neutral"> </span>
|
|
174
165
|
<span class="cline-any cline-neutral"> </span>
|
|
175
166
|
<span class="cline-any cline-yes">11x</span>
|
|
176
|
-
<span class="cline-any cline-neutral"> </span>
|
|
177
|
-
<span class="cline-any cline-neutral"> </span>
|
|
178
|
-
<span class="cline-any cline-yes">11x</span>
|
|
179
|
-
<span class="cline-any cline-neutral"> </span>
|
|
180
167
|
<span class="cline-any cline-yes">11x</span>
|
|
181
168
|
<span class="cline-any cline-neutral"> </span>
|
|
182
169
|
<span class="cline-any cline-yes">11x</span>
|
|
@@ -191,11 +178,6 @@
|
|
|
191
178
|
<span class="cline-any cline-neutral"> </span>
|
|
192
179
|
<span class="cline-any cline-neutral"> </span>
|
|
193
180
|
<span class="cline-any cline-yes">11x</span>
|
|
194
|
-
<span class="cline-any cline-neutral"> </span>
|
|
195
|
-
<span class="cline-any cline-neutral"> </span>
|
|
196
|
-
<span class="cline-any cline-neutral"> </span>
|
|
197
|
-
<span class="cline-any cline-neutral"> </span>
|
|
198
|
-
<span class="cline-any cline-neutral"> </span>
|
|
199
181
|
<span class="cline-any cline-yes">11x</span>
|
|
200
182
|
<span class="cline-any cline-yes">10x</span>
|
|
201
183
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -213,27 +195,24 @@
|
|
|
213
195
|
<span class="cline-any cline-neutral"> </span>
|
|
214
196
|
<span class="cline-any cline-neutral"> </span>
|
|
215
197
|
<span class="cline-any cline-neutral"> </span>
|
|
216
|
-
<span class="cline-any cline-neutral"> </span>
|
|
217
|
-
<span class="cline-any cline-neutral"> </span>
|
|
218
198
|
<span class="cline-any cline-yes">1x</span>
|
|
219
199
|
<span class="cline-any cline-neutral"> </span>
|
|
220
200
|
<span class="cline-any cline-neutral"> </span>
|
|
221
201
|
<span class="cline-any cline-neutral"> </span>
|
|
222
202
|
<span class="cline-any cline-neutral"> </span>
|
|
223
203
|
<span class="cline-any cline-neutral"> </span>
|
|
224
|
-
<span class="cline-any cline-yes">11x</span>
|
|
225
|
-
<span class="cline-any cline-yes">2x</span>
|
|
226
204
|
<span class="cline-any cline-neutral"> </span>
|
|
227
205
|
<span class="cline-any cline-neutral"> </span>
|
|
228
206
|
<span class="cline-any cline-neutral"> </span>
|
|
229
207
|
<span class="cline-any cline-neutral"> </span>
|
|
208
|
+
<span class="cline-any cline-yes">11x</span>
|
|
230
209
|
<span class="cline-any cline-yes">1x</span>
|
|
231
210
|
<span class="cline-any cline-neutral"> </span>
|
|
232
211
|
<span class="cline-any cline-neutral"> </span>
|
|
233
212
|
<span class="cline-any cline-neutral"> </span>
|
|
213
|
+
<span class="cline-any cline-yes">2x</span>
|
|
234
214
|
<span class="cline-any cline-neutral"> </span>
|
|
235
215
|
<span class="cline-any cline-neutral"> </span>
|
|
236
|
-
<span class="cline-any cline-yes">11x</span>
|
|
237
216
|
<span class="cline-any cline-neutral"> </span>
|
|
238
217
|
<span class="cline-any cline-neutral"> </span>
|
|
239
218
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -247,13 +226,17 @@
|
|
|
247
226
|
<span class="cline-any cline-neutral"> </span>
|
|
248
227
|
<span class="cline-any cline-neutral"> </span>
|
|
249
228
|
<span class="cline-any cline-neutral"> </span>
|
|
250
|
-
<span class="cline-any cline-neutral"> </span
|
|
229
|
+
<span class="cline-any cline-neutral"> </span>
|
|
230
|
+
<span class="cline-any cline-neutral"> </span>
|
|
231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
233
|
+
<span class="cline-any cline-neutral"> </span>
|
|
234
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { analyzeContext } from '../orchestrator';
|
|
251
235
|
import { generateSummary } from '../summary';
|
|
252
236
|
import {
|
|
253
|
-
|
|
254
|
-
generateStatCards,
|
|
237
|
+
generateIssueSummary,
|
|
255
238
|
generateTable,
|
|
256
|
-
|
|
239
|
+
generateStandardHtmlReport,
|
|
257
240
|
} from '@aiready/core';
|
|
258
241
|
|
|
259
242
|
/**
|
|
@@ -265,13 +248,9 @@ export function generateHTMLReport(
|
|
|
265
248
|
): string {
|
|
266
249
|
const totalIssues =
|
|
267
250
|
summary.criticalIssues + summary.majorIssues + summary.minorIssues;
|
|
268
|
-
|
|
269
|
-
// 'results' may be used in templates later; reference to avoid lint warnings
|
|
270
251
|
void results;
|
|
271
252
|
|
|
272
|
-
const
|
|
273
|
-
|
|
274
|
-
const stats = generateStatCards([
|
|
253
|
+
const stats = [
|
|
275
254
|
{ value: summary.totalFiles, label: 'Files Analyzed' },
|
|
276
255
|
{ value: summary.totalTokens.toLocaleString(), label: 'Total Tokens' },
|
|
277
256
|
{ value: summary.avgContextBudget.toFixed(0), label: 'Avg Context Budget' },
|
|
@@ -280,64 +259,61 @@ export function generateHTMLReport(
|
|
|
280
259
|
label: 'Total Issues',
|
|
281
260
|
color: totalIssues > 0 ? '#f39c12' : undefined,
|
|
282
261
|
},
|
|
283
|
-
]
|
|
284
|
-
|
|
285
|
-
let body = `<div style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 30px; border-radius: 8px; margin-bottom: 30px;">
|
|
286
|
-
<h1 style="border: none; color: white; margin: 0;">🔍 AIReady Context Analysis Report</h1>
|
|
287
|
-
<p style="margin: 10px 0 0 0;">Generated on ${new Date().toLocaleString()}</p>
|
|
288
|
-
</div>
|
|
289
|
-
${stats}`;
|
|
262
|
+
];
|
|
290
263
|
|
|
264
|
+
const sections: any[] = [];
|
|
291
265
|
if (totalIssues > 0) {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
266
|
+
sections.push({
|
|
267
|
+
title: '⚠️ Issues Summary',
|
|
268
|
+
content: generateIssueSummary(
|
|
269
|
+
summary.criticalIssues,
|
|
270
|
+
summary.majorIssues,
|
|
271
|
+
summary.minorIssues,
|
|
272
|
+
summary.totalPotentialSavings
|
|
273
|
+
),
|
|
274
|
+
});
|
|
301
275
|
}
|
|
302
276
|
|
|
303
277
|
if (summary.fragmentedModules.length > 0) {
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
278
|
+
sections.push({
|
|
279
|
+
title: '🧩 Fragmented Modules',
|
|
280
|
+
content: generateTable({
|
|
281
|
+
headers: ['Domain', 'Files', 'Fragmentation', 'Token Cost'],
|
|
282
|
+
rows: summary.fragmentedModules.map((m) => [
|
|
283
|
+
m.domain,
|
|
284
|
+
String(m.files.length),
|
|
285
|
+
`${(m.fragmentationScore * 100).toFixed(0)}%`,
|
|
286
|
+
m.totalTokens.toLocaleString(),
|
|
287
|
+
]),
|
|
288
|
+
}),
|
|
289
|
+
});
|
|
314
290
|
}
|
|
315
291
|
|
|
316
292
|
if (summary.topExpensiveFiles.length > 0) {
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
293
|
+
sections.push({
|
|
294
|
+
title: '💸 Most Expensive Files',
|
|
295
|
+
content: generateTable({
|
|
296
|
+
headers: ['File', 'Context Budget', 'Severity'],
|
|
297
|
+
rows: summary.topExpensiveFiles.map((f) => [
|
|
298
|
+
f.file,
|
|
299
|
+
`${f.contextBudget.toLocaleString()} tokens`,
|
|
300
|
+
`<span class="issue-${f.severity}">${f.severity.toUpperCase()}</span>`,
|
|
301
|
+
]),
|
|
302
|
+
}),
|
|
303
|
+
});
|
|
326
304
|
}
|
|
327
305
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
</body>
|
|
340
|
-
</html>`;
|
|
306
|
+
return generateStandardHtmlReport(
|
|
307
|
+
{
|
|
308
|
+
title: 'Context Analysis Report',
|
|
309
|
+
packageName: 'context-analyzer',
|
|
310
|
+
packageUrl: 'https://github.com/caopengau/aiready-context-analyzer',
|
|
311
|
+
bugUrl: 'https://github.com/caopengau/aiready-context-analyzer/issues',
|
|
312
|
+
emoji: '🧠',
|
|
313
|
+
},
|
|
314
|
+
stats,
|
|
315
|
+
sections
|
|
316
|
+
);
|
|
341
317
|
}
|
|
342
318
|
</pre></td></tr></table></pre>
|
|
343
319
|
|
|
@@ -346,7 +322,7 @@ ${stats}`;
|
|
|
346
322
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
347
323
|
Code coverage generated by
|
|
348
324
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
349
|
-
at 2026-03-
|
|
325
|
+
at 2026-03-24T11:20:59.666Z
|
|
350
326
|
</div>
|
|
351
327
|
<script src="../../prettify.js"></script>
|
|
352
328
|
<script>
|