@aiready/core 0.23.1 → 0.23.3

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 -1094
  50. package/dist/client.d.ts +2 -1094
  51. package/dist/client.js +23 -43
  52. package/dist/client.mjs +3 -25
  53. package/dist/index.d.mts +380 -108
  54. package/dist/index.d.ts +380 -108
  55. package/dist/index.js +609 -445
  56. package/dist/index.mjs +587 -429
  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 +2 -2
package/dist/client.d.ts CHANGED
@@ -1,1094 +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
- /** Language-specific exceptions (e.g., __init__ in Python) */
784
- exceptions?: string[];
785
- }
786
- /**
787
- * Language-specific configuration
788
- */
789
- interface LanguageConfig {
790
- language: Language;
791
- /** File extensions for this language */
792
- extensions: string[];
793
- /** Naming conventions */
794
- namingConventions: NamingConvention;
795
- /** Common abbreviations allowed */
796
- allowedAbbreviations?: string[];
797
- /** Language-specific keywords to ignore */
798
- keywords?: string[];
799
- }
800
- /**
801
- * Abstract interface for language parsers
802
- * Each language implementation should implement this interface
803
- */
804
- interface LanguageParser {
805
- /** Language this parser handles */
806
- readonly language: Language;
807
- /** File extensions this parser supports */
808
- readonly extensions: string[];
809
- /**
810
- * Parse source code and extract structure
811
- * @param code - Source code to parse
812
- * @param filePath - Path to the file (for context)
813
- * @returns Parse result with exports and imports
814
- * @throws ParseError if code has syntax errors
815
- */
816
- parse(code: string, filePath: string): ParseResult;
817
- /**
818
- * Get naming conventions for this language
819
- */
820
- getNamingConventions(): NamingConvention;
821
- /**
822
- * Initialize the parser (e.g. load WASM)
823
- */
824
- initialize(): Promise<void>;
825
- /**
826
- * Check if this parser can handle a file
827
- * @param filePath - File path to check
828
- */
829
- canHandle(filePath: string): boolean;
830
- /**
831
- * Get the raw AST for advanced querying
832
- * @param code - Source code to parse
833
- * @param filePath - Path to the file
834
- */
835
- getAST(code: string, filePath: string): Promise<any>;
836
- /**
837
- * Analyze structural metadata for a node (e.g. purity)
838
- * @param node - The AST node to analyze (language specific)
839
- * @param code - The original source code
840
- */
841
- analyzeMetadata(node: any, code: string): Partial<ExportInfo>;
842
- }
843
- /**
844
- * Parser error with location information
845
- */
846
- declare class ParseError extends Error {
847
- readonly filePath: string;
848
- readonly loc?: SourceLocation | undefined;
849
- constructor(message: string, filePath: string, loc?: SourceLocation | undefined);
850
- }
851
- /**
852
- * Statistics about parsed code
853
- */
854
- interface ParseStatistics {
855
- language: Language;
856
- filesAnalyzed: number;
857
- totalExports: number;
858
- totalImports: number;
859
- parseErrors: number;
860
- warnings: number;
861
- }
862
-
863
- /**
864
- * Priority levels for actionable recommendations
865
- */
866
- declare enum RecommendationPriority {
867
- High = "high",
868
- Medium = "medium",
869
- Low = "low"
870
- }
871
- /**
872
- * AI Readiness Rating categories
873
- */
874
- declare enum ReadinessRating {
875
- Excellent = "Excellent",
876
- Good = "Good",
877
- Fair = "Fair",
878
- NeedsWork = "Needs Work",
879
- Critical = "Critical"
880
- }
881
- /**
882
- * Output structure for a single tool's scoring analysis
883
- */
884
- interface ToolScoringOutput {
885
- /** Unique tool identifier (e.g., "pattern-detect") */
886
- toolName: string;
887
- /** Normalized 0-100 score for this tool */
888
- score: number;
889
- /** AI token budget unit economics (v0.13+) */
890
- tokenBudget?: TokenBudget;
891
- /** Raw metrics used to calculate the score */
892
- rawMetrics: Record<string, any>;
893
- /** Factors that influenced the score */
894
- factors: Array<{
895
- /** Human-readable name of the factor */
896
- name: string;
897
- /** Points contribution (positive or negative) */
898
- impact: number;
899
- /** Explanation of the factor's impact */
900
- description: string;
901
- }>;
902
- /** Actionable recommendations with estimated impact */
903
- recommendations: Array<{
904
- /** The recommended action to take */
905
- action: string;
906
- /** Potential points increase if implemented */
907
- estimatedImpact: number;
908
- /** Implementation priority */
909
- priority: RecommendationPriority | 'high' | 'medium' | 'low';
910
- }>;
911
- }
912
- /**
913
- * Consolidated scoring result across all tools
914
- */
915
- interface ScoringResult {
916
- /** Overall AI Readiness Score (0-100) */
917
- overall: number;
918
- /** Rating category representing the overall readiness */
919
- rating: ReadinessRating | string;
920
- /** Timestamp of score calculation */
921
- timestamp: string;
922
- /** Tools that contributed to this score */
923
- toolsUsed: string[];
924
- /** Breakdown by individual tool */
925
- breakdown: ToolScoringOutput[];
926
- /** Internal calculation details for transparency */
927
- calculation: {
928
- /** Textual representation of the calculation formula */
929
- formula: string;
930
- /** Weights applied to each tool */
931
- weights: Record<string, number>;
932
- /** Simplified normalized formula output */
933
- normalized: string;
934
- };
935
- }
936
- /**
937
- * Configuration options for the scoring system
938
- */
939
- interface ScoringConfig {
940
- /** Minimum passing score (CLI will exit with non-zero if below) */
941
- threshold?: number;
942
- /** Whether to show the detailed tool-by-tool breakdown */
943
- showBreakdown?: boolean;
944
- /** Path to a baseline report JSON for trend comparison */
945
- compareBaseline?: string;
946
- /** Target file path to persist the calculated score */
947
- saveTo?: string;
948
- }
949
- /**
950
- * Default weights for known tools. Weights sum to 100 and read directly as
951
- * percentage contribution to the overall score.
952
- * New tools get weight of 5 if not specified.
953
- */
954
- declare const DEFAULT_TOOL_WEIGHTS: Record<string, number>;
955
- /**
956
- * Tool name normalization map (shorthand -> canonical name)
957
- */
958
- declare const TOOL_NAME_MAP: Record<string, string>;
959
- /**
960
- * Model context tiers for context-aware threshold calibration.
961
- */
962
- type ModelContextTier = 'compact' | 'standard' | 'extended' | 'frontier';
963
- /**
964
- * Scoring profiles for project-type-aware weighting.
965
- */
966
- declare enum ScoringProfile {
967
- Default = "default",
968
- Agentic = "agentic",// Focus on AI agent navigation and signal
969
- Logic = "logic",// Focus on testability and complexity
970
- UI = "ui",// Focus on consistency and context (lower penalty for magic literals)
971
- Cost = "cost",// Focus on token waste (duplication and fragmentation)
972
- Security = "security"
973
- }
974
- /**
975
- * Project-type-aware tool weight presets.
976
- */
977
- declare const SCORING_PROFILES: Record<ScoringProfile, Record<string, number>>;
978
- /**
979
- * Context budget thresholds per tier.
980
- */
981
- declare const CONTEXT_TIER_THRESHOLDS: Record<ModelContextTier, {
982
- idealTokens: number;
983
- criticalTokens: number;
984
- idealDepth: number;
985
- }>;
986
- /**
987
- * Project-size-adjusted minimum thresholds.
988
- */
989
- declare const SIZE_ADJUSTED_THRESHOLDS: Record<string, number>;
990
- /**
991
- * Determine project size tier based on the total number of files
992
- *
993
- * @param fileCount Total number of files in the project
994
- * @returns A string identifier for the project size tier (xs, small, medium, large, enterprise)
995
- */
996
- declare function getProjectSizeTier(fileCount: number): keyof typeof SIZE_ADJUSTED_THRESHOLDS;
997
- /**
998
- * Calculate the recommended minimum AI readiness threshold for a project
999
- *
1000
- * @param fileCount Total number of files in the project
1001
- * @param modelTier The model context tier targeted (compact, standard, extended, frontier)
1002
- * @returns The recommended score threshold (0-100)
1003
- */
1004
- declare function getRecommendedThreshold(fileCount: number, modelTier?: ModelContextTier): number;
1005
- /**
1006
- * Normalize a tool name from a shorthand or alias to its canonical ID
1007
- *
1008
- * @param shortName The tool shorthand or alias name
1009
- * @returns The canonical tool ID
1010
- */
1011
- declare function normalizeToolName(shortName: string): string;
1012
- /**
1013
- * Retrieve the weight for a specific tool, considering overrides and profiles
1014
- *
1015
- * @param toolName The canonical tool ID
1016
- * @param toolConfig Optional configuration for the tool containing a weight
1017
- * @param cliOverride Optional weight override from the CLI
1018
- * @param profile Optional scoring profile to use
1019
- * @returns The weight to be used for this tool in overall scoring
1020
- */
1021
- declare function getToolWeight(toolName: string, toolConfig?: {
1022
- scoreWeight?: number;
1023
- }, cliOverride?: number, profile?: ScoringProfile): number;
1024
- /**
1025
- * Parse a comma-separated weight string (e.g. "patterns:30,context:10")
1026
- *
1027
- * @param weightStr The raw weight string from the CLI or config
1028
- * @returns A Map of tool IDs to their parsed weights
1029
- */
1030
- declare function parseWeightString(weightStr?: string): Map<string, number>;
1031
- /**
1032
- * Calculate the overall consolidated AI Readiness Score
1033
- *
1034
- * @param toolOutputs Map of tool IDs to their individual scoring outputs
1035
- * @param config Optional global configuration
1036
- * @param cliWeights Optional weight overrides from the CLI
1037
- * @returns Consolidate ScoringResult including overall score and rating
1038
- */
1039
- declare function calculateOverallScore(toolOutputs: Map<string, ToolScoringOutput>, config?: any, cliWeights?: Map<string, number>): ScoringResult;
1040
- /**
1041
- * Convert numeric score to rating category
1042
- *
1043
- * @param score The numerical AI readiness score (0-100)
1044
- * @returns The corresponding ReadinessRating category
1045
- */
1046
- declare function getRating(score: number): ReadinessRating;
1047
- /**
1048
- * Convert score to rating with project-size awareness.
1049
- *
1050
- * @param score The numerical AI readiness score
1051
- * @param fileCount Total number of files in the project
1052
- * @param modelTier The model context tier being targeted
1053
- * @returns The size-adjusted ReadinessRating
1054
- */
1055
- declare function getRatingWithContext(score: number, fileCount: number, modelTier?: ModelContextTier): ReadinessRating;
1056
- /**
1057
- * Get rating display properties (emoji and color)
1058
- *
1059
- * @param rating The readiness rating category
1060
- * @returns Object containing display emoji and color string
1061
- */
1062
- declare function getRatingDisplay(rating: ReadinessRating | string): {
1063
- emoji: string;
1064
- color: string;
1065
- };
1066
- /**
1067
- * Format score for human-readable console display
1068
- *
1069
- * @param result The consolidated scoring result
1070
- * @returns Formatted string for display
1071
- */
1072
- declare function formatScore(result: ScoringResult): string;
1073
- /**
1074
- * Format individual tool score for detailed console display
1075
- *
1076
- * @param output The scoring output for a single tool
1077
- * @returns Formatted string with factors and recommendations
1078
- */
1079
- declare function formatToolScore(output: ToolScoringOutput): string;
1080
-
1081
- /**
1082
- * Visualization utilities for generating HTML from graph data
1083
- */
1084
-
1085
- /**
1086
- * Generate HTML visualization from graph data
1087
- * Creates an interactive HTML page with a canvas-based graph visualization
1088
- *
1089
- * @param graph - The graph data to visualize
1090
- * @returns HTML string representing the interactive visualization
1091
- */
1092
- declare function generateHTML(graph: GraphData): string;
1093
-
1094
- 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.js';
2
+ import 'zod';