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.
Files changed (92) hide show
  1. package/dist/bin/drift.js +37 -1
  2. package/dist/bin/drift.js.map +1 -1
  3. package/dist/commands/approve.d.ts +20 -0
  4. package/dist/commands/approve.d.ts.map +1 -1
  5. package/dist/commands/approve.js +38 -72
  6. package/dist/commands/approve.js.map +1 -1
  7. package/dist/commands/check.d.ts +41 -0
  8. package/dist/commands/check.d.ts.map +1 -1
  9. package/dist/commands/check.js +21 -11
  10. package/dist/commands/check.js.map +1 -1
  11. package/dist/commands/constraints.d.ts +17 -0
  12. package/dist/commands/constraints.d.ts.map +1 -0
  13. package/dist/commands/constraints.js +686 -0
  14. package/dist/commands/constraints.js.map +1 -0
  15. package/dist/commands/coupling.d.ts +17 -0
  16. package/dist/commands/coupling.d.ts.map +1 -0
  17. package/dist/commands/coupling.js +726 -0
  18. package/dist/commands/coupling.js.map +1 -0
  19. package/dist/commands/decisions.d.ts +19 -0
  20. package/dist/commands/decisions.d.ts.map +1 -0
  21. package/dist/commands/decisions.js +771 -0
  22. package/dist/commands/decisions.js.map +1 -0
  23. package/dist/commands/error-handling.d.ts +15 -0
  24. package/dist/commands/error-handling.d.ts.map +1 -0
  25. package/dist/commands/error-handling.js +608 -0
  26. package/dist/commands/error-handling.js.map +1 -0
  27. package/dist/commands/export.d.ts +16 -0
  28. package/dist/commands/export.d.ts.map +1 -1
  29. package/dist/commands/export.js +46 -50
  30. package/dist/commands/export.js.map +1 -1
  31. package/dist/commands/files.d.ts +15 -0
  32. package/dist/commands/files.d.ts.map +1 -1
  33. package/dist/commands/files.js +27 -48
  34. package/dist/commands/files.js.map +1 -1
  35. package/dist/commands/go.d.ts +21 -0
  36. package/dist/commands/go.d.ts.map +1 -0
  37. package/dist/commands/go.js +530 -0
  38. package/dist/commands/go.js.map +1 -0
  39. package/dist/commands/ignore.d.ts +20 -0
  40. package/dist/commands/ignore.d.ts.map +1 -1
  41. package/dist/commands/ignore.js +25 -48
  42. package/dist/commands/ignore.js.map +1 -1
  43. package/dist/commands/index.d.ts +11 -0
  44. package/dist/commands/index.d.ts.map +1 -1
  45. package/dist/commands/index.js +15 -0
  46. package/dist/commands/index.js.map +1 -1
  47. package/dist/commands/migrate-storage.d.ts +23 -0
  48. package/dist/commands/migrate-storage.d.ts.map +1 -0
  49. package/dist/commands/migrate-storage.js +337 -0
  50. package/dist/commands/migrate-storage.js.map +1 -0
  51. package/dist/commands/report.d.ts +22 -0
  52. package/dist/commands/report.d.ts.map +1 -1
  53. package/dist/commands/report.js +19 -10
  54. package/dist/commands/report.js.map +1 -1
  55. package/dist/commands/scan.d.ts +2 -0
  56. package/dist/commands/scan.d.ts.map +1 -1
  57. package/dist/commands/scan.js +134 -3
  58. package/dist/commands/scan.js.map +1 -1
  59. package/dist/commands/simulate.d.ts +17 -0
  60. package/dist/commands/simulate.d.ts.map +1 -0
  61. package/dist/commands/simulate.js +253 -0
  62. package/dist/commands/simulate.js.map +1 -0
  63. package/dist/commands/skills.d.ts +16 -0
  64. package/dist/commands/skills.d.ts.map +1 -0
  65. package/dist/commands/skills.js +409 -0
  66. package/dist/commands/skills.js.map +1 -0
  67. package/dist/commands/status.d.ts +20 -0
  68. package/dist/commands/status.d.ts.map +1 -1
  69. package/dist/commands/status.js +74 -72
  70. package/dist/commands/status.js.map +1 -1
  71. package/dist/commands/test-topology.d.ts +15 -0
  72. package/dist/commands/test-topology.d.ts.map +1 -0
  73. package/dist/commands/test-topology.js +589 -0
  74. package/dist/commands/test-topology.js.map +1 -0
  75. package/dist/commands/where.d.ts +15 -0
  76. package/dist/commands/where.d.ts.map +1 -1
  77. package/dist/commands/where.js +41 -88
  78. package/dist/commands/where.js.map +1 -1
  79. package/dist/commands/wpf.d.ts +21 -0
  80. package/dist/commands/wpf.d.ts.map +1 -0
  81. package/dist/commands/wpf.js +632 -0
  82. package/dist/commands/wpf.js.map +1 -0
  83. package/dist/commands/wrappers.d.ts +16 -0
  84. package/dist/commands/wrappers.d.ts.map +1 -0
  85. package/dist/commands/wrappers.js +181 -0
  86. package/dist/commands/wrappers.js.map +1 -0
  87. package/dist/services/pattern-service-factory.d.ts +37 -0
  88. package/dist/services/pattern-service-factory.d.ts.map +1 -0
  89. package/dist/services/pattern-service-factory.js +41 -0
  90. package/dist/services/pattern-service-factory.js.map +1 -0
  91. package/package.json +35 -23
  92. package/LICENSE +0 -21
@@ -3,13 +3,15 @@
3
3
  *
4
4
  * Ignore a pattern to stop tracking it.
5
5
  *
6
+ * MIGRATION: Now uses IPatternService for pattern operations.
7
+ *
6
8
  * @requirements 29.6
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 { PatternStore, InvalidStateTransitionError, } from 'driftdetect-core';
14
+ import { createCLIPatternService } from '../services/pattern-service-factory.js';
13
15
  import { createSpinner, status } from '../ui/spinner.js';
14
16
  import { confirmPrompt, promptIgnoreReason } from '../ui/prompts.js';
15
17
  import { createPatternsTable } from '../ui/table.js';
@@ -40,28 +42,27 @@ async function ignoreAction(patternId, options) {
40
42
  status.error('Drift is not initialized. Run `drift init` first.');
41
43
  process.exit(1);
42
44
  }
43
- // Initialize pattern store
45
+ // Initialize pattern service
44
46
  const spinner = createSpinner('Loading patterns...');
45
47
  spinner.start();
46
- const store = new PatternStore({ rootDir });
47
- await store.initialize();
48
+ const service = createCLIPatternService(rootDir);
49
+ // Trigger initialization by getting status
50
+ await service.getStatus();
48
51
  spinner.succeed('Patterns loaded');
49
52
  // Find the pattern
50
- const pattern = store.get(patternId);
53
+ const pattern = await service.getPattern(patternId);
51
54
  if (!pattern) {
52
55
  // Try to find by partial ID match
53
- const allPatterns = store.getAll();
54
- const matches = allPatterns.filter((p) => p.id.includes(patternId) ||
55
- p.name.toLowerCase().includes(patternId.toLowerCase()));
56
- if (matches.length === 0) {
56
+ const searchResult = await service.search(patternId, { limit: 20 });
57
+ if (searchResult.length === 0) {
57
58
  status.error(`Pattern not found: ${patternId}`);
58
59
  console.log();
59
60
  console.log(chalk.gray('Use `drift status -d` to see available patterns'));
60
61
  process.exit(1);
61
62
  }
62
- if (matches.length === 1) {
63
+ if (searchResult.length === 1) {
63
64
  // Single match, use it
64
- const match = matches[0];
65
+ const match = searchResult[0];
65
66
  console.log(chalk.gray(`Found pattern: ${match.id}`));
66
67
  console.log();
67
68
  // Get reason if not provided
@@ -77,27 +78,16 @@ async function ignoreAction(patternId, options) {
77
78
  }
78
79
  }
79
80
  try {
80
- // Update pattern with reason in metadata
81
- if (reason) {
82
- store.update(match.id, {
83
- metadata: {
84
- ...match.metadata,
85
- custom: {
86
- ...match.metadata.custom,
87
- ignoreReason: reason,
88
- },
89
- },
90
- });
91
- }
92
- store.ignore(match.id);
93
- await store.saveAll();
81
+ // Note: reason is stored via the service's ignorePattern method
82
+ // The service handles metadata updates internally
83
+ await service.ignorePattern(match.id);
94
84
  status.success(`Ignored pattern: ${match.name}`);
95
85
  if (reason) {
96
86
  console.log(chalk.gray(` Reason: ${reason}`));
97
87
  }
98
88
  }
99
89
  catch (error) {
100
- if (error instanceof InvalidStateTransitionError) {
90
+ if (error instanceof Error && error.message.includes('already ignored')) {
101
91
  status.warning(`Pattern is already ignored: ${match.name}`);
102
92
  }
103
93
  else {
@@ -110,17 +100,17 @@ async function ignoreAction(patternId, options) {
110
100
  // Multiple matches, show them
111
101
  console.log(chalk.yellow(`Multiple patterns match "${patternId}":`));
112
102
  console.log();
113
- const rows = matches.slice(0, 10).map((p) => ({
103
+ const rows = searchResult.slice(0, 10).map((p) => ({
114
104
  id: p.id.slice(0, 13),
115
105
  name: p.name.slice(0, 28),
116
106
  category: p.category,
117
- confidence: p.confidence.score,
118
- locations: p.locations.length,
119
- outliers: p.outliers.length,
107
+ confidence: p.confidence,
108
+ locations: p.locationCount,
109
+ outliers: p.outlierCount,
120
110
  }));
121
111
  console.log(createPatternsTable(rows));
122
- if (matches.length > 10) {
123
- console.log(chalk.gray(` ... and ${matches.length - 10} more`));
112
+ if (searchResult.length > 10) {
113
+ console.log(chalk.gray(` ... and ${searchResult.length - 10} more`));
124
114
  }
125
115
  console.log();
126
116
  console.log(chalk.gray('Please specify a more specific pattern ID'));
@@ -133,7 +123,7 @@ async function ignoreAction(patternId, options) {
133
123
  console.log(` Name: ${pattern.name}`);
134
124
  console.log(` Category: ${pattern.category}`);
135
125
  console.log(` Status: ${pattern.status}`);
136
- console.log(` Confidence: ${(pattern.confidence.score * 100).toFixed(0)}% (${pattern.confidence.level})`);
126
+ console.log(` Confidence: ${(pattern.confidence * 100).toFixed(0)}% (${pattern.confidenceLevel})`);
137
127
  console.log(` Locations: ${pattern.locations.length}`);
138
128
  console.log(` Outliers: ${pattern.outliers.length}`);
139
129
  console.log();
@@ -161,27 +151,14 @@ async function ignoreAction(patternId, options) {
161
151
  }
162
152
  // Ignore the pattern
163
153
  try {
164
- // Update pattern with reason in metadata
165
- if (reason) {
166
- store.update(pattern.id, {
167
- metadata: {
168
- ...pattern.metadata,
169
- custom: {
170
- ...pattern.metadata.custom,
171
- ignoreReason: reason,
172
- },
173
- },
174
- });
175
- }
176
- store.ignore(patternId);
177
- await store.saveAll();
154
+ await service.ignorePattern(patternId);
178
155
  status.success(`Ignored pattern: ${pattern.name}`);
179
156
  if (reason) {
180
157
  console.log(chalk.gray(` Reason: ${reason}`));
181
158
  }
182
159
  }
183
160
  catch (error) {
184
- if (error instanceof InvalidStateTransitionError) {
161
+ if (error instanceof Error && error.message.includes('Cannot transition')) {
185
162
  status.error(`Cannot ignore pattern from status: ${pattern.status}`);
186
163
  }
187
164
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../src/commands/ignore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAmB,MAAM,gBAAgB,CAAC;AAWtE,6CAA6C;AAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC;AAE3B;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,OAAe;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CACzB,SAAiB,EACjB,OAAsB;IAEtB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE9B,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,uBAAuB;IACvB,IAAI,CAAC,CAAC,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC;IACrD,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IAEzB,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEnC,mBAAmB;IACnB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAErC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,kCAAkC;QAClC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;YACxB,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CACzD,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,uBAAuB;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,6BAA6B;YAC7B,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC5B,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;YACtC,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,mBAAmB,KAAK,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC9E,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAChC,OAAO;gBACT,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,yCAAyC;gBACzC,IAAI,MAAM,EAAE,CAAC;oBACX,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;wBACrB,QAAQ,EAAE;4BACR,GAAG,KAAK,CAAC,QAAQ;4BACjB,MAAM,EAAE;gCACN,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM;gCACxB,YAAY,EAAE,MAAM;6BACrB;yBACF;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvB,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;gBACtB,MAAM,CAAC,OAAO,CAAC,oBAAoB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjD,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,2BAA2B,EAAE,CAAC;oBACjD,MAAM,CAAC,OAAO,CAAC,+BAA+B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4BAA4B,SAAS,IAAI,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,IAAI,GAAiB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YACrB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YACzB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK;YAC9B,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM;YAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM;SAC5B,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;IAC5G,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,2BAA2B;IAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,6BAA6B;IAC7B,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;IACtC,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,UAAU,GACd,OAAO,CAAC,MAAM,KAAK,UAAU;YAC3B,CAAC,CAAC,+CAA+C,OAAO,CAAC,IAAI,IAAI;YACjE,CAAC,CAAC,mBAAmB,OAAO,CAAC,IAAI,IAAI,CAAC;QAE1C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC;QACH,yCAAyC;QACzC,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE;gBACvB,QAAQ,EAAE;oBACR,GAAG,OAAO,CAAC,QAAQ;oBACnB,MAAM,EAAE;wBACN,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM;wBAC1B,YAAY,EAAE,MAAM;qBACrB;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxB,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,CAAC,OAAO,CAAC,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,2BAA2B,EAAE,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,sCAAsC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;KAChD,MAAM,CAAC,uBAAuB,EAAE,iCAAiC,CAAC;KAClE,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;KAC/C,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC;KAC5C,MAAM,CAAC,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../src/commands/ignore.ts"],"names":[],"mappings":"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"}
@@ -21,4 +21,15 @@ export { dnaCommand } from './dna/index.js';
21
21
  export { boundariesCommand } from './boundaries.js';
22
22
  export { callgraphCommand } from './callgraph.js';
23
23
  export { projectsCommand } from './projects.js';
24
+ export { skillsCommand } from './skills.js';
25
+ export { migrateStorageCommand } from './migrate-storage.js';
26
+ export { wrappersCommand } from './wrappers.js';
27
+ export { createTestTopologyCommand } from './test-topology.js';
28
+ export { createCouplingCommand } from './coupling.js';
29
+ export { createErrorHandlingCommand } from './error-handling.js';
30
+ export { createDecisionsCommand } from './decisions.js';
31
+ export { createConstraintsCommand } from './constraints.js';
32
+ export { createSimulateCommand } from './simulate.js';
33
+ export { createWpfCommand } from './wpf.js';
34
+ export { createGoCommand } from './go.js';
24
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
@@ -21,4 +21,19 @@ export { dnaCommand } from './dna/index.js';
21
21
  export { boundariesCommand } from './boundaries.js';
22
22
  export { callgraphCommand } from './callgraph.js';
23
23
  export { projectsCommand } from './projects.js';
24
+ export { skillsCommand } from './skills.js';
25
+ export { migrateStorageCommand } from './migrate-storage.js';
26
+ export { wrappersCommand } from './wrappers.js';
27
+ // Analysis commands (L5-L7 layers)
28
+ export { createTestTopologyCommand } from './test-topology.js';
29
+ export { createCouplingCommand } from './coupling.js';
30
+ export { createErrorHandlingCommand } from './error-handling.js';
31
+ export { createDecisionsCommand } from './decisions.js';
32
+ export { createConstraintsCommand } from './constraints.js';
33
+ // Speculative Execution Engine
34
+ export { createSimulateCommand } from './simulate.js';
35
+ // WPF Framework Support
36
+ export { createWpfCommand } from './wpf.js';
37
+ // Go Language Support
38
+ export { createGoCommand } from './go.js';
24
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,mCAAmC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,+BAA+B;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,wBAAwB;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,sBAAsB;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Migrate Storage Command - drift migrate-storage
3
+ *
4
+ * Migrates pattern storage from legacy status-based format to unified
5
+ * category-based format (Phase 3 of Pattern System Consolidation).
6
+ *
7
+ * Legacy format:
8
+ * .drift/patterns/
9
+ * ├── discovered/
10
+ * │ ├── api.json
11
+ * │ └── security.json
12
+ * ├── approved/
13
+ * └── ignored/
14
+ *
15
+ * Unified format:
16
+ * .drift/patterns/
17
+ * ├── api.json # Contains all statuses
18
+ * ├── security.json
19
+ * └── ...
20
+ */
21
+ import { Command } from 'commander';
22
+ export declare const migrateStorageCommand: Command;
23
+ //# sourceMappingURL=migrate-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-storage.d.ts","sourceRoot":"","sources":["../../src/commands/migrate-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgXpC,eAAO,MAAM,qBAAqB,SAMV,CAAC"}
@@ -0,0 +1,337 @@
1
+ /**
2
+ * Migrate Storage Command - drift migrate-storage
3
+ *
4
+ * Migrates pattern storage from legacy status-based format to unified
5
+ * category-based format (Phase 3 of Pattern System Consolidation).
6
+ *
7
+ * Legacy format:
8
+ * .drift/patterns/
9
+ * ├── discovered/
10
+ * │ ├── api.json
11
+ * │ └── security.json
12
+ * ├── approved/
13
+ * └── ignored/
14
+ *
15
+ * Unified format:
16
+ * .drift/patterns/
17
+ * ├── api.json # Contains all statuses
18
+ * ├── security.json
19
+ * └── ...
20
+ */
21
+ import { Command } from 'commander';
22
+ import chalk from 'chalk';
23
+ import * as fs from 'fs';
24
+ import * as path from 'path';
25
+ import { createSpinner, status } from '../ui/spinner.js';
26
+ import { confirmPrompt } from '../ui/prompts.js';
27
+ import { UnifiedFilePatternRepository } from 'driftdetect-core';
28
+ // ============================================================================
29
+ // Helpers
30
+ // ============================================================================
31
+ function hasLegacyFormat(rootDir) {
32
+ const patternsDir = path.join(rootDir, '.drift', 'patterns');
33
+ const legacyDirs = ['discovered', 'approved', 'ignored'];
34
+ for (const dir of legacyDirs) {
35
+ const statusDir = path.join(patternsDir, dir);
36
+ if (fs.existsSync(statusDir) && fs.statSync(statusDir).isDirectory()) {
37
+ return true;
38
+ }
39
+ }
40
+ return false;
41
+ }
42
+ function hasUnifiedFormat(rootDir) {
43
+ const patternsDir = path.join(rootDir, '.drift', 'patterns');
44
+ const categories = ['api', 'auth', 'security', 'errors', 'logging', 'data-access', 'config', 'testing', 'performance', 'components', 'styling', 'structural', 'types', 'accessibility', 'documentation'];
45
+ for (const category of categories) {
46
+ const filePath = path.join(patternsDir, `${category}.json`);
47
+ if (fs.existsSync(filePath)) {
48
+ try {
49
+ const content = fs.readFileSync(filePath, 'utf-8');
50
+ const data = JSON.parse(content);
51
+ if (data.version?.startsWith('2.')) {
52
+ return true;
53
+ }
54
+ }
55
+ catch {
56
+ // Not valid unified format
57
+ }
58
+ }
59
+ }
60
+ return false;
61
+ }
62
+ async function createBackup(rootDir) {
63
+ const patternsDir = path.join(rootDir, '.drift', 'patterns');
64
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
65
+ const backupDir = path.join(rootDir, '.drift', 'backups', `patterns-${timestamp}`);
66
+ fs.mkdirSync(backupDir, { recursive: true });
67
+ // Copy entire patterns directory
68
+ copyDirSync(patternsDir, backupDir);
69
+ return backupDir;
70
+ }
71
+ function copyDirSync(src, dest) {
72
+ if (!fs.existsSync(src))
73
+ return;
74
+ fs.mkdirSync(dest, { recursive: true });
75
+ const entries = fs.readdirSync(src, { withFileTypes: true });
76
+ for (const entry of entries) {
77
+ const srcPath = path.join(src, entry.name);
78
+ const destPath = path.join(dest, entry.name);
79
+ if (entry.isDirectory()) {
80
+ copyDirSync(srcPath, destPath);
81
+ }
82
+ else {
83
+ fs.copyFileSync(srcPath, destPath);
84
+ }
85
+ }
86
+ }
87
+ async function migrateAction(options) {
88
+ const rootDir = process.cwd();
89
+ console.log();
90
+ console.log(chalk.bold('🔄 Pattern Storage Migration'));
91
+ console.log();
92
+ // Check if drift is initialized
93
+ if (!fs.existsSync(path.join(rootDir, '.drift'))) {
94
+ status.error('Drift is not initialized in this directory.');
95
+ console.log(chalk.gray('Run `drift init` first.'));
96
+ process.exit(1);
97
+ }
98
+ // Check current format
99
+ const hasLegacy = hasLegacyFormat(rootDir);
100
+ const hasUnified = hasUnifiedFormat(rootDir);
101
+ if (!hasLegacy && !hasUnified) {
102
+ status.info('No patterns found. Nothing to migrate.');
103
+ return;
104
+ }
105
+ if (hasUnified && !hasLegacy) {
106
+ status.success('Already using unified format. No migration needed.');
107
+ return;
108
+ }
109
+ if (hasUnified && hasLegacy) {
110
+ console.log(chalk.yellow('⚠️ Both legacy and unified formats detected.'));
111
+ console.log(chalk.gray('This may indicate a partial migration.'));
112
+ console.log();
113
+ if (!options.force) {
114
+ const proceed = await confirmPrompt('Continue with migration? (will merge patterns)', false);
115
+ if (!proceed) {
116
+ status.info('Migration cancelled.');
117
+ return;
118
+ }
119
+ }
120
+ }
121
+ // Dry run mode
122
+ if (options.dryRun) {
123
+ console.log(chalk.cyan('🔍 Dry run mode - no changes will be made'));
124
+ console.log();
125
+ // Count patterns in legacy format
126
+ let totalPatterns = 0;
127
+ const categories = new Set();
128
+ for (const statusDir of ['discovered', 'approved', 'ignored']) {
129
+ const dir = path.join(rootDir, '.drift', 'patterns', statusDir);
130
+ if (!fs.existsSync(dir))
131
+ continue;
132
+ const files = fs.readdirSync(dir).filter(f => f.endsWith('.json'));
133
+ for (const file of files) {
134
+ try {
135
+ const content = fs.readFileSync(path.join(dir, file), 'utf-8');
136
+ const data = JSON.parse(content);
137
+ totalPatterns += data.patterns?.length || 0;
138
+ categories.add(file.replace('.json', ''));
139
+ }
140
+ catch {
141
+ // Skip invalid files
142
+ }
143
+ }
144
+ }
145
+ console.log(` Patterns to migrate: ${chalk.cyan(totalPatterns)}`);
146
+ console.log(` Categories: ${chalk.cyan(Array.from(categories).join(', '))}`);
147
+ console.log();
148
+ console.log(chalk.gray('Run without --dry-run to perform migration.'));
149
+ return;
150
+ }
151
+ // Create backup if requested
152
+ let backupPath;
153
+ if (options.backup !== false) {
154
+ const backupSpinner = createSpinner('Creating backup...');
155
+ backupSpinner.start();
156
+ try {
157
+ backupPath = await createBackup(rootDir);
158
+ backupSpinner.succeed(`Backup created: ${chalk.gray(path.relative(rootDir, backupPath))}`);
159
+ }
160
+ catch (error) {
161
+ backupSpinner.fail('Failed to create backup');
162
+ console.error(chalk.red(error.message));
163
+ if (!options.force) {
164
+ status.error('Migration aborted. Use --force to skip backup.');
165
+ process.exit(1);
166
+ }
167
+ }
168
+ }
169
+ // Perform migration
170
+ const migrateSpinner = createSpinner('Migrating patterns...');
171
+ migrateSpinner.start();
172
+ try {
173
+ const repository = new UnifiedFilePatternRepository({
174
+ rootDir,
175
+ autoSave: false,
176
+ autoMigrate: true,
177
+ keepLegacyFiles: options.keepLegacy ?? false,
178
+ });
179
+ await repository.initialize();
180
+ await repository.saveAll();
181
+ const stats = await repository.getStorageStats();
182
+ await repository.close();
183
+ migrateSpinner.succeed(`Migrated ${chalk.cyan(stats.totalPatterns)} patterns`);
184
+ // Show summary
185
+ console.log();
186
+ console.log(chalk.bold('📊 Migration Summary'));
187
+ console.log();
188
+ console.log(` Total patterns: ${chalk.cyan(stats.totalPatterns)}`);
189
+ console.log(` Categories: ${chalk.cyan(stats.fileCount)}`);
190
+ console.log();
191
+ console.log(' By status:');
192
+ console.log(` Discovered: ${chalk.yellow(stats.byStatus.discovered)}`);
193
+ console.log(` Approved: ${chalk.green(stats.byStatus.approved)}`);
194
+ console.log(` Ignored: ${chalk.gray(stats.byStatus.ignored)}`);
195
+ if (backupPath) {
196
+ console.log();
197
+ console.log(chalk.gray(`Backup saved to: ${path.relative(rootDir, backupPath)}`));
198
+ }
199
+ if (!options.keepLegacy) {
200
+ console.log();
201
+ console.log(chalk.green('✓ Legacy format directories removed.'));
202
+ }
203
+ else {
204
+ console.log();
205
+ console.log(chalk.yellow('⚠️ Legacy format directories preserved (--keep-legacy).'));
206
+ console.log(chalk.gray(' You can manually remove them after verifying the migration.'));
207
+ }
208
+ }
209
+ catch (error) {
210
+ migrateSpinner.fail('Migration failed');
211
+ console.error(chalk.red(error.message));
212
+ if (backupPath) {
213
+ console.log();
214
+ console.log(chalk.yellow(`Restore from backup: ${path.relative(rootDir, backupPath)}`));
215
+ }
216
+ process.exit(1);
217
+ }
218
+ console.log();
219
+ status.success('Migration complete!');
220
+ console.log();
221
+ }
222
+ // ============================================================================
223
+ // Rollback Action
224
+ // ============================================================================
225
+ async function rollbackAction() {
226
+ const rootDir = process.cwd();
227
+ console.log();
228
+ console.log(chalk.bold('⏪ Rollback Pattern Storage'));
229
+ console.log();
230
+ // Find backups
231
+ const backupsDir = path.join(rootDir, '.drift', 'backups');
232
+ if (!fs.existsSync(backupsDir)) {
233
+ status.error('No backups found.');
234
+ return;
235
+ }
236
+ const backups = fs.readdirSync(backupsDir)
237
+ .filter(d => d.startsWith('patterns-'))
238
+ .sort()
239
+ .reverse();
240
+ if (backups.length === 0) {
241
+ status.error('No pattern backups found.');
242
+ return;
243
+ }
244
+ console.log('Available backups:');
245
+ for (const backup of backups.slice(0, 5)) {
246
+ console.log(` ${chalk.cyan(backup)}`);
247
+ }
248
+ if (backups.length > 5) {
249
+ console.log(chalk.gray(` ... and ${backups.length - 5} more`));
250
+ }
251
+ console.log();
252
+ const latestBackup = backups[0];
253
+ if (!latestBackup) {
254
+ status.error('No pattern backups found.');
255
+ return;
256
+ }
257
+ const confirmed = await confirmPrompt(`Restore from ${latestBackup}?`, false);
258
+ if (!confirmed) {
259
+ status.info('Rollback cancelled.');
260
+ return;
261
+ }
262
+ const rollbackSpinner = createSpinner('Rolling back...');
263
+ rollbackSpinner.start();
264
+ try {
265
+ const patternsDir = path.join(rootDir, '.drift', 'patterns');
266
+ const backupPath = path.join(backupsDir, latestBackup);
267
+ // Remove current patterns
268
+ if (fs.existsSync(patternsDir)) {
269
+ fs.rmSync(patternsDir, { recursive: true });
270
+ }
271
+ // Restore from backup
272
+ copyDirSync(backupPath, patternsDir);
273
+ rollbackSpinner.succeed('Rollback complete');
274
+ console.log();
275
+ console.log(chalk.gray(`Restored from: ${latestBackup}`));
276
+ }
277
+ catch (error) {
278
+ rollbackSpinner.fail('Rollback failed');
279
+ console.error(chalk.red(error.message));
280
+ process.exit(1);
281
+ }
282
+ }
283
+ // ============================================================================
284
+ // Status Action
285
+ // ============================================================================
286
+ async function statusAction() {
287
+ const rootDir = process.cwd();
288
+ console.log();
289
+ console.log(chalk.bold('📦 Pattern Storage Status'));
290
+ console.log();
291
+ if (!fs.existsSync(path.join(rootDir, '.drift'))) {
292
+ status.error('Drift is not initialized in this directory.');
293
+ return;
294
+ }
295
+ const hasLegacy = hasLegacyFormat(rootDir);
296
+ const hasUnified = hasUnifiedFormat(rootDir);
297
+ if (!hasLegacy && !hasUnified) {
298
+ console.log(' Format: ' + chalk.gray('No patterns stored'));
299
+ return;
300
+ }
301
+ if (hasUnified && !hasLegacy) {
302
+ console.log(' Format: ' + chalk.green('Unified (v2.0)'));
303
+ console.log(' Status: ' + chalk.green('Up to date'));
304
+ }
305
+ else if (hasLegacy && !hasUnified) {
306
+ console.log(' Format: ' + chalk.yellow('Legacy (v1.0)'));
307
+ console.log(' Status: ' + chalk.yellow('Migration available'));
308
+ console.log();
309
+ console.log(chalk.gray(' Run `drift migrate-storage` to upgrade.'));
310
+ }
311
+ else {
312
+ console.log(' Format: ' + chalk.red('Mixed (legacy + unified)'));
313
+ console.log(' Status: ' + chalk.red('Needs cleanup'));
314
+ console.log();
315
+ console.log(chalk.gray(' Run `drift migrate-storage --force` to complete migration.'));
316
+ }
317
+ console.log();
318
+ }
319
+ // ============================================================================
320
+ // Command Registration
321
+ // ============================================================================
322
+ export const migrateStorageCommand = new Command('migrate-storage')
323
+ .description('Migrate pattern storage to unified format')
324
+ .option('-f, --force', 'Force migration without confirmation')
325
+ .option('--no-backup', 'Skip creating backup')
326
+ .option('--keep-legacy', 'Keep legacy format files after migration')
327
+ .option('--dry-run', 'Show what would be migrated without making changes')
328
+ .action(migrateAction);
329
+ migrateStorageCommand
330
+ .command('rollback')
331
+ .description('Rollback to previous pattern storage backup')
332
+ .action(rollbackAction);
333
+ migrateStorageCommand
334
+ .command('status')
335
+ .description('Show current storage format status')
336
+ .action(statusAction);
337
+ //# sourceMappingURL=migrate-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-storage.js","sourceRoot":"","sources":["../../src/commands/migrate-storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Report Command - drift report
3
+ *
4
+ * Generate reports in various formats.
5
+ *
6
+ * MIGRATION: Now uses IPatternService for pattern operations.
7
+ *
8
+ * @requirements 29.7
9
+ */
10
+ import { Command } from 'commander';
11
+ export interface ReportOptions {
12
+ /** Output format */
13
+ format?: 'text' | 'json' | 'github' | 'gitlab';
14
+ /** Output file path */
15
+ output?: string;
16
+ /** Include only specific categories */
17
+ categories?: string[];
18
+ /** Enable verbose output */
19
+ verbose?: boolean;
20
+ }
21
+ export declare const reportCommand: Command;
22
+ //# sourceMappingURL=report.d.ts.map