@principal-ai/codebase-composition 0.2.25 → 0.2.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helpers/QualityMetricsCalculator.d.ts.map +1 -1
- package/dist/helpers/QualityMetricsCalculator.js +19 -63
- package/dist/helpers/QualityMetricsCalculator.js.map +1 -1
- package/dist/helpers/WorkspaceCommandHelper.d.ts +140 -0
- package/dist/helpers/WorkspaceCommandHelper.d.ts.map +1 -0
- package/dist/helpers/WorkspaceCommandHelper.js +299 -0
- package/dist/helpers/WorkspaceCommandHelper.js.map +1 -0
- package/dist/helpers/packageLayerHelpers.d.ts.map +1 -1
- package/dist/helpers/packageLayerHelpers.js +50 -24
- package/dist/helpers/packageLayerHelpers.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/strategies/go-tools.d.ts.map +1 -1
- package/dist/strategies/go-tools.js +9 -8
- package/dist/strategies/go-tools.js.map +1 -1
- package/dist/strategies/node-tools.d.ts.map +1 -1
- package/dist/strategies/node-tools.js +9 -8
- package/dist/strategies/node-tools.js.map +1 -1
- package/dist/strategies/python-tools.d.ts.map +1 -1
- package/dist/strategies/python-tools.js +10 -9
- package/dist/strategies/python-tools.js.map +1 -1
- package/dist/strategies/rust-tools.d.ts.map +1 -1
- package/dist/strategies/rust-tools.js +9 -8
- package/dist/strategies/rust-tools.js.map +1 -1
- package/package.json +2 -1
|
@@ -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,EAGL,KAAK,aAAa,EAEnB,MAAM,uCAAuC,CAAC;
|
|
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;AAM/C,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAGxB,MAAM,eAAe,CAAC;AAwGvB,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,70 +2,26 @@
|
|
|
2
2
|
* Calculate quality metrics from lens commands
|
|
3
3
|
*/
|
|
4
4
|
import { ALL_LENS_REQUIREMENTS, } from '@principal-ai/codebase-quality-lenses';
|
|
5
|
+
import { getLensDisplayName, getHexagonMetricForCategory, LENS_REGISTRY, } from '@principal-ai/quality-lens-registry';
|
|
5
6
|
import { getToolDetectionStrategy, packageTypeToEcosystem, } from '../strategies/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Build lens-to-metric map from registry
|
|
9
|
+
*/
|
|
10
|
+
function buildLensToMetricMap() {
|
|
11
|
+
const map = {};
|
|
12
|
+
// Build from registry
|
|
13
|
+
for (const lens of LENS_REGISTRY) {
|
|
14
|
+
const hexagonKey = getHexagonMetricForCategory(lens.category);
|
|
15
|
+
if (hexagonKey) {
|
|
16
|
+
map[lens.id] = hexagonKey;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
// Alias for generic 'test' script name
|
|
20
|
+
map['test'] = 'tests';
|
|
21
|
+
return map;
|
|
22
|
+
}
|
|
6
23
|
// Standard lens IDs and their corresponding hexagon metrics
|
|
7
|
-
const LENS_TO_METRIC_MAP =
|
|
8
|
-
// Linting tools (JavaScript/TypeScript)
|
|
9
|
-
'eslint': 'linting',
|
|
10
|
-
'biome': 'linting',
|
|
11
|
-
'biome-lint': 'linting',
|
|
12
|
-
'oxlint': 'linting',
|
|
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)
|
|
24
|
-
'typescript': 'types',
|
|
25
|
-
'flow': 'types',
|
|
26
|
-
// Type checking tools (Python)
|
|
27
|
-
'mypy': 'types',
|
|
28
|
-
'pyright': 'types',
|
|
29
|
-
// Testing tools (JavaScript/TypeScript)
|
|
30
|
-
'test': 'tests',
|
|
31
|
-
'jest': 'tests',
|
|
32
|
-
'vitest': 'tests',
|
|
33
|
-
'bun-test': 'tests',
|
|
34
|
-
'mocha': 'tests',
|
|
35
|
-
'playwright': 'tests',
|
|
36
|
-
'cypress': 'tests',
|
|
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)
|
|
45
|
-
'prettier': 'formatting',
|
|
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',
|
|
56
|
-
// Dead code detection
|
|
57
|
-
'knip': 'deadCode',
|
|
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',
|
|
64
|
-
// Documentation
|
|
65
|
-
'typedoc': 'documentation',
|
|
66
|
-
'jsdoc': 'documentation',
|
|
67
|
-
'alexandria': 'documentation',
|
|
68
|
-
};
|
|
24
|
+
const LENS_TO_METRIC_MAP = buildLensToMetricMap();
|
|
69
25
|
// Patterns to detect specific tools from script content
|
|
70
26
|
// Maps regex patterns to lens IDs
|
|
71
27
|
const SCRIPT_CONTENT_PATTERNS = [
|
|
@@ -311,7 +267,7 @@ export class QualityMetricsCalculator {
|
|
|
311
267
|
const partial = !ready && availability.configured;
|
|
312
268
|
result[lensId] = {
|
|
313
269
|
lensId,
|
|
314
|
-
displayName: lensId
|
|
270
|
+
displayName: getLensDisplayName(lensId) ?? lensId,
|
|
315
271
|
ready,
|
|
316
272
|
partial,
|
|
317
273
|
checks,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QualityMetricsCalculator.js","sourceRoot":"","sources":["../../src/helpers/QualityMetricsCalculator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,qBAAqB,GAItB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"QualityMetricsCalculator.js","sourceRoot":"","sources":["../../src/helpers/QualityMetricsCalculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workspace Command Helper
|
|
3
|
+
*
|
|
4
|
+
* Handles workspace-aware command execution for monorepos.
|
|
5
|
+
* Detects workspace commands, groups packages by workspace,
|
|
6
|
+
* and provides utilities for distributing results to packages.
|
|
7
|
+
*
|
|
8
|
+
* Supports:
|
|
9
|
+
* - Cargo workspaces (--workspace, --manifest-path)
|
|
10
|
+
* - npm/pnpm workspaces (--workspaces, -w, --recursive)
|
|
11
|
+
* - Yarn workspaces
|
|
12
|
+
*/
|
|
13
|
+
import type { PackageLayer } from '../types/layer-types';
|
|
14
|
+
/**
|
|
15
|
+
* Ecosystem types for workspace detection
|
|
16
|
+
*/
|
|
17
|
+
export type WorkspaceEcosystem = 'rust' | 'node' | 'python' | 'go';
|
|
18
|
+
/**
|
|
19
|
+
* Information about a workspace command
|
|
20
|
+
*/
|
|
21
|
+
export interface WorkspaceCommandInfo {
|
|
22
|
+
/** Whether this command targets an entire workspace */
|
|
23
|
+
isWorkspaceCommand: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* The workspace root directory extracted from the command
|
|
26
|
+
* e.g., "codex-rs" from "--manifest-path codex-rs/Cargo.toml"
|
|
27
|
+
*/
|
|
28
|
+
workspaceRoot?: string;
|
|
29
|
+
/** The ecosystem this command belongs to */
|
|
30
|
+
ecosystem?: WorkspaceEcosystem;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A group of packages that belong to the same workspace
|
|
34
|
+
*/
|
|
35
|
+
export interface WorkspaceGroup {
|
|
36
|
+
/** The workspace root directory (relative to repo root) */
|
|
37
|
+
workspaceRoot: string;
|
|
38
|
+
/** Path to the workspace manifest file */
|
|
39
|
+
manifestPath: string;
|
|
40
|
+
/** The ecosystem (rust, node, etc.) */
|
|
41
|
+
ecosystem: WorkspaceEcosystem;
|
|
42
|
+
/** Packages that are members of this workspace */
|
|
43
|
+
memberPackages: PackageLayer[];
|
|
44
|
+
/** The root package of the workspace (if it exists as a package) */
|
|
45
|
+
rootPackage?: PackageLayer;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Detect if a command is a workspace-wide command and extract workspace info.
|
|
49
|
+
*
|
|
50
|
+
* Detects:
|
|
51
|
+
* - Cargo: --workspace, --manifest-path
|
|
52
|
+
* - pnpm: -r, --recursive, -w, --workspace-root, --filter
|
|
53
|
+
* - npm: --workspaces, -ws
|
|
54
|
+
* - yarn: workspaces foreach
|
|
55
|
+
*
|
|
56
|
+
* @param command - The command being executed (e.g., "cargo", "pnpm")
|
|
57
|
+
* @param args - Command arguments as an array
|
|
58
|
+
* @returns WorkspaceCommandInfo with detection results
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* // Cargo workspace command
|
|
63
|
+
* detectWorkspaceCommand('cargo', ['clippy', '--manifest-path', 'codex-rs/Cargo.toml', '--workspace'])
|
|
64
|
+
* // => { isWorkspaceCommand: true, workspaceRoot: 'codex-rs', ecosystem: 'rust' }
|
|
65
|
+
*
|
|
66
|
+
* // pnpm recursive command
|
|
67
|
+
* detectWorkspaceCommand('pnpm', ['-r', 'run', 'lint'])
|
|
68
|
+
* // => { isWorkspaceCommand: true, ecosystem: 'node' }
|
|
69
|
+
*
|
|
70
|
+
* // Regular command (not workspace-wide)
|
|
71
|
+
* detectWorkspaceCommand('cargo', ['clippy'])
|
|
72
|
+
* // => { isWorkspaceCommand: false }
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export declare function detectWorkspaceCommand(command: string, args: string[]): WorkspaceCommandInfo;
|
|
76
|
+
/**
|
|
77
|
+
* Group discovered packages by their workspace.
|
|
78
|
+
*
|
|
79
|
+
* Uses the package's `isWorkspace`, `parentPackage`, and `isMonorepoRoot`
|
|
80
|
+
* fields to determine workspace membership.
|
|
81
|
+
*
|
|
82
|
+
* @param packages - Array of discovered packages
|
|
83
|
+
* @returns Array of workspace groups
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```ts
|
|
87
|
+
* const packages = await packageModule.discoverPackages(fileTree);
|
|
88
|
+
* const workspaceGroups = groupPackagesByWorkspace(packages);
|
|
89
|
+
*
|
|
90
|
+
* for (const group of workspaceGroups) {
|
|
91
|
+
* console.log(`Workspace: ${group.workspaceRoot}`);
|
|
92
|
+
* console.log(`Members: ${group.memberPackages.map(p => p.packageData.name)}`);
|
|
93
|
+
* }
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare function groupPackagesByWorkspace(packages: PackageLayer[]): WorkspaceGroup[];
|
|
97
|
+
/**
|
|
98
|
+
* Match a file path to its package within a workspace.
|
|
99
|
+
*
|
|
100
|
+
* Used to distribute lens results to the correct packages.
|
|
101
|
+
* Takes a file path (relative to workspace root) and finds
|
|
102
|
+
* which package it belongs to.
|
|
103
|
+
*
|
|
104
|
+
* @param filePath - File path relative to workspace root (e.g., "protocol/src/lib.rs")
|
|
105
|
+
* @param workspaceRoot - Workspace root directory (e.g., "codex-rs")
|
|
106
|
+
* @param packages - Array of packages to search
|
|
107
|
+
* @returns The matching package, or undefined if not found
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```ts
|
|
111
|
+
* // Clippy outputs: "protocol/src/lib.rs" (relative to codex-rs/)
|
|
112
|
+
* // We need to find which package this belongs to
|
|
113
|
+
*
|
|
114
|
+
* const pkg = matchPathToPackage(
|
|
115
|
+
* 'protocol/src/lib.rs',
|
|
116
|
+
* 'codex-rs',
|
|
117
|
+
* packages
|
|
118
|
+
* );
|
|
119
|
+
* // => PackageLayer for "codex-rs/protocol"
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export declare function matchPathToPackage(filePath: string, workspaceRoot: string, packages: PackageLayer[]): PackageLayer | undefined;
|
|
123
|
+
/**
|
|
124
|
+
* Prefix a file path with the workspace root.
|
|
125
|
+
*
|
|
126
|
+
* Utility function to convert paths from workspace-relative
|
|
127
|
+
* to repo-relative.
|
|
128
|
+
*
|
|
129
|
+
* @param filePath - File path relative to workspace root
|
|
130
|
+
* @param workspaceRoot - Workspace root directory
|
|
131
|
+
* @returns Full path relative to repo root
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```ts
|
|
135
|
+
* prefixWithWorkspaceRoot('protocol/src/lib.rs', 'codex-rs')
|
|
136
|
+
* // => 'codex-rs/protocol/src/lib.rs'
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export declare function prefixWithWorkspaceRoot(filePath: string, workspaceRoot: string): string;
|
|
140
|
+
//# sourceMappingURL=WorkspaceCommandHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkspaceCommandHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/WorkspaceCommandHelper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,kDAAkD;IAClD,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B,oEAAoE;IACpE,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,GACb,oBAAoB,CA6FtB;AA2BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,cAAc,EAAE,CAoDnF;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,YAAY,EAAE,GACvB,YAAY,GAAG,SAAS,CA2B1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,MAAM,CAWR"}
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workspace Command Helper
|
|
3
|
+
*
|
|
4
|
+
* Handles workspace-aware command execution for monorepos.
|
|
5
|
+
* Detects workspace commands, groups packages by workspace,
|
|
6
|
+
* and provides utilities for distributing results to packages.
|
|
7
|
+
*
|
|
8
|
+
* Supports:
|
|
9
|
+
* - Cargo workspaces (--workspace, --manifest-path)
|
|
10
|
+
* - npm/pnpm workspaces (--workspaces, -w, --recursive)
|
|
11
|
+
* - Yarn workspaces
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Detect if a command is a workspace-wide command and extract workspace info.
|
|
15
|
+
*
|
|
16
|
+
* Detects:
|
|
17
|
+
* - Cargo: --workspace, --manifest-path
|
|
18
|
+
* - pnpm: -r, --recursive, -w, --workspace-root, --filter
|
|
19
|
+
* - npm: --workspaces, -ws
|
|
20
|
+
* - yarn: workspaces foreach
|
|
21
|
+
*
|
|
22
|
+
* @param command - The command being executed (e.g., "cargo", "pnpm")
|
|
23
|
+
* @param args - Command arguments as an array
|
|
24
|
+
* @returns WorkspaceCommandInfo with detection results
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* // Cargo workspace command
|
|
29
|
+
* detectWorkspaceCommand('cargo', ['clippy', '--manifest-path', 'codex-rs/Cargo.toml', '--workspace'])
|
|
30
|
+
* // => { isWorkspaceCommand: true, workspaceRoot: 'codex-rs', ecosystem: 'rust' }
|
|
31
|
+
*
|
|
32
|
+
* // pnpm recursive command
|
|
33
|
+
* detectWorkspaceCommand('pnpm', ['-r', 'run', 'lint'])
|
|
34
|
+
* // => { isWorkspaceCommand: true, ecosystem: 'node' }
|
|
35
|
+
*
|
|
36
|
+
* // Regular command (not workspace-wide)
|
|
37
|
+
* detectWorkspaceCommand('cargo', ['clippy'])
|
|
38
|
+
* // => { isWorkspaceCommand: false }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export function detectWorkspaceCommand(command, args) {
|
|
42
|
+
const fullCommand = `${command} ${args.join(' ')}`;
|
|
43
|
+
const argsSet = new Set(args);
|
|
44
|
+
// Cargo workspace detection
|
|
45
|
+
if (command === 'cargo' || command.startsWith('cargo-') || fullCommand.includes('cargo ')) {
|
|
46
|
+
// Check for --workspace flag
|
|
47
|
+
if (argsSet.has('--workspace') || fullCommand.includes('--workspace')) {
|
|
48
|
+
const workspaceRoot = extractManifestPath(args, fullCommand);
|
|
49
|
+
return {
|
|
50
|
+
isWorkspaceCommand: true,
|
|
51
|
+
workspaceRoot,
|
|
52
|
+
ecosystem: 'rust',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// Check for --manifest-path (implies running from outside the workspace)
|
|
56
|
+
const manifestPath = extractManifestPath(args, fullCommand);
|
|
57
|
+
if (manifestPath) {
|
|
58
|
+
return {
|
|
59
|
+
isWorkspaceCommand: true,
|
|
60
|
+
workspaceRoot: manifestPath,
|
|
61
|
+
ecosystem: 'rust',
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// Check for --all flag (older cargo syntax)
|
|
65
|
+
// Use word boundary to avoid matching --all-features
|
|
66
|
+
if (argsSet.has('--all') || / --all(?:\s|$)/.test(fullCommand)) {
|
|
67
|
+
return {
|
|
68
|
+
isWorkspaceCommand: true,
|
|
69
|
+
ecosystem: 'rust',
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// pnpm workspace detection
|
|
74
|
+
if (command === 'pnpm' || fullCommand.includes('pnpm ')) {
|
|
75
|
+
if (argsSet.has('-r') ||
|
|
76
|
+
argsSet.has('--recursive') ||
|
|
77
|
+
argsSet.has('-w') ||
|
|
78
|
+
argsSet.has('--workspace-root') ||
|
|
79
|
+
fullCommand.includes(' -r ') ||
|
|
80
|
+
fullCommand.includes(' --recursive') ||
|
|
81
|
+
fullCommand.includes(' -w ') ||
|
|
82
|
+
fullCommand.includes(' --workspace-root')) {
|
|
83
|
+
return {
|
|
84
|
+
isWorkspaceCommand: true,
|
|
85
|
+
ecosystem: 'node',
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// Check for --filter which can target multiple packages
|
|
89
|
+
if (argsSet.has('--filter') || fullCommand.includes('--filter')) {
|
|
90
|
+
return {
|
|
91
|
+
isWorkspaceCommand: true,
|
|
92
|
+
ecosystem: 'node',
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// npm workspace detection
|
|
97
|
+
if (command === 'npm' || fullCommand.includes('npm ')) {
|
|
98
|
+
if (argsSet.has('--workspaces') ||
|
|
99
|
+
argsSet.has('-ws') ||
|
|
100
|
+
fullCommand.includes(' --workspaces') ||
|
|
101
|
+
fullCommand.includes(' -ws')) {
|
|
102
|
+
return {
|
|
103
|
+
isWorkspaceCommand: true,
|
|
104
|
+
ecosystem: 'node',
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// yarn workspace detection
|
|
109
|
+
if (command === 'yarn' || fullCommand.includes('yarn ')) {
|
|
110
|
+
if (fullCommand.includes('workspaces foreach') ||
|
|
111
|
+
fullCommand.includes('workspace foreach') ||
|
|
112
|
+
argsSet.has('--all')) {
|
|
113
|
+
return {
|
|
114
|
+
isWorkspaceCommand: true,
|
|
115
|
+
ecosystem: 'node',
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return { isWorkspaceCommand: false };
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Extract the manifest path directory from command arguments.
|
|
123
|
+
*
|
|
124
|
+
* @param args - Command arguments array
|
|
125
|
+
* @param fullCommand - Full command string for fallback parsing
|
|
126
|
+
* @returns The directory containing the manifest, or undefined
|
|
127
|
+
*/
|
|
128
|
+
function extractManifestPath(args, fullCommand) {
|
|
129
|
+
// Check args array for --manifest-path
|
|
130
|
+
const manifestPathIndex = args.indexOf('--manifest-path');
|
|
131
|
+
if (manifestPathIndex !== -1 && args[manifestPathIndex + 1]) {
|
|
132
|
+
const manifestPath = args[manifestPathIndex + 1];
|
|
133
|
+
// Extract directory from "codex-rs/Cargo.toml" -> "codex-rs"
|
|
134
|
+
return manifestPath.replace(/\/Cargo\.toml$/, '');
|
|
135
|
+
}
|
|
136
|
+
// Fallback to regex on full command
|
|
137
|
+
const match = fullCommand.match(/--manifest-path\s+([^\s]+)/);
|
|
138
|
+
if (match) {
|
|
139
|
+
return match[1].replace(/\/Cargo\.toml$/, '');
|
|
140
|
+
}
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Group discovered packages by their workspace.
|
|
145
|
+
*
|
|
146
|
+
* Uses the package's `isWorkspace`, `parentPackage`, and `isMonorepoRoot`
|
|
147
|
+
* fields to determine workspace membership.
|
|
148
|
+
*
|
|
149
|
+
* @param packages - Array of discovered packages
|
|
150
|
+
* @returns Array of workspace groups
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```ts
|
|
154
|
+
* const packages = await packageModule.discoverPackages(fileTree);
|
|
155
|
+
* const workspaceGroups = groupPackagesByWorkspace(packages);
|
|
156
|
+
*
|
|
157
|
+
* for (const group of workspaceGroups) {
|
|
158
|
+
* console.log(`Workspace: ${group.workspaceRoot}`);
|
|
159
|
+
* console.log(`Members: ${group.memberPackages.map(p => p.packageData.name)}`);
|
|
160
|
+
* }
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
export function groupPackagesByWorkspace(packages) {
|
|
164
|
+
const groups = [];
|
|
165
|
+
const processedPaths = new Set();
|
|
166
|
+
// Find all workspace roots (packages marked as monorepo roots)
|
|
167
|
+
const workspaceRoots = packages.filter((pkg) => pkg.packageData.isMonorepoRoot);
|
|
168
|
+
for (const root of workspaceRoots) {
|
|
169
|
+
const rootPath = root.packageData.path || '';
|
|
170
|
+
if (processedPaths.has(rootPath))
|
|
171
|
+
continue;
|
|
172
|
+
processedPaths.add(rootPath);
|
|
173
|
+
// Determine ecosystem from package type
|
|
174
|
+
const ecosystem = packageTypeToEcosystem(root.type);
|
|
175
|
+
// Find all member packages
|
|
176
|
+
const members = packages.filter((pkg) => {
|
|
177
|
+
// Skip the root itself
|
|
178
|
+
if (pkg === root)
|
|
179
|
+
return false;
|
|
180
|
+
// Check if this package is a workspace member of this root
|
|
181
|
+
if (pkg.packageData.isWorkspace) {
|
|
182
|
+
// Check if parent matches or path is under root path
|
|
183
|
+
if (pkg.packageData.parentPackage === root.packageData.name) {
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
// Check by path - if package path starts with root path
|
|
187
|
+
const pkgPath = pkg.packageData.path || '';
|
|
188
|
+
if (rootPath && pkgPath.startsWith(rootPath + '/')) {
|
|
189
|
+
return true;
|
|
190
|
+
}
|
|
191
|
+
// If root is at repo root (empty path), all workspaces belong to it
|
|
192
|
+
if (rootPath === '' && pkg.packageData.isWorkspace) {
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return false;
|
|
197
|
+
});
|
|
198
|
+
groups.push({
|
|
199
|
+
workspaceRoot: rootPath,
|
|
200
|
+
manifestPath: root.packageData.manifestPath,
|
|
201
|
+
ecosystem,
|
|
202
|
+
memberPackages: members,
|
|
203
|
+
rootPackage: root,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
return groups;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Convert package layer type to ecosystem
|
|
210
|
+
*/
|
|
211
|
+
function packageTypeToEcosystem(packageType) {
|
|
212
|
+
switch (packageType) {
|
|
213
|
+
case 'cargo':
|
|
214
|
+
return 'rust';
|
|
215
|
+
case 'python':
|
|
216
|
+
return 'python';
|
|
217
|
+
case 'go':
|
|
218
|
+
return 'go';
|
|
219
|
+
case 'node':
|
|
220
|
+
case 'package':
|
|
221
|
+
default:
|
|
222
|
+
return 'node';
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Match a file path to its package within a workspace.
|
|
227
|
+
*
|
|
228
|
+
* Used to distribute lens results to the correct packages.
|
|
229
|
+
* Takes a file path (relative to workspace root) and finds
|
|
230
|
+
* which package it belongs to.
|
|
231
|
+
*
|
|
232
|
+
* @param filePath - File path relative to workspace root (e.g., "protocol/src/lib.rs")
|
|
233
|
+
* @param workspaceRoot - Workspace root directory (e.g., "codex-rs")
|
|
234
|
+
* @param packages - Array of packages to search
|
|
235
|
+
* @returns The matching package, or undefined if not found
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* ```ts
|
|
239
|
+
* // Clippy outputs: "protocol/src/lib.rs" (relative to codex-rs/)
|
|
240
|
+
* // We need to find which package this belongs to
|
|
241
|
+
*
|
|
242
|
+
* const pkg = matchPathToPackage(
|
|
243
|
+
* 'protocol/src/lib.rs',
|
|
244
|
+
* 'codex-rs',
|
|
245
|
+
* packages
|
|
246
|
+
* );
|
|
247
|
+
* // => PackageLayer for "codex-rs/protocol"
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
export function matchPathToPackage(filePath, workspaceRoot, packages) {
|
|
251
|
+
// Normalize paths
|
|
252
|
+
const normalizedFilePath = filePath.replace(/\\/g, '/');
|
|
253
|
+
const normalizedWorkspaceRoot = workspaceRoot.replace(/\\/g, '/');
|
|
254
|
+
// Build full path from repo root
|
|
255
|
+
const fullPath = normalizedWorkspaceRoot
|
|
256
|
+
? `${normalizedWorkspaceRoot}/${normalizedFilePath}`
|
|
257
|
+
: normalizedFilePath;
|
|
258
|
+
// Find the package whose path is the longest prefix of the file path
|
|
259
|
+
let bestMatch;
|
|
260
|
+
let bestMatchLength = -1;
|
|
261
|
+
for (const pkg of packages) {
|
|
262
|
+
const pkgPath = (pkg.packageData.path || '').replace(/\\/g, '/');
|
|
263
|
+
// Check if file path starts with package path
|
|
264
|
+
if (fullPath.startsWith(pkgPath + '/') || fullPath === pkgPath) {
|
|
265
|
+
if (pkgPath.length > bestMatchLength) {
|
|
266
|
+
bestMatch = pkg;
|
|
267
|
+
bestMatchLength = pkgPath.length;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return bestMatch;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Prefix a file path with the workspace root.
|
|
275
|
+
*
|
|
276
|
+
* Utility function to convert paths from workspace-relative
|
|
277
|
+
* to repo-relative.
|
|
278
|
+
*
|
|
279
|
+
* @param filePath - File path relative to workspace root
|
|
280
|
+
* @param workspaceRoot - Workspace root directory
|
|
281
|
+
* @returns Full path relative to repo root
|
|
282
|
+
*
|
|
283
|
+
* @example
|
|
284
|
+
* ```ts
|
|
285
|
+
* prefixWithWorkspaceRoot('protocol/src/lib.rs', 'codex-rs')
|
|
286
|
+
* // => 'codex-rs/protocol/src/lib.rs'
|
|
287
|
+
* ```
|
|
288
|
+
*/
|
|
289
|
+
export function prefixWithWorkspaceRoot(filePath, workspaceRoot) {
|
|
290
|
+
if (!workspaceRoot || workspaceRoot === '') {
|
|
291
|
+
return filePath;
|
|
292
|
+
}
|
|
293
|
+
// Don't double-prefix
|
|
294
|
+
if (filePath.startsWith(workspaceRoot + '/')) {
|
|
295
|
+
return filePath;
|
|
296
|
+
}
|
|
297
|
+
return `${workspaceRoot}/${filePath}`;
|
|
298
|
+
}
|
|
299
|
+
//# sourceMappingURL=WorkspaceCommandHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkspaceCommandHelper.js","sourceRoot":"","sources":["../../src/helpers/WorkspaceCommandHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageLayerHelpers.d.ts","sourceRoot":"","sources":["../../src/helpers/packageLayerHelpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"packageLayerHelpers.d.ts","sourceRoot":"","sources":["../../src/helpers/packageLayerHelpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGzE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,GAAG,IAAI,CAelF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAErE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,EAAE,CAEvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,EAAE,CAErE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAUzE;AAgCD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,EAAE,CA2BhF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Helper functions for PackageLayer
|
|
3
3
|
*/
|
|
4
|
+
import { getDefaultCommand } from '@principal-ai/quality-lens-registry';
|
|
4
5
|
/**
|
|
5
6
|
* Convert PackageLayer quality metrics to complete QualityMetrics object
|
|
6
7
|
* Fills in defaults for missing metrics
|
|
@@ -50,6 +51,35 @@ export function getOverallQualityScore(packageLayer) {
|
|
|
50
51
|
return 0;
|
|
51
52
|
return Math.round(nonZeroValues.reduce((sum, val) => sum + val, 0) / nonZeroValues.length);
|
|
52
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Specialized command overrides for lenses that need specific output formats
|
|
56
|
+
* These override the registry defaults for lens recommendations
|
|
57
|
+
*/
|
|
58
|
+
const LENS_COMMAND_OVERRIDES = {
|
|
59
|
+
eslint: {
|
|
60
|
+
check: 'eslint . --format json',
|
|
61
|
+
coverage: 'eslint . --format json --no-inline-config',
|
|
62
|
+
},
|
|
63
|
+
typescript: {
|
|
64
|
+
check: 'tsc --noEmit',
|
|
65
|
+
coverage: 'tsc --listFiles',
|
|
66
|
+
},
|
|
67
|
+
test: {
|
|
68
|
+
check: 'jest --json',
|
|
69
|
+
coverage: 'jest --coverage --json',
|
|
70
|
+
},
|
|
71
|
+
prettier: {
|
|
72
|
+
check: 'prettier --check .',
|
|
73
|
+
coverage: 'prettier --list-different .',
|
|
74
|
+
},
|
|
75
|
+
knip: {
|
|
76
|
+
check: 'knip --reporter json',
|
|
77
|
+
},
|
|
78
|
+
typedoc: {
|
|
79
|
+
check: 'typedoc --emit none',
|
|
80
|
+
coverage: 'typedoc --json .quality/typedoc.json',
|
|
81
|
+
},
|
|
82
|
+
};
|
|
53
83
|
/**
|
|
54
84
|
* Generate recommendations for adding missing lens commands
|
|
55
85
|
*/
|
|
@@ -57,30 +87,26 @@ export function generateLensRecommendations(packageLayer) {
|
|
|
57
87
|
const missing = getMissingLenses(packageLayer);
|
|
58
88
|
const recommendations = [];
|
|
59
89
|
for (const lensId of missing) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
recommendations.push(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
recommendations.push(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
recommendations.push(
|
|
79
|
-
|
|
80
|
-
case 'typedoc':
|
|
81
|
-
recommendations.push('"lens:typedoc:check": "typedoc --emit none"');
|
|
82
|
-
recommendations.push('"lens:typedoc:coverage": "typedoc --json .quality/typedoc.json"');
|
|
83
|
-
break;
|
|
90
|
+
// Check for specialized overrides first
|
|
91
|
+
const override = LENS_COMMAND_OVERRIDES[lensId];
|
|
92
|
+
if (override) {
|
|
93
|
+
if (override.check) {
|
|
94
|
+
recommendations.push(`"lens:${lensId}:check": "${override.check}"`);
|
|
95
|
+
}
|
|
96
|
+
if (override.coverage) {
|
|
97
|
+
recommendations.push(`"lens:${lensId}:coverage": "${override.coverage}"`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
// Use registry default command
|
|
102
|
+
const defaultCmd = getDefaultCommand(lensId);
|
|
103
|
+
if (defaultCmd) {
|
|
104
|
+
recommendations.push(`"lens:${lensId}:check": "${defaultCmd.command}"`);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
// Fallback to lens ID as command
|
|
108
|
+
recommendations.push(`"lens:${lensId}:check": "${lensId}"`);
|
|
109
|
+
}
|
|
84
110
|
}
|
|
85
111
|
}
|
|
86
112
|
return recommendations;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageLayerHelpers.js","sourceRoot":"","sources":["../../src/helpers/packageLayerHelpers.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"packageLayerHelpers.js","sourceRoot":"","sources":["../../src/helpers/packageLayerHelpers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export { FilesystemService } from './services';
|
|
|
6
6
|
export { QualityMetricsCalculator } from './helpers/QualityMetricsCalculator';
|
|
7
7
|
export type { LensReadinessExtended } from './helpers/QualityMetricsCalculator';
|
|
8
8
|
export { toQualityMetrics, hasQualityMetrics, getAvailableLenses, getMissingLenses, getOverallQualityScore, generateLensRecommendations, } from './helpers/packageLayerHelpers';
|
|
9
|
+
export { detectWorkspaceCommand, groupPackagesByWorkspace, matchPathToPackage, prefixWithWorkspaceRoot, } from './helpers/WorkspaceCommandHelper';
|
|
10
|
+
export type { WorkspaceEcosystem, WorkspaceCommandInfo, WorkspaceGroup, } from './helpers/WorkspaceCommandHelper';
|
|
9
11
|
export { getToolDetectionStrategy, getAllStrategies, isEcosystemSupported, packageTypeToEcosystem, nodeToolDetection, pythonToolDetection, goToolDetection, rustToolDetection, } from './strategies';
|
|
10
12
|
export type { Ecosystem, ToolSource, ToolAvailability, PackageData, InstallInstruction, ToolDetectionStrategy, ToolMetadata, ToolRegistry, } from './strategies';
|
|
11
13
|
export { NodeFileSystemAdapter } from './adapters/NodeFileSystemAdapter';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,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;
|
|
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;AACvC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,GACf,MAAM,kCAAkC,CAAC;AAG1C,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,7 @@ 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
|
+
export { detectWorkspaceCommand, groupPackagesByWorkspace, matchPathToPackage, prefixWithWorkspaceRoot, } from './helpers/WorkspaceCommandHelper.js';
|
|
10
11
|
// Strategies (multi-ecosystem tool detection)
|
|
11
12
|
export { getToolDetectionStrategy, getAllStrategies, isEcosystemSupported, packageTypeToEcosystem, nodeToolDetection, pythonToolDetection, goToolDetection, rustToolDetection, } from './strategies/index.js';
|
|
12
13
|
// Adapters
|
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;AAE9E,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,+BAA+B,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;AACvC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAO1C,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":"go-tools.d.ts","sourceRoot":"","sources":["../../src/strategies/go-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"go-tools.d.ts","sourceRoot":"","sources":["../../src/strategies/go-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AAkF1B,qBAAa,eAAgB,YAAW,qBAAqB;IAC3D,SAAS,EAAG,IAAI,CAAU;IAC1B,WAAW,SAAQ;IAEnB,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC,GAClD,gBAAgB;IA+CnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAgBpB,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,MAAM,GACvB,kBAAkB;IAwBrB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKzC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;CAUpD;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -8,13 +8,14 @@
|
|
|
8
8
|
* - Some tools are built into the Go toolchain (go test, go vet, gofmt)
|
|
9
9
|
* - Scripts usually in Makefile, not a manifest
|
|
10
10
|
*/
|
|
11
|
+
import { getLensDisplayName } from '@principal-ai/quality-lens-registry';
|
|
11
12
|
/**
|
|
12
13
|
* Tool metadata for Go ecosystem
|
|
13
14
|
*/
|
|
14
15
|
const GO_TOOLS = {
|
|
15
16
|
'golangci-lint': {
|
|
16
17
|
toolId: 'golangci-lint',
|
|
17
|
-
displayName: 'golangci-lint',
|
|
18
|
+
displayName: getLensDisplayName('golangci-lint'),
|
|
18
19
|
packageName: 'github.com/golangci/golangci-lint/cmd/golangci-lint',
|
|
19
20
|
goModule: 'github.com/golangci/golangci-lint/cmd/golangci-lint',
|
|
20
21
|
configPatterns: ['.golangci.yml', '.golangci.yaml', '.golangci.toml', '.golangci.json'],
|
|
@@ -23,7 +24,7 @@ const GO_TOOLS = {
|
|
|
23
24
|
},
|
|
24
25
|
staticcheck: {
|
|
25
26
|
toolId: 'staticcheck',
|
|
26
|
-
displayName: 'Staticcheck',
|
|
27
|
+
displayName: 'Staticcheck', // Not in registry yet
|
|
27
28
|
packageName: 'honnef.co/go/tools/cmd/staticcheck',
|
|
28
29
|
goModule: 'honnef.co/go/tools/cmd/staticcheck',
|
|
29
30
|
configPatterns: ['staticcheck.conf'],
|
|
@@ -31,28 +32,28 @@ const GO_TOOLS = {
|
|
|
31
32
|
},
|
|
32
33
|
'go-test': {
|
|
33
34
|
toolId: 'go-test',
|
|
34
|
-
displayName: '
|
|
35
|
+
displayName: getLensDisplayName('go-test'),
|
|
35
36
|
packageName: 'go', // Built into Go
|
|
36
37
|
configPatterns: [], // No config file
|
|
37
38
|
defaultCommand: 'go test ./...',
|
|
38
39
|
},
|
|
39
40
|
'go-vet': {
|
|
40
41
|
toolId: 'go-vet',
|
|
41
|
-
displayName: '
|
|
42
|
+
displayName: getLensDisplayName('go-vet'),
|
|
42
43
|
packageName: 'go', // Built into Go
|
|
43
44
|
configPatterns: [], // No config file
|
|
44
45
|
defaultCommand: 'go vet ./...',
|
|
45
46
|
},
|
|
46
47
|
gofmt: {
|
|
47
48
|
toolId: 'gofmt',
|
|
48
|
-
displayName: 'gofmt',
|
|
49
|
+
displayName: getLensDisplayName('gofmt'),
|
|
49
50
|
packageName: 'go', // Built into Go
|
|
50
51
|
configPatterns: [], // No config file
|
|
51
52
|
defaultCommand: 'gofmt -l .',
|
|
52
53
|
},
|
|
53
54
|
goimports: {
|
|
54
55
|
toolId: 'goimports',
|
|
55
|
-
displayName: 'goimports',
|
|
56
|
+
displayName: 'goimports', // Not in registry yet
|
|
56
57
|
packageName: 'golang.org/x/tools/cmd/goimports',
|
|
57
58
|
goModule: 'golang.org/x/tools/cmd/goimports',
|
|
58
59
|
configPatterns: [],
|
|
@@ -60,7 +61,7 @@ const GO_TOOLS = {
|
|
|
60
61
|
},
|
|
61
62
|
govulncheck: {
|
|
62
63
|
toolId: 'govulncheck',
|
|
63
|
-
displayName: 'govulncheck',
|
|
64
|
+
displayName: 'govulncheck', // Not in registry yet
|
|
64
65
|
packageName: 'golang.org/x/vuln/cmd/govulncheck',
|
|
65
66
|
goModule: 'golang.org/x/vuln/cmd/govulncheck',
|
|
66
67
|
configPatterns: [],
|
|
@@ -68,7 +69,7 @@ const GO_TOOLS = {
|
|
|
68
69
|
},
|
|
69
70
|
'go-critic': {
|
|
70
71
|
toolId: 'go-critic',
|
|
71
|
-
displayName: 'go-critic',
|
|
72
|
+
displayName: 'go-critic', // Not in registry yet
|
|
72
73
|
packageName: 'github.com/go-critic/go-critic/cmd/gocritic',
|
|
73
74
|
goModule: 'github.com/go-critic/go-critic/cmd/gocritic',
|
|
74
75
|
configPatterns: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"go-tools.js","sourceRoot":"","sources":["../../src/strategies/go-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"go-tools.js","sourceRoot":"","sources":["../../src/strategies/go-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-tools.d.ts","sourceRoot":"","sources":["../../src/strategies/node-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"node-tools.d.ts","sourceRoot":"","sources":["../../src/strategies/node-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AAsF1B,qBAAa,iBAAkB,YAAW,qBAAqB;IAC7D,SAAS,EAAG,MAAM,CAAU;IAC5B,WAAW,SAAa;IAExB,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC,GAClD,gBAAgB;IA2BnB,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,cAAc,GAAE,MAAc,GAC7B,kBAAkB;IAkBrB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKzC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKzC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;CAGpD;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -6,13 +6,14 @@
|
|
|
6
6
|
* - Scripts are defined in package.json "scripts" field
|
|
7
7
|
* - Config files are standalone or inline in package.json
|
|
8
8
|
*/
|
|
9
|
+
import { getLensDisplayName } from '@principal-ai/quality-lens-registry';
|
|
9
10
|
/**
|
|
10
11
|
* Tool metadata for Node.js ecosystem
|
|
11
12
|
*/
|
|
12
13
|
const NODE_TOOLS = {
|
|
13
14
|
eslint: {
|
|
14
15
|
toolId: 'eslint',
|
|
15
|
-
displayName: '
|
|
16
|
+
displayName: getLensDisplayName('eslint'),
|
|
16
17
|
packageName: 'eslint',
|
|
17
18
|
configPatterns: ['eslint.config.js', 'eslint.config.mjs', 'eslint.config.cjs', '.eslintrc.*'],
|
|
18
19
|
defaultCommand: 'eslint .',
|
|
@@ -20,7 +21,7 @@ const NODE_TOOLS = {
|
|
|
20
21
|
},
|
|
21
22
|
typescript: {
|
|
22
23
|
toolId: 'typescript',
|
|
23
|
-
displayName: '
|
|
24
|
+
displayName: getLensDisplayName('typescript'),
|
|
24
25
|
packageName: 'typescript',
|
|
25
26
|
configPatterns: ['tsconfig.json', 'tsconfig.*.json'],
|
|
26
27
|
defaultCommand: 'tsc --noEmit',
|
|
@@ -28,7 +29,7 @@ const NODE_TOOLS = {
|
|
|
28
29
|
},
|
|
29
30
|
prettier: {
|
|
30
31
|
toolId: 'prettier',
|
|
31
|
-
displayName: '
|
|
32
|
+
displayName: getLensDisplayName('prettier'),
|
|
32
33
|
packageName: 'prettier',
|
|
33
34
|
configPatterns: ['.prettierrc', '.prettierrc.*', 'prettier.config.*'],
|
|
34
35
|
defaultCommand: 'prettier --check .',
|
|
@@ -36,7 +37,7 @@ const NODE_TOOLS = {
|
|
|
36
37
|
},
|
|
37
38
|
jest: {
|
|
38
39
|
toolId: 'jest',
|
|
39
|
-
displayName: '
|
|
40
|
+
displayName: getLensDisplayName('jest'),
|
|
40
41
|
packageName: 'jest',
|
|
41
42
|
configPatterns: ['jest.config.*'],
|
|
42
43
|
defaultCommand: 'jest',
|
|
@@ -44,7 +45,7 @@ const NODE_TOOLS = {
|
|
|
44
45
|
},
|
|
45
46
|
vitest: {
|
|
46
47
|
toolId: 'vitest',
|
|
47
|
-
displayName: '
|
|
48
|
+
displayName: getLensDisplayName('vitest'),
|
|
48
49
|
packageName: 'vitest',
|
|
49
50
|
configPatterns: ['vitest.config.*', 'vite.config.*'],
|
|
50
51
|
defaultCommand: 'vitest run',
|
|
@@ -52,14 +53,14 @@ const NODE_TOOLS = {
|
|
|
52
53
|
},
|
|
53
54
|
'bun-test': {
|
|
54
55
|
toolId: 'bun-test',
|
|
55
|
-
displayName: '
|
|
56
|
+
displayName: getLensDisplayName('bun-test'),
|
|
56
57
|
packageName: 'bun', // Part of bun itself
|
|
57
58
|
configPatterns: ['bunfig.toml'],
|
|
58
59
|
defaultCommand: 'bun test',
|
|
59
60
|
},
|
|
60
61
|
knip: {
|
|
61
62
|
toolId: 'knip',
|
|
62
|
-
displayName: '
|
|
63
|
+
displayName: getLensDisplayName('knip'),
|
|
63
64
|
packageName: 'knip',
|
|
64
65
|
configPatterns: ['knip.json', 'knip.jsonc', 'knip.ts', 'knip.config.ts'],
|
|
65
66
|
defaultCommand: 'knip',
|
|
@@ -67,7 +68,7 @@ const NODE_TOOLS = {
|
|
|
67
68
|
},
|
|
68
69
|
biome: {
|
|
69
70
|
toolId: 'biome',
|
|
70
|
-
displayName: '
|
|
71
|
+
displayName: getLensDisplayName('biome-lint'),
|
|
71
72
|
packageName: '@biomejs/biome',
|
|
72
73
|
configPatterns: ['biome.json', 'biome.jsonc'],
|
|
73
74
|
defaultCommand: 'biome check .',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-tools.js","sourceRoot":"","sources":["../../src/strategies/node-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"node-tools.js","sourceRoot":"","sources":["../../src/strategies/node-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python-tools.d.ts","sourceRoot":"","sources":["../../src/strategies/python-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"python-tools.d.ts","sourceRoot":"","sources":["../../src/strategies/python-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AA2G1B,qBAAa,mBAAoB,YAAW,qBAAqB;IAC/D,SAAS,EAAG,QAAQ,CAAU;IAC9B,WAAW,SAAY;IAEvB,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC,GAClD,gBAAgB;IAqDnB,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,cAAc,GAAE,MAAc,GAC7B,kBAAkB;IAkBrB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKzC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAMzC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;CAGpD;AAED,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}
|
|
@@ -10,13 +10,14 @@
|
|
|
10
10
|
* - No standard script system (often uses Makefile or just CLI tools)
|
|
11
11
|
* - Config in pyproject.toml [tool.*] sections or standalone files
|
|
12
12
|
*/
|
|
13
|
+
import { getLensDisplayName } from '@principal-ai/quality-lens-registry';
|
|
13
14
|
/**
|
|
14
15
|
* Tool metadata for Python ecosystem
|
|
15
16
|
*/
|
|
16
17
|
const PYTHON_TOOLS = {
|
|
17
18
|
ruff: {
|
|
18
19
|
toolId: 'ruff',
|
|
19
|
-
displayName: '
|
|
20
|
+
displayName: getLensDisplayName('ruff'),
|
|
20
21
|
packageName: 'ruff',
|
|
21
22
|
configPatterns: ['ruff.toml', '.ruff.toml'],
|
|
22
23
|
configAlternatives: ['pyproject.toml [tool.ruff]'],
|
|
@@ -25,7 +26,7 @@ const PYTHON_TOOLS = {
|
|
|
25
26
|
},
|
|
26
27
|
'ruff-format': {
|
|
27
28
|
toolId: 'ruff-format',
|
|
28
|
-
displayName: '
|
|
29
|
+
displayName: getLensDisplayName('ruff-format'),
|
|
29
30
|
packageName: 'ruff',
|
|
30
31
|
configPatterns: ['ruff.toml', '.ruff.toml'],
|
|
31
32
|
configAlternatives: ['pyproject.toml [tool.ruff]'],
|
|
@@ -34,7 +35,7 @@ const PYTHON_TOOLS = {
|
|
|
34
35
|
},
|
|
35
36
|
mypy: {
|
|
36
37
|
toolId: 'mypy',
|
|
37
|
-
displayName: '
|
|
38
|
+
displayName: getLensDisplayName('mypy'),
|
|
38
39
|
packageName: 'mypy',
|
|
39
40
|
configPatterns: ['mypy.ini', '.mypy.ini'],
|
|
40
41
|
configAlternatives: ['pyproject.toml [tool.mypy]', 'setup.cfg [mypy]'],
|
|
@@ -43,7 +44,7 @@ const PYTHON_TOOLS = {
|
|
|
43
44
|
},
|
|
44
45
|
pyright: {
|
|
45
46
|
toolId: 'pyright',
|
|
46
|
-
displayName: '
|
|
47
|
+
displayName: getLensDisplayName('pyright'),
|
|
47
48
|
packageName: 'pyright',
|
|
48
49
|
configPatterns: ['pyrightconfig.json'],
|
|
49
50
|
configAlternatives: ['pyproject.toml [tool.pyright]'],
|
|
@@ -52,7 +53,7 @@ const PYTHON_TOOLS = {
|
|
|
52
53
|
},
|
|
53
54
|
pytest: {
|
|
54
55
|
toolId: 'pytest',
|
|
55
|
-
displayName: '
|
|
56
|
+
displayName: getLensDisplayName('pytest'),
|
|
56
57
|
packageName: 'pytest',
|
|
57
58
|
configPatterns: ['pytest.ini', 'conftest.py'],
|
|
58
59
|
configAlternatives: ['pyproject.toml [tool.pytest]', 'setup.cfg [tool:pytest]'],
|
|
@@ -61,7 +62,7 @@ const PYTHON_TOOLS = {
|
|
|
61
62
|
},
|
|
62
63
|
black: {
|
|
63
64
|
toolId: 'black',
|
|
64
|
-
displayName: '
|
|
65
|
+
displayName: getLensDisplayName('black'),
|
|
65
66
|
packageName: 'black',
|
|
66
67
|
configPatterns: ['.black', 'black.toml'],
|
|
67
68
|
configAlternatives: ['pyproject.toml [tool.black]'],
|
|
@@ -70,7 +71,7 @@ const PYTHON_TOOLS = {
|
|
|
70
71
|
},
|
|
71
72
|
isort: {
|
|
72
73
|
toolId: 'isort',
|
|
73
|
-
displayName: 'isort',
|
|
74
|
+
displayName: 'isort', // Not in registry yet
|
|
74
75
|
packageName: 'isort',
|
|
75
76
|
configPatterns: ['.isort.cfg', 'isort.cfg'],
|
|
76
77
|
configAlternatives: ['pyproject.toml [tool.isort]', 'setup.cfg [isort]'],
|
|
@@ -79,7 +80,7 @@ const PYTHON_TOOLS = {
|
|
|
79
80
|
},
|
|
80
81
|
flake8: {
|
|
81
82
|
toolId: 'flake8',
|
|
82
|
-
displayName: 'Flake8',
|
|
83
|
+
displayName: 'Flake8', // Not in registry yet
|
|
83
84
|
packageName: 'flake8',
|
|
84
85
|
configPatterns: ['.flake8', 'flake8.ini'],
|
|
85
86
|
configAlternatives: ['setup.cfg [flake8]'],
|
|
@@ -87,7 +88,7 @@ const PYTHON_TOOLS = {
|
|
|
87
88
|
},
|
|
88
89
|
pylint: {
|
|
89
90
|
toolId: 'pylint',
|
|
90
|
-
displayName: '
|
|
91
|
+
displayName: getLensDisplayName('pylint'),
|
|
91
92
|
packageName: 'pylint',
|
|
92
93
|
configPatterns: ['.pylintrc', 'pylintrc', 'pylint.toml'],
|
|
93
94
|
configAlternatives: ['pyproject.toml [tool.pylint]'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python-tools.js","sourceRoot":"","sources":["../../src/strategies/python-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"python-tools.js","sourceRoot":"","sources":["../../src/strategies/python-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rust-tools.d.ts","sourceRoot":"","sources":["../../src/strategies/rust-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"rust-tools.d.ts","sourceRoot":"","sources":["../../src/strategies/rust-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AA8E1B,qBAAa,iBAAkB,YAAW,qBAAqB;IAC7D,SAAS,EAAG,MAAM,CAAU;IAC5B,WAAW,SAAU;IAErB,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC,GAClD,gBAAgB;IA0DnB,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,MAAM,GACvB,kBAAkB;IA4BrB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKzC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;CASpD;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -8,13 +8,14 @@
|
|
|
8
8
|
* - Some are dev-dependencies in Cargo.toml [dev-dependencies]
|
|
9
9
|
* - Config in rustfmt.toml, clippy.toml, or Cargo.toml sections
|
|
10
10
|
*/
|
|
11
|
+
import { getLensDisplayName } from '@principal-ai/quality-lens-registry';
|
|
11
12
|
/**
|
|
12
13
|
* Tool metadata for Rust ecosystem
|
|
13
14
|
*/
|
|
14
15
|
const RUST_TOOLS = {
|
|
15
16
|
clippy: {
|
|
16
17
|
toolId: 'clippy',
|
|
17
|
-
displayName: '
|
|
18
|
+
displayName: getLensDisplayName('clippy'),
|
|
18
19
|
packageName: 'clippy', // rustup component name
|
|
19
20
|
isRustupComponent: true,
|
|
20
21
|
configPatterns: ['clippy.toml', '.clippy.toml'],
|
|
@@ -23,7 +24,7 @@ const RUST_TOOLS = {
|
|
|
23
24
|
},
|
|
24
25
|
rustfmt: {
|
|
25
26
|
toolId: 'rustfmt',
|
|
26
|
-
displayName: 'rustfmt',
|
|
27
|
+
displayName: getLensDisplayName('rustfmt'),
|
|
27
28
|
packageName: 'rustfmt', // rustup component name
|
|
28
29
|
isRustupComponent: true,
|
|
29
30
|
configPatterns: ['rustfmt.toml', '.rustfmt.toml'],
|
|
@@ -31,42 +32,42 @@ const RUST_TOOLS = {
|
|
|
31
32
|
},
|
|
32
33
|
'cargo-test': {
|
|
33
34
|
toolId: 'cargo-test',
|
|
34
|
-
displayName: '
|
|
35
|
+
displayName: getLensDisplayName('cargo-test'),
|
|
35
36
|
packageName: 'cargo', // Built into Cargo
|
|
36
37
|
configPatterns: [],
|
|
37
38
|
defaultCommand: 'cargo test',
|
|
38
39
|
},
|
|
39
40
|
'cargo-nextest': {
|
|
40
41
|
toolId: 'cargo-nextest',
|
|
41
|
-
displayName: 'cargo-nextest',
|
|
42
|
+
displayName: 'cargo-nextest', // Not in registry yet
|
|
42
43
|
packageName: 'cargo-nextest',
|
|
43
44
|
configPatterns: ['.config/nextest.toml'],
|
|
44
45
|
defaultCommand: 'cargo nextest run',
|
|
45
46
|
},
|
|
46
47
|
'cargo-llvm-cov': {
|
|
47
48
|
toolId: 'cargo-llvm-cov',
|
|
48
|
-
displayName: 'cargo-llvm-cov',
|
|
49
|
+
displayName: 'cargo-llvm-cov', // Not in registry yet
|
|
49
50
|
packageName: 'cargo-llvm-cov',
|
|
50
51
|
configPatterns: [],
|
|
51
52
|
defaultCommand: 'cargo llvm-cov',
|
|
52
53
|
},
|
|
53
54
|
'cargo-audit': {
|
|
54
55
|
toolId: 'cargo-audit',
|
|
55
|
-
displayName: 'cargo-audit',
|
|
56
|
+
displayName: 'cargo-audit', // Not in registry yet
|
|
56
57
|
packageName: 'cargo-audit',
|
|
57
58
|
configPatterns: [],
|
|
58
59
|
defaultCommand: 'cargo audit',
|
|
59
60
|
},
|
|
60
61
|
'cargo-deny': {
|
|
61
62
|
toolId: 'cargo-deny',
|
|
62
|
-
displayName: 'cargo-deny',
|
|
63
|
+
displayName: 'cargo-deny', // Not in registry yet
|
|
63
64
|
packageName: 'cargo-deny',
|
|
64
65
|
configPatterns: ['deny.toml'],
|
|
65
66
|
defaultCommand: 'cargo deny check',
|
|
66
67
|
},
|
|
67
68
|
'cargo-machete': {
|
|
68
69
|
toolId: 'cargo-machete',
|
|
69
|
-
displayName: 'cargo-machete',
|
|
70
|
+
displayName: 'cargo-machete', // Not in registry yet
|
|
70
71
|
packageName: 'cargo-machete',
|
|
71
72
|
configPatterns: [],
|
|
72
73
|
defaultCommand: 'cargo machete',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rust-tools.js","sourceRoot":"","sources":["../../src/strategies/rust-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"rust-tools.js","sourceRoot":"","sources":["../../src/strategies/rust-tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@principal-ai/codebase-composition",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.28",
|
|
4
4
|
"description": "Codebase decomposition into semantic layers",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@principal-ai/codebase-quality-lenses": "^0.1.45",
|
|
24
|
+
"@principal-ai/quality-lens-registry": "^0.3.0",
|
|
24
25
|
"@principal-ai/repository-abstraction": "^0.2.2",
|
|
25
26
|
"ignore": "^5.3.0",
|
|
26
27
|
"js-toml": "^1.0.0",
|