@aiready/core 0.23.2 → 0.23.4
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/dist/__tests__/parser-factory.test.d.ts +1 -1
- package/dist/__tests__/parser-factory.test.js +62 -50
- package/dist/__tests__/python-parser.test.d.ts +1 -1
- package/dist/__tests__/python-parser.test.js +111 -109
- package/dist/__tests__/scoring.test.d.ts +1 -1
- package/dist/__tests__/scoring.test.js +193 -176
- package/dist/chunk-3YI4IS3D.mjs +191 -173
- package/dist/chunk-5HIXDC3X.mjs +273 -251
- package/dist/chunk-5V3L53AE.mjs +805 -0
- package/dist/chunk-CKVKHN3G.mjs +228 -211
- package/dist/chunk-COHIBX3Q.mjs +213 -195
- package/dist/chunk-CWRCDSKZ.mjs +91 -82
- package/dist/chunk-D3D3NCRR.mjs +147 -129
- package/dist/chunk-HCFYP7UD.mjs +805 -0
- package/dist/chunk-HFLFBA6F.mjs +79 -72
- package/dist/chunk-HKSARRCD.mjs +66 -58
- package/dist/chunk-JJ5JL5FX.mjs +91 -82
- package/dist/chunk-KDSTXVLQ.mjs +724 -0
- package/dist/chunk-KI7XORTN.mjs +91 -82
- package/dist/chunk-LTMHFNFK.mjs +690 -0
- package/dist/chunk-LTNXTXRI.mjs +228 -211
- package/dist/chunk-M22BXHBR.mjs +805 -0
- package/dist/chunk-MH3A3LX6.mjs +200 -182
- package/dist/chunk-NGHT7JOG.mjs +697 -0
- package/dist/chunk-OQ6IGDXG.mjs +147 -129
- package/dist/chunk-QAFB3HXQ.mjs +181 -165
- package/dist/chunk-QQBKXHLU.mjs +678 -0
- package/dist/chunk-RDHYGES7.mjs +678 -0
- package/dist/chunk-SWTDBVYJ.mjs +228 -213
- package/dist/chunk-UIWL5JQB.mjs +79 -72
- package/dist/chunk-UQGI67WR.mjs +79 -72
- package/dist/chunk-UTZOO4XO.mjs +147 -131
- package/dist/chunk-X4F46I5L.mjs +213 -195
- package/dist/chunk-XKK7YHPX.mjs +204 -186
- package/dist/chunk-YCA4FTEK.mjs +190 -172
- package/dist/chunk-ZSZRRTJM.mjs +719 -0
- package/dist/client-BgmiMoil.d.mts +1344 -0
- package/dist/client-BgmiMoil.d.ts +1344 -0
- package/dist/client-BxGrPuuN.d.mts +1191 -0
- package/dist/client-BxGrPuuN.d.ts +1191 -0
- package/dist/client-D-cn9ydj.d.mts +1136 -0
- package/dist/client-D-cn9ydj.d.ts +1136 -0
- package/dist/client-D9seCH4K.d.mts +1334 -0
- package/dist/client-D9seCH4K.d.ts +1334 -0
- package/dist/client-DIXIh7rw.d.mts +1193 -0
- package/dist/client-DIXIh7rw.d.ts +1193 -0
- package/dist/client-DVHXWOHw.d.mts +1245 -0
- package/dist/client-DVHXWOHw.d.ts +1245 -0
- package/dist/client.d.mts +2 -1098
- package/dist/client.d.ts +2 -1098
- package/dist/client.js +23 -43
- package/dist/client.mjs +3 -25
- package/dist/index.d.mts +329 -107
- package/dist/index.d.ts +329 -107
- package/dist/index.js +329 -340
- package/dist/index.mjs +305 -322
- package/dist/parsers/parser-factory.d.ts +45 -45
- package/dist/parsers/parser-factory.js +86 -84
- package/dist/parsers/python-parser.d.ts +33 -28
- package/dist/parsers/python-parser.js +224 -222
- package/dist/parsers/typescript-parser.d.ts +15 -10
- package/dist/parsers/typescript-parser.js +223 -197
- package/dist/scoring.d.ts +59 -49
- package/dist/scoring.js +129 -127
- package/dist/types/language.d.ts +104 -93
- package/dist/types/language.js +23 -23
- package/dist/types.d.ts +105 -87
- package/dist/types.js +1 -1
- package/dist/utils/ast-parser.d.ts +42 -33
- package/dist/utils/ast-parser.js +159 -162
- package/dist/utils/cli-helpers.d.ts +27 -10
- package/dist/utils/cli-helpers.js +45 -43
- package/dist/utils/config.d.ts +8 -3
- package/dist/utils/config.js +67 -69
- package/dist/utils/file-scanner.d.ts +1 -1
- package/dist/utils/file-scanner.js +80 -76
- package/dist/utils/metrics.d.ts +1 -1
- package/dist/utils/metrics.js +2 -2
- package/package.json +1 -1
package/dist/client.d.mts
CHANGED
|
@@ -1,1098 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Severity levels for all AIReady issues.
|
|
5
|
-
*/
|
|
6
|
-
declare enum Severity {
|
|
7
|
-
Critical = "critical",
|
|
8
|
-
Major = "major",
|
|
9
|
-
Minor = "minor",
|
|
10
|
-
Info = "info"
|
|
11
|
-
}
|
|
12
|
-
declare const SeveritySchema: z.ZodEnum<typeof Severity>;
|
|
13
|
-
/**
|
|
14
|
-
* Canonical Tool Names (IDs)
|
|
15
|
-
* Used everywhere as the single source of truth for tool identification.
|
|
16
|
-
*/
|
|
17
|
-
declare enum ToolName {
|
|
18
|
-
PatternDetect = "pattern-detect",
|
|
19
|
-
ContextAnalyzer = "context-analyzer",
|
|
20
|
-
NamingConsistency = "naming-consistency",
|
|
21
|
-
AiSignalClarity = "ai-signal-clarity",
|
|
22
|
-
AgentGrounding = "agent-grounding",
|
|
23
|
-
TestabilityIndex = "testability-index",
|
|
24
|
-
DocDrift = "doc-drift",
|
|
25
|
-
DependencyHealth = "dependency-health",
|
|
26
|
-
ChangeAmplification = "change-amplification",
|
|
27
|
-
CognitiveLoad = "cognitive-load",
|
|
28
|
-
PatternEntropy = "pattern-entropy",
|
|
29
|
-
ConceptCohesion = "concept-cohesion",
|
|
30
|
-
SemanticDistance = "semantic-distance"
|
|
31
|
-
}
|
|
32
|
-
declare const ToolNameSchema: z.ZodEnum<typeof ToolName>;
|
|
33
|
-
/**
|
|
34
|
-
* Friendly labels for UI display
|
|
35
|
-
*/
|
|
36
|
-
declare const FRIENDLY_TOOL_NAMES: Record<ToolName, string>;
|
|
37
|
-
/**
|
|
38
|
-
* Standardized issue types across all AIReady tools.
|
|
39
|
-
*/
|
|
40
|
-
declare enum IssueType {
|
|
41
|
-
DuplicatePattern = "duplicate-pattern",
|
|
42
|
-
PatternInconsistency = "pattern-inconsistency",
|
|
43
|
-
ContextFragmentation = "context-fragmentation",
|
|
44
|
-
DependencyHealth = "dependency-health",
|
|
45
|
-
CircularDependency = "circular-dependency",
|
|
46
|
-
DocDrift = "doc-drift",
|
|
47
|
-
NamingInconsistency = "naming-inconsistency",
|
|
48
|
-
NamingQuality = "naming-quality",
|
|
49
|
-
ArchitectureInconsistency = "architecture-inconsistency",
|
|
50
|
-
DeadCode = "dead-code",
|
|
51
|
-
MissingTypes = "missing-types",
|
|
52
|
-
MagicLiteral = "magic-literal",
|
|
53
|
-
BooleanTrap = "boolean-trap",
|
|
54
|
-
AiSignalClarity = "ai-signal-clarity",
|
|
55
|
-
LowTestability = "low-testability",
|
|
56
|
-
AgentNavigationFailure = "agent-navigation-failure",
|
|
57
|
-
AmbiguousApi = "ambiguous-api",
|
|
58
|
-
ChangeAmplification = "change-amplification"
|
|
59
|
-
}
|
|
60
|
-
declare const IssueTypeSchema: z.ZodEnum<typeof IssueType>;
|
|
61
|
-
/**
|
|
62
|
-
* Analysis processing status.
|
|
63
|
-
*/
|
|
64
|
-
declare enum AnalysisStatus {
|
|
65
|
-
Processing = "processing",
|
|
66
|
-
Completed = "completed",
|
|
67
|
-
Failed = "failed"
|
|
68
|
-
}
|
|
69
|
-
declare const AnalysisStatusSchema: z.ZodEnum<typeof AnalysisStatus>;
|
|
70
|
-
/**
|
|
71
|
-
* AI Model Context Tiers.
|
|
72
|
-
*/
|
|
73
|
-
declare enum ModelTier {
|
|
74
|
-
Compact = "compact",
|
|
75
|
-
Standard = "standard",
|
|
76
|
-
Extended = "extended",
|
|
77
|
-
Frontier = "frontier"
|
|
78
|
-
}
|
|
79
|
-
declare const ModelTierSchema: z.ZodEnum<typeof ModelTier>;
|
|
80
|
-
/**
|
|
81
|
-
* Source code location schema.
|
|
82
|
-
*/
|
|
83
|
-
declare const LocationSchema: z.ZodObject<{
|
|
84
|
-
file: z.ZodString;
|
|
85
|
-
line: z.ZodNumber;
|
|
86
|
-
column: z.ZodOptional<z.ZodNumber>;
|
|
87
|
-
endLine: z.ZodOptional<z.ZodNumber>;
|
|
88
|
-
endColumn: z.ZodOptional<z.ZodNumber>;
|
|
89
|
-
}, z.core.$strip>;
|
|
90
|
-
type Location = z.infer<typeof LocationSchema>;
|
|
91
|
-
/**
|
|
92
|
-
* Standard Issue schema.
|
|
93
|
-
*/
|
|
94
|
-
declare const IssueSchema: z.ZodObject<{
|
|
95
|
-
type: z.ZodEnum<typeof IssueType>;
|
|
96
|
-
severity: z.ZodEnum<typeof Severity>;
|
|
97
|
-
message: z.ZodString;
|
|
98
|
-
location: z.ZodObject<{
|
|
99
|
-
file: z.ZodString;
|
|
100
|
-
line: z.ZodNumber;
|
|
101
|
-
column: z.ZodOptional<z.ZodNumber>;
|
|
102
|
-
endLine: z.ZodOptional<z.ZodNumber>;
|
|
103
|
-
endColumn: z.ZodOptional<z.ZodNumber>;
|
|
104
|
-
}, z.core.$strip>;
|
|
105
|
-
suggestion: z.ZodOptional<z.ZodString>;
|
|
106
|
-
}, z.core.$strip>;
|
|
107
|
-
type Issue = z.infer<typeof IssueSchema>;
|
|
108
|
-
/**
|
|
109
|
-
* Standard Metrics schema.
|
|
110
|
-
*/
|
|
111
|
-
declare const MetricsSchema: z.ZodObject<{
|
|
112
|
-
tokenCost: z.ZodOptional<z.ZodNumber>;
|
|
113
|
-
complexityScore: z.ZodOptional<z.ZodNumber>;
|
|
114
|
-
consistencyScore: z.ZodOptional<z.ZodNumber>;
|
|
115
|
-
docFreshnessScore: z.ZodOptional<z.ZodNumber>;
|
|
116
|
-
aiSignalClarityScore: z.ZodOptional<z.ZodNumber>;
|
|
117
|
-
agentGroundingScore: z.ZodOptional<z.ZodNumber>;
|
|
118
|
-
testabilityScore: z.ZodOptional<z.ZodNumber>;
|
|
119
|
-
docDriftScore: z.ZodOptional<z.ZodNumber>;
|
|
120
|
-
dependencyHealthScore: z.ZodOptional<z.ZodNumber>;
|
|
121
|
-
modelContextTier: z.ZodOptional<z.ZodEnum<typeof ModelTier>>;
|
|
122
|
-
estimatedMonthlyCost: z.ZodOptional<z.ZodNumber>;
|
|
123
|
-
estimatedDeveloperHours: z.ZodOptional<z.ZodNumber>;
|
|
124
|
-
comprehensionDifficultyIndex: z.ZodOptional<z.ZodNumber>;
|
|
125
|
-
totalSymbols: z.ZodOptional<z.ZodNumber>;
|
|
126
|
-
totalExports: z.ZodOptional<z.ZodNumber>;
|
|
127
|
-
}, z.core.$strip>;
|
|
128
|
-
type Metrics = z.infer<typeof MetricsSchema>;
|
|
129
|
-
/**
|
|
130
|
-
* Individual file/module analysis result.
|
|
131
|
-
*/
|
|
132
|
-
declare const AnalysisResultSchema: z.ZodObject<{
|
|
133
|
-
fileName: z.ZodString;
|
|
134
|
-
issues: z.ZodArray<z.ZodObject<{
|
|
135
|
-
type: z.ZodEnum<typeof IssueType>;
|
|
136
|
-
severity: z.ZodEnum<typeof Severity>;
|
|
137
|
-
message: z.ZodString;
|
|
138
|
-
location: z.ZodObject<{
|
|
139
|
-
file: z.ZodString;
|
|
140
|
-
line: z.ZodNumber;
|
|
141
|
-
column: z.ZodOptional<z.ZodNumber>;
|
|
142
|
-
endLine: z.ZodOptional<z.ZodNumber>;
|
|
143
|
-
endColumn: z.ZodOptional<z.ZodNumber>;
|
|
144
|
-
}, z.core.$strip>;
|
|
145
|
-
suggestion: z.ZodOptional<z.ZodString>;
|
|
146
|
-
}, z.core.$strip>>;
|
|
147
|
-
metrics: z.ZodObject<{
|
|
148
|
-
tokenCost: z.ZodOptional<z.ZodNumber>;
|
|
149
|
-
complexityScore: z.ZodOptional<z.ZodNumber>;
|
|
150
|
-
consistencyScore: z.ZodOptional<z.ZodNumber>;
|
|
151
|
-
docFreshnessScore: z.ZodOptional<z.ZodNumber>;
|
|
152
|
-
aiSignalClarityScore: z.ZodOptional<z.ZodNumber>;
|
|
153
|
-
agentGroundingScore: z.ZodOptional<z.ZodNumber>;
|
|
154
|
-
testabilityScore: z.ZodOptional<z.ZodNumber>;
|
|
155
|
-
docDriftScore: z.ZodOptional<z.ZodNumber>;
|
|
156
|
-
dependencyHealthScore: z.ZodOptional<z.ZodNumber>;
|
|
157
|
-
modelContextTier: z.ZodOptional<z.ZodEnum<typeof ModelTier>>;
|
|
158
|
-
estimatedMonthlyCost: z.ZodOptional<z.ZodNumber>;
|
|
159
|
-
estimatedDeveloperHours: z.ZodOptional<z.ZodNumber>;
|
|
160
|
-
comprehensionDifficultyIndex: z.ZodOptional<z.ZodNumber>;
|
|
161
|
-
totalSymbols: z.ZodOptional<z.ZodNumber>;
|
|
162
|
-
totalExports: z.ZodOptional<z.ZodNumber>;
|
|
163
|
-
}, z.core.$strip>;
|
|
164
|
-
}, z.core.$strip>;
|
|
165
|
-
type AnalysisResult = z.infer<typeof AnalysisResultSchema>;
|
|
166
|
-
/**
|
|
167
|
-
* Standard spoke tool summary schema.
|
|
168
|
-
*/
|
|
169
|
-
declare const SpokeSummarySchema: z.ZodObject<{
|
|
170
|
-
totalFiles: z.ZodOptional<z.ZodNumber>;
|
|
171
|
-
totalIssues: z.ZodOptional<z.ZodNumber>;
|
|
172
|
-
criticalIssues: z.ZodOptional<z.ZodNumber>;
|
|
173
|
-
majorIssues: z.ZodOptional<z.ZodNumber>;
|
|
174
|
-
score: z.ZodOptional<z.ZodNumber>;
|
|
175
|
-
}, z.core.$catchall<z.ZodAny>>;
|
|
176
|
-
type SpokeSummary = z.infer<typeof SpokeSummarySchema>;
|
|
177
|
-
/**
|
|
178
|
-
* Standard spoke tool output contract.
|
|
179
|
-
*/
|
|
180
|
-
declare const SpokeOutputSchema: z.ZodObject<{
|
|
181
|
-
results: z.ZodArray<z.ZodObject<{
|
|
182
|
-
fileName: z.ZodString;
|
|
183
|
-
issues: z.ZodArray<z.ZodObject<{
|
|
184
|
-
type: z.ZodEnum<typeof IssueType>;
|
|
185
|
-
severity: z.ZodEnum<typeof Severity>;
|
|
186
|
-
message: z.ZodString;
|
|
187
|
-
location: z.ZodObject<{
|
|
188
|
-
file: z.ZodString;
|
|
189
|
-
line: z.ZodNumber;
|
|
190
|
-
column: z.ZodOptional<z.ZodNumber>;
|
|
191
|
-
endLine: z.ZodOptional<z.ZodNumber>;
|
|
192
|
-
endColumn: z.ZodOptional<z.ZodNumber>;
|
|
193
|
-
}, z.core.$strip>;
|
|
194
|
-
suggestion: z.ZodOptional<z.ZodString>;
|
|
195
|
-
}, z.core.$strip>>;
|
|
196
|
-
metrics: z.ZodObject<{
|
|
197
|
-
tokenCost: z.ZodOptional<z.ZodNumber>;
|
|
198
|
-
complexityScore: z.ZodOptional<z.ZodNumber>;
|
|
199
|
-
consistencyScore: z.ZodOptional<z.ZodNumber>;
|
|
200
|
-
docFreshnessScore: z.ZodOptional<z.ZodNumber>;
|
|
201
|
-
aiSignalClarityScore: z.ZodOptional<z.ZodNumber>;
|
|
202
|
-
agentGroundingScore: z.ZodOptional<z.ZodNumber>;
|
|
203
|
-
testabilityScore: z.ZodOptional<z.ZodNumber>;
|
|
204
|
-
docDriftScore: z.ZodOptional<z.ZodNumber>;
|
|
205
|
-
dependencyHealthScore: z.ZodOptional<z.ZodNumber>;
|
|
206
|
-
modelContextTier: z.ZodOptional<z.ZodEnum<typeof ModelTier>>;
|
|
207
|
-
estimatedMonthlyCost: z.ZodOptional<z.ZodNumber>;
|
|
208
|
-
estimatedDeveloperHours: z.ZodOptional<z.ZodNumber>;
|
|
209
|
-
comprehensionDifficultyIndex: z.ZodOptional<z.ZodNumber>;
|
|
210
|
-
totalSymbols: z.ZodOptional<z.ZodNumber>;
|
|
211
|
-
totalExports: z.ZodOptional<z.ZodNumber>;
|
|
212
|
-
}, z.core.$strip>;
|
|
213
|
-
}, z.core.$strip>>;
|
|
214
|
-
summary: z.ZodObject<{
|
|
215
|
-
totalFiles: z.ZodOptional<z.ZodNumber>;
|
|
216
|
-
totalIssues: z.ZodOptional<z.ZodNumber>;
|
|
217
|
-
criticalIssues: z.ZodOptional<z.ZodNumber>;
|
|
218
|
-
majorIssues: z.ZodOptional<z.ZodNumber>;
|
|
219
|
-
score: z.ZodOptional<z.ZodNumber>;
|
|
220
|
-
}, z.core.$catchall<z.ZodAny>>;
|
|
221
|
-
metadata: z.ZodOptional<z.ZodObject<{
|
|
222
|
-
toolName: z.ZodString;
|
|
223
|
-
version: z.ZodOptional<z.ZodString>;
|
|
224
|
-
timestamp: z.ZodOptional<z.ZodString>;
|
|
225
|
-
config: z.ZodOptional<z.ZodAny>;
|
|
226
|
-
}, z.core.$catchall<z.ZodAny>>>;
|
|
227
|
-
}, z.core.$strip>;
|
|
228
|
-
type SpokeOutput = z.infer<typeof SpokeOutputSchema>;
|
|
229
|
-
/**
|
|
230
|
-
* Master Unified Report contract (CLI -> Platform).
|
|
231
|
-
*/
|
|
232
|
-
declare const UnifiedReportSchema: z.ZodObject<{
|
|
233
|
-
summary: z.ZodObject<{
|
|
234
|
-
totalFiles: z.ZodNumber;
|
|
235
|
-
totalIssues: z.ZodNumber;
|
|
236
|
-
criticalIssues: z.ZodNumber;
|
|
237
|
-
majorIssues: z.ZodNumber;
|
|
238
|
-
businessImpact: z.ZodOptional<z.ZodObject<{
|
|
239
|
-
estimatedMonthlyWaste: z.ZodOptional<z.ZodNumber>;
|
|
240
|
-
potentialSavings: z.ZodOptional<z.ZodNumber>;
|
|
241
|
-
productivityHours: z.ZodOptional<z.ZodNumber>;
|
|
242
|
-
}, z.core.$strip>>;
|
|
243
|
-
}, z.core.$strip>;
|
|
244
|
-
results: z.ZodArray<z.ZodObject<{
|
|
245
|
-
fileName: z.ZodString;
|
|
246
|
-
issues: z.ZodArray<z.ZodObject<{
|
|
247
|
-
type: z.ZodEnum<typeof IssueType>;
|
|
248
|
-
severity: z.ZodEnum<typeof Severity>;
|
|
249
|
-
message: z.ZodString;
|
|
250
|
-
location: z.ZodObject<{
|
|
251
|
-
file: z.ZodString;
|
|
252
|
-
line: z.ZodNumber;
|
|
253
|
-
column: z.ZodOptional<z.ZodNumber>;
|
|
254
|
-
endLine: z.ZodOptional<z.ZodNumber>;
|
|
255
|
-
endColumn: z.ZodOptional<z.ZodNumber>;
|
|
256
|
-
}, z.core.$strip>;
|
|
257
|
-
suggestion: z.ZodOptional<z.ZodString>;
|
|
258
|
-
}, z.core.$strip>>;
|
|
259
|
-
metrics: z.ZodObject<{
|
|
260
|
-
tokenCost: z.ZodOptional<z.ZodNumber>;
|
|
261
|
-
complexityScore: z.ZodOptional<z.ZodNumber>;
|
|
262
|
-
consistencyScore: z.ZodOptional<z.ZodNumber>;
|
|
263
|
-
docFreshnessScore: z.ZodOptional<z.ZodNumber>;
|
|
264
|
-
aiSignalClarityScore: z.ZodOptional<z.ZodNumber>;
|
|
265
|
-
agentGroundingScore: z.ZodOptional<z.ZodNumber>;
|
|
266
|
-
testabilityScore: z.ZodOptional<z.ZodNumber>;
|
|
267
|
-
docDriftScore: z.ZodOptional<z.ZodNumber>;
|
|
268
|
-
dependencyHealthScore: z.ZodOptional<z.ZodNumber>;
|
|
269
|
-
modelContextTier: z.ZodOptional<z.ZodEnum<typeof ModelTier>>;
|
|
270
|
-
estimatedMonthlyCost: z.ZodOptional<z.ZodNumber>;
|
|
271
|
-
estimatedDeveloperHours: z.ZodOptional<z.ZodNumber>;
|
|
272
|
-
comprehensionDifficultyIndex: z.ZodOptional<z.ZodNumber>;
|
|
273
|
-
totalSymbols: z.ZodOptional<z.ZodNumber>;
|
|
274
|
-
totalExports: z.ZodOptional<z.ZodNumber>;
|
|
275
|
-
}, z.core.$strip>;
|
|
276
|
-
}, z.core.$strip>>;
|
|
277
|
-
scoring: z.ZodOptional<z.ZodObject<{
|
|
278
|
-
overall: z.ZodNumber;
|
|
279
|
-
rating: z.ZodString;
|
|
280
|
-
timestamp: z.ZodString;
|
|
281
|
-
breakdown: z.ZodArray<z.ZodObject<{
|
|
282
|
-
toolName: z.ZodUnion<readonly [z.ZodEnum<typeof ToolName>, z.ZodString]>;
|
|
283
|
-
score: z.ZodNumber;
|
|
284
|
-
}, z.core.$catchall<z.ZodAny>>>;
|
|
285
|
-
}, z.core.$strip>>;
|
|
286
|
-
}, z.core.$catchall<z.ZodAny>>;
|
|
287
|
-
type UnifiedReport = z.infer<typeof UnifiedReportSchema>;
|
|
288
|
-
|
|
289
|
-
/**
|
|
290
|
-
* Cost estimation configuration
|
|
291
|
-
*/
|
|
292
|
-
interface CostConfig {
|
|
293
|
-
/** Price per 1K tokens (default: $0.01 for GPT-4) */
|
|
294
|
-
pricePer1KTokens: number;
|
|
295
|
-
/** Average AI queries per developer per day */
|
|
296
|
-
queriesPerDevPerDay: number;
|
|
297
|
-
/** Number of developers on the team */
|
|
298
|
-
developerCount: number;
|
|
299
|
-
/** Days per month (default: 30) */
|
|
300
|
-
daysPerMonth: number;
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* Token budget metrics (v0.13+)
|
|
304
|
-
* Technology-agnostic unit economics for AI impact.
|
|
305
|
-
*/
|
|
306
|
-
interface TokenBudget {
|
|
307
|
-
/** Total tokens required for full task context */
|
|
308
|
-
totalContextTokens: number;
|
|
309
|
-
/** Estimated tokens generated in response */
|
|
310
|
-
estimatedResponseTokens: number;
|
|
311
|
-
/** Tokens wasted on redundant/duplicated context */
|
|
312
|
-
wastedTokens: {
|
|
313
|
-
total: number;
|
|
314
|
-
bySource: {
|
|
315
|
-
duplication: number;
|
|
316
|
-
fragmentation: number;
|
|
317
|
-
chattiness: number;
|
|
318
|
-
};
|
|
319
|
-
};
|
|
320
|
-
/** Context efficiency ratio (0-1). 1.0 = perfect efficiency. */
|
|
321
|
-
efficiencyRatio: number;
|
|
322
|
-
/** Estimated tokens saved if recommendations are followed */
|
|
323
|
-
potentialRetrievableTokens: number;
|
|
324
|
-
}
|
|
325
|
-
/**
|
|
326
|
-
* Productivity impact estimates
|
|
327
|
-
*/
|
|
328
|
-
interface ProductivityImpact {
|
|
329
|
-
/** Estimated hours to fix all issues */
|
|
330
|
-
totalHours: number;
|
|
331
|
-
/** Average hourly rate for developers */
|
|
332
|
-
hourlyRate: number;
|
|
333
|
-
/** Estimated total fix cost */
|
|
334
|
-
totalCost: number;
|
|
335
|
-
/** Breakdown by severity */
|
|
336
|
-
bySeverity: {
|
|
337
|
-
[K in Severity]: {
|
|
338
|
-
hours: number;
|
|
339
|
-
cost: number;
|
|
340
|
-
};
|
|
341
|
-
};
|
|
342
|
-
}
|
|
343
|
-
/**
|
|
344
|
-
* AI acceptance rate prediction
|
|
345
|
-
* Based on research correlating code quality to AI suggestion acceptance
|
|
346
|
-
*/
|
|
347
|
-
interface AcceptancePrediction {
|
|
348
|
-
/** Predicted acceptance rate (0-1) */
|
|
349
|
-
rate: number;
|
|
350
|
-
/** Confidence level (0-1) */
|
|
351
|
-
confidence: number;
|
|
352
|
-
/** Factors affecting acceptance */
|
|
353
|
-
factors: {
|
|
354
|
-
name: string;
|
|
355
|
-
impact: number;
|
|
356
|
-
}[];
|
|
357
|
-
}
|
|
358
|
-
/**
|
|
359
|
-
* Comprehension difficulty score (future-proof abstraction)
|
|
360
|
-
* Normalized 0-100 scale: lower = easier for AI to understand
|
|
361
|
-
*/
|
|
362
|
-
interface ComprehensionDifficulty {
|
|
363
|
-
/** Overall difficulty score (0-100) */
|
|
364
|
-
score: number;
|
|
365
|
-
/** Factors contributing to difficulty */
|
|
366
|
-
factors: {
|
|
367
|
-
budgetRatio: number;
|
|
368
|
-
depthRatio: number;
|
|
369
|
-
fragmentation: number;
|
|
370
|
-
};
|
|
371
|
-
/** Interpretation */
|
|
372
|
-
rating: 'trivial' | 'easy' | 'moderate' | 'difficult' | 'expert';
|
|
373
|
-
}
|
|
374
|
-
/**
|
|
375
|
-
* Technical Value Chain
|
|
376
|
-
* Traces a technical issue through its impact on AI and developer outcomes.
|
|
377
|
-
*/
|
|
378
|
-
interface TechnicalValueChain {
|
|
379
|
-
issueType: string;
|
|
380
|
-
technicalMetric: string;
|
|
381
|
-
technicalValue: number;
|
|
382
|
-
aiImpact: {
|
|
383
|
-
description: string;
|
|
384
|
-
scoreImpact: number;
|
|
385
|
-
};
|
|
386
|
-
developerImpact: {
|
|
387
|
-
description: string;
|
|
388
|
-
productivityLoss: number;
|
|
389
|
-
};
|
|
390
|
-
businessOutcome: {
|
|
391
|
-
directCost: number;
|
|
392
|
-
opportunityCost: number;
|
|
393
|
-
riskLevel: 'low' | 'moderate' | 'high' | 'critical';
|
|
394
|
-
};
|
|
395
|
-
}
|
|
396
|
-
/**
|
|
397
|
-
* v0.13+ simplified technical value chain
|
|
398
|
-
*/
|
|
399
|
-
interface TechnicalValueChainSummary {
|
|
400
|
-
score: number;
|
|
401
|
-
density: number;
|
|
402
|
-
complexity: number;
|
|
403
|
-
surface: number;
|
|
404
|
-
}
|
|
405
|
-
/**
|
|
406
|
-
* Extended report with business metrics
|
|
407
|
-
*/
|
|
408
|
-
interface BusinessReport extends Report {
|
|
409
|
-
businessMetrics: {
|
|
410
|
-
/** Token-based unit economics (v0.13+) */
|
|
411
|
-
tokenBudget: TokenBudget;
|
|
412
|
-
/** @deprecated Use tokenBudget instead. Estimated monthly cost impact of AI context waste */
|
|
413
|
-
estimatedMonthlyCost: {
|
|
414
|
-
total: number;
|
|
415
|
-
range: [number, number];
|
|
416
|
-
confidence: number;
|
|
417
|
-
};
|
|
418
|
-
/** Opportunity cost of project delay due to technical debt */
|
|
419
|
-
opportunityCost: number;
|
|
420
|
-
/** Estimated developer hours to address issues */
|
|
421
|
-
estimatedDeveloperHours: number;
|
|
422
|
-
/** Predicted AI suggestion acceptance rate */
|
|
423
|
-
aiAcceptanceRate: number;
|
|
424
|
-
/** Comprehension difficulty assessment */
|
|
425
|
-
comprehensionDifficulty: ComprehensionDifficulty;
|
|
426
|
-
/** Traces for specific critical issues */
|
|
427
|
-
valueChains?: TechnicalValueChain[];
|
|
428
|
-
/** Timestamp for trend tracking */
|
|
429
|
-
period?: string;
|
|
430
|
-
};
|
|
431
|
-
}
|
|
432
|
-
interface ScanOptions {
|
|
433
|
-
rootDir: string;
|
|
434
|
-
include?: string[];
|
|
435
|
-
exclude?: string[];
|
|
436
|
-
maxDepth?: number;
|
|
437
|
-
onProgress?: (processed: number, total: number, message: string) => void;
|
|
438
|
-
includeTests?: boolean;
|
|
439
|
-
}
|
|
440
|
-
/**
|
|
441
|
-
* Global infrastructure options that apply to the whole scan process.
|
|
442
|
-
* These are passed to all tools but usually omitted from tool-specific audit logs
|
|
443
|
-
* to avoid redundancy.
|
|
444
|
-
*/
|
|
445
|
-
declare const GLOBAL_INFRA_OPTIONS: string[];
|
|
446
|
-
/**
|
|
447
|
-
* Common fine-tuning options that might be passed globally but are actually tool-specific.
|
|
448
|
-
*/
|
|
449
|
-
declare const COMMON_FINE_TUNING_OPTIONS: string[];
|
|
450
|
-
declare const GLOBAL_SCAN_OPTIONS: string[];
|
|
451
|
-
/**
|
|
452
|
-
* Base configuration for any AIReady tool
|
|
453
|
-
*/
|
|
454
|
-
interface BaseToolConfig {
|
|
455
|
-
/** Whether this tool is enabled for the scan */
|
|
456
|
-
enabled?: boolean;
|
|
457
|
-
/** Custom weight for overall score calculation (sum should be 100) */
|
|
458
|
-
scoreWeight?: number;
|
|
459
|
-
/** Catch-all for any other tool-specific options */
|
|
460
|
-
[key: string]: any;
|
|
461
|
-
}
|
|
462
|
-
/**
|
|
463
|
-
* Configuration for the pattern-detect tool (semantic duplicate detection)
|
|
464
|
-
*/
|
|
465
|
-
interface PatternDetectConfig extends BaseToolConfig {
|
|
466
|
-
/** Similarity threshold (0-1). Higher = more strict. */
|
|
467
|
-
minSimilarity?: number;
|
|
468
|
-
/** Minimum lines to consider a block */
|
|
469
|
-
minLines?: number;
|
|
470
|
-
/** Batch size for parallel processing */
|
|
471
|
-
batchSize?: number;
|
|
472
|
-
/** Use approximate matching engine for faster results on large repos */
|
|
473
|
-
approx?: boolean;
|
|
474
|
-
/** Minimum tokens shared between blocks for candidates */
|
|
475
|
-
minSharedTokens?: number;
|
|
476
|
-
/** Maximum number of candidates to compare per block */
|
|
477
|
-
maxCandidatesPerBlock?: number;
|
|
478
|
-
}
|
|
479
|
-
/**
|
|
480
|
-
* Configuration for the context-analyzer tool (fragmentation and budget)
|
|
481
|
-
*/
|
|
482
|
-
interface ContextAnalyzerConfig extends BaseToolConfig {
|
|
483
|
-
/** Maximum directory depth to traverse */
|
|
484
|
-
maxDepth?: number;
|
|
485
|
-
/** Maximum tokens allowed per context window */
|
|
486
|
-
maxContextBudget?: number;
|
|
487
|
-
/** Minimum cohesion score required (0-1) */
|
|
488
|
-
minCohesion?: number;
|
|
489
|
-
/** Maximum fragmentation ratio allowed (0-1) */
|
|
490
|
-
maxFragmentation?: number;
|
|
491
|
-
/** Primary focus area for the analyzer */
|
|
492
|
-
focus?: 'fragmentation' | 'cohesion' | 'depth' | 'all';
|
|
493
|
-
/** Whether to include dependencies from node_modules */
|
|
494
|
-
includeNodeModules?: boolean;
|
|
495
|
-
/** Project-specific domain keywords for better inference */
|
|
496
|
-
domainKeywords?: string[];
|
|
497
|
-
}
|
|
498
|
-
/**
|
|
499
|
-
* Configuration for the naming-consistency tool
|
|
500
|
-
*/
|
|
501
|
-
interface NamingConsistencyConfig extends BaseToolConfig {
|
|
502
|
-
/** Project-approved abbreviations */
|
|
503
|
-
acceptedAbbreviations?: string[];
|
|
504
|
-
/** Words that are allowed to be short (like 'id', 'db') */
|
|
505
|
-
shortWords?: string[];
|
|
506
|
-
/** Specific checks to disable */
|
|
507
|
-
disableChecks?: ('single-letter' | 'abbreviation' | 'convention-mix' | 'unclear' | 'poor-naming')[];
|
|
508
|
-
}
|
|
509
|
-
/**
|
|
510
|
-
* Configuration for the ai-signal-clarity tool
|
|
511
|
-
*/
|
|
512
|
-
interface AiSignalClarityConfig extends BaseToolConfig {
|
|
513
|
-
/** Detect unnamed constants */
|
|
514
|
-
checkMagicLiterals?: boolean;
|
|
515
|
-
/** Detect positional boolean arguments */
|
|
516
|
-
checkBooleanTraps?: boolean;
|
|
517
|
-
/** Detect generic names like 'temp', 'data' */
|
|
518
|
-
checkAmbiguousNames?: boolean;
|
|
519
|
-
/** Detect public exports missing JSDoc */
|
|
520
|
-
checkUndocumentedExports?: boolean;
|
|
521
|
-
/** Detect implicit state mutations */
|
|
522
|
-
checkImplicitSideEffects?: boolean;
|
|
523
|
-
/** Detect deeply nested callbacks */
|
|
524
|
-
checkDeepCallbacks?: boolean;
|
|
525
|
-
}
|
|
526
|
-
/**
|
|
527
|
-
* Consolidated AIReady configuration schema
|
|
528
|
-
*/
|
|
529
|
-
interface AIReadyConfig {
|
|
530
|
-
/** Global scan settings */
|
|
531
|
-
scan?: {
|
|
532
|
-
/** Glob patterns to include */
|
|
533
|
-
include?: string[];
|
|
534
|
-
/** Glob patterns to exclude */
|
|
535
|
-
exclude?: string[];
|
|
536
|
-
/** List of tools to execute */
|
|
537
|
-
tools?: string[];
|
|
538
|
-
};
|
|
539
|
-
/** Tool-specific configurations */
|
|
540
|
-
tools?: {
|
|
541
|
-
'pattern-detect'?: PatternDetectConfig;
|
|
542
|
-
'context-analyzer'?: ContextAnalyzerConfig;
|
|
543
|
-
[ToolName.NamingConsistency]?: NamingConsistencyConfig;
|
|
544
|
-
[ToolName.AiSignalClarity]?: AiSignalClarityConfig;
|
|
545
|
-
[ToolName.AgentGrounding]?: BaseToolConfig & {
|
|
546
|
-
maxRecommendedDepth?: number;
|
|
547
|
-
readmeStaleDays?: number;
|
|
548
|
-
};
|
|
549
|
-
[ToolName.TestabilityIndex]?: BaseToolConfig & {
|
|
550
|
-
minCoverageRatio?: number;
|
|
551
|
-
testPatterns?: string[];
|
|
552
|
-
};
|
|
553
|
-
[ToolName.DocDrift]?: BaseToolConfig & {
|
|
554
|
-
maxCommits?: number;
|
|
555
|
-
staleMonths?: number;
|
|
556
|
-
};
|
|
557
|
-
[ToolName.DependencyHealth]?: BaseToolConfig & {
|
|
558
|
-
trainingCutoffYear?: number;
|
|
559
|
-
};
|
|
560
|
-
[ToolName.ChangeAmplification]?: BaseToolConfig;
|
|
561
|
-
/** Support for custom/third-party tools */
|
|
562
|
-
[toolName: string]: BaseToolConfig | undefined;
|
|
563
|
-
};
|
|
564
|
-
/** Global scoring and threshold settings */
|
|
565
|
-
scoring?: {
|
|
566
|
-
/** Minimum overall score required to pass CI/CD */
|
|
567
|
-
threshold?: number;
|
|
568
|
-
/** Detailed breakdown in terminal output */
|
|
569
|
-
showBreakdown?: boolean;
|
|
570
|
-
/** Comparison with a previous run */
|
|
571
|
-
compareBaseline?: string;
|
|
572
|
-
/** Auto-persist result to this path */
|
|
573
|
-
saveTo?: string;
|
|
574
|
-
};
|
|
575
|
-
/** Console and file output preferences */
|
|
576
|
-
output?: {
|
|
577
|
-
/** Output format (console, json, html) */
|
|
578
|
-
format?: 'console' | 'json' | 'html';
|
|
579
|
-
/** Target file for the full report */
|
|
580
|
-
file?: string;
|
|
581
|
-
};
|
|
582
|
-
/** Graph Visualizer preferences */
|
|
583
|
-
visualizer?: {
|
|
584
|
-
/** Custom directory grouping levels */
|
|
585
|
-
groupingDirs?: string[];
|
|
586
|
-
/** Performance constraints for large graphs */
|
|
587
|
-
graph?: {
|
|
588
|
-
maxNodes?: number;
|
|
589
|
-
maxEdges?: number;
|
|
590
|
-
};
|
|
591
|
-
};
|
|
592
|
-
}
|
|
593
|
-
interface Report {
|
|
594
|
-
summary: {
|
|
595
|
-
totalFiles: number;
|
|
596
|
-
totalIssues: number;
|
|
597
|
-
criticalIssues: number;
|
|
598
|
-
majorIssues: number;
|
|
599
|
-
};
|
|
600
|
-
results: AnalysisResult[];
|
|
601
|
-
metrics: {
|
|
602
|
-
overallScore: number;
|
|
603
|
-
tokenCostTotal: number;
|
|
604
|
-
avgConsistency: number;
|
|
605
|
-
executionTime?: number;
|
|
606
|
-
};
|
|
607
|
-
}
|
|
608
|
-
/**
|
|
609
|
-
* Severity levels for issues
|
|
610
|
-
*/
|
|
611
|
-
type GraphIssueSeverity = Severity;
|
|
612
|
-
/**
|
|
613
|
-
* Base graph node
|
|
614
|
-
*/
|
|
615
|
-
interface GraphNode {
|
|
616
|
-
id: string;
|
|
617
|
-
label: string;
|
|
618
|
-
path?: string;
|
|
619
|
-
size?: number;
|
|
620
|
-
value?: number;
|
|
621
|
-
color?: string;
|
|
622
|
-
group?: string;
|
|
623
|
-
x?: number;
|
|
624
|
-
y?: number;
|
|
625
|
-
}
|
|
626
|
-
/**
|
|
627
|
-
* Graph edge between nodes
|
|
628
|
-
*/
|
|
629
|
-
interface GraphEdge {
|
|
630
|
-
source: string | GraphNode;
|
|
631
|
-
target: string | GraphNode;
|
|
632
|
-
type?: string;
|
|
633
|
-
weight?: number;
|
|
634
|
-
}
|
|
635
|
-
/**
|
|
636
|
-
* Graph metadata
|
|
637
|
-
*/
|
|
638
|
-
interface GraphMetadata {
|
|
639
|
-
projectName?: string;
|
|
640
|
-
timestamp: string;
|
|
641
|
-
totalFiles: number;
|
|
642
|
-
totalDependencies: number;
|
|
643
|
-
analysisTypes: string[];
|
|
644
|
-
criticalIssues: number;
|
|
645
|
-
majorIssues: number;
|
|
646
|
-
minorIssues: number;
|
|
647
|
-
infoIssues: number;
|
|
648
|
-
/** AI token budget unit economics (v0.13+) */
|
|
649
|
-
tokenBudget?: TokenBudget;
|
|
650
|
-
/** Execution time in milliseconds */
|
|
651
|
-
executionTime?: number;
|
|
652
|
-
}
|
|
653
|
-
/**
|
|
654
|
-
* Complete graph data structure for visualization
|
|
655
|
-
*/
|
|
656
|
-
interface GraphData {
|
|
657
|
-
nodes: GraphNode[];
|
|
658
|
-
edges: GraphEdge[];
|
|
659
|
-
clusters?: {
|
|
660
|
-
id: string;
|
|
661
|
-
name: string;
|
|
662
|
-
nodeIds: string[];
|
|
663
|
-
}[];
|
|
664
|
-
issues?: {
|
|
665
|
-
id: string;
|
|
666
|
-
type: string;
|
|
667
|
-
severity: Severity;
|
|
668
|
-
nodeIds: string[];
|
|
669
|
-
message: string;
|
|
670
|
-
}[];
|
|
671
|
-
metadata: GraphMetadata;
|
|
672
|
-
}
|
|
673
|
-
|
|
674
|
-
/**
|
|
675
|
-
* Language-agnostic AST and parser interfaces for multi-language support
|
|
676
|
-
*
|
|
677
|
-
* This module provides abstractions for parsing different programming languages
|
|
678
|
-
* while maintaining a consistent interface for analysis tools.
|
|
679
|
-
*/
|
|
680
|
-
/**
|
|
681
|
-
* Supported programming languages
|
|
682
|
-
*/
|
|
683
|
-
declare enum Language {
|
|
684
|
-
TypeScript = "typescript",
|
|
685
|
-
JavaScript = "javascript",
|
|
686
|
-
Python = "python",
|
|
687
|
-
Java = "java",
|
|
688
|
-
Go = "go",
|
|
689
|
-
Rust = "rust",
|
|
690
|
-
CSharp = "csharp"
|
|
691
|
-
}
|
|
692
|
-
/**
|
|
693
|
-
* File extensions mapped to languages
|
|
694
|
-
*/
|
|
695
|
-
declare const LANGUAGE_EXTENSIONS: Record<string, Language>;
|
|
696
|
-
/**
|
|
697
|
-
* Location information in source code
|
|
698
|
-
*/
|
|
699
|
-
interface SourceLocation {
|
|
700
|
-
line: number;
|
|
701
|
-
column: number;
|
|
702
|
-
}
|
|
703
|
-
interface SourceRange {
|
|
704
|
-
start: SourceLocation;
|
|
705
|
-
end: SourceLocation;
|
|
706
|
-
}
|
|
707
|
-
/**
|
|
708
|
-
* Common AST node type (language-agnostic)
|
|
709
|
-
*/
|
|
710
|
-
interface CommonASTNode {
|
|
711
|
-
type: string;
|
|
712
|
-
loc?: SourceRange;
|
|
713
|
-
raw?: any;
|
|
714
|
-
}
|
|
715
|
-
/**
|
|
716
|
-
* Export information (function, class, variable, etc.)
|
|
717
|
-
*/
|
|
718
|
-
interface ExportInfo {
|
|
719
|
-
name: string;
|
|
720
|
-
type: 'function' | 'class' | 'const' | 'type' | 'interface' | 'default' | 'variable';
|
|
721
|
-
loc?: SourceRange;
|
|
722
|
-
/** Imports used within this export */
|
|
723
|
-
imports?: string[];
|
|
724
|
-
/** Dependencies on other exports in same file */
|
|
725
|
-
dependencies?: string[];
|
|
726
|
-
/** TypeScript types referenced */
|
|
727
|
-
typeReferences?: string[];
|
|
728
|
-
/** For methods: parent class name */
|
|
729
|
-
parentClass?: string;
|
|
730
|
-
/** For functions/methods: parameters */
|
|
731
|
-
parameters?: string[];
|
|
732
|
-
/** For classes/interfaces: number of methods and properties */
|
|
733
|
-
methodCount?: number;
|
|
734
|
-
propertyCount?: number;
|
|
735
|
-
/** Visibility (public, private, protected) */
|
|
736
|
-
visibility?: 'public' | 'private' | 'protected';
|
|
737
|
-
/** Behavioral metadata for advanced metrics */
|
|
738
|
-
isPure?: boolean;
|
|
739
|
-
hasSideEffects?: boolean;
|
|
740
|
-
/** Associated documentation */
|
|
741
|
-
documentation?: {
|
|
742
|
-
content: string;
|
|
743
|
-
type: 'jsdoc' | 'docstring' | 'comment' | 'xml-doc';
|
|
744
|
-
isStale?: boolean;
|
|
745
|
-
};
|
|
746
|
-
}
|
|
747
|
-
/**
|
|
748
|
-
* Import information
|
|
749
|
-
*/
|
|
750
|
-
interface ImportInfo {
|
|
751
|
-
/** Module being imported from */
|
|
752
|
-
source: string;
|
|
753
|
-
/** What's being imported */
|
|
754
|
-
specifiers: string[];
|
|
755
|
-
/** Is this a type-only import (TypeScript) */
|
|
756
|
-
isTypeOnly?: boolean;
|
|
757
|
-
/** Location in source */
|
|
758
|
-
loc?: SourceRange;
|
|
759
|
-
}
|
|
760
|
-
/**
|
|
761
|
-
* Parse result containing exports and imports
|
|
762
|
-
*/
|
|
763
|
-
interface ParseResult {
|
|
764
|
-
exports: ExportInfo[];
|
|
765
|
-
imports: ImportInfo[];
|
|
766
|
-
/** Language of the parsed file */
|
|
767
|
-
language: Language;
|
|
768
|
-
/** Any parse warnings (non-fatal) */
|
|
769
|
-
warnings?: string[];
|
|
770
|
-
}
|
|
771
|
-
/**
|
|
772
|
-
* Naming convention rules per language
|
|
773
|
-
*/
|
|
774
|
-
interface NamingConvention {
|
|
775
|
-
/** Allowed variable naming patterns */
|
|
776
|
-
variablePattern: RegExp;
|
|
777
|
-
/** Allowed function naming patterns */
|
|
778
|
-
functionPattern: RegExp;
|
|
779
|
-
/** Allowed class naming patterns */
|
|
780
|
-
classPattern: RegExp;
|
|
781
|
-
/** Allowed constant naming patterns */
|
|
782
|
-
constantPattern: RegExp;
|
|
783
|
-
/** Allowed type naming patterns */
|
|
784
|
-
typePattern?: RegExp;
|
|
785
|
-
/** Allowed interface naming patterns */
|
|
786
|
-
interfacePattern?: RegExp;
|
|
787
|
-
/** Language-specific exceptions (e.g., __init__ in Python) */
|
|
788
|
-
exceptions?: string[];
|
|
789
|
-
}
|
|
790
|
-
/**
|
|
791
|
-
* Language-specific configuration
|
|
792
|
-
*/
|
|
793
|
-
interface LanguageConfig {
|
|
794
|
-
language: Language;
|
|
795
|
-
/** File extensions for this language */
|
|
796
|
-
extensions: string[];
|
|
797
|
-
/** Naming conventions */
|
|
798
|
-
namingConventions: NamingConvention;
|
|
799
|
-
/** Common abbreviations allowed */
|
|
800
|
-
allowedAbbreviations?: string[];
|
|
801
|
-
/** Language-specific keywords to ignore */
|
|
802
|
-
keywords?: string[];
|
|
803
|
-
}
|
|
804
|
-
/**
|
|
805
|
-
* Abstract interface for language parsers
|
|
806
|
-
* Each language implementation should implement this interface
|
|
807
|
-
*/
|
|
808
|
-
interface LanguageParser {
|
|
809
|
-
/** Language this parser handles */
|
|
810
|
-
readonly language: Language;
|
|
811
|
-
/** File extensions this parser supports */
|
|
812
|
-
readonly extensions: string[];
|
|
813
|
-
/**
|
|
814
|
-
* Parse source code and extract structure
|
|
815
|
-
* @param code - Source code to parse
|
|
816
|
-
* @param filePath - Path to the file (for context)
|
|
817
|
-
* @returns Parse result with exports and imports
|
|
818
|
-
* @throws ParseError if code has syntax errors
|
|
819
|
-
*/
|
|
820
|
-
parse(code: string, filePath: string): ParseResult;
|
|
821
|
-
/**
|
|
822
|
-
* Get naming conventions for this language
|
|
823
|
-
*/
|
|
824
|
-
getNamingConventions(): NamingConvention;
|
|
825
|
-
/**
|
|
826
|
-
* Initialize the parser (e.g. load WASM)
|
|
827
|
-
*/
|
|
828
|
-
initialize(): Promise<void>;
|
|
829
|
-
/**
|
|
830
|
-
* Check if this parser can handle a file
|
|
831
|
-
* @param filePath - File path to check
|
|
832
|
-
*/
|
|
833
|
-
canHandle(filePath: string): boolean;
|
|
834
|
-
/**
|
|
835
|
-
* Get the raw AST for advanced querying
|
|
836
|
-
* @param code - Source code to parse
|
|
837
|
-
* @param filePath - Path to the file
|
|
838
|
-
*/
|
|
839
|
-
getAST(code: string, filePath: string): Promise<any>;
|
|
840
|
-
/**
|
|
841
|
-
* Analyze structural metadata for a node (e.g. purity)
|
|
842
|
-
* @param node - The AST node to analyze (language specific)
|
|
843
|
-
* @param code - The original source code
|
|
844
|
-
*/
|
|
845
|
-
analyzeMetadata(node: any, code: string): Partial<ExportInfo>;
|
|
846
|
-
}
|
|
847
|
-
/**
|
|
848
|
-
* Parser error with location information
|
|
849
|
-
*/
|
|
850
|
-
declare class ParseError extends Error {
|
|
851
|
-
readonly filePath: string;
|
|
852
|
-
readonly loc?: SourceLocation | undefined;
|
|
853
|
-
constructor(message: string, filePath: string, loc?: SourceLocation | undefined);
|
|
854
|
-
}
|
|
855
|
-
/**
|
|
856
|
-
* Statistics about parsed code
|
|
857
|
-
*/
|
|
858
|
-
interface ParseStatistics {
|
|
859
|
-
language: Language;
|
|
860
|
-
filesAnalyzed: number;
|
|
861
|
-
totalExports: number;
|
|
862
|
-
totalImports: number;
|
|
863
|
-
parseErrors: number;
|
|
864
|
-
warnings: number;
|
|
865
|
-
}
|
|
866
|
-
|
|
867
|
-
/**
|
|
868
|
-
* Priority levels for actionable recommendations
|
|
869
|
-
*/
|
|
870
|
-
declare enum RecommendationPriority {
|
|
871
|
-
High = "high",
|
|
872
|
-
Medium = "medium",
|
|
873
|
-
Low = "low"
|
|
874
|
-
}
|
|
875
|
-
/**
|
|
876
|
-
* AI Readiness Rating categories
|
|
877
|
-
*/
|
|
878
|
-
declare enum ReadinessRating {
|
|
879
|
-
Excellent = "Excellent",
|
|
880
|
-
Good = "Good",
|
|
881
|
-
Fair = "Fair",
|
|
882
|
-
NeedsWork = "Needs Work",
|
|
883
|
-
Critical = "Critical"
|
|
884
|
-
}
|
|
885
|
-
/**
|
|
886
|
-
* Output structure for a single tool's scoring analysis
|
|
887
|
-
*/
|
|
888
|
-
interface ToolScoringOutput {
|
|
889
|
-
/** Unique tool identifier (e.g., "pattern-detect") */
|
|
890
|
-
toolName: string;
|
|
891
|
-
/** Normalized 0-100 score for this tool */
|
|
892
|
-
score: number;
|
|
893
|
-
/** AI token budget unit economics (v0.13+) */
|
|
894
|
-
tokenBudget?: TokenBudget;
|
|
895
|
-
/** Raw metrics used to calculate the score */
|
|
896
|
-
rawMetrics: Record<string, any>;
|
|
897
|
-
/** Factors that influenced the score */
|
|
898
|
-
factors: Array<{
|
|
899
|
-
/** Human-readable name of the factor */
|
|
900
|
-
name: string;
|
|
901
|
-
/** Points contribution (positive or negative) */
|
|
902
|
-
impact: number;
|
|
903
|
-
/** Explanation of the factor's impact */
|
|
904
|
-
description: string;
|
|
905
|
-
}>;
|
|
906
|
-
/** Actionable recommendations with estimated impact */
|
|
907
|
-
recommendations: Array<{
|
|
908
|
-
/** The recommended action to take */
|
|
909
|
-
action: string;
|
|
910
|
-
/** Potential points increase if implemented */
|
|
911
|
-
estimatedImpact: number;
|
|
912
|
-
/** Implementation priority */
|
|
913
|
-
priority: RecommendationPriority | 'high' | 'medium' | 'low';
|
|
914
|
-
}>;
|
|
915
|
-
}
|
|
916
|
-
/**
|
|
917
|
-
* Consolidated scoring result across all tools
|
|
918
|
-
*/
|
|
919
|
-
interface ScoringResult {
|
|
920
|
-
/** Overall AI Readiness Score (0-100) */
|
|
921
|
-
overall: number;
|
|
922
|
-
/** Rating category representing the overall readiness */
|
|
923
|
-
rating: ReadinessRating | string;
|
|
924
|
-
/** Timestamp of score calculation */
|
|
925
|
-
timestamp: string;
|
|
926
|
-
/** Tools that contributed to this score */
|
|
927
|
-
toolsUsed: string[];
|
|
928
|
-
/** Breakdown by individual tool */
|
|
929
|
-
breakdown: ToolScoringOutput[];
|
|
930
|
-
/** Internal calculation details for transparency */
|
|
931
|
-
calculation: {
|
|
932
|
-
/** Textual representation of the calculation formula */
|
|
933
|
-
formula: string;
|
|
934
|
-
/** Weights applied to each tool */
|
|
935
|
-
weights: Record<string, number>;
|
|
936
|
-
/** Simplified normalized formula output */
|
|
937
|
-
normalized: string;
|
|
938
|
-
};
|
|
939
|
-
}
|
|
940
|
-
/**
|
|
941
|
-
* Configuration options for the scoring system
|
|
942
|
-
*/
|
|
943
|
-
interface ScoringConfig {
|
|
944
|
-
/** Minimum passing score (CLI will exit with non-zero if below) */
|
|
945
|
-
threshold?: number;
|
|
946
|
-
/** Whether to show the detailed tool-by-tool breakdown */
|
|
947
|
-
showBreakdown?: boolean;
|
|
948
|
-
/** Path to a baseline report JSON for trend comparison */
|
|
949
|
-
compareBaseline?: string;
|
|
950
|
-
/** Target file path to persist the calculated score */
|
|
951
|
-
saveTo?: string;
|
|
952
|
-
}
|
|
953
|
-
/**
|
|
954
|
-
* Default weights for known tools. Weights sum to 100 and read directly as
|
|
955
|
-
* percentage contribution to the overall score.
|
|
956
|
-
* New tools get weight of 5 if not specified.
|
|
957
|
-
*/
|
|
958
|
-
declare const DEFAULT_TOOL_WEIGHTS: Record<string, number>;
|
|
959
|
-
/**
|
|
960
|
-
* Tool name normalization map (shorthand -> canonical name)
|
|
961
|
-
*/
|
|
962
|
-
declare const TOOL_NAME_MAP: Record<string, string>;
|
|
963
|
-
/**
|
|
964
|
-
* Model context tiers for context-aware threshold calibration.
|
|
965
|
-
*/
|
|
966
|
-
type ModelContextTier = 'compact' | 'standard' | 'extended' | 'frontier';
|
|
967
|
-
/**
|
|
968
|
-
* Scoring profiles for project-type-aware weighting.
|
|
969
|
-
*/
|
|
970
|
-
declare enum ScoringProfile {
|
|
971
|
-
Default = "default",
|
|
972
|
-
Agentic = "agentic",// Focus on AI agent navigation and signal
|
|
973
|
-
Logic = "logic",// Focus on testability and complexity
|
|
974
|
-
UI = "ui",// Focus on consistency and context (lower penalty for magic literals)
|
|
975
|
-
Cost = "cost",// Focus on token waste (duplication and fragmentation)
|
|
976
|
-
Security = "security"
|
|
977
|
-
}
|
|
978
|
-
/**
|
|
979
|
-
* Project-type-aware tool weight presets.
|
|
980
|
-
*/
|
|
981
|
-
declare const SCORING_PROFILES: Record<ScoringProfile, Record<string, number>>;
|
|
982
|
-
/**
|
|
983
|
-
* Context budget thresholds per tier.
|
|
984
|
-
*/
|
|
985
|
-
declare const CONTEXT_TIER_THRESHOLDS: Record<ModelContextTier, {
|
|
986
|
-
idealTokens: number;
|
|
987
|
-
criticalTokens: number;
|
|
988
|
-
idealDepth: number;
|
|
989
|
-
}>;
|
|
990
|
-
/**
|
|
991
|
-
* Project-size-adjusted minimum thresholds.
|
|
992
|
-
*/
|
|
993
|
-
declare const SIZE_ADJUSTED_THRESHOLDS: Record<string, number>;
|
|
994
|
-
/**
|
|
995
|
-
* Determine project size tier based on the total number of files
|
|
996
|
-
*
|
|
997
|
-
* @param fileCount Total number of files in the project
|
|
998
|
-
* @returns A string identifier for the project size tier (xs, small, medium, large, enterprise)
|
|
999
|
-
*/
|
|
1000
|
-
declare function getProjectSizeTier(fileCount: number): keyof typeof SIZE_ADJUSTED_THRESHOLDS;
|
|
1001
|
-
/**
|
|
1002
|
-
* Calculate the recommended minimum AI readiness threshold for a project
|
|
1003
|
-
*
|
|
1004
|
-
* @param fileCount Total number of files in the project
|
|
1005
|
-
* @param modelTier The model context tier targeted (compact, standard, extended, frontier)
|
|
1006
|
-
* @returns The recommended score threshold (0-100)
|
|
1007
|
-
*/
|
|
1008
|
-
declare function getRecommendedThreshold(fileCount: number, modelTier?: ModelContextTier): number;
|
|
1009
|
-
/**
|
|
1010
|
-
* Normalize a tool name from a shorthand or alias to its canonical ID
|
|
1011
|
-
*
|
|
1012
|
-
* @param shortName The tool shorthand or alias name
|
|
1013
|
-
* @returns The canonical tool ID
|
|
1014
|
-
*/
|
|
1015
|
-
declare function normalizeToolName(shortName: string): string;
|
|
1016
|
-
/**
|
|
1017
|
-
* Retrieve the weight for a specific tool, considering overrides and profiles
|
|
1018
|
-
*
|
|
1019
|
-
* @param toolName The canonical tool ID
|
|
1020
|
-
* @param toolConfig Optional configuration for the tool containing a weight
|
|
1021
|
-
* @param cliOverride Optional weight override from the CLI
|
|
1022
|
-
* @param profile Optional scoring profile to use
|
|
1023
|
-
* @returns The weight to be used for this tool in overall scoring
|
|
1024
|
-
*/
|
|
1025
|
-
declare function getToolWeight(toolName: string, toolConfig?: {
|
|
1026
|
-
scoreWeight?: number;
|
|
1027
|
-
}, cliOverride?: number, profile?: ScoringProfile): number;
|
|
1028
|
-
/**
|
|
1029
|
-
* Parse a comma-separated weight string (e.g. "patterns:30,context:10")
|
|
1030
|
-
*
|
|
1031
|
-
* @param weightStr The raw weight string from the CLI or config
|
|
1032
|
-
* @returns A Map of tool IDs to their parsed weights
|
|
1033
|
-
*/
|
|
1034
|
-
declare function parseWeightString(weightStr?: string): Map<string, number>;
|
|
1035
|
-
/**
|
|
1036
|
-
* Calculate the overall consolidated AI Readiness Score
|
|
1037
|
-
*
|
|
1038
|
-
* @param toolOutputs Map of tool IDs to their individual scoring outputs
|
|
1039
|
-
* @param config Optional global configuration
|
|
1040
|
-
* @param cliWeights Optional weight overrides from the CLI
|
|
1041
|
-
* @returns Consolidate ScoringResult including overall score and rating
|
|
1042
|
-
*/
|
|
1043
|
-
declare function calculateOverallScore(toolOutputs: Map<string, ToolScoringOutput>, config?: any, cliWeights?: Map<string, number>): ScoringResult;
|
|
1044
|
-
/**
|
|
1045
|
-
* Convert numeric score to rating category
|
|
1046
|
-
*
|
|
1047
|
-
* @param score The numerical AI readiness score (0-100)
|
|
1048
|
-
* @returns The corresponding ReadinessRating category
|
|
1049
|
-
*/
|
|
1050
|
-
declare function getRating(score: number): ReadinessRating;
|
|
1051
|
-
/**
|
|
1052
|
-
* Convert score to rating with project-size awareness.
|
|
1053
|
-
*
|
|
1054
|
-
* @param score The numerical AI readiness score
|
|
1055
|
-
* @param fileCount Total number of files in the project
|
|
1056
|
-
* @param modelTier The model context tier being targeted
|
|
1057
|
-
* @returns The size-adjusted ReadinessRating
|
|
1058
|
-
*/
|
|
1059
|
-
declare function getRatingWithContext(score: number, fileCount: number, modelTier?: ModelContextTier): ReadinessRating;
|
|
1060
|
-
/**
|
|
1061
|
-
* Get rating display properties (emoji and color)
|
|
1062
|
-
*
|
|
1063
|
-
* @param rating The readiness rating category
|
|
1064
|
-
* @returns Object containing display emoji and color string
|
|
1065
|
-
*/
|
|
1066
|
-
declare function getRatingDisplay(rating: ReadinessRating | string): {
|
|
1067
|
-
emoji: string;
|
|
1068
|
-
color: string;
|
|
1069
|
-
};
|
|
1070
|
-
/**
|
|
1071
|
-
* Format score for human-readable console display
|
|
1072
|
-
*
|
|
1073
|
-
* @param result The consolidated scoring result
|
|
1074
|
-
* @returns Formatted string for display
|
|
1075
|
-
*/
|
|
1076
|
-
declare function formatScore(result: ScoringResult): string;
|
|
1077
|
-
/**
|
|
1078
|
-
* Format individual tool score for detailed console display
|
|
1079
|
-
*
|
|
1080
|
-
* @param output The scoring output for a single tool
|
|
1081
|
-
* @returns Formatted string with factors and recommendations
|
|
1082
|
-
*/
|
|
1083
|
-
declare function formatToolScore(output: ToolScoringOutput): string;
|
|
1084
|
-
|
|
1085
|
-
/**
|
|
1086
|
-
* Visualization utilities for generating HTML from graph data
|
|
1087
|
-
*/
|
|
1088
|
-
|
|
1089
|
-
/**
|
|
1090
|
-
* Generate HTML visualization from graph data
|
|
1091
|
-
* Creates an interactive HTML page with a canvas-based graph visualization
|
|
1092
|
-
*
|
|
1093
|
-
* @param graph - The graph data to visualize
|
|
1094
|
-
* @returns HTML string representing the interactive visualization
|
|
1095
|
-
*/
|
|
1096
|
-
declare function generateHTML(graph: GraphData): string;
|
|
1097
|
-
|
|
1098
|
-
export { type AIReadyConfig, type AcceptancePrediction, type AiSignalClarityConfig, type AnalysisResult, AnalysisResultSchema, AnalysisStatus, AnalysisStatusSchema, type BaseToolConfig, type BusinessReport, COMMON_FINE_TUNING_OPTIONS, CONTEXT_TIER_THRESHOLDS, type CommonASTNode, type ComprehensionDifficulty, type ContextAnalyzerConfig, type CostConfig, DEFAULT_TOOL_WEIGHTS, type ExportInfo, FRIENDLY_TOOL_NAMES, GLOBAL_INFRA_OPTIONS, GLOBAL_SCAN_OPTIONS, type GraphData, type GraphEdge, type GraphIssueSeverity, type GraphMetadata, type GraphNode, type ImportInfo, type Issue, IssueSchema, IssueType, IssueTypeSchema, LANGUAGE_EXTENSIONS, Language, type LanguageConfig, type LanguageParser, type Location, LocationSchema, type Metrics, MetricsSchema, type ModelContextTier, ModelTier, ModelTierSchema, type NamingConsistencyConfig, type NamingConvention, ParseError, type ParseResult, type ParseStatistics, type PatternDetectConfig, type ProductivityImpact, ReadinessRating, RecommendationPriority, type Report, SCORING_PROFILES, SIZE_ADJUSTED_THRESHOLDS, type ScanOptions, type ScoringConfig, ScoringProfile, type ScoringResult, Severity, SeveritySchema, type SourceLocation, type SourceRange, type SpokeOutput, SpokeOutputSchema, type SpokeSummary, SpokeSummarySchema, TOOL_NAME_MAP, type TechnicalValueChain, type TechnicalValueChainSummary, type TokenBudget, ToolName, ToolNameSchema, type ToolScoringOutput, type UnifiedReport, UnifiedReportSchema, calculateOverallScore, formatScore, formatToolScore, generateHTML, getProjectSizeTier, getRating, getRatingDisplay, getRatingWithContext, getRecommendedThreshold, getToolWeight, normalizeToolName, parseWeightString };
|
|
1
|
+
export { e as AIReadyConfig, g as AcceptancePrediction, A as AnalysisResult, o as AnalysisStatus, B as BusinessMetrics, q as COMMON_FINE_TUNING_OPTIONS, r as CONTEXT_TIER_THRESHOLDS, s as CommonASTNode, h as ComprehensionDifficulty, t as Config, C as CostConfig, D as DEFAULT_TOOL_WEIGHTS, l as ExportInfo, u as FRIENDLY_TOOL_NAMES, v as FileContent, G as GLOBAL_INFRA_OPTIONS, w as GLOBAL_SCAN_OPTIONS, x as GraphData, y as GraphEdge, z as GraphIssueSeverity, H as GraphMetadata, J as GraphNode, I as ImportInfo, K as Issue, Q as IssueType, U as LANGUAGE_EXTENSIONS, k as Language, V as LanguageConfig, L as LanguageParser, W as Location, Y as Metrics, M as ModelContextTier, N as NamingConvention, a0 as ParseError, m as ParseResult, a1 as ParseStatistics, P as ProductivityImpact, a2 as ReadinessRating, a3 as RecommendationPriority, a4 as SCORING_PROFILES, a5 as SIZE_ADJUSTED_THRESHOLDS, S as ScanOptions, a6 as ScanResult, a7 as ScoringConfig, a8 as ScoringProfile, a9 as ScoringResult, c as Severity, c as SeverityType, ab as SourceLocation, ac as SourceRange, a as SpokeOutput, ag as TOOL_NAME_MAP, j as TechnicalValueChain, i as TechnicalValueChainSummary, f as TokenBudget, T as ToolName, ai as ToolOptions, aj as ToolOutput, b as ToolScoringOutput, ak as UnifiedReport, al as UnifiedReportSchema, am as calculateOverallScore, an as formatScore, ao as formatToolScore, ap as generateHTML, aq as getProjectSizeTier, ar as getRating, as as getRatingDisplay, at as getRatingSlug, au as getRatingWithContext, av as getRecommendedThreshold, aw as getToolWeight, ax as normalizeToolName, ay as parseWeightString } from './client-D-cn9ydj.mjs';
|
|
2
|
+
import 'zod';
|