specweave 0.26.14 → 0.28.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 (167) hide show
  1. package/CLAUDE.md +73 -1
  2. package/README.md +245 -446
  3. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts.map +1 -1
  4. package/dist/plugins/specweave-jira/lib/setup-wizard.js +57 -78
  5. package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +1 -1
  6. package/dist/src/cli/commands/import-docs.d.ts.map +1 -1
  7. package/dist/src/cli/commands/import-docs.js +23 -31
  8. package/dist/src/cli/commands/import-docs.js.map +1 -1
  9. package/dist/src/cli/commands/import-external.d.ts.map +1 -1
  10. package/dist/src/cli/commands/import-external.js +6 -10
  11. package/dist/src/cli/commands/import-external.js.map +1 -1
  12. package/dist/src/cli/commands/init-multiproject.d.ts.map +1 -1
  13. package/dist/src/cli/commands/init-multiproject.js +58 -73
  14. package/dist/src/cli/commands/init-multiproject.js.map +1 -1
  15. package/dist/src/cli/commands/init.d.ts +17 -11
  16. package/dist/src/cli/commands/init.d.ts.map +1 -1
  17. package/dist/src/cli/commands/init.js +221 -1874
  18. package/dist/src/cli/commands/init.js.map +1 -1
  19. package/dist/src/cli/commands/install.d.ts.map +1 -1
  20. package/dist/src/cli/commands/install.js +14 -22
  21. package/dist/src/cli/commands/install.js.map +1 -1
  22. package/dist/src/cli/commands/migrate-config.d.ts.map +1 -1
  23. package/dist/src/cli/commands/migrate-config.js +6 -10
  24. package/dist/src/cli/commands/migrate-config.js.map +1 -1
  25. package/dist/src/cli/commands/switch-project.d.ts.map +1 -1
  26. package/dist/src/cli/commands/switch-project.js.map +1 -1
  27. package/dist/src/cli/helpers/ado-area-path-mapper.d.ts.map +1 -1
  28. package/dist/src/cli/helpers/ado-area-path-mapper.js +36 -49
  29. package/dist/src/cli/helpers/ado-area-path-mapper.js.map +1 -1
  30. package/dist/src/cli/helpers/github/increment-profile-selector.d.ts.map +1 -1
  31. package/dist/src/cli/helpers/github/increment-profile-selector.js.map +1 -1
  32. package/dist/src/cli/helpers/github/profile-manager.d.ts.map +1 -1
  33. package/dist/src/cli/helpers/github/profile-manager.js +8 -11
  34. package/dist/src/cli/helpers/github/profile-manager.js.map +1 -1
  35. package/dist/src/cli/helpers/github-repo-selector.d.ts.map +1 -1
  36. package/dist/src/cli/helpers/github-repo-selector.js +26 -50
  37. package/dist/src/cli/helpers/github-repo-selector.js.map +1 -1
  38. package/dist/src/cli/helpers/import-strategy-prompter.d.ts.map +1 -1
  39. package/dist/src/cli/helpers/import-strategy-prompter.js +39 -52
  40. package/dist/src/cli/helpers/import-strategy-prompter.js.map +1 -1
  41. package/dist/src/cli/helpers/init/config-detection.d.ts +40 -0
  42. package/dist/src/cli/helpers/init/config-detection.d.ts.map +1 -0
  43. package/dist/src/cli/helpers/init/config-detection.js +125 -0
  44. package/dist/src/cli/helpers/init/config-detection.js.map +1 -0
  45. package/dist/src/cli/helpers/init/directory-structure.d.ts +26 -0
  46. package/dist/src/cli/helpers/init/directory-structure.d.ts.map +1 -0
  47. package/dist/src/cli/helpers/init/directory-structure.js +190 -0
  48. package/dist/src/cli/helpers/init/directory-structure.js.map +1 -0
  49. package/dist/src/cli/helpers/init/external-import.d.ts +15 -0
  50. package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -0
  51. package/dist/src/cli/helpers/init/external-import.js +251 -0
  52. package/dist/src/cli/helpers/init/external-import.js.map +1 -0
  53. package/dist/src/cli/helpers/init/index.d.ts +15 -0
  54. package/dist/src/cli/helpers/init/index.d.ts.map +1 -0
  55. package/dist/src/cli/helpers/init/index.js +26 -0
  56. package/dist/src/cli/helpers/init/index.js.map +1 -0
  57. package/dist/src/cli/helpers/init/next-steps.d.ts +15 -0
  58. package/dist/src/cli/helpers/init/next-steps.d.ts.map +1 -0
  59. package/dist/src/cli/helpers/init/next-steps.js +72 -0
  60. package/dist/src/cli/helpers/init/next-steps.js.map +1 -0
  61. package/dist/src/cli/helpers/init/path-utils.d.ts +41 -0
  62. package/dist/src/cli/helpers/init/path-utils.d.ts.map +1 -0
  63. package/dist/src/cli/helpers/init/path-utils.js +146 -0
  64. package/dist/src/cli/helpers/init/path-utils.js.map +1 -0
  65. package/dist/src/cli/helpers/init/plugin-installer.d.ts +28 -0
  66. package/dist/src/cli/helpers/init/plugin-installer.d.ts.map +1 -0
  67. package/dist/src/cli/helpers/init/plugin-installer.js +238 -0
  68. package/dist/src/cli/helpers/init/plugin-installer.js.map +1 -0
  69. package/dist/src/cli/helpers/init/repository-setup.d.ts +28 -0
  70. package/dist/src/cli/helpers/init/repository-setup.d.ts.map +1 -0
  71. package/dist/src/cli/helpers/init/repository-setup.js +78 -0
  72. package/dist/src/cli/helpers/init/repository-setup.js.map +1 -0
  73. package/dist/src/cli/helpers/init/smart-reinit.d.ts +30 -0
  74. package/dist/src/cli/helpers/init/smart-reinit.d.ts.map +1 -0
  75. package/dist/src/cli/helpers/init/smart-reinit.js +140 -0
  76. package/dist/src/cli/helpers/init/smart-reinit.js.map +1 -0
  77. package/dist/src/cli/helpers/init/testing-config.d.ts +27 -0
  78. package/dist/src/cli/helpers/init/testing-config.d.ts.map +1 -0
  79. package/dist/src/cli/helpers/init/testing-config.js +131 -0
  80. package/dist/src/cli/helpers/init/testing-config.js.map +1 -0
  81. package/dist/src/cli/helpers/init/types.d.ts +86 -0
  82. package/dist/src/cli/helpers/init/types.d.ts.map +1 -0
  83. package/dist/src/cli/helpers/init/types.js +5 -0
  84. package/dist/src/cli/helpers/init/types.js.map +1 -0
  85. package/dist/src/cli/helpers/issue-tracker/ado-auto-discover.d.ts.map +1 -1
  86. package/dist/src/cli/helpers/issue-tracker/ado-auto-discover.js +10 -12
  87. package/dist/src/cli/helpers/issue-tracker/ado-auto-discover.js.map +1 -1
  88. package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +1 -1
  89. package/dist/src/cli/helpers/issue-tracker/ado.js +43 -60
  90. package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -1
  91. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts.map +1 -1
  92. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js +193 -230
  93. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js.map +1 -1
  94. package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +1 -1
  95. package/dist/src/cli/helpers/issue-tracker/github.js +43 -54
  96. package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -1
  97. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  98. package/dist/src/cli/helpers/issue-tracker/index.js +27 -40
  99. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  100. package/dist/src/cli/helpers/issue-tracker/jira.d.ts.map +1 -1
  101. package/dist/src/cli/helpers/issue-tracker/jira.js +54 -70
  102. package/dist/src/cli/helpers/issue-tracker/jira.js.map +1 -1
  103. package/dist/src/cli/helpers/smart-filter.d.ts.map +1 -1
  104. package/dist/src/cli/helpers/smart-filter.js +62 -85
  105. package/dist/src/cli/helpers/smart-filter.js.map +1 -1
  106. package/dist/src/core/increment/auto-transition-manager.d.ts +12 -0
  107. package/dist/src/core/increment/auto-transition-manager.d.ts.map +1 -1
  108. package/dist/src/core/increment/auto-transition-manager.js +45 -0
  109. package/dist/src/core/increment/auto-transition-manager.js.map +1 -1
  110. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
  111. package/dist/src/core/increment/metadata-manager.js +46 -0
  112. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  113. package/dist/src/core/increment/status-change-sync-trigger.d.ts +12 -0
  114. package/dist/src/core/increment/status-change-sync-trigger.d.ts.map +1 -1
  115. package/dist/src/core/increment/status-change-sync-trigger.js +48 -2
  116. package/dist/src/core/increment/status-change-sync-trigger.js.map +1 -1
  117. package/dist/src/core/living-docs/living-docs-sync.d.ts +13 -0
  118. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  119. package/dist/src/core/living-docs/living-docs-sync.js +40 -0
  120. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  121. package/dist/src/core/repo-structure/repo-bulk-discovery.d.ts +5 -1
  122. package/dist/src/core/repo-structure/repo-bulk-discovery.d.ts.map +1 -1
  123. package/dist/src/core/repo-structure/repo-bulk-discovery.js +68 -86
  124. package/dist/src/core/repo-structure/repo-bulk-discovery.js.map +1 -1
  125. package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
  126. package/dist/src/core/repo-structure/repo-structure-manager.js +345 -425
  127. package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
  128. package/dist/src/core/sync/bidirectional-engine.d.ts.map +1 -1
  129. package/dist/src/core/sync/bidirectional-engine.js +21 -29
  130. package/dist/src/core/sync/bidirectional-engine.js.map +1 -1
  131. package/dist/src/init/InitFlow.js +15 -19
  132. package/dist/src/init/InitFlow.js.map +1 -1
  133. package/dist/src/init/repo/types.d.ts +1 -1
  134. package/dist/src/integrations/ado/area-path-mapper.d.ts.map +1 -1
  135. package/dist/src/integrations/ado/area-path-mapper.js +19 -23
  136. package/dist/src/integrations/ado/area-path-mapper.js.map +1 -1
  137. package/dist/src/utils/external-resource-validator.d.ts.map +1 -1
  138. package/dist/src/utils/external-resource-validator.js +41 -65
  139. package/dist/src/utils/external-resource-validator.js.map +1 -1
  140. package/dist/src/utils/project-detection.d.ts.map +1 -1
  141. package/dist/src/utils/project-detection.js +19 -21
  142. package/dist/src/utils/project-detection.js.map +1 -1
  143. package/dist/src/utils/project-validator.d.ts.map +1 -1
  144. package/dist/src/utils/project-validator.js +5 -7
  145. package/dist/src/utils/project-validator.js.map +1 -1
  146. package/package.json +2 -3
  147. package/plugins/specweave/agents/tech-lead/AGENT.md +9 -0
  148. package/plugins/specweave/hooks/post-edit-write-consolidated.sh +87 -0
  149. package/plugins/specweave/lib/vendor/core/increment/auto-transition-manager.d.ts +12 -0
  150. package/plugins/specweave/lib/vendor/core/increment/auto-transition-manager.js +45 -0
  151. package/plugins/specweave/lib/vendor/core/increment/auto-transition-manager.js.map +1 -1
  152. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +46 -0
  153. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
  154. package/plugins/specweave/skills/increment-planner/SKILL.md +10 -5
  155. package/plugins/specweave/skills/specweave-framework/SKILL.md +6 -4
  156. package/plugins/specweave/templates/coding-standards.md.template +36 -0
  157. package/plugins/specweave-ado/lib/project-selector.js +56 -67
  158. package/plugins/specweave-ado/lib/project-selector.ts +72 -85
  159. package/plugins/specweave-github/lib/repo-selector.js +55 -66
  160. package/plugins/specweave-github/lib/repo-selector.ts +73 -84
  161. package/plugins/specweave-jira/commands/import-projects.js +3 -5
  162. package/plugins/specweave-jira/commands/import-projects.ts +3 -5
  163. package/plugins/specweave-jira/lib/project-selector.js +60 -71
  164. package/plugins/specweave-jira/lib/project-selector.ts +78 -91
  165. package/plugins/specweave-jira/lib/setup-wizard.js +51 -72
  166. package/plugins/specweave-jira/lib/setup-wizard.ts +56 -74
  167. package/src/templates/CLAUDE.md.template +14 -0
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Directory structure creation and template copying
3
+ */
4
+ import * as fs from '../../../utils/fs-native.js';
5
+ import * as path from 'path';
6
+ import chalk from 'chalk';
7
+ import { ClaudeMdGenerator } from '../../../adapters/claude-md-generator.js';
8
+ import { AgentsMdGenerator } from '../../../adapters/agents-md-generator.js';
9
+ import { getLocaleManager } from '../../../core/i18n/locale-manager.js';
10
+ import { findSourceDir, findPackageRoot } from './path-utils.js';
11
+ /**
12
+ * Create the .specweave directory structure
13
+ *
14
+ * @param targetDir - Target directory
15
+ * @param _adapterName - Adapter name (unused, kept for API compatibility)
16
+ */
17
+ export function createDirectoryStructure(targetDir, _adapterName) {
18
+ const directories = [
19
+ // Core increment structure
20
+ '.specweave/increments',
21
+ '.specweave/cache', // External tool cache (24-hour TTL)
22
+ // 6-pillar documentation structure
23
+ '.specweave/docs/internal/strategy', // Business specs (WHAT, WHY)
24
+ '.specweave/docs/internal/specs', // Feature specifications (detailed requirements)
25
+ '.specweave/docs/internal/architecture', // Technical design (HOW)
26
+ '.specweave/docs/internal/architecture/adr', // Architecture Decision Records
27
+ '.specweave/docs/internal/architecture/diagrams', // Architecture diagrams
28
+ '.specweave/docs/internal/delivery', // Roadmap, CI/CD, guides
29
+ '.specweave/docs/internal/operations', // Runbooks, SLOs
30
+ '.specweave/docs/internal/governance', // Security, compliance
31
+ '.specweave/docs/public', // Published documentation
32
+ ];
33
+ directories.forEach((dir) => {
34
+ fs.mkdirSync(path.join(targetDir, dir), { recursive: true });
35
+ });
36
+ }
37
+ /**
38
+ * Copy templates and generate CLAUDE.md and AGENTS.md
39
+ *
40
+ * @param templatesDir - Source templates directory
41
+ * @param targetDir - Target directory
42
+ * @param projectName - Project name
43
+ * @param language - Language for i18n
44
+ */
45
+ export async function copyTemplates(templatesDir, targetDir, projectName, language = 'en') {
46
+ const locale = getLocaleManager(language);
47
+ // Verify templates directory exists
48
+ if (!fs.existsSync(templatesDir)) {
49
+ console.error(chalk.red(`\n${locale.t('cli', 'init.errors.templatesNotFound', { path: templatesDir })}`));
50
+ const packageRoot = findPackageRoot(templatesDir);
51
+ if (packageRoot) {
52
+ console.error(chalk.red(` ${locale.t('cli', 'init.errors.packageRoot', { root: packageRoot })}`));
53
+ console.error(chalk.red(` ${locale.t('cli', 'init.errors.tryingAlternate')}`));
54
+ // Try src/templates as fallback
55
+ const altPath = path.join(packageRoot, 'src', 'templates');
56
+ if (fs.existsSync(altPath)) {
57
+ console.error(chalk.yellow(` ${locale.t('cli', 'init.errors.foundTemplatesAt', { path: altPath })}`));
58
+ templatesDir = altPath;
59
+ }
60
+ else {
61
+ throw new Error('Failed to locate templates directory');
62
+ }
63
+ }
64
+ else {
65
+ throw new Error('Failed to locate templates directory and package root');
66
+ }
67
+ }
68
+ // Copy README.md
69
+ const readmeTemplate = path.join(templatesDir, 'README.md.template');
70
+ if (fs.existsSync(readmeTemplate)) {
71
+ let readme = fs.readFileSync(readmeTemplate, 'utf-8');
72
+ readme = readme.replace(/{{PROJECT_NAME}}/g, projectName);
73
+ fs.writeFileSync(path.join(targetDir, 'README.md'), readme);
74
+ }
75
+ // Generate CLAUDE.md
76
+ const skillsDir = findSourceDir('skills', templatesDir);
77
+ const agentsDir = findSourceDir('agents', templatesDir);
78
+ const commandsDir = findSourceDir('commands', templatesDir);
79
+ const claudeMdTemplatePath = path.normalize(path.join(templatesDir, 'CLAUDE.md.template'));
80
+ const claudeGen = new ClaudeMdGenerator(skillsDir, agentsDir, commandsDir);
81
+ const claudeMd = await claudeGen.generate({
82
+ projectName,
83
+ projectPath: targetDir,
84
+ templatePath: fs.existsSync(claudeMdTemplatePath) ? claudeMdTemplatePath : undefined
85
+ });
86
+ fs.writeFileSync(path.join(targetDir, 'CLAUDE.md'), claudeMd);
87
+ // Generate AGENTS.md
88
+ const agentsMdTemplatePath = path.normalize(path.join(templatesDir, 'AGENTS.md.template'));
89
+ const agentsGen = new AgentsMdGenerator(skillsDir, agentsDir, commandsDir);
90
+ const agentsMd = await agentsGen.generate({
91
+ projectName,
92
+ projectPath: targetDir,
93
+ templatePath: fs.existsSync(agentsMdTemplatePath) ? agentsMdTemplatePath : undefined
94
+ });
95
+ fs.writeFileSync(path.join(targetDir, 'AGENTS.md'), agentsMd);
96
+ // Copy .gitignore
97
+ const gitignoreTemplate = path.join(templatesDir, '.gitignore.template');
98
+ if (fs.existsSync(gitignoreTemplate)) {
99
+ fs.copyFileSync(gitignoreTemplate, path.join(targetDir, '.gitignore'));
100
+ }
101
+ // Copy .gitattributes
102
+ const gitattributesTemplate = path.join(templatesDir, '.gitattributes.template');
103
+ if (fs.existsSync(gitattributesTemplate)) {
104
+ fs.copyFileSync(gitattributesTemplate, path.join(targetDir, '.gitattributes'));
105
+ }
106
+ }
107
+ /**
108
+ * Create .specweave/config.json with project settings
109
+ */
110
+ export function createConfigFile(targetDir, projectName, adapter, language, enableDocsPreview = true, testMode, coverageTarget) {
111
+ const configPath = path.join(targetDir, '.specweave', 'config.json');
112
+ const config = {
113
+ version: '2.0',
114
+ project: {
115
+ name: projectName,
116
+ version: '0.1.0',
117
+ },
118
+ adapters: {
119
+ default: adapter,
120
+ },
121
+ repository: {
122
+ provider: 'local'
123
+ },
124
+ issueTracker: {
125
+ provider: 'none'
126
+ },
127
+ sync: {
128
+ enabled: false,
129
+ direction: 'bidirectional',
130
+ autoSync: false,
131
+ includeStatus: true,
132
+ autoApplyLabels: true,
133
+ settings: {
134
+ canUpsertInternalItems: true,
135
+ canUpdateExternalItems: true,
136
+ canUpdateStatus: true,
137
+ autoSyncOnCompletion: true
138
+ }
139
+ },
140
+ hooks: {
141
+ post_task_completion: {
142
+ sync_living_docs: true,
143
+ sync_tasks_md: true,
144
+ external_tracker_sync: true
145
+ },
146
+ post_increment_planning: {
147
+ auto_create_github_issue: false
148
+ }
149
+ },
150
+ };
151
+ // Add testing configuration if provided
152
+ if (testMode && coverageTarget) {
153
+ config.testing = {
154
+ defaultTestMode: testMode,
155
+ defaultCoverageTarget: coverageTarget,
156
+ coverageTargets: {
157
+ unit: Math.min(coverageTarget + 5, 95),
158
+ integration: coverageTarget,
159
+ e2e: Math.min(coverageTarget + 10, 100)
160
+ }
161
+ };
162
+ }
163
+ // Add documentation preview for Claude
164
+ if (adapter === 'claude') {
165
+ config.documentation = {
166
+ preview: {
167
+ enabled: enableDocsPreview,
168
+ autoInstall: false,
169
+ port: 3015,
170
+ openBrowser: true,
171
+ theme: 'default',
172
+ excludeFolders: ['legacy', 'node_modules']
173
+ }
174
+ };
175
+ }
176
+ // Add language if non-English
177
+ if (language !== 'en') {
178
+ config.language = language;
179
+ config.translation = {
180
+ method: 'in-session',
181
+ autoTranslateLivingDocs: false,
182
+ keepFrameworkTerms: true,
183
+ keepTechnicalTerms: true,
184
+ translateCodeComments: true,
185
+ translateVariableNames: false,
186
+ };
187
+ }
188
+ fs.writeJsonSync(configPath, config, { spaces: 2 });
189
+ }
190
+ //# sourceMappingURL=directory-structure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-structure.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/directory-structure.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiB,EAAE,YAAoB;IAC9E,MAAM,WAAW,GAAG;QAClB,2BAA2B;QAC3B,uBAAuB;QACvB,kBAAkB,EAAwB,oCAAoC;QAE9E,mCAAmC;QACnC,mCAAmC,EAAO,6BAA6B;QACvE,gCAAgC,EAAU,iDAAiD;QAC3F,uCAAuC,EAAG,yBAAyB;QACnE,2CAA2C,EAAO,gCAAgC;QAClF,gDAAgD,EAAE,wBAAwB;QAC1E,mCAAmC,EAAO,yBAAyB;QACnE,qCAAqC,EAAK,iBAAiB;QAC3D,qCAAqC,EAAK,uBAAuB;QACjE,wBAAwB,EAAkB,0BAA0B;KACrE,CAAC;IAEF,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,YAAoB,EACpB,SAAiB,EACjB,WAAmB,EACnB,WAA8B,IAAI;IAElC,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE1C,oCAAoC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,+BAA+B,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1G,MAAM,WAAW,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,yBAAyB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACpG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAC;YAEjF,gCAAgC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAC3D,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,8BAA8B,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxG,YAAY,GAAG,OAAO,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;IACrE,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;QAC1D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,qBAAqB;IACrB,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAE5D,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC;QACxC,WAAW;QACX,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS;KACrF,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE9D,qBAAqB;IACrB,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC;QACxC,WAAW;QACX,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS;KACrF,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE9D,kBAAkB;IAClB,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;IACzE,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACrC,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,sBAAsB;IACtB,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;IACjF,IAAI,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACzC,EAAE,CAAC,YAAY,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,WAAmB,EACnB,OAAe,EACf,QAA2B,EAC3B,oBAA6B,IAAI,EACjC,QAAmB,EACnB,cAAuB;IAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAErE,MAAM,MAAM,GAA4B;QACtC,OAAO,EAAE,KAAK;QACd,OAAO,EAAE;YACP,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO;SACjB;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO;SACjB;QACD,UAAU,EAAE;YACV,QAAQ,EAAE,OAAgB;SAC3B;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,MAAe;SAC1B;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,eAAwB;YACnC,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,IAAI;YACnB,eAAe,EAAE,IAAI;YACrB,QAAQ,EAAE;gBACR,sBAAsB,EAAE,IAAI;gBAC5B,sBAAsB,EAAE,IAAI;gBAC5B,eAAe,EAAE,IAAI;gBACrB,oBAAoB,EAAE,IAAI;aAC3B;SACF;QACD,KAAK,EAAE;YACL,oBAAoB,EAAE;gBACpB,gBAAgB,EAAE,IAAI;gBACtB,aAAa,EAAE,IAAI;gBACnB,qBAAqB,EAAE,IAAI;aAC5B;YACD,uBAAuB,EAAE;gBACvB,wBAAwB,EAAE,KAAK;aAChC;SACF;KACF,CAAC;IAEF,wCAAwC;IACxC,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,GAAG;YACf,eAAe,EAAE,QAAQ;YACzB,qBAAqB,EAAE,cAAc;YACrC,eAAe,EAAE;gBACf,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,EAAE,EAAE,CAAC;gBACtC,WAAW,EAAE,cAAc;gBAC3B,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,EAAE,GAAG,CAAC;aACxC;SACF,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,aAAa,GAAG;YACrB,OAAO,EAAE;gBACP,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,KAAK;gBAClB,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,SAAS;gBAChB,cAAc,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC;aAC3C;SACF,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,MAAM,CAAC,WAAW,GAAG;YACnB,MAAM,EAAE,YAAY;YACpB,uBAAuB,EAAE,KAAK;YAC9B,kBAAkB,EAAE,IAAI;YACxB,kBAAkB,EAAE,IAAI;YACxB,qBAAqB,EAAE,IAAI;YAC3B,sBAAsB,EAAE,KAAK;SAC9B,CAAC;IACJ,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * External tool import functionality
3
+ * Imports work items from GitHub, JIRA, Azure DevOps
4
+ */
5
+ import { CoordinatorResult } from '../../../importers/import-coordinator.js';
6
+ /**
7
+ * Prompt user and run external tool import
8
+ * Detects GitHub/JIRA/ADO configuration and imports work items
9
+ *
10
+ * @param targetDir - Project directory
11
+ * @param isCI - Whether running in CI mode
12
+ * @returns Import result
13
+ */
14
+ export declare function promptAndRunExternalImport(targetDir: string, isCI: boolean): Promise<CoordinatorResult>;
15
+ //# sourceMappingURL=external-import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-import.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/external-import.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAwC,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAMnH;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,iBAAiB,CAAC,CAuG5B"}
@@ -0,0 +1,251 @@
1
+ /**
2
+ * External tool import functionality
3
+ * Imports work items from GitHub, JIRA, Azure DevOps
4
+ */
5
+ import * as fs from '../../../utils/fs-native.js';
6
+ import * as path from 'path';
7
+ import chalk from 'chalk';
8
+ import ora from 'ora';
9
+ import { select, confirm } from '@inquirer/prompts';
10
+ import { Octokit } from '@octokit/rest';
11
+ import { ImportCoordinator } from '../../../importers/import-coordinator.js';
12
+ import { ItemConverter } from '../../../importers/item-converter.js';
13
+ import { loadImportConfig } from '../../../config/import-config.js';
14
+ import { selectRepositories } from '../github-repo-selector.js';
15
+ import { detectAllConfigs } from './config-detection.js';
16
+ /**
17
+ * Prompt user and run external tool import
18
+ * Detects GitHub/JIRA/ADO configuration and imports work items
19
+ *
20
+ * @param targetDir - Project directory
21
+ * @param isCI - Whether running in CI mode
22
+ * @returns Import result
23
+ */
24
+ export async function promptAndRunExternalImport(targetDir, isCI) {
25
+ // Load import configuration
26
+ const importConfig = loadImportConfig(targetDir);
27
+ // Check if import is disabled via config
28
+ if (!importConfig.enabled) {
29
+ return emptyResult();
30
+ }
31
+ // Detect available external tools
32
+ const { github, jira, ado, availableTools } = detectAllConfigs(targetDir);
33
+ // If no tools detected, skip import
34
+ if (availableTools.length === 0) {
35
+ return emptyResult();
36
+ }
37
+ console.log(chalk.blue('\n🔍 External Tool Detection'));
38
+ console.log(chalk.gray(` Found: ${availableTools.join(', ')}`));
39
+ console.log('');
40
+ // In CI mode, skip import without prompting
41
+ if (isCI) {
42
+ console.log(chalk.gray(' → CI mode: Skipping import (can run manually later)\n'));
43
+ return emptyResult();
44
+ }
45
+ // Prompt user to import
46
+ const shouldImport = await confirm({
47
+ message: `Import existing work items from ${availableTools.join(', ')}?`,
48
+ default: false
49
+ });
50
+ if (!shouldImport) {
51
+ console.log(chalk.gray(' ✓ Skipping import\n'));
52
+ return emptyResult();
53
+ }
54
+ // Handle multi-repo selection for GitHub
55
+ let repoSelectionConfig = null;
56
+ if (github && process.env.GITHUB_TOKEN) {
57
+ repoSelectionConfig = await promptMultiRepoSelection(targetDir);
58
+ }
59
+ // Map config timeRangeMonths to closest prompt option
60
+ let defaultTimeRange = 3;
61
+ if (importConfig.timeRangeMonths === 1)
62
+ defaultTimeRange = 1;
63
+ else if (importConfig.timeRangeMonths <= 3)
64
+ defaultTimeRange = 3;
65
+ else if (importConfig.timeRangeMonths <= 6)
66
+ defaultTimeRange = 6;
67
+ else
68
+ defaultTimeRange = 999;
69
+ // Prompt for time range
70
+ const timeRange = await select({
71
+ message: 'How far back should we import?',
72
+ choices: [
73
+ { name: '1 month (recent items only)', value: 1 },
74
+ { name: '3 months (recommended)', value: 3 },
75
+ { name: '6 months (comprehensive)', value: 6 },
76
+ { name: 'All time (warning: may be slow)', value: 999 }
77
+ ],
78
+ default: defaultTimeRange
79
+ });
80
+ // Build coordinator configuration
81
+ const coordinatorConfig = {
82
+ importConfig: {
83
+ timeRangeMonths: timeRange,
84
+ includeClosed: false,
85
+ pageSize: importConfig.pageSize
86
+ },
87
+ parallel: true
88
+ };
89
+ // Add GitHub config if available
90
+ if (github) {
91
+ coordinatorConfig.github = {
92
+ owner: github.owner,
93
+ repo: github.repo,
94
+ token: process.env.GITHUB_TOKEN
95
+ };
96
+ }
97
+ // Add JIRA config if available
98
+ if (jira) {
99
+ coordinatorConfig.jira = {
100
+ host: jira.host,
101
+ email: jira.email,
102
+ apiToken: jira.apiToken
103
+ };
104
+ }
105
+ // Add ADO config if available
106
+ if (ado) {
107
+ coordinatorConfig.ado = {
108
+ orgUrl: ado.orgUrl,
109
+ project: ado.project,
110
+ pat: ado.pat
111
+ };
112
+ }
113
+ // Run import with progress tracking
114
+ return await runImport(targetDir, coordinatorConfig);
115
+ }
116
+ /**
117
+ * Prompt for multi-repository selection
118
+ */
119
+ async function promptMultiRepoSelection(targetDir) {
120
+ try {
121
+ const useMultiRepo = await confirm({
122
+ message: 'Do you want to import from multiple repositories?',
123
+ default: false
124
+ });
125
+ if (!useMultiRepo) {
126
+ return null;
127
+ }
128
+ const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN });
129
+ const repoSelectionConfig = await selectRepositories(octokit, process.env.GITHUB_TOKEN);
130
+ if (repoSelectionConfig) {
131
+ // Save to config
132
+ try {
133
+ const configPath = path.join(targetDir, '.specweave', 'config.json');
134
+ let config = {};
135
+ if (fs.existsSync(configPath)) {
136
+ config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
137
+ }
138
+ if (!config.github) {
139
+ config.github = {};
140
+ }
141
+ const githubConfig = config.github;
142
+ githubConfig.repositories = repoSelectionConfig.repositories;
143
+ githubConfig.selectionStrategy = repoSelectionConfig.selectionStrategy;
144
+ if (repoSelectionConfig.pattern) {
145
+ githubConfig.pattern = repoSelectionConfig.pattern;
146
+ }
147
+ if (repoSelectionConfig.organizationName) {
148
+ githubConfig.organizationName = repoSelectionConfig.organizationName;
149
+ }
150
+ fs.ensureDirSync(path.dirname(configPath));
151
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
152
+ }
153
+ catch {
154
+ // Silent - config save is not critical
155
+ }
156
+ }
157
+ return repoSelectionConfig;
158
+ }
159
+ catch {
160
+ return null;
161
+ }
162
+ }
163
+ /**
164
+ * Run the import with progress tracking
165
+ */
166
+ async function runImport(targetDir, coordinatorConfig) {
167
+ const spinner = ora('Importing items...').start();
168
+ coordinatorConfig.onProgress = (platform, count) => {
169
+ spinner.text = `Importing from ${platform}... (${count} items)`;
170
+ };
171
+ try {
172
+ const coordinator = new ImportCoordinator(coordinatorConfig);
173
+ const result = await coordinator.importAll();
174
+ spinner.succeed(`Imported ${result.totalCount} items`);
175
+ // Show breakdown by platform
176
+ if (result.results.length > 0) {
177
+ console.log('');
178
+ result.results.forEach(platformResult => {
179
+ console.log(chalk.gray(` ✓ ${platformResult.platform}: ${platformResult.count} items`));
180
+ });
181
+ }
182
+ // Show errors if any
183
+ if (Object.keys(result.errors).length > 0) {
184
+ console.log('');
185
+ console.log(chalk.yellow(' ⚠️ Some imports failed:'));
186
+ Object.entries(result.errors).forEach(([platform, errors]) => {
187
+ console.log(chalk.gray(` → ${platform}: ${errors.join(', ')}`));
188
+ });
189
+ }
190
+ // Warn if many items detected
191
+ if (result.totalCount > 100) {
192
+ console.log('');
193
+ console.log(chalk.yellow(` ⚠️ Imported ${result.totalCount} items (large dataset)`));
194
+ console.log(chalk.gray(' → Consider using time range filters for faster imports'));
195
+ }
196
+ // Convert imported items to living docs User Stories
197
+ if (result.totalCount > 0) {
198
+ await convertToLivingDocs(targetDir, result, spinner);
199
+ }
200
+ return result;
201
+ }
202
+ catch (error) {
203
+ spinner.fail('Import failed');
204
+ throw error;
205
+ }
206
+ }
207
+ /**
208
+ * Convert imported items to living docs
209
+ */
210
+ async function convertToLivingDocs(targetDir, result, spinner) {
211
+ spinner.start('Converting to living docs...');
212
+ try {
213
+ const specsDir = path.join(targetDir, '.specweave', 'docs', 'internal', 'specs');
214
+ const converter = new ItemConverter({ specsDir });
215
+ const convertedStories = await converter.convertItems(result.allItems);
216
+ spinner.succeed(`Converted ${convertedStories.length} User Stories to living docs`);
217
+ console.log(chalk.gray(' → Living docs created with E suffix (US-001E, US-002E, ...)'));
218
+ console.log(chalk.gray(' → Location: .specweave/docs/internal/specs/'));
219
+ console.log('');
220
+ // Validate that no increments were auto-created
221
+ try {
222
+ ItemConverter.validateNoIncrementsCreated(targetDir);
223
+ }
224
+ catch (validationError) {
225
+ spinner.fail('Import validation failed');
226
+ throw new Error(`CRITICAL ERROR: ${validationError instanceof Error ? validationError.message : String(validationError)}\n` +
227
+ 'This is a bug in the import system. Please report it.');
228
+ }
229
+ console.log(chalk.blue(' 💡 Next steps:'));
230
+ console.log(chalk.gray(' → Review imported User Stories in living docs'));
231
+ console.log(chalk.gray(' → Create increments manually when ready: /specweave:increment "feature"'));
232
+ console.log('');
233
+ }
234
+ catch (conversionError) {
235
+ spinner.fail('Conversion to living docs failed');
236
+ throw conversionError;
237
+ }
238
+ }
239
+ /**
240
+ * Create empty result object
241
+ */
242
+ function emptyResult() {
243
+ return {
244
+ results: [],
245
+ totalCount: 0,
246
+ allItems: [],
247
+ errors: {},
248
+ platforms: []
249
+ };
250
+ }
251
+ //# sourceMappingURL=external-import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-import.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/external-import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Init command helpers - barrel export
3
+ */
4
+ export * from './types.js';
5
+ export { findPackageRoot, findSourceDir, detectNestedSpecweave, countFilesRecursive, } from './path-utils.js';
6
+ export { detectGitHubRemote, detectJiraConfig, detectADOConfig, detectAllConfigs, } from './config-detection.js';
7
+ export { promptSmartReinit, type SmartReinitOptions, type SmartReinitResult, } from './smart-reinit.js';
8
+ export { installAllPlugins, type PluginInstallOptions, type PluginInstallResult, } from './plugin-installer.js';
9
+ export { setupRepositoryHosting, type RepositorySetupOptions, type RepositorySetupResult, } from './repository-setup.js';
10
+ export { promptTestingConfig, updateConfigWithTesting, type TestingConfigResult, } from './testing-config.js';
11
+ export { promptAndRunExternalImport, } from './external-import.js';
12
+ export { createDirectoryStructure, copyTemplates, createConfigFile, } from './directory-structure.js';
13
+ export { showNextSteps, } from './next-steps.js';
14
+ export { generateInitialIncrement, type InitialIncrementOptions, } from './initial-increment-generator.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Init command helpers - barrel export
3
+ */
4
+ // Types
5
+ export * from './types.js';
6
+ // Path utilities
7
+ export { findPackageRoot, findSourceDir, detectNestedSpecweave, countFilesRecursive, } from './path-utils.js';
8
+ // Config detection
9
+ export { detectGitHubRemote, detectJiraConfig, detectADOConfig, detectAllConfigs, } from './config-detection.js';
10
+ // Smart re-initialization
11
+ export { promptSmartReinit, } from './smart-reinit.js';
12
+ // Plugin installation
13
+ export { installAllPlugins, } from './plugin-installer.js';
14
+ // Repository setup
15
+ export { setupRepositoryHosting, } from './repository-setup.js';
16
+ // Testing configuration
17
+ export { promptTestingConfig, updateConfigWithTesting, } from './testing-config.js';
18
+ // External import
19
+ export { promptAndRunExternalImport, } from './external-import.js';
20
+ // Directory structure
21
+ export { createDirectoryStructure, copyTemplates, createConfigFile, } from './directory-structure.js';
22
+ // Next steps
23
+ export { showNextSteps, } from './next-steps.js';
24
+ // Initial increment generator (existing)
25
+ export { generateInitialIncrement, } from './initial-increment-generator.js';
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EACL,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,mBAAmB;AACnB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAE3B,sBAAsB;AACtB,OAAO,EACL,iBAAiB,GAGlB,MAAM,uBAAuB,CAAC;AAE/B,mBAAmB;AACnB,OAAO,EACL,sBAAsB,GAGvB,MAAM,uBAAuB,CAAC;AAE/B,wBAAwB;AACxB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GAExB,MAAM,qBAAqB,CAAC;AAE7B,kBAAkB;AAClB,OAAO,EACL,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B,sBAAsB;AACtB,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,aAAa;AACb,OAAO,EACL,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,yCAAyC;AACzC,OAAO,EACL,wBAAwB,GAEzB,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Next steps display after init completion
3
+ */
4
+ import type { SupportedLanguage } from '../../../core/i18n/types.js';
5
+ /**
6
+ * Show next steps after initialization
7
+ *
8
+ * @param projectName - Project name
9
+ * @param adapterName - Adapter name (claude, cursor, generic)
10
+ * @param language - Language for i18n
11
+ * @param usedDotNotation - Whether user used "." for current directory
12
+ * @param pluginAutoInstalled - Whether plugins were auto-installed (Claude only)
13
+ */
14
+ export declare function showNextSteps(projectName: string, adapterName: string, language: SupportedLanguage, usedDotNotation?: boolean, pluginAutoInstalled?: boolean): void;
15
+ //# sourceMappingURL=next-steps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next-steps.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/next-steps.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,eAAe,GAAE,OAAe,EAChC,mBAAmB,GAAE,OAAe,GACnC,IAAI,CA8DN"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Next steps display after init completion
3
+ */
4
+ import chalk from 'chalk';
5
+ import { getLocaleManager } from '../../../core/i18n/locale-manager.js';
6
+ /**
7
+ * Show next steps after initialization
8
+ *
9
+ * @param projectName - Project name
10
+ * @param adapterName - Adapter name (claude, cursor, generic)
11
+ * @param language - Language for i18n
12
+ * @param usedDotNotation - Whether user used "." for current directory
13
+ * @param pluginAutoInstalled - Whether plugins were auto-installed (Claude only)
14
+ */
15
+ export function showNextSteps(projectName, adapterName, language, usedDotNotation = false, pluginAutoInstalled = false) {
16
+ const locale = getLocaleManager(language);
17
+ console.log('');
18
+ console.log(chalk.cyan.bold(locale.t('cli', 'init.nextSteps.header')));
19
+ console.log('');
20
+ let stepNumber = 1;
21
+ // Only show "cd" step if we created a subdirectory
22
+ if (!usedDotNotation) {
23
+ console.log(` ${stepNumber}. ${chalk.white(locale.t('cli', 'init.nextSteps.cd', { projectName }))}`);
24
+ console.log('');
25
+ stepNumber++;
26
+ }
27
+ // Adapter-specific instructions
28
+ if (adapterName === 'claude') {
29
+ console.log(` ${stepNumber}. ${chalk.white(locale.t('cli', 'init.nextSteps.claude.step1'))}`);
30
+ console.log('');
31
+ stepNumber++;
32
+ // Only show manual install if auto-install failed
33
+ if (!pluginAutoInstalled) {
34
+ console.log(` ${stepNumber}. ${chalk.yellow.bold('⚠️ ' + locale.t('cli', 'init.nextSteps.claude.step2'))}`);
35
+ console.log(` ${chalk.cyan.bold(locale.t('cli', 'init.nextSteps.claude.installCore'))}`);
36
+ console.log(` ${chalk.gray('↑ Required for slash commands like /specweave:increment')}`);
37
+ console.log('');
38
+ stepNumber++;
39
+ }
40
+ console.log(` ${stepNumber}. ${chalk.white('All plugins are already installed!')}`);
41
+ console.log(` ${chalk.gray('✔ All 19+ SpecWeave plugins installed automatically')}`);
42
+ console.log(` ${chalk.gray('✔ No need to install additional plugins manually')}`);
43
+ console.log(` ${chalk.gray('✔ Full capabilities available immediately')}`);
44
+ console.log('');
45
+ stepNumber++;
46
+ console.log(` ${stepNumber}. ${chalk.white(locale.t('cli', 'init.nextSteps.claude.step4'))}`);
47
+ console.log(` ${chalk.cyan(locale.t('cli', 'init.nextSteps.claude.example'))}`);
48
+ console.log(` ${chalk.gray(locale.t('cli', 'init.nextSteps.claude.autoActivate'))}`);
49
+ }
50
+ else if (adapterName === 'cursor') {
51
+ console.log(` ${stepNumber}. ${chalk.white(locale.t('cli', 'init.nextSteps.cursor.step1'))}`);
52
+ console.log('');
53
+ console.log(` ${stepNumber + 1}. ${chalk.white(locale.t('cli', 'init.nextSteps.cursor.step2'))}`);
54
+ console.log(` ${locale.t('cli', 'init.nextSteps.cursor.guide')}`);
55
+ console.log('');
56
+ console.log(` ${stepNumber + 2}. ${chalk.white(locale.t('cli', 'init.nextSteps.cursor.step3'))}`);
57
+ console.log(` ${locale.t('cli', 'init.nextSteps.cursor.shortcuts')}`);
58
+ }
59
+ else if (adapterName === 'generic') {
60
+ console.log(` ${stepNumber}. ${chalk.white(locale.t('cli', 'init.nextSteps.generic.step1'))}`);
61
+ console.log('');
62
+ console.log(` ${stepNumber + 1}. ${chalk.white(locale.t('cli', 'init.nextSteps.generic.step2'))}`);
63
+ console.log(` ${locale.t('cli', 'init.nextSteps.generic.compatibility')}`);
64
+ }
65
+ console.log('');
66
+ console.log(chalk.green.bold(locale.t('cli', 'init.nextSteps.footer')));
67
+ console.log('');
68
+ console.log(chalk.gray(locale.t('cli', 'init.nextSteps.docsLink')));
69
+ console.log(chalk.gray(locale.t('cli', 'init.nextSteps.githubLink')));
70
+ console.log('');
71
+ }
72
+ //# sourceMappingURL=next-steps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next-steps.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/next-steps.ts"],"names":[],"mappings":"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"}