@principal-ai/codebase-composition 0.2.22 → 0.2.25

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 (36) hide show
  1. package/dist/helpers/QualityMetricsCalculator.d.ts +26 -7
  2. package/dist/helpers/QualityMetricsCalculator.d.ts.map +1 -1
  3. package/dist/helpers/QualityMetricsCalculator.js +149 -107
  4. package/dist/helpers/QualityMetricsCalculator.js.map +1 -1
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/modules/PackageLayerModule.d.ts.map +1 -1
  10. package/dist/modules/PackageLayerModule.js +169 -3
  11. package/dist/modules/PackageLayerModule.js.map +1 -1
  12. package/dist/strategies/go-tools.d.ts +27 -0
  13. package/dist/strategies/go-tools.d.ts.map +1 -0
  14. package/dist/strategies/go-tools.js +184 -0
  15. package/dist/strategies/go-tools.js.map +1 -0
  16. package/dist/strategies/index.d.ts +37 -0
  17. package/dist/strategies/index.d.ts.map +1 -0
  18. package/dist/strategies/index.js +73 -0
  19. package/dist/strategies/index.js.map +1 -0
  20. package/dist/strategies/node-tools.d.ts +21 -0
  21. package/dist/strategies/node-tools.d.ts.map +1 -0
  22. package/dist/strategies/node-tools.js +141 -0
  23. package/dist/strategies/node-tools.js.map +1 -0
  24. package/dist/strategies/python-tools.d.ts +25 -0
  25. package/dist/strategies/python-tools.d.ts.map +1 -0
  26. package/dist/strategies/python-tools.js +191 -0
  27. package/dist/strategies/python-tools.js.map +1 -0
  28. package/dist/strategies/rust-tools.d.ts +23 -0
  29. package/dist/strategies/rust-tools.d.ts.map +1 -0
  30. package/dist/strategies/rust-tools.js +176 -0
  31. package/dist/strategies/rust-tools.js.map +1 -0
  32. package/dist/strategies/tool-detection.d.ts +137 -0
  33. package/dist/strategies/tool-detection.d.ts.map +1 -0
  34. package/dist/strategies/tool-detection.js +13 -0
  35. package/dist/strategies/tool-detection.js.map +1 -0
  36. package/package.json +2 -2
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import type { PackageCommand, QualityMetrics, LensOperation, ConfigFile } from '../types/layer-types';
5
5
  import { type LensReadiness } from '@principal-ai/codebase-quality-lenses';
6
+ import { type Ecosystem, type PackageData, type ToolAvailability, type InstallInstruction } from '../strategies';
6
7
  interface DetectedLens {
7
8
  lensId: string;
8
9
  operations: Set<LensOperation>;
@@ -48,18 +49,36 @@ export declare class QualityMetricsCalculator {
48
49
  missingLenses: string[];
49
50
  };
50
51
  /**
51
- * Calculate lens readiness for all known lenses
52
- * Checks package data against lens requirements
52
+ * Extended lens readiness result with ecosystem-aware install instructions
53
53
  */
54
- static calculateLensReadiness(dependencies: Record<string, string>, devDependencies: Record<string, string>, commands: PackageCommand[], configFiles?: Record<string, ConfigFile | undefined>): Record<string, LensReadiness>;
54
+ static calculateLensReadiness(packageType: 'package' | 'node' | 'python' | 'cargo' | 'go', packageData: PackageData, configFiles: Record<string, ConfigFile | undefined>, lensIds?: string[]): Record<string, LensReadinessExtended>;
55
55
  /**
56
- * Check requirements for a single lens
56
+ * Get install instructions for a tool in a specific ecosystem
57
57
  */
58
- private static checkLensRequirements;
58
+ static getToolInstallInstructions(toolId: string, packageType: 'package' | 'node' | 'python' | 'cargo' | 'go', packageManager?: string): InstallInstruction;
59
59
  /**
60
- * Check if a file path matches a config pattern
60
+ * Check if a tool is available in a package using ecosystem-specific detection
61
61
  */
62
- private static matchesConfigPattern;
62
+ static checkToolAvailability(toolId: string, packageType: 'package' | 'node' | 'python' | 'cargo' | 'go', packageData: PackageData, configFiles: Record<string, ConfigFile | undefined>): ToolAvailability;
63
+ /**
64
+ * Get the default command to run a tool
65
+ */
66
+ static getToolDefaultCommand(toolId: string, packageType: 'package' | 'node' | 'python' | 'cargo' | 'go'): string;
67
+ }
68
+ /**
69
+ * Extended lens readiness with ecosystem-specific information
70
+ */
71
+ export interface LensReadinessExtended extends LensReadiness {
72
+ /** The ecosystem this tool belongs to */
73
+ ecosystem: Ecosystem;
74
+ /** Detailed tool availability information */
75
+ toolAvailability: ToolAvailability;
76
+ /** Ecosystem-appropriate install instructions */
77
+ installInstructions: InstallInstruction;
78
+ /** Default command to run the tool */
79
+ defaultCommand: string;
80
+ /** Whether this is a built-in toolchain tool */
81
+ isToolchainTool: boolean;
63
82
  }
64
83
  export {};
65
84
  //# sourceMappingURL=QualityMetricsCalculator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QualityMetricsCalculator.d.ts","sourceRoot":"","sources":["../../src/helpers/QualityMetricsCalculator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,uCAAuC,CAAC;AAwF/C,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CAChC;AAED,qBAAa,wBAAwB;IACnC;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAoChF;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAW1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAkCrC;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CACrB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACzC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,cAAc,CAAC;IAkB1B;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,EAAE;IAI9E;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,EAAE;IAK5E;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAC5B,QAAQ,EAAE,cAAc,EAAE,EAC1B,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;IAclC;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,QAAQ,EAAE,cAAc,EAAE,EAC1B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC,GACnD,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAgBhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IA0GpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAapC"}
1
+ {"version":3,"file":"QualityMetricsCalculator.d.ts","sourceRoot":"","sources":["../../src/helpers/QualityMetricsCalculator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAGxB,MAAM,eAAe,CAAC;AAiKvB,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CAChC;AAED,qBAAa,wBAAwB;IACnC;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAoChF;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAW1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAoCrC;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CACrB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACzC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,cAAc,CAAC;IAkB1B;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,EAAE;IAI9E;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,EAAE;IAK5E;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAC5B,QAAQ,EAAE,cAAc,EAAE,EAC1B,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;IAkBlC;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAC3B,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,EAC3D,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC,EACnD,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAyExC;;OAEG;IACH,MAAM,CAAC,0BAA0B,CAC/B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,EAC3D,cAAc,CAAC,EAAE,MAAM,GACtB,kBAAkB;IAMrB;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,EAC3D,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC,GAClD,gBAAgB;IAMnB;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAC1D,MAAM;CAKV;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D,yCAAyC;IACzC,SAAS,EAAE,SAAS,CAAC;IAErB,6CAA6C;IAC7C,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,iDAAiD;IACjD,mBAAmB,EAAE,kBAAkB,CAAC;IAExC,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IAEvB,gDAAgD;IAChD,eAAe,EAAE,OAAO,CAAC;CAC1B"}
@@ -2,17 +2,31 @@
2
2
  * Calculate quality metrics from lens commands
3
3
  */
4
4
  import { ALL_LENS_REQUIREMENTS, } from '@principal-ai/codebase-quality-lenses';
5
+ import { getToolDetectionStrategy, packageTypeToEcosystem, } from '../strategies/index.js';
5
6
  // Standard lens IDs and their corresponding hexagon metrics
6
7
  const LENS_TO_METRIC_MAP = {
7
- // Linting tools
8
+ // Linting tools (JavaScript/TypeScript)
8
9
  'eslint': 'linting',
9
10
  'biome': 'linting',
10
11
  'biome-lint': 'linting',
11
12
  'oxlint': 'linting',
12
- // Type checking tools
13
+ // Linting tools (Python)
14
+ 'ruff': 'linting',
15
+ 'flake8': 'linting',
16
+ 'pylint': 'linting',
17
+ // Linting tools (Go)
18
+ 'golangci-lint': 'linting',
19
+ 'staticcheck': 'linting',
20
+ 'go-vet': 'linting',
21
+ // Linting tools (Rust)
22
+ 'clippy': 'linting',
23
+ // Type checking tools (JavaScript/TypeScript)
13
24
  'typescript': 'types',
14
25
  'flow': 'types',
15
- // Testing tools
26
+ // Type checking tools (Python)
27
+ 'mypy': 'types',
28
+ 'pyright': 'types',
29
+ // Testing tools (JavaScript/TypeScript)
16
30
  'test': 'tests',
17
31
  'jest': 'tests',
18
32
  'vitest': 'tests',
@@ -20,12 +34,33 @@ const LENS_TO_METRIC_MAP = {
20
34
  'mocha': 'tests',
21
35
  'playwright': 'tests',
22
36
  'cypress': 'tests',
23
- // Formatting tools
37
+ // Testing tools (Python)
38
+ 'pytest': 'tests',
39
+ // Testing tools (Go)
40
+ 'go-test': 'tests',
41
+ // Testing tools (Rust)
42
+ 'cargo-test': 'tests',
43
+ 'cargo-nextest': 'tests',
44
+ // Formatting tools (JavaScript/TypeScript)
24
45
  'prettier': 'formatting',
25
46
  'biome-format': 'formatting',
47
+ // Formatting tools (Python)
48
+ 'black': 'formatting',
49
+ 'isort': 'formatting',
50
+ 'ruff-format': 'formatting',
51
+ // Formatting tools (Go)
52
+ 'gofmt': 'formatting',
53
+ 'goimports': 'formatting',
54
+ // Formatting tools (Rust)
55
+ 'rustfmt': 'formatting',
26
56
  // Dead code detection
27
57
  'knip': 'deadCode',
28
58
  'depcheck': 'deadCode',
59
+ 'cargo-machete': 'deadCode',
60
+ // Security/vulnerability scanning
61
+ 'govulncheck': 'deadCode', // Maps to deadCode for now, could be its own category
62
+ 'cargo-audit': 'deadCode',
63
+ 'cargo-deny': 'deadCode',
29
64
  // Documentation
30
65
  'typedoc': 'documentation',
31
66
  'jsdoc': 'documentation',
@@ -44,25 +79,48 @@ const SCRIPT_CONTENT_PATTERNS = [
44
79
  { pattern: /\bvitest\b/, lensId: 'vitest' },
45
80
  // Jest
46
81
  { pattern: /\bjest\b/, lensId: 'jest' },
82
+ // Python tools
83
+ { pattern: /\bruff\s+(check|lint)\b/, lensId: 'ruff' },
84
+ { pattern: /\bruff\s+format\b/, lensId: 'ruff-format' },
85
+ { pattern: /\bmypy\b/, lensId: 'mypy' },
86
+ { pattern: /\bpytest\b/, lensId: 'pytest' },
87
+ { pattern: /\bpython\s+-m\s+pytest\b/, lensId: 'pytest' },
88
+ { pattern: /\bblack\b/, lensId: 'black' },
89
+ { pattern: /\bisort\b/, lensId: 'isort' },
90
+ { pattern: /\bflake8\b/, lensId: 'flake8' },
91
+ { pattern: /\bpylint\b/, lensId: 'pylint' },
92
+ { pattern: /\bpyright\b/, lensId: 'pyright' },
47
93
  ];
48
94
  // Standard lenses we expect to find
49
95
  const STANDARD_LENSES = ['eslint', 'typescript', 'test', 'prettier', 'knip', 'typedoc', 'alexandria'];
50
96
  // Fallback patterns for common script names
51
97
  const SCRIPT_TO_LENS_MAP = {
52
- // Linting
98
+ // Linting (JavaScript/TypeScript)
53
99
  'lint': 'eslint',
54
100
  'eslint': 'eslint',
55
- // Type checking
101
+ // Linting (Python)
102
+ 'ruff': 'ruff',
103
+ 'flake8': 'flake8',
104
+ 'pylint': 'pylint',
105
+ // Type checking (JavaScript/TypeScript)
56
106
  'typecheck': 'typescript',
57
107
  'type-check': 'typescript',
58
108
  'tsc': 'typescript',
59
- // Testing
109
+ // Type checking (Python)
110
+ 'mypy': 'mypy',
111
+ 'pyright': 'pyright',
112
+ // Testing (JavaScript/TypeScript)
60
113
  'test': 'test',
61
114
  'jest': 'jest',
62
115
  'vitest': 'vitest',
63
- // Formatting
116
+ // Testing (Python)
117
+ 'pytest': 'pytest',
118
+ // Formatting (JavaScript/TypeScript)
64
119
  'format': 'prettier',
65
120
  'prettier': 'prettier',
121
+ // Formatting (Python)
122
+ 'black': 'black',
123
+ 'isort': 'isort',
66
124
  // Dead code
67
125
  'knip': 'knip',
68
126
  'unused': 'knip',
@@ -128,7 +186,9 @@ export class QualityMetricsCalculator {
128
186
  let lensId = this.detectLensFromScriptContent(command.description);
129
187
  // Fall back to script name mapping
130
188
  if (!lensId) {
131
- lensId = SCRIPT_TO_LENS_MAP[command.name] || null;
189
+ // Try exact match first, then base name (before colon suffix like :ci, :coverage)
190
+ const baseName = command.name.split(':')[0];
191
+ lensId = SCRIPT_TO_LENS_MAP[command.name] || SCRIPT_TO_LENS_MAP[baseName] || null;
132
192
  }
133
193
  if (lensId) {
134
194
  if (!detectedLenses.has(lensId)) {
@@ -197,116 +257,98 @@ export class QualityMetricsCalculator {
197
257
  missingLenses
198
258
  };
199
259
  }
260
+ // ============================================================================
261
+ // Strategy-based tool detection (multi-ecosystem support)
262
+ // ============================================================================
200
263
  /**
201
- * Calculate lens readiness for all known lenses
202
- * Checks package data against lens requirements
264
+ * Extended lens readiness result with ecosystem-aware install instructions
203
265
  */
204
- static calculateLensReadiness(dependencies, devDependencies, commands, configFiles) {
266
+ static calculateLensReadiness(packageType, packageData, configFiles, lensIds) {
267
+ const ecosystem = packageTypeToEcosystem(packageType);
268
+ const strategy = getToolDetectionStrategy(ecosystem);
205
269
  const result = {};
206
- for (const [lensId, requirements] of Object.entries(ALL_LENS_REQUIREMENTS)) {
207
- result[lensId] = this.checkLensRequirements(requirements, dependencies, devDependencies, commands, configFiles);
208
- }
209
- return result;
210
- }
211
- /**
212
- * Check requirements for a single lens
213
- */
214
- static checkLensRequirements(requirements, dependencies, devDependencies, commands, configFiles) {
215
- const checks = [];
216
- const missing = [];
217
- const allDeps = { ...dependencies, ...devDependencies };
218
- // Check devDependencies
219
- for (const req of requirements.devDependencies) {
220
- const version = devDependencies[req.name] || dependencies[req.name];
221
- const satisfied = !!version;
270
+ // Get tools to check - either specified or all from ALL_LENS_REQUIREMENTS
271
+ const toolsToCheck = lensIds ?? Object.keys(ALL_LENS_REQUIREMENTS);
272
+ for (const lensId of toolsToCheck) {
273
+ const availability = strategy.detectToolAvailability(lensId, packageData, configFiles);
274
+ const installInstructions = strategy.getInstallInstructions(lensId, packageData.packageManager);
275
+ const defaultCommand = strategy.getDefaultCommand(lensId);
276
+ const isToolchain = strategy.isToolchainTool(lensId);
277
+ // Build checks array from availability
278
+ const checks = [];
279
+ // Check for tool installation
222
280
  checks.push({
223
- requirement: req,
224
- satisfied,
225
- foundValue: version,
281
+ requirement: {
282
+ type: 'devDependency',
283
+ name: lensId,
284
+ critical: true,
285
+ },
286
+ satisfied: availability.installed,
287
+ foundValue: availability.version,
226
288
  });
227
- if (!satisfied && req.critical !== false) {
228
- missing.push(req);
229
- }
230
- }
231
- // Check scripts - strict matching by script name only
232
- // The commandPattern is used for validation, not discovery
233
- for (const req of requirements.scripts) {
234
- const matchingCommand = commands.find(cmd => {
235
- // Only match by exact script name
236
- return cmd.name === req.name;
237
- });
238
- const satisfied = !!matchingCommand;
239
- checks.push({
240
- requirement: req,
241
- satisfied,
242
- foundValue: matchingCommand?.description || matchingCommand?.command,
243
- });
244
- if (!satisfied && req.critical !== false) {
245
- missing.push(req);
246
- }
247
- }
248
- // Check config files
249
- for (const req of requirements.configs) {
250
- let satisfied = false;
251
- let foundValue;
252
- // Check against configFiles object
253
- if (configFiles) {
254
- // Try the primary config name (e.g., 'eslint' for eslint.config.js)
255
- const lensConfigKey = requirements.lensId;
256
- const configFile = configFiles[lensConfigKey];
257
- if (configFile?.exists) {
258
- satisfied = true;
259
- foundValue = configFile.path;
260
- }
261
- // Check alternatives if not found
262
- if (!satisfied && req.alternatives) {
263
- for (const alt of req.alternatives) {
264
- // Check if any config file matches the alternative pattern
265
- for (const [, cf] of Object.entries(configFiles)) {
266
- if (cf?.exists && cf.path && this.matchesConfigPattern(cf.path, alt)) {
267
- satisfied = true;
268
- foundValue = cf.path;
269
- break;
270
- }
271
- }
272
- if (satisfied)
273
- break;
274
- }
275
- }
276
- }
289
+ // Check for configuration
277
290
  checks.push({
278
- requirement: req,
279
- satisfied,
280
- foundValue,
291
+ requirement: {
292
+ type: 'config',
293
+ name: `${lensId} config`,
294
+ critical: false,
295
+ },
296
+ satisfied: availability.configured,
297
+ foundValue: configFiles[lensId]?.path,
281
298
  });
282
- if (!satisfied && req.critical !== false) {
283
- missing.push(req);
299
+ // Determine missing requirements
300
+ const missing = [];
301
+ if (!availability.installed && !isToolchain) {
302
+ missing.push({
303
+ type: 'devDependency',
304
+ name: lensId,
305
+ critical: true,
306
+ suggestedFix: installInstructions.command,
307
+ });
284
308
  }
309
+ // Overall readiness
310
+ const ready = availability.installed || isToolchain;
311
+ const partial = !ready && availability.configured;
312
+ result[lensId] = {
313
+ lensId,
314
+ displayName: lensId, // Would need requirements for proper display name
315
+ ready,
316
+ partial,
317
+ checks,
318
+ missing,
319
+ // Extended fields
320
+ ecosystem,
321
+ toolAvailability: availability,
322
+ installInstructions,
323
+ defaultCommand,
324
+ isToolchainTool: isToolchain,
325
+ };
285
326
  }
286
- // Determine overall readiness
287
- const criticalMissing = missing.filter(m => m.critical !== false);
288
- const ready = criticalMissing.length === 0;
289
- const partial = !ready && checks.some(c => c.satisfied);
290
- return {
291
- lensId: requirements.lensId,
292
- displayName: requirements.displayName,
293
- ready,
294
- partial,
295
- checks,
296
- missing,
297
- };
327
+ return result;
298
328
  }
299
329
  /**
300
- * Check if a file path matches a config pattern
330
+ * Get install instructions for a tool in a specific ecosystem
301
331
  */
302
- static matchesConfigPattern(filePath, pattern) {
303
- const fileName = filePath.split('/').pop() || filePath;
304
- // Handle glob-like patterns
305
- if (pattern.includes('*')) {
306
- const regex = new RegExp('^' + pattern.replace(/\./g, '\\.').replace(/\*/g, '.*') + '$');
307
- return regex.test(fileName);
308
- }
309
- return fileName === pattern;
332
+ static getToolInstallInstructions(toolId, packageType, packageManager) {
333
+ const ecosystem = packageTypeToEcosystem(packageType);
334
+ const strategy = getToolDetectionStrategy(ecosystem);
335
+ return strategy.getInstallInstructions(toolId, packageManager);
336
+ }
337
+ /**
338
+ * Check if a tool is available in a package using ecosystem-specific detection
339
+ */
340
+ static checkToolAvailability(toolId, packageType, packageData, configFiles) {
341
+ const ecosystem = packageTypeToEcosystem(packageType);
342
+ const strategy = getToolDetectionStrategy(ecosystem);
343
+ return strategy.detectToolAvailability(toolId, packageData, configFiles);
344
+ }
345
+ /**
346
+ * Get the default command to run a tool
347
+ */
348
+ static getToolDefaultCommand(toolId, packageType) {
349
+ const ecosystem = packageTypeToEcosystem(packageType);
350
+ const strategy = getToolDetectionStrategy(ecosystem);
351
+ return strategy.getDefaultCommand(toolId);
310
352
  }
311
353
  }
312
354
  //# sourceMappingURL=QualityMetricsCalculator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QualityMetricsCalculator.js","sourceRoot":"","sources":["../../src/helpers/QualityMetricsCalculator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,qBAAqB,GAKtB,MAAM,uCAAuC,CAAC;AAE/C,4DAA4D;AAC5D,MAAM,kBAAkB,GAAyC;IAC/D,gBAAgB;IAChB,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,SAAS;IAEnB,sBAAsB;IACtB,YAAY,EAAE,OAAO;IACrB,MAAM,EAAE,OAAO;IAEf,gBAAgB;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,OAAO;IACnB,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,OAAO;IACrB,SAAS,EAAE,OAAO;IAElB,mBAAmB;IACnB,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,YAAY;IAE5B,sBAAsB;IACtB,MAAM,EAAE,UAAU;IAClB,UAAU,EAAE,UAAU;IAEtB,gBAAgB;IAChB,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,eAAe;IACxB,YAAY,EAAE,eAAe;CAC9B,CAAC;AAEF,wDAAwD;AACxD,kCAAkC;AAClC,MAAM,uBAAuB,GAA+C;IAC1E,kBAAkB;IAClB,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE;IAChD,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,UAAU,EAAE;IAEtD,sDAAsD;IACtD,EAAE,OAAO,EAAE,6BAA6B,EAAE,MAAM,EAAE,YAAY,EAAE;IAChE,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,cAAc,EAAE;IAEzD,SAAS;IACT,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;IAE3C,OAAO;IACP,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;CACxC,CAAC;AAEF,oCAAoC;AACpC,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AAEtG,4CAA4C;AAC5C,MAAM,kBAAkB,GAA2B;IACjD,UAAU;IACV,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,QAAQ;IAElB,gBAAgB;IAChB,WAAW,EAAE,YAAY;IACzB,YAAY,EAAE,YAAY;IAC1B,KAAK,EAAE,YAAY;IAEnB,UAAU;IACV,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,QAAQ;IAElB,aAAa;IACb,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,UAAU;IAEtB,YAAY;IACZ,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAEhB,gBAAgB;IAChB,MAAM,EAAE,YAAY;IACpB,YAAY,EAAE,YAAY;IAC1B,SAAS,EAAE,SAAS;CACrB,CAAC;AAOF,MAAM,OAAO,wBAAwB;IACnC;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,QAA0B;QAClD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;QAEvD,sCAAsC;QACtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACtB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACxB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAkB,CAAC;oBAE5C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wBAChC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE;4BACzB,MAAM;4BACN,UAAU,EAAE,IAAI,GAAG,EAAE;yBACtB,CAAC,CAAC;oBACL,CAAC;oBAED,cAAc,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAEtD,qCAAqC;oBACrC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;oBAC7B,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;oBACxB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,2BAA2B,CAAC,aAAiC;QAC1E,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC;QAEhC,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,uBAAuB,EAAE,CAAC;YAC1D,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;gBAChC,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,sBAAsB,CACnC,QAA0B,EAC1B,cAAyC;QAEzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,2DAA2D;YAC3D,8EAA8E;YAC9E,IAAI,MAAM,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEnE,mCAAmC;YACnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YACpD,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE;wBACzB,MAAM;wBACN,UAAU,EAAE,IAAI,GAAG,EAAE;qBACtB,CAAC,CAAC;gBACL,CAAC;gBAED,yCAAyC;gBACzC,MAAM,SAAS,GAAkB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC1F,cAAc,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAEtD,mBAAmB;gBACnB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC7B,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;gBACxB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CACrB,cAAyC,EACzC,UAAgC;QAEhC,MAAM,OAAO,GAA4B,EAAE,CAAC;QAE5C,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,SAAS,EAAE,CAAC;gBACd,6BAA6B;gBAC7B,MAAM,KAAK,GAAG,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,cAAyC;QACjE,OAAO,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,cAAyC;QAC/D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAC5B,QAA0B,EAC1B,UAAgC;QAEhC,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAClE,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAE5D,OAAO;YACL,OAAO;YACP,eAAe;YACf,aAAa;SACd,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAC3B,YAAoC,EACpC,eAAuC,EACvC,QAA0B,EAC1B,WAAoD;QAEpD,MAAM,MAAM,GAAkC,EAAE,CAAC;QAEjD,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,CACzC,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,qBAAqB,CAClC,YAA8B,EAC9B,YAAoC,EACpC,eAAuC,EACvC,QAA0B,EAC1B,WAAoD;QAEpD,MAAM,MAAM,GAA6B,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;QAExD,wBAAwB;QACxB,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC;YAE5B,MAAM,CAAC,IAAI,CAAC;gBACV,WAAW,EAAE,GAAG;gBAChB,SAAS;gBACT,UAAU,EAAE,OAAO;aACpB,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,2DAA2D;QAC3D,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC1C,kCAAkC;gBAClC,OAAO,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,CAAC,CAAC,eAAe,CAAC;YAEpC,MAAM,CAAC,IAAI,CAAC;gBACV,WAAW,EAAE,GAAG;gBAChB,SAAS;gBACT,UAAU,EAAE,eAAe,EAAE,WAAW,IAAI,eAAe,EAAE,OAAO;aACrE,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,UAA8B,CAAC;YAEnC,mCAAmC;YACnC,IAAI,WAAW,EAAE,CAAC;gBAChB,oEAAoE;gBACpE,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC;gBAC1C,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;gBAE9C,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;oBACvB,SAAS,GAAG,IAAI,CAAC;oBACjB,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;gBAC/B,CAAC;gBAED,kCAAkC;gBAClC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;oBACnC,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;wBACnC,2DAA2D;wBAC3D,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;4BACjD,IAAI,EAAE,EAAE,MAAM,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gCACrE,SAAS,GAAG,IAAI,CAAC;gCACjB,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC;gCACrB,MAAM;4BACR,CAAC;wBACH,CAAC;wBACD,IAAI,SAAS;4BAAE,MAAM;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACV,WAAW,EAAE,GAAG;gBAChB,SAAS;gBACT,UAAU;aACX,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAExD,OAAO;YACL,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,KAAK;YACL,OAAO;YACP,MAAM;YACN,OAAO;SACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,oBAAoB,CAAC,QAAgB,EAAE,OAAe;QACnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;QAEvD,4BAA4B;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,MAAM,CACtB,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,CAC/D,CAAC;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,QAAQ,KAAK,OAAO,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"QualityMetricsCalculator.js","sourceRoot":"","sources":["../../src/helpers/QualityMetricsCalculator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,10 @@ export type { FileTypeInfo, FileSystemModuleConfig, FileSystemLoadResult, TypeEx
4
4
  export { TypeScriptExtractor } from './modules';
5
5
  export { FilesystemService } from './services';
6
6
  export { QualityMetricsCalculator } from './helpers/QualityMetricsCalculator';
7
+ export type { LensReadinessExtended } from './helpers/QualityMetricsCalculator';
7
8
  export { toQualityMetrics, hasQualityMetrics, getAvailableLenses, getMissingLenses, getOverallQualityScore, generateLensRecommendations, } from './helpers/packageLayerHelpers';
9
+ export { getToolDetectionStrategy, getAllStrategies, isEcosystemSupported, packageTypeToEcosystem, nodeToolDetection, pythonToolDetection, goToolDetection, rustToolDetection, } from './strategies';
10
+ export type { Ecosystem, ToolSource, ToolAvailability, PackageData, InstallInstruction, ToolDetectionStrategy, ToolMetadata, ToolRegistry, } from './strategies';
8
11
  export { NodeFileSystemAdapter } from './adapters/NodeFileSystemAdapter';
9
12
  export { GitVersionControlProvider, PackageManagerApiProvider } from './providers';
10
13
  export type { FileSystemAdapter, GitAdapter, ShellAdapter, PackageManager, PackageVersionInfo, VersionCheckResult, VulnerabilityInfo, VulnerabilityCheckResult, LicenseInfo, LicenseCheckResult, DependencyCheckProgress, BatchCheckOptions, } from './providers';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,WAAW,EACX,OAAO,EACP,SAAS,EACT,cAAc,EACd,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EAEtB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,YAAY,EACZ,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACnF,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,WAAW,EACX,OAAO,EACP,SAAS,EACT,cAAc,EACd,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EAEtB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,YAAY,EACZ,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,YAAY,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,YAAY,GACb,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACnF,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -7,6 +7,8 @@ export { FilesystemService } from './services/index.js';
7
7
  // Helpers
8
8
  export { QualityMetricsCalculator } from './helpers/QualityMetricsCalculator.js';
9
9
  export { toQualityMetrics, hasQualityMetrics, getAvailableLenses, getMissingLenses, getOverallQualityScore, generateLensRecommendations, } from './helpers/packageLayerHelpers.js';
10
+ // Strategies (multi-ecosystem tool detection)
11
+ export { getToolDetectionStrategy, getAllStrategies, isEcosystemSupported, packageTypeToEcosystem, nodeToolDetection, pythonToolDetection, goToolDetection, rustToolDetection, } from './strategies/index.js';
10
12
  // Adapters
11
13
  export { NodeFileSystemAdapter } from './adapters/NodeFileSystemAdapter.js';
12
14
  // Providers
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAiCrC,UAAU;AACV,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AAQnB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,WAAW;AACX,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,UAAU;AACV,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AAEvC,WAAW;AACX,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,YAAY;AACZ,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAiCrC,UAAU;AACV,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AAQnB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,WAAW;AACX,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,UAAU;AACV,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AAEvC,8CAA8C;AAC9C,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAYtB,WAAW;AACX,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,YAAY;AACZ,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PackageLayerModule.d.ts","sourceRoot":"","sources":["../../src/modules/PackageLayerModule.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAE,YAAY,EAA+E,MAAM,sBAAsB,CAAC;AACjI,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AA42BlE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAIb;IAEF;;;;OAIG;IACG,gBAAgB,CACpB,QAAQ,EAAE,QAAQ,EAClB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAC7C,OAAO,CAAC,YAAY,EAAE,CAAC;IAiO1B;;OAEG;IACH,iCAAiC,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,YAAY,EAAE;IAgDlF,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,6BAA6B;IAwBrC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4B7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAsBlC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkCxB;;OAEG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;YACW,qBAAqB;IA4DnC;;OAEG;IACH,OAAO,CAAC,cAAc;IA0EtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwC5B;;;OAGG;IACH,OAAO,CAAC,uCAAuC;CA0DhD"}
1
+ {"version":3,"file":"PackageLayerModule.d.ts","sourceRoot":"","sources":["../../src/modules/PackageLayerModule.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAE,YAAY,EAA+E,MAAM,sBAAsB,CAAC;AACjI,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AA2hClE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAIb;IAEF;;;;OAIG;IACG,gBAAgB,CACpB,QAAQ,EAAE,QAAQ,EAClB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAC7C,OAAO,CAAC,YAAY,EAAE,CAAC;IA4O1B;;OAEG;IACH,iCAAiC,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,YAAY,EAAE;IAgDlF,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,6BAA6B;IAwBrC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4B7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAsBlC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkCxB;;OAEG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;YACW,qBAAqB;IA4DnC;;OAEG;IACH,OAAO,CAAC,cAAc;IA0EtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwC5B;;;OAGG;IACH,OAAO,CAAC,uCAAuC;CAoEhD"}