specweave 0.34.6 → 0.34.9

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 (130) hide show
  1. package/dist/plugins/specweave-ado/lib/ado-profile-resolver.d.ts +1 -4
  2. package/dist/plugins/specweave-ado/lib/ado-profile-resolver.d.ts.map +1 -1
  3. package/dist/plugins/specweave-ado/lib/ado-profile-resolver.js +3 -6
  4. package/dist/plugins/specweave-ado/lib/ado-profile-resolver.js.map +1 -1
  5. package/dist/plugins/specweave-github/lib/github-feature-sync-cli.js +3 -3
  6. package/dist/plugins/specweave-github/lib/github-feature-sync-cli.js.map +1 -1
  7. package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js +3 -3
  8. package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js.map +1 -1
  9. package/dist/plugins/specweave-github/lib/github-spec-sync.js +1 -1
  10. package/dist/plugins/specweave-github/lib/github-spec-sync.js.map +1 -1
  11. package/dist/src/cli/commands/import-docs.d.ts +3 -0
  12. package/dist/src/cli/commands/import-docs.d.ts.map +1 -1
  13. package/dist/src/cli/commands/import-docs.js +110 -91
  14. package/dist/src/cli/commands/import-docs.js.map +1 -1
  15. package/dist/src/cli/commands/init.js +5 -5
  16. package/dist/src/cli/commands/init.js.map +1 -1
  17. package/dist/src/cli/commands/sync-spec-commits.js +1 -1
  18. package/dist/src/cli/commands/sync-spec-commits.js.map +1 -1
  19. package/dist/src/cli/commands/sync-spec-content.js +1 -1
  20. package/dist/src/cli/commands/sync-spec-content.js.map +1 -1
  21. package/dist/src/cli/helpers/github/increment-profile-selector.js +1 -1
  22. package/dist/src/cli/helpers/github/increment-profile-selector.js.map +1 -1
  23. package/dist/src/cli/helpers/github/profile-manager.d.ts +5 -5
  24. package/dist/src/cli/helpers/github/profile-manager.d.ts.map +1 -1
  25. package/dist/src/cli/helpers/github/profile-manager.js +24 -24
  26. package/dist/src/cli/helpers/github/profile-manager.js.map +1 -1
  27. package/dist/src/cli/helpers/init/config-detection.js +1 -1
  28. package/dist/src/cli/helpers/init/config-detection.js.map +1 -1
  29. package/dist/src/cli/helpers/init/sync-profile-helpers.d.ts.map +1 -1
  30. package/dist/src/cli/helpers/init/sync-profile-helpers.js +2 -4
  31. package/dist/src/cli/helpers/init/sync-profile-helpers.js.map +1 -1
  32. package/dist/src/cli/helpers/issue-tracker/ado-area-selection.d.ts +1 -4
  33. package/dist/src/cli/helpers/issue-tracker/ado-area-selection.d.ts.map +1 -1
  34. package/dist/src/cli/helpers/issue-tracker/ado-area-selection.js +0 -32
  35. package/dist/src/cli/helpers/issue-tracker/ado-area-selection.js.map +1 -1
  36. package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +1 -1
  37. package/dist/src/cli/helpers/issue-tracker/ado.js +3 -13
  38. package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -1
  39. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  40. package/dist/src/cli/helpers/issue-tracker/index.js +0 -1
  41. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  42. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.d.ts.map +1 -1
  43. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js +0 -7
  44. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js.map +1 -1
  45. package/dist/src/cli/helpers/issue-tracker/types.d.ts +1 -5
  46. package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +1 -1
  47. package/dist/src/cli/helpers/issue-tracker/types.js.map +1 -1
  48. package/dist/src/cli/workers/import-worker.js +5 -111
  49. package/dist/src/cli/workers/import-worker.js.map +1 -1
  50. package/dist/src/core/config/types.d.ts +0 -5
  51. package/dist/src/core/config/types.d.ts.map +1 -1
  52. package/dist/src/core/config/types.js.map +1 -1
  53. package/dist/src/core/credentials/credentials-manager.d.ts +2 -4
  54. package/dist/src/core/credentials/credentials-manager.d.ts.map +1 -1
  55. package/dist/src/core/credentials/credentials-manager.js +10 -24
  56. package/dist/src/core/credentials/credentials-manager.js.map +1 -1
  57. package/dist/src/core/increment/increment-archiver.d.ts.map +1 -1
  58. package/dist/src/core/increment/increment-archiver.js +0 -6
  59. package/dist/src/core/increment/increment-archiver.js.map +1 -1
  60. package/dist/src/core/increment/increment-utils.d.ts +0 -4
  61. package/dist/src/core/increment/increment-utils.d.ts.map +1 -1
  62. package/dist/src/core/increment/increment-utils.js +0 -6
  63. package/dist/src/core/increment/increment-utils.js.map +1 -1
  64. package/dist/src/core/living-docs/cross-project-sync.d.ts +0 -13
  65. package/dist/src/core/living-docs/cross-project-sync.d.ts.map +1 -1
  66. package/dist/src/core/living-docs/cross-project-sync.js +0 -25
  67. package/dist/src/core/living-docs/cross-project-sync.js.map +1 -1
  68. package/dist/src/core/living-docs/living-docs-sync.js +1 -1
  69. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  70. package/dist/src/core/project/project-manager.d.ts +0 -20
  71. package/dist/src/core/project/project-manager.d.ts.map +1 -1
  72. package/dist/src/core/project/project-manager.js +0 -49
  73. package/dist/src/core/project/project-manager.js.map +1 -1
  74. package/dist/src/core/repo-structure/prompt-consolidator.d.ts +0 -8
  75. package/dist/src/core/repo-structure/prompt-consolidator.d.ts.map +1 -1
  76. package/dist/src/core/repo-structure/prompt-consolidator.js +0 -28
  77. package/dist/src/core/repo-structure/prompt-consolidator.js.map +1 -1
  78. package/dist/src/core/sync/profile-manager.d.ts +5 -5
  79. package/dist/src/core/sync/profile-manager.d.ts.map +1 -1
  80. package/dist/src/core/sync/profile-manager.js +17 -17
  81. package/dist/src/core/sync/profile-manager.js.map +1 -1
  82. package/dist/src/core/types/sync-profile.d.ts +3 -20
  83. package/dist/src/core/types/sync-profile.d.ts.map +1 -1
  84. package/dist/src/core/types/sync-profile.js +4 -10
  85. package/dist/src/core/types/sync-profile.js.map +1 -1
  86. package/dist/src/integrations/ado/ado-client-factory.d.ts +2 -2
  87. package/dist/src/integrations/ado/ado-client-factory.js +2 -2
  88. package/dist/src/utils/project-detection.d.ts +16 -16
  89. package/dist/src/utils/project-detection.d.ts.map +1 -1
  90. package/dist/src/utils/project-detection.js +39 -39
  91. package/dist/src/utils/project-detection.js.map +1 -1
  92. package/dist/src/utils/validators/ado-validator.d.ts +0 -5
  93. package/dist/src/utils/validators/ado-validator.d.ts.map +1 -1
  94. package/dist/src/utils/validators/ado-validator.js +0 -23
  95. package/dist/src/utils/validators/ado-validator.js.map +1 -1
  96. package/package.json +1 -1
  97. package/plugins/specweave/hooks/lib/sync-spec-content.sh +8 -8
  98. package/plugins/specweave/hooks/post-increment-planning.sh +3 -3
  99. package/plugins/specweave-ado/lib/ado-profile-resolver.js +2 -3
  100. package/plugins/specweave-ado/lib/ado-profile-resolver.ts +3 -9
  101. package/plugins/specweave-github/lib/github-feature-sync-cli.js +2 -2
  102. package/plugins/specweave-github/lib/github-feature-sync-cli.ts +3 -3
  103. package/plugins/specweave-github/lib/github-increment-sync-cli.js +2 -2
  104. package/plugins/specweave-github/lib/github-increment-sync-cli.ts +3 -3
  105. package/plugins/specweave-github/lib/github-spec-sync.js +1 -1
  106. package/plugins/specweave-github/lib/github-spec-sync.ts +1 -1
  107. package/plugins/specweave-jira/lib/jira-profile-resolver.js +2 -3
  108. package/plugins/specweave-jira/lib/jira-profile-resolver.ts +3 -9
  109. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts +0 -45
  110. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts.map +0 -1
  111. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js +0 -247
  112. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js.map +0 -1
  113. package/dist/src/core/brownfield/analyzer.d.ts +0 -86
  114. package/dist/src/core/brownfield/analyzer.d.ts.map +0 -1
  115. package/dist/src/core/brownfield/analyzer.js +0 -365
  116. package/dist/src/core/brownfield/analyzer.js.map +0 -1
  117. package/dist/src/core/brownfield/importer.d.ts +0 -76
  118. package/dist/src/core/brownfield/importer.d.ts.map +0 -1
  119. package/dist/src/core/brownfield/importer.js +0 -287
  120. package/dist/src/core/brownfield/importer.js.map +0 -1
  121. package/dist/src/utils/env-multi-project-parser.d.ts +0 -237
  122. package/dist/src/utils/env-multi-project-parser.d.ts.map +0 -1
  123. package/dist/src/utils/env-multi-project-parser.js +0 -426
  124. package/dist/src/utils/env-multi-project-parser.js.map +0 -1
  125. package/plugins/specweave-github/lib/github-sync-bidirectional.d.js +0 -0
  126. package/plugins/specweave-github/lib/github-sync-bidirectional.d.ts +0 -36
  127. package/plugins/specweave-github/lib/github-sync-bidirectional.d.ts.map +0 -1
  128. package/plugins/specweave-github/lib/github-sync-bidirectional.js +0 -206
  129. package/plugins/specweave-github/lib/github-sync-bidirectional.js.map +0 -1
  130. package/plugins/specweave-github/lib/github-sync-bidirectional.ts +0 -362
@@ -1,365 +0,0 @@
1
- /**
2
- * Brownfield Analyzer - File Classification
3
- *
4
- * Analyzes markdown files from external sources (Notion, Confluence, Wiki)
5
- * and classifies them as specs, modules, team docs, or legacy
6
- */
7
- import path from 'path';
8
- import * as fs from '../../utils/fs-native.js';
9
- import matter from 'gray-matter';
10
- export class BrownfieldAnalyzer {
11
- constructor() {
12
- this.SPEC_KEYWORDS = [
13
- // User story keywords
14
- 'user story', 'user stories', 'acceptance criteria', 'acceptance criterion',
15
- 'feature', 'feature spec', 'requirement', 'requirements', 'functional requirement',
16
- // Spec patterns
17
- 'spec', 'specification', 'us-', 'ac-', 'given when then',
18
- 'as a', 'i want', 'so that',
19
- // Planning keywords
20
- 'epic', 'milestone', 'product requirement', 'prd', 'problem statement',
21
- 'success criteria', 'test plan'
22
- ];
23
- this.MODULE_KEYWORDS = [
24
- // Component/module keywords
25
- 'module', 'component', 'service', 'domain', 'package', 'library',
26
- // Architecture keywords
27
- 'architecture', 'design', 'api', 'interface', 'class', 'function',
28
- 'endpoint', 'controller', 'model', 'repository', 'schema',
29
- // Integration keywords
30
- 'integration', 'integration point', 'dependency', 'data flow',
31
- 'authentication', 'authorization', 'security', 'performance',
32
- // Technical docs
33
- 'technical design', 'implementation', 'code structure'
34
- ];
35
- this.TEAM_KEYWORDS = [
36
- // Onboarding
37
- 'onboarding', 'getting started', 'setup', 'installation', 'environment setup',
38
- // Conventions
39
- 'convention', 'conventions', 'coding standard', 'style guide', 'best practice',
40
- 'naming convention', 'code pattern', 'design pattern',
41
- // Workflows
42
- 'workflow', 'process', 'procedure', 'guideline', 'policy',
43
- 'pr process', 'pull request', 'code review', 'deployment', 'release',
44
- 'git workflow', 'branching strategy', 'testing approach',
45
- // Team info
46
- 'team', 'contact', 'on-call', 'escalation', 'responsibility',
47
- 'incident response', 'runbook'
48
- ];
49
- }
50
- /**
51
- * Analyze markdown files in source directory
52
- *
53
- * @param sourcePath - Path to source directory
54
- * @returns BrownfieldAnalysisResult
55
- */
56
- async analyze(sourcePath) {
57
- console.log(`📊 Analyzing files in: ${sourcePath}\n`);
58
- const markdownFiles = await this.findMarkdownFiles(sourcePath);
59
- if (markdownFiles.length === 0) {
60
- console.log('⚠️ No markdown files found');
61
- return {
62
- totalFiles: 0,
63
- specs: [],
64
- modules: [],
65
- team: [],
66
- legacy: [],
67
- statistics: {
68
- specsConfidence: 0,
69
- modulesConfidence: 0,
70
- teamConfidence: 0
71
- }
72
- };
73
- }
74
- console.log(`📄 Found ${markdownFiles.length} markdown file(s)\n`);
75
- const classifications = await Promise.all(markdownFiles.map(file => this.classifyFile(file, sourcePath)));
76
- // Group by type
77
- const specs = classifications.filter(c => c.type === 'spec');
78
- const modules = classifications.filter(c => c.type === 'module');
79
- const team = classifications.filter(c => c.type === 'team');
80
- const legacy = classifications.filter(c => c.type === 'legacy');
81
- // Calculate average confidences
82
- const avgConfidence = (items) => {
83
- if (items.length === 0)
84
- return 0;
85
- return items.reduce((sum, item) => sum + item.confidence, 0) / items.length;
86
- };
87
- return {
88
- totalFiles: markdownFiles.length,
89
- specs,
90
- modules,
91
- team,
92
- legacy,
93
- statistics: {
94
- specsConfidence: avgConfidence(specs),
95
- modulesConfidence: avgConfidence(modules),
96
- teamConfidence: avgConfidence(team)
97
- }
98
- };
99
- }
100
- /**
101
- * Classify single file based on content
102
- *
103
- * @param filePath - Full path to file
104
- * @param basePath - Base path for relative path calculation
105
- * @returns FileClassification
106
- */
107
- async classifyFile(filePath, basePath) {
108
- const content = await fs.readFile(filePath, 'utf-8');
109
- // Parse frontmatter if present
110
- const { data: frontmatter, content: markdownContent } = matter(content);
111
- // Combine for analysis
112
- const textToAnalyze = `${JSON.stringify(frontmatter)} ${markdownContent}`.toLowerCase();
113
- // Score each type
114
- const specScore = this.scoreKeywords(textToAnalyze, this.SPEC_KEYWORDS);
115
- const moduleScore = this.scoreKeywords(textToAnalyze, this.MODULE_KEYWORDS);
116
- const teamScore = this.scoreKeywords(textToAnalyze, this.TEAM_KEYWORDS);
117
- // Determine type (highest score wins, with minimum threshold)
118
- let type;
119
- let confidence;
120
- let keywords;
121
- let reasons;
122
- const CONFIDENCE_THRESHOLD = 0.3;
123
- if (specScore > moduleScore && specScore > teamScore && specScore > CONFIDENCE_THRESHOLD) {
124
- type = 'spec';
125
- confidence = specScore;
126
- keywords = this.findMatchingKeywords(textToAnalyze, this.SPEC_KEYWORDS);
127
- reasons = this.generateReasons(keywords, 'spec');
128
- }
129
- else if (moduleScore > teamScore && moduleScore > CONFIDENCE_THRESHOLD) {
130
- type = 'module';
131
- confidence = moduleScore;
132
- keywords = this.findMatchingKeywords(textToAnalyze, this.MODULE_KEYWORDS);
133
- reasons = this.generateReasons(keywords, 'module');
134
- }
135
- else if (teamScore > CONFIDENCE_THRESHOLD) {
136
- type = 'team';
137
- confidence = teamScore;
138
- keywords = this.findMatchingKeywords(textToAnalyze, this.TEAM_KEYWORDS);
139
- reasons = this.generateReasons(keywords, 'team');
140
- }
141
- else {
142
- type = 'legacy';
143
- confidence = 0;
144
- keywords = [];
145
- reasons = ['No strong match for spec, module, or team keywords'];
146
- }
147
- const relativePath = path.relative(basePath, filePath);
148
- return {
149
- path: filePath,
150
- relativePath,
151
- type,
152
- confidence,
153
- keywords,
154
- reasons
155
- };
156
- }
157
- /**
158
- * Score text based on keyword matches
159
- * Returns 0-1 confidence score
160
- *
161
- * @param text - Lowercase text to analyze
162
- * @param keywords - Keywords to match
163
- * @returns Confidence score (0-1)
164
- */
165
- scoreKeywords(text, keywords) {
166
- let matches = 0;
167
- let totalWeight = 0;
168
- keywords.forEach(keyword => {
169
- if (text.includes(keyword)) {
170
- matches++;
171
- // Weight longer keywords more heavily (more specific)
172
- const weight = keyword.split(' ').length;
173
- totalWeight += weight;
174
- }
175
- });
176
- if (matches === 0)
177
- return 0;
178
- // Normalize to 0-1
179
- // Base score: matches / total keywords (capped at 1.0)
180
- const baseScore = Math.min(matches / keywords.length, 1.0);
181
- // Weighted score: total weight / max possible weight
182
- const maxWeight = matches * 3; // Assume max 3-word keywords
183
- const weightedScore = Math.min(totalWeight / maxWeight, 1.0);
184
- // Combine base and weighted score (60% base, 40% weighted)
185
- return baseScore * 0.6 + weightedScore * 0.4;
186
- }
187
- /**
188
- * Find matching keywords in text
189
- *
190
- * @param text - Lowercase text to search
191
- * @param keywords - Keywords to find
192
- * @returns Matching keywords
193
- */
194
- findMatchingKeywords(text, keywords) {
195
- return keywords.filter(keyword => text.includes(keyword));
196
- }
197
- /**
198
- * Generate human-readable reasons for classification
199
- *
200
- * @param keywords - Matched keywords
201
- * @param type - Classification type
202
- * @returns Reasons
203
- */
204
- generateReasons(keywords, type) {
205
- const reasons = [];
206
- if (keywords.length === 0) {
207
- return [`No strong indicators found for ${type}`];
208
- }
209
- // Categorize keywords
210
- const keywordCategories = {
211
- spec: this.SPEC_KEYWORDS,
212
- module: this.MODULE_KEYWORDS,
213
- team: this.TEAM_KEYWORDS
214
- };
215
- const categoryKeywords = keywordCategories[type] || [];
216
- // Group matched keywords
217
- const matchedGroups = {};
218
- keywords.forEach(keyword => {
219
- // Determine group
220
- let group = 'Other';
221
- if (type === 'spec') {
222
- if (['user story', 'us-', 'as a', 'i want', 'so that'].some(k => keyword.includes(k))) {
223
- group = 'User Stories';
224
- }
225
- else if (['acceptance criteria', 'ac-', 'given when then'].some(k => keyword.includes(k))) {
226
- group = 'Acceptance Criteria';
227
- }
228
- else if (['feature', 'requirement', 'spec'].some(k => keyword.includes(k))) {
229
- group = 'Requirements';
230
- }
231
- }
232
- else if (type === 'module') {
233
- if (['module', 'component', 'service', 'domain'].some(k => keyword.includes(k))) {
234
- group = 'Components';
235
- }
236
- else if (['architecture', 'design', 'api', 'interface'].some(k => keyword.includes(k))) {
237
- group = 'Architecture';
238
- }
239
- else if (['integration', 'dependency', 'data flow'].some(k => keyword.includes(k))) {
240
- group = 'Integration';
241
- }
242
- }
243
- else if (type === 'team') {
244
- if (['onboarding', 'getting started', 'setup'].some(k => keyword.includes(k))) {
245
- group = 'Onboarding';
246
- }
247
- else if (['convention', 'style guide', 'best practice'].some(k => keyword.includes(k))) {
248
- group = 'Conventions';
249
- }
250
- else if (['workflow', 'process', 'pr process', 'deployment'].some(k => keyword.includes(k))) {
251
- group = 'Workflows';
252
- }
253
- }
254
- if (!matchedGroups[group]) {
255
- matchedGroups[group] = [];
256
- }
257
- matchedGroups[group].push(keyword);
258
- });
259
- // Generate reasons
260
- Object.keys(matchedGroups).forEach(group => {
261
- const count = matchedGroups[group].length;
262
- const examples = matchedGroups[group].slice(0, 3).join(', ');
263
- reasons.push(`${group}: Found ${count} indicator(s) (${examples})`);
264
- });
265
- return reasons;
266
- }
267
- /**
268
- * Find all markdown files recursively
269
- *
270
- * @param dirPath - Directory to search
271
- * @returns Array of file paths
272
- */
273
- async findMarkdownFiles(dirPath) {
274
- const files = [];
275
- async function walk(dir) {
276
- try {
277
- const entries = await fs.readdir(dir, { withFileTypes: true });
278
- for (const entry of entries) {
279
- const fullPath = path.join(dir, entry.name);
280
- // Skip hidden files and node_modules
281
- if (entry.name.startsWith('.') || entry.name === 'node_modules') {
282
- continue;
283
- }
284
- if (entry.isDirectory()) {
285
- await walk(fullPath);
286
- }
287
- else if (entry.isFile() && (entry.name.endsWith('.md') || entry.name.endsWith('.markdown'))) {
288
- files.push(fullPath);
289
- }
290
- }
291
- }
292
- catch (error) {
293
- console.warn(`Warning: Could not read directory ${dir}: ${error instanceof Error ? error.message : String(error)}`);
294
- }
295
- }
296
- await walk(dirPath);
297
- return files;
298
- }
299
- /**
300
- * Generate analysis summary report
301
- *
302
- * @param result - Analysis result
303
- * @returns Summary string
304
- */
305
- generateSummaryReport(result) {
306
- const { totalFiles, specs, modules, team, legacy, statistics } = result;
307
- let report = `# Brownfield Analysis Summary\n\n`;
308
- report += `**Total Files**: ${totalFiles}\n\n`;
309
- report += `## Classification Results\n\n`;
310
- report += `| Category | Count | Avg Confidence | Percentage |\n`;
311
- report += `|----------|-------|----------------|------------|\n`;
312
- report += `| Specs | ${specs.length} | ${(statistics.specsConfidence * 100).toFixed(1)}% | ${((specs.length / totalFiles) * 100).toFixed(1)}% |\n`;
313
- report += `| Modules | ${modules.length} | ${(statistics.modulesConfidence * 100).toFixed(1)}% | ${((modules.length / totalFiles) * 100).toFixed(1)}% |\n`;
314
- report += `| Team | ${team.length} | ${(statistics.teamConfidence * 100).toFixed(1)}% | ${((team.length / totalFiles) * 100).toFixed(1)}% |\n`;
315
- report += `| Legacy | ${legacy.length} | N/A | ${((legacy.length / totalFiles) * 100).toFixed(1)}% |\n\n`;
316
- if (specs.length > 0) {
317
- report += `## Specs (${specs.length} files)\n\n`;
318
- specs.slice(0, 10).forEach(file => {
319
- report += `- \`${file.relativePath}\` (${(file.confidence * 100).toFixed(0)}%)\n`;
320
- if (file.reasons.length > 0) {
321
- report += ` - ${file.reasons[0]}\n`;
322
- }
323
- });
324
- if (specs.length > 10) {
325
- report += `\n... and ${specs.length - 10} more\n`;
326
- }
327
- report += `\n`;
328
- }
329
- if (modules.length > 0) {
330
- report += `## Modules (${modules.length} files)\n\n`;
331
- modules.slice(0, 10).forEach(file => {
332
- report += `- \`${file.relativePath}\` (${(file.confidence * 100).toFixed(0)}%)\n`;
333
- if (file.reasons.length > 0) {
334
- report += ` - ${file.reasons[0]}\n`;
335
- }
336
- });
337
- if (modules.length > 10) {
338
- report += `\n... and ${modules.length - 10} more\n`;
339
- }
340
- report += `\n`;
341
- }
342
- if (team.length > 0) {
343
- report += `## Team Docs (${team.length} files)\n\n`;
344
- team.forEach(file => {
345
- report += `- \`${file.relativePath}\` (${(file.confidence * 100).toFixed(0)}%)\n`;
346
- if (file.reasons.length > 0) {
347
- report += ` - ${file.reasons[0]}\n`;
348
- }
349
- });
350
- report += `\n`;
351
- }
352
- if (legacy.length > 0) {
353
- report += `## Legacy (${legacy.length} files)\n\n`;
354
- report += `Files with no strong classification:\n\n`;
355
- legacy.slice(0, 10).forEach(file => {
356
- report += `- \`${file.relativePath}\`\n`;
357
- });
358
- if (legacy.length > 10) {
359
- report += `\n... and ${legacy.length - 10} more\n`;
360
- }
361
- }
362
- return report;
363
- }
364
- }
365
- //# sourceMappingURL=analyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../../../src/core/brownfield/analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,76 +0,0 @@
1
- /**
2
- * Brownfield Importer - Import External Documentation
3
- *
4
- * Imports brownfield documentation from Notion, Confluence, Wiki, etc.
5
- * Classifies files and copies to appropriate destinations
6
- */
7
- import { FileClassification } from './analyzer.js';
8
- export interface ImportOptions {
9
- sourcePath: string;
10
- project: string;
11
- source: 'notion' | 'confluence' | 'wiki' | 'custom';
12
- preserveStructure?: boolean;
13
- dryRun?: boolean;
14
- }
15
- export interface ImportReport {
16
- totalFiles: number;
17
- specsImported: number;
18
- modulesImported: number;
19
- teamImported: number;
20
- legacyImported: number;
21
- destination: string;
22
- timestamp: string;
23
- classifications: {
24
- specs: FileClassification[];
25
- modules: FileClassification[];
26
- team: FileClassification[];
27
- legacy: FileClassification[];
28
- };
29
- }
30
- export declare class BrownfieldImporter {
31
- private analyzer;
32
- private projectManager;
33
- private configManager;
34
- private projectRoot;
35
- constructor(projectRoot: string);
36
- /**
37
- * Import brownfield docs
38
- *
39
- * @param options - Import options
40
- * @returns ImportReport
41
- */
42
- import(options: ImportOptions): Promise<ImportReport>;
43
- /**
44
- * Import files to destination
45
- *
46
- * @param files - Files to import
47
- * @param destination - Destination directory
48
- * @param preserveStructure - Preserve original folder structure
49
- * @param basePath - Base path for relative path calculation
50
- */
51
- private importFiles;
52
- /**
53
- * Create migration report in legacy/ folder
54
- *
55
- * @param options - Import options
56
- * @param report - Import report
57
- * @param analysis - Analysis result
58
- */
59
- private createMigrationReport;
60
- /**
61
- * Update config with import history
62
- *
63
- * @param options - Import options
64
- * @param report - Import report
65
- */
66
- private updateConfig;
67
- /**
68
- * Preview import (dry run)
69
- *
70
- * @param options - Import options
71
- * @returns Analysis result as string
72
- */
73
- preview(options: ImportOptions): Promise<string>;
74
- private calculateAvgConfidence;
75
- }
76
- //# sourceMappingURL=importer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../../../src/core/brownfield/importer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAsB,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIvE,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;IACpD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE;QACf,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAC5B,OAAO,EAAE,kBAAkB,EAAE,CAAC;QAC9B,IAAI,EAAE,kBAAkB,EAAE,CAAC;QAC3B,MAAM,EAAE,kBAAkB,EAAE,CAAC;KAC9B,CAAC;CACH;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM;IAO/B;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAuG3D;;;;;;;OAOG;YACW,WAAW;IAoCzB;;;;;;OAMG;YACW,qBAAqB;IAgGnC;;;;;OAKG;YACW,YAAY;IAsB1B;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBtD,OAAO,CAAC,sBAAsB;CAI/B"}