driftdetect 0.4.7 → 0.6.0
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/bin/drift.js +37 -1
- package/dist/bin/drift.js.map +1 -1
- package/dist/commands/approve.d.ts +20 -0
- package/dist/commands/approve.d.ts.map +1 -1
- package/dist/commands/approve.js +38 -72
- package/dist/commands/approve.js.map +1 -1
- package/dist/commands/check.d.ts +41 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +21 -11
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/constraints.d.ts +17 -0
- package/dist/commands/constraints.d.ts.map +1 -0
- package/dist/commands/constraints.js +686 -0
- package/dist/commands/constraints.js.map +1 -0
- package/dist/commands/coupling.d.ts +17 -0
- package/dist/commands/coupling.d.ts.map +1 -0
- package/dist/commands/coupling.js +726 -0
- package/dist/commands/coupling.js.map +1 -0
- package/dist/commands/decisions.d.ts +19 -0
- package/dist/commands/decisions.d.ts.map +1 -0
- package/dist/commands/decisions.js +771 -0
- package/dist/commands/decisions.js.map +1 -0
- package/dist/commands/error-handling.d.ts +15 -0
- package/dist/commands/error-handling.d.ts.map +1 -0
- package/dist/commands/error-handling.js +608 -0
- package/dist/commands/error-handling.js.map +1 -0
- package/dist/commands/export.d.ts +16 -0
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +46 -50
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/files.d.ts +15 -0
- package/dist/commands/files.d.ts.map +1 -1
- package/dist/commands/files.js +27 -48
- package/dist/commands/files.js.map +1 -1
- package/dist/commands/go.d.ts +21 -0
- package/dist/commands/go.d.ts.map +1 -0
- package/dist/commands/go.js +530 -0
- package/dist/commands/go.js.map +1 -0
- package/dist/commands/ignore.d.ts +20 -0
- package/dist/commands/ignore.d.ts.map +1 -1
- package/dist/commands/ignore.js +25 -48
- package/dist/commands/ignore.js.map +1 -1
- package/dist/commands/index.d.ts +11 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +15 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/migrate-storage.d.ts +23 -0
- package/dist/commands/migrate-storage.d.ts.map +1 -0
- package/dist/commands/migrate-storage.js +337 -0
- package/dist/commands/migrate-storage.js.map +1 -0
- package/dist/commands/report.d.ts +22 -0
- package/dist/commands/report.d.ts.map +1 -1
- package/dist/commands/report.js +19 -10
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/scan.d.ts +2 -0
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +134 -3
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/simulate.d.ts +17 -0
- package/dist/commands/simulate.d.ts.map +1 -0
- package/dist/commands/simulate.js +253 -0
- package/dist/commands/simulate.js.map +1 -0
- package/dist/commands/skills.d.ts +16 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +409 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts +20 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +74 -72
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/test-topology.d.ts +15 -0
- package/dist/commands/test-topology.d.ts.map +1 -0
- package/dist/commands/test-topology.js +589 -0
- package/dist/commands/test-topology.js.map +1 -0
- package/dist/commands/where.d.ts +15 -0
- package/dist/commands/where.d.ts.map +1 -1
- package/dist/commands/where.js +41 -88
- package/dist/commands/where.js.map +1 -1
- package/dist/commands/wpf.d.ts +21 -0
- package/dist/commands/wpf.d.ts.map +1 -0
- package/dist/commands/wpf.js +632 -0
- package/dist/commands/wpf.js.map +1 -0
- package/dist/commands/wrappers.d.ts +16 -0
- package/dist/commands/wrappers.d.ts.map +1 -0
- package/dist/commands/wrappers.js +181 -0
- package/dist/commands/wrappers.js.map +1 -0
- package/dist/services/pattern-service-factory.d.ts +37 -0
- package/dist/services/pattern-service-factory.d.ts.map +1 -0
- package/dist/services/pattern-service-factory.js +41 -0
- package/dist/services/pattern-service-factory.js.map +1 -0
- package/package.json +35 -23
- package/LICENSE +0 -21
package/dist/bin/drift.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { Command } from 'commander';
|
|
11
11
|
import { VERSION } from '../index.js';
|
|
12
|
-
import { initCommand, scanCommand, checkCommand, statusCommand, approveCommand, ignoreCommand, reportCommand, exportCommand, whereCommand, filesCommand, watchCommand, dashboardCommand, trendsCommand, parserCommand, dnaCommand, boundariesCommand, callgraphCommand, projectsCommand, } from '../commands/index.js';
|
|
12
|
+
import { initCommand, scanCommand, checkCommand, statusCommand, approveCommand, ignoreCommand, reportCommand, exportCommand, whereCommand, filesCommand, watchCommand, dashboardCommand, trendsCommand, parserCommand, dnaCommand, boundariesCommand, callgraphCommand, projectsCommand, skillsCommand, migrateStorageCommand, wrappersCommand, createTestTopologyCommand, createCouplingCommand, createErrorHandlingCommand, createSimulateCommand, createConstraintsCommand, createWpfCommand, createGoCommand, } from '../commands/index.js';
|
|
13
13
|
/**
|
|
14
14
|
* Create and configure the main CLI program
|
|
15
15
|
*/
|
|
@@ -40,6 +40,20 @@ function createProgram() {
|
|
|
40
40
|
program.addCommand(boundariesCommand);
|
|
41
41
|
program.addCommand(callgraphCommand);
|
|
42
42
|
program.addCommand(projectsCommand);
|
|
43
|
+
program.addCommand(skillsCommand);
|
|
44
|
+
program.addCommand(migrateStorageCommand);
|
|
45
|
+
program.addCommand(wrappersCommand);
|
|
46
|
+
// Analysis commands (L5-L7 layers)
|
|
47
|
+
program.addCommand(createTestTopologyCommand());
|
|
48
|
+
program.addCommand(createCouplingCommand());
|
|
49
|
+
program.addCommand(createErrorHandlingCommand());
|
|
50
|
+
program.addCommand(createConstraintsCommand());
|
|
51
|
+
// Speculative Execution Engine
|
|
52
|
+
program.addCommand(createSimulateCommand());
|
|
53
|
+
// WPF Framework Support
|
|
54
|
+
program.addCommand(createWpfCommand());
|
|
55
|
+
// Go Language Support
|
|
56
|
+
program.addCommand(createGoCommand());
|
|
43
57
|
// Add help examples
|
|
44
58
|
program.addHelpText('after', `
|
|
45
59
|
Examples:
|
|
@@ -81,6 +95,28 @@ Examples:
|
|
|
81
95
|
$ drift projects List all registered projects
|
|
82
96
|
$ drift projects switch <name> Switch active project
|
|
83
97
|
$ drift projects info Show current project details
|
|
98
|
+
$ drift skills List available Agent Skills
|
|
99
|
+
$ drift skills install <name> Install a skill to your project
|
|
100
|
+
$ drift skills info <name> Show skill details
|
|
101
|
+
$ drift migrate-storage Migrate to unified storage format
|
|
102
|
+
$ drift migrate-storage status Check current storage format
|
|
103
|
+
$ drift wrappers Detect framework wrapper patterns
|
|
104
|
+
$ drift wrappers --json Output wrapper analysis as JSON
|
|
105
|
+
$ drift wrappers --verbose Show detailed wrapper information
|
|
106
|
+
$ drift test-topology Show test topology status
|
|
107
|
+
$ drift test-topology coverage Analyze test coverage mapping
|
|
108
|
+
$ drift test-topology uncovered Find untested code
|
|
109
|
+
$ drift test-topology affected Find tests affected by changes
|
|
110
|
+
$ drift coupling Show module coupling status
|
|
111
|
+
$ drift coupling cycles Detect dependency cycles
|
|
112
|
+
$ drift coupling hotspots Find highly coupled modules
|
|
113
|
+
$ drift coupling analyze <mod> Analyze specific module
|
|
114
|
+
$ drift error-handling Show error handling status
|
|
115
|
+
$ drift error-handling gaps Find error handling gaps
|
|
116
|
+
$ drift error-handling unhandled Find unhandled error paths
|
|
117
|
+
$ drift simulate "add rate limiting" Simulate implementation approaches
|
|
118
|
+
$ drift simulate "add auth" -v Simulate with detailed analysis
|
|
119
|
+
$ drift simulate "add caching" --json Output simulation as JSON
|
|
84
120
|
|
|
85
121
|
Documentation:
|
|
86
122
|
https://github.com/drift/drift
|
package/dist/bin/drift.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drift.js","sourceRoot":"","sources":["../../src/bin/drift.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,SAAS,aAAa;IACpB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,qEAAqE,CAAC;SAClF,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,4BAA4B,CAAC;SAC/D,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC;SAC5C,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;IAElD,wBAAwB;IACxB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAChC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACrC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/B,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACtC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACrC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAEpC,oBAAoB;IACpB,OAAO,CAAC,WAAW,CACjB,OAAO,EACP
|
|
1
|
+
{"version":3,"file":"drift.js","sourceRoot":"","sources":["../../src/bin/drift.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Approve Command - drift approve
|
|
3
|
+
*
|
|
4
|
+
* Approve a discovered pattern to enforce it.
|
|
5
|
+
*
|
|
6
|
+
* MIGRATION: Now uses IPatternService for pattern operations.
|
|
7
|
+
*
|
|
8
|
+
* @requirements 29.5
|
|
9
|
+
*/
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
export interface ApproveOptions {
|
|
12
|
+
/** Approve all patterns matching a category */
|
|
13
|
+
category?: string;
|
|
14
|
+
/** Skip confirmation prompt */
|
|
15
|
+
yes?: boolean;
|
|
16
|
+
/** Enable verbose output */
|
|
17
|
+
verbose?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare const approveCommand: Command;
|
|
20
|
+
//# sourceMappingURL=approve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../src/commands/approve.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../src/commands/approve.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoQD,eAAO,MAAM,cAAc,SAMH,CAAC"}
|
package/dist/commands/approve.js
CHANGED
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Approve a discovered pattern to enforce it.
|
|
5
5
|
*
|
|
6
|
+
* MIGRATION: Now uses IPatternService for pattern operations.
|
|
7
|
+
*
|
|
6
8
|
* @requirements 29.5
|
|
7
9
|
*/
|
|
8
10
|
import { Command } from 'commander';
|
|
9
11
|
import * as fs from 'node:fs/promises';
|
|
10
12
|
import * as path from 'node:path';
|
|
11
13
|
import chalk from 'chalk';
|
|
12
|
-
import {
|
|
14
|
+
import { createCLIPatternService } from '../services/pattern-service-factory.js';
|
|
13
15
|
import { createSpinner, status } from '../ui/spinner.js';
|
|
14
16
|
import { confirmPrompt, promptBatchPatternApproval } from '../ui/prompts.js';
|
|
15
17
|
import { createPatternsTable } from '../ui/table.js';
|
|
@@ -41,16 +43,18 @@ async function approveAction(patternId, options) {
|
|
|
41
43
|
status.error('Drift is not initialized. Run `drift init` first.');
|
|
42
44
|
process.exit(1);
|
|
43
45
|
}
|
|
44
|
-
// Initialize pattern
|
|
46
|
+
// Initialize pattern service
|
|
45
47
|
const spinner = createSpinner('Loading patterns...');
|
|
46
48
|
spinner.start();
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
+
const service = createCLIPatternService(rootDir);
|
|
50
|
+
// Get discovered patterns (auto-initializes)
|
|
51
|
+
const discoveredResult = await service.listByStatus('discovered', { limit: 1000 });
|
|
49
52
|
spinner.succeed('Patterns loaded');
|
|
50
53
|
// Handle category-based approval
|
|
51
54
|
if (options.category) {
|
|
52
55
|
const category = options.category;
|
|
53
|
-
const
|
|
56
|
+
const categoryResult = await service.listByCategory(category, { limit: 1000 });
|
|
57
|
+
const discovered = categoryResult.items.filter((p) => p.status === 'discovered');
|
|
54
58
|
if (discovered.length === 0) {
|
|
55
59
|
status.info(`No discovered patterns in category: ${category}`);
|
|
56
60
|
return;
|
|
@@ -62,9 +66,9 @@ async function approveAction(patternId, options) {
|
|
|
62
66
|
id: p.id.slice(0, 13),
|
|
63
67
|
name: p.name.slice(0, 28),
|
|
64
68
|
category: p.category,
|
|
65
|
-
confidence: p.confidence
|
|
66
|
-
locations: p.
|
|
67
|
-
outliers: p.
|
|
69
|
+
confidence: p.confidence,
|
|
70
|
+
locations: p.locationCount,
|
|
71
|
+
outliers: p.outlierCount,
|
|
68
72
|
}));
|
|
69
73
|
console.log(createPatternsTable(rows));
|
|
70
74
|
console.log();
|
|
@@ -82,24 +86,18 @@ async function approveAction(patternId, options) {
|
|
|
82
86
|
let approvedCount = 0;
|
|
83
87
|
for (const pattern of discovered) {
|
|
84
88
|
try {
|
|
85
|
-
|
|
89
|
+
await service.approvePattern(pattern.id);
|
|
86
90
|
approvedCount++;
|
|
87
91
|
if (verbose) {
|
|
88
92
|
console.log(chalk.gray(` Approved: ${pattern.name}`));
|
|
89
93
|
}
|
|
90
94
|
}
|
|
91
95
|
catch (error) {
|
|
92
|
-
if (
|
|
93
|
-
|
|
94
|
-
console.log(chalk.yellow(` Skipped (already approved): ${pattern.name}`));
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
throw error;
|
|
96
|
+
if (verbose) {
|
|
97
|
+
console.log(chalk.yellow(` Skipped: ${pattern.name}`));
|
|
99
98
|
}
|
|
100
99
|
}
|
|
101
100
|
}
|
|
102
|
-
await store.saveAll();
|
|
103
101
|
approveSpinner.succeed(`Approved ${approvedCount} patterns`);
|
|
104
102
|
console.log();
|
|
105
103
|
return;
|
|
@@ -107,7 +105,7 @@ async function approveAction(patternId, options) {
|
|
|
107
105
|
// Handle single pattern approval
|
|
108
106
|
// Check for special pattern IDs
|
|
109
107
|
if (patternId === 'all') {
|
|
110
|
-
const discovered =
|
|
108
|
+
const discovered = discoveredResult.items;
|
|
111
109
|
if (discovered.length === 0) {
|
|
112
110
|
status.info('No discovered patterns to approve');
|
|
113
111
|
return;
|
|
@@ -118,7 +116,7 @@ async function approveAction(patternId, options) {
|
|
|
118
116
|
id: p.id,
|
|
119
117
|
name: p.name,
|
|
120
118
|
category: p.category,
|
|
121
|
-
confidence: p.confidence
|
|
119
|
+
confidence: p.confidence,
|
|
122
120
|
}));
|
|
123
121
|
const selectedIds = await promptBatchPatternApproval(choices);
|
|
124
122
|
if (selectedIds.length === 0) {
|
|
@@ -127,54 +125,34 @@ async function approveAction(patternId, options) {
|
|
|
127
125
|
}
|
|
128
126
|
const approveSpinner = createSpinner('Approving patterns...');
|
|
129
127
|
approveSpinner.start();
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
try {
|
|
133
|
-
store.approve(id);
|
|
134
|
-
approvedCount++;
|
|
135
|
-
}
|
|
136
|
-
catch {
|
|
137
|
-
// Skip errors
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
await store.saveAll();
|
|
141
|
-
approveSpinner.succeed(`Approved ${approvedCount} patterns`);
|
|
128
|
+
const approved = await service.approveMany(selectedIds);
|
|
129
|
+
approveSpinner.succeed(`Approved ${approved.length} patterns`);
|
|
142
130
|
console.log();
|
|
143
131
|
return;
|
|
144
132
|
}
|
|
145
133
|
// Non-interactive: approve all
|
|
146
134
|
const approveSpinner = createSpinner('Approving all patterns...');
|
|
147
135
|
approveSpinner.start();
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
store.approve(pattern.id);
|
|
152
|
-
approvedCount++;
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
// Skip errors
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
await store.saveAll();
|
|
159
|
-
approveSpinner.succeed(`Approved ${approvedCount} patterns`);
|
|
136
|
+
const ids = discovered.map((p) => p.id);
|
|
137
|
+
const approved = await service.approveMany(ids);
|
|
138
|
+
approveSpinner.succeed(`Approved ${approved.length} patterns`);
|
|
160
139
|
console.log();
|
|
161
140
|
return;
|
|
162
141
|
}
|
|
163
142
|
// Approve single pattern by ID
|
|
164
|
-
const pattern =
|
|
143
|
+
const pattern = await service.getPattern(patternId);
|
|
165
144
|
if (!pattern) {
|
|
166
145
|
// Try to find by partial ID match
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
if (matches.length === 0) {
|
|
146
|
+
const searchResult = await service.search(patternId, { limit: 20 });
|
|
147
|
+
if (searchResult.length === 0) {
|
|
170
148
|
status.error(`Pattern not found: ${patternId}`);
|
|
171
149
|
console.log();
|
|
172
150
|
console.log(chalk.gray('Use `drift status -d` to see available patterns'));
|
|
173
151
|
process.exit(1);
|
|
174
152
|
}
|
|
175
|
-
if (
|
|
153
|
+
if (searchResult.length === 1) {
|
|
176
154
|
// Single match, use it
|
|
177
|
-
const match =
|
|
155
|
+
const match = searchResult[0];
|
|
178
156
|
console.log(chalk.gray(`Found pattern: ${match.id}`));
|
|
179
157
|
console.log();
|
|
180
158
|
if (!options.yes) {
|
|
@@ -185,17 +163,11 @@ async function approveAction(patternId, options) {
|
|
|
185
163
|
}
|
|
186
164
|
}
|
|
187
165
|
try {
|
|
188
|
-
|
|
189
|
-
await store.saveAll();
|
|
166
|
+
await service.approvePattern(match.id);
|
|
190
167
|
status.success(`Approved pattern: ${match.name}`);
|
|
191
168
|
}
|
|
192
169
|
catch (error) {
|
|
193
|
-
|
|
194
|
-
status.warning(`Pattern is already approved: ${match.name}`);
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
throw error;
|
|
198
|
-
}
|
|
170
|
+
status.warning(`Could not approve pattern: ${match.name}`);
|
|
199
171
|
}
|
|
200
172
|
console.log();
|
|
201
173
|
return;
|
|
@@ -203,17 +175,17 @@ async function approveAction(patternId, options) {
|
|
|
203
175
|
// Multiple matches, show them
|
|
204
176
|
console.log(chalk.yellow(`Multiple patterns match "${patternId}":`));
|
|
205
177
|
console.log();
|
|
206
|
-
const rows =
|
|
178
|
+
const rows = searchResult.slice(0, 10).map((p) => ({
|
|
207
179
|
id: p.id.slice(0, 13),
|
|
208
180
|
name: p.name.slice(0, 28),
|
|
209
181
|
category: p.category,
|
|
210
|
-
confidence: p.confidence
|
|
211
|
-
locations: p.
|
|
212
|
-
outliers: p.
|
|
182
|
+
confidence: p.confidence,
|
|
183
|
+
locations: p.locationCount,
|
|
184
|
+
outliers: p.outlierCount,
|
|
213
185
|
}));
|
|
214
186
|
console.log(createPatternsTable(rows));
|
|
215
|
-
if (
|
|
216
|
-
console.log(chalk.gray(` ... and ${
|
|
187
|
+
if (searchResult.length > 10) {
|
|
188
|
+
console.log(chalk.gray(` ... and ${searchResult.length - 10} more`));
|
|
217
189
|
}
|
|
218
190
|
console.log();
|
|
219
191
|
console.log(chalk.gray('Please specify a more specific pattern ID'));
|
|
@@ -226,7 +198,7 @@ async function approveAction(patternId, options) {
|
|
|
226
198
|
console.log(` Name: ${pattern.name}`);
|
|
227
199
|
console.log(` Category: ${pattern.category}`);
|
|
228
200
|
console.log(` Status: ${pattern.status}`);
|
|
229
|
-
console.log(` Confidence: ${(pattern.confidence
|
|
201
|
+
console.log(` Confidence: ${(pattern.confidence * 100).toFixed(0)}% (${pattern.confidenceLevel})`);
|
|
230
202
|
console.log(` Locations: ${pattern.locations.length}`);
|
|
231
203
|
console.log(` Outliers: ${pattern.outliers.length}`);
|
|
232
204
|
console.log(` Severity: ${pattern.severity}`);
|
|
@@ -247,17 +219,11 @@ async function approveAction(patternId, options) {
|
|
|
247
219
|
}
|
|
248
220
|
// Approve the pattern
|
|
249
221
|
try {
|
|
250
|
-
|
|
251
|
-
await store.saveAll();
|
|
222
|
+
await service.approvePattern(patternId);
|
|
252
223
|
status.success(`Approved pattern: ${pattern.name}`);
|
|
253
224
|
}
|
|
254
225
|
catch (error) {
|
|
255
|
-
|
|
256
|
-
status.error(`Cannot approve pattern from status: ${pattern.status}`);
|
|
257
|
-
}
|
|
258
|
-
else {
|
|
259
|
-
throw error;
|
|
260
|
-
}
|
|
226
|
+
status.error(`Cannot approve pattern from status: ${pattern.status}`);
|
|
261
227
|
}
|
|
262
228
|
console.log();
|
|
263
229
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/commands/approve.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/commands/approve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check Command - drift check
|
|
3
|
+
*
|
|
4
|
+
* Check for violations against approved patterns.
|
|
5
|
+
*
|
|
6
|
+
* MIGRATION: Now uses IPatternService for pattern operations.
|
|
7
|
+
*
|
|
8
|
+
* @requirements 29.3
|
|
9
|
+
*/
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
import type { Violation } from 'driftdetect-core';
|
|
12
|
+
export interface CheckOptions {
|
|
13
|
+
/** Check only staged files */
|
|
14
|
+
staged?: boolean;
|
|
15
|
+
/** Run in CI mode */
|
|
16
|
+
ci?: boolean;
|
|
17
|
+
/** Output format */
|
|
18
|
+
format?: 'text' | 'json' | 'github' | 'gitlab';
|
|
19
|
+
/** Fail threshold (error, warning, none) */
|
|
20
|
+
failOn?: 'error' | 'warning' | 'none';
|
|
21
|
+
/** Enable verbose output */
|
|
22
|
+
verbose?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface CheckResult {
|
|
25
|
+
/** Number of violations */
|
|
26
|
+
violationCount: number;
|
|
27
|
+
/** Number of errors */
|
|
28
|
+
errorCount: number;
|
|
29
|
+
/** Number of warnings */
|
|
30
|
+
warningCount: number;
|
|
31
|
+
/** Exit code */
|
|
32
|
+
exitCode: number;
|
|
33
|
+
/** Violations found */
|
|
34
|
+
violations: Violation[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Determine exit code based on violations and threshold
|
|
38
|
+
*/
|
|
39
|
+
export declare function getExitCode(violations: Violation[], failOn: 'error' | 'warning' | 'none'): number;
|
|
40
|
+
export declare const checkCommand: Command;
|
|
41
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,kBAAkB,CAAC;AAa5D,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qBAAqB;IACrB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC/C,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACtC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AA0CD;;GAEG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GACnC,MAAM,CAWR;AAiOD,eAAO,MAAM,YAAY,SAOH,CAAC"}
|
package/dist/commands/check.js
CHANGED
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Check for violations against approved patterns.
|
|
5
5
|
*
|
|
6
|
+
* MIGRATION: Now uses IPatternService for pattern operations.
|
|
7
|
+
*
|
|
6
8
|
* @requirements 29.3
|
|
7
9
|
*/
|
|
8
10
|
import { Command } from 'commander';
|
|
9
11
|
import * as fs from 'node:fs/promises';
|
|
10
12
|
import * as path from 'node:path';
|
|
11
13
|
import chalk from 'chalk';
|
|
12
|
-
import {
|
|
14
|
+
import { createCLIPatternService } from '../services/pattern-service-factory.js';
|
|
13
15
|
import { createSpinner, status } from '../ui/spinner.js';
|
|
14
16
|
import { getStagedFiles } from '../git/staged-files.js';
|
|
15
17
|
import { TextReporter, JsonReporter, GitHubReporter, GitLabReporter, } from '../reporters/index.js';
|
|
@@ -86,12 +88,18 @@ async function checkAction(options) {
|
|
|
86
88
|
}
|
|
87
89
|
process.exit(1);
|
|
88
90
|
}
|
|
89
|
-
// Initialize pattern
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
91
|
+
// Initialize pattern service
|
|
92
|
+
const service = createCLIPatternService(rootDir);
|
|
93
|
+
// Get approved patterns (service auto-initializes)
|
|
94
|
+
const approvedResult = await service.listByStatus('approved', { limit: 10000 });
|
|
95
|
+
// Fetch full pattern details for each approved pattern
|
|
96
|
+
const approvedPatterns = await Promise.all(approvedResult.items.map(async (summary) => {
|
|
97
|
+
const pattern = await service.getPattern(summary.id);
|
|
98
|
+
return pattern;
|
|
99
|
+
}));
|
|
100
|
+
// Filter out any null patterns
|
|
101
|
+
const validPatterns = approvedPatterns.filter((p) => p !== null);
|
|
102
|
+
if (validPatterns.length === 0) {
|
|
95
103
|
if (showProgress) {
|
|
96
104
|
status.info('No approved patterns to check against.');
|
|
97
105
|
console.log(chalk.gray('Run `drift scan` to discover patterns, then `drift approve` to approve them.'));
|
|
@@ -130,7 +138,7 @@ async function checkAction(options) {
|
|
|
130
138
|
else {
|
|
131
139
|
// Get all files from pattern locations
|
|
132
140
|
const allFiles = new Set();
|
|
133
|
-
for (const pattern of
|
|
141
|
+
for (const pattern of validPatterns) {
|
|
134
142
|
for (const location of pattern.locations) {
|
|
135
143
|
allFiles.add(location.file);
|
|
136
144
|
}
|
|
@@ -155,7 +163,7 @@ async function checkAction(options) {
|
|
|
155
163
|
continue; // File doesn't exist, skip
|
|
156
164
|
}
|
|
157
165
|
// Check against each approved pattern
|
|
158
|
-
for (const pattern of
|
|
166
|
+
for (const pattern of validPatterns) {
|
|
159
167
|
// Check if this file has outliers for this pattern
|
|
160
168
|
const outliers = pattern.outliers.filter((o) => o.file === file);
|
|
161
169
|
for (const outlier of outliers) {
|
|
@@ -196,7 +204,8 @@ async function checkAction(options) {
|
|
|
196
204
|
const warningCount = violations.filter((v) => v.severity === 'warning').length;
|
|
197
205
|
const infoCount = violations.filter((v) => v.severity === 'info').length;
|
|
198
206
|
const hintCount = violations.filter((v) => v.severity === 'hint').length;
|
|
199
|
-
// Prepare report data
|
|
207
|
+
// Prepare report data - convert unified Pattern to legacy format for reporters
|
|
208
|
+
// The reporters expect the legacy Pattern type with confidence as an object
|
|
200
209
|
const reportData = {
|
|
201
210
|
violations,
|
|
202
211
|
summary: {
|
|
@@ -206,7 +215,8 @@ async function checkAction(options) {
|
|
|
206
215
|
infos: infoCount,
|
|
207
216
|
hints: hintCount,
|
|
208
217
|
},
|
|
209
|
-
|
|
218
|
+
// Cast to unknown first since the types are structurally different
|
|
219
|
+
patterns: validPatterns,
|
|
210
220
|
timestamp: new Date().toISOString(),
|
|
211
221
|
rootDir,
|
|
212
222
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constraints Command - drift constraints
|
|
3
|
+
*
|
|
4
|
+
* Manage architectural constraints learned from the codebase.
|
|
5
|
+
* Constraints are invariants that MUST be satisfied by code.
|
|
6
|
+
*/
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
export interface ConstraintsOptions {
|
|
9
|
+
format?: 'text' | 'json';
|
|
10
|
+
verbose?: boolean;
|
|
11
|
+
category?: string;
|
|
12
|
+
status?: string;
|
|
13
|
+
limit?: number;
|
|
14
|
+
minConfidence?: number;
|
|
15
|
+
}
|
|
16
|
+
export declare function createConstraintsCommand(): Command;
|
|
17
|
+
//# sourceMappingURL=constraints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../../src/commands/constraints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAusBD,wBAAgB,wBAAwB,IAAI,OAAO,CA2DlD"}
|