specweave 1.0.129 → 1.0.131

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 (77) hide show
  1. package/README.md +12 -2
  2. package/bin/specweave.js +19 -0
  3. package/dist/src/cli/commands/update-instructions.d.ts +1 -0
  4. package/dist/src/cli/commands/update-instructions.d.ts.map +1 -1
  5. package/dist/src/cli/commands/update-instructions.js +71 -0
  6. package/dist/src/cli/commands/update-instructions.js.map +1 -1
  7. package/dist/src/cli/commands/update.d.ts +47 -0
  8. package/dist/src/cli/commands/update.d.ts.map +1 -0
  9. package/dist/src/cli/commands/update.js +344 -0
  10. package/dist/src/cli/commands/update.js.map +1 -0
  11. package/dist/src/cli/helpers/init/directory-structure.d.ts.map +1 -1
  12. package/dist/src/cli/helpers/init/directory-structure.js +39 -4
  13. package/dist/src/cli/helpers/init/directory-structure.js.map +1 -1
  14. package/dist/src/cli/helpers/init/gitignore-generator.d.ts +72 -0
  15. package/dist/src/cli/helpers/init/gitignore-generator.d.ts.map +1 -0
  16. package/dist/src/cli/helpers/init/gitignore-generator.js +685 -0
  17. package/dist/src/cli/helpers/init/gitignore-generator.js.map +1 -0
  18. package/dist/src/cli/helpers/init/index.d.ts +1 -0
  19. package/dist/src/cli/helpers/init/index.d.ts.map +1 -1
  20. package/dist/src/cli/helpers/init/index.js +2 -0
  21. package/dist/src/cli/helpers/init/index.js.map +1 -1
  22. package/dist/src/cli/helpers/init/testing-config.js +25 -25
  23. package/dist/src/cli/helpers/init/testing-config.js.map +1 -1
  24. package/dist/src/config/types.d.ts +4 -4
  25. package/dist/src/core/deployment/project-analyzer.d.ts.map +1 -1
  26. package/dist/src/core/deployment/project-analyzer.js +2 -1
  27. package/dist/src/core/deployment/project-analyzer.js.map +1 -1
  28. package/dist/src/core/lazy-loading/keyword-detector.d.ts +35 -5
  29. package/dist/src/core/lazy-loading/keyword-detector.d.ts.map +1 -1
  30. package/dist/src/core/lazy-loading/keyword-detector.js +516 -32
  31. package/dist/src/core/lazy-loading/keyword-detector.js.map +1 -1
  32. package/dist/src/core/plugins/plugin-loader.d.ts +14 -0
  33. package/dist/src/core/plugins/plugin-loader.d.ts.map +1 -1
  34. package/dist/src/core/plugins/plugin-loader.js +53 -0
  35. package/dist/src/core/plugins/plugin-loader.js.map +1 -1
  36. package/dist/src/core/reflection/learning-validator.d.ts +102 -0
  37. package/dist/src/core/reflection/learning-validator.d.ts.map +1 -0
  38. package/dist/src/core/reflection/learning-validator.js +351 -0
  39. package/dist/src/core/reflection/learning-validator.js.map +1 -0
  40. package/dist/src/core/skills/activation-tracker.d.ts +61 -0
  41. package/dist/src/core/skills/activation-tracker.d.ts.map +1 -0
  42. package/dist/src/core/skills/activation-tracker.js +150 -0
  43. package/dist/src/core/skills/activation-tracker.js.map +1 -0
  44. package/dist/src/core/skills/api-validator.d.ts +192 -0
  45. package/dist/src/core/skills/api-validator.d.ts.map +1 -0
  46. package/dist/src/core/skills/api-validator.js +434 -0
  47. package/dist/src/core/skills/api-validator.js.map +1 -0
  48. package/dist/src/core/skills/skill-judge.d.ts +108 -0
  49. package/dist/src/core/skills/skill-judge.d.ts.map +1 -0
  50. package/dist/src/core/skills/skill-judge.js +451 -0
  51. package/dist/src/core/skills/skill-judge.js.map +1 -0
  52. package/dist/src/core/skills/skill-validator.d.ts +174 -0
  53. package/dist/src/core/skills/skill-validator.d.ts.map +1 -0
  54. package/dist/src/core/skills/skill-validator.js +468 -0
  55. package/dist/src/core/skills/skill-validator.js.map +1 -0
  56. package/dist/src/init/architecture/types.d.ts +2 -2
  57. package/package.json +1 -1
  58. package/plugins/PLUGINS-INDEX.md +13 -3
  59. package/plugins/specweave/commands/judge-llm.md +37 -0
  60. package/plugins/specweave/commands/npm.md +697 -0
  61. package/plugins/specweave/hooks/stop-auto.sh +173 -4
  62. package/plugins/specweave/hooks/user-prompt-submit.sh +21 -2
  63. package/plugins/specweave/hooks/validate-skill-activations.sh +259 -0
  64. package/plugins/specweave/lib/vendor/utils/credential-masker.d.ts +118 -0
  65. package/plugins/specweave/lib/vendor/utils/credential-masker.js +275 -0
  66. package/plugins/specweave/lib/vendor/utils/credential-masker.js.map +1 -0
  67. package/plugins/specweave/skills/self-validating-example/SKILL.md +145 -0
  68. package/plugins/specweave-infrastructure/skills/deploy-router/SKILL.md +162 -0
  69. package/plugins/specweave-testing/.claude-plugin/plugin.json +7 -2
  70. package/plugins/specweave-testing/commands/image.md +124 -0
  71. package/plugins/specweave-testing/commands/ui-automate.md +176 -0
  72. package/plugins/specweave-testing/commands/ui-inspect.md +70 -0
  73. package/plugins/specweave-testing/skills/browser-automation/SKILL.md +314 -0
  74. package/plugins/specweave-testing/skills/image-generation/SKILL.md +386 -0
  75. package/plugins/specweave-testing/skills/ui-testing/SKILL.md +604 -0
  76. package/plugins/specweave-testing/skills/visual-regression/SKILL.md +728 -0
  77. package/plugins/specweave-ui/.claude-plugin/plugin.json +3 -1
package/README.md CHANGED
@@ -207,8 +207,9 @@ Then in Claude Code:
207
207
 
208
208
  **Troubleshooting** - if commands/skills stop working:
209
209
  ```bash
210
- specweave refresh-marketplace # Reinstall all plugins from GitHub
211
- specweave update-instructions # Regenerate CLAUDE.md
210
+ specweave update # Full update: CLI + instructions + config (recommended)
211
+ specweave update --plugins # Also refresh marketplace plugins
212
+ specweave refresh-marketplace # Reinstall all plugins from GitHub (standalone)
212
213
  ```
213
214
 
214
215
  **[Full Quickstart Guide ->](https://spec-weave.com/docs/guides/getting-started/quickstart)**
@@ -384,6 +385,15 @@ Anthropic doesn't just use standards — they **define** them. SpecWeave builds
384
385
  | `/sw:sync-progress` | Push to GitHub/JIRA/ADO |
385
386
  | `/sw:cancel-auto` | Stop autonomous session |
386
387
 
388
+ ### CLI Commands
389
+
390
+ | Command | Purpose |
391
+ |---------|---------|
392
+ | `specweave update` | **Full update**: CLI (self-update via npm), instructions, config |
393
+ | `specweave update --plugins` | Update + refresh marketplace plugins |
394
+ | `specweave refresh-marketplace` | Reinstall plugins from GitHub |
395
+ | `specweave init .` | Initialize project |
396
+
387
397
  **[53 total commands ->](https://spec-weave.com/docs/commands/overview)**
388
398
 
389
399
  ---
package/bin/specweave.js CHANGED
@@ -508,6 +508,21 @@ program
508
508
  await updateInstructionsCommand(options);
509
509
  });
510
510
 
511
+ // Unified update command - One-stop update for everything (self-updates CLI by default)
512
+ program
513
+ .command('update')
514
+ .description('Update SpecWeave: CLI (via npm), instructions, config, and optionally plugins')
515
+ .option('--no-self', 'Skip CLI self-update via npm')
516
+ .option('--plugins', 'Also refresh marketplace plugins')
517
+ .option('--all', 'Full update including all plugins (not just router)')
518
+ .option('--check', 'Dry run - show what would change without making changes')
519
+ .option('-v, --verbose', 'Show detailed output')
520
+ .option('-f, --force', 'Force refresh even if up to date')
521
+ .action(async (options) => {
522
+ const { updateCommand } = await import('../dist/src/cli/commands/update.js');
523
+ await updateCommand(options);
524
+ });
525
+
511
526
  // Check discipline command - Validate increment discipline
512
527
  program
513
528
  .command('check-discipline')
@@ -1098,6 +1113,10 @@ program.on('--help', () => {
1098
1113
  console.log(' $ specweave refresh-marketplace --local # Use local dev version');
1099
1114
  console.log(' $ specweave migrate-memory # Migrate legacy memory files');
1100
1115
  console.log(' $ specweave migrate-memory --dry-run # Preview migration');
1116
+ console.log(' $ specweave update # Update CLI + instructions + config');
1117
+ console.log(' $ specweave update --plugins # Also refresh marketplace plugins');
1118
+ console.log(' $ specweave update --no-self # Skip CLI update, only project files');
1119
+ console.log(' $ specweave update --check # Dry run - preview changes');
1101
1120
  console.log(' $ specweave load-plugins # Load all plugins');
1102
1121
  console.log(' $ specweave load-plugins github # Load GitHub plugin group');
1103
1122
  console.log(' $ specweave load-plugins infra --force # Force reload infra plugins');
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Smart merge for CLAUDE.md and AGENTS.md instruction files.
5
5
  * Preserves user customizations while updating SpecWeave sections.
6
+ * Also migrates config.json to add missing sections (v1.0.131+).
6
7
  */
7
8
  interface UpdateInstructionsOptions {
8
9
  dryRun?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"update-instructions.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/update-instructions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,UAAU,yBAAyB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,IAAI,CAAC,CA2Df"}
1
+ {"version":3,"file":"update-instructions.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/update-instructions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,UAAU,yBAAyB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAeD;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,IAAI,CAAC,CAmEf"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Smart merge for CLAUDE.md and AGENTS.md instruction files.
5
5
  * Preserves user customizations while updating SpecWeave sections.
6
+ * Also migrates config.json to add missing sections (v1.0.131+).
6
7
  */
7
8
  import * as fs from '../../utils/fs-native.js';
8
9
  import * as path from 'path';
@@ -11,6 +12,18 @@ import { mergeInstructionFile, parseTemplateSections, getPackageVersion } from '
11
12
  import { findSourceDir } from '../helpers/init/path-utils.js';
12
13
  import { getDirname } from '../../utils/esm-helpers.js';
13
14
  const __dirname = getDirname(import.meta.url);
15
+ /**
16
+ * Default auto configuration (v1.0.131+)
17
+ * Added to old projects missing this section
18
+ */
19
+ const DEFAULT_AUTO_CONFIG = {
20
+ enabled: true,
21
+ maxRetries: 20,
22
+ requireTests: false,
23
+ requireValidation: true,
24
+ requireJudgeLLM: false,
25
+ skipQualityGates: false,
26
+ };
14
27
  /**
15
28
  * CLI command to update CLAUDE.md and AGENTS.md with smart merge
16
29
  */
@@ -20,6 +33,8 @@ export async function updateInstructionsCommand(options = {}) {
20
33
  console.log(chalk.blue('\n📄 Updating Instruction Files'));
21
34
  console.log(chalk.gray(' Version: ' + version));
22
35
  console.log(chalk.gray(' Project: ' + projectPath + '\n'));
36
+ // Migrate config.json (add missing sections)
37
+ const configMigrated = await migrateConfig(projectPath, options);
23
38
  // Find templates directory
24
39
  const templatesDir = findSourceDir('templates', __dirname);
25
40
  if (!templatesDir || !fs.existsSync(templatesDir)) {
@@ -34,6 +49,10 @@ export async function updateInstructionsCommand(options = {}) {
34
49
  console.log(chalk.blue('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
35
50
  console.log(chalk.blue(' Summary'));
36
51
  console.log(chalk.blue('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'));
52
+ if (configMigrated.sectionsAdded > 0) {
53
+ console.log(' config.json: ' + chalk.blue('migrated'));
54
+ console.log(chalk.gray(' Added ' + configMigrated.sectionsAdded + ' missing section(s): ' + configMigrated.sections.join(', ')));
55
+ }
37
56
  if (claudeResult.action !== 'skipped') {
38
57
  console.log(' CLAUDE.md: ' + formatAction(claudeResult.action));
39
58
  if (claudeResult.preserved > 0) {
@@ -131,4 +150,56 @@ function formatAction(action) {
131
150
  return action;
132
151
  }
133
152
  }
153
+ /**
154
+ * Migrate config.json to add missing sections
155
+ *
156
+ * v1.0.131+: Adds 'auto' section for stop hook circuit breaker config
157
+ *
158
+ * This is safe and idempotent:
159
+ * - Only adds sections that don't exist
160
+ * - Preserves all existing configuration
161
+ * - Can be run multiple times
162
+ */
163
+ async function migrateConfig(projectPath, options) {
164
+ const configPath = path.join(projectPath, '.specweave', 'config.json');
165
+ const sectionsAdded = [];
166
+ if (!fs.existsSync(configPath)) {
167
+ if (options.verbose) {
168
+ console.log(chalk.gray(' ⊘ config.json: not found, skipping migration'));
169
+ }
170
+ return { sectionsAdded: 0, sections: [] };
171
+ }
172
+ try {
173
+ const configContent = fs.readFileSync(configPath, 'utf-8');
174
+ const config = JSON.parse(configContent);
175
+ let modified = false;
176
+ // Add 'auto' section if missing (v1.0.131+)
177
+ if (!config.auto) {
178
+ config.auto = DEFAULT_AUTO_CONFIG;
179
+ sectionsAdded.push('auto');
180
+ modified = true;
181
+ }
182
+ // Future migrations can be added here:
183
+ // if (!config.someOtherSection) { ... }
184
+ if (modified) {
185
+ if (options.dryRun) {
186
+ console.log(chalk.yellow(' ○ config.json: would add missing sections: ' + sectionsAdded.join(', ')));
187
+ }
188
+ else {
189
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
190
+ console.log(chalk.blue(' ✓ config.json: added missing sections'));
191
+ }
192
+ }
193
+ else if (options.verbose) {
194
+ console.log(chalk.gray(' ⊘ config.json: already up to date'));
195
+ }
196
+ return { sectionsAdded: sectionsAdded.length, sections: sectionsAdded };
197
+ }
198
+ catch (error) {
199
+ if (options.verbose) {
200
+ console.log(chalk.yellow(' ⚠ config.json: could not parse, skipping migration'));
201
+ }
202
+ return { sectionsAdded: 0, sections: [] };
203
+ }
204
+ }
134
205
  //# sourceMappingURL=update-instructions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-instructions.js","sourceRoot":"","sources":["../../../../src/cli/commands/update-instructions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-instructions.js","sourceRoot":"","sources":["../../../../src/cli/commands/update-instructions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SpecWeave Update Command
4
+ *
5
+ * Unified update command for keeping SpecWeave up-to-date.
6
+ * This is the recommended command for users to run when updating.
7
+ *
8
+ * What it does (by default):
9
+ * 1. Self-updates SpecWeave CLI via npm (npm i -g specweave@latest)
10
+ * 2. Migrates config.json (adds missing sections like 'auto')
11
+ * 3. Updates instruction files (CLAUDE.md, AGENTS.md)
12
+ * 4. Validates project health
13
+ * 5. Refreshes marketplace plugins (optional, with --plugins)
14
+ *
15
+ * Usage:
16
+ * specweave update # Update CLI + instructions + config
17
+ * specweave update --plugins # Also refresh marketplace plugins
18
+ * specweave update --all # Full update including all plugins
19
+ * specweave update --no-self # Skip CLI update, only project files
20
+ * specweave update --check # Dry run - show what would change
21
+ *
22
+ * @since 1.0.131
23
+ */
24
+ interface UpdateOptions {
25
+ /** Also refresh marketplace plugins */
26
+ plugins?: boolean;
27
+ /** Install all plugins (not just router) */
28
+ all?: boolean;
29
+ /** Dry run - show what would change */
30
+ check?: boolean;
31
+ /** Verbose output */
32
+ verbose?: boolean;
33
+ /** Force refresh even if up to date */
34
+ force?: boolean;
35
+ /** Skip self-update of specweave CLI (default: false, CLI updates by default) */
36
+ noSelf?: boolean;
37
+ }
38
+ /**
39
+ * Main update command
40
+ */
41
+ export declare function updateCommand(options?: UpdateOptions): Promise<void>;
42
+ /**
43
+ * Register command with Commander
44
+ */
45
+ export declare function registerUpdateCommand(program: import('commander').Command): void;
46
+ export {};
47
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/update.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAWH,UAAU,aAAa;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAYD;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+J9E;AAgLD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,WAAW,EAAE,OAAO,GAAG,IAAI,CAahF"}
@@ -0,0 +1,344 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SpecWeave Update Command
4
+ *
5
+ * Unified update command for keeping SpecWeave up-to-date.
6
+ * This is the recommended command for users to run when updating.
7
+ *
8
+ * What it does (by default):
9
+ * 1. Self-updates SpecWeave CLI via npm (npm i -g specweave@latest)
10
+ * 2. Migrates config.json (adds missing sections like 'auto')
11
+ * 3. Updates instruction files (CLAUDE.md, AGENTS.md)
12
+ * 4. Validates project health
13
+ * 5. Refreshes marketplace plugins (optional, with --plugins)
14
+ *
15
+ * Usage:
16
+ * specweave update # Update CLI + instructions + config
17
+ * specweave update --plugins # Also refresh marketplace plugins
18
+ * specweave update --all # Full update including all plugins
19
+ * specweave update --no-self # Skip CLI update, only project files
20
+ * specweave update --check # Dry run - show what would change
21
+ *
22
+ * @since 1.0.131
23
+ */
24
+ import chalk from 'chalk';
25
+ import * as fs from 'fs';
26
+ import * as path from 'path';
27
+ import ora from 'ora';
28
+ import { execSync } from 'child_process';
29
+ import { updateInstructionsCommand } from './update-instructions.js';
30
+ import { refreshMarketplaceCommand } from './refresh-marketplace.js';
31
+ import { getPackageVersion } from '../helpers/init/instruction-file-merger.js';
32
+ /**
33
+ * Main update command
34
+ */
35
+ export async function updateCommand(options = {}) {
36
+ const projectPath = process.cwd();
37
+ const version = getPackageVersion();
38
+ const isSpecWeaveProject = fs.existsSync(path.join(projectPath, '.specweave'));
39
+ console.log(chalk.blue.bold('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
40
+ console.log(chalk.blue.bold(' SpecWeave Update'));
41
+ console.log(chalk.blue.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'));
42
+ console.log(chalk.gray(` Version: ${version}`));
43
+ console.log(chalk.gray(` Project: ${projectPath}`));
44
+ if (options.check) {
45
+ console.log(chalk.yellow('\n Mode: DRY RUN (no changes will be made)\n'));
46
+ }
47
+ else {
48
+ console.log('');
49
+ }
50
+ const result = {
51
+ configMigrated: false,
52
+ instructionsUpdated: false,
53
+ pluginsRefreshed: false,
54
+ selfUpdated: false,
55
+ errors: [],
56
+ warnings: [],
57
+ };
58
+ const spinner = ora();
59
+ // Step 0: Self-update SpecWeave CLI (default: ON, skip with --no-self)
60
+ if (!options.noSelf) {
61
+ const selfUpdateResult = await selfUpdateSpecWeave(version, options, spinner);
62
+ result.selfUpdated = selfUpdateResult.updated;
63
+ result.newVersion = selfUpdateResult.newVersion;
64
+ if (selfUpdateResult.error) {
65
+ result.errors.push(selfUpdateResult.error);
66
+ }
67
+ // If self-update happened, recommend restarting
68
+ if (result.selfUpdated) {
69
+ console.log(chalk.green(`\n✓ SpecWeave updated to ${result.newVersion}`));
70
+ console.log(chalk.yellow(' Please restart your terminal and run this command again.\n'));
71
+ return;
72
+ }
73
+ }
74
+ // Check if this is a SpecWeave project
75
+ if (!isSpecWeaveProject) {
76
+ console.log(chalk.yellow('⚠️ Not a SpecWeave project (no .specweave directory found)'));
77
+ console.log(chalk.gray(' Run: specweave init\n'));
78
+ // Still allow plugins refresh for global updates
79
+ if (options.plugins || options.all) {
80
+ console.log(chalk.blue('Proceeding with plugins refresh only...\n'));
81
+ }
82
+ else {
83
+ return;
84
+ }
85
+ }
86
+ // Step 1: Update instructions & migrate config
87
+ if (isSpecWeaveProject) {
88
+ spinner.start('Updating instructions and config...');
89
+ try {
90
+ await updateInstructionsCommand({
91
+ dryRun: options.check,
92
+ verbose: options.verbose,
93
+ });
94
+ result.instructionsUpdated = true;
95
+ result.configMigrated = true; // updateInstructionsCommand now handles this
96
+ spinner.succeed('Instructions and config updated');
97
+ }
98
+ catch (error) {
99
+ spinner.fail('Failed to update instructions');
100
+ result.errors.push(`Instructions update failed: ${error}`);
101
+ }
102
+ }
103
+ // Step 2: Validate project health (quick checks)
104
+ if (isSpecWeaveProject && !options.check) {
105
+ spinner.start('Validating project health...');
106
+ const healthIssues = await validateProjectHealth(projectPath);
107
+ if (healthIssues.length > 0) {
108
+ spinner.warn(`Found ${healthIssues.length} issue(s)`);
109
+ result.warnings.push(...healthIssues);
110
+ if (options.verbose) {
111
+ healthIssues.forEach(issue => {
112
+ console.log(chalk.yellow(` - ${issue}`));
113
+ });
114
+ }
115
+ }
116
+ else {
117
+ spinner.succeed('Project health OK');
118
+ }
119
+ }
120
+ // Step 3: Refresh plugins (if requested)
121
+ if (options.plugins || options.all) {
122
+ console.log('');
123
+ spinner.start('Refreshing marketplace plugins...');
124
+ spinner.stop();
125
+ try {
126
+ await refreshMarketplaceCommand({
127
+ all: options.all,
128
+ force: options.force,
129
+ verbose: options.verbose,
130
+ });
131
+ result.pluginsRefreshed = true;
132
+ }
133
+ catch (error) {
134
+ result.errors.push(`Plugin refresh failed: ${error}`);
135
+ }
136
+ }
137
+ // Summary
138
+ console.log(chalk.blue.bold('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
139
+ console.log(chalk.blue.bold(' Update Summary'));
140
+ console.log(chalk.blue.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'));
141
+ if (isSpecWeaveProject) {
142
+ console.log(` Config: ${result.configMigrated ? chalk.green('✓ Updated') : chalk.gray('No changes')}`);
143
+ console.log(` Instructions: ${result.instructionsUpdated ? chalk.green('✓ Updated') : chalk.gray('No changes')}`);
144
+ }
145
+ if (options.plugins || options.all) {
146
+ console.log(` Plugins: ${result.pluginsRefreshed ? chalk.green('✓ Refreshed') : chalk.red('Failed')}`);
147
+ }
148
+ else {
149
+ console.log(chalk.gray(` Plugins: Skipped (use --plugins to refresh)`));
150
+ }
151
+ if (result.warnings.length > 0) {
152
+ console.log(chalk.yellow(`\n Warnings: ${result.warnings.length}`));
153
+ if (!options.verbose) {
154
+ console.log(chalk.gray(' Use --verbose to see details'));
155
+ }
156
+ }
157
+ if (result.errors.length > 0) {
158
+ console.log(chalk.red(`\n Errors: ${result.errors.length}`));
159
+ result.errors.forEach(err => {
160
+ console.log(chalk.red(` - ${err}`));
161
+ });
162
+ }
163
+ // Next steps
164
+ console.log(chalk.blue('\n Next steps:'));
165
+ if (options.plugins || options.all) {
166
+ console.log(chalk.gray(' 1. Restart Claude Code for plugin changes'));
167
+ }
168
+ else {
169
+ console.log(chalk.gray(' 1. Run `specweave update --plugins` to also refresh plugins'));
170
+ }
171
+ if (result.warnings.length > 0) {
172
+ console.log(chalk.gray(' 2. Review warnings above'));
173
+ }
174
+ console.log('');
175
+ }
176
+ /**
177
+ * Quick project health validation
178
+ */
179
+ async function validateProjectHealth(projectPath) {
180
+ const issues = [];
181
+ // Check config.json exists and is valid
182
+ const configPath = path.join(projectPath, '.specweave', 'config.json');
183
+ if (fs.existsSync(configPath)) {
184
+ try {
185
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
186
+ // Check for missing recommended sections
187
+ if (!config.auto) {
188
+ issues.push('Missing "auto" section in config.json (will be added)');
189
+ }
190
+ if (!config.project?.name) {
191
+ issues.push('Missing project.name in config.json');
192
+ }
193
+ }
194
+ catch {
195
+ issues.push('config.json is invalid JSON');
196
+ }
197
+ }
198
+ else {
199
+ issues.push('config.json not found');
200
+ }
201
+ // Check for orphaned state files
202
+ const stateDir = path.join(projectPath, '.specweave', 'state');
203
+ if (fs.existsSync(stateDir)) {
204
+ const staleFiles = [
205
+ 'auto-mode.json',
206
+ 'auto-session.json',
207
+ '.stop-auto-dedup',
208
+ '.stop-auto-last-fire',
209
+ '.stop-auto-retry',
210
+ ];
211
+ for (const file of staleFiles) {
212
+ const filePath = path.join(stateDir, file);
213
+ if (fs.existsSync(filePath)) {
214
+ try {
215
+ const stats = fs.statSync(filePath);
216
+ const ageHours = (Date.now() - stats.mtimeMs) / (1000 * 60 * 60);
217
+ // Warn if state file is older than 24 hours
218
+ if (ageHours > 24) {
219
+ issues.push(`Stale state file: ${file} (${Math.floor(ageHours)}h old)`);
220
+ }
221
+ }
222
+ catch {
223
+ // Ignore stat errors
224
+ }
225
+ }
226
+ }
227
+ }
228
+ // Check for too many active increments
229
+ const incrementsDir = path.join(projectPath, '.specweave', 'increments');
230
+ if (fs.existsSync(incrementsDir)) {
231
+ try {
232
+ const dirs = fs.readdirSync(incrementsDir).filter(name => /^\d{4}/.test(name));
233
+ let activeCount = 0;
234
+ for (const dir of dirs) {
235
+ const metadataPath = path.join(incrementsDir, dir, 'metadata.json');
236
+ if (fs.existsSync(metadataPath)) {
237
+ try {
238
+ const metadata = JSON.parse(fs.readFileSync(metadataPath, 'utf-8'));
239
+ if (metadata.status === 'active' || metadata.status === 'in-progress') {
240
+ activeCount++;
241
+ }
242
+ }
243
+ catch {
244
+ // Ignore parse errors
245
+ }
246
+ }
247
+ }
248
+ if (activeCount > 5) {
249
+ issues.push(`High number of active increments: ${activeCount} (consider closing some)`);
250
+ }
251
+ }
252
+ catch {
253
+ // Ignore directory read errors
254
+ }
255
+ }
256
+ return issues;
257
+ }
258
+ /**
259
+ * Self-update SpecWeave CLI via npm
260
+ */
261
+ async function selfUpdateSpecWeave(currentVersion, options, spinner) {
262
+ spinner.start('Checking for SpecWeave updates...');
263
+ try {
264
+ // Get latest version from npm
265
+ const latestVersion = execSync('npm view specweave version', {
266
+ encoding: 'utf-8',
267
+ stdio: ['pipe', 'pipe', 'pipe'],
268
+ }).trim();
269
+ // Compare versions
270
+ if (latestVersion === currentVersion) {
271
+ spinner.succeed(`SpecWeave is up to date (v${currentVersion})`);
272
+ return { updated: false };
273
+ }
274
+ // Check if newer version available
275
+ const currentParts = currentVersion.split('.').map(Number);
276
+ const latestParts = latestVersion.split('.').map(Number);
277
+ let isNewer = false;
278
+ for (let i = 0; i < 3; i++) {
279
+ if (latestParts[i] > currentParts[i]) {
280
+ isNewer = true;
281
+ break;
282
+ }
283
+ else if (latestParts[i] < currentParts[i]) {
284
+ break;
285
+ }
286
+ }
287
+ if (!isNewer) {
288
+ spinner.succeed(`SpecWeave is up to date (v${currentVersion})`);
289
+ return { updated: false };
290
+ }
291
+ // Dry run - just report
292
+ if (options.check) {
293
+ spinner.info(`New version available: v${currentVersion} → v${latestVersion}`);
294
+ console.log(chalk.gray(' Run without --check to update'));
295
+ return { updated: false, newVersion: latestVersion };
296
+ }
297
+ // Perform update
298
+ spinner.text = `Updating SpecWeave: v${currentVersion} → v${latestVersion}...`;
299
+ execSync('npm install -g specweave@latest', {
300
+ encoding: 'utf-8',
301
+ stdio: ['pipe', 'pipe', 'pipe'],
302
+ });
303
+ spinner.succeed(`SpecWeave updated: v${currentVersion} → v${latestVersion}`);
304
+ return { updated: true, newVersion: latestVersion };
305
+ }
306
+ catch (error) {
307
+ spinner.fail('Failed to check/update SpecWeave');
308
+ // Provide helpful error messages
309
+ if (error.message?.includes('EACCES') || error.message?.includes('permission denied')) {
310
+ return {
311
+ updated: false,
312
+ error: 'Permission denied. Try: sudo npm install -g specweave@latest',
313
+ };
314
+ }
315
+ if (error.message?.includes('ENOENT') || error.message?.includes('npm: not found')) {
316
+ return {
317
+ updated: false,
318
+ error: 'npm not found. Make sure Node.js is installed.',
319
+ };
320
+ }
321
+ return {
322
+ updated: false,
323
+ error: `Self-update failed: ${error.message || error}`,
324
+ };
325
+ }
326
+ }
327
+ /**
328
+ * Register command with Commander
329
+ */
330
+ export function registerUpdateCommand(program) {
331
+ program
332
+ .command('update')
333
+ .description('Update SpecWeave: CLI, instructions, config, and optionally plugins')
334
+ .option('--no-self', 'Skip CLI self-update via npm')
335
+ .option('--plugins', 'Also refresh marketplace plugins')
336
+ .option('--all', 'Full update including all plugins (not just router)')
337
+ .option('--check', 'Dry run - show what would change without making changes')
338
+ .option('-v, --verbose', 'Show detailed output')
339
+ .option('-f, --force', 'Force refresh even if up to date')
340
+ .action(async (options) => {
341
+ await updateCommand(options);
342
+ });
343
+ }
344
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/cli/commands/update.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AA2B/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAyB,EAAE;IAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,kBAAkB,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAE/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;IAElF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,WAAW,EAAE,CAAC,CAAC,CAAC;IAErD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAiB;QAC3B,cAAc,EAAE,KAAK;QACrB,mBAAmB,EAAE,KAAK;QAC1B,gBAAgB,EAAE,KAAK;QACvB,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;IAEtB,uEAAuE;IACvE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9E,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC;QAC9C,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC;QAChD,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,gDAAgD;QAChD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,8DAA8D,CAAC,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6DAA6D,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAEpD,iDAAiD;QACjD,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO;QACT,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAErD,IAAI,CAAC;YACH,MAAM,yBAAyB,CAAC;gBAC9B,MAAM,EAAE,OAAO,CAAC,KAAK;gBACrB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YACH,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAClC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,6CAA6C;YAC3E,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,IAAI,kBAAkB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAE9C,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAE9D,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,MAAM,WAAW,CAAC,CAAC;YACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAEtC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,yBAAyB,CAAC;gBAC9B,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YACH,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,UAAU;IACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;IAElF,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC9G,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACrH,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/G,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;IACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE3C,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,qBAAqB,CAAC,WAAmB;IACtD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,wCAAwC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IACvE,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAEhE,yCAAyC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACvE,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACrD,CAAC;QAEH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;IAED,iCAAiC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG;YACjB,gBAAgB;YAChB,mBAAmB;YACnB,kBAAkB;YAClB,sBAAsB;YACtB,kBAAkB;SACnB,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACpC,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBAEjE,4CAA4C;oBAC5C,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC;wBAClB,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,qBAAqB;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACzE,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/E,IAAI,WAAW,GAAG,CAAC,CAAC;YAEpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;gBACpE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;wBACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;4BACtE,WAAW,EAAE,CAAC;wBAChB,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,sBAAsB;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,qCAAqC,WAAW,0BAA0B,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,cAAsB,EACtB,OAAsB,EACtB,OAA+B;IAE/B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,8BAA8B;QAC9B,MAAM,aAAa,GAAG,QAAQ,CAAC,4BAA4B,EAAE;YAC3D,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,mBAAmB;QACnB,IAAI,aAAa,KAAK,cAAc,EAAE,CAAC;YACrC,OAAO,CAAC,OAAO,CAAC,6BAA6B,cAAc,GAAG,CAAC,CAAC;YAChE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;QAED,mCAAmC;QACnC,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEzD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrC,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;iBAAM,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,OAAO,CAAC,6BAA6B,cAAc,GAAG,CAAC,CAAC;YAChE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,2BAA2B,cAAc,OAAO,aAAa,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC7D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;QACvD,CAAC;QAED,iBAAiB;QACjB,OAAO,CAAC,IAAI,GAAG,wBAAwB,cAAc,OAAO,aAAa,KAAK,CAAC;QAE/E,QAAQ,CAAC,iCAAiC,EAAE;YAC1C,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,uBAAuB,cAAc,OAAO,aAAa,EAAE,CAAC,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;IAEtD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAEjD,iCAAiC;QACjC,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACtF,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,8DAA8D;aACtE,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACnF,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,gDAAgD;aACxD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,uBAAuB,KAAK,CAAC,OAAO,IAAI,KAAK,EAAE;SACvD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAoC;IACxE,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qEAAqE,CAAC;SAClF,MAAM,CAAC,WAAW,EAAE,8BAA8B,CAAC;SACnD,MAAM,CAAC,WAAW,EAAE,kCAAkC,CAAC;SACvD,MAAM,CAAC,OAAO,EAAE,qDAAqD,CAAC;SACtE,MAAM,CAAC,SAAS,EAAE,yDAAyD,CAAC;SAC5E,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;SAC/C,MAAM,CAAC,aAAa,EAAE,kCAAkC,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"directory-structure.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/directory-structure.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,gDAAgD,CAAC;AAIxD;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7D,OAAO,CAAC,IAAI,CAAC,CAmEf;AA4BD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACrE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACxC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACvC,CAAC,CAsBD;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,iBAAwB,GACjC,OAAO,CAAC,IAAI,CAAC,CAkIf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,iBAAiB,EAC3B,iBAAiB,GAAE,OAAc,EACjC,QAAQ,CAAC,EAAE,QAAQ,EACnB,cAAc,CAAC,EAAE,MAAM,GACtB,IAAI,CAuFN"}
1
+ {"version":3,"file":"directory-structure.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/directory-structure.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,gDAAgD,CAAC;AAIxD;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7D,OAAO,CAAC,IAAI,CAAC,CAmEf;AA4BD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACrE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACxC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACvC,CAAC,CAsBD;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,iBAAwB,GACjC,OAAO,CAAC,IAAI,CAAC,CAyJf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,iBAAiB,EAC3B,iBAAiB,GAAE,OAAc,EACjC,QAAQ,CAAC,EAAE,QAAQ,EACnB,cAAc,CAAC,EAAE,MAAM,GACtB,IAAI,CAgGN"}