@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.
Files changed (79) hide show
  1. package/dist/__tests__/parser-factory.test.d.ts +1 -1
  2. package/dist/__tests__/parser-factory.test.js +62 -50
  3. package/dist/__tests__/python-parser.test.d.ts +1 -1
  4. package/dist/__tests__/python-parser.test.js +111 -109
  5. package/dist/__tests__/scoring.test.d.ts +1 -1
  6. package/dist/__tests__/scoring.test.js +193 -176
  7. package/dist/chunk-3YI4IS3D.mjs +191 -173
  8. package/dist/chunk-5HIXDC3X.mjs +273 -251
  9. package/dist/chunk-5V3L53AE.mjs +805 -0
  10. package/dist/chunk-CKVKHN3G.mjs +228 -211
  11. package/dist/chunk-COHIBX3Q.mjs +213 -195
  12. package/dist/chunk-CWRCDSKZ.mjs +91 -82
  13. package/dist/chunk-D3D3NCRR.mjs +147 -129
  14. package/dist/chunk-HCFYP7UD.mjs +805 -0
  15. package/dist/chunk-HFLFBA6F.mjs +79 -72
  16. package/dist/chunk-HKSARRCD.mjs +66 -58
  17. package/dist/chunk-JJ5JL5FX.mjs +91 -82
  18. package/dist/chunk-KDSTXVLQ.mjs +724 -0
  19. package/dist/chunk-KI7XORTN.mjs +91 -82
  20. package/dist/chunk-LTMHFNFK.mjs +690 -0
  21. package/dist/chunk-LTNXTXRI.mjs +228 -211
  22. package/dist/chunk-M22BXHBR.mjs +805 -0
  23. package/dist/chunk-MH3A3LX6.mjs +200 -182
  24. package/dist/chunk-NGHT7JOG.mjs +697 -0
  25. package/dist/chunk-OQ6IGDXG.mjs +147 -129
  26. package/dist/chunk-QAFB3HXQ.mjs +181 -165
  27. package/dist/chunk-QQBKXHLU.mjs +678 -0
  28. package/dist/chunk-RDHYGES7.mjs +678 -0
  29. package/dist/chunk-SWTDBVYJ.mjs +228 -213
  30. package/dist/chunk-UIWL5JQB.mjs +79 -72
  31. package/dist/chunk-UQGI67WR.mjs +79 -72
  32. package/dist/chunk-UTZOO4XO.mjs +147 -131
  33. package/dist/chunk-X4F46I5L.mjs +213 -195
  34. package/dist/chunk-XKK7YHPX.mjs +204 -186
  35. package/dist/chunk-YCA4FTEK.mjs +190 -172
  36. package/dist/chunk-ZSZRRTJM.mjs +719 -0
  37. package/dist/client-BgmiMoil.d.mts +1344 -0
  38. package/dist/client-BgmiMoil.d.ts +1344 -0
  39. package/dist/client-BxGrPuuN.d.mts +1191 -0
  40. package/dist/client-BxGrPuuN.d.ts +1191 -0
  41. package/dist/client-D-cn9ydj.d.mts +1136 -0
  42. package/dist/client-D-cn9ydj.d.ts +1136 -0
  43. package/dist/client-D9seCH4K.d.mts +1334 -0
  44. package/dist/client-D9seCH4K.d.ts +1334 -0
  45. package/dist/client-DIXIh7rw.d.mts +1193 -0
  46. package/dist/client-DIXIh7rw.d.ts +1193 -0
  47. package/dist/client-DVHXWOHw.d.mts +1245 -0
  48. package/dist/client-DVHXWOHw.d.ts +1245 -0
  49. package/dist/client.d.mts +2 -1098
  50. package/dist/client.d.ts +2 -1098
  51. package/dist/client.js +23 -43
  52. package/dist/client.mjs +3 -25
  53. package/dist/index.d.mts +329 -107
  54. package/dist/index.d.ts +329 -107
  55. package/dist/index.js +329 -340
  56. package/dist/index.mjs +305 -322
  57. package/dist/parsers/parser-factory.d.ts +45 -45
  58. package/dist/parsers/parser-factory.js +86 -84
  59. package/dist/parsers/python-parser.d.ts +33 -28
  60. package/dist/parsers/python-parser.js +224 -222
  61. package/dist/parsers/typescript-parser.d.ts +15 -10
  62. package/dist/parsers/typescript-parser.js +223 -197
  63. package/dist/scoring.d.ts +59 -49
  64. package/dist/scoring.js +129 -127
  65. package/dist/types/language.d.ts +104 -93
  66. package/dist/types/language.js +23 -23
  67. package/dist/types.d.ts +105 -87
  68. package/dist/types.js +1 -1
  69. package/dist/utils/ast-parser.d.ts +42 -33
  70. package/dist/utils/ast-parser.js +159 -162
  71. package/dist/utils/cli-helpers.d.ts +27 -10
  72. package/dist/utils/cli-helpers.js +45 -43
  73. package/dist/utils/config.d.ts +8 -3
  74. package/dist/utils/config.js +67 -69
  75. package/dist/utils/file-scanner.d.ts +1 -1
  76. package/dist/utils/file-scanner.js +80 -76
  77. package/dist/utils/metrics.d.ts +1 -1
  78. package/dist/utils/metrics.js +2 -2
  79. package/package.json +1 -1
package/dist/client.d.mts CHANGED
@@ -1,1098 +1,2 @@
1
- import { z } from 'zod';
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';