@aiready/context-analyzer 0.21.22 → 0.21.23
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 +26 -25
- package/.turbo/turbo-lint.log +5 -5
- package/.turbo/turbo-test.log +104 -41
- package/coverage/clover.xml +2615 -1242
- package/coverage/coverage-final.json +30 -13
- package/coverage/dist/chunk-64U3PNO3.mjs.html +367 -0
- package/coverage/dist/chunk-J3MUOWHC.mjs.html +5326 -0
- package/coverage/dist/index.html +146 -0
- package/coverage/{classifier.ts.html → dist/index.mjs.html} +537 -912
- package/coverage/index.html +84 -189
- package/coverage/src/analyzer.ts.html +88 -0
- package/coverage/src/analyzers/index.html +116 -0
- package/coverage/src/analyzers/python-context.ts.html +910 -0
- package/coverage/{ast-utils.ts.html → src/ast-utils.ts.html} +84 -54
- package/coverage/src/classifier.ts.html +892 -0
- package/coverage/src/classify/classification-patterns.ts.html +307 -0
- package/coverage/src/classify/file-classifiers.ts.html +973 -0
- package/coverage/src/classify/index.html +131 -0
- package/coverage/{cluster-detector.ts.html → src/cluster-detector.ts.html} +154 -91
- package/coverage/{defaults.ts.html → src/defaults.ts.html} +74 -65
- package/coverage/{graph-builder.ts.html → src/graph-builder.ts.html} +268 -229
- package/coverage/src/index.html +341 -0
- package/coverage/{index.ts.html → src/index.ts.html} +70 -13
- package/coverage/{scoring.ts.html → src/issue-analyzer.ts.html} +201 -261
- package/coverage/src/mapper.ts.html +439 -0
- package/coverage/{metrics.ts.html → src/metrics.ts.html} +201 -132
- package/coverage/src/orchestrator.ts.html +493 -0
- package/coverage/{provider.ts.html → src/provider.ts.html} +21 -21
- package/coverage/{remediation.ts.html → src/remediation.ts.html} +112 -52
- package/coverage/src/report/console-report.ts.html +415 -0
- package/coverage/src/report/html-report.ts.html +361 -0
- package/coverage/src/report/index.html +146 -0
- package/coverage/src/report/interactive-setup.ts.html +373 -0
- package/coverage/src/scoring.ts.html +895 -0
- package/coverage/src/semantic/co-usage.ts.html +340 -0
- package/coverage/src/semantic/consolidation.ts.html +223 -0
- package/coverage/src/semantic/domain-inference.ts.html +859 -0
- package/coverage/src/semantic/index.html +161 -0
- package/coverage/src/semantic/type-graph.ts.html +163 -0
- package/coverage/{summary.ts.html → src/summary.ts.html} +155 -275
- package/coverage/{types.ts.html → src/types.ts.html} +133 -31
- package/coverage/src/utils/dependency-graph-utils.ts.html +463 -0
- package/coverage/src/utils/index.html +131 -0
- package/coverage/src/utils/string-utils.ts.html +148 -0
- package/dist/chunk-J3MUOWHC.mjs +1747 -0
- package/dist/cli.js +59 -171
- package/dist/cli.mjs +1 -1
- package/dist/index.js +55 -167
- package/dist/index.mjs +1 -1
- package/package.json +2 -2
- package/src/__tests__/consolidation.test.ts +247 -0
- package/src/__tests__/defaults.test.ts +121 -0
- package/src/__tests__/domain-inference.test.ts +420 -0
- package/src/__tests__/issue-analyzer.test.ts +155 -0
- package/src/__tests__/orchestrator.test.ts +143 -0
- package/src/__tests__/python-context.test.ts +98 -0
- package/src/__tests__/report/console-report.test.ts +292 -0
- package/src/__tests__/report/html-report.test.ts +232 -0
- package/src/report/html-report.ts +58 -174
- package/coverage/analyzer.ts.html +0 -1369
- package/coverage/semantic-analysis.ts.html +0 -1201
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
<html lang="en">
|
|
4
4
|
|
|
5
5
|
<head>
|
|
6
|
-
<title>Code coverage report for types.ts</title>
|
|
6
|
+
<title>Code coverage report for src/types.ts</title>
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
|
|
8
|
+
<link rel="stylesheet" href="../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
|
11
11
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
12
|
<style type='text/css'>
|
|
13
13
|
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(sort-arrow-sprite.png);
|
|
14
|
+
background-image: url(../sort-arrow-sprite.png);
|
|
15
15
|
}
|
|
16
16
|
</style>
|
|
17
17
|
</head>
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<body>
|
|
20
20
|
<div class='wrapper'>
|
|
21
21
|
<div class='pad1'>
|
|
22
|
-
<h1><a href="index.html">All files</a> types.ts</h1>
|
|
22
|
+
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> types.ts</h1>
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
@@ -225,7 +225,75 @@
|
|
|
225
225
|
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
226
|
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
227
|
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
-
<a name='L163'></a><a href='#L163'>163</a
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
263
|
+
<span class="cline-any cline-neutral"> </span>
|
|
264
|
+
<span class="cline-any cline-neutral"> </span>
|
|
265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
266
|
+
<span class="cline-any cline-neutral"> </span>
|
|
267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
268
|
+
<span class="cline-any cline-neutral"> </span>
|
|
269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
271
|
+
<span class="cline-any cline-neutral"> </span>
|
|
272
|
+
<span class="cline-any cline-neutral"> </span>
|
|
273
|
+
<span class="cline-any cline-neutral"> </span>
|
|
274
|
+
<span class="cline-any cline-neutral"> </span>
|
|
275
|
+
<span class="cline-any cline-neutral"> </span>
|
|
276
|
+
<span class="cline-any cline-neutral"> </span>
|
|
277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
278
|
+
<span class="cline-any cline-neutral"> </span>
|
|
279
|
+
<span class="cline-any cline-neutral"> </span>
|
|
280
|
+
<span class="cline-any cline-neutral"> </span>
|
|
281
|
+
<span class="cline-any cline-neutral"> </span>
|
|
282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
283
|
+
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
289
|
+
<span class="cline-any cline-neutral"> </span>
|
|
290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
292
|
+
<span class="cline-any cline-neutral"> </span>
|
|
293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
296
|
+
<span class="cline-any cline-neutral"> </span>
|
|
229
297
|
<span class="cline-any cline-neutral"> </span>
|
|
230
298
|
<span class="cline-any cline-neutral"> </span>
|
|
231
299
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -389,46 +457,78 @@
|
|
|
389
457
|
<span class="cline-any cline-neutral"> </span>
|
|
390
458
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { ScanOptions, Severity } from '@aiready/core';
|
|
391
459
|
|
|
460
|
+
/**
|
|
461
|
+
* Options for the Context Analyzer tool.
|
|
462
|
+
* Controls thresholds for import depth, context budget, and cohesion.
|
|
463
|
+
*/
|
|
392
464
|
export interface ContextAnalyzerOptions extends ScanOptions {
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
465
|
+
/** Maximum acceptable import depth (default: 5) */
|
|
466
|
+
maxDepth?: number;
|
|
467
|
+
/** Maximum acceptable token budget for a single context (default: 25000) */
|
|
468
|
+
maxContextBudget?: number;
|
|
469
|
+
/** Minimum acceptable cohesion score between 0 and 1 (default: 0.6) */
|
|
470
|
+
minCohesion?: number;
|
|
471
|
+
/** Maximum acceptable fragmentation score between 0 and 1 (default: 0.5) */
|
|
472
|
+
maxFragmentation?: number;
|
|
473
|
+
/** Analysis focus area: fragmentation, cohesion, depth, or all (default: 'all') */
|
|
474
|
+
focus?: 'fragmentation' | 'cohesion' | 'depth' | 'all';
|
|
475
|
+
/** Whether to include node_modules in the analysis (default: false) */
|
|
476
|
+
includeNodeModules?: boolean;
|
|
399
477
|
}
|
|
400
478
|
|
|
479
|
+
/**
|
|
480
|
+
* The result of a context analysis for a single file or module.
|
|
481
|
+
* Includes metrics for tokens, dependencies, cohesion, and AI impact.
|
|
482
|
+
*/
|
|
401
483
|
export interface ContextAnalysisResult {
|
|
484
|
+
/** The file path being analyzed */
|
|
402
485
|
file: string;
|
|
403
486
|
|
|
404
487
|
// Basic metrics
|
|
405
|
-
|
|
488
|
+
/** Total number of tokens in this file */
|
|
489
|
+
tokenCost: number;
|
|
490
|
+
/** Total lines of code in the file */
|
|
406
491
|
linesOfCode: number;
|
|
407
492
|
|
|
408
493
|
// Dependency analysis
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
494
|
+
/** Maximum depth of the import tree for this file */
|
|
495
|
+
importDepth: number;
|
|
496
|
+
/** Total number of transitive dependencies */
|
|
497
|
+
dependencyCount: number;
|
|
498
|
+
/** List of all files in the dependency tree */
|
|
499
|
+
dependencyList: string[];
|
|
500
|
+
/** Detected circular dependency chains */
|
|
501
|
+
circularDeps: string[][];
|
|
413
502
|
|
|
414
503
|
// Cohesion analysis
|
|
415
|
-
|
|
416
|
-
|
|
504
|
+
/** Cohesion score from 0 to 1 (1 is perfect cohesion) */
|
|
505
|
+
cohesionScore: number;
|
|
506
|
+
/** Detected domain categories for the module */
|
|
507
|
+
domains: string[];
|
|
508
|
+
/** Number of exported symbols */
|
|
417
509
|
exportCount: number;
|
|
418
510
|
|
|
419
511
|
// AI context impact
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
512
|
+
/** Total tokens required to understand this file and all its dependencies */
|
|
513
|
+
contextBudget: number;
|
|
514
|
+
/** Fragmentation score from 0 to 1 (0 is well-grouped) */
|
|
515
|
+
fragmentationScore: number;
|
|
516
|
+
/** List of files that should be loaded together for full context */
|
|
517
|
+
relatedFiles: string[];
|
|
423
518
|
|
|
424
519
|
// File classification (NEW)
|
|
425
|
-
|
|
520
|
+
/** The semantic classification of the file (e.g. 'barrel-export', 'service-file') */
|
|
521
|
+
fileClassification: FileClassification;
|
|
426
522
|
|
|
427
523
|
// Recommendations
|
|
524
|
+
/** Overall severity of identified issues */
|
|
428
525
|
severity: Severity | 'critical' | 'major' | 'minor' | 'info';
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
526
|
+
/** List of specific structural problems found */
|
|
527
|
+
issues: string[];
|
|
528
|
+
/** Actionable suggestions for improving context readiness */
|
|
529
|
+
recommendations: string[];
|
|
530
|
+
/** Estimated tokens that could be saved by following recommendations */
|
|
531
|
+
potentialSavings: number;
|
|
432
532
|
}
|
|
433
533
|
|
|
434
534
|
/**
|
|
@@ -437,6 +537,7 @@ export interface ContextAnalysisResult {
|
|
|
437
537
|
*/
|
|
438
538
|
export type FileClassification =
|
|
439
539
|
| 'barrel-export' // Re-exports from other modules (index.ts files)
|
|
540
|
+
| 'boilerplate-barrel' // Redundant barrel file with no added value (architectural theater)
|
|
440
541
|
| 'type-definition' // Primarily type/interface definitions
|
|
441
542
|
| 'cohesive-module' // Single domain, high cohesion (acceptable large files)
|
|
442
543
|
| 'utility-module' // Utility/helper files with cohesive purpose despite multi-domain
|
|
@@ -445,6 +546,7 @@ export type FileClassification =
|
|
|
445
546
|
| 'email-template' // Email templates/layouts with structural cohesion
|
|
446
547
|
| 'parser-file' // Parser/transformer files with single transformation purpose
|
|
447
548
|
| 'nextjs-page' // Next.js App Router page with SEO/structured data exports
|
|
549
|
+
| 'spoke-module' // Intentional monorepo spoke package file
|
|
448
550
|
| 'mixed-concerns' // Multiple domains, potential refactoring candidate
|
|
449
551
|
| 'unknown'; // Unable to classify
|
|
450
552
|
|
|
@@ -556,16 +658,16 @@ export interface TypeDependency {
|
|
|
556
658
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
557
659
|
Code coverage generated by
|
|
558
660
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
559
|
-
at 2026-03-
|
|
661
|
+
at 2026-03-21T12:52:37.698Z
|
|
560
662
|
</div>
|
|
561
|
-
<script src="prettify.js"></script>
|
|
663
|
+
<script src="../prettify.js"></script>
|
|
562
664
|
<script>
|
|
563
665
|
window.onload = function () {
|
|
564
666
|
prettyPrint();
|
|
565
667
|
};
|
|
566
668
|
</script>
|
|
567
|
-
<script src="sorter.js"></script>
|
|
568
|
-
<script src="block-navigation.js"></script>
|
|
669
|
+
<script src="../sorter.js"></script>
|
|
670
|
+
<script src="../block-navigation.js"></script>
|
|
569
671
|
</body>
|
|
570
672
|
</html>
|
|
571
673
|
|