specweave 0.23.8 → 0.23.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +7 -7
- package/CLAUDE.md +391 -1338
- package/dist/src/cli/commands/cleanup-cache.d.ts +14 -0
- package/dist/src/cli/commands/cleanup-cache.d.ts.map +1 -0
- package/dist/src/cli/commands/cleanup-cache.js +63 -0
- package/dist/src/cli/commands/cleanup-cache.js.map +1 -0
- package/dist/src/cli/commands/init.js +40 -0
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/migrate-config.d.ts +22 -0
- package/dist/src/cli/commands/migrate-config.d.ts.map +1 -0
- package/dist/src/cli/commands/migrate-config.js +149 -0
- package/dist/src/cli/commands/migrate-config.js.map +1 -0
- package/dist/src/cli/helpers/async-project-loader.d.ts +148 -0
- package/dist/src/cli/helpers/async-project-loader.d.ts.map +1 -0
- package/dist/src/cli/helpers/async-project-loader.js +351 -0
- package/dist/src/cli/helpers/async-project-loader.js.map +1 -0
- package/dist/src/cli/helpers/cancelation-handler.d.ts +123 -0
- package/dist/src/cli/helpers/cancelation-handler.d.ts.map +1 -0
- package/dist/src/cli/helpers/cancelation-handler.js +187 -0
- package/dist/src/cli/helpers/cancelation-handler.js.map +1 -0
- package/dist/src/cli/helpers/import-strategy-prompter.d.ts +43 -0
- package/dist/src/cli/helpers/import-strategy-prompter.d.ts.map +1 -0
- package/dist/src/cli/helpers/import-strategy-prompter.js +136 -0
- package/dist/src/cli/helpers/import-strategy-prompter.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/ado.d.ts +5 -2
- package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/ado.js +90 -40
- package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.js +112 -60
- package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/jira.d.ts +26 -2
- package/dist/src/cli/helpers/issue-tracker/jira.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/jira.js +197 -132
- package/dist/src/cli/helpers/issue-tracker/jira.js.map +1 -1
- package/dist/src/cli/helpers/progress-tracker.d.ts +121 -0
- package/dist/src/cli/helpers/progress-tracker.d.ts.map +1 -0
- package/dist/src/cli/helpers/progress-tracker.js +202 -0
- package/dist/src/cli/helpers/progress-tracker.js.map +1 -0
- package/dist/src/cli/helpers/project-count-fetcher.d.ts +69 -0
- package/dist/src/cli/helpers/project-count-fetcher.d.ts.map +1 -0
- package/dist/src/cli/helpers/project-count-fetcher.js +173 -0
- package/dist/src/cli/helpers/project-count-fetcher.js.map +1 -0
- package/dist/src/config/types.d.ts +14 -14
- package/dist/src/core/cache/cache-manager.d.ts +119 -0
- package/dist/src/core/cache/cache-manager.d.ts.map +1 -0
- package/dist/src/core/cache/cache-manager.js +304 -0
- package/dist/src/core/cache/cache-manager.js.map +1 -0
- package/dist/src/core/cache/rate-limit-checker.d.ts +92 -0
- package/dist/src/core/cache/rate-limit-checker.d.ts.map +1 -0
- package/dist/src/core/cache/rate-limit-checker.js +160 -0
- package/dist/src/core/cache/rate-limit-checker.js.map +1 -0
- package/dist/src/core/config/config-manager.d.ts +135 -0
- package/dist/src/core/config/config-manager.d.ts.map +1 -0
- package/dist/src/core/config/config-manager.js +341 -0
- package/dist/src/core/config/config-manager.js.map +1 -0
- package/dist/src/core/config/config-migrator.d.ts +102 -0
- package/dist/src/core/config/config-migrator.d.ts.map +1 -0
- package/dist/src/core/config/config-migrator.js +367 -0
- package/dist/src/core/config/config-migrator.js.map +1 -0
- package/dist/src/core/config/index.d.ts +10 -0
- package/dist/src/core/config/index.d.ts.map +1 -0
- package/dist/src/core/config/index.js +10 -0
- package/dist/src/core/config/index.js.map +1 -0
- package/dist/src/core/config/types.d.ts +216 -0
- package/dist/src/core/config/types.d.ts.map +1 -0
- package/dist/src/core/config/types.js +32 -0
- package/dist/src/core/config/types.js.map +1 -0
- package/dist/src/core/progress/cancelation-handler.d.ts +79 -0
- package/dist/src/core/progress/cancelation-handler.d.ts.map +1 -0
- package/dist/src/core/progress/cancelation-handler.js +111 -0
- package/dist/src/core/progress/cancelation-handler.js.map +1 -0
- package/dist/src/core/progress/import-state.d.ts +71 -0
- package/dist/src/core/progress/import-state.d.ts.map +1 -0
- package/dist/src/core/progress/import-state.js +96 -0
- package/dist/src/core/progress/import-state.js.map +1 -0
- package/dist/src/core/progress/progress-tracker.d.ts +139 -0
- package/dist/src/core/progress/progress-tracker.d.ts.map +1 -0
- package/dist/src/core/progress/progress-tracker.js +223 -0
- package/dist/src/core/progress/progress-tracker.js.map +1 -0
- package/dist/src/init/architecture/types.d.ts +6 -6
- package/dist/src/integrations/ado/ado-client.d.ts +25 -0
- package/dist/src/integrations/ado/ado-client.d.ts.map +1 -1
- package/dist/src/integrations/ado/ado-client.js +67 -0
- package/dist/src/integrations/ado/ado-client.js.map +1 -1
- package/dist/src/integrations/ado/ado-dependency-loader.d.ts +99 -0
- package/dist/src/integrations/ado/ado-dependency-loader.d.ts.map +1 -0
- package/dist/src/integrations/ado/ado-dependency-loader.js +207 -0
- package/dist/src/integrations/ado/ado-dependency-loader.js.map +1 -0
- package/dist/src/integrations/jira/jira-client.d.ts +32 -0
- package/dist/src/integrations/jira/jira-client.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-client.js +81 -0
- package/dist/src/integrations/jira/jira-client.js.map +1 -1
- package/dist/src/integrations/jira/jira-dependency-loader.d.ts +101 -0
- package/dist/src/integrations/jira/jira-dependency-loader.d.ts.map +1 -0
- package/dist/src/integrations/jira/jira-dependency-loader.js +200 -0
- package/dist/src/integrations/jira/jira-dependency-loader.js.map +1 -0
- package/dist/src/integrations/jira/jira-hierarchy-mapper.d.ts +104 -0
- package/dist/src/integrations/jira/jira-hierarchy-mapper.d.ts.map +1 -0
- package/dist/src/integrations/jira/jira-hierarchy-mapper.js +178 -0
- package/dist/src/integrations/jira/jira-hierarchy-mapper.js.map +1 -0
- package/package.json +1 -1
- package/plugins/specweave/.claude-plugin/plugin.json +20 -0
- package/plugins/specweave/agents/architect/AGENT.md +100 -602
- package/plugins/specweave/agents/pm/AGENT.md +96 -597
- package/plugins/specweave/agents/pm/AGENT.md.bak +1893 -0
- package/plugins/specweave/agents/pm/AGENT.md.bak2 +1754 -0
- package/plugins/specweave/commands/check-hooks.md +257 -0
- package/plugins/specweave/commands/migrate-config.md +104 -0
- package/plugins/specweave/hooks/post-edit-spec.sh +202 -31
- package/plugins/specweave/hooks/post-task-completion.sh +225 -228
- package/plugins/specweave/hooks/post-write-spec.sh +207 -31
- package/plugins/specweave/hooks/pre-edit-spec.sh +151 -0
- package/plugins/specweave/hooks/pre-task-completion.sh +5 -7
- package/plugins/specweave/hooks/pre-write-spec.sh +151 -0
- package/plugins/specweave/hooks/test-pretooluse-env.sh +72 -0
- package/plugins/specweave/skills/compliance-architecture/SKILL.md +374 -0
- package/plugins/specweave/skills/external-sync-wizard/SKILL.md +610 -0
- package/plugins/specweave/skills/pm-closure-validation/SKILL.md +541 -0
- package/plugins/specweave/skills/roadmap-planner/SKILL.md +473 -0
- package/plugins/specweave-ado/commands/refresh-cache.js +25 -0
- package/plugins/specweave-ado/commands/refresh-cache.ts +40 -0
- package/plugins/specweave-ado/hooks/post-task-completion.sh +1 -1
- package/plugins/specweave-github/hooks/post-task-completion.sh +1 -1
- package/plugins/specweave-jira/commands/refresh-cache.js +25 -0
- package/plugins/specweave-jira/commands/refresh-cache.ts +40 -0
- package/plugins/specweave-jira/hooks/post-task-completion.sh +1 -1
- package/plugins/specweave-kafka-streams/commands/topology.md +437 -0
- package/plugins/specweave-n8n/commands/workflow-template.md +262 -0
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +228 -6333
|
@@ -49,6 +49,143 @@ export async function checkExistingJiraCredentials(projectPath) {
|
|
|
49
49
|
}
|
|
50
50
|
return null;
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Auto-discover Jira projects via API with CLI-first smart pagination and cache support
|
|
54
|
+
*
|
|
55
|
+
* NEW (v0.24.0): Uses ProjectCountFetcher + ImportStrategyPrompter + AsyncProjectLoader + CacheManager
|
|
56
|
+
* - Checks cache first (24-hour TTL)
|
|
57
|
+
* - Counts projects first (< 1 second) if cache miss
|
|
58
|
+
* - Prompts for import strategy (import-all is default)
|
|
59
|
+
* - Uses smart pagination (50-project batches) for large imports
|
|
60
|
+
* - Caches results for future use
|
|
61
|
+
*
|
|
62
|
+
* @param credentials - Partial credentials (domain, email, token)
|
|
63
|
+
* @param projectRoot - Project root path (for cache manager)
|
|
64
|
+
* @returns Array of selected project keys
|
|
65
|
+
*/
|
|
66
|
+
async function autoDiscoverJiraProjects(credentials, projectRoot) {
|
|
67
|
+
// Step 0: Check cache first (NEW in v0.24.0)
|
|
68
|
+
if (projectRoot) {
|
|
69
|
+
const { CacheManager } = await import('../../../core/cache/cache-manager.js');
|
|
70
|
+
const cacheManager = new CacheManager(projectRoot);
|
|
71
|
+
const cacheKey = `jira-projects-${credentials.domain}`;
|
|
72
|
+
const cachedProjects = await cacheManager.get(cacheKey);
|
|
73
|
+
if (cachedProjects && cachedProjects.length > 0) {
|
|
74
|
+
console.log(chalk.cyan('✨ Using cached project list (24h TTL)\n'));
|
|
75
|
+
return cachedProjects;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Step 1: Count check (< 1 second)
|
|
79
|
+
const { getProjectCount } = await import('../project-count-fetcher.js');
|
|
80
|
+
const countSpinner = ora('Checking accessible Jira projects...').start();
|
|
81
|
+
try {
|
|
82
|
+
const countResult = await getProjectCount({
|
|
83
|
+
provider: 'jira',
|
|
84
|
+
credentials: {
|
|
85
|
+
domain: credentials.domain,
|
|
86
|
+
email: credentials.email,
|
|
87
|
+
token: credentials.token,
|
|
88
|
+
instanceType: credentials.instanceType
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
if (countResult.error) {
|
|
92
|
+
countSpinner.fail('Failed to check project count');
|
|
93
|
+
console.error(chalk.red(` Error: ${countResult.error}\n`));
|
|
94
|
+
throw new Error(countResult.error);
|
|
95
|
+
}
|
|
96
|
+
const totalCount = countResult.accessible;
|
|
97
|
+
countSpinner.succeed(`Found ${totalCount} accessible project(s)`);
|
|
98
|
+
if (totalCount === 0) {
|
|
99
|
+
console.log(chalk.yellow('\n⚠️ No accessible projects found.'));
|
|
100
|
+
console.log(chalk.gray(' Please check your permissions or create a project first.\n'));
|
|
101
|
+
return [];
|
|
102
|
+
}
|
|
103
|
+
// Step 2: Prompt for import strategy (CLI-first: "Import all" is default)
|
|
104
|
+
const { promptImportStrategy } = await import('../import-strategy-prompter.js');
|
|
105
|
+
const strategyResult = await promptImportStrategy({
|
|
106
|
+
totalCount,
|
|
107
|
+
provider: 'jira'
|
|
108
|
+
});
|
|
109
|
+
// Step 3: Execute based on strategy
|
|
110
|
+
let selectedProjects = [];
|
|
111
|
+
if (strategyResult.strategy === 'manual-entry') {
|
|
112
|
+
// Manual entry: return provided keys
|
|
113
|
+
selectedProjects = strategyResult.projectKeys || [];
|
|
114
|
+
}
|
|
115
|
+
else if (strategyResult.strategy === 'import-all') {
|
|
116
|
+
// Import all: use AsyncProjectLoader with smart pagination
|
|
117
|
+
const { AsyncProjectLoader } = await import('../async-project-loader.js');
|
|
118
|
+
const loader = new AsyncProjectLoader({
|
|
119
|
+
domain: credentials.domain,
|
|
120
|
+
email: credentials.email,
|
|
121
|
+
token: credentials.token,
|
|
122
|
+
instanceType: credentials.instanceType
|
|
123
|
+
}, 'jira', {
|
|
124
|
+
batchSize: 50,
|
|
125
|
+
updateFrequency: 5,
|
|
126
|
+
showEta: true
|
|
127
|
+
});
|
|
128
|
+
const result = await loader.fetchAllProjects(totalCount);
|
|
129
|
+
if (result.canceled) {
|
|
130
|
+
console.log(chalk.yellow('\n⚠️ Import canceled by user. Returning partial results.\n'));
|
|
131
|
+
}
|
|
132
|
+
if (result.failed > 0) {
|
|
133
|
+
console.log(chalk.yellow(`\n⚠️ ${result.failed} project(s) failed to load. Check logs for details.\n`));
|
|
134
|
+
console.log(chalk.gray(' Error log: .specweave/logs/import-errors.log\n'));
|
|
135
|
+
}
|
|
136
|
+
// Get project keys
|
|
137
|
+
selectedProjects = result.projects.map(p => p.key);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
// Select specific: load first 50 projects, show checkbox with all pre-checked
|
|
141
|
+
const spinner = ora('Loading first 50 projects...').start();
|
|
142
|
+
try {
|
|
143
|
+
const { AsyncProjectLoader } = await import('../async-project-loader.js');
|
|
144
|
+
const loader = new AsyncProjectLoader({
|
|
145
|
+
domain: credentials.domain,
|
|
146
|
+
email: credentials.email,
|
|
147
|
+
token: credentials.token,
|
|
148
|
+
instanceType: credentials.instanceType
|
|
149
|
+
}, 'jira');
|
|
150
|
+
// Load first 50 projects
|
|
151
|
+
const firstBatch = await loader.fetchBatch(0, Math.min(50, totalCount));
|
|
152
|
+
spinner.succeed(`Loaded ${firstBatch.length} project(s)`);
|
|
153
|
+
// Show checkbox with ALL pre-checked (CLI-first: deselection workflow)
|
|
154
|
+
const { selectedProjects: selected } = await inquirer.prompt({
|
|
155
|
+
type: 'checkbox',
|
|
156
|
+
name: 'selectedProjects',
|
|
157
|
+
message: 'Select Jira projects to sync (Space to deselect, Enter to confirm):',
|
|
158
|
+
choices: firstBatch.map((p) => ({
|
|
159
|
+
name: `${p.key} - ${p.name}`,
|
|
160
|
+
value: p.key,
|
|
161
|
+
checked: true // CLI-first: all pre-checked by default
|
|
162
|
+
}))
|
|
163
|
+
});
|
|
164
|
+
selectedProjects = selected;
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
spinner.fail('Failed to load projects');
|
|
168
|
+
console.error(chalk.red(` Error: ${error.message}\n`));
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// Step 4: Cache the results (NEW in v0.24.0)
|
|
173
|
+
if (projectRoot && selectedProjects.length > 0) {
|
|
174
|
+
const { CacheManager } = await import('../../../core/cache/cache-manager.js');
|
|
175
|
+
const cacheManager = new CacheManager(projectRoot);
|
|
176
|
+
const cacheKey = `jira-projects-${credentials.domain}`;
|
|
177
|
+
await cacheManager.set(cacheKey, selectedProjects);
|
|
178
|
+
}
|
|
179
|
+
return selectedProjects;
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
if (countSpinner.isSpinning) {
|
|
183
|
+
countSpinner.fail('Failed to discover projects');
|
|
184
|
+
}
|
|
185
|
+
console.error(chalk.red(` Error: ${error.message}\n`));
|
|
186
|
+
throw error;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
52
189
|
/**
|
|
53
190
|
* Prompt user for Jira credentials
|
|
54
191
|
*
|
|
@@ -57,9 +194,10 @@ export async function checkExistingJiraCredentials(projectPath) {
|
|
|
57
194
|
* - Jira Server/Data Center (self-hosted)
|
|
58
195
|
*
|
|
59
196
|
* @param language - User's language
|
|
197
|
+
* @param projectRoot - Project root path (optional, for cache manager)
|
|
60
198
|
* @returns Credentials or null if skipped
|
|
61
199
|
*/
|
|
62
|
-
export async function promptJiraCredentials(language) {
|
|
200
|
+
export async function promptJiraCredentials(language, projectRoot) {
|
|
63
201
|
const locale = getLocaleManager(language);
|
|
64
202
|
console.log(chalk.white('\n📋 Jira Integration Setup\n'));
|
|
65
203
|
console.log(chalk.gray('SpecWeave will sync increments with Jira Issues.\n'));
|
|
@@ -74,31 +212,7 @@ export async function promptJiraCredentials(language) {
|
|
|
74
212
|
],
|
|
75
213
|
default: 'cloud'
|
|
76
214
|
}]);
|
|
77
|
-
// Step 1.5:
|
|
78
|
-
console.log(chalk.cyan('\n📂 How are teams organized in Jira?\n'));
|
|
79
|
-
const { strategy } = await inquirer.prompt([{
|
|
80
|
-
type: 'list',
|
|
81
|
-
name: 'strategy',
|
|
82
|
-
message: 'Select team mapping strategy:',
|
|
83
|
-
choices: [
|
|
84
|
-
{
|
|
85
|
-
name: 'Project-per-team (separate projects for each team)',
|
|
86
|
-
value: 'project-per-team',
|
|
87
|
-
short: 'Project-per-team'
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
name: 'Component-based (one project, multiple components)',
|
|
91
|
-
value: 'component-based',
|
|
92
|
-
short: 'Component-based'
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
name: 'Board-based (one project, filtered boards)',
|
|
96
|
-
value: 'board-based',
|
|
97
|
-
short: 'Board-based'
|
|
98
|
-
}
|
|
99
|
-
],
|
|
100
|
-
default: 'project-per-team'
|
|
101
|
-
}]);
|
|
215
|
+
// Step 1.5: Note - Strategy will be auto-detected after project selection
|
|
102
216
|
// Step 2: Show setup instructions
|
|
103
217
|
console.log(chalk.cyan('\n📋 Quick Setup:'));
|
|
104
218
|
if (instanceType === 'cloud') {
|
|
@@ -169,100 +283,38 @@ export async function promptJiraCredentials(language) {
|
|
|
169
283
|
}
|
|
170
284
|
}
|
|
171
285
|
];
|
|
172
|
-
//
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
for (const project of projects) {
|
|
185
|
-
if (!/^[A-Z0-9]{2,10}$/.test(project)) {
|
|
186
|
-
return `Invalid project key "${project}". Must be 2-10 uppercase letters/numbers.`;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
return true;
|
|
190
|
-
}
|
|
191
|
-
});
|
|
286
|
+
// Get basic credentials first
|
|
287
|
+
const answers = await inquirer.prompt(questions);
|
|
288
|
+
// Auto-discover projects using the credentials (with cache support)
|
|
289
|
+
const selectedProjects = await autoDiscoverJiraProjects({
|
|
290
|
+
domain: answers.domain,
|
|
291
|
+
email: answers.email,
|
|
292
|
+
token: answers.token,
|
|
293
|
+
instanceType: instanceType
|
|
294
|
+
}, projectRoot);
|
|
295
|
+
if (selectedProjects.length === 0) {
|
|
296
|
+
console.log(chalk.yellow('⏭️ No projects selected. Jira setup cancelled.\n'));
|
|
297
|
+
return null;
|
|
192
298
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
validate: (input) => {
|
|
199
|
-
if (!input || input.trim() === '') {
|
|
200
|
-
return 'Project key is required';
|
|
201
|
-
}
|
|
202
|
-
if (!/^[A-Z0-9]{2,10}$/.test(input)) {
|
|
203
|
-
return 'Project key must be 2-10 uppercase letters/numbers';
|
|
204
|
-
}
|
|
205
|
-
return true;
|
|
206
|
-
}
|
|
207
|
-
}, {
|
|
208
|
-
type: 'input',
|
|
209
|
-
name: 'components',
|
|
210
|
-
message: 'Component names (comma-separated, e.g., Frontend,Backend,Mobile):',
|
|
211
|
-
validate: (input) => {
|
|
212
|
-
if (!input || input.trim() === '') {
|
|
213
|
-
return 'At least one component is required';
|
|
214
|
-
}
|
|
215
|
-
return true;
|
|
216
|
-
}
|
|
217
|
-
});
|
|
299
|
+
// Auto-detect strategy based on number of selected projects
|
|
300
|
+
let strategy;
|
|
301
|
+
if (selectedProjects.length === 1) {
|
|
302
|
+
strategy = 'single-project';
|
|
303
|
+
console.log(chalk.gray(`\n📊 Detected strategy: Single project (${selectedProjects[0]})\n`));
|
|
218
304
|
}
|
|
219
|
-
else
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
name: 'project',
|
|
223
|
-
message: 'Project key (e.g., MAIN):',
|
|
224
|
-
validate: (input) => {
|
|
225
|
-
if (!input || input.trim() === '') {
|
|
226
|
-
return 'Project key is required';
|
|
227
|
-
}
|
|
228
|
-
if (!/^[A-Z0-9]{2,10}$/.test(input)) {
|
|
229
|
-
return 'Project key must be 2-10 uppercase letters/numbers';
|
|
230
|
-
}
|
|
231
|
-
return true;
|
|
232
|
-
}
|
|
233
|
-
}, {
|
|
234
|
-
type: 'input',
|
|
235
|
-
name: 'boards',
|
|
236
|
-
message: 'Board IDs or Names (comma-separated, e.g., "123,456" or "Frontend,Backend,Mobile"):',
|
|
237
|
-
validate: (input) => {
|
|
238
|
-
if (!input || input.trim() === '') {
|
|
239
|
-
return 'At least one board is required';
|
|
240
|
-
}
|
|
241
|
-
return true;
|
|
242
|
-
}
|
|
243
|
-
});
|
|
305
|
+
else {
|
|
306
|
+
strategy = 'project-per-team';
|
|
307
|
+
console.log(chalk.gray(`\n📊 Detected strategy: Project-per-team (${selectedProjects.length} projects)\n`));
|
|
244
308
|
}
|
|
245
|
-
|
|
246
|
-
// Build credentials based on strategy
|
|
309
|
+
// Build credentials with auto-discovered projects
|
|
247
310
|
const credentials = {
|
|
248
311
|
token: answers.token,
|
|
249
312
|
email: answers.email,
|
|
250
313
|
domain: answers.domain,
|
|
251
314
|
instanceType: instanceType,
|
|
252
|
-
strategy: strategy
|
|
315
|
+
strategy: strategy,
|
|
316
|
+
projects: selectedProjects
|
|
253
317
|
};
|
|
254
|
-
// Add strategy-specific fields
|
|
255
|
-
if (strategy === 'project-per-team') {
|
|
256
|
-
credentials.projects = answers.projects.split(',').map((p) => p.trim());
|
|
257
|
-
}
|
|
258
|
-
else if (strategy === 'component-based') {
|
|
259
|
-
credentials.project = answers.project;
|
|
260
|
-
credentials.components = answers.components.split(',').map((c) => c.trim());
|
|
261
|
-
}
|
|
262
|
-
else if (strategy === 'board-based') {
|
|
263
|
-
credentials.project = answers.project;
|
|
264
|
-
credentials.boards = answers.boards.split(',').map((b) => b.trim());
|
|
265
|
-
}
|
|
266
318
|
return credentials;
|
|
267
319
|
}
|
|
268
320
|
/**
|
|
@@ -334,46 +386,61 @@ export async function validateJiraConnection(credentials, maxRetries = 3) {
|
|
|
334
386
|
/**
|
|
335
387
|
* Get Jira environment variables for .env file
|
|
336
388
|
*
|
|
389
|
+
* ONLY SECRETS - All non-sensitive config goes to config.json via getJiraConfig()
|
|
390
|
+
*
|
|
337
391
|
* @param credentials - Jira credentials
|
|
338
|
-
* @returns Array of key-value pairs for .env
|
|
392
|
+
* @returns Array of key-value pairs for .env (secrets only)
|
|
339
393
|
*/
|
|
340
394
|
export function getJiraEnvVars(credentials) {
|
|
341
|
-
|
|
395
|
+
// ONLY secrets (tokens, emails)
|
|
396
|
+
return [
|
|
342
397
|
{ key: 'JIRA_API_TOKEN', value: credentials.token },
|
|
343
|
-
{ key: 'JIRA_EMAIL', value: credentials.email }
|
|
344
|
-
{ key: 'JIRA_DOMAIN', value: credentials.domain }
|
|
398
|
+
{ key: 'JIRA_EMAIL', value: credentials.email }
|
|
345
399
|
];
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Get Jira configuration for config.json
|
|
403
|
+
*
|
|
404
|
+
* Extracts non-sensitive configuration from credentials
|
|
405
|
+
*
|
|
406
|
+
* @param credentials - Jira credentials
|
|
407
|
+
* @returns Partial config object for config.json
|
|
408
|
+
*/
|
|
409
|
+
export function getJiraConfig(credentials) {
|
|
410
|
+
const config = {
|
|
411
|
+
issueTracker: {
|
|
412
|
+
provider: 'jira',
|
|
413
|
+
domain: credentials.domain,
|
|
414
|
+
instanceType: credentials.instanceType
|
|
415
|
+
}
|
|
416
|
+
};
|
|
346
417
|
// Add strategy if specified
|
|
347
418
|
if (credentials.strategy) {
|
|
348
|
-
|
|
419
|
+
config.issueTracker.strategy = credentials.strategy;
|
|
349
420
|
}
|
|
350
421
|
// Strategy 1: Project-per-team
|
|
351
422
|
if (credentials.strategy === 'project-per-team' && credentials.projects) {
|
|
352
|
-
|
|
423
|
+
config.issueTracker.projects = credentials.projects.map((key) => ({ key }));
|
|
353
424
|
}
|
|
354
425
|
// Strategy 2: Component-based
|
|
355
426
|
else if (credentials.strategy === 'component-based') {
|
|
356
427
|
if (credentials.project) {
|
|
357
|
-
|
|
428
|
+
config.issueTracker.project = credentials.project;
|
|
358
429
|
}
|
|
359
430
|
if (credentials.components) {
|
|
360
|
-
|
|
431
|
+
config.issueTracker.components = credentials.components;
|
|
361
432
|
}
|
|
362
433
|
}
|
|
363
434
|
// Strategy 3: Board-based
|
|
364
435
|
else if (credentials.strategy === 'board-based') {
|
|
365
436
|
if (credentials.project) {
|
|
366
|
-
|
|
437
|
+
config.issueTracker.project = credentials.project;
|
|
367
438
|
}
|
|
368
439
|
if (credentials.boards) {
|
|
369
|
-
|
|
440
|
+
config.issueTracker.boards = credentials.boards.map((id) => ({ id }));
|
|
370
441
|
}
|
|
371
442
|
}
|
|
372
|
-
|
|
373
|
-
if (credentials.instanceType === 'server') {
|
|
374
|
-
vars.push({ key: 'JIRA_INSTANCE_TYPE', value: 'server' });
|
|
375
|
-
}
|
|
376
|
-
return vars;
|
|
443
|
+
return config;
|
|
377
444
|
}
|
|
378
445
|
/**
|
|
379
446
|
* Show Jira setup complete message
|
|
@@ -382,12 +449,10 @@ export function getJiraEnvVars(credentials) {
|
|
|
382
449
|
*/
|
|
383
450
|
export function showJiraSetupComplete(language) {
|
|
384
451
|
const locale = getLocaleManager(language);
|
|
385
|
-
console.log(chalk.green.bold('\n✅ Jira integration
|
|
386
|
-
console.log(chalk.
|
|
387
|
-
console.log(chalk.
|
|
388
|
-
console.log(chalk.gray('
|
|
389
|
-
console.log(chalk.cyan('💡 Tip: Use /specweave:increment "feature" to create an increment'));
|
|
390
|
-
console.log(chalk.gray(' It will automatically sync to Jira Issues!\n'));
|
|
452
|
+
console.log(chalk.green.bold('\n✅ Jira integration configured!\n'));
|
|
453
|
+
console.log(chalk.gray('Credentials saved to .env (gitignored)\n'));
|
|
454
|
+
console.log(chalk.cyan('💡 Tip: Run /specweave:increment "feature" to create an increment'));
|
|
455
|
+
console.log(chalk.gray(' It will automatically sync to Jira!\n'));
|
|
391
456
|
}
|
|
392
457
|
/**
|
|
393
458
|
* Show Jira setup skipped message
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jira.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/issue-tracker/jira.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jira.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/issue-tracker/jira.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Progress Tracker
|
|
3
|
+
*
|
|
4
|
+
* Real-time progress tracking with percentage, ETA estimation, and final summary.
|
|
5
|
+
* Optimized for CLI workflows with throttled updates to prevent console spam.
|
|
6
|
+
*
|
|
7
|
+
* @module cli/helpers/progress-tracker
|
|
8
|
+
*/
|
|
9
|
+
import { Logger } from '../../utils/logger.js';
|
|
10
|
+
/**
|
|
11
|
+
* Progress tracker options
|
|
12
|
+
*/
|
|
13
|
+
export interface ProgressOptions {
|
|
14
|
+
total: number;
|
|
15
|
+
updateFrequency?: number;
|
|
16
|
+
showEta?: boolean;
|
|
17
|
+
progressBarWidth?: number;
|
|
18
|
+
logger?: Logger;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Item status for progress tracking
|
|
22
|
+
*/
|
|
23
|
+
export type ItemStatus = 'success' | 'failure' | 'skip';
|
|
24
|
+
/**
|
|
25
|
+
* Progress summary
|
|
26
|
+
*/
|
|
27
|
+
export interface ProgressSummary {
|
|
28
|
+
total: number;
|
|
29
|
+
completed: number;
|
|
30
|
+
succeeded: number;
|
|
31
|
+
failed: number;
|
|
32
|
+
skipped: number;
|
|
33
|
+
elapsed: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Progress Tracker
|
|
37
|
+
*
|
|
38
|
+
* Tracks batch operation progress with:
|
|
39
|
+
* - Real-time percentage updates
|
|
40
|
+
* - ETA estimation (rolling average of last 10 items)
|
|
41
|
+
* - Throttled console updates (every N items)
|
|
42
|
+
* - Final summary (succeeded/failed/skipped counts)
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const tracker = new ProgressTracker({ total: 127, updateFrequency: 5 });
|
|
47
|
+
*
|
|
48
|
+
* for (const project of projects) {
|
|
49
|
+
* try {
|
|
50
|
+
* await importProject(project);
|
|
51
|
+
* tracker.update(project.key, 'success');
|
|
52
|
+
* } catch (error) {
|
|
53
|
+
* tracker.update(project.key, 'failure');
|
|
54
|
+
* }
|
|
55
|
+
* }
|
|
56
|
+
*
|
|
57
|
+
* tracker.finish();
|
|
58
|
+
* // Output: ✅ Imported 125/127 projects (2 failed, 0 skipped) in 28s
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare class ProgressTracker {
|
|
62
|
+
private total;
|
|
63
|
+
private updateFrequency;
|
|
64
|
+
private showEta;
|
|
65
|
+
private progressBarWidth;
|
|
66
|
+
private logger;
|
|
67
|
+
private completed;
|
|
68
|
+
private succeeded;
|
|
69
|
+
private failed;
|
|
70
|
+
private skipped;
|
|
71
|
+
private startTime;
|
|
72
|
+
private lastUpdateTime;
|
|
73
|
+
private itemTimestamps;
|
|
74
|
+
private lastRenderedProgress;
|
|
75
|
+
constructor(options: ProgressOptions);
|
|
76
|
+
/**
|
|
77
|
+
* Update progress with item result
|
|
78
|
+
*
|
|
79
|
+
* @param item - Item identifier (e.g., project key)
|
|
80
|
+
* @param status - Item status (success, failure, skip)
|
|
81
|
+
*/
|
|
82
|
+
update(item: string, status: ItemStatus): void;
|
|
83
|
+
/**
|
|
84
|
+
* Render progress bar to console
|
|
85
|
+
*/
|
|
86
|
+
private render;
|
|
87
|
+
/**
|
|
88
|
+
* Generate ASCII progress bar
|
|
89
|
+
*
|
|
90
|
+
* @param percentage - Completion percentage (0-100)
|
|
91
|
+
* @returns ASCII progress bar string
|
|
92
|
+
*/
|
|
93
|
+
private getProgressBar;
|
|
94
|
+
/**
|
|
95
|
+
* Calculate ETA using rolling average
|
|
96
|
+
*
|
|
97
|
+
* @returns ETA string (e.g., "~2m remaining") or empty if not enough data
|
|
98
|
+
*/
|
|
99
|
+
private getEta;
|
|
100
|
+
/**
|
|
101
|
+
* Finish tracking and show final summary
|
|
102
|
+
*/
|
|
103
|
+
finish(): void;
|
|
104
|
+
/**
|
|
105
|
+
* Cancel tracking (for use with cancelation)
|
|
106
|
+
*/
|
|
107
|
+
cancel(): void;
|
|
108
|
+
/**
|
|
109
|
+
* Get current progress summary
|
|
110
|
+
*
|
|
111
|
+
* @returns Progress summary object
|
|
112
|
+
*/
|
|
113
|
+
getSummary(): ProgressSummary;
|
|
114
|
+
/**
|
|
115
|
+
* Get current percentage (for testing)
|
|
116
|
+
*
|
|
117
|
+
* @returns Completion percentage (0-100)
|
|
118
|
+
*/
|
|
119
|
+
getPercentage(): number;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=progress-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-tracker.d.ts","sourceRoot":"","sources":["../../../../src/cli/helpers/progress-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAK;IAEpB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAAgB;IAEtC,OAAO,CAAC,oBAAoB,CAAM;gBAEtB,OAAO,EAAE,eAAe;IAWpC;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IA0B9C;;OAEG;IACH,OAAO,CAAC,MAAM;IAgBd;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACH,OAAO,CAAC,MAAM;IA+Bd;;OAEG;IACH,MAAM,IAAI,IAAI;IA2Bd;;OAEG;IACH,MAAM,IAAI,IAAI;IAgBd;;;;OAIG;IACH,UAAU,IAAI,eAAe;IAW7B;;;;OAIG;IACH,aAAa,IAAI,MAAM;CAGxB"}
|