@principal-ai/quality-lens-cli 0.1.6 → 0.1.7

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.
@@ -1,175 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QualityLensService = void 0;
4
- const codebase_quality_lenses_1 = require("@principal-ai/codebase-quality-lenses");
5
- const NodeExecutor_1 = require("../executor/NodeExecutor");
6
- class QualityLensService {
7
- constructor() {
8
- this.executor = new NodeExecutor_1.NodeExecutor();
9
- this.lenses = new Map();
10
- this.initializeLenses();
11
- }
12
- initializeLenses() {
13
- console.log('[QualityLensService] Initializing lenses...');
14
- const eslintLens = new codebase_quality_lenses_1.ESLintLens(this.executor);
15
- this.lenses.set('eslint', eslintLens);
16
- this.lenses.set('lint', eslintLens);
17
- const jestLens = new codebase_quality_lenses_1.JestLens(this.executor);
18
- this.lenses.set('jest', jestLens);
19
- this.lenses.set('test', jestLens);
20
- const typescriptLens = new codebase_quality_lenses_1.TypeScriptLens(this.executor);
21
- this.lenses.set('typescript', typescriptLens);
22
- this.lenses.set('typecheck', typescriptLens);
23
- this.lenses.set('tsc', typescriptLens);
24
- const knipLens = new codebase_quality_lenses_1.KnipLens(this.executor);
25
- this.lenses.set('knip', knipLens);
26
- this.lenses.set('deadcode', knipLens);
27
- const prettierLens = new codebase_quality_lenses_1.PrettierLens(this.executor);
28
- this.lenses.set('prettier', prettierLens);
29
- this.lenses.set('format', prettierLens);
30
- const gitLens = new codebase_quality_lenses_1.GitLens(this.executor);
31
- this.lenses.set('git', gitLens);
32
- const alexandriaLens = new codebase_quality_lenses_1.AlexandriaLens(this.executor);
33
- this.lenses.set('alexandria', alexandriaLens);
34
- this.lenses.set('docs', alexandriaLens);
35
- }
36
- async executeTool(request) {
37
- const startTime = Date.now();
38
- if (!request.packageLayer || !request.packageCommand) {
39
- throw new Error('packageLayer and packageCommand are required. Legacy execution has been removed.');
40
- }
41
- return this.executeWithPackageLayer(request, startTime);
42
- }
43
- async executeWithPackageLayer(request, startTime) {
44
- const { repoPath, packageLayer, packageCommand } = request;
45
- if (!packageLayer || !packageCommand) {
46
- throw new Error('packageLayer and packageCommand are required for new execution path');
47
- }
48
- const packagePath = packageLayer.packageData.path || '';
49
- const cwd = packagePath ? `${repoPath}/${packagePath}` : repoPath;
50
- if (!packageCommand.isLensCommand || !packageCommand.lensId) {
51
- console.log(`[QualityLensService] Not a lens command, executing directly: ${packageCommand.name}`);
52
- return this.executeNonLensCommand(request, packageCommand, cwd, startTime);
53
- }
54
- const lens = this.lenses.get(packageCommand.lensId);
55
- if (!lens) {
56
- console.warn(`[QualityLensService] No lens registered for: ${packageCommand.lensId}`);
57
- return this.executeNonLensCommand(request, packageCommand, cwd, startTime);
58
- }
59
- console.log(`[QualityLensService] Using ${lens.name} for command: ${packageCommand.name} (lensId: ${packageCommand.lensId})`);
60
- try {
61
- const { command, args } = this.parseCommandString(packageCommand.command);
62
- lens.configure({
63
- cwd,
64
- tool: {
65
- name: packageCommand.lensId,
66
- command,
67
- args,
68
- cwd,
69
- available: true,
70
- },
71
- });
72
- const lensResult = await lens.run();
73
- const { success, exitCode } = this.determineLensSuccess(lensResult);
74
- return {
75
- success,
76
- toolName: packageCommand.lensId,
77
- command: packageCommand.command,
78
- packagePath,
79
- exitCode,
80
- duration: Date.now() - startTime,
81
- stdout: lensResult.raw?.stdout || '',
82
- stderr: lensResult.raw?.stderr || lensResult.error?.message || '',
83
- lensResult,
84
- qualityContext: {
85
- lensId: packageCommand.lensId,
86
- operation: packageCommand.lensOperation,
87
- availableLenses: packageLayer.qualityMetrics?.availableLenses,
88
- missingLenses: packageLayer.qualityMetrics?.missingLenses,
89
- },
90
- };
91
- }
92
- catch (error) {
93
- console.error(`[QualityLensService] Error:`, error);
94
- return this.createErrorResponse(packageCommand.lensId || packageCommand.name, packageCommand.command, packagePath, error, startTime);
95
- }
96
- }
97
- async executeNonLensCommand(request, packageCommand, cwd, startTime) {
98
- const { command, args } = this.parseCommandString(packageCommand.command);
99
- try {
100
- const result = await this.executor.execute(command, args, { cwd });
101
- return {
102
- success: result.exitCode === 0,
103
- toolName: packageCommand.name,
104
- command: packageCommand.command,
105
- packagePath: request.packageLayer?.packageData.path,
106
- exitCode: result.exitCode,
107
- duration: Date.now() - startTime,
108
- stdout: result.stdout,
109
- stderr: result.stderr,
110
- };
111
- }
112
- catch (error) {
113
- return this.createErrorResponse(packageCommand.name, packageCommand.command, request.packageLayer?.packageData.path, error, startTime);
114
- }
115
- }
116
- parseCommandString(commandString) {
117
- if (commandString.startsWith('npm run ')) {
118
- const parts = commandString.split(' ');
119
- return { command: 'npm', args: ['run', ...parts.slice(2)] };
120
- }
121
- if (commandString.startsWith('yarn ')) {
122
- const parts = commandString.split(' ');
123
- return { command: 'yarn', args: parts.slice(1) };
124
- }
125
- if (commandString.startsWith('pnpm ')) {
126
- const parts = commandString.split(' ');
127
- return { command: 'pnpm', args: parts.slice(1) };
128
- }
129
- const parts = commandString.split(' ');
130
- return { command: parts[0] || '', args: parts.slice(1) };
131
- }
132
- determineLensSuccess(lensResult) {
133
- let exitCode = 0;
134
- let success = true;
135
- if (lensResult.raw?.exitCode !== undefined) {
136
- exitCode = lensResult.raw.exitCode;
137
- success = exitCode === 0;
138
- }
139
- else if (lensResult.error) {
140
- exitCode = 1;
141
- success = false;
142
- }
143
- else if (lensResult.metrics?.issuesBySeverity?.error &&
144
- lensResult.metrics.issuesBySeverity.error > 0) {
145
- exitCode = 1;
146
- success = false;
147
- }
148
- else {
149
- success = lensResult.success !== false;
150
- exitCode = success ? 0 : 1;
151
- }
152
- return { success, exitCode };
153
- }
154
- createErrorResponse(toolName, command, packagePath, error, startTime) {
155
- return {
156
- success: false,
157
- toolName,
158
- command,
159
- packagePath,
160
- exitCode: 1,
161
- duration: Date.now() - startTime,
162
- stdout: '',
163
- stderr: error.message || 'Tool execution failed',
164
- error: error.message,
165
- };
166
- }
167
- getAvailableLenses() {
168
- return Array.from(this.lenses.keys());
169
- }
170
- hasLensForTool(toolName) {
171
- return this.lenses.has(toolName.toLowerCase());
172
- }
173
- }
174
- exports.QualityLensService = QualityLensService;
175
- //# sourceMappingURL=QualityLensService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QualityLensService.js","sourceRoot":"","sources":["../../src/service/QualityLensService.ts"],"names":[],"mappings":"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"}