@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
|
@@ -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">20.83% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>5/24</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">20% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>2/10</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">33.33% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>6
|
|
42
|
+
<span class='fraction'>2/6</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">22.22% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>4/18</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -147,32 +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>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a></td><td class="line-coverage quiet"><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>
|
|
176
151
|
<span class="cline-any cline-neutral"> </span>
|
|
177
152
|
<span class="cline-any cline-neutral"> </span>
|
|
178
153
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -185,40 +160,25 @@
|
|
|
185
160
|
<span class="cline-any cline-neutral"> </span>
|
|
186
161
|
<span class="cline-any cline-neutral"> </span>
|
|
187
162
|
<span class="cline-any cline-neutral"> </span>
|
|
188
|
-
<span class="cline-any cline-yes">33x</span>
|
|
189
|
-
<span class="cline-any cline-yes">33x</span>
|
|
190
163
|
<span class="cline-any cline-neutral"> </span>
|
|
191
|
-
<span class="cline-any cline-yes">33x</span>
|
|
192
|
-
<span class="cline-any cline-neutral"> </span>
|
|
193
|
-
<span class="cline-any cline-neutral"> </span>
|
|
194
|
-
<span class="cline-any cline-no"> </span>
|
|
195
|
-
<span class="cline-any cline-yes">39x</span>
|
|
196
|
-
<span class="cline-any cline-yes">72x</span>
|
|
197
|
-
<span class="cline-any cline-yes">90x</span>
|
|
198
|
-
<span class="cline-any cline-yes">72x</span>
|
|
199
|
-
<span class="cline-any cline-neutral"> </span>
|
|
200
|
-
<span class="cline-any cline-neutral"> </span>
|
|
201
|
-
<span class="cline-any cline-yes">33x</span>
|
|
202
|
-
<span class="cline-any cline-neutral"> </span>
|
|
203
|
-
<span class="cline-any cline-neutral"> </span>
|
|
204
|
-
<span class="cline-any cline-yes">57x</span>
|
|
205
164
|
<span class="cline-any cline-neutral"> </span>
|
|
206
165
|
<span class="cline-any cline-neutral"> </span>
|
|
207
166
|
<span class="cline-any cline-neutral"> </span>
|
|
208
167
|
<span class="cline-any cline-neutral"> </span>
|
|
209
168
|
<span class="cline-any cline-neutral"> </span>
|
|
210
169
|
<span class="cline-any cline-neutral"> </span>
|
|
170
|
+
<span class="cline-any cline-yes">39x</span>
|
|
171
|
+
<span class="cline-any cline-yes">39x</span>
|
|
211
172
|
<span class="cline-any cline-neutral"> </span>
|
|
212
173
|
<span class="cline-any cline-yes">39x</span>
|
|
213
174
|
<span class="cline-any cline-neutral"> </span>
|
|
214
175
|
<span class="cline-any cline-neutral"> </span>
|
|
176
|
+
<span class="cline-any cline-no"> </span>
|
|
215
177
|
<span class="cline-any cline-neutral"> </span>
|
|
216
178
|
<span class="cline-any cline-neutral"> </span>
|
|
179
|
+
<span class="cline-any cline-yes">57x</span>
|
|
217
180
|
<span class="cline-any cline-neutral"> </span>
|
|
218
181
|
<span class="cline-any cline-neutral"> </span>
|
|
219
|
-
<span class="cline-any cline-no"> </span>
|
|
220
|
-
<span class="cline-any cline-yes">44x</span>
|
|
221
|
-
<span class="cline-any cline-yes">5x</span>
|
|
222
182
|
<span class="cline-any cline-neutral"> </span>
|
|
223
183
|
<span class="cline-any cline-neutral"> </span>
|
|
224
184
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -227,50 +187,40 @@
|
|
|
227
187
|
<span class="cline-any cline-neutral"> </span>
|
|
228
188
|
<span class="cline-any cline-neutral"> </span>
|
|
229
189
|
<span class="cline-any cline-neutral"> </span>
|
|
230
|
-
<span class="cline-any cline-yes">10x</span>
|
|
231
|
-
<span class="cline-any cline-yes">5x</span>
|
|
232
190
|
<span class="cline-any cline-neutral"> </span>
|
|
233
191
|
<span class="cline-any cline-neutral"> </span>
|
|
234
192
|
<span class="cline-any cline-neutral"> </span>
|
|
235
193
|
<span class="cline-any cline-neutral"> </span>
|
|
194
|
+
<span class="cline-any cline-no"> </span>
|
|
236
195
|
<span class="cline-any cline-neutral"> </span>
|
|
237
196
|
<span class="cline-any cline-neutral"> </span>
|
|
238
197
|
<span class="cline-any cline-neutral"> </span>
|
|
239
198
|
<span class="cline-any cline-neutral"> </span>
|
|
240
199
|
<span class="cline-any cline-neutral"> </span>
|
|
241
200
|
<span class="cline-any cline-neutral"> </span>
|
|
242
|
-
<span class="cline-any cline-yes">5x</span>
|
|
243
201
|
<span class="cline-any cline-neutral"> </span>
|
|
244
202
|
<span class="cline-any cline-no"> </span>
|
|
245
203
|
<span class="cline-any cline-neutral"> </span>
|
|
246
|
-
<span class="cline-any cline-neutral"> </span>
|
|
247
|
-
<span class="cline-any cline-neutral"> </span>
|
|
248
204
|
<span class="cline-any cline-no"> </span>
|
|
249
205
|
<span class="cline-any cline-neutral"> </span>
|
|
250
206
|
<span class="cline-any cline-neutral"> </span>
|
|
251
207
|
<span class="cline-any cline-neutral"> </span>
|
|
252
208
|
<span class="cline-any cline-no"> </span>
|
|
253
209
|
<span class="cline-any cline-neutral"> </span>
|
|
254
|
-
<span class="cline-any cline-no"> </span>
|
|
255
210
|
<span class="cline-any cline-neutral"> </span>
|
|
256
211
|
<span class="cline-any cline-neutral"> </span>
|
|
257
|
-
<span class="cline-any cline-no"> </span>
|
|
258
|
-
<span class="cline-any cline-no"> </span>
|
|
259
|
-
<span class="cline-any cline-no"> </span>
|
|
260
|
-
<span class="cline-any cline-no"> </span>
|
|
261
212
|
<span class="cline-any cline-neutral"> </span>
|
|
262
213
|
<span class="cline-any cline-neutral"> </span>
|
|
263
214
|
<span class="cline-any cline-neutral"> </span>
|
|
264
|
-
<span class="cline-any cline-
|
|
265
|
-
<span class="cline-any cline-no"> </span>
|
|
215
|
+
<span class="cline-any cline-neutral"> </span>
|
|
266
216
|
<span class="cline-any cline-neutral"> </span>
|
|
267
217
|
<span class="cline-any cline-no"> </span>
|
|
268
|
-
<span class="cline-any cline-
|
|
269
|
-
<span class="cline-any cline-no"> </span>
|
|
270
|
-
<span class="cline-any cline-no"> </span>
|
|
218
|
+
<span class="cline-any cline-neutral"> </span>
|
|
271
219
|
<span class="cline-any cline-no"> </span>
|
|
272
220
|
<span class="cline-any cline-no"> </span>
|
|
273
221
|
<span class="cline-any cline-neutral"> </span>
|
|
222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
223
|
+
<span class="cline-any cline-neutral"> </span>
|
|
274
224
|
<span class="cline-any cline-no"> </span>
|
|
275
225
|
<span class="cline-any cline-no"> </span>
|
|
276
226
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -281,7 +231,7 @@
|
|
|
281
231
|
<span class="cline-any cline-no"> </span>
|
|
282
232
|
<span class="cline-any cline-no"> </span>
|
|
283
233
|
<span class="cline-any cline-neutral"> </span>
|
|
284
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { parseFileExports } from '@aiready/core';
|
|
234
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { parseFileExports, isTestFile } from '@aiready/core';
|
|
285
235
|
import type { ExportInfo } from './types';
|
|
286
236
|
import { inferDomain, extractExports } from './semantic/domain-inference';
|
|
287
237
|
|
|
@@ -295,19 +245,19 @@ import { inferDomain, extractExports } from './semantic/domain-inference';
|
|
|
295
245
|
* @returns Array of high-fidelity export metadata.
|
|
296
246
|
* @lastUpdated 2026-03-18
|
|
297
247
|
*/
|
|
298
|
-
export function extractExportsWithAST(
|
|
248
|
+
export async function extractExportsWithAST(
|
|
299
249
|
content: string,
|
|
300
|
-
|
|
250
|
+
filePath: string,
|
|
301
251
|
domainOptions?: { domainKeywords?: string[] },
|
|
302
252
|
fileImports?: string[]
|
|
303
|
-
):
|
|
253
|
+
): Promise<ExportInfo[]> {
|
|
304
254
|
try {
|
|
305
|
-
const { exports: astExports } = parseFileExports(content, filePath);
|
|
255
|
+
const { exports: astExports } = await parseFileExports(content, filePath);
|
|
306
256
|
|
|
307
257
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (astExports.length === 0 && <span class="branch-1 cbranch-no" title="branch not covered" >!isTestFile(filePath)) {</span>
|
|
308
258
|
// If AST fails to find anything, we still use regex as a last resort
|
|
309
259
|
// ONLY for unknown file types or very complex macros
|
|
310
|
-
return extractExports(content, filePath, domainOptions, fileImports)
|
|
260
|
+
<span class="cstat-no" title="statement not covered" > return extractExports(content, filePath, domainOptions, fileImports);</span>
|
|
311
261
|
}
|
|
312
262
|
|
|
313
263
|
return astExports.map((exp) => ({
|
|
@@ -330,31 +280,6 @@ export function extractExportsWithAST(
|
|
|
330
280
|
}
|
|
331
281
|
|
|
332
282
|
/**
|
|
333
|
-
* Check if a file is a test, mock, or fixture file.
|
|
334
|
-
*
|
|
335
|
-
* @param filePath - The path to the file to check.
|
|
336
|
-
* @returns True if the file matches test/mock patterns.
|
|
337
|
-
*/
|
|
338
|
-
export function isTestFile(filePath: string): boolean {
|
|
339
|
-
const lower = filePath.toLowerCase();
|
|
340
|
-
return (
|
|
341
|
-
lower.includes('.test.') ||
|
|
342
|
-
lower.includes('.spec.') ||
|
|
343
|
-
lower.includes('/__tests__/') ||
|
|
344
|
-
lower.includes('/tests/') ||
|
|
345
|
-
lower.includes('/test/') ||
|
|
346
|
-
lower.includes('test-') ||
|
|
347
|
-
lower.includes('-test') ||
|
|
348
|
-
lower.includes('/__mocks__/') ||
|
|
349
|
-
lower.includes('/mocks/') ||
|
|
350
|
-
lower.includ<span class="fstat-no" title="function not covered" >es('/fixtures/') ||</span>
|
|
351
|
-
lower.includes('.mock.') ||
|
|
352
|
-
lower.includes('.fixture.') ||
|
|
353
|
-
lower.includes('/tes<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >t-</span>utils/')</span>
|
|
354
|
-
);
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
/**<span class="cstat-no" title="statement not covered" ></span>
|
|
358
283
|
* Heuristic to check if all exports share a common entity noun
|
|
359
284
|
*/
|
|
360
285
|
export function <span class="fstat-no" title="function not covered" >allExportsShareEntityNoun(e</span>xports: ExportInfo[]): boolean {
|
|
@@ -363,22 +288,22 @@ export function <span class="fstat-no" title="function not covered" >allExportsS
|
|
|
363
288
|
const getEntityNoun = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(n</span>ame: string): string | null => {</span>
|
|
364
289
|
// Basic heuristic: last part of camelCase name often is the entity
|
|
365
290
|
// e.g. createOrder -> order, getUserProfile -> profile
|
|
366
|
-
// But we also
|
|
291
|
+
// But we also look for common domain nouns in the middle
|
|
367
292
|
const commonNouns = <span class="cstat-no" title="statement not covered" >[</span>
|
|
368
|
-
|
|
369
|
-
|
|
293
|
+
'user',
|
|
294
|
+
'order',
|
|
370
295
|
'product',
|
|
371
296
|
'session',
|
|
372
297
|
'account',
|
|
373
|
-
'receipt'
|
|
374
|
-
|
|
298
|
+
'receipt',
|
|
299
|
+
'token',
|
|
375
300
|
];
|
|
376
301
|
const lower = <span class="cstat-no" title="statement not covered" >name.toLowerCase();</span>
|
|
377
|
-
|
|
378
|
-
<span class="cstat-no" title="statement not covered"
|
|
302
|
+
|
|
303
|
+
<span class="cstat-no" title="statement not covered" > for (const noun of commonNouns) {</span>
|
|
379
304
|
<span class="cstat-no" title="statement not covered" > if (lower.includes(noun)) <span class="cstat-no" title="statement not covered" >return noun;</span></span>
|
|
380
|
-
}
|
|
381
|
-
|
|
305
|
+
}
|
|
306
|
+
|
|
382
307
|
// Fallback: split by capital letters and take the last part
|
|
383
308
|
const parts = <span class="cstat-no" title="statement not covered" >name.split(/(?=[A-Z])/);</span>
|
|
384
309
|
<span class="cstat-no" title="statement not covered" > return parts[parts.length - 1].toLowerCase();</span>
|
|
@@ -397,7 +322,7 @@ export function <span class="fstat-no" title="function not covered" >allExportsS
|
|
|
397
322
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
398
323
|
Code coverage generated by
|
|
399
324
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
400
|
-
at 2026-03-
|
|
325
|
+
at 2026-03-24T11:20:59.666Z
|
|
401
326
|
</div>
|
|
402
327
|
<script src="../prettify.js"></script>
|
|
403
328
|
<script>
|